-
Die Ausbreitung einer Digitalbildphotographie, eines -druckens und einer -bilderzeugung fordert verbesserte Bildverarbeitungstechniken. Diese Bildverarbeitungstechniken verbessern die wahrgenommene Qualität von Bildern durch ein Manipulieren der durch Kameras und andere Vorrichtungen erfaßten und aufgezeichneten Daten. Billigere Vorrichtungen können qualitativ höherwertige Bilder durch hochentwickelte Bildverarbeitungstechniken erzeugen, die auf Computern und Peripheriegeräten durchgeführt werden. Dies erfüllt den Bedarf des Verbrauchers nach Bildern mit einer besseren Qualität ohne ein Ausgeben großer Geldmengen für professionelle Vorrichtungen oder sogar Vorrichtungen vom „Prosumer”-Typ.
-
Eine Bildverarbeitungstechnik, die Bildschärfung genannt wird, neigt dazu, die Gesamtdetails in einem Bild zu verbessern. üblicherweise wirkt eine Bildschärfung durch ein Erhöhen eines Pixelkontrastes an und um wahrgenommene Kanten in einem Bild. Wenn die Kanten für das Bild wichtig sind, erhöht dies die sichtbaren Details in dem Bild und die wahrgenommene Gesamtqualität des Bildes. Leider sind Artefakte, Rauschen und andere Details unter Umständen nicht erwünscht, werden jedoch durch Bildschärfungsoperationen ebenso verstärkt. Diese Schärfungsoperationen können das Bild oft „verrauscht” und als eine geringere Qualität erscheinen lassen, als dies der Fall wäre, wenn dieselben unterlassen würden.
-
Alternative Bildverarbeitungsoperationen zur Glättung wirken, um Artefakte, Rauschen und andere unerwünschte detaillierte Elemente eines Bildes zu reduzieren oder beseitigen. Filter und andere Operationen werden auf diese Bilder angewendet, um Details, die als Artefakte oder Rauschen wahrgenommen werden, zu lindern oder zu beseitigen. Ein Glätten beseitigt vorzugsweise ein unerwünschtes Rauschen und Artefakte, indem benachbarte Pixel konsistenter zueinander gemacht werden. Diese Filter weisen, wenn sie wahllos angewendet werden, die nachteilige Wirkung auf, daß sie auch erwünschte Details, die wichtig für das Bild sind, beseitigen und zu verschwommenen oder unscharfen Bildern führen können.
-
Eine aktive Unterdrückung von Rauschen und Artefakten während einer Bildverarbeitung ist ein weiteres Verfahren zum Verbessern einer Bildqualität durch eine Bildverarbeitung. Diese Operationen weisen ebenso einen Glättungseffekt hauptsächlich an oder um scharfe Kanten in einem Bild auf. Während diese Unterdrückungsverfahren genauer sein können, können sie rechnungstechnisch ineffizient und deshalb nicht kosteneffektiv zur Implementierung bei preiswerteren Hardware- und Softwareplattformen sein.
-
Ferner können selbst qualitativ hochwertige Bildverarbeitungsverfahren nicht auf alle Typen von Bildern erfolgreich angewendet werden. Ein Bildverarbeitungsverfahren, das ein Bild verbessert, kann ungeeignet sein, wenn es auf ein anderes Bild angewendet wird. Ferner kann eine Bildverarbeitungstechnik unter Umständen den vorteilhaften Wirkungen einer anderen Bildverarbeitungstechnik entgegenwirken.
-
Aus der
US 2002/0 031 257 A1 ist eine Bildverarbeitungsvorrichtung bekannt, bei der ein Filter mit einer geeigneten räumlichen Frequenzcharakteristik für jeden Bildbereich entsprechend eines Bildbereichsbestimmungssignal und eines Farbtonbestimmungssignals ausgewählt wird. Das Bildbereichsbestimmungssignal gibt an, ob ein Bildbereich eine Kante/ein Zeichen enthält oder ein natürlicher Bildabschnitt ist.
-
Es ist die Aufgabe der vorliegenden Erfindung, ein Verfahren, eine Bildverarbeitungsvorrichtung oder ein Computerprogrammprodukt zu schaffen, die eine ausgereiftere Technik von Bildverarbeitungsprozessen ermöglichen.
-
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1, eine Bildverarbeitungsvorrichtung gemäß Anspruch 18 oder ein Computerprogrammprodukt gemäß Anspruch 25 gelöst.
-
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beigefügten Zeichnungen näher erläutert, wobei gleiche Bezugszeichen und Bezeichnungen in den verschiedenen Zeichnungen gleiche Elemente anzeigen. Es zeigen:
-
1 ein Blockdiagramm, das ein Gesamtverfahren und ein -system zur Verarbeitung von Bildern gemäß einer Implementierung der vorliegenden Erfindung darstellt;
-
2 ein Flußdiagramm, das die Operationen liefert, die einem Erzeugen von Einträgen in einer Raum-Farbnachschlagtabelle (Raum-CLUT) zugeordnet sind, wie dieselbe durch ein Bildverarbeitungssystem verwendet wird, das gemäß Implementierungen der vorliegenden Erfindung entworfen ist;
-
3 ein Flußdiagramm, das die Operationen darstellt, die einem Verwenden einer Raum-CLUT zugeordnet sind, um bestimmte Farbgruppierungen in einem Bild gemäß einer Implementierung der vorliegenden Erfindung zu verbessern;
-
4 ein exemplarisches Tabellendiagramm, das die Informationen liefert, die in einer Raum-CLUT gemäß einer Implementierung der vorliegenden Erfindung gespeichert sind;
-
5 eine exemplarische Raum-CLUT, die gemäß einer Implementierung der vorliegenden Erfindung entworfen ist und zum Verbessern eines spezifischen Satzes von Farben verwendet wird;
-
5 ein Blockdiagramm, das die Typen von Vorrichtungen darstellt, die in der Lage sind, eine Bildverarbeitungsvorrichtung und verbesserte Bilder zu verwenden, die gemäß einer Implementierung der vorliegenden Erfindung entworfen sind; und
-
7 eine Blockdiagrammdarstellung einer Bildverarbeitungsvorrichtung zur Bildverarbeitung gemäß einer Implementierung der vorliegenden Erfindung.
-
1 ist ein Blockdiagramm, das ein Gesamtverfahren und ein -system zur Verarbeitung von Bildern gemäß einer Implementierung der vorliegenden Erfindung darstellt. Ein Verarbeitungsbild 102 beinhaltet ein Pixelfenster 104, ein Eingangspixel 105, ein Filterauswahlmodul 106, ein Filterverarbeitungsmodul 108, eine Filterdatenbank 110, ein Farberfassungsmodul 112, eine Farbnachschlagtabelle 114, ein Ausgangspixel 116 und optional ein Pixelklassifizierungsmodul 118 mit Verbesserungseinstellungen 120.
-
Bei einer Implementierung wird das Bild 102 in Abschnitten unter Verwendung eines Pixelfensters 104 verarbeitet, das N×N Pixel aufweist. Andere Implementierungen können ein asymmetrisches Pixelfenster, das M×N Pixel aufweist, verwenden. In dem Fall eines N×W-Pixelfensters 104 können die Abmessungen auf 5×5, 3×3 und andere Fensterabmessungen abhängig von der Granularität der erforderlichen Verarbeitung eingestellt werden. Das Filterauswahlmodul 116 empfängt eine Anzeige von der Farbnachschlagtabelle 114, die ein Filter zur Verarbeitung eines Eingangspixel 105 und eines Pixelfensters 104 identifiziert. Diese Anzeige kann ein Index oder Versatz sein, der ein Filter in der Filterdatenbank 110 identifiziert, oder kann ein tatsächlicher Bildverarbeitungsalgorithmus oder ein Satz von Parametern zur Durchführung eines Algorithmus sein. Bei einer Implementierung wendet das Filterverarbeitungsmodul 108 das aus der Filterdatenbank 110 ausgewählte Filter auf das Eingangspixel 105 und das Pixelfenster 104 an. Die Filterdatenbank 110 umfaßt einen breiten Bereich von Filtern und Faltungen zur Bildverbesserung. Diese Filter und Faltungen liefern z. B. mehrere Pegel von Glättangs- und Schärfungsoperationen zur Anwendung auf das Eingangspixel 105 und das Pixelfenster 104.
-
Optional empfängt das Filterauswahlmodul 106 eine Anzeige von der Farbnachschlagtabelle 114 in einer gewichteten Kombination mit einer Anzeige von dem Pixelklassifizierungsmodul 118, wenn ein Filter aus der Filterdatenbank 110 zur Verarbeitung eines Bildes ausgewählt wird. Ein Benutzer oder eine Anwendung kann die Filteranzeige, die durch das Pixelklassifizierungsmodul 118 bereitgestellt wird, ferner durch Einstellungen an den Verbesserungseinstellungen 120 steuern. Die Verbesserungseinstellungen 120 ermöglichen es einem Benutzer oder einer Anwendung, die durch das Pixelklassifizierungsmodul 118 bereitgestellte Anzeige zur Filterauswahl 108 zu beeinflussen, wenn eine Filterauswahl getroffen wird.
-
Die Pixelklassifizierung
118 kann z. B. eine Anzeige liefern, um Schärfungstyp-Filter hinsichtlich eines Eingangspixels
105 und des Pixelfensters
104, das Kanten aufweist, sowie Glättungstyp-Filter für das Eingangspixel
105 und das Pixelfenster
104, das Rauschen enthält, zu verwenden, was Artefakte und andere unerwünschte Charakteristika blockiert. Diese Anzeigen von der Pixelklassifizierung
118 werden mit Schärfungs- oder Glättungsfilterauswahlanzeigen von der Farbnachschlagtabelle
114 kombiniert, um die geeignete Filterdatenbank
110 auszuwählen. Da die Pixelklassifizierung und Filterungsindikatoren unter Verwendung der Verbesserungseinstellungen
120 parametrisiert sind, können die Schärfungs- und die Glättungstyp-Bildverbesserung gemäß dem erwünschten Ausgangsbild eingestellt werden. Details hinsichtlich einer Durchführung einer Pixelklassifizierung und einer Bildverbesserung unter Verwendung der Verbesserungseinstellungen
120 gemäß dem Pixelklassifizierungsmodul
118 sind in der
US 2003/026495 A1 detaillierter beschrieben.
-
Ein Darstellen von Bildern mit den geeigneten Farbmodellen ist ein wichtiger Aspekt der vorliegenden Erfindung. Da ein Kombinieren dreier Primärfarben (X, Y, Z) die Farbempfindungen definieren kann, die eine Person mit ihren Augen hat, existieren mehrere Tristimulus-Farbräume zum Spezifizieren dreier unabhängiger Funktionen einer Wellenlänge für den idealen Dreifarbbeobachter. Die Grundsätze derartiger dreidimensionaler Aufbauten sind durch die internationale Standardbehörde Commission Internationale L'Eclairage oder CIE beschrieben. Ein Einstellen der Standards zur Kolorimetrie und ein Identifizieren von Farben sind in Principles of Color Technology von Billmeyer und Saltzman, veröffentlicht durch John Wiley & Sons, Inc., NY, Urheberrecht 1981 (2. Ausgabe) und in Color Science: Concepts and Methods, Quantitative Data and Formulae von Wyszecki und Stiles, veröffentlicht durch John Wiley & Sons, Inc., Urheberrecht 1982 (2. Ausgabe), hierin in zugehörigen Teilen, insbesondere Seiten 119–130, durch Bezugnahme aufgenommen, und in Fundamentals of Interactive Computer Graphics von Foley and Van Dam, Addison-Wesley Publishing Company, hierin in zugehörigen Teilen, insbesondere Seiten 606–621, durch Bezugnahme aufgenommen, erläutert.
-
Diese verschiedenen Dreifarbmodellsysteme umfassen folgende Modelle: das Rot-, Grün-, Blau-(RGB-)Modell; das Cyan-, Magenta-, Gelb-(und Schwarz-)(CMG(S)-)Modell; das Farbton-, Sättigung-, Wert-(HSV-)Modell; das Farbton-Helligkeit-, Sättigungs-(HLS-)Modell; das Leuchtdichten-, Rot-Grün-Skala-, Gelb-Blau-Skala-(L*a*b*-)Modell und das YIQ-Modell, das bei kommerziellem Farbfernsehrundfunk verwendet wird. Ein Auswählen des geeigneten Modells hängt von der Anwendung und den verschiedenen durch das Modell gelieferten Vorteilen ab.
-
Üblicherweise stellen Farbeingangs- und Ausgangsvorrichtungen, wie z. B. Scanner, Kathodenstrahlröhren-(CRT-)Videomonitore und Drucker, Farbbilder auf eine vorrichtungsabhängige Weise dar. CRT-Strahler werden z. B. durch Spannungspegel oder andere Eingangssignalfunktionen getrieben, die Rot-, Grün- und Blau- oder RGB-Datentriplets entsprechen. Diese RGB-Datentriplets entsprechen der spezifischen Farbpalette für die CRT und den eindeutigen Farben, die durch die CRT-Pixel auf ihrem Bildschirm erzeugt werden. Unterschiede bei einer Farbreproduktion bei jeder der Vorrichtungen bedeutet, daß das gleiche RGB-Triplet tatsächlich eine sehr unterschiedliche Farbe oder Farbton erzeugen kann, wenn diese/r auf einer CRT eines unterschiedlichen Modells angezeigt oder eine Druckkopie mit einem Farbdrucker unter Verwendung eines Farbraums einer unterschiedlichen Vorrichtung, wie z. B. Cyan, Magenta, Gelb und Schwarz oder CMGS, erzeugt wird. (Um eine Schwarzfarbreinheit bei einem CMGS-Drucken beizubehalten, kann Tinte oder Toner mit separatem schwarz (S) bereitgestellt werden, anstatt alle drei Farben Cyan, Magenta und Gelb zu drucken, um ein zusammengesetztes schwarz zu erzeugen.)
-
Ein Transformieren von Farben zwischen Vorrichtungen oder Farbräumen auf unterschiedlichen Vorrichtungen erfordert komplexe nicht lineare Berechnungen in mehreren Dimensionen. Um die Verarbeitungsanforderungen für diese Transformationen zu reduzieren, sind die korrelativen Werte üblicherweise vorberechnet und in großen Farbnachschlagtabellen (CLUT) gespeichert, die manchmal bis zu 50 Mb oder mehr erfordern. Allgemein enthält eine größere CLUT einen breiteren Bereich an Farbkombinationen, was genauere Farbbilder ergibt, kann jedoch eine größere Rechenzeit und Verarbeitungsleistung erforderlich machen, wenn die CLUT durchsucht und auf dieselbe zugegriffen wird. Eine weitere Rechenzeit und Verarbeitungsleistung wird außerdem benötigt, wenn keine Übereinstimmung zwischen einer Farbkombination in der CLUT gefunden werden kann, wobei so eine komplexe Interpolation innerhalb des Farbraums erforderlich ist, um die Farbe umzuwandeln. Ein effizientes Interpolieren zwischen Werten in großen CLUTs ist in dem
U.S.-Patent Nr. 5,748,176 mit dem Titel „Multi-Variable Colorimeter Data Access by Iterative Interpolation and Subdivision” von Jay S. Gondek, der Anmelderin der vorliegenden Erfindung zugewiesen und hierin in seiner Gesamtheit durch Bezugnahme aufgenommen, beschrieben.
-
Oft enthält die CLUT Daten zur Annäherung einer Transformation von einem RGB-System zu einem CMGS-System, was die Korrelation zwischen zwei Farbmodellen und/oder die Wiedergabe von Farbbildern auf unterschiedlichen Vorrichtungen erleichtert. Diese Transformationen beinhalten oft die Umwandlung von unter Verwendung der additiven Primärfarben Rot, Grün und Blau (RGB) wiedergegebenen Bildern für einen Computervideomonitor in die subtraktiven Primärfarben Cyan, Magenta, Gelb und Schwarz (CMGS) zum Drucken auf einer Farbdruckvorrichtung.
-
Gemäß der vorliegenden Erfindung werden für jede Vorrichtung entwickelte CLUTs durch Implementierungen der vorliegenden Erfindung modifiziert und verwendet, um eine Bildverarbeitung anstelle von Farbtransformationen durchzuführen. 2 ist ein Flußdiagramm, das die Operationen liefert, die einem Erzeugen dieser Einträge in die CLUT zugeordnet sind, wie diese durch ein Bildverarbeitungssystem verwendet wird, das gemäß Implementierungen der vorliegenden Erfindung entworfen ist.
-
Zu Beginn wird eine Farbpalette für eine Bilddarstellungsvorrichtung gesammelt. Die Farbpalette weist den Bereich verfügbarer Farben auf, die die Vorrichtung reproduzieren kann (202). Wie oben beschrieben ist, hängt das zur Darstellung der Farbpalette verwendete Dreifarbmodell von dem Typ von Vorrichtung und Verfahren ab, das die Vorrichtung verwendet, um Farbbilder zu erzeugen. Farbdrucker, die das CGMS-Farbmodell verwenden, weisen eine entsprechende Farbpalette auf, die die Wirkung eines Kombinierens jeder Farbe von Cyan, Gelb und Magenta in verschiedenen Kombinationen und Mengen miteinander darstellt. Ähnlich weisen Farb-CRT-Anzeigevorrichtungen, die das RGB-Farbmodell verwenden, eine Farbpalette auf, die die Wirkung eines Kombinierens jeder Farbe von rot, grün und blau miteinander auf der Anzeigevorrichtung beschreibt.
-
Ein Darstellen der für diese und andere Rastervorrichtungen anzeigbaren Farben ist ein Teilsatz des Gesamtfarbraums, der durch die CIE-Farbartdiagramme dargestellt wird. Anstelle von CIE-Farbartdiagrammen ist ein RGB-Raum oder ein CGMS-Raum allgemein unter Verwendung eines kartesischen Koordinatensystems dargestellt, bei dem die additiven RGB- oder die subtraktiven CGMS-Primärfarben entlang gegenüberliegender Enden der X-, Y- und Z-Achse dargestellt sind. Natürlich sind auch andere Farbmodelldarstellungen möglich und Aspekte der vorliegenden Erfindung sind nicht auf nur das RGB und das CGMS-Farbmodell beschränkt. Dieses kartesische Koordinatensystem wird durch das
U.S.-Patent Nr. 5,748,176 mit dem Titel „Multi-Variable Colorimeter Data Access by Iterative Interpolation and Subdivisions” verwendet, um wirksam zwischen Einträgen in der CLUT zu interpolieren und wirksam den dynamischen Bereich ohne wesentliche Hardware- oder andere algorithmische Operationen zu verbessern.
-
Sobald die Farbpalette für eine Vorrichtung bestimmt ist, werden unterschiedliche Regionen von Farben, die die Farbpalette in einer Raum-CLUT darstellen, einer oder mehreren Bildverbesserungsoperationen zugeordnet (204). Einträge in der Raum-CLUT können einen Index oder eine eingebettete Datenbankabfrage verwenden, um auf die Verbesserungsoperationen in einer separaten Datenbank zuzugreifen. Alternativ kann die Raum-CLUT ausreichend Raum aufweisen, um geeignete Algorithmusoperationen und/oder Faltungen zur Verbesserung der Bilder direkt zu speichern.
-
Gemäß der vorliegenden Erfindung werden Farbschemata, die häufig in Bildern zu finden sind, durch die Anwendung bestimmter Verbesserungs- oder Bildverarbeitungsoperationen verbessert. Die Raum-CLUT verweist auf die verschiedenen Farbschemata mit den spezifischen Verbesserungsoperationen, wodurch das Bildverbesserungsverfahren erleichtert wird. Durch ein Verweisen auf Segmente des Bildes nach Farbe empfangen typische Objekte oder Szenen in dem Bild den geeignetsten Typ von Bildverbesserung. Umgekehrt werden andere Abschnitte des Bildes, die andere Farbschemata aufweisen, nicht durch ungeeignete Bildverbesserungsoperationen verarbeitet.
-
Bei einer Implementierung z. B. sind Schattierungen von grün in der Raum-CLUT Schärfungsroutinen zugeordnet. Blätter, Gras, Bäume, Laub und andere ähnliche Objekte, die üblicherweise Schattierungen von Grün zugeordnet sind, werden geschärft, wodurch die Wahrnehmung dieser Objekte in dem Bild verbessert wird. Ähnlich sind Fleischtonfarben in der Raum-CLUT Glättungsroutinen zugeordnet und reduzieren so Artefakte, Rauschen und andere unerwünschte Elemente, die manchmal bei den Hauttönen von Menschen, die in Bildern erscheinen, auftauchen. Ferner reduziert ein Segmentieren dieser Regionen von Farben gemäß der vorliegenden Erfindung den Grad, zu dem Fleischtonfarben in einem Photo unkorrekterweise ein Schärfen empfangen oder Schattierungen von grün in einem Photo unbeabsichtigt geglättet werden. Andere Farbregionen in der Raum-CLUT können auch einer Glättungs-, einer Schärfungs- oder einer anderen Verbesserungsoperation zugeordnet sein, die einer Region von Farben oder einem Spektrum von Farben in einer logischen Gruppierung eng zugeordnet sind.
-
Die Raum-CLUT wird für Bildverarbeitungsvorrichtungen verfügbar gemacht, sobald Verbesserungsoperationen Einträgen in der Raum-CLUT zugeordnet sind (206). Die Bildverarbeitungsvorrichtungen umfassen Anzeigekartenvorrichtungen oder eine andere Bildverarbeitungsausrüstung, die verwendet wird, um Bilder auf Computern oder einer computerbasierten Ausrüstung wiederzugeben. Die tatsächliche Raum-CLUT wird unter Verwendung von Anwendungsprogrammierungsschnittstellen (API), Systemaufrufen und anderen Schnittstellen verfügbar gemacht, die typischerweise verwendet werden, um herkömmliche CLUTs, die für Farbtransformationen anstelle von Raumtransformationen verwendet werden, schnittstellenmäßig zu verbinden. Die Raum-CLUT kann z. B. direkt in einem Betriebssystem oder innerhalb von Vorrichtungstreibern vorgesehen sein, die entworfen sind, um eine schnittstellenmäßige Verbindung zwischen dem Betriebssystem und Bildverarbeitungsvorrichtungen herzustellen, die einem Computer oder einer computerbasierten Vorrichtung zugeordnet sind.
-
3 ist ein Diagramm, das die Operationen darstellt, die einer Verwendung einer Raum-CLUT zugeordnet sind, um bestimmte Farbgruppierungen in einem Bild zu verbessern. Zu Beginn empfängt die Verbesserungsoperation ein Pixelbild zur Verbesserung (300).
-
Ein Probenpixelfenster und ein Eingangspixel in dem Pixelbild werden zur Bestimmung einer Eingangsfarbe und der entsprechenden Verbesserungsoperation ausgewählt (302). Bei einer Implementierung ist das Eingangspixel in der Mitte eines Pixelfensters, das entweder eine 5×5-Abmessung, eine kleiner 3×3-Abmessung oder eine andere Abmessung aufweist. Ein Verwenden eines kleineren Pixelfensters ermöglicht es, daß die Verarbeitung schneller auftritt, während die große Pixelabmessung einen Kompromiß mit längeren Verarbeitungszeiten zugunsten einer besseren Genauigkeit eingeht. Jede resultierende Verbesserungsoperation modifiziert das Eingangspixel und das Pixelfenster, bevor das Probenpixelfenster verschoben wird, um einen anderen Bereich des Bildes zu bedecken. Ein Fortfahren mit dieser Verbesserungsoperation hinsichtlich des Eingangsbildes erzeugt ein verbessertes Ausgangsbild mit den gleichen Abmessungen gemäß der vorliegenden Erfindung.
-
Die Eingangsfarbe des Pixelfensters wird allgemein durch ein Nehmen eines mittleren gewichteten Durchschnitts der Werte in dem Pixelfenster bestimmt. Alternativ kann die Eingangsfarbe durch ein Verwenden eines gewichteten Durchschnitts der Werte in dem Pixelfenster ohne die besondere Hervorhebung der Farbe, die durch das Eingangspixel in der Mitte des Pixelfensters beigetragen wird, bestimmt werden. Eine weitere Alternative kann die Eingangsfarbe, die dem Eingangspixel in der Mitte des Pixelfensters zugeordnet ist, verwenden, anstatt andere Farbbestimmungsberechnungen durchzuführen.
-
Auf die identifizierte Eingangsfarbe wird in der Raum-CLUT verwiesen, um eine geeignete Verbesserungsoperation zu lokalisieren (304). Ein Identifizieren der Eingangsfarbe in der Raum-CLUT beinhaltet ein Vergleichen der Eingangsfarbe mit Einträgen in der Raum-CLUT unter Verwendung des geeigneten Farbmodells. In einigen Fällen kann es notwendig sein, die Eingangsfarbe in ein Farbmodell umzuwandeln, das kompatibel mit Einträgen in der Raum-CLUT ist (d. h. RGB zu CGMS oder CGMS zu RGB).
-
Je größer die Raum-CLUT ist, desto höher ist die Wahrscheinlichkeit, daß die spezifische Farbkombination, die der Eingangsfarbe zugeordnet ist, sofort in der Raum-CLUT identifiziert wird. In einigen Fällen jedoch stimmt die Eingangsfarbe selbst dann nicht mit einem Eintrag in der Raum-CLUT überein, wenn der gleiche 3D-Farbraum verwendet wird (
306). Um den am nähesten übereinstimmenden Eintrag in der Raum-CLUT zu identifizieren, werden Einträge in der Raum-CLUT interpoliert, bis eine Übereinstimmung mit der Eingangsfarbe lokalisiert wird. Eine wirksame Interpolation von Einträgen in einer CLUT ist weiter in dem
U.S.-Patent Nr. 5,748,176 mit dem Titel „Multi-Variable Colorimeter Data Access by Iterative Interpolation and Subdivision” beschrieben. Mehrere Iterationen einer Interpolation (
310) und einer Übereinstimmung (
306) der Eingangsfarbe mit Einträgen in der Raum-CLUT können auftreten, bis eine Übereinstimmung gefunden wird.
-
Bei einer Implementierung wird auf den übereinstimmenden Eintrag in der Raum-CLUT zugegriffen und die entsprechende Verbesserungsoperation wird identifiziert (308). Diese Verbesserungsoperation wird aus der Filterdatenbank 110 erhalten und an die Filterauswahl 106 und die Filterverarbeitung 108 in 1 geliefert und verwendet, um das Eingangspixel 105 und das Pixelfenster 104 zu verbessern. Alternativ wird die Verbesserungsoperation, die die Raum-CLUT identifiziert, in Kombination mit anderen Faktoren zur Bestimmung, welche Filter von der Filterdatenbank 110 angewendet werden sollen, verwendet. Diese Faktoren konnten z. B. einen lokalen Gradienten und eine mittlere absolute Abweichung, die dem Eingangspixel und dem Pixelfenster zugeordnet ist, umfassen. Ein Pixelklassifizierungsverfahren und eine – Vorrichtung, die in der U.S.-Patentanmeldung mit dem Titel „Verfahren und Vorrichtung zur parametrisierten Glättung und Schärfung”, die am gleichen Tag wie die vorliegende Erfindung eingereicht wurde, beschrieben sind, liefern zusätzliche Faktoren zur Auswahl von Glättungs- und Schärfungsverbesserungsfiltern unter Verwendung von Berechnungen eines lokalen Gradienten und einer mittleren absoluten Abweichung, wie zuvor beschrieben wurde.
-
4 ist ein exemplarisches Tabellendiagramm, das die in einer Raum-CLUT 400 gespeicherten Informationen gemäß der vorliegenden Erfindung liefert. Folglich umfaßt die Raum-CLUT 400 Farbgruppen 402, 3D-Farbraumidentifizierer 404, einen Typ-1-Verbesserungsidentifizierer 406, einen Typ-2-Verbesserungsidentifizierer 408 und einen Typ-3-Verbesserungsidentifizierer 410. Ein Verbesserungsfilterindex 412 ist enthalten, um einen Bereich von Filtertypen entlang eines Kontinuums zu identifizieren. Eine Implementierung der Raum-CLUT 400 verwendet z. B. einen Verbesserungsfilterindex 412 von 0,0, um eine maximale Glättungsverbesserung anzuzeigen, einen Verbesserungsfilterindex von 0,5, um keine Glättung oder Schärfung anzuzeigen, und 1,0, um eine Anwendung einer maximalen Schärfungsoperation hinsichtlich eines Eingangspixels und eines entsprechenden Pixelfensters anzuzeigen.
-
Diese bestimmte Tabelle unterteilt die Farbpalette für eine Bildverarbeitungsvorrichtung in vier unterschiedliche Gruppen. Andere Implementierungen der vorliegenden Erfindung könnten die Farbpalette in mehr oder weniger Gruppen von Farben unterteilen. Jede Farbgruppierung ist einem oder mehreren unterschiedlichen Verbesserungsfiltern zugeordnet. Der Farbtyp 1 z. B. ist 3D-Farbraumidentifizierern zugeordnet, die von Xm, Ym, Zm zu Xm+3, Ym+3, Zm+3 variieren. Bei diesem Beispiel sind die Einträge im Farbtyp 1 alle der gleichen Typ-2-Verbesserung zugeordnet. Diese Typ-2-Verbesserung könnte eine Schärfungsverbesserung, eine Glättungsverbesserung oder jeder andere Typ von Verbesserung sein, um hinsichtlich des Eingangspixels und des zugeordneten Pixelfensters durchgeführt zu werden. Farben, die als Farbtyp 2, Farbtyp 3 und Farbtyp 4 identifiziert sind, wirken auf eine ähnliche Weise hinsichtlich Einträgen in dem Tabellendiagramm aus 4.
-
Eine Raum-CLUT 500, die gemäß der vorliegenden Erfindung entworfen ist, ist in 5 bereitgestellt und korreliert Schärfungs- und Glättungstyp-Faltungsfilter mit einer oder mehreren unterschiedlichen Farben. In der Raum-CLUT 500 umfassen Farbgruppen 502 dunkle Farben, Fleischtöne, Grünfarben und helle Farben. Diese Farben in den Farbgruppen 502 sind jeweils 3D-Farbraumidentifizierern 504 zugeordnet, wie in 5 dargestellt ist. Obwohl diese 3D-Farbraumidentifizierer 504 in einer Sequenz erscheinen, können andere Implementierungen auch Farbraumeinträge verwenden, die außerhalb der Sequenz sind, unterschiedlichen mathematischen Strukturen folgen oder zufällig in die Raum-CLUT 500 eingegeben sind.
-
Bei diesem Beispiel sind dunkle Farben und Fleischtöne von den Farbgruppen 502 Glättungsverbesserungsoperationen 508 zugeordnet. Dies wird durchgeführt, um das höhere Sensorrauschen zu reduzieren, das üblicherweise in den dunkleren Farben von Bildern zu finden ist, und um in diesem Fall von Fleischtönen Rauschen, Artefakte und sogar Makel zu reduzieren, die manchmal auf der Haut von Menschen in Bildern zu finden sind. Im Vergleich dazu sind Grünfarben in der Farbgruppe 502 einer Schärfungsverbesserung 506 zugeordnet, um das Detail, das Abschnitten eines Bildes zugeordnet ist, die Schattierungen von grün aufweisen, zu erhöhen. Dies ist nützlich zum Herausbringen der Details von Bäumen und anderem Laub und verbessert allgemein ein Bild. Ein Trennen der Farben und Verbesserungsoperationen auf diese Weise hält Laub- und Hochfrequenzdetailabschnitte eines Bildes klar und deutlich, während Artefakte und Rauschen, die manchmal Gesichtern von Menschen oder anderen Bereichen mit Hauttonfarben zugeordnet sind, nicht unabsichtlich geschärft werden.
-
6 ist ein Blockdiagramm, das die Typen von Vorrichtungen darstellt, die in der Lage sind, eine Bildverarbeitungsvorrichtung 604, die gemäß der vorliegenden Erfindung entworfen ist, zu verwenden. Bei diesem Beispiel umfassen Bildquellenvorrichtungen 602 eine Massenspeichervorrichtung 608, eine Netzquelle 610, eine Digitalkamera 612, einen Scanner 614 und einen Multifunktionsdrucker 616. Diese Bildquellenvorrichtungen 602 erzeugen entweder Bilder oder liefern gespeicherte Bilder an die Bildverarbeitungsvorrichtung 604 zur Verarbeitung und Verbesserung gemäß der vorliegenden Erfindung. Bildzielvorrichtungen 606 umfassen einen Drucker 618, eine Anzeige 620, ein Netzziel 622, eine Massenspeichervorrichtung 624 und einen Multifunktionsdrucker 626. Diese Bildzielvorrichtungen 604 empfangen ein Bild, das gemäß der vorliegenden Erfindung unter Verwendung einer Raum-CLUT und wahlweise anderer Typen von Verbesserungsauswahloperatoren verbessert wird. Während dies nicht dargestellt ist, kann ein Computer, der arbeitet, um eine oder mehrere der Funktionalitäten zu liefern, die Bildquellenvorrichtungen 602 und Bildzielvorrichtungen 604 zugeordnet sind, als eine oder mehrere Bildquellenvorrichtungen 602, eine oder mehrere Bildzielvorrichtungen 604 oder eine Kombination von beiden arbeiten.
-
7 ist eine Blockdiagrammdarstellung einer Bildverarbeitungsvorrichtung 700 zur Bildverarbeitung gemäß einer Implementierung der vorliegenden Erfindung. Bei diesem Beispiel umfaßt eine Bildverarbeitungsvorrichtung 700 einen primären Speicher 702, einen Bildtreiber 704, einen Prozessor 706, einen Programmspeicher 708, ein Netzkommunikationstor 710, einen sekundären Speicher 712 und Eingangs-Ausgangstore 714.
-
Die Bildverarbeitungsvorrichtung 700 kann als ein Teil eines Computersystems enthalten oder kann in einen oder mehrere unterschiedliche Typen einer Peripherieausrüstung entworfen sein. Bei einem Computersystem empfängt die Bildverarbeitungsvorrichtung 700 Graphiken von einer Anwendung und verbessert die Bilder gemäß der vorliegenden Erfindung. Software und Steuerungen, die durch die Bildverarbeitungsvorrichtung 700 verwendet werden, können sich abhängig von den Implementierungsentwurfanforderungen in der Anwendung, in Vorrichtungstreibern, in dem Betriebssystem oder einer Kombination dieser Bereiche befinden. Alternativ könnten, wenn die Bildverarbeitungsvorrichtung 700 ein Teil einer Peripherievorrichtung, wie eines Druckers oder einer Anzeige, ist, Bilder ohne ein vollständiges Abhängen von den Verarbeitungsanforderungen eines Computers verbessert werden. Dies würde es z. B. einer alleinstehenden, mit einem Netz verbundenen Bilderzeugungsvorrichtung ermöglichen, ein Bild gemäß der vorliegenden Erfindung zu verarbeiten und zu verbessern, ohne sich auf die gleichzeitige Verfügbarkeit eines Personalcomputers oder einer ähnlichen Rechenvorrichtung zu verlassen. Eine mit einem Netz verbundene Druckervorrichtung könnte z. B. Bilder über ein Netz empfangen und die Bilder gemäß der vorliegenden Erfindung verarbeiten.
-
Implementierungen der vorliegenden Erfindung könnten in eine einzelne, mit einem Netz verbundene Peripherievorrichtung installiert oder eingebaut sein, die verbesserte Bilder liefert, ohne eine Aktualisierung von Anwendungen, einem Betriebssystem oder Computervorrichtungen durch das Netz zu erfordern.
-
Der primäre Speicher 702 speichert mehrere Module zur Ausführung und zum Zugriff unter der Steuerung des Prozessors 706 und gewinnt dieselben wieder. Diese Module umfassen: eine Farberfassungs- und Raum-CLUT 718, ein Farbinterpolationsmodul 720, ein Pixelklassifizierungsmodul (optional) 722, ein Pixelfilterungsmodul 724, ein Bilddarstellungsmodul 726 und ein Laufzeitmodul 728.
-
Die Farberfassungs- und Raum-CLUT 718 empfängt ein Eingangspixel und ein Pixelfenster zur Verarbeitung. Farben werden erfaßt und Querverweise auf Einträge in der Raum-CLUT werden gemacht, um auf Verbesserungsoperationen oder Zuordnungen zu Verbesserungsoperationen zuzugreifen. Bei einer Implementierung werden Verbesserungsoperationen oder -Algorithmen in einem Speicherbereich innerhalb der Farberfassungs- und Raum-CLUT 718 gespeichert. Alternativ identifizieren die Einträge in der Farberfassungs- und Raum-CLUT 718 Verbesserungsoperationen, die an anderer Stelle gespeichert sind, und diese Einträge werden verwendet, um die tatsächlichen Verbesserungsoperationen unter Verwendung unterschiedlicher Zugriffsmethodiken zu beeinflussen oder auszuwählen.
-
Das Farbinterpolationsmodul 720 kann aufgerufen werden, um den geeigneten Eintrag in der Raum-CLUT für eine bestimmte Eingangsfarbe zu identifizieren. Wie zuvor beschrieben ist, können einige Eingangsfarben nicht mit Einträgen in der Raum-CLUT in Übereinstimmung gebracht werden ein Interpolieren zwischen existierenden Einträgen in der Raum-CLUT bestimmt eine machbare Alternative. Bei einem Ausführungsbeispiel ist das Interpolationsverfahren zum Auswählen des Eintrags in der Raum-CLUT gemäß dem U.S.-Patent mit dem Titel „Multi-Variable Colorimeter Data Access by Iterative Interpolation and Subdivision” entworfen.
-
Das Pixelklassifizierungsmodul 722 ist ein optionales Modul, das in Verbindung mit der Raum-CLUT verwendet wird, um eine geeignete Verbesserungsoperation zum Verbessern eines Abschnittes eines oder eines gesamten Bildes zu identifizieren. Das Pixelklassifizierungsmodul 722 kann z. B. Berechnungen eines Gradienten und einer mittleren Abweichung verwenden, um Pixel zum Schärfen und Glätten zu klassifizieren. Ein Kombinieren dieser Bestimmungen mit Interpolationen und Auswahlen aus Einträgen in die Raum-CLUT kann diese Filterverbesserungsauswahlen modifizieren und schärfere Grünlaub- und glattere Hauttöne in einem Bild liefern.
-
Das Pixelfilterungsmodul 724 wendet die ausgewählten Filter auf das Pixel oder die Pixel von einem Bild an. Die resultierenden Pixel, die durch das Pixelfilterungsmodul 722 gelangen, werden unter Verwendung von Verbesserungsoperationen gemäß einer Implementierung der vorliegenden Erfindung verbessert. Das Bilddarstellungsmodul 726 sendet einen Block oder Strom von Bilddaten über einen Bus 716, der die verbesserten Pixel umfaßt, und auf die Bilderzeugungsvorrichtung zur Anzeige, zum Drucken oder einer anderen visuellen Darstellung. Zusätzliche Funktionen in dem Bilddarstellungsmodul können eine Datenzwischenspeicherung, Komprimierung, Verschlüsselung und andere Bildverarbeitungsoperationen umfassen. Das Laufzeitmodul 728 kann ein Echtzeit-Ausführungs- oder Betriebssystem oder ein herkömmliches präemptives Betriebssystem sein, das die Zuteilung von Betriebsmitteln, einer Operation und Verarbeitung hinsichtlich der Bildverarbeitungsvorrichtung 700 koordiniert.
-
Der Bildtreiber 704 ist schnittstellenmäßig mit einem oder mehreren unterschiedlichen Typen von Bilderzeugungsvorrichtungen verbunden, die eine Signal- und eine Protokollebenenkommunikation liefern, die geeignet zur Kommunikation mit der bestimmten Vorrichtung ist.
-
Der Prozessor 706 kann ein Universalprozessor sein, der x86-Instruktionen oder ähnliche Universalinstruktionen ausführt. Alternativ kann der Prozessor 706 abhängig von den Implementierungsanforderungen ein eingebetteter Prozessor sein, der in einen ROM eingebrannte Instruktionen oder einen Mikrocode ausführt.
-
Der Programmspeicher 708 liefert einen zusätzlichen Speichern zum Speichern oder Verarbeiten von durch den Prozessor 706 verwendeten Instruktionen. Dieser Bereich kann als ein primärer Bereich zur Ausführung von Instruktionen oder als ein zusätzlicher Cache-Bereich zum Speichern häufig verwendeter Instruktionen oder Makro-Typ-Routinen wirken.
-
Das Netzkommunikationstor 710 liefert eine direkte Netzverbindbarkeit mit der Bildverarbeitungsvorrichtung 700. Dieses Tor kann einen Hochgeschwindigkeitsnetzzugriff unter Verwendung von Protokollen, wie z. B. TCP/IP, liefern oder kann einen seriellen Einwähl-Zugriff über eine Modemverbindung unter Verwendung serieller Netzprotokolle, wie z. B. PPP, SLIP, oder ähnlicher Typen einer Kommunikation zu Kommunikations- oder Diagnosezwecken liefern.
-
Der sekundäre Speicher 712 ist geeignet zum Speichern ausführbarer Computerprogramme, einschließlich Programmen, die die vorliegende Erfindung ausführt, und Daten, die durch die vorliegende Erfindung verwendet werden. Dieser Bereich kann eine herkömmliche Speicher- oder eine Festkörper-Speicherspeicherung sein.
-
Die Eingangs-/Ausgangs-(I/O-)Tore 714 sind mit der Bildverarbeitungsvorrichtung 700 durch einen Bus 716 gekoppelt. Die Eingangs-/Ausgangs-Tore 714 ermöglichen den Empfang und die Übertragung von Daten (z. B. Text, Bilder, Videos und Animationen) in analoger oder digitaler Form über andere Typen von Kommunikationsverbindungen, wie z. B. eine serielle Verbindung, ein lokales Netz, eine drahtlose Verbindung und eine parallele Verbindung. Eingangs-/Ausgangs-(I/O-)Tore 612 ermöglichen eine Kommunikation mit einer breiten Vielzahl von Peripherievorrichtungen, einschließlich Tastaturen, Zeigervorrichtungen (Maus, Tastfeld und Berührungsbildschirm) und Druckern. Alternativ können separate Verbindungen (separate Busse) verwendet werden, um schnittstellenmäßige Verbindungen mit diesen Peripherievorrichtungen unter Verwendung einer Kombination von Kleincomputersystemschnittstelle (SCSI), Universal-Seriell-Bus (USB), IEEE 1394/Firewire, internationaler Vereinigung für Personalcomputerspeicherkarten (PCMCIA) oder einem anderen geeigneten Protokoll zu bilden.
-
In der Praxis kann die Erfindung in einem digitalen elektronischen Schaltungsaufbau oder in einer Computerhardware, -firmware, -software oder in einer Kombination derselben implementiert sein. Eine Vorrichtung der Erfindung kann in einem Computerprogrammprodukt implementiert sein, das greifbar in einer maschinenlesbaren Speichervorrichtung zur Ausführung durch einen programmierbaren Prozessor ausgeführt ist; und Verfahrensschritte der Erfindung können durch einen programmierbaren Prozessor durchgeführt werden, der ein Programm von Instruktionen ausführt, um Funktionen der Erfindung durch ein Wirken auf Eingangsdaten und ein Erzeugen einer Ausgabe durchzuführen. Die Erfindung kann mit Vorteil in einem oder mehreren Computerprogrammen implementiert sein, die auf einem programmierbaren System ausführbar sind, das zumindest einen programmierbaren Prozessor, der gekoppelt ist, um Daten und Instruktionen von einem Datenspeichersystem zu empfangen und Daten und Instruktionen an dasselbe zu übertragen, zumindest eine Eingangsvorrichtung und zumindest eine Ausgangsvorrichtung umfaßt. Jedes Computerprogramm kann in einer Prozedur- oder Objekt-orientierten Programmiersprache auf hoher Ebene oder in einer Anordnung oder einer Maschinensprache, falls erwünscht, implementiert sein; und in jedem Fall kann die Sprache eine kompilierte oder interpretierte Sprache sein. Geeignete Prozessoren umfassen beispielhaft sowohl Universal- als auch Spezialmikroprozessoren. Allgemein empfängt ein Prozessor Instruktionen und Daten von einem Nur-Lese-Speicher und/oder einem Direktzugriffsspeicher. Allgemein umfaßt ein Computer eine oder mehrere Massenspeichervorrichtungen zum Speichern von Datendateien; derartige Vorrichtungen umfassen Magnetplatten, wie z. B. interne Festplatten und austauschbare Platten; magnetooptische Platten und optische Platten. Speichervorrichtungen, die geeignet zum greifbaren Ausführen von Computerprogramminstruktionen und Daten sind, umfassen alle Formen eines nicht-flüchtigen Speichers, einschließlich beispielhaft Halbleiterspeichervorrichtungen, wie z. B. EPROM, EEPROM und Flash-Speichervorrichtungen; Magnetplatten, wie z. B. interne Festplatten und austauschbare Platten; magnetooptischer Platten und CD-ROM-Platten. Jedes der vorangegangenen Elemente kann durch ASICs (anwendungsspezifische integrierte Schaltungen) ergänzt oder in dieselben eingebaut sein.