-
Die
vorliegende Erfindung ist auf Verfahren zum Verarbeiten von Bilddaten
gerichtet.
-
Fehlerverteilung
ist ein übliches
Verfahren zum Umwandeln eines Graustufenbildes in ein binäres Bild. Dieser
Prozess setzt jedoch voraus, dass ein Drucker eine ideale Vorrichtung
ist, von der schwarze Pixel und weiße Pixel unabhängig von
ihrer effektiven Größe dargestellt
werden können. 22 stellt
ein Diagramm eines herkömmlichen
Fehlerverteilungs-Prozesses dar, der in einem Gerät mit einer
Fast-Scan-Richtung, in dem Abtasten (Scannen) elektronisch durchgeführt wird,
und mit einer Slow-Scan-Richtung,
in der Scannen mechanisch durchgeführt wird, implementiert ist.
-
Wie
in 22 gezeigt, wird ein eingegebenes Graustufenvideo
in eine Addiereinrichtung 10 eingegeben, wobei Slow-Scan-Fehler,
die Fehler aus der Verarbeitung der vorangegangenen Abtastlinie
von Pixeln darstellen und in einem FIFO 11 gespeichert
werden, zu dem eingegebenen Graustufenvideo hinzugefügt werden.
Darüber
hinaus werden bei der Addiereinrichtung 10 auch Fast-Scan-Fehler
aus einer Fehlerverteilungsschaltung 15 dem eingegebenen
Graustufenvideo hinzugefügt.
Der Fast-Scan-Fehler
aus der Fehlerverteilungsschaltung 15 stellt den Fehler
aus der Verarbeitung des vorangegangenen Pixels in derselben Abtastlinie dar.
Das modifizierte eingegebene Graustufenvideo (PixN)
wird anschließend
einem Vergleichsglied 14 zugeführt, das das modifizierte eingegebene
Graustufenvideo mit einem Grenzwert vergleicht. Auf Basis des Vergleichs
mit dem Grenzwert gibt das Vergleichsglied 14 eine binäre Ausgabe
aus, die entweder 1 oder 0 beträgt. Das
modifizierte eingegebene Graustufenvideo wird darüber hinaus
einer Subtraktionsschaltung 12 und einem Multiplexer 16 zugeführt. Die
Subtraktionsschaltung 12 erzeugt einen Wert, der die Differenz
zwischen einem Schwarz-Referenzwert und dem Wert des modifizierten
eingegebenen Graustufenvideos darstellt. Diese Differenz wird ebenfalls
dem Multiplexer 16 zugeführt. Der Multiplexer 16 wählt auf
Basis der binären
Ausgabe des Vergleichsgliedes 14 entweder den Differenzwert
oder den Wert des modifizierten eingegebenen Graustufenvideos als
den Pixelfehler für
das aktuell verarbeitete Pixel aus. Dieser Pixelfehler wird der
Fehlervertei lungsschaltung 15 zugeführt, die eine Vielzahl von
Gewichtungskoeffizienten nutzt, um den Fehler auf verschiedene angrenzende
Pixel zu verteilen.
-
Mit
den aktuellen Verbesserungen der Fähigkeiten von Druckern kann
jedoch eine herkömmliche
Fehlerverteilung nicht mehr einfach genutzt werden, ohne dass Artefakte
in dem dargestellten Bild auftreten. So nutzen viele Drucker jetzt
beispielsweise hoch adressierbare Ausgaben; zwei oder mehr binäre Bits
werden für
jedes eingegebene graue Pixel erzeugt. Üblicherweise werden die mehreren
Bits in der Fast-Scan-Richtung (die Ausrichtung, in der die einzelne
Abtastlinie gedruckt wird) erzeugt.
-
Eine
hohe Adressierbarkeit ist in Situationen wichtig, in denen die Vorrichtung
die Bilddaten mit einer Auflösung
verarbeiten, sie jedoch mit einer höheren Auflösung drucken kann. In einer
derartigen Situation kann eine Ausführungsform der vorliegenden
Erfindung ein Verarbeitungssystem, das für ein Bild mit einer geringeren
Auflösung
entworfen wurde (eine geringere Auflösung kann schneller und billiger
verarbeitet werden), sowie eine Druckvorrichtung nutzen, die durch
Manipulation eines Laserimpulses mit einer höheren Auflösung drucken kann. So kann
das Bild beispielsweise mit einer Auflösung von 600×600×8 verarbeitet
und mit einer Auflösung
von 2400×600×1 gedruckt
werden, wozu ein Prozess einer hohen Adressierbarkeit genutzt wird.
In dem oben genannten Beispiel beträgt der Kennwert der hohen Adressierbarkeit 4.
Ware das Bild mit 600×600×6 verarbeitet
und mit 1200×600×1 gedruckt
worden, betrüge
der Kennwert der hohen Adressierbarkeit 2.
-
In
einer solchen hoch adressierbaren Umgebung kann ein herkömmlicher
Fehlerverteilungs-Prozess Bilder erzeugen, die viele isolierte Subpixel
enthalten. Ein isoliertes Subpixel ist ein Subpixel, das von seinen benachbarten
Subpixeln verschieden ist; beispielsweise wäre ein schwarzes (oder EIN-)
Subpixel, das mit einem eindimensionalen Array gedruckt würde, dann
isoliert, wenn es in der Fast-Scan-Richtung des Druckers von weißen (oder
AUS-) Subpixeln umgeben wäre,
dagegen wäre
ein weißes
(oder AUS-) Subpixel dann isoliert, wenn es von schwarzen (oder
EIN-) Subpixeln umgeben wäre;
mit einem zweidimensionalen Array kann ein Subpixel in beide Richtungen
isoliert sein. Auf den ersten Blick scheint dies kein Problem zu
sein, die Xerografie ist jedoch nicht empfindlich genug, um tatsächlich einzelne
isolierte Subpixel zu drucken; das Er gebnis davon ist, dass in dem
dargestellten Bild unerwünschte
Artefakte erzeugt werden.
-
Ein
derartiges Artefakt, das dadurch verursacht wird, dass ein xerografisches
System nicht in der Lage ist, ein Subpixel darzustellen, ist eine
Graustufenverschiebung in den ausgegebenen Daten. Genauer gesagt, wird
die Graustufenverschiebung dadurch hervorgerufen, dass isolierte
Subpixel, die auf Grund der zu geringen Empfindlichkeit eines xerografischen
Druckers nicht gedruckt werden, nicht wie erwartet zu der Lichtabsorption
beitragen, wodurch die tatsächlich
wahrgenommene Graustufe nicht gleich der Graustufe des ursprünglichen
Bildes ist.
-
Wird
beispielsweise ein Graudurchlauf gedruckt, der einen Kennwert der
hohen Adressierbarkeit größer als
1, beispielsweise 2, nutzt, sollte das Bild als ein sanfter Übergang
von Grau zu Hellgrau zu Weiß erscheinen.
Wird jedoch solch ein Graudurchlauf mit einer herkömmlichen
Fehlerverteilung und einem Kennwert der hohen Adressierbarkeit größer als
1 gedruckt, erscheint in dem Bild nahe dem dunkleren Ende eine Unregelmäßigkeit.
Diese Unregelmäßigkeit
wird erzeugt, weil eine bestimmte Graustufe relativ wenig isolierte
Subpixel erzeugen kann, die angrenzenden Graustufen jedoch können sehr
viel mehr isolierte Subpixel erzeugen. Die Bereiche mit einem hohen
Prozentsatz isolierter Subpixel erscheinen deutlich heller, da die
Subpixel nicht getreu wiedergeben.
-
Ein
weiteres Artefakt der Unfähigkeit,
isolierte Subpixel darzustellen, besteht darin, dass bestimmte Graustufen
weiße
(„ausgebrannte") Bereiche aufweisen.
Dieses Artefakt wird durch viele isolierte Subpixel verursacht,
die in einem umgrenzten Bereich gedruckt werden. Da mit anderen
Worten die isolierten Pixel von dem Drucker nicht effizient dargestellt
werden können,
werden diese isolierten Pixel in dem erzeugten ausgegebenen Dokument
weiße
Bereiche. Somit kann ein grauer Bereich vollständig weiß werden, wenn die vielen isolierten
Subpixel nicht ordnungsgemäß von dem
Drucker wiedergegeben werden.
-
Die
vorliegende Erfindung verringert diese Probleme mit Verfahren, die
isolierte Subpixel eliminieren können.
Die Verfahren können
Pixel in Subpixelwerte umwandeln und wenn die Subpixelwerte ein
isoliertes Subpixel enthalten, können
sie die Subpixelwerte so modifizieren, dass diese kein isoliertes
Subpixel mehr enthalten.
-
Das
Verfahren kompensiert vorteilhaft die Unfähigkeit eines Druckers, isolierte
Subpixel darzustellen, wenn eine Fehlerverteilung mit hoher Adressierbarkeit
zum Verarbeiten von Bilddaten genutzt wird. Darüber hinaus kann das Verfahren
implementiert werden, um einen in dem Fehlerverteilungsprozess fortgepflanzten Fehler
zu aktualisieren, um Modifikationen in dem Subpixel-Datenstrom Rechnung
zu tragen.
-
Die
vorliegende Erfindung kann in einem Verfahren zur Verarbeitung von
Bilddaten implementiert werden. Das Verfahren empfängt ein
Pixel von Bilddaten mit einer ersten Auflösung und konvertiert das empfangene
Pixel von Bilddaten in eine Vielzahl von Subpixeln, wobei die Vielzahl
von Subpixeln eine zweite Auflösung
darstellt und wobei die zweite Auflösung höher als die erste Auflösung ist.
Die Vielzahl von Subpixeln wird einem Grenzwert unterworfen, um
eine Gruppe von Subpixelwerten für
jedes Pixel sowie einen Grenzwertfehler-Wert zu erhalten. Das Verfahren
bestimmt, ob die Gruppe von Subpixelwerten aus dem Schwellenwert-Prozess
ein Muster erzeugt, das ein isoliertes Subpixel enthält, und
modifiziert die Gruppe von Subpixelwerten, um ein Muster ohne ein
isoliertes Subpixel zu erzeugen, wenn die Gruppe von Subpixelwerten
aus dem Schwellenwert-Prozess ein Muster erzeugt, das ein isoliertes
Subpixel enthält.
-
Die
vorliegende Erfindung kann ebenfalls in einem System zur Verarbeitung
von Bilddaten implementiert werden. Das System enthält eine
Einrichtung zum Umwandeln eines Pixels von Bilddaten mit einer ersten Auflösung in
eine Vielzahl von Subpixeln, wobei die Vielzahl von Subpixeln eine
zweite Auflösung
darstellt und wobei die zweite Auflösung höher als die erste Auflösung ist;
eine Einrichtung, um damit die Vielzahl von Subpixeln einem Grenzwert
zu unterwerten, um eine Gruppe von Subpixelwerten für jedes
Pixel sowie einen Grenzwertfehler-Wert zu erzeugen; eine Einrichtung
für isolierte
Subpixel zum Festlegen, ob die Gruppe von Subpixelwerten ein Muster
bildet, das ein isoliertes Subpixel enthält; und eine Modifikationseinrichtung
zum Modifizieren der Gruppe von Subpixelwerten, um ein Muster ohne
ein isoliertes Subpixel zu erzeugen, wenn die unmodifizierte Gruppe
von Subpixelwerten ein Muster bildet, das ein isoliertes Subpixel
enthält.
-
In
einem Aspekt der Erfindung wird ein Verfahren zur Verarbeitung von
Bilddaten bereitgestellt, das umfasst:
- (a)
Empfangen von Pixeln von Bilddaten mit einer ersten Auflösung;
- (b) Umwandeln der empfangenen Pixel von Bilddaten in Werte für Subpixel,
wobei die Subpixel eine zweite Auflösung haben und wobei die zweite
Auflösung
höher als
die erste Auflösung
ist; wobei die Umwandlung darüber
hinaus umfasst:
(b1) Gewinnen von zwei oder mehr interpolierten
Subpixelwerten für
jedes der empfangenen Pixel;
(b2) Vergleichen jedes interpolierten
Subpixelwertes mit einem Grenzwert, um einen binären Subpixelwert zu erhalten;
und
(b3) Gewinnen eines Grenzwertfehlers für das empfangene Pixel auf
Basis der binären
Subpixelwerte;
- (c) Modifizieren des Subpixelwertes, wenn die Subpixelwerte
ein isoliertes Subpixel enthalten, wobei die modifizierten Subpixelwerte
kein isoliertes Subpixel mehr enthalten; und
- (d) Verteilen des Grenzwertfehlers für das empfangene Pixel auf
angrenzende Pixel auf Basis einer Menge von Gewichtungskoeffizienten;
wobei
das Verfahren durch folgende Schritte gekennzeichnet wird:
- (e) Erzeugen eines Subpixelfehlers auf Basis der in (c) durchgeführten Modifikation;
und
- (f) Verteilen des Subpixelfehlers auf angrenzende Pixel auf
Basis einer Menge von Gewichtungskoeffizienten, bezogen auf die
Gewichtungskoeffizienten, die verwendet werden, um den Grenzwertfehler
zu verteilen.
-
In
einem weiteren Aspekt der Erfindung wird ein System zur Verarbeitung
von Bilddaten bereitgestellt, das umfasst:
eine Empfangseinrichtung
zum Empfangen von Pixeln von Bilddaten mit einer ersten Auflösung;
eine
Umwandlungseinrichtung zum Umwandeln der empfangenen Pixel von Bilddaten
in Werte für
Subpixel, wobei die Subpixel eine zweite Auflösung haben und wobei die zweite
Auflösung
höher als
die erste Auflösung ist;
und
eine Modifizierungseinrichtung zum Modifizieren der Subpixelwerte,
wenn die Subpixelwerte ein isoliertes Subpixel enthalten, wobei
die modifizierten Subpixelwerte kein isoliertes Subpixel enthalten;
wobei
die Umwandlungseinrichtung des Weiteren umfasst:
eine Wertgewinnungseinrichtung
zum Gewinnen von zwei oder mehr interpolierten Subpixelwerten für jedes der
empfangenen Pixel;
eine Grenzwerteinrichtung zum Vergleichen
jedes interpolierten Subpixelwertes mit einem Grenzwert, um einen
binären
Subpixelwert zu erhalten;
eine Fehlergewinnungseinrichtung
zum Gewinnen eines Grenzwertfehlers für das empfangene Pixel auf
Basis der binären
Subpixelwerte; und
eine Fehlerverteilungseinrichtung zum Verteilen
des Grenzwertfehlers für
das empfangene Pixel auf angrenzende Pixel auf Basis einer Menge
von Gewichtungskoeffizienten; und
das System ist dadurch gekennzeichnet,
dass die Fehlerverteilungseinrichtung umfasst:
eine Subpixelfehlereinrichtung
zum Erzeugen eines Subpixelfehlers auf Basis der durch die Modifizierungseinrichtung
durchgeführten
Modifizierung; und
eine Fehleranpassungseinrichtung zum Verteilen
des Subpixelfehlers auf angrenzende Pixel auf Basis einer Menge
von Gewichtungskoeffizienten, bezogen auf die Gewichtungskoeffizienten,
die verwendet werden, um den Grenzwertfehler zu verteilen.
-
Die
Erfindung wird nun beispielhaft und in Bezug auf die beigefügten Zeichnungen
beschrieben, in denen:
-
1 eine
grafische Darstellung des Gewinnens von Grenz-Subpixelwerten zeigt;
-
2 zeigt
eine grafische Darstellung des Modifizierens der erhaltenen Grenz-Subpixelwerte mit
einer Fehlerkomponente;
-
3 zeigt
eine grafische Darstellung des Interpolierens von Subpixelwerten
zwischen den modifizierten Grenz-Subpixelwerten;
-
4 zeigt
eine grafische Darstellung des Vergleichens der interpolierten Subpixelwerte
mit einem Grenzwert;
-
5 zeigt
eine grafische Darstellung des Berechnens eines gewünschten
Ausgabewertes;
-
6 zeigt
eine grafische Darstellung des Berechnens eines tatsächlichen
Ausgabewertes;
-
7 zeigt
eine grafische Darstellung des Berechnens eines Fehlerwertes, der
auf nachfolgende Pixel fortgepflanzt werden soll;
-
8 zeigt
eine grafische Darstellung, die eine tatsächliche Verteilung des Fehlers
in einer typischen Fehlerverteilungsroutine darstellt;
-
9 zeigt
ein Blockdiagramm eines Fehlerverteilungsprozesses mit hoher Adressierbarkeit;
-
10 zeigt
eine grafische Darstellung, die einen Decodierprozess darstellt,
der in 9 gezeigt wurde;
-
11 zeigt
eine grafische Darstellung, die das Gewinnen von Grenz-Subpixelwerten parallel
zu dem Berechnen eines gewünschten
Ausgabewertes darstellt;
-
12 zeigt
eine grafische Darstellung, die das Interpolieren von Subpixelwerten
zwischen den erhaltenen Grenz-Subpixelwerten parallel zu dem Modifizieren
des gewünschten
Ausgabewertes mit einer Fehlerkomponente darstellt;
-
13 zeigt
eine grafische Darstellung, die das Modifizieren der Subpixelwerte
zwischen den erhaltenen Grenz-Subpixelwerten mit einer Fehlerkomponente
darstellt;
-
14 zeigt
eine grafische Darstellung, die die Berechnung einer Vielzahl von
partiellen möglichen Fehlerwerten
darstellt;
-
15 zeigt
eine grafische Darstellung des weiteren Modifizierens der modifizierten
Subpixelwerte aus 11 mit einer anderen Fehlerkomponente;
-
16 zeigt
eine grafische Darstellung, die die Berechnung einer Vielzahl von
vollständig
möglichen Fehlerwerten
darstellt;
-
17 zeigt
eine grafische Darstellung des bewertenden Vergleichens der weiter
modifizierten Subpixelwerte mit einem Schwellenwert;
-
18 zeigt
eine grafische Darstellung des Festlegens einer Anzahl von Subpixeln,
die gleich einem Grenzwert sind oder diesen überschreiten;
-
19 zeigt
eine grafische Darstellung des Auswählens von einem Fehlerwert
aus der Vielzahl möglicher
vollständiger
Fehlerwerte;
-
20 ist
ein Blockdiagramm, das eine Implementierung der in den 11 bis 19 dargestellten Prozesse
darstellt;
-
21 ist
ein Blockdiagramm, das eine Implementierung von Schaltungen der
in den 11 bis 19 dargestellten
Prozesse darstellt;
-
22 zeigt
ein Blockdiagramm, das ein typisches Fehlerverteilungsverfahren
darstellt;
-
23 zeigt
einen Graphen, der eine Subpixel-Interpolation darstellt;
-
24 zeigt
ein Ablaufdiagramm, das ein Fehlerverteilungsverfahren darstellt,
das die Interpolationsschemata aus 23 nutzt;
-
25 zeigt
einen Graphen, der ein anderes Subpixel-Interpolationsverfahren
darstellt;
-
26 zeigt
ein Ablaufdiagramm, das ein Fehlerverteilungsverfahren darstellt,
das das Interpolationsschema aus 25 nutzt;
-
27 zeigt
ein Blockdiagramm eines morphologischen Filters eines Zustandsautomaten
zum Eliminieren isolierter Subpixel;
-
28 zeigt
ein Blockdiagramm, das eine Implementierung einer Schaltung zum
Eliminieren isolierter Subpixel darstellt;
-
29 zeigt
ein Blockdiagramm, das eine andere Implementierung einer Schaltung
zum Eliminieren isolierter Subpixel darstellt;
-
30 zeigt
ein Ablaufdiagramm, das ein Eliminieren isolierter Subpixel darstellt;
und
-
31 zeigt
ein Beispiel der Subpixeleliminierung für eine Situation, in der der
Kennwert der hohen Adressierbarkeit drei beträgt.
-
In
der folgenden Beschreibung sowie in den Zeichnungen stellen gleiche
Referenz nummern gleiche Vorrichtungen und Schaltungen oder Schaltungen,
die äquivalente
Funktionen durchführen,
dar.
-
Beim
Beschreiben der vorliegenden Erfindung werden die Bezeichnungen
Pixel und Subpixel genutzt. Diese Bezeichnungen können sich
auf ein elektrisches (oder, wenn Faseroptiken genutzt werden, auf
ein optisches) Signal beziehen, das die physikalisch messbaren optischen
Eigenschaften eines physikalisch definierbaren Bereiches auf einem
empfangenden Medium darstellt. Das empfangende Medium kann jedes
materielle Dokument, jede lichtempfindliche Schicht oder jedes markierende
Materialtransfermedium sein. Darüber
hinaus können
sich diese Bezeichnungen auf ein elektrisches (oder, wenn Faseroptiken
genutzt werden, auf ein optisches) Signal beziehen, das die physikalisch
messbaren optischen Eigenschaften eines physikalisch definierbaren
Bereiches auf einem Anzeigemedium darstellt. Eine Vielzahl der physikalisch
definierbaren Bereiche für
beide Situationen stellt die physikalisch messbaren optischen Eigenschaften
des gesamten, entweder durch eine Materialmarkierungsvorrichtung,
eine elektrische oder magnetische Markierungsvorrichtung oder eine
optische Anzeigevorrichtung wiederzugebenden physikalischen Bildes
dar.
-
Schließlich kann
sich die Bezeichnung Pixel auch auf ein elektrisches (oder, wenn
Faseroptiken genutzt werden, auf ein optisches) Signal beziehen,
das physikoptische Eigenschaftsdaten darstellt, die von einer einzelnen
Fotosensorzelle erzeugt werden, wenn ein physikalisches Bild gescannt
wird, um die physikoptischen Eigenschaften des physikalischen Bildes
in eine elektronische oder elektrische Darstellung umzuwandeln.
Mit anderen Worten ist in dieser Situation ein Pixel eine elektrische
(oder optische) Darstellung der physikoptischen Eigenschaften eines
physikalischen Bildes, die in einem physikalisch definierbaren Bereich
an einem optischen Sensor gemessen wurden.
-
Zum
Erweitern des herkömmlichen
Fehlerverteilungsprozesses wie oben beschrieben auf eine Umgebung
mit hoher Adressierbarkeit kann die Einarisierung (Grenzwert) mit
einer höheren
räumlichen
Auflösung durchgeführt werden,
die Fehlerberechnung und – fortpflanzung
kann jedoch mit der ursprünglichen,
geringeren räumlichen
Auflösung
durchgeführt
werden. Dieses Aufteilen des Prozesses kann die Anzahl isolierter Subpixel
im Wesentlichen unterdrücken
oder verringern und somit eine hohe Bildqualität auf rechterhalten. Dieses
Verfahren mit einer hohen Auflösung/niedrigen
Auflösung
wird im Folgenden ausführlicher
beschrieben.
-
Beim
Erläutern
eines hoch adressierbaren Fehlerverteilungsprozesses wird angenommen,
dass die eingegebenen Graustufen an dem Pixelstandort i und dem
Pixelstandort i + 1 durch Vi beziehungsweise
Vi+1 dargestellt werden. Es wird bemerkt,
wenn der hoch adressierbare Fehlerverteilungsprozess ein hybrider
hoch adressierbarer Fehlerverteilungsprozess ist, dass die in die
hoch adressierbare Fehlerverteilungsschaltung eingegebenen Graustufen
Vi = (Gi – Vini) + (Si – Th) sowie
Vi+1 = (Gi – Vini+1) + (Si+1 – Th) sind,
wobei Si gleich Bildschirmwerten ist, die
von einem Halbton-Bildschirmmuster abgeleitet sind, Vini ist
das graue Eingabevideo, Gi ist ein maximaler
Graustufenwert für
ein Pixel in dem System und Th ist der Grenzwert, der in dem Binarisierungsprozess
genutzt wird. Der Darstellungsfehler bei der geringeren Auflösung, der
von einem vorangehenden Pixel an den nachfolgenden Pixelstandort
weitergegeben wird, wird durch ei gekennzeichnet.
-
Es
wird bemerkt, dass eine Eigenschaft der hohen Adressierbarkeit die
Interpolation zwischen Pixeln einschließt, das heißt, das Erzeugen von Subpixeln.
Diese Interpolation beeinflusst den Prozess der Fehlerverteilung
mit hoher Adressierbarkeit. Insbesondere können in Abhängigkeit von der Art, auf die
die Interpolation vorgenommen wurde, zwei verschiedene Ausgaben
erhalten werden, die den hoch adressierbaren Fehlerverteilungsprozess
der vorliegenden Erfindung nutzen. Jede dieser beiden verschiedenen
Ausgaben wird im Folgenden diskutiert.
-
In
Bezug auf ein erstes Interpolationsschema sind die Schritte zum
Bestimmen des Druckens oder Darstellens von einem Subpixel wie folgt.
-
Zuerst
werden die modifizierten Pixelwerte P0i =
Vi-1 + ei-1 und
P1i = Vi + ei berechnet. Die Subpixel werden durch 0
bis N – 1
dargestellt, wobei der Kennwert der hohen Adressierbarkeit N ist.
Der Kennwert der hohen Adressierbarkeit ist die Anzahl von Subpixeln,
die ein Drucker erzeugen kann, im Vergleich mit der Durchsatzbandbreite
des Bildverarbeitungssystems. Mit anderen Worten, der Kennwert der
hohen Adressierbarkeit ist definiert als die Anzahl von Subpixeln,
die der Bildausgabeanschluss aus einem Pixel von Bilddaten darstellen
kann.
-
Die
interpolierten Subpixelwerte werden berechnet als Bn =
P0 + n(P1 – P0)/N
für n =
0 bis N – 1.
Anschließend
werden die interpolierten Subpixelwerte mit einem Grenzwert verglichen,
der in den meisten Fällen 128
ist, vorausgesetzt, dass der Videowert in dem Bereich zwischen 0
und 255 liegt. Wenn Bn größer ist
als 128 oder gleich diesem Wert, wird das Subpixel EIN-geschaltet;
anderenfalls wird das Subpixel AUS-geschaltet. Der Fehler, der auf
nachfolgende Pixel fortgepflanzt werden soll, wird als die gewünschte Ausgabe
(P0 + P1)/2 minus die tatsächliche
Ausgabe, nämlich
y·255/N,
berechnet, wobei y die EIN-geschaltete Anzahl von Subpixeln ist.
Anschließend
wird der Fehler mit einer Reihe von Gewichtungskoeffizienten multipliziert
und wie in der ersten Version auf die nachfolgenden Pixel verteilt.
-
Die
Gewichtungskoeffizienten können
die in dem Patent
US-A-5.353.127 beschriebenen
Koeffizienten oder jede andere Reihe von Koeffizienten sein, einschließlich von
Reihen, in denen gleiche Koeffizienten Nullwerte besitzen oder in
denen Fehler in nur eine Richtung, entweder in die Fast-Scan-Richtung
oder die Slow-Scan-Richtung, oder in beide Richtungen, was typischer
ist, verteilt werden.
-
Insbesondere
wird das gerasterte eingegebene modifizierte Videosignal in N Subpixeleinheiten
unterteilt. Die Werte für
P0 und P1 werden berechnet wie oben dargestellt. Die berechneten
Subpixelwerte werden mit einem Grenzwert verglichen, nämlich 128.
Wenn der Subpixelwert größer ist
als der Grenzwert oder gleich diesem, wird der Subpixelwert auf
den EIN-Zustand gesetzt. Wenn jedoch der Subpixelwert geringer ist
als 128, wird der Subpixelwert auf den AUS-Zustand gesetzt.
-
Ist
das Vergleichen aller Subpixelwerte abgeschlossen, wird die Anzahl
von EIN-Subpixeln
berechnet. Darüber
hinaus wird der Fehler aus dem Grenzwert-Prozess berechnet, so dass
der Wert die ursprüngliche geringere
räumliche
Auflösung
darstellt. Bei der Berechnung des Fehlers wird der Fehler mit Gewichtungskoeffizienten
multipliziert und der Fehler wird auf nachfolgende Pixel verteilt.
-
Wie
oben bemerkt, werden die modifizierten Pixelwerte P0i =
Vi-1 + ei-1 = P1i-1 und P1i = Vi + ei an zwei Standorten
entsprechend der eingegebenen Auflösung berechnet. Ein Beispiel
hierfür
wird in 23 gezeigt, wobei die Subpixel
durch 0 bis N – 1
dargestellt werden. In 23 ist der Kennwert der hohen
Adressierbarkeit, N, gleich 4.
-
Wie
in 23 gezeigt, wird eine Linie gezogen, um die Werte
P0 und P1 zu verbinden. (Die i-Indizes wurden der Einfachheit halber
weggelassen.) Darüber
hinaus wurde eine Punktlinie gezogen, um einen Grenzwert von 128
darzustellen. (Es wird erneut bemerkt, dass der Bereich der Videosignale
0 bis 255 ist; es kann jedoch jeder beliebige Bereich genutzt werden,
und es kann jeder beliebige Grenzwert genutzt werden.) Der Schnittpunkt
der Linie, die P0 und P1 verbindet, und der Linie, die den Grenzwert
bei 128 darstellt, bestimmt, welche Subpixel dargestellt oder gedruckt
werden. Die X-Koordinate des Schnittpunktes wird bestimmt und mit der
Gleichung x = N (128 – P0)/(P1 – P0) auf
N normalisiert.
-
Anschließend wird
bestimmt, welche Subpixel EIN-zuschalten sind. Wenn x kleiner als
oder gleich 0 ist und wenn P1 größer als
oder gleich 128 ist, sind alle Subpixel EIN-geschaltet; anderenfalls, wenn x kleiner als
oder gleich 0 ist, sind alle Subpixel AUS-geschaltet. Diese Entscheidung stellt
das gesamte Darstellen oder Nicht-Darstellen der Pixel dar. Um eine
partielle Darstellung des gesamten Pixels zu bestimmen, muss eine Subpixelanalyse
durchgeführt
werden. In dieser Instanz muss der Wert x mit den einzelnen Subpixelwerten verglichen
werden.
-
Es
wird bemerkt, wie in 23 dargestellt, dass der Wert
von x bei der Berechnung nicht notwendigerweise eine ganze Zahl
oder ein Subpixel ergibt, wodurch jede Analyse eine Bruchkomponente
enthalten kann. Um dies zu vermeiden, wird x in eine ganze Zahl
oder einen ganzen Subpixelwert umgewandelt. Für diese Umwandlung ist es zulässig, dass
n gleich dem gestutzten ganzzahligen Wert von x ist. Die Werte n
und x können
anschließend
genutzt werden, um zu bestimmen, welche Subpixel EIN-zuschalten und welche
Subpixel AUS-zuschalten sind. Insbesondere dann, wenn x größer ist
als 0, jedoch kleiner als N, und wenn P1 kleiner ist als 128, werden
nur die Subpixel zwischen 0 und n EIN-geschaltet und der Rest der
Subpixel wird AUS-geschaltet; anderenfalls werden die Subpixel zwischen
0 und n AUS-geschaltet und die restlichen Subpixel werden EIN-geschaltet.
Wenn x größer ist
als oder gleich N und wenn P0 grö ßer ist
als oder gleich 128, werden alle Subpixel EIN-geschaltet; anderenfalls,
wenn x größer ist
als oder gleich N, werden alle Subpixel AUS-geschaltet.
-
Dieser
Grenzwert-Prozess erzeugt einen Fehler, der auf nachfolgende Pixel
fortgepflanzt werden muss. Darüber
hinaus muss der Fehler, wie oben bemerkt, an der Eingabe mit der
ursprünglichen
niedrigen Auflösung
sein. Die Umwandlung zu der ursprünglichen Auflösung wird
gelöst,
indem die Differenz zwischen der gewünschten Ausgabe, (P0 + P1)/2,
und der tatsächlichen
Ausgabe, nämlich
b·255/N,
bestimmt wird, wenn b die Anzahl von Subpixeln ist, die EIN-geschaltet
wurden. Anschließend
wird der umgewandelte Fehler mit einer Reihe von Gewichtungskoeffizienten
multipliziert und auf die nachfolgenden Pixel verteilt.
-
In 24 wird
das tatsächliche
Verfahren dargestellt, das zum Durchführen des Interpolations- und Fehlerverteilungsprozesses,
wie oben beschrieben, genutzt wird. In 24 bei
Schritt S10 wird das modifizierte gerasterte Videoeingabesignal
in N Subpixelwerte geteilt. Bei Schritt S20 werden die Werte P0i und P1i berechnet
wie oben beschrieben. Anschließend
wird bei Schritt S30 die X-Koordinate des Schnittpunktes bestimmt
und normalisiert, indem die Differenz zwischen 128 und P0 mit dem
Wert N multipliziert und dieses Produkt durch die Differenz von
P1 und P0 geteilt wird. Bei Schritt S40 wird der normalisierte Wert
x mit dem Wert 0 verglichen. Wenn x kleiner als oder gleich 0 ist,
vergleicht Schritt S50 den Wert P1 mit dem Wert 128. Wenn der Wert
P1 größer ist
als oder gleich 128, werden bei Schritt S60 alle Subpixel in einen
EIN-Zustand versetzt. Wenn jedoch P1 kleiner als 128 ist, versetzt
Schritt S70 alle Subpixel in einen AUS-Zustand.
-
Wenn
jedoch Schritt S40 bestimmt, dass x nicht kleiner als oder gleich
0 ist, bestimmt Schritt S90 den ganzzahligen Wert von x und setzt
diesen ganzzahligen Wert gleich Y. Bei Schritt S100 wird der ganzzahlige Wert
Y mit den Werten 0 und N verglichen.
-
Wenn
der Wert Y zwischen 0 und N liegt, bestimmt Schritt S110, ob der
Wert P1 kleiner als oder gleich 128 ist. Wenn der Wert P1 kleiner
als oder gleich 128 ist, versetzt Schritt S120 die Subpixel 0 bis
Y in den EIN-Zustand und die Subpixel Y + 1 bis N in den AUS-Zustand. Wenn jedoch
Schritt S110 bestimmt, dass der Wert P1 größer ist als 128, ver setzt Schritt
S130 die Subpixel 0 bis Y in den AUS-Zustand und die Subpixel Y +
1 bis N in den EIN-Zustand.
-
Wenn
Schritt S100 bestimmt, dass der Wert Y nicht zwischen den Werten
0 und N liegt, bestimmt Schritt S140, ob der Wert P1 größer als
oder gleich 128 ist. Wenn der Wert P1 größer als oder gleich 128 ist, versetzt
Schritt S160 alle Subpixel in den EIN-Zustand. Wenn jedoch Schritt
S140 bestimmt, dass der Wert P1 kleiner als 128 ist, versetzt Schritt
S150 alle Subpixel in den AUS-Zustand.
-
Nach
dem Abschließen
der Prozesse bei den Schritten S60, S70, S120, S130, S150 oder S160
setzt das Fehlerverteilungsverfahren der vorliegenden Erfindung
mit Schritt S170 fort. Bei Schritt S170 wird die Anzahl von Subpixeln
im EIN-Zustand berechnet und gleich Z gesetzt. Anschließend wird
bei Schritt S180 der Fehler berechnet, der auf die nachfolgenden
Pixel fortgepflanzt werden soll. Der Fehler wird nämlich berechnet,
um die ursprüngliche
niedrige räumliche
Auflösung
darzustellen. Bei der Berechnung des Fehlers in Schritt S180 multipliziert
Schritt S190 den Fehler mit Gewichtungskoeffizienten und verteilt
die gewichteten Fehlerbezeichnungen auf nachfolgende Pixel.
-
In
einem zweiten Interpolationsverfahren sind die modifizierten Pixelwerte
P0i = Vi + ei und P1i = Vi+1 + ei. In 25 werden
die Werte P0 und P1 für
die zweite Version des Verfahrens der Fehlerverteilung mit hoher Adressierbarkeit
dargestellt.
-
In 26 wird
der Prozess dargestellt, der in der zweiten Interpolationsversion
des Verfahrens der Fehlerverteilung mit hoher Adressierbarkeit genutzt
wird. Wie in 24 wird das eingegebene modifizierte
Videosignal bei Schritt S10 in N Subpixeleinheiten geteilt. Bei
Schritt S200 werden die Werte für
P0 und P1 berechnet wie oben dargestellt. Bei Schritt S210 werden
die Werte Y und Z gleich 0 gesetzt, wobei Y die Anzahl von Subpixeln
kennzeichnet, die EIN-zuschalten sind, und wobei Z den Adressierbarkeitsfaktor
kennzeichnet. Bei Schritt S220 wird Z mit N verglichen, um zu bestimmen,
ob alle Subpixel innerhalb der modifizierten Videosignale einem
bewertenden Vergleichen mit einem Schwellenwert unterzogen wurden.
Wenn bestimmt wird, dass noch Subpixel einem bewertenden Vergleichen
mit einem Schwellenwert unterzogen werden müssen, setzt der Prozess zu
Schritt S230 fort, wobei der nächste
Subpixelwert berechnet wird.
-
Anschließend vergleicht
Schritt S240 den berechneten Subpixelwert mit dem Grenzwert, nämlich 128. Wenn
der Subpixelwert größer ist
als der Grenzwert oder gleich diesem, versetzt Schritt S260 den
Subpixelwert in den EIN-Zustand, und Schritt S270 inkrementiert
den Wert Y, der die Anzahl von EIN-geschalteten Subpixeln anzeigt.
Wenn jedoch der Subpixelwert geringer ist als 128, versetzt Schritt
S250 den Subpixelwert in den AUS-Zustand.
-
Nach
Abschluss des Schrittes S250 oder des Schrittes 270 setzt der Prozess
mit Schritt S280 fort, wobei der Wert der hohen Adressierbarkeit
Z inkrementiert wird. Diese Unterroutine wird wiederholt, bis alle
Subpixelwerte innerhalb des modifizierten Videosignals mit dem Grenzwert
verglichen wurden. Nach Abschluss des Vergleichens aller Subpixelwerte
schreitet der Prozess zu Schritt S290 voran, wobei die Anzahl von
Subpixeln im EIN-Zustand berechnet wird. Bei Schritt S300 wird der
Fehler aus dem Grenzwert-Prozess
berechnet, so dass der Wert die ursprüngliche geringere räumliche
Auflösung
darstellt. Bei der Berechnung des Fehlers multipliziert Schritt
S310 den Fehler mit Gewichtungskoeffizienten und verteilt den Fehler
auf nachfolgende Pixel.
-
Zum
Bestimmen der EIN- oder AUS-Eigenschaften der Subpixel, wie oben
beschrieben, werden die Subpixelwerte mit einer Anzahl von Vergleichsschritten
verarbeitet. Ein Beispiel der tatsächlichen Architektur der zum
Implementieren des hoch adressierbaren Fehlerverteilungsprozesses
genutzten Schaltung wird im Folgenden diskutiert.
-
Die 1 bis 7 stellen
die Berechnungsschritte dar, die zum Durchführen der Fehlerverteilung mit hoher
Adressierbarkeit unter Nutzung eines bestimmten Interpolationsschemas
erforderlich sind. Zuerst werden, wie in 1 dargestellt,
die Pixelwerte Vi und Vi+1 erhalten.
Die tatsächlichen
Pixelwerte werden grafisch in 1 dargestellt,
wobei der Pixelwert Vi den Pixelwert an
der Subpixelposition 0 darstellt und der Pixelwert Vi+1 stellt
den Pixelwert bei dem Subpixel N dar. In 1 erstrecken
sich die Pixelwerte von 0 bis 255 und nutzen ein herkömmliches
Acht-Bit-Datenwort, um den mehrstufigen Grauwert der zu verarbeitenden
Bilddaten darzustellen. Es wird bemerkt, dass jeder Bereich genutzt
werden kann, um den Graustufenwert der Bilddaten darzustellen; beispielsweise
0 bis 511, 0 bis 127 und dergleichen.
-
Nach
dem Gewinnen der ersten Pixelwerte von Vi und
Vi+1 wird eine verbreitete Fehlerkomponente
ei (der kumulierte Fehler aus vorangegangenen
Pixelbinarisierungsprozessen) zu den Pixelwerten Vi und
Vi+1 addiert. Es wird bemerkt, dass die
Fehlerkomponente ei aus zwei Komponenten
eFIFO und eFB besteht,
wobei eFIFO die summierte Fehlerkomponente
ist, die in einem Zeilenpuffer gespeichert ist, und eFB ist
die Rückkopplungs-Fehlerkomponente.
Das Hinzufügen
der Fehlerkomponente ei wird in 2 grafisch
dargestellt.
-
Nach
dem Addieren der verbreiteten Fehlerkomponente werden die interpolierten
Subpixelwerte berechnet, wie in 3 dargestellt.
So sind beispielsweise die interpolierten Subpixelwerte Bn = P0i + n(P1i – P0i)/N für
n = 0 bis N – 1,
wenn N der ausgewählte
Kennwert der hohen Adressierbarkeit ist. Es wird bemerkt, dass der
Wert P0i gleich Vi +
ei ist und P1i ist
gleich Vi+1 + ei.
-
Nach
dem Berechnen der interpolierten Subpixelwerte wird jeder interpolierte
Subpixelwert mit einer Grenzwertstufe verglichen. In dem in 4 dargestellten
Beispiel beträgt
der Grenzwert 128. Es wird bemerkt, dass dieser Grenzwert
jeder Wert innerhalb des Bereiches der Bilddaten sein kann, abhängig von
den gewünschten
Ergebnissen. In diesem Beispiel ist jedes Subpixel, das einen Wert
größer als
oder gleich 128 besitzt, EIN-geschaltet.
-
Anschließend wird
die gewünschte
Ausgabe (P0i + P1i)/2
berechnet. Dieses Berechnen der gewünschten Ausgabe wird in 5 grafisch
dargestellt. Nach dem Berechnen der gewünschten Ausgabe wird die tatsächliche
Ausgabe berechnet. In diesem Beispiel ist die tatsächliche
Ausgabe gleich n·255/N,
wobei n die Anzahl von Subpixeln ist, die als Ergebnis des in 10 dargestellten
Vergleiches EIN-geschaltet wurden. Eine grafische Darstellung der
berechneten tatsächlichen
Ausgabe wird in 6 dargestellt. Sobald die gewünschte Ausgabe
und die tatsächliche
Ausgabe berechnet wurden, berechnet das Fehlerverteilungsverfahren
den Fehler, der auf nachfolgende Werte fortgepflanzt werden soll.
Dieser Fehler wird als die gewünschte Ausgabe
minus die tatsächliche
Ausgabe berechnet. Eine grafische Darstellung dieser Berechnung
wird in 7 dargestellt.
-
Wie
in 7 dargestellt, wird berechnet, dass der Fehler
ei+1 = (P0i + P1i)/2 – (n·255/N)
ist. In dieser Instanz stellt der Fehler ei+1 den
Fehler aus dem vorliegenden Binarisierungsprozess dar. Wie bei allen
herkömmlichen
Fehlerverteilungsprozessen wird der Fehler aus dem Binarisierungsprozess
auf nachfolgende Pixel verteilt. Das Verteilen des Fehlers ei+1 auf nachfolgende Pixel wird in 8 dargestellt.
In diesem Beispiel nutzt die Fehlerverteilung eine Reihe von Fehlerverteilungskoeffizienten,
die eine schnelle Verarbeitung durch einfache Bitverschiebung zulassen.
-
In 8 wird
das Verteilungsschema dargestellt, das jedem Pixelstandort zugeordnet
ist.
-
In 9 wird
das gerasterte Eingabevideosignal geteilt und in dem Signalspeicher 101 gespeichert, um
somit die gerasterten Pixelwerte V0i und
V1i zu erzeugen. V0i stellt
das gespeicherte gerasterte Eingabevideosignal V1i dar,
wie oben erwähnt,
und V0i stellt den gerasterten Pixelwert
dar, der dem gerasterten Pixelwert V1i in
derselben Abtastlinie vorangeht. Der gerasterte Pixelwert V0i wird zusammen mit der Fehlerkomponente
ei in eine Addiereinrichtung 103 eingegeben.
Darüber
hinaus wird die Fehlerkomponente ei zusammen
mit dem gerasterten Eingabevideosignal V1i in
eine Addiereinrichtung 105 eingegeben. Die Addiereinrichtung 103 erzeugt
ein Ausgabesignal P0i, das in eine Zweier-Komplementschaltung 107 eingegeben
wird, um einen negativen P0i zu erzeugen.
Der negative P0i wird zusammen mit dem Wert
P1i in eine Addiereinrichtung 109 eingegeben,
um den Wert von P1i – P0i zu
erzeugen. Der negative P0i wird darüber hinaus
in eine Addiereinrichtung 111 eingegeben und wird zu dem
Grenzwert addiert. In diesem Beispiel beträgt der Grenzwert 128.
-
Die
Summe aus der Addiereinrichtung 111 wird in den Multiplikator 115 eingegeben,
so dass der Wert (128 – P0i) mit dem Wert des Kennwertes der hohen
Adressierbarkeit N multipliziert werden kann. Das daraus resultierende
Produkt wird anschließend
von einer Dividierschaltung 117 durch die Summe aus der
Addiereinrichtung 109 geteilt. Der daraus resultierende
Quotient wird in einen Decodierer 119 eingegeben. Die tatsächliche
Funktion des Decodierers 119 wird in 10 grafisch
dargestellt.
-
Spezifischer
bestimmt der Decodierer 119, wie in 10 dargestellt,
den Schnittpunkt der Linie P0i/P1i und des Wertes 128. Aus der Bestimmung
dieses Schnittpunktes bestimmt der Decodierer 119 die Anzahl
von Subpixeln n, die EIN-geschaltet sind. Die Ergebnisse aus dem
Decodierer 119 werden als binarisierte Ausgabe einem Druckmodul
sowie einem Multiplikator 121 zugeführt. Der Multiplikator 121 multipliziert
die Ausgabe aus dem Decodierer 119 mit dem Wert (–255/N).
Das Produkt des Multiplikators 121 wird in der Addiereinrichtung 123 zu
einer Summe addiert, die von einer Addiereinrichtung 113 erzeugt
wurde. Die Addiereinrichtung 113 addiert die Werte P0i und P11, um den
Wert P1i + P0i zu
erzeugen.
-
Die
Ergebnisse der Addiereinrichtung 123 stellen die Fehlerkomponente
ei+1 dar, die einer einfachen Bit-Verschiebungsschaltung 125 zugeführt wird,
um verschiedene Fehlerwerte zu erzeugen, die in dem Verteilungsprozess
genutzt werden. Die von der Bit-Verschiebungsschaltung 125 erzeugten
Fehlerwerte werden in eine Fehlerverteilungsschaltung 127 eingegeben,
wobei die eine Hälfte
ErrB des Fehlers auf das anschließende Pixel
in derselben Abtastlinie verteilt wird und die andere Hälfte ErrA des Fehlers wird auf verschiedene Pixel in
der anschließenden
Abtastlinie gemäß dem Gewichtungskoeffizienten
verteilt, der in der Fehlerverteilungsschaltung 127 aufgebaut
wurde.
-
In 11 werden
zwei parallele Berechnungen dargestellt, die durchgeführt werden
können.
Insbesondere wird in 11 dargestellt, dass die gerasterten
Pixelwerte Vi und Vi+1 parallel
zu dem Beginn der Berechnung der gewünschten Ausgabe für ein einzelnes
Subpixel erhalten werden, wobei die gewünschte Ausgabe berechnet wird,
ohne die verbreiteten Fehlerkomponenten eFIFO oder
eFB einzuschließen.
-
Nachdem
diese parallelen Berechnungen abgeschlossen sind, können interpolierte
Subpixelwerte auf dieselbe Weise, wie in 3 dargestellt,
berechnet werden. Parallel zu dieser Berechnung der interpolierten Subpixelwerte
Wirt jedoch weiterhin die gewünschte
Ausgabe berechnet, indem die Fehlerkomponente eFIFO addiert
wird. Dies wird in 12 grafisch dargestellt.
-
Anschließend wird
die Fehlerkomponente eFIFO zu den gerasterten
Pixelwerten Vi sowie Vi+1 und
den interpolierten Subpixeln addiert, wie in 13 dargestellt.
-
Gleichzeitig
(parallel dazu) werden alle möglichen
tatsächlichen
Subpixelausgaben von der gewünschten
Ausgabe subtrahiert, ohne dabei die verbreitete Fehlerkomponente
eFB einzuschließen. Mit anderen Worten, es
werden N mögliche
tatsächliche
Subpixelausgaben von der in 12 berechneten
gewünschten
Ausgabe subtrahiert, um N mögliche
Fehlerausgaben ep zu erzeugen (die gewünschte Ausgabe
minus die tatsächliche
Ausgabe ist gleich dem Fehler er). Die in 13 dargestellten
Berechnungen werden parallel zu den in 14 dargestellten
Berechnungen durchgeführt.
-
Die
Fehlerkomponente eFB wird zu den gerasterten
Pixelwerten Vi, Vi+1 sowie
zu den verschiedenen interpolierten Subpixelwerten addiert, wie
in 15 dargestellt. Gleichzeitig mit dem Addieren
der zurückgeführten Fehlerkomponente
eFB in 15 wird
die Fehlerkomponente eFB zu allen möglichen
gewünschten
Subpixelausgaben addiert, wie in 16 dargestellt.
Mit anderen Worten, die Fehlerkomponente eFB wird
individuell zu allen N Fehlerergebnissen (ep)
addiert, die aus den in 14 gezeigten
Berechnungen stammen.
-
Nach
dem Abschließen
dieser parallelen Berechnungen umfasst der anschließende Schritt
die Berechnungen, die in den 17, 18 und 19 dargestellt
werden. In diesem anschließenden
Schritt wird jeder interpolierte Subpixelwert mit einem Grenzwert
von 128 verglichen, und diejenigen Subpixel mit einem Wert
größer als
der oder gleich dem Grenzwert werden EIN-geschaltet. Dieser Prozess
wird in den 17 und 18 grafisch
dargestellt, wobei 17 den Vergleich der interpolierten
Subpixelwerte mit den Grenzwerten darstellt, und 18 stellt
das EIN-Schalten der Subpixel dar, die einen Wert größer als
der Grenzwert oder gleich diesem besitzen.
-
Da
alle möglichen
Fehlerwerte als ein Ergebnis der in 16 dargestellten
Berechnungen gleichzeitig verfügbar
gemacht wurden, kann nun der Fehler, der fortgepflanzt werden soll,
unmittelbar ausgewählt
werden; das heißt, über einen
Multiplexer und auf Basis der Anzahl von Subpixeln, die EIN-geschaltet
sind. Mit anderen Worten, in 19 wird
der ordnungsgemäß ausgewählte Fehlerwert
aus den verschiedenen gleichzeitig verfügbaren Fehlerwerten dargestellt,
die durch die in 16 dargestellten Berechnungen
erzeugt wurden. Der ausgewählte
Fehlerwert wird anschließend
auf nachfolgende Pixel verteilt, hierzu wird ein beliebiges herkömmliches
Fehlerverteilungsverfah ren genutzt. Der Fehler kann mit den oben
diskutierten Fehlerverteilungskoeffizienten auf nachfolgende Pixel
verteilt werden.
-
In 20 wird
ein Funktionsblockdiagramm einer Fehlerverteilungsschaltung mit
hoher Adressierbarkeit mit parallelen Leitungen dargestellt. In 20 wird
das Eingabevideosignal in eine Fehlerberechnungsschaltung 1 und
eine Videomodifikationsschaltung 3 eingegeben. Die Fehlerkomponenten
eFIFO(ErrB) und eFB(ErrA) werden außerdem in
die Fehlerberechnungsschaltung 1 eingegeben. Die Fehlerberechnungsschaltung
berechnet alle verschiedenen möglichen
Fehlerwerte, die aus dem aktuell auftretenden Binarisierungsprozess
resultieren können.
Die Auswahl des richtigen, von der Fehlerberechnungsschaltung 1 auszugebenden
Fehlers basiert auf dem empfangenen Fehlerauswahlsignal, das im
Folgenden ausführlicher
diskutiert wird.
-
Der
von der Fehlerberechnungsschaltung 1 ausgewählte Fehlerwert
wird in eine Koeffizientenmatrixschaltung 5 eingegeben,
die den Fehler basierend auf einer Reihe von Gewichtungskoeffizienten
verteilt, dies kann jeder beliebige geeignete Koeffizient sein,
wie oben beschrieben. Die Koeffizientenmatrixschaltung 5 unterteilt
die Fehlerwerte in die zwei Komponenten eFIFO(ErrB) und eFB(ErrA). Wie bereits bemerkt, wird der Rückkopplungsfehler,
ErrA, von der Koeffizientenmatrixschaltung 5 erneut
in die Videomodifikationsschaltung 3 und die Fehlerberechnungsschaltung 1 eingegeben.
Die Videomodifikationsschaltung 3 empfängt darüber hinaus den Fehler ErrB von dem Zwischenspeicher 9.
-
Die
Videomodifikationsschaltung 3 erzeugt die interpolierten
Subpixelwerte für
das Fehlerverteilungsverfahren mit hoher Adressierbarkeit, wobei
die interpolierten Subpixelwerte zusammen mit einem Grenzwert in
die Binarisierungsschaltung 7 eingegeben werden.
-
Der
Grenzwert kann 128 sein. Es wird jedoch bemerkt, dass dieser Grenzwert
jeden beliebigen Wert haben kann.
-
Die
Binarisierungsschaltung 7 binarisiert die eingegebenen
Videodaten, um binarisierte Bilddaten für die Verwendung durch eine
Bildwiedergabevorrichtung auszugeben. Die Binarisierungsschaltung 7 erzeugt darüber hinaus
das Fehlerauswahlsignal, das von der Fehlerberechnungsschaltung 1 genutzt
wird, um den korrekten Fehlerwert auszuwählen, der in die Koeffizientenmatrixschaltung 5 eingegeben
werden muss. Dieses Fehlerauswahlsignal stellt die Anzahl interpolierter
Subpixel dar, die während
des Binarisierungsprozesses EIN-geschaltet sind. Somit kann die
Fehlerberechnungsschaltung 1 einen Multiplexer enthalten,
um diese Auswahl zu treffen. Wie in 20 dargestellt,
ist die Fehlerberechnungsschaltung 1 parallel zu der Videomodifikationsschaltung 3 und
der Binarisierungsschaltung 7.
-
In 21 wird
ein ausführliches
Blockdiagramm der Schaltung einer anderen Ausführungsform einer hoch adressierbaren
Fehlerverteilung dargestellt. Wie in 21 dargestellt,
werden viele Berechnungen, wie vorstehend im Hinblick auf die 11 bis 19 beschrieben,
parallel durchgeführt.
-
Die
Pixelwerte Vi und Vi+1 werden
durch die Nutzung eines Signalspeichers 205 erhalten, der
die Videosignale speichert, so dass zwei angrenzende Fast-Scan-Pixel
für die
Verarbeitung verfügbar
sind. Die Pixelwerte Vi und Vi+1 werden
in der Addiereinrichtung 206 addiert und die Summe wird
von der Divisionseinrichtung 207 durch zwei geteilt. Das
Ergebnis der Divisionseinrichtung 207 wird mit der Fehlerbezeichnung
eFIFO in die Addiereinrichtung 208 eingegeben.
Die Summe stellt die gewünschte
Ausgabe an den Drucker dar.
-
Parallel
zu dem oben beschriebenen Prozess erzeugt eine Schaltung zum Erzeugen
einer tatsächlichen
Ausgabe 200 auf Basis des Kennwertes der hohen Adressierbarkeit
alle möglichen
Ausgaben an den Drucker. Es wird bemerkt, dass diese Werte negativ
sind, da eine Addiereinrichtung für Subtraktionsoperationen genutzt
wird. Wenn der Kennwert der hohen Adressierbarkeit N ist, werden
N mögliche
tatsächliche
Ausgaben erzeugt. Darüber
hinaus erzeugt eine Subpixelschaltung 209 parallel zu dem
oben beschriebenen Prozess alle interpolierten Subpixel auf Basis
der Pixelwerte Vi und Vi+1.
-
Anschließend wird
die Fehlerkomponente eFIFO von der Addiereinrichtung 210 zu
jedem der interpolierten Subpixel addiert. Gleichzeitig (parallel
dazu) wird jede mögliche
tatsächliche
Ausgabe (negative Werte) durch die Addiereinrichtung 201 individuell
zu der gewünschten
Ausgabe aus der Addiereinrichtung 208 addiert. Mit anderen
Worten, es werden N mögliche
tatsächliche
Subpixelausgaben von der gewünschten
Ausgabe subtrahiert, um N mögliche
Fehlerausgaben zu erzeugen.
-
In
den Addiereinrichtungen 211 und 202 wird eine
Rückkopplungsfehlerbezeichnung
eFB zu jeder Summierung der Addiereinrichtungen 210 beziehungsweise 201 addiert.
Diese Berechnungen werden parallel durchgeführt. Nach dem Abschließen dieser
parallelen Berechnungen wird in der Grenzwertschaltung 212 jedes
interpolierte Subpixel aus der Addiereinrichtung 211 mit
einem Grenzwert verglichen. Subpixel mit einem Wert, der größer ist
als der Grenzwert oder gleich diesem, werden EIN-geschaltet. Die
Grenzwertschaltung 212 gibt eine Anzahl aus, die die EIN-geschaltete
Anzahl von Subpixeln darstellt. Diese Informationen werden in eine
Decodierer-Logikschaltung 213 eingegeben, die eine an einen
Drucker (nicht dargestellt) zu sendende binäre Ausgabe davon erzeugt.
-
Darüber hinaus
werden die Fehlerbezeichnungen aus der Addiereinrichtung 202 in
einen Multiplexer 203 eingegeben, der auswählt, welche
Fehlerbezeichnung auf nachfolgende Pixel fortzupflanzen ist. Die
Fehlerbezeichnung wird auf Basis eines von der Decodierer-Logikschaltung 213 empfangenen
Steuersignals ausgewählt.
Die ausgewählte
Fehlerbezeichnung wird in eine Verteilungsschaltung 204 eingegeben,
die den anschließenden
Rückkopplungsfehler
eFB und den Fehler eFIFO erzeugt,
der in einem Zwischenspeicher für
eine Nutzung bei der Verarbeitung der anschließenden Abtastlinie gespeichert
wird.
-
Wie
oben bemerkt, können
diese hoch adressierbaren Fehlerverteilungsschaltungen isolierte
Subpixel erzeugen, die von dem angehängten Drucksystem möglicherweise
nicht gedruckt werden können.
Somit schlägt
die vorliegende Erfindung zwei Ansätze vor, um das Durchleiten
von isolierten Subpixeln an das Drucksystem zu verhindern.
-
Der
erste Ansatz besteht darin, dem Fehlerverteilungsprozess Einschränkungen
aufzuerlegen, indem bestimmte Zustände nicht zugelassen werden,
die ein isoliertes Subpixel erzeugen würden. Die nicht zugelassenen
Zustände
werden von dem Bitausgabemuster des vorangegangenen Pixels bestimmt.
-
Ein
Beispiel dieses Ansatzes wird diskutiert, hierzu wird ein System
mit zwei hoch adressierbaren Bits in der Fast-Scan-Richtung genutzt.
In diesem System werden für
jeden Standort pro eingegebenes Pixel zwei Ausgabebits erzeugt.
Angenommen, das vorangegangene Pixel besitzt das Ausgabebitmuster „01 ". Die vorliegende
Erfindung würde
die Bitausgabemuster „00" und „01" als nicht zugelassenene
Zustände
für das
vorliegende Pixel zuweisen, da das verkettete Muster (kombinierte
Muster des vorangegangenen Zustandes und des vorliegenden Zustandes) „0100" und „0101" ein isoliertes Subpixel
(das zweite Bit von links für
die beiden verketteten Muster) enthalten würde.
-
Obwohl
dieser Ansatz für
viele Systeme gilt, in denen Echtzeit kein Kriterium ist, beispielsweise
bei Bildsystemen, die Software zur Fehlerverteilung einsetzen, oder
bei Systemen, bei denen die Pixelrate nicht sehr hoch ist, kann
in einem System, das mehr als 50 Millionen Pixel pro Sekunde verarbeitet,
die Fähigkeit zum Überprüfen auf
nicht zugelassene Zustände
nicht in einer Echtzeit-Implementierung umgesetzt werden. Somit
nutzt der zweite Ansatz der vorliegenden Erfindung einen anschließenden Fehlerverteilungsprozess,
der die Erzeugung einzelner isolierter Subpixel überprüft und korrigiert, indem er
den eingehenden Bitstrom manipuliert und die von dem Fehlerverteilungsprozess
erzeugten Fehler modifiziert. Dieser Prozess nimmt Eingriffe an
dem von dem Fehlerverteilungsprozess ausgegebenen Datenstrom vor.
-
In
einer bevorzugten Ausführungsform
wird die Manipulation des eingehenden Bitstroms durch die Nutzung
eines morphologischen Filters gelöst, der als ein Zustandsautomat
implementiert ist. Der Zustandsautomat nutzt das fehlerverteilte
Subpixelmuster für
ein eingegebenes Pixel und das fehlerverteilte Subpixelmuster für den aktuellen
Zustand, um eine korrigierte Subpixelmusterausgabe sowie das anschließende Zustandsmuster
auszugeben. Ein derartiger Zustandsautomat wird in 27 dargestellt.
-
Wie
in
27 dargestellt, wird das fehlerverteilte Subpixelmuster
des aktuellen Zustandes in die Logikschaltungen
21 und
22 eingegeben,
die darüber
hinaus das fehlerverteilte Subpixelmuster für ein bestimmtes Pixel von
der Verzögerungseinheit
23 erhalten.
Die Logikschaltung
22 gibt das korrigierte Subpixelmuster auf
Basis des Bitmusters des aktuellen Zustandes und des fehlerverteilten
Bitmusters für
das eingegebene Pixel aus. Andererseits gibt die Logikschaltung
21 das
Subpixelmuster des nächsten
Zustan des auf Basis des Bitmusters des aktuellen Zustandes und des
fehlerverteilten Bitmusters für
das eingegebene Pixel aus. In der bevorzugten Ausführungsform
der vorliegenden Erfindung erzeugen die Logikschaltungen
21 und
22 die
Ausgabemuster gemäß den Tabellen
1 beziehungsweise 2, wie im Folgenden dargestellt. Tabelle 3 im
Folgenden stellt den Gesamt-Filteraspekt des in
27 dargestellten
Zustandsautomaten dar. Die Tabellen im Folgenden stellen Beispiele
für ein
Drucksystem mit einem Kennwert der hohen Adressierbarkeit von 2
dar. Tabelle 1
BITMUSTER
DES AKTUELLEN ZUSTANDES Z(i) | BITMUSTER
Vin(i, k) DES EINGEGEBENEN PIXELS | BITMUSTER
DES NACHSTEN ZUSTANDES Z(i+1) |
00 | 00 | 00 |
00 | 01 | 01 |
00 | 10 | 01 |
00 | 11 | 11 |
01 | 00 | 00 |
01 | 01 | 11 |
01 | 10 | 10 |
01 | 11 | 11 |
10 | 00 | 00 |
10 | 01 | 01 |
10 | 10 | 00 |
10 | 11 | 11 |
11 | 00 | 00 |
11 | 01 | 10 |
11 | 10 | 10 |
11 | 11 | 11 |
Tabelle 2
BITMUSTER
DES AKTUELLEN ZUSTANDES Z(i) | BITMUSTER
Vin(i, k) DES EINGEGEBENEN PIXELS | AUSGABEBITMUSTER
Vout(i + 1, k) |
00 | 00 | 00 |
00 | 01 | 00 |
00 | 10 | 00 |
00 | 11 | 00 |
01 | 00 | 00 |
01 | 01 | 00 |
01 | 10 | 01 |
01 | 11 | 01 |
10 | 00 | 10 |
10 | 01 | 10 |
10 | 10 | 11 |
10 | 11 | 11 |
11 | 00 | 11 |
11 | 01 | 11 |
11 | 10 | 11 |
11 | 11 | 11 |
Tabelle 3
BITMUSTER
DES AKTUELLEN ZUSTANDES Z(i) | BITMUSTER
Vin(i, k) DES EINGEGEBENEN PIXELS) | AUSGABEBITMUSTER Vout(i
+ 1, k) | BITMUSTER
DES NÄCHSTEN
ZUSTANDES Z(i + 1) |
00 | 00 | 00 | 00 |
00 | 01 | 00 | 01 |
00 | 10 | 00 | 01 |
00 | 11 | 00 | 11 |
01 | 00 | 00 | 00 |
01 | 01 | 00 | 11 |
01 | 10 | 01 | 10 |
01 | 11 | 01 | 11 |
10 | 00 | 10 | 00 |
10 | 01 | 10 | 01 |
10 | 10 | 11 | 00 |
10 | 11 | 11 | 11 |
11 | 00 | 11 | 00 |
11 | 01 | 11 | 10 |
11 | 10 | 11 | 10 |
11 | 11 | 11 | 11 |
-
Eine
Möglichkeit,
das Filter 20 aus 27 zu
betrachten, besteht darin, den Zustand Z(i) als eine Zwischenausgabe
zu betrachten. Er ist das, was die anschließende Ausgabe, Vout(i
+ 1), werden wird, wenn das verkettete Pixelmuster C(i,k)
= (Vin(i, k), Z(i)) keine isolierten Subpixel
enthält.
Genauer gesagt, wenn keine isolierten Subpixel in dem Fehlerverteilungsstrom
entdeckt werden, bleibt die Ausgabe unverändert von der Eingabe.
-
An
Mustern, die keine isolierten Subpixel enthalten, werden keine Korrekturen
vorgenommen.
-
Wird
ein einzelnes Subpixel in dem verketteten Pixelmuster C(i, k) entdeckt,
wird entweder das anschließende
Ausgabepixel oder der anschließende
Zwischenzustand geändert,
um das isolierte Subpixel zu eliminieren. Es wird bemerkt, wenn
sich der Zwischenzustand ändert,
dass sich die Änderung
auf alle zukünftigen
Eingaben fortsetzt, da das Zustandsautomat-Filter eine Rückkopplungsschleife
ist. Es ist daher vorteilhaft, wenn möglich, das einzelne Subpixel
zu eliminieren, indem der Ausgabezustand geändert wird, da dies dazu neigt,
alle Änderungen
in dem Ausgabemuster zu verorten.
-
Ein
Beispiel für
diesen Prozess des Eliminierens isolierter Subpixel ist in 31 darge stellt.
Das in 31 dargestellte Beispiel bezieht
sich auf eine Situation, in der der Kennwert der hohen Adressierbarkeit drei
beträgt;
das heißt,
es werden für
jedes ursprüngliche
Bilddaten-Pixel drei Bilddaten-Subpixel erzeugt. Darüber hinaus
stellt jedes waagerechte Oval in 31 einen
Punkt in der Zeit für
das Verarbeiten eines Bilddaten-Pixels dar.
-
Wie
in 31 in dem Oval 300 dargestellt, wird
das drei Subpixel enthaltende Bitmuster (111) für Pixel(N-1) mit
dem drei Subpixel enthaltenden Bitmuster (000) für Pixel(N) verglichen.
Aus diesem Vergleich bei Oval 301 gibt eine Subpixel-Eliminierungsschaltung
ein Subpixel-Bitmuster (111) aus, das dem Pixel(N-1) entspricht,
und verschiebt (speichert) das Subpixel-Bitmuster (000), das dem
Pixel(N) entspricht, so, dass dieses für den anschließenden Vergleich
verfügbar
ist. Bei Oval 302 wird das Subpixel-Bitmuster (100) für Pixel(N+1) empfangen und mit dem Subpixel-Bitmuster
(000) für
Pixel(N) verglichen. Anschließend gibt
bei Oval 303 die Subpixel-Eliminierungsschaltung ein Subpixel-Bitmuster
(000) aus, das dem Pixel(N)entspricht, ändert das
Subpixel-Bitmuster
für Pixel(N+1) in (110), um das isolierte Subpixel
zu eliminieren (das erste Subpixel in dem Bitmuster für Pixel(N+1), und verschiebt (speichert) das neue
Subpixel-Bitmuster
(110), das dem Pixel(N+1) entspricht, so,
dass es für
den anschließenden
Vergleich verfügbar
ist.
-
Bei
Oval 304 wird das neue Subpixel-Bitmuster (110) für Pixel(N+1) mit dem empfangenen Subpixelbitmuster
(110) für
Pixel(N+2) verglichen. Aus diesem Vergleich
gibt bei Oval 305 die Subpixel-Eliminierungsschaltung ein
Subpixel-Bitmuster (111) aus, das dem Pixel(N+1) entspricht, ändert das
Subpixel-Bitmuster für
Pixel(N+2) in (100), um das isolierte Subpixel
zu eliminieren (das letzte Subpixel in dem Bitmuster für Pixel(N+1)), und verschiebt (speichert) das neue
Subpixel-Bitmuster (100), das dem Pixel(N+2) entspricht,
so, dass es für
den anschließenden
Vergleich verfügbar
ist. Bei Oval 306 wird das Subpixel-Bitmuster (001) für Pixel(N+3) empfangen und mit dem Subpixel-Bitmuster
(100) für
Pixel(N+2) verglichen. Anschließend gibt
bei Oval 307 eine Subpixel-Eliminierungsschaltung ein Subpixel-Bitmuster
(100) aus, das dem Pixel(N+2) entspricht,
und verschiebt (speichert) das Subpixel-Bitmuster (001), das dem
Pixel(N+3) entspricht, so, dass dieses für den anschließenden Vergleich
verfügbar
ist.
-
Bei
Oval 308 wird das Subpixel-Bitmuster (001) für Pixel(N+3) empfangen und mit dem Subpixel-Bitmuster
(001) für
Pixel(N+4) verglichen. Aus diesem Vergleich
gibt bei Oval 309 die Subpixel-Eliminierungsschaltung ein
neues Subpixel-Bitmuster (000) aus, das dem Pixel(N+3) entspricht, ändert das
Subpixel-Bitmuster
für Pixel(N+4) in (011), um das isolierte Subpixel
zu eliminieren (das letzte Subpixel in dem Bitmuster für Pixel(N+3)), und verschiebt (speichert) das neue
Subpixel-Bitmuster (011), das dem Pixel(N+4) entspricht,
so, dass es für
den anschließenden
Vergleich verfügbar
ist. Bei Oval 310 wird das Subpixel-Bitmuster (011) für Pixel(N+5) empfangen und mit dem Subpixel-Bitmuster
(011) für
Pixel(N+4) verglichen. Anschließend gibt bei
Oval 311 die Subpixel-Eliminierungsschaltung ein neues
Subpixel-Bitmuster
(001) aus, das dem Pixel(N+4) entspricht, ändert das
Subpixel-Bitmuster für
Pixel(N+5) in (111), um das isolierte Subpixel
zu eliminieren (das erste Subpixel in dem Bitmuster für Pixel(N+5)), und verschiebt (speichert) das neue
Subpixel-Bitmuster (111), das dem Pixel(N+5) entspricht,
so, dass es für
den anschließenden
Vergleich verfügbar
ist. Dieser Prozess wird fortgesetzt, bis alle Pixel (Subpixelbitmuster)
verarbeitet sind.
-
Der
zweite Teil des Verfahrens beschäftigt
sich mit dem Verändern
des Fehlers, der in der Slow-Scan-Richtung verbreitet wird, um Änderungen
Rechnung zu tragen, die am Ausgabebitmuster vorgenommen wurden.
Hierdurch wird sichergestellt, dass die Gesamtzahl schwarzer und
weißer
Subpixel durch den Subpixelmanipulationsprozess nicht verändert wird.
-
Wie
bereits vorher festgestellt, ist in den meisten Drucksystemen nicht
genug Zeit zum Ändern
des Fehlerverteilungsprozesses vorhanden, um das Einschließen nicht
zugelassener Zustände
einzufügen.
Darüber
hinaus ist nicht genug Zeit vorhanden, um den Fehler, der in der
Fast-Scan-Richtung fortgepflanzt wurde, zu modifizieren, da dies
zu dem Zeitpunkt, wenn das Pixel-Ausgabemuster modifiziert worden
ist, bereits genutzt wurde. Der an zukünftige Scanlinien weitergegebene
Fehler (der Fehler, der in der Slow-Scan-Richtung verbreitet wird)
kann jedoch variiert werden, da dies erst zu einem viel späteren Zeitpunkt
benötigt
wird. Dieses Weitergeben des Fehlers an Pixel in der Slow-Scan-Richtung
erfolgt dort, wo Informationen hinsichtlich der Subpixelmanipulation
in der weiteren Verarbeitung von Pixelinformationen berücksichtigt
werden können.
-
Wie
oben beschrieben, werden in einem typischen Fehlerverteilungsprozess
eine eingegebene Graustufe sowie ein Ausgabepixelmuster zum Bestimmen
des Fehlers, der gemäß einer
Reihe von Gewichtungskoeffizienten auf zukünftige Pixel fortgepflanzt
wird, genutzt. Gleichermaßen
wird die Fehlerdifferenz zwischen dem fehlerverteilten erzeugten
Bitmuster und dem Ausgabebitmuster nach der Subpixelmanipulation
genutzt, um einen Fehler auf Pixel in der Slow-Scan-Richtung fortzupflanzen.
-
Als
ein Beispiel für
diesen Prozess wird angenommen, dass ein weißes Subpixel einen numerischen Wert
Ws besitzt und dass ein schwarzes Subpixel
einen numerischen Wert Bs besitzt. Wenn
also ein einzelnes Pixel aus N weißen Subpixeln und M – N schwarzen
Subpixeln besteht, wenn M eine Anzahl hoch adressierbarer Bits ist,
besitzt das einzelne Pixel einen numerischen Wert (M·Bs + N·(Ws – Bs)). Wenn aufgrund der Manipulation, wie
oben beschrieben, dieses Muster zu N + K weißen Pixeln und M – N – K schwarzen
Subpixeln geändert
wird, besitzt das einzelne Pixel einen neuen numerischen Wert (M·Bg + (N
+ K)·(Ws – Bs)). Diese Änderung des numerischen Wertes
des einzelnen Pixels ist gleich K·(Ws – Bs). Ähnlich
wie bei der herkömmlichen Fehlerverteilung
ist der Fehler, der erzeugt wird, gleich der numerischen Differenz
zwischen dem Eingabe- und dem Ausgabebitmuster. In der vorliegenden
Erfindung ist der erzeugte Fehler gleich dem Subpixelfehler = K·(Bs – Ws), wobei K die Anzahl von Subpixeln in dem
einzelnen Pixel ist, die von schwarz nach weiß geändert werden.
-
Dieser
Fehler kann auf die anschließende
Abtastlinie oder das Pixel in der Slow-Scan-Richtung mit jeder beliebigen Kombination
von Gewichtungen fortgepflanzt werden, die in der Summe Eins ergeben.
In einer bevorzugten Ausführungsform
nutzt der Fehlerverteilungsprozess für den Prozess des Eliminierens
isolierter Subpixel dieselbe Reihe von Slow-Scan-Koeffizientengewichtungen,
die bereits von dem hoch adressierbaren Fehlerverteilungsprozess
implementiert werden. Wenn diese Koeffizientengewichtungen genutzt
werden, ist es möglich,
den durch den herkömmlichen
Fehlerverteilungsprozess fortgepflanzten Fehler mit der Fehlerkorrektur
für Subpixelmanipulation
zu kombinieren, wodurch das Bedürfnis
nach zusätzlicher
Hardware zum Implementieren des Prozesses verringert wird.
-
Es
wird jedoch bemerkt, dass die Summe der Slow-Scan-Koeffizienten
nicht eins ergibt, somit ist es notwendig, den Subpixelkorrekturfehler
zu normalisieren, so dass der resultierende Fehler, der an die Pixel
in der Slow-Scan-Richtung weitergegeben wird, unverändert bleibt.
So wäre
beispielsweise der in der Slow-Scan-Richtung weitergegebene Subpixelfehler
gleich dem Subpixelfehler, dividiert durch die Summe der Slow-Scan-Koeffizienten.
-
Wenn
der Fehler zusätzlich
zu dem normalen, durch den Fehlerverteilungsprozess erzeugten Fehler in
der Slow-Scan-Richtung fortgepflanzt wird, bleibt die Gesamtanzahl
schwarzer und weißer
Subpixel identisch. Mit anderen Worten, die durchschnittliche Graustufe
wird durch dieses Verfahren nicht geändert.
-
In 30 wird
ein einfaches Ablaufdiagramm dargestellt, das einen Prozess des
Eliminierens isolierter Subpixel darstellt. Wie in 30 dargestellt,
eliminiert Schritt S401 jedes isolierte Subpixel und nutzt dazu Filtern
(Logik) wie oben beschrieben, ändert
die binäre
Ausgabe gemäß dieser
Eliminierung und bestimmt die Anzahl von Subpixeln, die von weiß nach schwarz
oder von schwarz nach weiß geändert wurden.
Anschließend
berechnet Schritt S402 den Fehler, der sich aus der Routine des
Eliminierens isolierter Subpixel ergibt, indem die Anzahl von Subpixeln,
die von weiß nach
schwarz oder von schwarz nach weiß geändert wurden, mit der Differenz
zwischen einem weißen
Subpixelwert und einem schwarzen Subpixelwert multipliziert wird. Schließlich verteilt
Schritt S403 den Fehler auf Slow-Scan-Pixelpositionen in einem FIFO-Zwischenspeicher.
-
In 28 wird
ein Blockdiagramm zum Durchführen
des Prozesses des Eliminierens isolierter Subpixel dargestellt.
In 28 wird das Eingabevideosignal in eine Fehierberechnungsschaltung 1 und
eine Videomodifikationsschaltung 3 eingegeben. Die Fehlerkomponenten
eFIFO(ErrB) und
eFB(ErrA) werden
ebenfalls in die Fehlerberechnungsschaltung 1 eingegeben.
Die Fehlerberechnungsschaltung 1 berechnet alle verschiedenen möglichen
Fehlerwerte, die aus dem aktuell auftretenden Binarisierungsprozess
resultieren können.
Die Auswahl des richtigen, von der Fehlerberechnungsschaltung 1 auszugebenden
Fehlers basiert auf dem empfangenen Fehlerauswahlsignal, das im
Folgenden ausführlicher
diskutiert wird.
-
Der
von der Fehlerberechnungsschaltung 1 ausgewählte Fehlerwert
wird in eine Koeffi zientenmatrixschaltung 5 eingegeben,
die den Fehler basierend auf einer Reihe von Gewichtungskoeffizienten
verteilt. Die Koeffizientenmatrixschaltung 5 unterteilt
die Fehlerwerte in die zwei Komponenten eFIFO(ErrB) und eFB(ErrA). Wie bereits bemerkt, wird der Rückkopplungsfehler,
ErrA, von der Koeffizientenmatrixschaltung 5 erneut
in die Videomodifikationsschaltung 3 und die Fehlerberechnungsschaltung 1 eingegeben.
Die Videomodifikationsschaltung 3 empfängt darüber hinaus den Fehler ErrB von dem Zwischenspeicher 9.
-
Die
Videomodifikationsschaltung 3 erzeugt die interpolierten
Subpixelwerte für
das Fehlerverteilungsverfahren mit hoher Adressierbarkeit, wobei
die interpolierten Subpixelwerte zusammen mit einem Grenzwert in
die Binarisierungsschaltung 7 eingegeben werden. In der
bevorzugten Ausführungsform
der vorliegenden Erfindung beträgt
der Grenzwert 128. Es wird jedoch bemerkt, dass dieser
Grenzwert jeden beliebigen Wert haben kann.
-
Die
Binarisierungsschaltung 7 binarisiert die eingegebenen
Videodaten, um binarisierte Bilddaten auszugeben, die in eine Eliminierungsschaltung
für einzelne
Subpixel 20 und eine Schaltung für die Änderung der Anzahl der Subpixel 23 einzugeben
sind. In der bevorzugten Ausführungsform
der vorliegenden Erfindung ist die Eliminierungsschaltung für einzelne
Subpixel 20 der in 27 dargestellte
Zustandsautomat.
-
Die
Eliminierungsschaltung für
einzelne Subpixel 20 gibt die Bilddaten für eine Nutzung
durch eine Bilddarstellungsvorrichtung und die Schaltung für die Änderung
der Anzahl der Subpixel 23 aus. Die Schaltung für die Änderung
der Anzahl der Subpixel 23 bestimmt die Anzahl der Subpixel-Zustandsänderungen
durch Vergleichen der in die Eliminierungsschaltung für einzelne
Subpixel 20 eingegebenen Bilddaten und der von der Eliminierungsschaltung
für einzelne
Subpixel 20 erzeugten Bilddaten. Dieser Wert wird in einen
Multiplikator 24 eingegeben, der den geänderten numerischen Wert mit
einem Differenzwert multipliziert, der gleich einer Differenz zwischen
einem weißen
Subpixelwert und einem schwarzen Subpixelwert ist, um einen Subpixelfehlerwert
zu erzeugen. Der Subpixelfehlerwert wird zusammen mit dem Slow-Scan-Fehler
aus der Koeffizientenmatrixschaltung 5 in die Slow-Scan-Fehleranpassungsschaltung 25 eingegeben,
und die Slow-Scan-Fehleranpassungsschaltung 25 verteilt
Slow-Scan-Fehler gemäß dem Prozess,
wie oben beschrieben, über
einen FIFO-Zwischenspeicher 9 auf angrenzende Pixel.
-
Die
Binarisierungsschaltung 7 erzeugt darüber das Fehlerauswahlsignal,
das von der Fehlerberechnungsschaltung 1 genutzt wird,
um den korrekten Fehlerwert auszuwählen, der in die Koeffizientenmatrixschaltung 5 eingegeben
werden muss 5. Dieses Fehlerauswahlsignal stellt die Anzahl
interpolierter Subpixel dar, die während des Binarisierungsprozesses
EIN-geschaltet sind. Somit kann die Fehlerberechnungsschaltung 1 einen
Multiplexer enthalten, um diese Auswahl zu treffen. Wie in 20 dargestellt,
ist die Fehlerberechnungsschaltung 1 parallel zu der Videomodifikationsschaltung 3 und
der Binarisierungsschaltung 7.
-
In 29 wird
ein Blockdiagramm zum Durchführen
des Prozesses des Eliminierens isolierter Subpixel gemäß einer
anderen Ausführungsform
dargestellt. Wie in 29 dargestellt, werden die Pixelwerte
Vi und V1+i durch
die Nutzung eines Signalspeichers 205 erhalten, der das
Videosignal speichert, so dass zwei angrenzende Fast-Scan-Pixel
für die
Verarbeitung verfügbar
sind. Die Pixelwerte Vi und Vi+1 werden
in der Addiereinrichtung 206 addiert und die Summe wird
von der Divisionseinrichtung 207 durch zwei geteilt. Das
Ergebnis der Divisionseinrichtung 207 wird mit der Fehlerbezeichnung
eFIFO in die Addiereinrichtung 208 eingegeben.
Die Summe stellt die gewünschte
Ausgabe an den Drucker dar.
-
Parallel
zu dem oben beschriebenen Prozess erzeugt eine Schaltung zum Erzeugen
einer tatsächlichen
Ausgabe 200 auf Basis des Kennwertes der hohen Adressierbarkeit
alle möglichen
Ausgaben an den Drucker. Es wird bemerkt, dass diese Werte negativ
sind, da eine Addiereinrichtung für Subtraktionsoperationen genutzt
wird. Wenn der Kennwert der hohen Adressierbarkeit N ist, werden
N mögliche
tatsächliche
Ausgaben erzeugt. Darüber
hinaus erzeugt eine Subpixelschaltung 1 parallel zu dem
oben beschriebenen Prozess alle interpolierten Subpixel auf Basis
der Pixelwerte Vi und Vi+1.
-
Anschließend wird
die Fehlerkomponente eFIFO von der Addiereinrichtung 210 zu
jedem der interpolierten Subpixel addiert. Gleichzeitig (parallel
dazu) wird jede mögliche
tatsächliche
Ausgabe (negative Werte) durch die Addiereinrichtung 201 individuell
zu der gewünschten
Ausgabe addiert. Mit anderen Worten, es werden N mögliche tatsächliche
Subpixelausgaben von der gewünschten
Ausgabe subtrahiert, um N mögliche Fehlerausgaben
zu erzeugen.
-
In
den Addiereinrichtungen 211 und 202 wird eine
Rückkopplungsfehlerbezeichnung
eFB zu jeder Summierung der Addiereinrichtungen 210 beziehungsweise 201 addiert.
Diese Berechnungen werden parallel durchgeführt. Nach dem Abschließen dieser
parallelen Berechnungen wird in der Grenzwertschaltung 212 jedes
interpolierte Subpixel aus der Addiereinrichtung 211 mit
einem Grenzwert verglichen. Subpixel mit einem Wert, der größer als
der Grenzwert oder gleich diesem ist, werden EIN-geschaltet. Die
Grenzwertschaltung 212 gibt eine Anzahl aus, die die Anzahl
EIN-geschalteter Subpixel darstellt. Diese Informationen werden
in eine Decodierer-Logikschaltung 213 eingegeben, die ein
binäres
Subpixel-Bitmuster daraus erzeugt, das in die Eliminierungsschaltung
für einzelne
Subpixel 20 und in die Schaltung für die Änderung der Anzahl der Subpixel 23 eingegeben
wird.
-
In
einer bevorzugten Ausführungsform
der vorliegenden Erfindung ist die Eliminierungsschaltung für einzelne
Subpixel 20 der in 27 dargestellte
Zustandsautomat.
-
Die
Eliminierungsschaltung für
einzelne Subpixel 20 gibt die Bilddaten für eine Nutzung
durch eine Bilddarstellungsvorrichtung und die Schaltung für die Änderung
der Anzahl der Subpixel 23 aus. Die Schaltung für die Änderung
der Anzahl der Subpixel 23 bestimmt die Anzahl der Subpixel-Zustandsänderungen
durch Vergleichen der in die Eliminierungsschaltung für einzelne
Subpixel 20 eingegebenen Bilddaten und der von der Eliminierungsschaltung
für einzelne
Subpixel 20 erzeugten Bilddaten 20. Dieser Wert
wird in einen Multiplikator 24 eingegeben, der den geänderten
numerischen Wert mit einem Differenzwert multipliziert, der gleich einer
Differenz zwischen einem weißen
Subpixelwert und einem schwarzen Subpixelwert ist, um einen Subpixelfehlerwert
zu erzeugen. Der Subpixelfehlerwert wird zusammen mit dem Slow-Scan-Fehler
aus der Verteilungsschaltung 204 in die SIow-Scan-Fehieranpassungsschaitung 25 eingegeben,
und die Slow-Scan-Fehleranpassungsschaltung 25 verteilt
Slow-Scan-Fehler gemäß dem Prozess
wie oben beschrieben zum Senden an einen Drucker (nicht dargestellt)
auf angrenzende Pixel über
einen FIFO-Zwischenspeicher (nicht dargestellt).
-
Darüber hinaus
werden die Fehlerbezeichnungen aus der Addiereinrichtung 202 in
einen Multiplexer 203 eingegeben, der auswählt, welche
Fehlerbezeichnung auf nachfolgende Pixel fortzupflanzen ist. Die
Fehlerbezeichnung wird auf Basis eines von der Decodierer-Logikschaltung 213 empfangenen
Steuersignals ausgewählt.
Die ausgewählte
Fehlerbezeichnung wird in eine Verteilungsschaltung 204 eingegeben,
die den anschließenden
Rückkopplungsfehler
und den Fehler erzeugt, der an die Slow-Scan-Fehleranpassungsschaltung 25 zu
senden ist, um für
eine Nutzung bei der Verarbeitung der anschließenden Abtastlinie an den FIFO-Zwischenspeicher
weitergeleitet zu werden.
-
Obwohl
die vorliegende Erfindung ausführhlich
oben beschrieben wurde, können
verschiedene Modifikationen implementiert werden, ohne von dem Umfang
der vorliegenden Erfindung abzuweichen. So wurde beispielsweise
eine Ausführungsform
hinsichtlich eines Drucksystems beschrieben; das Verfahren kann
jedoch auch einfach in einem Anzeigesystem implementiert werden.
Darüber
hinaus kann das Fehlerverteilungsverfahren mit hoher Adressierbarkeit
einfach in einem ASIC, einer programmierbaren Gatteranordnung oder
in Software implementiert werden, wodurch das Implementieren dieses
Prozesses in einem Scanner, einem elektronischen Untersystem, einem
Drucker oder einer Anzeigevorrichtung ermöglicht wird.
-
Die
oben beschriebenen Implementierungen nutzen einige Parallelismen,
die Verfahren sind jedoch ebenfalls einfach in einer vollständigeren
seriellen Implementierung oder einer vollständigeren parallelen Implementierung
anwendbar.
-
Darüber hinaus
wurden verschiedene Beispiele in Bezug auf einen Videobereich zwischen
0 und 255 beschrieben. Es wird jedoch in Erwägung gezogen, dass der Videobereich
jeder geeignete Bereich sein kann, mit dem die Graustufe des zu
verarbeitenden Pixels beschrieben werden kann. Darüber hinaus
sind die Verfahren einfach auf jedes beliebige Darstellungssystem
anwendbar, dies muss nicht notwendigerweise eine binäre Ausgabevorrichtung
sein. Es wird in Erwägung
gezogen, dass die Konzepte leicht auf einen vierstufigen Ausgabeanschluss
oder höher
anwendbar sind.
-
Schließlich wurden
Verfahren hinsichtlich einer monochromen oder Schwarzweiß- Umgebung beschrieben.
Die Konzepte sind jedoch ebenfalls leicht auf eine Farbumgebung
anwendbar. Der hoch adressierbare Fehlerverteilungsprozess kann
nämlich
auf jeden Farbraumwert angewendet werden, der das Farbpixel darstellt.
-
Zusammenfassend
ermöglicht
also eine Kombination aus einem Prozess des Eliminierens isolierter Subpixel
und einem hoch adressierbaren Fehlerverteilungsverfahren oder -modul,
dass ein Bildverarbeitungssystem ein elektronisches Dokument eines
Formates in das eines anderen Formates zu konvertieren.
-
Während die
vorliegende Erfindung in Bezug auf verschiedene vorstehend offenbarte
Ausführungsformen
beschrieben wurde, ist sie nicht nur auf die oben genannten Einzelheiten
beschränkt,
sondern deckt auch solche Modifikationen oder Änderungen ab, die innerhalb
des Umfanges der angehängten
Ansprüche
erfolgen.