DE69723669T2 - Verfahren zur nichtlinearen Lagerung, Wiederauffindung und Interpolation von "tristimulus" Farbdaten - Google Patents

Verfahren zur nichtlinearen Lagerung, Wiederauffindung und Interpolation von "tristimulus" Farbdaten Download PDF

Info

Publication number
DE69723669T2
DE69723669T2 DE69723669T DE69723669T DE69723669T2 DE 69723669 T2 DE69723669 T2 DE 69723669T2 DE 69723669 T DE69723669 T DE 69723669T DE 69723669 T DE69723669 T DE 69723669T DE 69723669 T2 DE69723669 T2 DE 69723669T2
Authority
DE
Germany
Prior art keywords
nodes
coordinates
data
memory
bits
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
Application number
DE69723669T
Other languages
English (en)
Other versions
DE69723669D1 (de
Inventor
Paul H. Dillinger
Timothy M. Mcdonough
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE69723669D1 publication Critical patent/DE69723669D1/de
Application granted granted Critical
Publication of DE69723669T2 publication Critical patent/DE69723669T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/56Processing of colour picture signals
    • H04N1/60Colour correction or control
    • H04N1/6016Conversion to subtractive colour signals
    • H04N1/6019Conversion to subtractive colour signals using look-up tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Color Image Communication Systems (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Image Generation (AREA)

Description

  • Diese Erfindung bezieht sich auf die europäische Patentanmeldung EP 97 306 121 .1, die durch dieselben Anmelderinnen am gleichen Datum für Method for Interpolation of Tristimulus Color Data (Verfahren für eine Interpolation von Tristimulus-Farbdaten) eingereicht wurde.
  • Hintergrund der Erfindung 1. Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich allgemein auf eine Colorimetrie und spezieller auf eine nichtlineare Tristimulusfarbdaten-Speicherung, -Wiedergewinnung und – Interpolation und spezieller auf eine Speicherabbildungs- und Dateninterpolationsstrategie für 24-Bit-L*H*C*- auf 24-Bit-RGB-Raumdaten.
  • 2. Beschreibung der verwandten Technik
  • Seit langem ist die Colorimetrie als eine komplexe Wissenschaft anerkannt. Im wesentlichen, wie durch die Commission Internationale L'Eclairage (CIE) im Jahr 1931 definiert, können drei Primärfarben (X, Y, Z) definiert sein, um alle Lichtempfindungen, die wir mit unseren Augen erfahren, zu definieren. Das heißt, daß die Farbanpassungseigenschaften eines idealen trichromatischen Beobachters, die durch Spezifizieren von drei unabhängigen Funktionen einer Wellenlänge definiert sind, die mit den Farbanpassungsfunktionen des idealen Beobachters identifiziert sind, einen internationalen Standard zum Spezifizieren von Farbe bilden. Es ist allgemein als möglich und angebracht befunden worden, daß Farbstimulivektoren durch eine dreidimensionale räumliche Konstruktion, die als Tristimulusraum oder Farbraum bezeichnet wird, dargestellt werden können. Die Grundlagen dieser dreidimensionalen Konstruktionen sind in der Fachliteratur erörtert, wie z. B. Principles of Color Technology von Billmeyer und Saltzman, veröffentlicht von John Wiley & Sons, Inc., New York, Urheberrecht 1981 (2. Aufl.), und Color Science: Concepts and Methods, Quantitative Data and Formulae von Wyszecki und Stiles, veröffentlich von John Wiley & Sons, Inc., New York, Urheberrecht 1982 (2. Ausgabe), siehe z. B. Seiten 119 – 130.
  • Eine Vielfalt an trichromatischen Modellsystemen liefert Alternativen für sowohl Hardware- als auch Softwaresystementwickler, z. B. das Rot-, Grün-, Blau- (RGB-) Modell, das häufig bei Computervideospielen verwendet wird; das Cyan-, Magenta-, Gelb- (und Schwarz-) (CMY(K)-) Modell, das häufig bei Farbdruckkopievorrichtungen verwendet wird; das Farbton-, Sättigungs-, Wert- (HSV-) Modell; das Farbton-, Helligkeits-, Sättigungs- (HLS-) Modell; das Luminanz-, Rot-Gelb-Skala-, Grün-Blau-Skala- (L*a*b*-) Modell; das YIQ-Modell, das bei einer kommerziellen Farbfernsehausstrahlung verwendet wird, und andere. Solche Arbeiten, wie Fundamentals of Interactive Computer Graphics von Foley und Van Dam, Addison-Wesley Publishing Company, siehe z. B. Seiten 606–621, beschreiben eine Vielfalt an trivariablen Farbmodellen.
  • Farb-Eingabe- und -Ausgabegeräte, wie z. B. Scanner, CRT-Videomonitore und Drucker, stellen Farbbilder in einer gerätabhängigen Weise dar. CRT-Kanonen werden durch RGB-Werte (Spannungspegel oder andere Eingabesignalfunktionen, die nachstehend als Datentripletts oder Farbkoordinaten bezeichnet werden) getrieben, die in einem Rahmenpuffer gespeichert sind. Diese RGB-Werte indexieren über dem Farbraum von jedem speziellen Modellvideomonitor; in anderen Worten ist die Farbe, die durch eine CRT auf einem Pixel seines Bildschirms für ein gegebenes RGB-Triplett von Werten erzeugt wird, für dieses Gerät einzigartig. Aufgrund der Geräteentwurfsabhängigkeit kann das gleiche RGB-Triplett eine sehr unterschiedliche Farbe oder einen sehr unterschiedlichen Farbton erzeugen, wenn es auf einer CRT eines anderen Modells angezeigt wird, und eine ganz andere Farbe in einer Druckkopie, die mit einem Farbdrucker erstellt wird.
  • Die Farbtransformation (die in der Technik als auch Farbkorrektur oder Kreuzaufbereitung bezeichnet wird) zwischen Modellsystemen bei einer digitalen Datenverarbeitung wirft für Originalgerätehersteller viele Probleme auf. Die Transformation von Daten von einem Gerät zu einem anderen Gerät ist schwierig, weil die Farbanpassungsbeziehung zwischen diesen Systemen allgemein nicht-linear ist. Daher ist es ein Hauptproblem, die Farbintegrität zwischen einem Originalbild von einem Eingabegerät (wie z. B. einem Farbscanner, CRT-Monitor, einer Digitalkamera, einer Computersoftware/Firmware-Generation und dergleichen) und eine übersetzte Kopie an einem Ausgabegerät (wie z. B. einem CRT-Monitor, Farblaserdrucker, Farbtintenstrahldrucker und dergleichen) beizubehalten. Eine Transformation von einem Farbraum zu einem anderen erfordert komplexe nichtlineare Berechnungen in mehreren Dimensionen. Da dies mathematisch nicht beschreibbar ist, ist bekannt, daß sehr große Nachschlagtabellen verwendet werden, um eine Transformation zwischen trichromatischen Modellsystemen zu nähern, um das breite Spektrum von Farbtönen, das existiert, zu korrelieren. Eine Nachschlagtabelle von eingegeben gegenüber ausgegebenen Daten kann für einen beliebigen Satz von Geräten erzeugt werden. Es gibt eine Vielfalt an Verfahren zum Bauen einer geräteabhängigen Nachschlagtabelle für ein spezielles Gerät. Das U.S.-Patent Nr. 3,893,166 von 1975 an Pugsley liefert ein solches Beispiel. Der Halbleiterspeicher ist jedoch relativ teuer, und andere Datenspeichertechnologien zum Beibehalten solcher Tabellen – Platten, Band und dergleichen – sind zu langsam.
  • Bytes von Daten, die in drei Dimensionen korreliert sind, können als eine Konstruktion dargestellt werden, wie z. B. ein polyhedrales Gitter, bei dem jede Ecke eines Würfels einen Datenpunkt darstellt, d. h., daß ein Datensatz mit Koordinatenwerten in jeder der Ebenen an in einem Speicher platz, oder einem Knoten, als eine Nachschlagtabelle gespeichert wird. [Bei dieser Technik ist zu beachten, daß der Begriff Knoten mehrere Bedeutungen, aufgrund der Beschaffenheit der multidimensionalen Raumkonstruktionen haben könnte, die bei solchen Systemen verwendet werden: (1) kann er sich auf die Koordinaten des Raums eines Eingabepixels beziehen; (2) kann er sich auf gespeicherte Datenpunkte, zwischen denen eine Interpolation von Daten auftreten kann, beziehen; (3) wenn eine Farbdatenabbildung von einem multidimensionalen Farbraum in einem zweidimensionalen Computerspeicher gespeichert wird, kann er sich auf eine Speicheradresse an sich beziehen, die eine Eins-zu-Eins-Entsprechung mit den eingehenden Pixelkoordinaten aufweist; (4) kann er sich auf die Daten beziehen, die an jedem Speicherplatz gespeichert sind, der die Ausgabepixeldaten darstellt, die an sich auf die Koordinaten eines zweiten räumlichen Punkts Bezug nehmen. Die exakte Bedeutung des Begriffs sowohl in der Technik als auch bei dieser Spezifizierung muß daher häufig aus dem Kontext erschlossen werden, in dem er verwendet wird. Die gesamte Nachschlagtabelle ist aus vielen solchen Würfeln gefertigt, wie er in 1 für eine RGB-Farbraumkonstruktion gezeigt ist. Um einen typischen Druckerfarbtransformations-Datenpunktwert für jeden Monitor-RGB-Wert in einer Nachschlagtabelle zu speichern, wären 50 MByte oder mehr eines Direktzugriffsspeichers erforderlich, der im Stand der Technik kostenmäßig untragbar ist. Daher ist es wirtschaftlich, nur eine begrenzte Anzahl von Datenpunkten zu speichern und Interpolationsverfahren zu verwenden, um Zwischendatenpunkte innerhalb des Gitters abzuleiten. Beim Erstellen der Transformation von einem Tristimulussystem zum einem anderen sind trilineare oder quadrilineare Interpolationsverfahren verwendet worden. Bei den nichtlinearen Daten ist jedoch die echte Interpolation zeitaufwendig und unpraktisch, wenn beispielsweise ein Druckbild bearbeitet wird, das Millionen von Pixeln aufweist. Daher gibt es eine Vielfalt an Datenspeicherungs- und Interpolationsverfahren, die in der Technik vorgeschlagen sind. Die Verwendung von begrenzten Daten für eine Interpolation ist im U.S.-Patent Nr. 4,477,833 an Clark u. a. beschrieben. Ein Verfahren einer variablen Beabstandung von ausgewählten nichtlinearen Daten und zum Speichern von Daten gemäß der speziellen Farbkurve ist durch Morton im U.S.-Patent Nr. 5,321,797 beschrieben. Die verbesserte Interpolationsannäherung durch eine Gitterunterteilungstechnik wird durch Gondek im U.S.-Patent, Seriennummer 08/504,406 (das an die Anmelderin der vorliegenden Erfindung gemeinsam übertragen wurde) gelehrt.
  • Das Transformieren von Eingabedatentripletts in Drucker-RGB- (oder CMY- oder CMYK-) Werte kann auch durch Verwenden von Farbmeßwerkzeugen und geräteabhängigen Farbräumen erreicht werden. Eine geräteunabhängige Farbe liefert eine exakte Farbanpassung basierend auf einem absoluten Farbstandard, wie z. B. dem CIE. Ein geräteunabhängiger Farbraum liefert eine Möglichkeit zum Beschreiben des Erscheinungsbilds einer Farbe ohne Bezugnahme auf den Mechanismus, der die Farbe produzierte. Zum Beispiel:
    wird zuerst eine Funktion konstruiert, die RGB-Datenpunkte vom Farbraum eines Monitors (d. h. die Tabelle von Eingabe/Rusgabe-Korrelationen) in einen geräteunabhängigen Farbraum transformiert, z. B. den CIE-L*a*b*-Farbraum;
    zweitens wird eine Funktion konstruiert, die Farbdatenpunkte von dem geräteunabhängigen Farbraum, dem CIE-L*a*b*-Farbraum, in den Farbraum eines speziellen Druckers transformiert; und
    unter Verwendung dieser zwei Funktionen können die Monitor-RGB-Datenwerte in L*a*b*-Datentripletts transformiert und die L*a*b*-Datentripletts in die Druckerdatentripletts transformiert werden, wodurch eine Druckerausgabe geliefert wird, die den Orginaleingabebildfarben entspricht, die auf dem CRT-Monitor zu betrachten sind.
  • Neben den Datenspeicherungs- und Zugriffsproblemen, auf die vorstehend Bezug genommen wurde, ist jedoch die Abbildung der Monitor-RGB-Werte in Drucker-RGB-Werte zeitaufwendig, um auf jedem gefärbten Pixel in einem Bild ausgeführt zu werden, bevor das Bild vollständig gedruckt wird. Daher ist es wirtschaftlich, die Ausgabedatentripletts für einen Teilsatz von Eingabewerten im voraus zu berechnen und zu speichern und dann den schnellen Interpolationsalgorithmus zu verwenden, um die Transformationsfunktion für Zwischenausgabedatenwerte, d. h. jene, die nicht im voraus berechnet und gespeichert wurden, zu nähern.
  • Es ist gelegentlich wünschenswert, Komponenten von Farbdifferenzen bezüglich der Korrelate von Chroma (relative Farbigkeit, Sättigung, z. B. eine starke oder schwache Helligkeit) und Farbton (Farbe, durch Wellenlänge gemessen) zu identifizieren. Eine spezifische Tristimulusraumkonstruktion, L*H*C*, verwendet eine Luminanz (direktionale Intensität; Reflexionsvermögen oder Lichtdurchlässigkeit; „Y" im CIE Standard-Tristimulus-Koordinatensystem), einen Farbton und ein Chroma, die allgemein einfach als „LHC" bezeichnet werden, und ist zylindrisch, wie in 2A und 2B gezeigt ist, wo 2A eine Farbton-Chromaebene von einer konstanten Luminanz darstellt, wobei sich der Farbton entlang der Kreise des konstanten Chromas verändert. Die gesamte Farbabbildung besteht aus diesen Ebenen, die aufeinander gestapelt sind.
  • Ein Scanner erzeugt geräteabhängige RGB-Daten. Es ist für einen Endbenutzer wünschenswert, in der Lage zu sein, eine Ausgabedrucksteuerung zu haben, jedoch befinden sich die Ausgabedaten ebenfalls in den RGB- oder CMYK-Daten, ebenfalls geräteabhängig. Die Datensteuerung und somit die Ausgabesteuerung kann nur in einem Farbraum bereitgestellt bereitgestellt werden, wo eine Unabhängigkeit der Variablen vorliegt (z. B. im RGB, wo ein Einstellen von R einen beliebigen Farbton beeinträchtigen würde, der eine rote Komponente, nicht nur rot, und sowohl die Luminanz als auch das Chroma, ähnlich einer L*a*b*-versuchten Steuerung, aufweist). Somit kann die Steuerung nur in einem Farbraum erfolgen, der keine Verschiebungen in anderen Variablen erzeugt. Die Luminanz, L*, der Farbton, H*, und das Chroma, C*, sind unabhängige Variablen. Daher ist es vorteilhaft, die RGB-Eingabedaten durch eine LHC-Konstruktion zu transformieren, weil eine beliebige der Variablen unabhängig eingestellt werden kann und somit ohne weiteres für die Endbenutzer-Hardware- und Software-Präferenzsteuerungen anpaßbar ist.
  • Um einen Speicher mit allen Ausgabewerten, die in einer Transformation von einem 24-Bit-LHC-Koordinatensystem (d. h. drei 8-Bit-Worte) in ein 24-Bit-RGB-Koordinatensystem verfügbar sind, zu schaffen, wäre es wiederum erforderlich, einen großen Speicher zu haben, der eine Nachschlagtabelle enthält, um das breite Spektrum von verfügbaren Farbtönen zu korrelieren. Diese Lösung ist kommerziell nicht durchführbar.
  • Somit besteht ein Bedarf an einem effizienten Mechanismus für die nichtlineare Tristimulus-Farbdatenspeicherung, – Wiedergewinnung und -Interpolation beim Umwandeln von einer zylindrischen LHC-Farbraumkonstruktion in eine rechteckigen RGB-Farbraumkonstruktion.
  • Die EPO 487 304 offenbart eine Farbumwandlung über eine LUT von einem Eingabefarbraum mit zylindrischen Koordinaten in einen rechteckigen Ausgabefarbraum.
  • Es besteht ein Bedarf an einem schnellen und wirtschaftlichen Verfahren zum Speichern und Holen von begrenzten Punkten von einer Ausgabedatentabelle und zum Interpolieren der gespeicherten Daten, um eine ordnungsgemäße Transformation zwischen multivariablen Datenverarbeitungssystemen zu erhalten.
  • Es besteht ein Bedarf an einem verbesserten Prozeß, der die Farbwerte von einem Farbraum eines speziellen Geräts in den Farbraum eines weiteren Geräts in einer schnellen wirtschaftlichen Weise transformiert.
  • Zusammenfassung der Erfindung
  • Gemäß ihren Grundaspekten schafft die vorliegenden Erfindung ein computerisiertes Datentransformationsverfahren zur Umwandlung von Tristimulusfarbraumdaten von einem Tristimulus-Erstkoordinatensystem mit einer zylindrischen Raumkonstruktion in ein trivariables Zweitkoordinatensystem, wobei das Verfahren folgende Schritte aufweist:
    Speichern einer Abbildung von vorbestimmten Tristimulusfarbraum-Ausgabekoordinaten von dem Zweitkoordinatensystem bei einer Mehrzahl von individuellen Knoten eines ersten Speichers;
    selektives Zwischenspeichern ausgewählter Knoten des ersten Speichers in einem zweiten Speicher basierend auf einem vorherigen Zugriff des ersten Speichers zur Wiedergewinnung von Ausgabekoordinaten von individuellen Knoten in demselben, wodurch die individuellen Knoten, auf die zuvor zugegriffen wurde, dabei die ausgewählten Knoten in dem zweiten Speicher bilden;
    Empfangen eines Satzes von Eingabekoordinaten einschließlich eines Multibitdatenworts für jede der drei Tristimulusfarbraumvariablen des ersten Koordinatensystems, und
    wenn der Satz von Eingabekoordinaten zumindest einen Knoten bestimmt, der in dem zweiten Speicher zwischengespeichert wurde, Wiedergewinnen von Ausgabekoordinaten für den zumindest einen Knoten von dem zweiten Speicher, und
    wenn der Satz von Eingabekoordinaten bestimmt, daß ein anderer Knoten nicht zwischengespeichert ist, Bestimmen, ob die Eingabekoordinaten mit einem gespeicherten Knoten in dem ersten Speicher korrelieren, und
    wenn die Eingabekoordinaten direkt mit einem gespeicherten Knoten in dem ersten Speicher korrelieren, Wiedergewinnen von Ausgabekoordinaten von dem gespeicherten Knoten, und
    wenn die Eingabekoordinaten nicht direkt mit einem gespeicherten Knoten in dem ersten Speicher korrelieren, Wiedergewinnen eines vorbestimmten Satzes von Knoten, der die Position in der zylindrischen Raumkonstruktion unmittelbar umgibt, die durch die Eingabekoordinaten bezeichnet ist, wobei das Wiedergewinnen von spezifischen umgebenden Knoten auf einer relativen Position basiert, die durch die Eingabekoordinaten innerhalb der zylindrischen Raumkonstruktion bezeichnet ist; und
    Interpolieren des wiedergewonnenen vorbestimmten Satzes von Knoten zum Ableiten von genäherten Ausgabekoordinaten durch wiederholtes Unterteilen der zylindrischen Raumkonstruktion in zylindrische Koordinatenachsen, wobei die Anzahl von einer sich wiederholenden Unterteilung auf einem Vergleich von Zahlen von Bits in jeder Koordinate basiert, die in dem Bitwort verbleibt, nachdem die Adressierungsbits verwendet worden sind; und
    Ausgeben der Ausgabekoordinaten und der genäherten Ausgabekoordinaten; und
    Wiederholen der Schritte des Empfangens und Interpolierens für jeden Satz von Eingabekoordinaten.
  • Es ist ein Vorteil der vorliegenden Erfindung, daß sie ein Datenumwandlungsverfahren schafft, bei dem eine verringerte Anzahl von Datenabbildungsknoten gespeichert werden kann.
  • Es ist ein weiterer Vorteil der vorliegenden Erfindung, daß sie eine Abbildungsstrategie von Farbdatenknoten schafft, wodurch eine verbesserte Steuerung bei bestimmten Aspekten des Farbraums ermöglicht wird.
  • Es ist ein weiterer Vorteil der vorliegenden Erfindung, daß sie einen Datenabholmechanismus schafft, wobei ein Mindestsatz von umgebenden Datenpunkten nur zur Dateninterpolation verwendet werden muß, wobei die Datenbandbreite, die zum Zugreifen auf die Datenspeicherung notwendig ist, reduziert wird.
  • Es ist noch ein weiterer Vorteil der vorliegenden Erfindung, daß sie eine Pixelcodierung ermöglicht, die ermöglicht, daß zusätzliche Farbverarbeitungsinformationen codiert und an Stromabwärts-Blöcke geliefert werden können.
  • Andere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden nachstehend unter Berücksichtigung der nachstehenden Erörterung und der beigefügten Zeichnungen offenkundig, in denen identische Bezugszeichen identische Merkmale in den Zeichnungen darstellen.
  • Kurze Beschreibun der Zeichnungen
  • 1 (Stand der Technik) ist eine schematische Darstellung einer Farbraumkonstruktion für RGB-Daten.
  • 2A (Stand der Technik) sind schematische Darstelund 2B lungen einer L*H*C*-Farbraumkonstruktion.
  • 3 ist ein Flußdiagramm eines Verfahrens einer Farbabbildung und einer Farbraumdatentransformation gemäß der vorliegenden Erfindung.
  • 4A (eine Fortsetzung von 4A) ist ein ausführli- und 4B ches Flußdiagramm eines Interpolationsverfahrens des Flußdiagramms, wie es in 3 gezeigt ist.
  • 5 ist eine Darstellung der Abbildungsstrategie für Knoten der Chromakoordinaten der vorliegenden Erfindung als Anhang zur Tabelle 1.
  • Die Zeichnungen, auf die in dieser Spezifikation Bezug genommen wird, sind, wenn nicht anders angemerkt, nicht als maßstabsgerecht zu verstehen.
  • Beschreibung des bevorzugten Ausführungsbeispiels
  • Es wird nun ausführlich auf ein spezifisches Ausführungsbeispiel der vorliegenden Erfindung Bezug genommen, das die nach Ansicht der Erfinder beste Art und Weise zum Praktizieren der Erfindung darstellt. Alternative Ausführungsbeispiele werden ebenfalls nach Bedarf kurz beschrieben. Obgleich das bevorzugte Ausführungsbeispiel im Hinblick auf eine exemplarische RGB-Scanner- zu RGB-Druckerdaten-Transformation beschrieben ist, wird ein Fachmann darauf hingewiesen, daß das Verfahren ohne weiteres auf andere Transformationen anpaßbar ist. Obgleich es die Absicht der Erfinder ist, daß das bevorzugte Ausführungsbeispiel der vorliegenden Erfindung in einer anwendungsspezifischen integrierten Schaltung (ASIC) implementiert ist, wird ebenfalls darauf hingewiesen, daß eine Software oder andere Implementierungen basierend auf dieser Offenbarung entworfen werden können. Daher ist durch die Verwendung der exemplarischen Ausführungsbeispiele keinerlei Beschränkung des Schutzbereichs der vorliegenden Erfindung beabsichtigt, noch wird damit eine solche Absicht impliziert.
  • Speicherabbildung
  • Unter Bezugnahme auf 3 wird davon ausgegangen, daß die RGB-Scannerdaten (durch eine beliebige Technik, die im Stand der Technik bekannt ist) in LHC-Daten für jedes Pixel des gescannten Bildes umgewandelt worden sind. Die Luminanz-, Farbton- und Chromasteuerung sind dem Benutzer zur Verfügung gestellt worden. Es ist nun notwendig, die LHC- Eingabedaten wieder in ein Datentriplett zu transformieren, das durch den Drucker erkennbar ist, z. B. RGB- oder CMYK-Daten. Jedes Triplett von den eingegebenen LHC-Pixeldaten wird sequentiell empfangen, 301.
  • An diesem Punkt ist es möglich, spezielle Anweisungen oder Prüfungen in die Routine 303 zu injizieren. Der Benutzer kann beispielsweise vorgegeben haben, daß ein spezielles Druckmedium, wie z. B. Hochglanzpapier, verwendet wird. Wenn die spezielle Bedingung wahr (Y) ist, wird dementsprechend eine besondere Prüfung der Bedingungen und Verarbeitung implementiert. Wenn daher bei diesem Beispiel ein Hochglanzmediummodus ausgewählt worden ist, wird die Prüfung vorgenommen, um zu sehen, ob LHC für die Koordinate „0, 0, 0", 305 ist, wenn dies der Fall ist, wird RGB ebenfalls auf „0, 0, 0" gesetzt und ausgegeben, 329. Dies kann ein Reserveindikator sein, daß ein Textdrucken zugange ist. Wenn das LHC nicht „0, 0, 0" ist, 305, N oder die Sonderbedingung nicht wahr ist, 303, N, dann wird der Prozeß fortgesetzt. Diese Teilroutine wird nachstehend weiter unter Bezugnahme auf die interpolierte Datenausgabe erörtert. Zunächst ist es jedoch wichtig, die Regeln zum Wiedergewinnen der vorbestimmten gespeicherten Daten von der Farbabbildung, die auch als „Knotenabholen" bezeichnet werden, und den Interpolationsprozeßfluß zu begreifen.
  • Wie im Abschnitt „Hintergrund der Erfindung" ausführlich erörtert wurde, würde, um einen Speicher zu schaffen, der alle Ausgabewerte aufweist, die in einer Transformation von einem 24-Bit-LHC-Koordinatensystem (d. h. drei 8-Bit-Worten) in ein 24-Bit-RGB-Koordinatensystem verfügbar sind, ein sehr großer Speicher erforderlich sein, um eine Nachschlagtabelle zu enthalten, z. B. 50 MByte, um das breite Spektrum an verfügbaren Farbtönen zu korrelieren. Gemäß der Farbabbildung der vorliegenden Erfindung wird nur ein Satz von vorbestimmten RGB-Ausgabedatenpunkten in den Knoten eines adressierbaren Speichers basierend auf einer Verwendung der Eingabewerte des zylindrisch-basierten LHC- Farbraumkoordinatensystems gespeichert. Die Informationen, die für jeden Knoten gespeichert werden, bestehen aus drei Bytes, eines für die RGB-Ausgabewerte. Um das Abholen von Daten zu beschleunigen und um eine Speicherbusauslastung für eine Speicherabbildung und Interpolation von einer 24-Bit-LHC-Eingabe in eine 24-Bit-RGB-Ausgabe zu mindern, ist festgestellt worden, daß nur die nachstehenden Knoten von korrelativen Daten gespeichert werden müssen:
  • Tabelle 1
    Figure 00130001
  • Es ist zu beachten, daß es sich hierbei nur um eine Farbabbildung von vielen handelt, die für eine spezielle Implementierung abgeleitet werden kann. Die Auswahl von Knoten kann mit den folgenden Regeln erreicht werden: Ausgegangen wird von einem Satz von M Punkten {N(0), N(1) ... N(M)), der von einem möglichen 2K [d. h. dem Bereich von 0 bis (2K) – 1] ausgewählt ist. Dieser Satz von Knoten gilt für die Verwendung mit dem Interpolationsverfahren der vorliegenden Erfindung, wenn, und nur wenn, folgendes gilt:
    • 1.N (0) = 0,
    • 2. N(M) = (2K) – 1 [für eine weitere Regelüberprüfung kann N(M) den 2K-Wert füllen, und
    • 3. für die Knoten {N(1), N(2) ... N(M – 1)}, kann der Knoten N(P) = Q*(2A), wobei Q eine ungerade Zahl ist], ein Mitglied des Satzes sein, nur wenn ((Q – 1)*(2R)) und ((Q + 1)*(2R)) ebenfalls in dem Satz umfaßt sind.
  • Wenn die Achse einen Winkel beschreibt, wie z. B. für die H*-Achse, sind die Regeln wie folgt:
    • 1. N(0) = 0 [für eine weitere Regelüberprüfung kann N(0) sowohl die 0- als auch 2K-Werte füllen], und
    • 2. für die Knoten {N(1), N(2) ... N(M – 1)} kann der Knoten N(P) = Q*(2R), wobei Q eine ungerade Zahl ist, ein Mitglied des Satzes sein, nur wenn ((Q – 1)*(2R)) und ((Q + 1)*(2R)) ebenfalls in dem Satz umfaßt sind.
  • Es ist auch zu beachten, daß bei dieser speziellen Abbildung für einen zylindrischen Raum, da H* ein Umfangsvektor ist, zu beachten ist, daß eine spezielle Umhüllung auftritt, wo der Knoten 265 einen vollen Kreis bilden und gleich dem Knoten 0 sein würde. Es wäre natürlich möglich, die selben Daten in separaten Positionen als Knoten 0 und Knoten 256 zu speichern. Bei dem bevorzugten Ausführungsbeispiel ist er lediglich einmal gespeichert und wird algorithmisch gehandhabt.
  • Bei diesem bevorzugten Ausführungsbeispiel, obgleich die Daten für L* in dem verfügbaren Spektrum (Tabelle 1, wobei alle 16 Knoten bereitgestellt sind) regelmäßig beabstandet sind, um die Benutzersteuerung bei hellen Farbschattierungen zu ermöglichen, werden z. B. Pastelltöne, wo Differenzen ohne weiteres offensichtlich und schwerer zu steuern sind, d. h. bei Niedrigchromawertdaten, C* – häufiger im Niedrigchromaraum gespeichert (Tabelle 1, eine nichtlineare Progression von: 0, 4, 8, dann 16, 24, 32, dann 48, 64, dann 96, 128, dann 192, dann 255). Dies ist auch in 5 dargestellt, wo die Datenverteilung zu den Niedrigchromaknoten drastisch größer als für die Farben eines Niedrigchromawerts ist.
  • Wenn C* = 0, unterscheidet die Farbbildung nicht unter den unterschiedlichen Werten von H* (siehe 2A und 2B). Somit sind insgesamt 6.137 Farbabbildungsknoten [17 + (17 × 30 × 12) = 6.137] erforderlich, die sich durch den 24-Bit-LHC-Farbraum erstrecken. In anderen Worten besteht die gesamte Farbabbildung aus den Farbtonchromaebenen, die gemäß den 17 L*-Knotenspezifikationen beabstandet sind.
  • Datenabholmodi
  • Werden die verbesserten Datenabholschritte 309–317 der vorliegenden Erfindung, wie in 3 gezeigt ist, einen Moment ignoriert, wird ein einfaches Abholen aller benachbarten Knoten in der Operation 319 durch die nachstehenden Regeln und Beispiele exemplifiziert.
  • Wenn keine perfekte Anpassung aller drei LHC-Eingabekoordinaten an einen spezifisch abgebildeten Knoten vorliegt, um eine Interpolation von Daten auszuführen, die im Speicher verfügbar sind, hätte es den Anschein, daß die voreingestellte Anzahl von Knoten, die geholt werden sollte, acht betrüge, wobei alle umgebenden gespeicherten Knoten der benachbarten Ebenen eines Polyhedron von einer Farbraumkonstruktion durch den abgeholten Knoten definiert sind (siehe z. B. 1). Um zu bestimmen, welche acht Knoten einen Vergleich der drei LHC-Komponenten der eingehenden Pixel 301 mit den Abbildungsknotenpositionen zu holen haben, ist Tabelle 1 erforderlich. Für jede der drei Komponenten werden die Abbildungsknotenpositionen, die kleiner als oder gleich der eingehenden Pixelkomponente sind, bestimmt. Sobald diese drei Werte bestimmt worden sind, wird der nächstgrößte Index für jede Komponente bestimmt. Sobald diese sechs Werte, zwei für jede Komponen te, bestimmt sind, kann man die acht möglichen Kombinationen verwenden, um die acht voreingestellten Abbildungsknoten zu finden, von denen die korrelativen RGB-Daten geholt werden sollen.
  • Es ist jedoch bestimmt worden, daß dieser Teil des Prozesses durch Erkennen der Beschaffenheit der Knoten, die die Abbildung speicherten (Tabelle 1), und der Beschaffenheit der zylindrischen LHC-Raumkonstruktion an sich vereinfacht werden kann. Somit verwendet die vorliegende Erfindung eine „intelligente Abhol-Teilroutine" 315–317, wann immer dies möglich ist.
  • Im Hinblick auf die Beschaffenheit der Farbabbildung, wenn eine beliebige der Komponenten des eingehenden Pixelwerts exakt mit einem der Abbildungsknotenindizes übereinstimmt, ist nur die Hälfte der Anzahl von Abholungen erforderlich. Das heißt, daß bei einer intelligenten Abholung erkannt werden kann, was ein Eingabepixel ist, und bestimmt werden kann, welche Knoten notwendig sind, so daß, abhängig von den Eingabefarbkoordinaten und ihrer Ausrichtung mit den Ebenen der einfachen Knoten, alle acht umgebenden Knoten notwendig sein können. Wenn eine Anpassung eintritt, grenzt sie die Wahl für diese Komponente von zwei auf eins ein, um herauszufinden, welche Knoten abzuholen sind. In anderen Worten, wenn keine Komponenten eine Anpassung anbieten, müssen alle acht Knoten geholt werden; wenn eine Komponente übereinstimmt, müssen vier Knoten geholt werden; wenn zwei Komponenten übereinstimmen, müssen zwei Knoten geholt werden; und wenn alle drei Komponenten übereinstimmen, muß nur ein Knoten geholt werden.
  • Im Hinblick auf die Beschaffenheit des zylindrischen Raums an sich treten zwei Sonderfälle ein, wenn C* = 0 und wenn C* größer als 0, jedoch kleiner als der nächste Abbildungsindexknoten (z. B. 0 < C* < 4, Tabelle 1). Wenn C* = 0, ist H* irrelevant (siehe 2A und 2B). Wenn dann die L*-Komponente eine abgebildete Ebene ist, ist nur ein Knoten erforderlich. Wenn die L*-Komponente keine abgebildete Ebene ist, sind zwei Knoten erforderlich. Wenn C* > 0, jedoch kleiner als der nächste Abbildungsindexknoten, sind nur sechs Knoten erforderlich. Es wird beispielsweise angenommen, daß ein Eingabe-LHC-Pixel 301 L* = 56 hat und H*-, C*-Koordinaten, so daß seine Projektion in der H*-C*-Ebene von 2B in einen Bereich fällt, wie denjenigen, der Pixelzahl-1-Daten enthält. Es gibt keine Daten, die für L* = 56 gespeichert sind (siehe Tabelle 1). Daher muß die Interpolation 321 von den gespeicherten Daten ausgeführt werden. Um von den gegebenen Speicherdaten zu interpolieren 321, sind drei entsprechende Knoten in sowohl den benachbarten Ebenen L* = 48 und den L* = 64-Ebenen erforderlich, die ein tortenförmiges Polyhedron beschreiben. Es ist wiederum zu beachten, daß, wo L* eine exakte Übereinstimmung ist, nur die drei Knoten in dieser Ebene geholt werden müssen.
  • Abholmodusbeispiele für die Farbabbildun von Tabelle 1
  • Wenn das eingehende Datentriplett (20, 20, 20) ist, dann sind acht Knoten notwendig:
    Figure 00170001
  • Wenn das eingehende Datentriplett (48, 50, 52) ist, dann sind vier Knoten notwendig:
    Figure 00170002
    Figure 00180001
  • Wenn das eingehende Datentriplett (104, 104, 104) ist, dann sind vier Knoten notwendig:
    Figure 00180002
  • Wenn das eingehende Datentriplett (4, 4, 4) ist, dann sind vier Knoten notwendig:
    Figure 00180003
  • Wenn das eingehende Datentriplett (144, 144, 144) ist, dann sind zwei Knoten notwendig:
    Figure 00180004
  • Wenn das eingehende Datentriplett (64, 196, 64) ist, dann sind zwei Knoten notwendig:
    Figure 00180005
  • Wenn das eingehende Datentriplett (100, 96, 96) ist, dann sind zwei Knoten notwendig:
    Figure 00180006
  • Wenn das eingehende Datentriplett (96, 96, 96) ist, dann ist ein Knoten notwendig:
    Figure 00190001
  • Wenn das eingehende Datentriplett (8, 8, 0) ist, dann sind zwei Knoten notwendig:
    Figure 00190002
  • Wenn das eingehende Datentriplett (48, 24, 0) ist, dann ist ein Knoten notwendig:
    Figure 00190003
  • Wenn das eingehende Datentriplett (70, 70, 1) ist, dann sind sechs Knoten notwendig:
    Figure 00190004
  • Wenn das eingehende Datentriplett (250, 240, 2) ist, dann sind vier Knoten notwendig:
    Figure 00190005
  • Wenn das eingehende Datentriplett (160, 165, 3) ist, dann sind drei Knoten notwendig:
    Figure 00190006
  • Speziell für den H*-Wert ist zu beachten, da die zylindrische Raumposition durch einen Umfangswinkel bestimmt ist, daß der Knoten 256 gleich dem Knoten 0 wäre. Wenn somit das eingehende Datentriplett (250, 250, 250) ist, sind acht Knoten notwendig:
    Figure 00200001
  • Wenn das eingehende Datentriplett (180, 252, 2) ist, dann sind sechs Knoten notwendig:
    Figure 00200002
  • Speicherabbildung, Fortsetzung: Knotenverdoppelun
  • Bei einem Systementwurf muß eine direkte Speicherzugriffsbandbreite berücksichtigt werden. Jeder Knoten kann beispielsweise 24 Bit von Daten aufweisen, jedoch kann die Busarchitektur nur 16 Bit breit sein. Beim Wiedergewinnen von zwei Knoten, 48 Bits von Daten, ist ein Vielfaches von 16 für ein unkompliziertes Speicherverfahren geeignet. Das Speichern in Sequenz, wie es in Tabelle 2 gezeigt ist, ist akzeptabel, wenn dies immer der Fall wäre. Jedoch, wie oben gezeigt ist, stimmt das intelligente Abholverfahren nicht immer mit der Busarchitektur überein. Eine Knotenverdopp lung im Speicher liefert da eine Lösung. Das heißt, um die Abholungen zu beschleunigen und die DMA-Busnutzung zu verringern, erscheinen die meisten Knoten der Farbabbildung mehr als einmal im Hauptspeicher. Das Verständnis für eine Knotenverdopplung rührt von einem Verständnis für die Beschaffenheit der Speicherung und Wiedergewinnung des Typs von Daten, die bei der Farbraumtransformation verwendet werden. Unter Bezugnahme auf das Abholen des ursprünglichen voreingestellten Modus von acht Knoten würde ein Pixel, wie z. B. Nr. 2 in 2B, acht benachbarte Knoten erfordern, vier von jeder verfügbaren benachbarten L*-Ebene. Als weiteres Beispiel, wenn das Eingabepixel 301 L* = 72 aufweist, mit identischen H*- und C*-Werten als das erste Beispiel, sind die gleichen L*=64-Knoten zusammen mit den relevanten L*=80-Knoten erforderlich (und nicht die L*=48-Knoten). Wenn die Daten in einem herkömmlichen sequentiellen Speicher einmal gespeichert wurden, existieren alle Knoten nur in einer adressierbaren Position, und eine Farbabbildung mit einer hardwaregerechten 16-Bit/Wortstruktur, von der ein kleines Segment in Tabelle 2 gezeigt ist, würde redundante Zugriffsschritte erfordern.
  • Tabelle 2
    Figure 00210001
  • Das L*=56-Pixel erfordert beispielsweise ein Abholen von n + 1, n + 2, n + 3 und n + 9, während das L* = 72-Pixel nur n + 3, n + 4 und n + 5 erfordert. Eine Knotenverdopplung, wie sie in Tabelle 3 gezeigt ist, reduziert die Abholanforderung.
  • Tabelle 3
    Figure 00220001
    Nun sind in dem ursprünglichen Beispiel, mit den erforderlichen Daten in zwei Positionen, für sowohl L* = 56 als auch L* = 72 nur drei Abholzugriffe erforderlich.
  • Es ist zu beachten, daß nicht alle Knoten im Speicher verdoppelt werden müssen. Die meisten Ebenen von einem konstanten L* weisen zwei benachbarte Ebenen auf, jedoch für L* = 0 und L* = 255 existiert nur eine Nachbarebene, so daß die Knoten auf diesen zwei Ebenen nicht verdoppelt werden müssen. [Wenn es für eine spezifische Implementierung angemessen ist, z. B. wo ein Rdreßerzeugungsschema drei Speicherungen eines axialen Grenzknotens erfordern kann, kann z. B. 255 implementiert sein.] Daher gibt es für alle Gruppen von 17 L*-Knoten (siehe Tabelle 1) 34 Drei-Byte-Abbildungen im Hauptspeicher. Die tatsächliche Ordnung der Knoten innerhalb des Hauptspeichers kann basierend auf den Entwurfvorteilen für die verwendete Hardware optimiert werden. Ein Verfahren ist in der mitanhängigen U.S.-Patentanmeldung, Seriennummer 08/375,096, durch A. R. Jones für Memory Organization and Method for Multiple Variable Digital Data Transformation, die an die Anmelderin der vorliegenden Erfindung gemeinsam übertragen worden ist und hierin durch Bezugnahme aufgenommen worden ist, beschrieben.
  • Cachespeichern
  • Um die Datenverarbeitung zu beschleunigen, ist festgestellt worden, daß die Verwendung eines eingebauten ASIC-Cachespeichers die Datenverarbeitungszeit wesentlich verbessert. Das heißt, daß es schneller ist, die Datenknoten von einem Cache wiederzugewinnen, wenn die Farbabbildung außerhalb der Datenverarbeitung-ASIC im Hauptspeicher gehalten wird. Unter Bezugnahme auf 3 ist festgestellt worden, daß die Verwendung eines eingebauten ASIC-Cachespeichers ebenfalls verwendet werden kann, um ein effizienteres Abholverfahren zu ermöglichen. Das heißt, daß Daten, die für eine aktuelle Transformation abgeholt werden, in einem Cachespeicher gespeichert werden und bis zum nächsten Transformationszyklus im Cachespeicher verbleiben. Daher wird vor dem Bestimmen, ob ein intelligentes Abholen 315–317 angebracht ist, eine Cachespeicher-Prüfung ausgeführt 309–313, um zu bestimmen, ob die Knoten während der Datentransformation von LHC- in RGB-Daten in einem vorherigen Transformationszyklus wiedergewonnen worden sind. Wenn ein Cachespeicher freigegeben wird, 309, Y, dann wird der Cachespeicher auf alle eingabedatenanfordernden Knoten überprüft, 311. Wenn nicht alle Knoten im Cache gefunden werden, wird der Rest vom Hauptspeicher 313 abgeholt, wobei Knotendaten ausgetauscht werden, die für den aktuellen Transformationszyklus nicht notwendig sind. Bei dem bevorzugten Ausführungsbeispiel ist erklärt worden, daß es 17 L*-Wertknoten, 30 H*-Wertknoten und 13 C*-Wertknoten in der Farbabbildung gibt (Tabelle 1). Ein entsprechendes Größen– und Adressierungsschema für den Cachespeicher kann zum Halten von Daten in einer satzassoziativen Weise ausgearbeitet werden, wie einem Fachmann bekannt ist. Wenn alle Knoten, die durch die aktuellen Eingabe-LHC-Pixelkoordinaten adressiert sind, bereits in dem Cache 311, 313 sind, dann können die Schritte 315–319 umgangen werden.
  • Interpolationsverfahren
  • Zusammenfassend ist es der erste Schritt einer Datentransformation und -Interpolation von LHC-Farbraumeingabedaten 301 in RGB- (oder andere geräteabhängige) Farbraumausgabedaten 319, zu bestimmen, welcher der Farbabbildungsknoten das kleinste Polyhedron oder den „Teilwürfel" beschreibt, der das Eingabepixel umhüllt. Der zweite Schritt ist das Abholen 315–319 der Daten, die an diesem relevanten Knoten gespeichert sind. Der dritte Schritt ist die tatsächliche Interpolationsberechnung 321, d. h. die Daten der abgeholten Knoten werden nach Bedarf interpoliert, um einen entsprechenden 24-Bit-RGB-Ausgabewert 329 zu erzeugen, der mit den Eingabe-LHC-Pixeldaten 301 korreliert ist. Die Interpolationsteilroutine 321 ist in 4A und 4B gezeigt.
  • Ein Satz von Ausgabe-RGB-Koordinaten von den Eingabe-LHC-Koordinaten ist auszuarbeiten. Wie oben bei der Gondek-U.S.-Patentanmeldung, ist bestimmt worden, daß eine Aufteilung des Gitters von Datenpunkten durch die Unterteilungsroutinen effizienter ist als ein Versuch einer komplexen Mathematik einer wahren nichtlinearen, trivariablen Interpolation. Bei dem Gondek-Verfahren sind jedoch stets alle umgebenden Knoten erforderlich. Wie bisher erörtert wurde, kommen die Eingabe-LHC-Koordinatenwerte 400 bei der vorliegenden Erfindung von entweder dem Cachespeicher (siehe 3, Schritte 309–313) oder dem Hauptspeicher durch ein intelligentes Abholen (Schritte 315–317) oder ein vollständiges Abholen aller umgebenden Knoten (Schritt 319). Somit kann die Interpolationsroutine basierend auf der Zahl und Position in der Farbraumkonstruktion der abgeholten Knoten verbessert werden.
  • Abhängig von der Farbabbildung (siehe Tabelle 1 und 5) sind bei einem 8-Bit-L*-, H*- oder C*-Koordinatenwort eine bestimmte Anzahl von Bits zum Benennen des Zielknotens erforderlich, und der .-Rest der Bits bestimmt die Anzahl von Unterteilungen, die verfügbar sind.
  • Wenn die Eingabe LHC = 8, 4, 7, fällt die L*-Koordinate zwischen die 0 und 16 Knoten, die gespeichert wurden (siehe Tabelle 1). Daher sind von den 256 Knotenmöglichkeiten (0– 255) unter Verwendung eines Basis-Zwei-Logarithmus (nachstehend logt) von der Differenz zwischen den Knoten, die 16 ist, vier Bits des 8-Bit-Worts für eine Speicherzugriffsadressierung (256/16 = 16) notwendig. Die H*-Koordinate fällt zwischen die 0 und 8 Knoten, die gespeichert sind. Daher sind 5 Bits notwendig (256/8 = 32). Die C*-Koordinate fällt zwischen die 4 und 8 Knoten, die gespeichert wurden. Daher sind 6 Bits notwendig (256/4 = 64). Unter Verwendung des gleichen Beispiels kann diese Partitionierung der Datenworte dargestellt werden als:
    L*, H*, C* [8, 4, 7], wobei
    L ist xxxx |xxxx
    H ist xxxx x|xxx
    C ist xxxx xx|xx
  • So soll LBits, BBits und CBits so verstanden werden, daß sie die Anzahl von verfügbaren Bits für eine Interpolationsdivision bedeuten. Bei dem Beispiel ist LBits = 4, HBits = 3 und CBits = 2, wo der Bitzählwert ein Etikett ist, das bei dem niederwertigsten Bit (LSB) beginnt und um 1 für jede Position zum höchstwertigen Bit (MSB) zunimmt. Die Anzahl von Interpolationen wird somit durch die Koordinate mit der größten Anzahl von verfügbaren Bits bestimmt, bei diesem Beispiel für vier Interpolationen: (1) L*; (2) L*, H*; (3) L*, H*, C*; und (4) L*, H*, C*. [Bei diesem speziellen exemplarischen Ausführungsbeispiel ist zu beachten, daß beim Bestimmen von z. B. LBits eine Ausnahme besteht, wenn der obere Knotenpunkt 255 darstellt, z. B. sind für L* _ 244 die benachbarten Knoten 240 und 255; für LBits = logt ((255 – 244) + 1) = 4]. Zusätzlich sollte die *Bits-Variable eine Aufrundungsfunktion aufweisen, die auf dieselben nach der log2-Operation angewendet wird. Das heißt, die Gleichung lautet: _*Bits = ceiling(log2(*node 1 – *node 0),wobei ceilingN die kleinste Ganzzahl ist, die größer als oder gleich N ist.
  • In der Routine, die in 4A und 4B gezeigt ist, wird zuerst der LBits-Zählwert auf Null gesetzt, Schritt 401. Der eingehende L*-Wert wird geprüft, um zu bestimmen, ob er mit dem gespeicherten Abbildungsknoten übereinstimmt, Schritt 402. Wenn die Bedingung falsch ist (Schritt 402, N), wird LBits auf den logt der Differenz zwischen den benachbarten Abbildungsknotenwerten gesetzt (d. h. dem nächsten kleiner numerierten Knoten und dem nächst größer numerierten Knoten, z. B. für L* = 8, logt (16 – 0), Schritt 403. Wenn sie wahr ist (Schritt 402, Y) oder nach dem Schritt 403, wird der Prozeß fortgesetzt, wobei die HBits auf Null gesetzt werden, Schritt 404, und eine ähnliche Routine mit der Farbtonkoordinate betrieben wird. Der eingehende H*-Wert wird überprüft, um zu bestimmen, ob er mit einem gespeicherten Abbildungsknoten übereinstimmt, Schritt 405. Wenn die Bedingung falsch ist (Schritt 405, N), werden HBits auf den logt der Differenz zwischen den benachbarten Abbildungsknotenwerten gesetzt, Schritt 406. Wenn sie wahr ist (Schritt 405Y) oder nach dem Schritt 404, wird der Prozeß fortgesetzt, wobei CBits auf Null gesetzt wird, Schritt 407, und eine ähnliche Routine betrieben wird. Der eingehende C*-Wert wird überprüft, um zu bestimmen, ob er mit dem gespeicherten Abbildungsknoten übereinstimmt, Schritt 408. Wenn die Bedingung falsch ist (Schritt 408, N), wird CBits auf den logt der Differenz zwischen den benachbarten Abbildungsknotenwerten gesetzt, Schritt 409. Wenn sie wahr ist (Schritt 408, Y) oder nach dem Schritt 408, wird die nächste Stufe des Prozesses begonnen.
  • Wenn LBits HBits und CBits null sind, 410, was bedeutet, daß alle drei Koordinaten spezifische Abbildungsknoten sind, ist keine Interpolation notwendig, die Knoten können abgeholt und ausgegeben werden, Schritt 329 (siehe auch 3). [Ein zweiter spezieller Codeprüfpunkt 323 wird nachstehend ausführlicher erörtert.] Ist dies nicht der Fall, wird eine Interpolation betrieben. LBits, HBits und CBits werden verglichen, Schritt 404. Wenn die Bedingung LBits > HBits UND LBits > CBits wahr ist (Schritt 411, Y) , wird basierend auf dem Bit in der Lsits-Position des eingehenden L*-Werts eine Halbwürfelreduktion zu der bezeichneten Position im Farbraum entlang der L*-Achse ausgeführt, Schritt 412. Das heißt, daß eine Unterteilung zwischen den Ebenen vorgenommen wird, um in der L*-Achse zu dem wahren gewünschten Farbraumpunkt oder der Koordinate bewegt zu werden. Die LBits werden um 1 reduziert, Schritt 413, was in dem Beispiel bedeutet, daß nur drei Bits der ursprünglichen 4-Bit-Interpolationdesignatorbits verbleiben. Die Routine kehrt zu Schritt 410 zurück und wird fortgesetzt. Wenn die Bedingung von Schritt 411 falsch war (was bedeutet, daß bei dieser Ebene der Interpolation keine Interpolation von L* notwendig war), wird als nächstes ein Vergleich ausgeführt.
  • Wenn HBits > LBits UND HBits > CBits, Schritt 414, wahr ist, wird basierend auf dem Bit in der HBits-Position des eingehenden H*-Werts, wird eine Halbwürfelreduktion entlang der H*-Achse ausgeführt, Schritt 915; wobei wiederum zu der Position im Farbraum bewegt wird, wo die Farbtonkoordinatentransformation ist. HBits wird um 1 reduziert, Schritt 416. Die Routine kehrt erneut zu Schritt 410 zurück und wird fortgesetzt. Wenn die Bedingung von Schritt 414 falsch war, wird ein nächster Vergleich ausgeführt.
  • Wenn CBits > LBits UND CBits > HBits Schritt 417, wahr ist, wird basierend auf dem Bit in der CBits-Position des einge henden C*-Werts eine Halbwürfelreduktion in der C*-Achse ausgeführt, Schritt 418. CBits wird um 1 reduziert, Schritt 419, und die Routine kehrt erneut zu Schritt 410 zurück. Wenn die Bedingung von Schritt 417 falsch ist, beginnt der nächste Ebenenvergleich.
  • Wenn LBits = HBits UND LBits > CBits, Schritt 420, wird basierend auf dem Bit in der LBits-Position des eingehenden L*-Werts und dem Bit in der HBits-Position des eingehenden H*-Werts eine Viertelwürfelreduktion entlang der L*- und H*-Achsen vorgenommen, Schritt 421. LBits und HBits werden um 1 reduziert, Schritt 422, und der Prozeß kehrt zu Schritt 410 zurück. Wenn die Bedingung von Schritt 420 falsch ist, wird ein weiterer Vergleichstest ausgeführt.
  • Wenn LBits = CBits UND LBits > HBits Schritt 423, wird basierend auf dem Bit in der Lsits-Position des eingehenden L*-Werts und dem Bit in der CBits-Position des eingehenden C*-Werts eine Viertelwürfelreduktion entlang der L*- und C*-Achsen ausgeführt, Schritt 424. LBits und CBits werden jeweils um 1 reduziert, Schritt 425, und der Prozeß kehrt zu Schritt 410 zurück. Wenn die Bedingung von Schritt 423 falsch ist, wird der nächste Vergleich vorgenommen.
  • Wenn HBits = CBits UND HBits > LBits Schritt 426, wird basierend auf dem Bit in der HBits-Position des eingehenden H*-Werts und dem Bit in der CBits-Position des eingehenden C*-Werts eine Viertelwürfelreduktion entlang der H*- und C*-Achsen ausgeführt, Schritt 427. HBits und CBits werden um 1 reduziert, Schritt 428, und der Prozeß kehrt zu Schritt 410 zurück. Wenn die Bedingung von Schritt 426 falsch ist, wird eine Achtelwürfelreduktion in den L*-, H*- und C*-Achsen vorgenommen, Schritt 429. LBits, HBits und CBits werden alle um 1 reduziert, Schritt 430, und der Prozeß kehrt zu Schritt 410 zurück.
  • Der Interpolationsprozeß wird fortgesetzt, bis die Bedingung von Schritt 410 erfüllt ist. Das nächste Eingabe-LHC- Pixel kann dann verarbeitet werden usw., bis die gesamte Transformation von LHC in RGB beendet ist.
  • Unter Bezugnahme auf 3, im Anschluß an die Interpolationsteilroutine, wird eine weitere Sonderbedingungsprüfung 323–327 ausgeführt werden, wo, wie zuvor, reservierte Werte eine spezielle Ausgabe liefern können, die für andere Operationsaspekte der Vorrichtung nützlich sind.
  • Die vorliegenden Erfindung schafft somit eine Farbraumdatenabbildungsstrategie und ein Interpolationsverfahren zum Transformieren von L*H*C*-Eingabepixelkoordinatenwertenin RGB- (oder anderen Tristimulussystem-) Ausgabepixelwerten. Eine nichtlineare Farbraumdatenabbildung und verbesserte Interpolation ermöglichen eine effizientere multivariable Datentransformation. Die Ausgabewerte werden dann beim Anzeigen (z. B. bei einer Druckkopievorrichtung, die einen Farbdruck ermöglicht) der transformierten Daten verwendet. Bei einem Tintenstrahldrucker würden die Ausgabewerte verwendet werden, um eine Druckkopfsteuerung anzutreiben, um dann entsprechende Tropfen von Farbtinte auf ein Druckmedium aufzubringen, um eine Druckmatrixdarstellung des Bildes zu erreichen. Um eine Abbildung (Tabelle) gemäß der vorliegenden Erfindung zu konfigurieren und zu nutzen, wird eine Abbildung (Tabelle) in einem Hauptspeicher gespeichert; der Cache wird geräumt und das Eingaberegister gesäubert und entsprechende ENABLE-Bits zum Setzen für die speziellen Bedingungen, den Cache und die intelligenten Abholteilroutinen. Die Verarbeitung von LHC-Pixeldaten kann dann fortgesetzt werden, bis das ganze Bild transformiert ist.
  • Die vorstehende Beschreibung des bevorzugten Ausführungsbeispiels der vorliegenden Erfindung ist zu Darstellungsund Beschreibungszwecke präsentiert worden. Sie soll nicht erschöpfend sein oder die Erfindung auf die präzise offenbarte Form einschränken. Praktizierenden Fachleuten sind offenbar viele Modifizierungen und Variationen offenkundig.
  • Desgleichen könnten beliebige Prozeßschritte, die beschrieben wurden, durch andere Schritte ersetzt werden, um das gleiche Ergebnis zu erreichen. Das Ausführungsbeispiel wurde gewählt und beschrieben, um die Grundsätze der Erfindung am besten zu erörtern und ihre praktische Anwendung im besten Modus zu erörtern, um dadurch Fachleuten zu ermöglichen, die Erfindung für verschiedene Ausführungsbeispiele und mit verschiedenen Modifizierungen nach Bedarf für den speziellen berücksichtigten Verwendungszweck zu begreifen. Es wird die Absicht verfolgt, den Schutzbereich der Erfindung durch die Ansprüche, die daran angehängt sind, und ihre Entsprechung zu definieren.

Claims (8)

  1. Ein computerisiertes Datentransformationsverfahren zur Umwandlung von Tristimulusfarbraum-Daten von einem trivariablen ersten Koordinatensystem mit einer zylindrischen Raumkonstruktion in ein trivariables zweiten Koordinatensystem, das folgende Schritte aufweist: Speichern einer Abbildung von vorbestimmten Tristimulusfarbraum-Ausgabekoordinaten des zweiten Koordinatensystems an einer Mehrzahl von einzelnen Knoten (313, 317) eines ersten Speichers; selektives Cache-Speichern (309, 311) von ausgewählten Knoten des ersten Speichers in einem zweiten Speicher basierend auf einem vorherigen Zugriff des ersten Speichers zur Wiedergewinnung von Ausgabekoordinaten von einzelnen Knoten in demselben, wodurch die vorher zugegriffenen einzelnen Knoten dadurch die ausgewählten Knoten in dem zweiten Speicher bilden; Empfangen eines ersten Satzes von Eingabekoordinaten (301), die ein Multi-Bit-Datenwort für jede der drei Tristimulusfarbraum-Variablen des ersten Koordinatensystems umfassen, und wobei der Satz von Eingabekoordinaten zumindest einen Knoten bestimmt, der in dem zweiten Speicher cachegespeichert ist (311), Wiedergewinnen der Ausgabekoordinaten für den zumindest einen Knoten von dem zweiten Speicher, und wenn der Satz von Eingabekoordinaten zumindest einen anderen Knoten bestimmt, der nicht cache-gespeichert ist (313), Bestimmen, ob die Eingabekoordinaten mit einem gespeicherten Knoten im ersten Speicher korrelieren, und wenn die Eingabekoordinaten mit einem gespeicherten Knoten im ersten Speicher direkt korrelieren (315), Wiedergewinnen von Ausgabekoordinaten vom gespeicherten Knoten, und wenn die Eingabekoordinaten mit einem gespeicherten Knoten im ersten Speicher nicht direkt korrelieren, Wiedergewinnen (319) eines vorbestimmten Satzes von Knoten, der die Position in der zylindrischen Raumkonstruktion, die durch die Eingabekoordinaten benannt ist, unmittelbar umgibt, wobei das Wiedergewinnen von spezifischen umgebenden Knoten auf einer relativen Position basiert, die durch die Eingabekoordinaten in der zylindrischen Raumkonstruktion benannt ist; und Interpolieren (321) des wiedergewonnenen vorbestimmten Satzes von Knoten, um genäherte Ausgabekoordinaten durch wiederholtes Unterteilen der zylindrischen Raumkonstruktion in zylindrische Koordinatenachsen abzuleiten, wobei die Anzahl der sich wiederholenden Unterteilung auf einem Vergleich von Anzahlen von Bits in jeder Koordinate, die in jedem Bit-Wort verbleibt, nachdem Adressierungsbits verwendet werden, basiert; und Ausgeben (329) der Ausgabekoordinaten und der genäherten Ausgabekoordinaten; und Wiederholen der Schritte des Empfangens und Interpolierens für jeden Satz von Eingabekoordinaten.
  2. Das Verfahren gemäß Anspruch 1, bei dem der Schritt des Speicherns einer Abbildung ferner folgende Schritte aufweist: Speichern einer Farbabbildung von vorbestimmten, trivariablen Koordinatensätzen, die die Tristimulusfarbraum-Ausgabedaten als Knoten in einer dreidimensionalen Speicherkonstruktion mit zylindrischen Koordinaten L, H und C anzeigen, wobei L die Längsachsenkoordinate, die Luminanzwerte darstellt, ist, H die Umfangswinkelkoordinate, die Farbtonwerte darstellt, ist, und C die Radialachsenkoordinate, die Chromawerte darstellt, ist.
  3. Das Verfahren gemäß Anspruch 2, bei dem der Schritt des Interpolierens ferner folgende Schritte aufweist: für jeden der wiedergewonnen Knoten der L-, H- und C-Koordinate, Interpolieren zwischen jedem der wiedergewonnenen benachbarten Knoten durch iterative Division (403–430) der Entfernung zwischen den wiedergewonnenen Knoten, um zu dem Punkt hin zu konvergieren, wobei die Anzahl von iterativen Divisionen eine Funktion der Anzahl von Bits in jeder der L-, H- und C-Eingabedatenkoordinaten ist, die die Interpolationswiederholungen benennen, um interpolierte Ausgabekoordinaten abzuleiten.
  4. Das Verfahren gemäß Anspruch 2, das ferner gekennzeichnet durch folgende Schritte: Speichern (5) von relativ mehr Knoten von Ausgabekoordinaten, die in einem Farbspektrum verfügbar sind, die niedrigen Chromawerten (0-196) entsprechen, als von Ausgabekoordinaten, die hohen Chromawerten (128-255) entsprechen, so daß weniger Interpolationen für niedrige Chromawerte zum Transformieren von Eingabekoordinaten zu Ausgabekoordinaten erforderlich sind.
  5. Das Verfahren gemäß Anspruch 2, bei dem der Schritt des Wiedergewinnens eines vorbestimmten Satzes von Knoten ferner folgende Schritte aufweist: wenn C gleich Null ist, Ignorieren von H und Wiedergewinnen eines Knotens, der durch L benannt ist, wenn L eine Übereinstimmung ist, oder von zwei benachbarten Knoten, die L umgeben, wenn L keine Übereinstimmung ist.
  6. Das Verfahren gemäß Anspruch 2, das ferner durch folgende Schritte gekennzeichnet ist: wenn C größer als Null und kleiner als der nächste gespeicherte Abbildungsindexknoten ist, Wiedergewinnen von sechs benachbarten Knoten, die C umgeben, wenn L keine Übereinstimmung ist, und von drei benachbarten Knoten, die C umgeben, wenn L eine Übereinstimmung ist.
  7. Das Verfahren gemäß Anspruch 2, bei dem der Schritt des Speicherns ferner folgende Schritte aufweist- Speichern (5) einer nichtlinearen Progression von Knoten für zumindest eine der Variablen.
  8. Das Verfahren gemäß Anspruch 7, das ferner folgende Schritte aufweist: für einen Bereich von möglichen Knoten von 0 bis 255, Darstellen von Farbspektralknoten in den Farbraumspeicherungsabbildungs-Indexknoten, die folgende Merkmale aufweisen: L = 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240, 255; H = 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 86, 104, 112, 128, 136, 144, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248; und C = 0, 4, 8, 12, 16, 24, 32, 48, 64, 96, 128, 192, 255.
DE69723669T 1997-02-26 1997-08-12 Verfahren zur nichtlinearen Lagerung, Wiederauffindung und Interpolation von "tristimulus" Farbdaten Expired - Fee Related DE69723669T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/805,516 US5870077A (en) 1997-02-26 1997-02-26 Method for tristimulus color data non-linear storage, retrieval, and interpolation
US805516 1997-02-26

Publications (2)

Publication Number Publication Date
DE69723669D1 DE69723669D1 (de) 2003-08-28
DE69723669T2 true DE69723669T2 (de) 2004-05-27

Family

ID=25191774

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69723669T Expired - Fee Related DE69723669T2 (de) 1997-02-26 1997-08-12 Verfahren zur nichtlinearen Lagerung, Wiederauffindung und Interpolation von "tristimulus" Farbdaten

Country Status (4)

Country Link
US (1) US5870077A (de)
EP (1) EP0862140B1 (de)
JP (1) JPH10240917A (de)
DE (1) DE69723669T2 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10308877A (ja) * 1997-05-09 1998-11-17 Toshiba Corp 画像処理装置と画像形成装置
US6504952B1 (en) * 1998-03-17 2003-01-07 Fuji Photo Film Co. Ltd. Image processing method and apparatus
US6677959B1 (en) 1999-04-13 2004-01-13 Athentech Technologies Inc. Virtual true color light amplification
US6961066B2 (en) * 1999-04-13 2005-11-01 Athentech Technologies, Inc. Automatic color adjustment for digital images
US6439688B1 (en) 1999-04-30 2002-08-27 Hewlett-Packard Company Technique for printing a bar code while conserving colorant
US6196663B1 (en) 1999-04-30 2001-03-06 Hewlett-Packard Company Method and apparatus for balancing colorant usage
US7126718B1 (en) 1999-11-19 2006-10-24 Canon Kabushiki Kaisha Adjustment of color appearance models
US6707938B2 (en) * 2000-12-06 2004-03-16 Xerox Corporation Principal axis look-up for color correction
US7215440B2 (en) * 2000-12-28 2007-05-08 Xerox Corporation Fast interpolation of large color lookup tables
US6937758B2 (en) * 2001-08-07 2005-08-30 Hewlett-Packard Development Company, L.P. Method and apparatus for reproducing sepia-tone images
US20060041609A1 (en) * 2004-08-20 2006-02-23 Pellar Ronald J System and method for multi-dimensional lookup table interpolation
US8913073B2 (en) * 2006-08-09 2014-12-16 Adobe Systems Incorporated Interpolation according to a function represented using unevenly spaced samples of the function
US20080055618A1 (en) * 2006-08-31 2008-03-06 Evans & Sutherland Computer Corporation Interpolation table with logarithmically distributed entries
US8102569B1 (en) * 2006-11-08 2012-01-24 Adobe Systems Incorporated Conversion to alternative color space using a cache
EP2143262B1 (de) * 2007-05-04 2015-07-01 Esko Software Bvba Benutzerkonfigurierbares gamut-mapping und umwandlung von bildern aus einem quellfarbbereich in einen zielfarbereich mit primären und redundanten farben
US8526062B2 (en) * 2008-04-14 2013-09-03 Xerox Corporation Color lookup table compression
US8368716B2 (en) * 2008-09-29 2013-02-05 Hewlett-Packard Development Company, L.P. Processing pixel values of a color image
US9742959B1 (en) 2016-02-24 2017-08-22 Ricoh Company, Ltd. Mechanism for color management cache reinitialization optimization
US10373291B1 (en) 2018-01-31 2019-08-06 Google Llc Image transformation for machine learning
CN113573036A (zh) * 2021-06-16 2021-10-29 江南大学 圆柱形颜色空间网格化模型构建及其等亮度等饱和度等色相色谱的可视化方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3983166A (en) * 1974-03-18 1976-09-28 The Kendall Company Monomeric emulsion stabilizers
JPS5816180B2 (ja) * 1977-04-01 1983-03-30 大日本スクリ−ン製造株式会社 メモリ装置における信号補間方法
US4275413A (en) * 1978-03-30 1981-06-23 Takashi Sakamoto Linear interpolator for color correction
JPS57208765A (en) * 1981-06-18 1982-12-21 Dainippon Screen Mfg Co Ltd Signal interpolating method for memory device
US4477833A (en) * 1981-08-12 1984-10-16 R. R. Donnelley & Sons Company Method of color conversion with improved interpolation
EP0273398B1 (de) * 1986-12-25 1995-02-08 Konica Corporation Farbbildkorrekturverfahren
US5170468A (en) * 1987-08-18 1992-12-08 Hewlett-Packard Company Graphics system with shadow ram update to the color map
US4876651A (en) * 1988-05-11 1989-10-24 Honeywell Inc. Digital map system
US5121196A (en) * 1988-11-18 1992-06-09 Konica Corporation Color processing method and apparatus with a color patch
DE4012905A1 (de) * 1990-04-23 1991-10-24 Linotype Ag Verfahren und vorrichtung zur erzeugung einer digitalen drucktabelle fuer druckfarben bei bildreproduktionsgeraeten
JPH04185075A (ja) * 1990-11-20 1992-07-01 Canon Inc カラー画像処理装置
JP2903807B2 (ja) * 1991-10-17 1999-06-14 富士ゼロックス株式会社 色信号変換方法および装置
US5677967A (en) * 1993-03-10 1997-10-14 R. R. Donnelley & Sons Company Method of and apparatus for converting between a color appearance space and a colorant space
US5696839A (en) * 1993-04-08 1997-12-09 Linotype-Hell Ag Method and apparatus for reproducing an image employing a transformation of color solids
US5666436A (en) * 1993-10-14 1997-09-09 Electronics For Imaging Method and apparatus for transforming a source image to an output image
US5461712A (en) * 1994-04-18 1995-10-24 International Business Machines Corporation Quadrant-based two-dimensional memory manager
US5450216A (en) * 1994-08-12 1995-09-12 International Business Machines Corporation Color image gamut-mapping system with chroma enhancement at human-insensitive spatial frequencies
US5684981A (en) * 1995-01-18 1997-11-04 Hewlett-Packard Company Memory organization and method for multiple variable digital data transformation
US5650942A (en) * 1996-02-02 1997-07-22 Light Source Computer Images, Inc. Appearance-based technique for rendering colors on an output device

Also Published As

Publication number Publication date
EP0862140A2 (de) 1998-09-02
DE69723669D1 (de) 2003-08-28
EP0862140B1 (de) 2003-07-23
EP0862140A3 (de) 2000-05-10
JPH10240917A (ja) 1998-09-11
US5870077A (en) 1999-02-09

Similar Documents

Publication Publication Date Title
DE69723669T2 (de) Verfahren zur nichtlinearen Lagerung, Wiederauffindung und Interpolation von &#34;tristimulus&#34; Farbdaten
DE69930829T2 (de) Dynamisch optimierte Farbennachschlagetabelle, auf Bildansprüchen beruhend
DE69532016T2 (de) Bildverarbeitungsgerät und -verfahren
DE60033713T2 (de) Bildverarbeitung und Farbumwandlung
DE69526273T2 (de) Farbdrucksystem und -verfahren
DE3808818C2 (de)
US5208911A (en) Method and apparatus for storing and communicating a transform definition which includes sample values representing an input/output relation of an image transformation
DE69634040T2 (de) Verfahren und Gerät zur Bitratenreduktion und Rekonstruktion von Bilddaten mittels Ditherfeldern
DE69728003T2 (de) Verfahren und Vorrichtung zur Farbraumumwandlung
DE60310361T2 (de) Farbraumwandlung unter Verwendung von Interpolation
DE69630747T2 (de) Farbbildverarbeitungssystem
US5650942A (en) Appearance-based technique for rendering colors on an output device
EP0611231B1 (de) Verfahren zur Farbbildkalibrierung und -verbesserung zwischen Vorrichtungen mit expliziten Beschränkungen
DE69909034T2 (de) Verfahren und Vorrichtung zur adaptiven Farbübereinstimmung
US5432906A (en) Color image processing system for preparing a composite image transformation module for performing a plurality of selected image transformations
EP1222810B1 (de) Verfahren zur druckprozessanpassung mit erhaltung des schwarzaufbaus
US5111286A (en) Image processing
US6301383B1 (en) Image processing apparatus and method
EP0703701A2 (de) Farbbildverarbeitungssystem und Verfahren zur Vorbereitung eines zusammengesetzten Bildtransformationsmoduls für mehrere ausgewählte Bildtransformationen
DE69918790T2 (de) Verfahren und Vorrichtung zur vorangepassten Farbkonvertierung
AU3916293A (en) Color correction with a four-dimensional look-up table
US7215440B2 (en) Fast interpolation of large color lookup tables
DE4341871C2 (de) System zur Generierung korrigierter Farbbilder
WO1998016057A1 (de) Verfahren zur interpolation in einem n-dimensionalen farbraum
DE69721212T2 (de) Bilddatenfarbkorrekturverfahren

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 DEVELOPMENT CO., L.P., HOUSTON, TE

8339 Ceased/non-payment of the annual fee