-
Die Erfindung betrifft eine Anordnung zum Verarbeiten eines
eine Farbkomponente eines Bildpixels darstellenden Signals,
das den Wert der Farbkomponente in einem ersten Satz von
Werten festlegt, die eine erste Skala von
Farbkomponentenwerten definieren.
-
Digitalisierte Bilder werden für gewöhnlich mit 8 Bits für
jede Farbkomponente quantisiert, wobei dies meistens
ausreichend ist. Einfarbige Bilder werden mit einem Wert je
Pixel definiert, während Farbbilder durch drei (Rot, Grün,
Blau) oder vier (Cyan, Magenta, Gelb und Schwarz)
Farbkomponentenwerte definiert werden. Die Verarbeitung dieser
Werte zum Modifizieren, wie Farbretusche u.a. bedarf eines
großen Zeitaufwandes. Uni diesen zu verringern, macht man von
der Eigenschaft des menschlichen Sehens Gebrauch, daß die
Grauwertauflösung auf einer Anzeige wie eines Monitors nicht
unbedingt mit der Grauskalaauf lösung des Bildes selbst
übereinstimmen muß. Beispielsweise lassen sich bei typischen
Sehbedingungen RGB Bilder, die mit 15 Bits pro Pixel und 24
Bits pro Pixel abgebildet werden, nicht voneinander
unterscheiden.
-
Es wurde bereits vorgeschlagen, Pixel zum Zwecke der
Abbildung in einer zweiten, gröberen Grauskala zu quantisieren.
Dabei wird entsprechend einem bestimmten Algorithmus ein
Wert der zweiten Grauwerte jeder Pixelfarbkomponente
zugeordnet. Dies ist in US-A-4,568,966 erläutert.
-
In einem sehr einfachen Verfahren wird jede
Pixelfarbkomponente dem nächstkommenden zweiten Grauwert zugeordnet. Ein
Nachteil dieses Verfahrens ist, daß sich künstliche Konturen
ergeben und um diese zu vermeiden, hat man bereits zwei
Verfahren vorgeschlagen. Einerseits wurde ein
Fehlerverteilerverfahren
vorgeschlagen, wonach eine Quantisierung eines
Pixels mit einer Fortpflanzung des Quantisierungsfehlers
längs einer oder mehreren Bildrichtungen erfolgt, bevor das
nächste Pixel quantisiert wird. Zum anderen erfolgt beim
Ditherverfahren eine anfängliche Quantisierung eines Pixels,
nachdem der Quantisierungsfehler für das Pixel mit einem
Ditherschwellwert verglichen wird, der räumlich in der
Bildebene variiert. Der Ausgangspixelwert kann abhängig
davon verändert werden, ob der Fehler über oder unter dem
Schwellwert liegt.
-
Fehlerverteilungsverfahren und Ditherverfahren erfordern für
gewöhnlich extra Speicher für die Quantisierungsfehler und
die Dithermatrix. Dies vergrößert die Rechenarbeit und den
Zeitaufwand.
-
Erfindungsgemäß handelt es sich um eine Anordnung zum
Verarbeiten eines eine Farbkomponente eines Bildpixels
darstellenden Signals, das den Wert der Farbkomponente in einem
ersten Satz von Werten festlegt, die eine erste Skala von
Farbkomponentenwerten definieren, mit einem ersten von dem
Farbkomponentenwert adressierten Tabellenspeicher (LUT) zum
Erzeugen eines einen modifizierten Farbkomponentenwert
darstellenden zweiten Signals, das aus einem Satz von
modifizierten Farbkomponentenwerten stammt, die eine zweite
Skala gröber als die erste Skala definieren, mit einer
Einstelleinrichtung mit einem Speicher, in dem mindestens
zwei Sätze von Einstelldaten gespeichert sind, wobei jeder
Satz zu einem Ditherschwellwert gehört und entsprechende
Differenzen (im folgenden Quantisierungsfehler genannt)
zwischen den ersten und zweiten Signalen im Vergleich zur
ersten Skala von Farbkomponentenwerten darstellt, wobei die
Daten jedes Satzes ein Einstellsteuersignal für jeden
möglichen Quantisierungsfehler festlegen und das
Einstellsteuersignal auf die Differenz zwischen dem
Quantisierungsfehler und dem zugehörigen Ditherschwellwert bezogen ist,
wobei die Einstelleinrichtung das erste Signal erhält, so
daß der Speicher von einem den Quantisierungsfehler und die
Lage des Pixels in dem Bild darstellenden Signal adressiert
wird und das entsprechende Einstellsignal erzeugt und mit
einer auf das von der Einstelleinrichtung erzeugte
Einstellsteuersignal ansprechenden Modifizierungseinrichtung
zum Einstellen des zweiten Signals, um ein Ausgangssignal zu
erzeugen, das einen Wert aus dem zweiten Satz von
Farbkomponentenwerten darstellt.
-
Vorzugsweise besteht der Speicher der Einstelleinrichtung
aus einem oder mehreren Tabellenspeichern (LUT). Diese
können Hardwarekomponenten wie ROM oder PROM-Speicher sein
oder können jeweils für jeden Datensatz separate
Hardwarekomponenten sein.
-
Zweckmäßig wird jeder Datensatz im Einstellspeicher in einer
bestimmten Reihenfolge durch aufeinanderfolgende erste
Signale adressiert. Auf diese Weise wird eine Dithermatrix
erstellt, die über das Bild wandert. Mit anderen Worten
erfolgt das Adressieren in bezug auf das Pixel im Bild
automatisch durch Adressieren der Datensätze in einer
bestimmten Reihenfolge.
-
Der Einstellspeicher kann auf verschiedene Weise adressiert
werden. In einer einfachen Art kann der Einstellspeicher
unmittelbar vom ersten Signal und einer Positionsinformation
adressiert werden, um Zugang zum korrekten Datensatz zu
erhalten. Vorzugsweise enthält die Anordnung jedoch eine
Fehlersignaleinrichtung, z.B. einen Tabellenspeicher, der
auf das erste Signal anspricht, um ein Fehlersignal zu
erzeugen, das auf die Differenz zwischen dem ersten Signal
und dem zweiten in der in dem ersten Tabellenspeicher
erzeugten Signal bezogen ist sowie Mittel zum Kombinieren
des Fehlersignals mit der Pixelpositionsinformation, um ein
modifiziertes Fehlersignal zu erzeugen, wobei der
Einstellspeicher von dem modifizierten Fehlersignal
adressiert wird.
-
Mit dieser Anordnung kann das Ditherverfahren mit Hilfe der
Tabellenspeicher verwendet werden, ohne daß ausdrücklich die
Dithermatrix gespeichert oder die Quantisierungsfehler und
Ditherschwellwerte laufend verglichen werden müssen. Dies
ermöglicht eine schnellere Datenverarbeitung.
-
Vorteilhafterweise zeigt das von der Einstelleinrichtung
erzeugte Einstellbefehlssignal an, ob der
Quantisierungsfehler größer ist als der zu dem entsprechenden Datensatz
gehörende Schwellwert, wobei die Modifiziereinrichtung auf
diese Bestimmung anspricht, um ein Ausgangssignal zu
erzeugen, das den nächstgrößeren Wert der zweiten
Farbkomponenten gegenüber dem vom Signal aus dem ersten
Tabellenspeicher definierten Wert darstellt oder um ein
Ausgangssignal zu erzeugen, das dem Signal entspricht, das
durch das Signal vom ersten Tabellenspeicher definiert ist.
-
Typischerweise besteht jeder Einstellbefehl aus einem
binären "Eins" oder binären "Null". Außerdem ist ein
Einstellbefehl von -1 möglich, wenn negative Fehler zulässig
sind.
-
In einer anderen Ausführungsform kann der Einstellbefehl
anzeigen, ob der Quantisierungsfehler kleiner ist als der
entsprechende Schwellwert, wobei die Modifiziereinrichtung
in diesem Fall ein Ausgangssignal erzeugt, das gegenüber dem
von dem Signal aus dem ersten Tabellenspeicher definierten
Wert den nächstkleineren der zweiten Farbkomponenten
darstellt, oder um ein Ausgangssignal zu erzeugen, das dem
Signal entspricht, das von dem Signal aus dem ersten
Tabellenspeicher definiert ist.
-
Gegebenenfalls kann der zweite Satz von
Farbkomponentenwerten gleichmäßig beabstandeten ersten Skalenwerten
entsprechen, obwohl in der Praxis gewöhnlich ungleiche Abstände
verwendet werden.
-
Die Tabellenspeicher sind in der Regel eindimensional.
-
Gegebenenfalls kann für jede Farbkomponente des originären
Pixels ein erster Tabellenspeicher vorgesehen sein, zu dem
jeweils eine Einstelleinrichtung gehört. Vorzugsweise wird
jedoch ein gemeinsamer erster Tabellenspeicher für jede
Farbkomponente vorgesehen.
-
Zwei Ausführungsbeispiele der Anordnung gemäß der Erfindung
werden nun anhand der Zeichnungen erläutert. Es zeigt:
-
Fig. 1 ein Blockschaltbild einer ersten Ausführungsform
und
-
Fig. 2 ein Blockschaltbild einer zweiten Ausführungsform.
-
Die Anordnung in Fig. 1 besteht aus einem Bildspeicher 1, in
dem die Farbkomponentenwerte für jedes Bildpixel digital
gespeichert sind. Diese Farbkomponenten werden jeweils auf
einer ersten Grauwertskala im Bereich 0 bis 255 festgelegt,
so daß bis zu 8 Bits zur Darstellung erforderlich sind. Die
Farbkomponenten in diesem Beispiel sind Rot, Grün und Blau
und die Werte betragen PR, PG und PB. Die Werte für jedes
Pixel werden als erste Signale zu ersten Tabellenspeichern 2
geführt, von denen nur einer dargestellt ist, wobei jeder
von den Farbkomponentenwerten für aufeinanderfolgende Pixel
adressiert wird. Die Tabellenspeicher 2 sind eindimensionale
Speicher, deren Länge M gleich der Anzahl der Grauwerte ist,
z.B. 256. Jede Speicherstelle in den Tabellenspeichern wird
mit einem Farbkomponentenwert besetzt, der aus einer zweiten
Grauwertskala ausgewählt wird, die gröber ist als die erste
und nicht mehr als zwei oder drei binäre Digits erfordert.
Die Ausgangssignale der Speicher 2 sind mit P'R für die rote
Farbkomponente, P'B und P'G für PB und PG aus entsprechenden
nicht dargestellten Speichern bezeichnet.
-
Die Signale vom Bildspeicher 1 werden auch Tabellenspeichern
3 zugeführt, von denen nur einer dargestellt ist und denen
auch Zeilen- und Spaltenwerte entsprechend der Position des
Ausgangspixels zugeführt werden.
-
Der Speicher 3 wird von jedem Farbkomponentensignal PR
adressiert, wobei im Beispiel der Fig. 1 vier
unterschiedliche, auswählbare Werte für jeden Wert des Signals PR
vorliegen. Diese vier Werte repräsentieren die Beziehung
zwischen der Differenz bzw. dem Fehler E zwischen den Eingangs-
und Ausgangswerten PR, PR, des Speichers 2 und einem der
vier Schwellwerte T(1) bis T(4), die eine lineare Reiche von
vier Ditherschwellwerten repräsentieren. Jedes Bildpixel
wird einem der vier Ditherschwellwerte zugeordnet und der
zugeordnete Schwellwert wird im Speicher 3 abhängig von den
in den Speicher 3 eingegebenen Zeilen- und Spaltenwerten
ausgewählt.
-
In dem einfachen Fall, daß das Eingangssignal PR einen von
zwölf Werten 0 bis 11 annimmt, während das Ausgangssignal
PR, einen von drei Werten 0, 4 und 8 auf der ersten Skala
annimmt, so zeigt die Tabelle 1 den Inhalt des Speichers 3
als Sätze von vier Datenwerten für jeden
Eingangsadressenwert. Aus Gründen der Verständlichkeit zeigt die Tabelle 1
auch die entsprechenden Werte von P'R und E, die jedoch
natürlich nicht im Speicher 3 gespeichert werden.
Tabelle 1
-
Die Ditherschwellwerte T(1) bis T(4) sind in diesem Fall 0,
1, 2 und 3 und die gespeicherten Daten repräsentieren die
Beziehung zwischen dem Quantisierungsfehler E und dem
entsprechenden Ditherschwellwert gemäß der folgenden Regel:
-
I(n) = 0 wenn E≤T(n)
-
I(n) = 1 wenn E> T(n).
-
Die Zeilen- und Spaltensignale wählen in der obigen Tabelle
die richtige Schwellwertspalte aus, so daß beispielsweise
der Ausgangswert P'R "0" ist, wenn der Eingangswert PR "2"
ist, während der Befehlswert I gleich "1" ist, wenn der
entsprechende Schwellwert T(1) oder T(2) ist, bzw. "0", wenn
der Schwellwert T(3) oder T(4) ist.
-
Die Ausgangssignale I aus dem Speicher 3 werden einer
Modifiziereinrichtung 5 zusammen mit den Signalen aus dem
Speicher 2 zugeführt. Die Modifiziereinrichtung 5 spricht
auf die Eingangssignale derart an, wie es unten erläutert
ist, um Ausgangsfarbkomponentenwerte für das originäre Pixel
PR zu erzeugen, die einem Monitor 6 zusammen mit ähnlichen
Signalen PG und PB zugeführt werden. Die Modifizierschaltung
5 spricht auf das Einstellbefehlssignal aus dem Speicher 3
an, so daß bei einer binären "0" des Einstellbefehlssignals
das Ausgangssignal aus der Einstellschaltung 5 gleich dem
Eingangssignal ist, nämlich R = P'R.
-
Wenn das Einstellbefehlssignal eine binäre 1 ist, dann
liefert die Modifizierschaltung 5 ein Ausgangssignal R
gleich dem nächsthöheren zweiten Grauwertskalenwert.
-
Fig. 2 zeigt eine erweiterte Anordnung. Diese besteht wieder
aus einem Bildspeicher 1, einem Monitor 6 und einem ersten
Tabellenspeicher 2 für jede Farbkomponente und einer
Modifizierschaltung 5. Das Verfahren zum Erzeugen des
Einstellbefehlssignals ist jedoch unterschiedlich. Hier wird jedes
Farbkomponentensignal parallel zum Tabellenspeicher 2 und zu
einem entsprechenden Speicher 7 geführt. Fig. 2 zeigt die
Anordnung für die rote Farbkomponente PR. Üblicherweise ist
für jede Farbkomponente ein getrennter Speicher 2, 7, 9 und
Schaltung 8 vorgesehen, obwohl auch eine Verknüpfung möglich
ist. In den Speicher 7 werden Daten geladen, die die
Differenzen zwischen dem ersten Signal PR am Eingang des
Speichers 2 und dem entsprechenden Ausgangssignal vom
Speicher 2 bilden, wenn man die erste Skala betrachtet. Ein
Beispiel des Inhalts des Speichers 7 ist in Tabelle 2
gegeben, die den Fall einer ersten Skala mit Werten von 0
bis 15 und einer zweiten Skala mit drei Werten 0, 5 und 12
auf der ersten Skala darstellt. Da der Speicher 7 von dem
ersten Signal PR usw. adressiert wird, entspricht die erste
Spalte in Tabelle 2 jeder Adresse im Speicher 7. Die zweite
Spalte in Tabelle 2 definiert den Wert auf der ersten Skala
des Signalausgangs am Speicher 2 mit P'R usw.
TABELLE 2
-
Der Wert E ist als Quantisierungsfehler bekannt. In diesem
Beispiel sind alle Quantisierungsfehler positiv. Es ist aber
auch möglich, negative Quantisierfehler zu verarbeiten und
Tabelle 3 zeigt einen entsprechenden Datensatz zur
Speicherung im Speicher 7 (negative Quantisierungsfehler können
auch im Beispiel der Fig. 1 verarbeitet werden.
TABELLE 3
-
In allen beschriebenen Ausführungsformen kann das
Ausgangssignal P'R von dem Speicher 2 einen Wert auf der ersten
Skala, einen Wert auf der zweiten Skala oder eine andere mit
dem zweiten Skalenwert oder dem ersten Skalenwert verknüpfte
Funktion repräsentieren.
-
Die Signale E vom Speicher 7 werden einer Schaltung 8 zur
Adressenversetzung zugeführt, die in noch zu beschreibender
Weise ein Adressiersignal E' erzeugt, das zum Speicher 9
geführt wird der eine dem Speicher 3 in Fig. 1 ähnliche
Funktion ausführt.
-
Der Speicher 9 speichert eine Anzahl von Datensätzen, die
aus Einstellbefehlsdaten bestehen, wobei jeder Datensatz zu
einem (Dither) Schwellwert (T) gehört. Es sei der Fall
betrachtet, bei dem vier Datensätze mit vier Schwellwerten
T(1) bis T(4) vorgesehen sind, die die Werte 0, 1, 2 und 3
beinhalten. Ein ausgewählter Datensatz wird von einem
Fehlersignal R adressiert und die Daten an der
entsprechenden Adresse für den Einstellbefehl I beziehen sich auf
die Differenz zwischen dem Fehlerwert E und dem
entsprechenden Schwellwert T. Tabelle 4 zeigt ein Beispiel für den
Inhalt I(n) des Tabellenspeichers 9 für vier Datensätze
entsprechend den erwähnten vier Schwellwerten.
TABELLE 4
-
In diesem Fall definiert folgende Regel den Inhalt der
Datensätze:
-
I(n) = 0 wenn E≤T(n)
-
I(n) = 1 wenn E> T(n)
-
Tabelle 5 ist ähnlich Tabelle 4, doch erläutert den Fall, in
dem Quantisierungsfehler sowohl positiv als auch negativ
sind. In diesem Beispiel wird ein Satz von 3
Ditherschwellwerten mit den Werten 0, 1, 2 benutzt, während der Bereich
der Quantisierungsfehler zwischen -2 und 2 variiert.
TABELLE 5
-
Die hier geltende Regel ist: I(n) = 0 wenn E ≤ T(n)
-
I(n) = S x 1 wenn E > T(n)
wo die Größe bezeichnet und S das Vorzeichen von E ist.
-
Auf diese Weise erhält man für N Schwellwerte N Tabellen
bzw. Datensätze mit der Länge M, wobei M gleich der Anzahl
der unterschiedlichen Werte von E ist. Diese Tabellen können
in eine lange Tabelle der Länge N x M kombiniert werden.
-
In den in den Tabellen 4 und 5 angegebenen Fällen wird somit
das Format des Tabellenspeichers 9 in den Tabellen 6 und 7
dargestellt.
TABELLE 6
Adresse
Ausgang
TABELLE 7
Adresse
Ausgang
-
Jetzt wird betrachtet, wie jeder Datensatz im
Tabellenspeicher 9 adressiert wird.
-
Zu jedem Satz Schwellwerte T gehört ein räumliches Muster,
nämlich die "Dithermatrix". Jeder Punkt in dem Muster gehört
zu einem einzigen Ditherschwellwert T. Indem das Muster über
das Bild geschoben wird, wird jeder Punkt im Bild einem der
Schwellwerte zugeordnet. Beispielsweise sei angenommen, daß
die Dithermatrix neun Schwellwerte in einem 3 x 3 Format
aufweist. Dann kann in einem 6 x 6 Bild die Dithermatrix in
vier verschiedenen Positionen um das Bild angeordnet werden,
um eine Übereinstimmung zwischen jedem Pixel und einem
entsprechenden Schwellwert zu erzeugen.
-
Damit ein Fehlerwert E den zu dem Schwellwert entsprechend
dem jeweiligen Pixel gehörenden richtigen Datensatz
adressieren kann, ist es erforderlich, einen Versatz zu
erzeugen, der mit dem ankommenden Fehlerwert kombiniert
wird, um einen versetzten Fehlerwert E' zu erzugen. Dies
wird in der Schaltung 8 zum Versetzen der Adresse
durchgeführt, die von der Information bezüglich der Zeile L und
der Spalte C gesteuert wird, die die Position des Pixels in
bezug auf die Dithermatrix anzeigen. Entspricht somit in dem
Beispiel der Tabelle 6 ein Fehlerwert einem zum Schwellwert
T(2) gehörenden Pixel, so muß der Fehlerwert selbst mit dem
Schwellwert kombiniert werden, um den korrekten Adressenwert
im Bereich 5 bis 8 zu erzeugen.
-
Das Einstellinformationssignal I kann entweder den Wert 0
oder 1 im Beispiel der Tabelle 6 annehmen oder eins bis drei
Werte, nämlich -1, 0 oder 1 im Beispiel der Tabelle 7
betragen. Im ersten Fall kann der Wert 0 benutzt werden, damit
die Modifizierschaltung 5 das ankommende Signal P'
unmittelbar auf den Monitor 6 schaltet (in der Annahme, dies ist
bereits ein Signal, daß einen zweiten Skalenwert anzeigt).
Auf der anderen Seite kann die Modifizierschaltung 5
angesteuert werden, um den ankommenden Wert P' auf den
nächsthöheren quantizierten Wert in der zweiten Skala anzuheben,
wenn der Wert I gleich 1 ist. Besitzt der Wert I einen der
drei vorstehend erwähnten Werte, dann erfolgt die
Datenverarbeitung in der bereits beschriebenen Weise, jedoch mit dem
Zusatz, daß bei einem Wert I von -1 das ankommende Signal P'
auf den nächstniedrigeren quantizierten Wert abgesenkt wird.