DE69417832T2 - Digitale Halbtonrasterwiedergabe eines Grautonbildes mit frequenzabhängiger diagonaler Korrelation - Google Patents
Digitale Halbtonrasterwiedergabe eines Grautonbildes mit frequenzabhängiger diagonaler KorrelationInfo
- Publication number
- DE69417832T2 DE69417832T2 DE69417832T DE69417832T DE69417832T2 DE 69417832 T2 DE69417832 T2 DE 69417832T2 DE 69417832 T DE69417832 T DE 69417832T DE 69417832 T DE69417832 T DE 69417832T DE 69417832 T2 DE69417832 T2 DE 69417832T2
- Authority
- DE
- Germany
- Prior art keywords
- pixel
- search area
- cost
- matrix
- pixels
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000001419 dependent effect Effects 0.000 title description 2
- 239000011159 matrix material Substances 0.000 claims description 72
- 238000000034 method Methods 0.000 claims description 50
- 230000000007 visual effect Effects 0.000 claims description 3
- 238000004513 sizing Methods 0.000 claims description 2
- 238000001514 detection method Methods 0.000 claims 2
- 230000006870 function Effects 0.000 description 61
- 238000012360 testing method Methods 0.000 description 10
- 230000000875 corresponding effect Effects 0.000 description 9
- 239000006185 dispersion Substances 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 241000519995 Stachys sylvatica Species 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000012888 cubic function Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/40—Picture signal circuits
- H04N1/405—Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels
- H04N1/4051—Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels producing a dispersed dots halftone pattern, the dots having substantially the same size
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
Description
- Diese Anmeldung bezieht sich allgemein auf die digitale Halbtongebung und spezieller auf Verfahren zum Aufbereiten eines Grauskalenbildes durch die Verwendung einer Punkt-Um- Punkt-Halbtongebungsoperation gegenüber einer neuartigen Zittermatrix oder "Maske", die gesteuerte Beträge einer diagonalen Korrelation in das binäre Ausgangsarray einbringt. Verfahren zum Erzeugen einer Zittermatrix, die auch als ein Schwellenarray bezeichnet wird, mit frequenzabhängiger diagonaler Korrelation zur Verwendung bei geordneten Zittertechniken mit verstreuten Punkten werden offenbart.
- Digitale Bilddaten müssen derart transformiert oder vorverarbeitet werden, daß Computeranzeigeendgeräte mit verschiedenen Graupegelfähigkeiten, Laserdrucker, Punktmatrixdrucker, Tintenstrahldrucker und dergleichen, die unterschiedliche Auflösungen und Seitenverhältnisse aufweisen, sämtlich ein Bild, das durch die Bilddaten dargestellt wird, auf eine gleiche Art und Weise aufbereiten werden. Ein Vorprozessor, der jedem solchen Ausgabegerät zugeordnet oder für dasselbe konfiguriert ist, transformiert die digitalen Daten in eine Form, die an die Charakteristika dieses speziellen Gerätes angepaßt ist.
- Die digitale Halbtongebung ist eine Schlüsselkomponente eines solchen Vorprozessors. Dieser Ausdruck bezieht sich auf jeglichen Prozeß, der durch eine wohlüberlegte Anordnung binärer Bildelemente, beispielsweise von Tintentropfen im Fall eines Tintenstrahldruckers, die Illusion von Halbtonbildern erzeugt. Die digitale Halbtongebung wird manchmal als räumliches Zitterverfahren bezeichnet.
- Verschiedene digitale Halbtongebungstechniken sind bekannt.
- Dieselben fallen allgemein in eine von zwei breiten Klassen, abhängig von dem Typ des Punkts, der erzeugt, verstreut oder gebündelt wird. Wenn ein Anzeigegerät erfolgreich ein isoliertes schwarzes oder weißes Pixel unterbringen kann, ist die bei weitem bevorzugte Wahl die Halbtongebung mit verstreuten Punkten, die die Verwendung der Auflösung maximiert. Eine Halbtongebung mit gebündelten Punkten mimt ein Photogravur-Verfahren, das beim Drucken verwendet wird, da winzige Pixel gemeinsam Punkte verschiedener Größen bilden.
- Es existiert ferner eine Wahl hinsichtlich der Rechenkomplexität, die akzeptiert werden kann. Eine "Punktoperation" bei der Bildbearbeitung bezieht sich auf jeglichen Algorithmus, der ein Ausgangssignal für einen gegebenen Ort basierend lediglich auf dem einzelnen eingegebenen Pixel an diesem Ort unabhängig von seinen Nachbarn erzeugt. Folglich wird bei Punktoperationen die Halbtongebung durch einen einfachen punktweisen Vergleich des Eingangsbilds mit einem vorbestimmten Schwellenarray oder einer Maske erreicht. Für jeden Punkt oder jedes Pixel in dem Eingangsbild wird abhängig davon, welcher Punktwert -- das Grauskalenbild oder die Maske -- größer ist, jeweils entweder eine 1 oder eine 0 an dem entsprechenden Ort in dem binären Ausgangsbild plaziert. Obwohl verschiedene Masken verwendet werden können, ist die allgemeine Prozedur für die Punkthalbtongebung bekannt. Einzelheiten einer solchen Prozedur sind in dem US-Patent Nr. 5,111,310, erteilt an Parker u. a., offenbart, wobei dieses Patent hiermit durch Bezugnahme aufgenommen ist. Für Anwendungen, bei denen das Minimieren der Rechenzeit und/oder die Hardware ein primäres Anliegen sind, ist eine Punktoperation bevorzugt. Nachbarschaftsoperationen, die auch als Fehlerdiffusion bezeichnet werden, sind rechenintensiver, erzeugen jedoch allgemein Ergebnisse höherer Qualität.
- Ein geordnetes Zitterverfahren mit verstreuten Punkten (eine Punktoperation) wird durch die Verwendung einer Zittermatrix oder eines Schwellenarrays, das auch als eine Maske bezeichnet wird, implementiert. Nachfolgend werden wir hierin als eine Zittermatrix darauf Bezug nehmen. Die Halbtongebung mit einer speziellen homogenen Zittermatrix wurde als "Bayer- Zittern" bekannt. Gemäß dem Bayer-Zittern werden Verfahren, beispielsweise eine rekursive Mosaikbildung, zum Erzeugen von optimal homogenen geordneten Zittermatrizen verwendet. Gemäß diesen Techniken besteht das Ziel beim Erzeugen einer Zittermatrix darin, die Abtastwerte derart zu ordnen, daß, wenn jede aufeinanderfolgende Position oder jeder aufeinanderfolgende Punkt beziffert (eingeschaltet) wird, das gesamte zweidimensionale Ensemble von "Ein"-Punkten so homogen angeordnet wie möglich bleibt. Wenn Matrizen dieses Typs als Schwellenarrays verwendet werden, wird die entsprechende Anordnung von ausgegebenen binären Punkten für jeden Graupegel, der simuliert werden soll, so homogen wie möglich verstreut.
- Bekannte geordnete Zittertechniken, beispielsweise das Bayer-Zittern, erzeugen unter bestimmten Umständen Muster oder Anomalitäten, die in einem aufbereiteten Bild in Bereichen erscheinen, in denen das Quellenbild einen konstanten Grauwert (oder nahezu einen solchen) aufweist. Obwohl bestimmte dieser Muster unauffällig sind, und ein Element einer subjektiven Beurteilung in jedem Fall enthalten ist, verbleibt der Bedarf danach, die Ausgangsbildqualität in Halbtonsystemen durch die Verwendung einer verbesserten Zittermatrix zu verbessern.
- Um eine Zittermatrix gemäß der Erfindung zu erzeugen, wird ein minimaler Grau-Skalen- oder -Ton-Pegel T als ein anfänglicher Startpunkt ausgewählt. Dies ist der minimale Nicht- Null-Graupegel, der bei dem interessierenden System unterschieden werden kann. In anderen Worten ist derselbe das minimale Grauskaleninkrement oder die Auflösung. Eine Zittermatrix mit einer gewünschten Größe wird auf den minimalen Tonpegel T = 1 initialisiert. Eine Schachbrettanordnung von EIN-Punkten ist als der Startpunkt bevorzugt, da dieselbe homogon ist und ohne weiteres erzeugt werden kann. Um den nächsten Tonwert, T = 2, zu erzeugen, wird jeder AUS-Punktort in der Matrix, der als ein "Anwärterpixel" bezeichnet wird, untersucht, wobei ein entsprechender Fehlerterm oder eine "Kostenfunktion" bestimmt wird. Das Anwärterpixel mit dem geringsten Fehler oder der minimalen Kostenfunktion wird ausgewählt, wobei der entsprechende Ort in der Matrix für den vorliegenden Tonpegel EIN-geschaltet wird. Dieses Verfahren fährt fort, weitere Pixel EIN-zuschalten, bis der gewünschte Tonpegel erreicht ist.
- Als nächstes wird der Tonpegel T inkrementiert (T = 3), wobei das vorher genannte Verfahren für jeden nachfolgenden Tonpegel in der Reihenfolge zunehmender Tonpegel wiederholt wird, bis die vollständige Matrix erzeugt wurde. Eine separate Matrix kann für jeden Tonpegel erzeugt und gespeichert werden. Jedoch ist es geeignet und spart Speicherplatz, alle Punktmuster in einer einzelnen "Zittermatrix" zu kombinieren, bei der jeder Ort der Matrix einen binären Wert aufweist, der gleich dem minimalen Tonwert ist, für den dieser Ort EIN-geschaltet ist.
- Die Kostenfunktion ist speziell entworfen, um die Verstreuung zu maximieren, um eine diagonale Korrelation zu erzwingen, wenn eine Verstreuung fehlschlägt (Punktberührung), und um sichtbare Muster sowohl in der Punktstruktur als auch der Zittermatrixfeldgebung (dither matrix tiling) zu minimieren. Bei dem bevorzugten Ausführungsbeispiel wird die Kostenfunktion für ein gegebenes Anwärterpixel durch das Untersuchen der EIN-Punkte in einem definierten "Suchbereich", dessen Zentrum der Anwärter ist, bestimmt. Ein einzelner "Kostenwert" für jeden solchen EIN-Punkt in dem Suchbereich wird bestimmt, wobei die Summe dieser Kostenwerte die gesamte Kostenfunktion für dieses Anwärterpixel ist. Jeder Kostenwert wird sowohl auf den Winkelort als auch den radialen Abstand des EIN-Punkts relativ zu dem Anwärterpixelort in Bezug gesetzt.
- Der Kostenwert ist eine inverse Exponentialfunktion des radialen Abstands zwischen einem Anwärterpixel und einem EIN-Pixel. Vorzugsweise wird der radiale Abstand zumindest auf die dritte Potenz potenziert. Dies hat den Vorteil, daß der Einfluß von Gruppen von Punkten, die hinsichtlich des Rests der Zittermatrix unverhältnismäßig dicht gepackt sind, reduziert wird. Eine solche Gruppe wird etwas mehr Einfluß auf die Kostenfunktion haben als ein einzelner Punkt an dem Ort des Gruppenpunkts nächstliegend zu dem Anwärterpixel. Im Gegensatz dazu werden Gruppen, die relativ zu dem Rest der Zittermatrix unverhältnismäßig lose gepackt sind, einen etwas größeren Einfluß haben, jedoch noch weniger als die umgebende Region.
- Der Kostenwert ist auch eine Funktion des relativen Winkels zwischen einem Anwärterpixel und dem EIN-Punkt. Die Kostenfunktion beinhaltet einen Sinusterm, der derart angeordnet ist, daß die Kosten bei einem relativen Winkel von 45 Grad minimiert sind. Dies implementiert die Bevorzugung einer diagonalen Korrelation gegenüber vertikal oder horizontal benachbarten Punkten. Die neue Kostenfunktion berücksichtigt auch die Punktgröße des Zielausgabegeräts, um sicherzustellen, daß alle Punkte, die sich berühren, diagonal benachbart sind, selbst wenn sich dieselben mit einem Abstand von mehr als einer Einheit berühren.
- Die Erfindung ist in den beigefügten Ansprüchen dargelegt.
- Die vorhergehenden und weitere Aufgaben, Merkmale und Vorteile der Erfindung werden aus der folgenden detaillierten Beschreibung eines bevorzugten Ausführungsbeispiels, die bezugnehmend auf die Zeichnungen fortgesetzt wird, offensichtlich.
- Fig. 1 ist ein Blockdiagramm eines Systems zur Halbton gebung eines digitalen Bilds gemäß einer gespeicherten Zittermaske und zur Aufbereitung des der Halbtongebung unterzogenen Bilds auf einem binären Anzeigegerät.
- Fig. 2 ist ein Flußdiagramm eines Verfahrens zum Erzeugen einer Zittermatrix gemäß der vorliegenden Erfindung.
- Fig. 3 zeigt ein Ensemble von EIN-Punkten in einer Matrix und ausgewählte Anwärterpixel zum Veranschaulichen des Verfahrens von Fig. 2.
- Fig. 4 ist ein Flußdiagramm, das die Einzelheit des Bestimmens der Kostenfunktion für ein Anwärterpixel in Verbindung mit dem Verfahren, das in Fig. 2 gezeigt ist, zeigt.
- Fig. 5 ist eine dreidimensionale Darstellung einer Kostenfunktion, die zur Bestimmung der Kostenwerte bei dem Verfahren von Fig. 4 brauchbar ist.
- Fig. 6(a) bis 6(e) sind eine Reihe von Aufzeichnungen, die die Kostenfunktion von Fig. 5 über dem relativen Winkel zwischen einem Anwärterpixel und einem EIN-Punkt zeigen.
- Der Text dieser Beschreibung enthält ferner folgende Tabellen:
- Tabelle 1: Suchbereich für 50 EIN-Punkte.
- Tabelle 2: Kostenwerte für ausgewählte radiale Abstände und relative Winkel.
- Tabelle 3: Kostenwerte für die Anwärterpixel, die in Fig. 3 dargestellt sind.
- Die wichtigste Unterscheidungscharakteristik einer Zittermatrix, oder eines Verfahrens zum Erzeugen einer Zittermatrix, besteht darin, wie Fehlerterme definiert werden. Beispielsweise verwendet ein gebündeltes Zittern einen Fehlerterm, der eine Spiralsequenz von Punkten, die 100% zusammengeballt werden, erzwingt. Bayer-Zittern verwendet einen Fehlerterm, der das Zentrum des größten Freiraums, der durch die Scheitelpunkte von Polygonen mit vorherigen Punkten als deren Zentren gebildet ist, sucht.
- Die meisten Zittermatrizen sind entworfen, um ein verstreutes Muster von Punkten zu erzeugen, da dieses das ansprechendste ist. Per Definition bedeutet verstreut einen vernachlässigbaren geringen Frequenzgehalt. Tatsächlich verlangt die herkömmliche Weisheit nach einem Blauspektrum als einer Anforderung für jede gute Zittermatrix. Eine Zittermatrix gemäß der vorliegenden Erfindung besteht beinahe vollständig aus stark korrelierter Niederfreguenzenergie, wie nachfolgend detaillierter beschrieben wird, genau im Gegensatz zu den Blau-Rauschcharakteristika bekannter Techniken.
- Ein bekanntes Verfahren zum Aufbereiten eines Halbtonbildes aus einem Grauskalenbild ist bei Parker u. a., US-Patent Nr. 5,111,310, beschrieben. Dieses Verfahren verwendet einen Pixel-Um-Pixel-Vergleich mit einer vorbestimmten Blau- Rausch-Maske. Die Blau-Rausch-Matrix wird zuerst für einen speziellen Tonwert (50%) optimiert. Danach werden Punkte sukzessive addiert oder beseitigt, um die verbleibenden Tonpegel zu erzeugen. Insgesamt hat dieses Verfahren Tonpegel zur Folge, die dem optimierten Tonpegel weniger und weniger ähneln, je weiter dieselben von dem optimierten Pegel weg liegen. Beispielsweise wird ein Tonpegel von 10% viel weniger ideal aussehen (möglicherweise sogar verrauscht) als ein Tonpegel von 50%, wenn 50% der optimierte Pegel war.
- Fig. 1 zeigt allgemein, wie eine Zittermatrix bei der digitalen Halbtongebung verwendet wird. In Fig. 1 stellt ein Bildgenerator 20 eine beliebige Quelle von zweidimensionalen Bilddaten dar, die als eine Matrix oder ein Array von Pixeln F(i, j) dargestellt sind, bei dem jeder Ort eine entsprechende Farbe oder einen Grauskalen-Tonwert aufweist. Derartige Bilddaten können beispielsweise durch einen Scanner, durch eine Zeichnungssoftware oder durch ein Textverarbeitungsprogramm, das eine Graphik verwendet (und nicht einen Zeichenmodus einer Ausgabe), erzeugt werden. Eine Zittermatrix oder Maske 22 ist in einem programmierbaren Nur-Lese-Speicher (PROM) 24 oder dergleichen gespeichert. Der PROM 24 kann in einem Computer 26 angeordnet sein, oder derselbe kann Teil eines Binärausgabe-Anzeigegeräts 30 sein. Das Anzeigegerät kann beispielsweise ein CRT-Anzeigebildschirm, oder ein Drucker, z. B. ein Laser- oder ein Tintenstrahl-Drucker, sein. Es ist eine Sache der Systementwurfswahl, ob die Halbtongebungs- und die anderen Vorverarbeitungs-Schritte in einem Hostcomputer oder in dem Ausgabegerät selbst durchgeführt werden.
- Jedes Pixel des Quellenbilds F(i, j) wird in einem Komparator 28 mit dem entsprechenden Ort in der Maske M(i, j) verglichen. Der Komparator 28 kann durch digitale Hardware gebildet sein, und kann in einem Hostcomputer oder in dem Anzeigegerät angeordnet sein, Vorzugsweise ist der Komparator 28 softwaremäßig implementiert, obwohl die exakte Implementierung eine Sache der Entwurfswahl ist. Der Komparator 28 liefert ein binäres (Halbton-) Ausgangsbildarray H(i, j), das dem binären Anzeigegerät 30 zugeführt wird. Das exakte Muster von Punkten in dem Ausgangsbild hängt von dem Quellenbild und der Zittermatrix ab.
- Das Modell, das ich entwickelte, um die Qualität einer An ordnung von Punkten zu beurteilen, besitzt mehrere Qualitäten, von denen die erste darin besteht, daß die Punktanordnung verstreut sein muß. Die zweite gewünschte Qualität besteht darin, daß die Punktanordnung für den Betrachter erfaßbare Muster minimieren muß. Ich beschloß, eine Korrelation bei Tonpegeln, an denen Punkte sich berühren, zu erzwingen, und nicht zu erlauben, daß sich dieselben bei zufälligen Winkeln berühren. Meine Argumentation dafür ist, daß, wenn sich Punkte berühren, das "Ereignis", oder der resultierende größere Punkt, für das Auge signifikanter ist als ein einzelner Punkt. Ich habe herausgefunden, daß die Form dieser größeren Punkte weniger zu beanstanden ist, wenn dieselbe gesteuert und nicht zufällig ist. Die menschliche Kontrastempfindlichkeit ist bei diagonalen Winkeln am schwächsten. Aus diesem Grund entschied ich mich, zu bewirken, daß sich alle Punkte an Diagonalen berühren, wenn sich dieselben überhaupt berühren müssen. Bei Tonpegeln, bei denen sich Punkte nicht berühren, erzwinge ich eine so große Verstreuung wie möglich. Eine weitere Anforderung, um erfaßbare Muster zu vermeiden, besteht darin, daß sich die Zittermatrix nicht selbst auf eine Art und Weise, die sichtbar ist, auf der Seite wiederholen darf.
- Um eine solche "Diagonalkorrelations"-Zittermatrix zu erzeugen, beginne ich mit dem hellsten (minimalen) optimierten Tonpegel und baue von dort auf. Um jeden nachfolgenden Tonpegel aufzubauen, verwende ich eine Kostenfunktion, die die Summe der gewichteten radialen Abstände zwischen einem Anwärterpixel und allen existierenden ("EIN"-) Pixeln innerhalb eines bestimmten radialen Abstands oder eines "Suchbereichs" minimiert. Dies unterscheidet sich von dem Suchen des größten Freiraums dahingehend, daß der "gewichtete radiale Abstand" der gemessene Abstand ist, der durch eine Funktion modifiziert ist, die als eine Funktion des Abstands und des relativen Winkels zunimmt. Dieser gewichtete Abstand wird dann invertiert und kubiert. Das Nettoergebnis besteht darin, daß bei sehr spärlichen Tonpegeln der größte Freiraum gesucht wird, wobei eine diagonale Korrelation leicht favo risiert wird. Wenn jedoch der Tonpegel zunimmt, wird der größte Freiraum kleiner, wobei die diagonale Favorisierung mit einer Rate signifikanter wird, die durch eine Funktion bestimmt ist, die die Punktgröße des Ausgabegeräts berücksichtigt. Wenn schließlich der Tonpegel auf einen Punkt zunimmt, bei dem sich die Punkte miteinander berühren, findet jegliche "Berührung" zwischen diagonal benachbarten Punkten statt, wobei dunklere Tonpegel durch kurze diagonale Linien aufgebaut werden.
- Diese Methodologie hat eine Zittermatrix zur Folge, die bei nahezu allen Tonpegeln aus einer stark korrelierten Niederfrequenzenergie gebildet ist, in starkem Kontrast zum Stand der Technik, die eine maximale Homogenität und Verstreuung lehrt. Insgesamt ist eine Grauskalenrampe, die unter Verwendung dieser Matrix gedruckt wird, in den Hervorhebungen mit einer Niederfrequenzenergie in der Form von kurzen Diagonalen sehr gleichmäßig und glatt. Schließlich werden alle Tonpegel mit Diagonalen aufgebaut. Eine Erweiterung dieser Methodologie bestünde darin, eine Kostenfunktion zu verwenden, die einen unterschiedlichen Winkel (nicht 45º) abhängig von dem Tonpegel favorisiert.
- Das allgemeine Verfahren ist durch das Flußdiagramm von Fig. 2 dargestellt und wird als nächstes beschrieben. Der erste Schritt besteht darin, eine Zittermatrix 50 auf einen Null- Zustand zu initialisieren, d. h. einen solchen, bei dem alle Pixel oder Orte auf Null eingestellt oder aus sind. Der Buchstabe M bezieht sich auf die Zittermatrix. Ich nehme der Bequemlichkeit halber und zur Vereinfachung der Verarbeitung eine quadratische Matrix (N mal N Einheiten oder Pixel) an, obwohl dieselbe nicht notwendigerweise diese Form haben muß. Als nächstes wird die Matrix in einem Schritt 52 auf einen minimalen Tonwert eingestellt. Eine Bilddatei kann beispielsweise acht Bit pro Pixel aufweisen, was 256 Grauskalen-Tonpegel ermöglicht. Der minimale Tonpegel T = 1 entspricht in diesem Fall dem Zustand, daß 1 von 256 Bits eingeschaltet ist. L, ein EIN-Bit-Zähler, wird auf 64 initiali siert, der Anzahl von EIN-Bits, die T = 1 für N = 128 entspricht.
- Zum Initialisieren der Zittermatrix auf den minimalen Tonwert ist ein Schachbrettmuster bevorzugt. Als nächstes wird der Tonwert in einem Schritt 54 inkrementiert, um das Erzeugen eines Musters für den nächsten Tonpegel zu beginnen. Matrix-Zeilen- und -Spalten-Indizes, i bzw. j, werden in einem Schritt 56 zum sequentiellen Untersuchen jedes Punktorts in der Matrix beginnend mit der oberen linken Ecke auf Null initialisiert. Obwohl die Darstellung eine Rasterreihenfolge der Verarbeitung zeigt, ist die Abfolge unwichtig. Jeder Ort in der Matrix wird rechtzeitig untersucht.
- Nach der Initialisierung wird der erste Ort in der Matrix M(i, j) = 0,0 in einem Schritt 58 untersucht, um zu bestimmen, ob dieser Punkt EIN ist. Der Ausdruck EIN wird hier verwendet, um anzuzeigen, daß der entsprechende Matrixort einen von Null verschiedenen Wert besitzt. Eine separate Matrix kann für jeden erwünschten Tonpegel erzeugt werden, wobei in diesem Fall jeder Ort der Matrix nur ein einzelnes Bit aufweisen muß. Alternativ können alle Schwelleninformationen in eine einzelne Zittermatrix kombiniert werden, wobei in diesem Fall jeder Ort der Matrix eine Anzahl von Bits, die der Grauskalenauflösung entspricht, aufweist. Folglich weist bei einem 265-Pegel-System jeder Ort der kombinierten Zittermatrix 8 Bits zum Anzeigen eines entsprechenden Tonpegel-Schwellenwerts auf.
- Wenn bei dem Test im Schritt 58 bestimmt wird, daß der vorliegende Punktort AUS ist, d. h., daß der Wert desselben Null ist, dann ist der vorliegende Ort ein "Anwärterpixel", das für den Einschluß bei dem vorliegenden Tonpegel betrachtet werden muß. Ein Schritt 60 besteht darin, einen Gesamtkostenwert für dieses Anwärterpixel unter Verwendung einer Kostenfunktion, die nachfolgend beschrieben wird, zu bestimmen. Wenn bei dem Test 58 bestimmt wird, daß der vorliegende Matrixort bereits EIN ist, ist derselbe kein Anwärter, wobei die Steuerung wie durch den Weg 68 angezeigt ist, fortschreitet, um den Kostenfunktionsschritt 60 zu überspringen. Als nächstes zeigt ein Test 64 an, ob der Spaltenindex j das Ende der vorliegenden Zeile der Matrix M erreicht hat oder nicht. Wenn dies nicht der Fall ist, wird der Spaltenindex j in einem Schritt 66 inkrementiert, wobei die Steuerung über einen Weg 76 zurückspringt, um den nächsten Punktort in dem Schritt 58 zu untersuchen. Wenn das Ende der Zeile angetroffen wird, wird alternativ ein Test 70 ausgeführt, um zu bestimmen, ob der Zeilenindex i die untere Zeile der Matrix erreicht hat. Wenn dies nicht der Fall ist, wird der Zeilenindex i in einem Schritt 72 inkrementiert, der Spaltenindex j wird in einem Schritt 74 auf Null zurückgesetzt, und die Steuerung springt wie vorher zurück, um den nächsten Ort in der Rasterreihenfolge im Schritt 58 zu untersuchen.
- Die vorher genannten Schritte werden wiederholt, wobei sequentiell die Spalten- und Zeilen-Zähler inkrementiert werden, bis jeder Ort der gesamten Matrix untersucht wurde. Der nächste Schritt besteht darin, einen einzelnen Minimalkostenanwärter aus allen Anwärtern, die betrachtet wurden, auszuwählen, Schritt 78. Es können Fälle existieren, bei denen zwei oder mehr Anwärterpixel die gleichen Kosten, die denselben zugeordnet sind, aufweisen, wobei diese Kosten auch die minimalen Kosten für den nächsten Punkt sind. In solchen Fällen müssen wir zwischen zwei oder mehr Entscheidungen der gleichen Kosten entscheiden. Ich behandle diese Entscheidung als eine mögliche Fehlerquelle in der Kostenfunktion, die "übertüncht" werden muß, so daß ich zufällig zwischen den gleichen Anwärtern auswähle. Eine andere Technik besteht darin, einen "Niederkosten-Anwärterpixelort" zu speichern und denselben jedesmal zu ersetzen, wenn ein Anwärter mit geringeren Kosten entdeckt wird.
- Der ausgewählte Minimalkostenanwärter M(x, y) wird in einem Schritt 80 auf den momentanen Tonwert, der 2 ist, eingestellt. Der EIN-Punktzähler L wird in einem Schritt 82 inkrementiert. Als nächstes wird in einem Schritt 84 bestimmt, ob die Gesamtzahl von EIN-Bits dem vorliegenden Tonpegel entspricht oder nicht. Wenn dies nicht der Fall ist, springt die Steuerung zu dem Schritt 56 zurück, um die Zeilen- und Spalten-Indizes rückzusetzen und das Untersuchen der gesamten Matrix erneut zu beginnen, um zusätzliche Anwärterpixel für den Einschluß als EIN-Pixel bei diesem Tonpegel zu identifizieren und zu betrachten. Dieses Verfahren wird wiederholt, bis der vorliegende Tonpegel vollendet ist, wie in dem Test 84 angezeigt wird. Als nächstes wird in einem Test 88 bestimmt, ob alle verfügbaren Tonpegel (beispielsweise 256) in die Zittermatrix eingeschlossen wurden oder nicht. Wenn dies nicht der Fall ist, springt die Steuerung zu dem Schritt 54 zurück, in dem der Tonpegel inkrementiert wird. Die Zeilen- und Spalten-Indizes werden wiederum in dem Schritt 56 rückgesetzt und die Verarbeitung setzt sich wie oben beschrieben zum Erzeugen zusätzlicher EIN-Bits für den neuen Tonpegel fort. Wenn alle Tonpegel verarbeitet wurden, wie durch den Test 88 angezeigt wird, ist das Verfahren abgeschlossen.
- Fig. 4 zeigt detaillierter den Schritt des Bestimmens einer Kostenfunktion für ein Anwärterpixel (Schritt 60 in Fig. 2). Allgemein erfordert das Bestimmen der Kostenfunktion für ein Anwärterpixel (1) das Bestimmen eines adäquaten "Suchbereichs" um das Anwärterpixel; (2) das Bestimmen eines jeweiligen "Kostenwerts" für jedes EIN-Pixel in dem definierten Suchbereich; und (3) das Summieren dieser einzelnen Kostenwerte, um eine Gesamtkostenfunktion für den Anwärter zu erhalten.
- Die Kostenfunktion muß eine Abweichung von den gewünschten Qualitäten, die oben beschrieben sind, minimieren. Zur Erinnerung sei ausgeführt, daß die Kostenfunktion die Verstreuung maximieren muß, eine diagonale Korrelation erzwingen muß, wenn eine Verstreuung fehlschlägt (Punktberührung), und sichtbare Muster sowohl in der Punktstruktur als auch der Zittermatrixfeldgebung minimieren muß.
- Die Kosten, die jedem Anwärterpixel zugeordnet sind, müssen eine bestimmte Funktion der Pixel, die dasselbe umgeben, sein. Um die Gesamtkosten des Auswählens eines Anwärterpixels zu berechnen, summiere ich alle Komponenten dieser Kosten, wobei jede Komponente eine Funktion des Zustands und der Position jedes anderen Pixels in dem Suchbereich ist. In seiner einfachsten Form kann die Kostenfunktion mathematisch wie folgt beschrieben werden:
- FnCxy
- wobei FnR eine Funktion ist, die einen Suchbereich mit dem Anwärterpixel an dessen Zentrum ist,
- wobei FnC eine Funktion ist, die einen Kostenwert mit der Position und dem Zustand jedes Pixels in der Region FnR als ihren Eingaben zurückgibt, und
- wobei xy jedes einzelne Pixel in der Region FnR bezeichnet.
- Der erste Punkt hier besteht darin, zu bestimmen, welcher Suchbereich geeignet ist, damit sich die Kostenfunktion korrekt verhält (FnR). Ich habe bestimmt, daß sich die Ergebnisse der Kostenfunktion stabilisierten, sobald ein ausreichend großer Suchradius verwendet wird. Es hat sich herausgestellt, daß der erforderliche Radius auch eine Funktion der Anzahl von EIN-Punkten innerhalb des Bereichs ist. Das Ergebnis besteht darin, daß der Suchbereich, der durch FnR definiert ist, ein Kreis mit einem Radius ist, der groß genug ist, um eine ausreichende Anzahl von EIN-Punkten zu enthalten. Dies kann für ein spezielles Zielgerät empirisch bestimmt werden, und umfaßt selbstverständlich Kompromisse be züglich der Verarbeitungsgeschwindigkeit. Ich habe herausgefunden, daß der Suchbereich groß genug sein muß, um zumindest ein Minimum von näherungsweise 10 bis 15 EIN-Punkten zu enthalten, um gute Ergebnisse zu erhalten. Vorzugsweise sollte der Suchbereich groß genug sein, um 50 EIN-Punkte zu enthalten. Es macht wenig Sinn, bei dem Beispiel einer 128- mal-128-Matrix mit 256 Graupegeln über einen größeren Bereich zu suchen. Der Radius, der erforderlich ist, um 50 EIN-Punkte zu enthalten, wird ohne weiteres unter Verwendung des Tonpegels als einem Anzeiger der mittleren EIN-Punktdichte berechnet.
- Die folgende Tabelle 1 zeigt einen Suchbereichradius, der adäquat ist, um als eine Funktion des ausgewählten Tonpegels 50 EIN-Punkte zu enthalten. Die letzte Spalte zeigt die Gesamtzahl von Punkten innerhalb des Suchbereichs. TABELLE 1 Suchbereich für eine konstante Anzahl von EIN-Punkten
- Ein alternatives Verfahren zum Dimensionieren des Suchbereichs besteht darin, sicherzustellen, daß der Suchbereich so viele diskrete Ereignisse wie möglich abdeckt, hinsichtlich dessen, was das Auge "sieht". Aus diesem Grund wird der Radius des Suchbereichs für Tonpegel unter 128 (50%) zunehmen, wenn der Tonpegel abnimmt, so daß der Suchbereich in sehr spärlichen Regionen sehr groß ist. Wenn der Tonpegel jedoch 50% überschreitet, ist Schwarz tatsächlich in der Mehrheit (der kumulative Effekt der EIN-Punkte), während es die weißen Räume sind, die in der Minderheit sind. In diesem Fall sind die weißen "Flecken" für das Auge erkennbarer. In anderen Worten heißt das, daß die weißen Flecken zu den diskreten Ereignissen werden, während Schwarz der Hintergrund wird. Folglich sind die Orte, die wir ignoriert haben, d. h. die AUS-Pixel, visuell am signifikantesten. Um das menschliche visuelle System besser unterzubringen, muß somit der ausgewählte Suchbereich eine adäquate Anzahl dieser weißen Flecken berücksichtigen, und nicht die EIN-Punkte. Somit sollte der Suchradius für Tonpegel oberhalb 50% zunehmen, wenn der Tonpegel zunimmt. Unter Verwendung dieses alternativen Lösungsansatzes wird eine Aufzeichnung des Suchradius über dem Tonpegel eine allgemein U-förmige Kurve mit einem Minimumscheitelpunkt bei einem Tonpegel von 50% sein.
- Fig. 4 zeigt ein Verfahren zum Bestimmen der Kostenfunktion für ein Anwärterpixel, das bei M(x, y) angeordnet ist. Dieses Verfahren beginnt in einem Schritt 100 mit dem Auswählen eines Suchbereichs mit einem Radius von r. Jede der Strategien, die oben beschrieben sind, zum Dimensionieren des Suchbereichs kann verwendet werden. In einem Schritt 102 werden horizontale und vertikale Indizes i, j auf Null initialisiert. Ein Akkumulator ACC wird in einem Schritt 104 ebenfalls auf Null initialisiert. Nach der Initialisierung wird in einem Test 106 bestimmt, ob das momentane Pixel EIN ist. Wenn dies der Fall ist, kann dieses Pixel einen be stimmten Einfluß auf die Bestimmung der Kosten des momentanen Anwärterpixels haben. In einem Schritt 107 wird der horizontale Abstand Δx zwischen dem Anwärterpixel und dem momentanen Pixel bestimmt, welcher der absolute Wert von i-x ist. In gleicher Weise wird der vertikale Abstand Δy als der absolute Wert von j-y bestimmt. In einem Test 108 wird bestimmt, ob das momentane Pixel innerhalb des definierten Suchradius liegt. Wenn dies nicht der Fall ist, kann der momentane Pixelort ignoriert werden, wobei das Verfahren fortgesetzt wird, um den nächsten Ort zu untersuchen.
- Wenn das momentane Pixel innerhalb des Suchbereichs liegt, wird in einem Schritt 110 ein Kostenwert für dieses Pixel bestimmt, wie nachfolgend weiter beschrieben wird. Dieser Kostenwert wird in einem Schritt 112 zu dem Akkumulator addiert. In einem Schritt 114 wird bestimmt, ob der Spaltenindex (i) das Ende der momentanen Zeile erreicht hat. Wenn dies nicht der Fall ist, wird der Spaltenindex in einem Schritt 116 inkrementiert und die Steuerung springt zu dem Schritt 106 zurück, um das nächste Pixel zu untersuchen. Am Ende einer Zeile wird in einem Test 118 bestimmt, ob die momentane Zeile die letzte Zeile in der Matrix ist. Wenn dies nicht der Fall ist, wird der Zeilenindex (j) inkrementiert und der Spaltenindex i wird in einem Schritt 120 rückgesetzt, wobei die Steuerung wiederum zu dem Schritt 106 zurückspringt, um den nächsten Ort zu untersuchen. Dieses Verfahren wird wiederholt, wobei im wesentlichen jedes Pixel in der Zittermatrix untersucht wird. Obwohl eine Rastersequenz dargestellt ist, ist die Reihenfolge des Untersuchens der Pixel nicht wesentlich. Der Kostenwert, der in dem Schritt 110 für jedes EIN-Pixel innerhalb des definierten Suchbereichs bestimmt wird, wird in dem Schritt 112 derart akkumuliert, daß der Akkumulator am Schluß des Verfahrens die Summe aller Kostenwerte für das betrachtete Anwärterpixel enthält. In anderen Worten heißt das, daß der Akkumulator dann die Gesamtkostenfunktion für das momentane Pixel enthält. Da das Flußdiagramm von Fig. 4 das Bestimmen der Kostenfunktion, Schritt 60 von Fig. 2, zeigt, springt die Steuerung in einem Schritt 122 von Fig. 4 danach zu dem Schritt 64 von Fig. 2, der oben beschrieben ist, zurück.
- Um die Verstreuung zu maximieren, sollte der Wert der Kostenfunktion FnC eine inverse Funktion des Abstands zwischen dem Anwärter und jedem "EIN"-Punkt in dem Suchbereich sein, oder
- FnCxy = 1/r
- wobei r der radiale Abstand zwischen dem Anwärterpixel und jedem "EIN"-Punkt in dem Suchbereich ist. Dies würde den geringsten Kostenwert für Anwärterpixel, die in dem größten Abstand von anderen Punkten liegen, ergeben. Jedoch ist das größte "Loch" bevorzugt, selbst wenn das Loch viele Punkte auf einer Seite und nur wenige auf der anderen besitzt. Eine einfache Umkehrfunktion würde durch diese "Punkthäufung" auf einer Seite stark beeinflußt werden. Daher modifiziere ich FnC, um nahen Punkten eine exponentiell höhere Gewichtung zu geben. Dies bewirkt, daß nur der nächstliegende Punkt in dem "Haufen" hinsichtlich der Gesamtkosten für einen Anwärter sehr signifikant gemacht wird, was der Befolgung des größten "Lochs" genügt. Ich habe festgestellt, daß eine kubische Funktion die minimale Potenz ist, die erforderlich ist, um diesen Effekt zu erreichen. Daher hat die modifizierte Kostenfunktion die allgemeine Form:
- FnCxy = (1/r)³
- Die Kostenfunktion in der obigen Form wird die Verstreuung maximieren. Wenn mehr und mehr Punkte in der Zittermatrix plaziert werden, und der Abstand zwischen Punkten kleiner und kleiner wird, werden sich die Punkte schließlich berüh ren müssen. Um diese Berührung bei Diagonalen (45 Grad) zu erzwingen, muß diese Funktion ansprechend auf den relativen Winkel und den Abstand zwischen den Anwärtern und jedem "EIN"-Pixel in dem definierten Suchbereich variieren. Bei Verwendung als eine Kostenfunktion FnC, wie oben definiert wurde, wird das beschriebene Verfahren zuerst Pixel auswählen, die um einen Abstand von zwei Einheiten entfernt sind, vor Pixeln, die die Quadratwurzel von zwei Einheiten (Einheitsdiagonalen) entfernt sind, und wird schließlich Pixel auswählen, die eine Einheit entfernt sind (Einheiten-Horizontale und -Vertikale). Dies wird der genannten Bevorzugung dahingehend, daß Einheits-Diagonalen vor Einheits-Horizontalen und -Vertikalen ausgewählt werden, genügen.
- Jedoch erzeugen bestimmte Zielausgabegeräte, beispielsweise Tintenstrahldrucker (unter Verwendung bestimmter Ausgabemedien) Ausgabepunkte (Tintentropfen), die einander sogar berühren, wenn dieselben um mehr als eine Einheit voneinander entfernt sind. Beispielsweise kann die Ausgangspunktgröße derart sein, daß benachbarte Punkte einander berühren, wenn dieselben um zwei Einheiten entfernt plaziert sind. Wir wollen eine diagonale Korrelation erzwingen, wenn sich benachbarte Punkte berühren, selbst wenn dieselben logisch zwei Einheiten voneinander entfernt angeordnet sind. Um die Diagonalkorrelationsqualität in diesem Fall zu erzwingen, wird der Radialabstandsterm r im Nenner der Kostenfunktion durch einen Betrag eingestellt, der von der Ausgangspunktgröße abhängt. Speziell variiert der Wert des "eingestellten r" zwischen r (dem tatsächlichen radialen Abstand) und einem bestimmten Wert, der die Punktgröße kompensiert. Die notwendige Kompensation hängt von dem Zielausgabesystem ab. Da die Punktgröße (oder der "Punktberührungsabstand") zwischen verschiedenen Ausgabesystemen variabel ist, drücke ich dieselbe in der Kostenfunktion als eine Variable (C) aus.
- Bei dem bevorzugten Ausführungsbeispiel, das für Tintenstrahldrucker entworfen ist, ist zwei Einheiten der maximale Abstand, innerhalb dessen Punkte einander berühren, so daß C gleich zwei ist. Die vollständige Kostenfunktion kann wie folgt ausgedrückt werden:
- Die folgende Tabelle zeigt die Kostenwerte für ausgewählte radiale Abstände und relative Winkel, die gemäß der obigen Gleichung für C = 2 bestimmt sind. Im Nenner besitzt der Korrekturterm, der zu r addiert wird, drei Komponenten. Zunächst ist C-SQRT(2) die maximale Korrektur, da dieser Wert die Differenz zwischen dem minimalen Berührungsabstand und einem Einheitsdiagonale-Radialabstand ist. Die zweite Komponente, sinus(2α) ändert sich mit dem relativen Winkel mit einer Spitze (Wert von 1) bei 45 Grad und einem Abfall auf Null bei 0 und 90 Grad. Somit findet für wirkliche vertikale und horizontale Abstände keine Einstellung statt. Die dritte Komponente, SQRT(2)/r, ist eine Funktion des Abstands. Dieselbe ist am größten, wenn r minimal ist, nämlich 1. Somit findet die maximale Einstellung statt, wenn Punkte nahe bei einem Anwärterpixel liegen, und bei 45 Grad. Unter diesen Umständen ist der Nenner maximal, so daß der Kostenwert minimal ist. Die folgende Tabelle zeigt die Wirkungen von Winkel und Abstand. TABELLE 2 Kostenwerte für ausgewählte radiale Abstände und relative Winkel Relativer Winkel (Grad)
- Die Tabellenwerte sind gerundet. Beispielsweise besitzt eine Einheitsdiagonale einen radialen Abstand von 1,41 (Quadratwurzel von 2) und einen Winkel von 45 Grad. Der Nenner der Kostenfunktionsgleichung würde lauten: SQRT(2) + [C-SQRT(2)] · [Sinus (45)] · [SQRT(2)/SQRT(2)] = SQRT(2) + [C-SQRT(2)] · 1 · 1 = C = 2. Somit ist die Kostenfunktion 1/2 kubiert oder 1/8 = 0,125. Die Tabelle zeigt den gerundeten Wert von 0,13. Fig. 5 ist eine dreidimensionale Aufzeichnung des Kostenwerts über dem relativen Winkel und dem gemessenen relativen Abstand. Es ist zu beobachten, daß der Kostenwert für kurze Distanzen eine starke Funktion des Winkels ist, jedoch durch den relativen Winkel beträchtlich weniger beeinflußt wird, wenn der Abstand zunimmt. Fig. 6 ist eine Reihe von Aufzeichnungen, die im wesentlichen die zerlegte Funktion von Fig. 5 zeigen. Die Fig. 6(a) bis 6(e) zeigen die Kostenfunktion als eine Funktion des relativen Winkels für radiale Abstände von 1, 1,14, 2, 3 bzw. 4.
- Fig. 3 zeigt einen Abschnitt einer Zittermatrix. Der Abschnitt, der in Fig. 3 gezeigt ist, umfaßt 22 Einheiten auf einer Seite, wobei dies jedoch lediglich zur Veranschaulichung der Operation der Kostenfunktion der Fall ist und die Abmessungen willkürlich sind. Die Aufzeichnung zeigt orthogonale Achsen x und y zur Bezugnahme. Dieselbe zeigt ein Ensemble von zehn EIN-Pixeln, die jeweils mit P1 bis P10 bezeichnet sind. Die EIN-Punktorte sind lediglich zu Zwecken der Darstellung ausgewählt und spiegeln keine Anordnung von Punkten wider, die gemäß der vorliegenden Methodologie wahrscheinlich auftreten wird. Ausgewählte Anwärterpixel, die durch ein Quadrat angezeigt sind, das den Punktort umgibt, und die jeweils mit C1 bis C6 numeriert sind, sind dargestellt. Wiederum sind diese lediglich zu Zwecken der Darstellung ausgewählt. In der Praxis ist jeder AUS-Punktort innerhalb des definierten Suchbereichs ein Anwärterpixel. Der gestrichelte Kreis in Fig. 3 zeigt einen Suchbereich, der ein Anwärterpixel C1 umgibt und einen Suchradius von 10 Einheiten aufweist. In der Praxis wäre der Suchradius viel größer, oder die Anzahl von EIN-Punkten in dem Suchradius wäre viel größer, wie oben beschrieben wurde.
- Die Anwendung der Methodologie und der Kostenfunktion, die oben beschrieben ist, auf die Punkte, die in Fig. 3 gezeigt sind, hat Kostenwerte, die in der folgenden Tabelle 3 gezeigt sind, zur Folge. TABELLE 3 Kostenwerte für die Punkte, die in Fig. 3 gezeigt sind "EIN"-PUNKTNUMMER
- Tabelle 3 zeigt für jedes Anwärterpixel die einzelnen Kostenwerte, die jedem der umgebenden EIN-Pixel P1 bis P10 zuzuschreiben sind. Die Summe der einzelnen Kostenwerte, die in der äußersten rechten Spalte gezeigt ist, ist die Gesamt kostenfunktion für das entsprechende Anwärterpixel. Da das Anwärterpixel mit der Nummer 2 die minimale Kostenfunktion aufweist (unter den ausgewählten dargestellten Anwärterpixeln), würde dasselbe in dem Schritt 78 von Fig. 2 ausgewählt werden, um der nächste EIN-Punkt zu sein.
- Mehrere Beobachtungen können hinsichtlich der Werte, die in Fig. 3 gezeigt sind, gemacht werden. Zuerst fallen dieselben in einen Bereich von 0 bis 1. Bezugnehmend auf das Anwärterpixel mit der Nummer 1 ist zu beobachten, daß die EIN-Punkte P1, P2, P3 und P10 alle den gleichen individuellen Kostenwert aufweisen, nämlich 0,13. Bezugnehmend auf Fig. 3 sind alle diese Pixel um eine Diagonaleinheit von dem Anwärterpixel C1 entfernt. Das EIN-Pixel P9 besitzt einen Kostenwert von 1,00, dem maximalen Wert, da dasselbe um eine Einheit vertikal entfernt ist. Folglich werden die Einheitsdiagonalen gegenüber vertikal oder horizontal wesentlich favorisiert. Das Anwärterpixel C2 besitzt aufgrund seines wesentlichen Abstands von allen EIN-Punkten eine vernachlässigbare Kostenfunktion.
- Nach der Darstellung und Beschreibung der Grundsätze meiner Erfindung hinsichtlich eines bevorzugten Ausführungsbeispiels derselben sollte es für Fachleute ohne weiteres Klar sein, daß die Erfindung in Anordnung und Detail modifiziert werden kann, ohne von den Grundsätzen derselben abzuweichen.
Claims (10)
1. Ein Verfahren zur Halbtongebung eines digitalen
Grauskalenbilds ([F(i, j)]) durch die Verwendung eines
Punkt-Um-Punkt-Schwellengebungsvergleichs (28) mit
einer vorbestimmten Diagonalkorrelations-Zittermatrix
([M(i, j)]), dadurch gekennzeichnet, daß die
Zittermatrix im wesentlichen aus einer Kostenfunktion besteht,
die eine diagonale Korrelation von benachbarten
Punkten (C1, P10) in dem Ausgangsbild erzwingt, während
eine Verstreuung von Punkten maximiert wird, wodurch
visuell unauffällige Ausgabepunktmuster erzeugt
werden.
2. Ein Verfahren gemäß Anspruch 1, bei dem die
Zittermatrix für jeden gewünschten Tonpegel durch ein
Verfahren mit folgenden Schritten erzeugt wird:
Bereitstellen einer Null-Matrix (M) von Pixelorten mit
einer vorbestimmten Größe;
Initialisieren der Null-Matrix (52) auf einen
vorbestimmten Anfangszustand, der einem minimalen Tonpegel
entspricht;
Identifizieren aller AUS-Pixel in der Matrix als
Anwärterpixel (58);
Bestimmen eines Kostenwerts (60) für jedes
Anwärterpixel basierend auf jeweiligen radialen Abständen und
relativen Winkeln zwischen dem Anwärterpixel und den
EIN-Pixeln in der Matrix;
Vergleichen der jeweiligen Kostenwerte der
Anwärterpixel (78), um einen minimalen Kostenwert zu
bestim
men;
Auswählen (78) von einem der Anwärterpixel, das den
minimalen Kostenwert besitzt;
EIN-Schalten des ausgewählten Anwärterpixels (80) in
der Matrix; und
Wiederholen (84) der Identifizier-, Bestimm-,
Vergleichs-, Auswähl- und EIN-Schalt-Schritte, bis die
Anzahl von EIN-Pixeln in der Matrix dem gewünschten
Tonpegel entspricht.
3. Ein Verfahren gemäß Anspruch 2, bei dem das Bestimmen
eines Kostenwerts folgende Schritte aufweist:
Auswählen eines Suchbereichs (r), der das
Anwärterpixel umgibt;
Bestimmen eines individuellen Kostenwerts (110)
basierend auf jedem EIN-Pixel (106) innerhalb des
Suchbereichs (108); und
Summieren der individuellen Kostenwerte (112), um den
Gesamtkostenwert zu bestimmen.
4. Ein Verfahren gemäß Anspruch 3, bei dem das Auswählen
des Suchbereichs das Dimensionieren des Suchbereichs
umfaßt, um einen Bereich einzuschließen, der auf den
gewünschten Tonwert invers bezogen ist.
5. Ein Verfahren gemäß Anspruch 3, bei dem das Auswählen
des Suchbereichs das Dimensionieren des Suchbereichs
umfaßt, um zumindest eine vorbestimmte Anzahl von
EIN-Pixeln, die größer als etwa 10 bis 15 EIN-Pixel
ist, zu beinhalten.
6. Ein Verfahren gemäß Anspruch 3, bei dem das Auswählen
des Suchbereichs das Erhöhen der Größe des
Suchbereichs für Niedertonwerte aufweist, um die menschliche
visuelle Erfassung von Niederfrequenz-Artefakten unter
Punkten in Ausgaberegionen eines konstanten
Niedertonwerts zu reduzieren.
7. Ein Verfahren gemäß Anspruch 3, bei dem das Auswählen
des Suchbereichs das Erhöhen der Größe des
Suchbereichs für Hochtonwerte aufweist, um die menschliche
visuelle Erfassung von Niederfrequenz-Artefakten unter
weißen Räumen in Ausgaberegionen eines konstanten
Hochtonwerts zu reduzieren.
8. Ein Verfahren gemäß den Ansprüchen 3, 4, 5, 6 oder 7,
bei dem das Bestimmen des individuellen Kostenwerts
das Einstellen eines radialen Abstands zwischen dem
Anwärterpixel und jedem EIN-Pixel durch eine Funktion
des radialen Abstands und eines relativen Winkels
zwischen dem Anwärterpixel und jedem EIN-Pixel aufweist,
wobei der eingestellte radiale Abstand dort eine
Spitze aufweist, wo der relative Winkel näherungsweise
gleich 45 Grad ist, wodurch zu EIN-Punkten diagonal
benachbarte Anwärterpixel gegenüber zu EIN-Punkten
vertikal oder horizontal benachbarten Anwärterpixeln
favorisiert werden.
9. Ein Verfahren gemäß den Ansprüchen 3, 4, 5, 6 oder 7,
bei dem der Kostenwert entsprechend einer
Kostenfunktion (FnC) bestimmt wird, die das Potenzieren des
eingestellten radialen Abstands auf zumindest die dritte
Potenz aufweist, so daß der Kostenwert durch den
tatsächlichen radialen Abstand zwischen dem Anwärterpixel
und den EIN-Punkten stark beeinflußt wird, wodurch
Haufen von Punkten einen Einfluß auf den Kostenwert
besitzen, der näherungsweise gleich den Kosten ist,
die durch einen Punkt in dem Haufen, der nächstliegend
zu dem Anwärterpixel ist, eingebracht werden.
10. Ein Verfahren gemäß den Ansprüchen 3, 4, 5, 6 oder 7,
das ferner das Kompensieren eines Zielausgabesystems
aufweist, bei dem die Punkte innerhalb einer
vorbestimmten minimalen Radialabstandberührung, die größer
als eine Einheit zueinander ist, gedruckt werden,
durch das Einstellen des tatsächlichen radialen
Abstands r, um einen eingestellten radialen Abstand zu
bilden, der zwischen r und dem minimalen radialen
Abstand variiert.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12844293A | 1993-09-28 | 1993-09-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69417832D1 DE69417832D1 (de) | 1999-05-20 |
DE69417832T2 true DE69417832T2 (de) | 1999-08-12 |
Family
ID=22435406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69417832T Expired - Fee Related DE69417832T2 (de) | 1993-09-28 | 1994-09-09 | Digitale Halbtonrasterwiedergabe eines Grautonbildes mit frequenzabhängiger diagonaler Korrelation |
Country Status (4)
Country | Link |
---|---|
US (2) | US5526438A (de) |
EP (1) | EP0647058B1 (de) |
JP (1) | JP3957332B2 (de) |
DE (1) | DE69417832T2 (de) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0772934B1 (de) * | 1994-07-29 | 2000-10-04 | Harlequin Limited | Bildwiedergabe unter benutzung von gleichmässig verteilten intensitätsgruppen |
US5579457A (en) * | 1994-07-29 | 1996-11-26 | The Harlequin Group Ltd. | Image display apparatus and method using irregularly placed curving structures |
GB9519923D0 (en) * | 1995-09-29 | 1995-11-29 | Philips Electronics Nv | Motion estimation for predictive image coding |
AUPN743096A0 (en) * | 1996-01-05 | 1996-02-01 | Canon Kabushiki Kaisha | Force field halftoning |
US5638187A (en) * | 1996-02-23 | 1997-06-10 | Hewlett-Packard Company | Image dithering method enabling conversion of a gray level pixel image into a binary pixel image |
JP3670754B2 (ja) * | 1996-04-15 | 2005-07-13 | オリンパス株式会社 | 信号処理装置 |
SE9602696L (sv) * | 1996-07-01 | 1998-01-02 | Forskarpatent I Linkoeping Ab | Snabbt rastreringsförfarande |
JP3529954B2 (ja) * | 1996-09-05 | 2004-05-24 | 株式会社資生堂 | 顔だち分類法及び顔だちマップ |
US5920682A (en) * | 1996-09-20 | 1999-07-06 | Seiko Epson Corporation | Multiple layer cluster dither matrix for reducing artifacts in printed images |
US5946452A (en) * | 1997-02-14 | 1999-08-31 | Eastman Kodak Company | Partially correlated minimum visibility halftone patterns for digital printers |
US6122407A (en) * | 1997-12-19 | 2000-09-19 | Electronics For Imaging, Inc. | Method and apparatus for producing threshold arrays using variance minimization and sparse image calculations |
KR100275690B1 (ko) * | 1997-12-29 | 2000-12-15 | 윤종용 | 마스크를 이용한 영상처리장치 |
US20020071140A1 (en) * | 1998-06-03 | 2002-06-13 | Takashi Suzuki | Threshold matrix, and method and apparatus of reproducing gray levels using threshold matrix |
US6389167B1 (en) | 1998-10-30 | 2002-05-14 | Hewlett-Packard Company | Multi-level pixel density reduction for printers |
US6433891B1 (en) | 1998-12-14 | 2002-08-13 | Oak Technology, Inc. | Stochastic screening method with dot pattern regularity control and dot growth |
US6606168B1 (en) | 1999-03-31 | 2003-08-12 | 3M Innovative Properties Company | Narrow band, anisotropic stochastic halftone patterns and methods of creating and using the same |
JP3427026B2 (ja) * | 1999-12-24 | 2003-07-14 | 大日本スクリーン製造株式会社 | 網点形成方法および装置 |
US6791718B1 (en) * | 2000-06-14 | 2004-09-14 | Hewlett-Packard Development Company, L.P. | Halftone printing with dither matrices generated by using cluster filters |
WO2002071738A1 (fr) * | 2001-03-02 | 2002-09-12 | Dai Nippon Printing Co., Ltd. | Procede de creation d'un masque de tremblement et dispositif de creation |
JP3934442B2 (ja) * | 2001-03-16 | 2007-06-20 | 株式会社リコー | マスク作成方法、画像処理装置及びソフトウェアプログラム |
US7079290B2 (en) * | 2001-06-06 | 2006-07-18 | International Business Machines Corporation | Halftoning method and system providing increased number of densities per basic halftone cell for constant input |
JP4124580B2 (ja) * | 2001-06-12 | 2008-07-23 | 富士フイルム株式会社 | 階調画像作成用閾値配列決定方法 |
US6793309B2 (en) * | 2002-05-03 | 2004-09-21 | Milliken & Company | Fault tolerant superpixel constructions |
US7301667B1 (en) | 2002-05-06 | 2007-11-27 | Electronics For Imaging, Inc. | Image tiling in ink jet printing systems |
US7280246B2 (en) * | 2003-02-12 | 2007-10-09 | Marvell International Technology Ltd. | Laser print apparatus that generates pulse width value and justification value based on pixels in a multi-bit image |
JP2004336163A (ja) * | 2003-04-30 | 2004-11-25 | Minolta Co Ltd | 画像処理装置、画像処理方法および画像処理プログラム |
GB2402009B (en) * | 2003-05-20 | 2006-02-15 | Software 2000 Ltd | Bit mask generation system and printer drivers and printing methods incorporating bit masks generated utilising same |
US7277204B2 (en) * | 2003-07-31 | 2007-10-02 | Kodak Il Ltd. | Stochastic halftone screening method |
US7253927B2 (en) | 2003-10-15 | 2007-08-07 | Benq Corporation | Method of adjusting halftone image dot positions for improving print quality |
GB2419250C (en) * | 2004-10-18 | 2008-04-24 | Software 2000 Ltd | Bit mask generation system. |
JP4765635B2 (ja) * | 2005-09-15 | 2011-09-07 | セイコーエプソン株式会社 | 高画質ハーフトーン処理 |
KR100707273B1 (ko) * | 2005-09-21 | 2007-04-16 | 삼성전자주식회사 | 압축률을 고려한 스크린 설계가 가능한 하프톤 스크린설계장치 및 그 스크린 설계방법 |
US20070269123A1 (en) * | 2006-05-16 | 2007-11-22 | Randall Don Briggs | Method and apparatus for performing image enhancement in an image processing pipeline |
JP4545128B2 (ja) * | 2006-09-16 | 2010-09-15 | 株式会社リコー | 画像処理装置、プログラム、画像形成装置、画像形成方法、ディザマトリクス |
JP4757210B2 (ja) | 2007-02-09 | 2011-08-24 | 大日本スクリーン製造株式会社 | 閾値マトリクス生成方法、閾値マトリクス生成装置および閾値マトリクス |
JP4777278B2 (ja) * | 2007-02-28 | 2011-09-21 | キヤノン株式会社 | 画像処理装置およびその方法 |
US8228561B2 (en) * | 2007-03-30 | 2012-07-24 | Xerox Corporation | Method and system for selective bitmap edge smoothing |
JP4758946B2 (ja) * | 2007-05-24 | 2011-08-31 | 大日本スクリーン製造株式会社 | 閾値マトリクス生成方法、画像データ生成方法、画像データ生成装置、画像記録装置および閾値マトリクス |
US20090034008A1 (en) * | 2007-08-03 | 2009-02-05 | Lawrence Croft | Method for generating stochastic dither matrix |
US20090034006A1 (en) * | 2007-08-03 | 2009-02-05 | Blondal Daniel J | Stochastic halftone images based on screening parameters |
US8368959B2 (en) * | 2009-05-18 | 2013-02-05 | Xerox Corporation | Method and system for selective smoothing of halftoned objects using bitmap encoding |
GB2473476B (en) * | 2009-09-11 | 2015-01-07 | Andrew William Peter Cave | Computer program for generating 1-bit image data from multiple-bit image data |
JP5832350B2 (ja) * | 2012-03-28 | 2015-12-16 | 株式会社Screenホールディングス | 閾値マトリクス生成方法、画像データ生成方法、画像データ生成装置、画像記録装置および閾値マトリクス |
JP6029305B2 (ja) * | 2012-03-29 | 2016-11-24 | キヤノン株式会社 | 画像処理装置およびその制御方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4920501A (en) * | 1988-10-19 | 1990-04-24 | Eastman Kodak Company | Digital halftoning with minimum visual modulation patterns |
JPH0691621B2 (ja) * | 1988-11-24 | 1994-11-14 | 大日本スクリーン製造株式会社 | 網目版画像記録方法および装置 |
US5107349A (en) * | 1990-04-16 | 1992-04-21 | Eastman Kodak Company | Multiple screen frequency half-toning with one screen angle |
US5111310A (en) * | 1990-12-04 | 1992-05-05 | Research Technologies Corporation, Inc. | Method and apparatus for halftone rendering of a gray scale image using a blue noise mask |
US5124803A (en) * | 1991-02-25 | 1992-06-23 | Ecrm | Method and apparatus for generating digital, angled halftone screens using pixel candidate lists and screen angle correction to prevent moire patterns |
US5754311A (en) * | 1992-03-10 | 1998-05-19 | Eastman Kodak Company | Method and apparatus for generating simultaneously derived correlated digital halftone patterns |
-
1994
- 1994-09-09 DE DE69417832T patent/DE69417832T2/de not_active Expired - Fee Related
- 1994-09-09 EP EP94306640A patent/EP0647058B1/de not_active Expired - Lifetime
- 1994-09-28 JP JP25871194A patent/JP3957332B2/ja not_active Expired - Fee Related
- 1994-11-28 US US08/345,289 patent/US5526438A/en not_active Expired - Lifetime
-
1996
- 1996-03-07 US US08/612,702 patent/US5761325A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0647058A2 (de) | 1995-04-05 |
JPH07170400A (ja) | 1995-07-04 |
US5526438A (en) | 1996-06-11 |
JP3957332B2 (ja) | 2007-08-15 |
US5761325A (en) | 1998-06-02 |
DE69417832D1 (de) | 1999-05-20 |
EP0647058A3 (de) | 1995-04-19 |
EP0647058B1 (de) | 1999-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69417832T2 (de) | Digitale Halbtonrasterwiedergabe eines Grautonbildes mit frequenzabhängiger diagonaler Korrelation | |
DE69415859T2 (de) | Halbtongerasterte Bilder mit Verwendung von speziellen Filtern | |
DE69415853T2 (de) | Bilddatenhalbtonrasterung durch Fehlerdiffusion gemäss einer definierten Gewichtenmatrix | |
DE69029229T2 (de) | Digitale halbtonrasterung mit fehlerdiffusion | |
DE69915385T2 (de) | Schmalbandige anisotropische stochastische halbtonmuster und verfahren zu deren erzeugung und verwendung | |
DE69410530T2 (de) | Halbtongerasterte Bilder mittels Modellierung der gedruckten Symbole | |
DE69625300T2 (de) | Verfahren und Gerät zur Halbtonrasterung unter Verwendung von stochastischem Zittern mit minimaler Dichtevarianz | |
DE68923552T2 (de) | Digitale halbtonrasterung mit minimalvisuellen modulationsmustern. | |
DE69617408T2 (de) | Digitale rasterung mit spreizspektrum | |
DE69620969T2 (de) | Bilderstellungssystem und verfahren zur generierung stochastischer regelfelder | |
DE69526469T2 (de) | Bildumsetzungsverfahren und -system unter Verwendung von dynamischer Fehlerdiffusion | |
DE69706763T2 (de) | Verfahren und Vorrichtung zum selektiven Bearbeiten von abgetasteten Bildvorlagen | |
DE69812800T2 (de) | Verfahren und Gerät zur Bildverbesserung | |
DE69304745T2 (de) | Verfahren und Gerät zur Erzeugung gleichzeitig abgeleiteter korrelierter digitaler gerasterter Halbtonmuster | |
DE69823593T2 (de) | Fehlerdiffusion für Farbhalbtonrasterung mit Verringerung der lokalen Helligkeitsänderung | |
DE3785950T2 (de) | Verfahren zur umsetzung der bildelementdichte fuer grautonbilder. | |
DE69133044T2 (de) | Punktgrössensteuerverfahren bei digitaler Halbtonrasterung mit mehrzelligen Schwellenmatrix | |
DE69127599T2 (de) | Verfahren und System zum Drucken in eine oder mehrere Farbflächen mit verbesserter Fehlerdiffusionssteuerung | |
DE69517855T2 (de) | Verfahren zur Erzeugung einer Schwellenmatrix | |
DE69324653T2 (de) | Verfahren und gerät zur bildreproduktion mittels grautondruck | |
DE69424451T2 (de) | Halbtonzitteroptimierungstechniken | |
DE69627090T2 (de) | Bildverarbeitungsverfahren und -gerät | |
DE69516907T2 (de) | Verfahren zur bildkontrast- und auflösungsverbesserung | |
DE19623318C2 (de) | Teilpixelcodierungs- und Decodierungsverfahren | |
DE4436678A1 (de) | Multi-Tonabstufungs-Bildbearbeitungssystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: HEWLETT-PACKARD CO. (N.D.GES.D.STAATES DELAWARE), |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE |
|
8339 | Ceased/non-payment of the annual fee |