(57)【要約】【課題】  人間の視覚に応じた高度な色再現を実現することは困難であった。【解決手段】  第1の表色系で表現される色信号値を所定の表色系を介して第2の表色系の色信号値に変換する際に、該所定の表色系における第1の色域内の色信号値に対して非線形演算を行うことによって第2の色域内の色信号値を算出する色処理方法であって、第1の色域と第2の色域との対応に基づいて標本色を設定し(S602)、該設定された標本色に基づいて、スプライン係数を設定し(S605,S606)、該設定された係数に基づくスプライン演算によって、中間色域を生成し(S607)、該中間色域が出力色域に十分近ければ該係数を決定し、近くなければ標本色を再設定する(S602)。【選択図】  図5
2007060422.tif 000002
【特許請求の範囲】
【請求項１】
第1の表色系で表現される色信号値を所定の表色系を介して第2の表色系の色信号値に変換する際に、該所定の表色系における第1の色域内の色信号値に対して非線形演算を行うことによって第2の色域内の色信号値を算出する色処理方法であって、
前記第1の色域と前記第2の色域との対応に基づいて標本色を設定する標本色設定ステップと、
該設定された標本色に基づいて、前記非線形演算における係数を設定する係数設定ステップと、
該設定された係数に基づき前記非線形演算を行う演算ステップと、
該演算結果を評価する評価ステップと、を有し、
前記評価ステップにおいて前記非線形演算結果が適切でないと判定された場合に、前記標本色設定ステップを再度実行し、
前記評価ステップにおいて前記非線形演算結果が適切であると判定された場合に、前記係数を決定する
ことを特徴とする色処理方法。
【請求項２】
前記非線形演算は、区分的多項式を基底関数とする多重総和演算であることを特徴とする請求項１記載の色処理方法。
【請求項３】
前記基底関数は、スプライン関数であることを特徴とする請求項２記載の色処理方法。
【請求項４】
前記基底関数は、B-Spline、Rational B-Spline、Non Uniform Rational B-Spline、Bezier、Rational Bezierのいずれかであることを特徴とする請求項２記載の色処理方法。
【請求項５】
前記標本色設定ステップにおいては前記標本色として、前記第1の色域を包含するように入力値を設定し、該入力値に対して前記第2の色域内の出力値を設定することを特徴とする請求項２乃至４のいずれかに記載の色処理方法。
【請求項６】
前記係数設定ステップにおいては、
前記標本色設定ステップの実行が初回である場合に、前記標本色の出力値を前記係数として設定する第1の係数設定ステップと、
前記標本色設定ステップの実行が二回め以降である場合に、前記標本色および前記基底関数に基づいて前記係数を算出する第2の係数設定ステップと、
を有することを特徴とする請求項５記載の色処理方法。
【請求項７】
前記演算ステップにおいては、前記第1の色域内にある所定色に対して、前記係数設定ステップで設定された係数に基づく前記非線形演算を行うことによって、第3の色域を生成することを特徴とする請求項１乃至６のいずれかに記載の色処理方法。
【請求項８】
前記評価ステップにおいては、前記第3の色域を前記第2の色域と比較することによって、前記演算ステップにおける演算結果を評価することを特徴とする請求項７記載の色処理方法。
【請求項９】
前記評価ステップにおいては、前記第3の色域と前記第2の色域における明度差、彩度差、色相差、色差、階調のいずれか、或いはその2つ以上の組み合わせを、前記演算結果の評価値として算出することを特徴とする請求項８記載の色処理方法。
【請求項１０】
前記係数は、前記第2の表色系の次元に対応した個数であることを特徴とする請求項１乃至９のいずれかに記載の色処理方法。
【請求項１１】
前記所定の表色系はlch表色系であることを特徴とする請求項１乃至１０のいずれかに記載の色処理方法。
【請求項１２】
第1の表色系で表現される色信号値を所定の表色系を介して第2の表色系の色信号値に変換する際に、該所定の表色系における第1の色域内の色信号値に対して非線形演算を行うことによって第2の色域内の色信号値を算出する色処理装置であって、
前記第1の色域と前記第2の色域との対応に基づいて標本色を設定する標本色設定手段と、
該設定された標本色に基づいて、前記非線形演算における係数を設定する係数設定手段と、
該設定された係数に基づき前記非線形演算を行う演算手段と、
該演算結果を評価する評価手段と、を有し、
前記評価手段で前記非線形演算結果が適切でないと判定された場合に、前記標本色設定手段により再度、標本色を設定し、
前記評価手段で前記非線形演算結果が適切であると判定された場合に、前記係数を決定する
ことを特徴とする色処理装置。
【請求項１３】
前記非線形演算は、区分的多項式を基底関数とする多重総和演算であることを特徴とする請求項１２記載の色処理装置。
【請求項１４】
前記基底関数は、スプライン関数であることを特徴とする請求項１３記載の色処理装置。
【請求項１５】
情報処理装置上で実行されることによって、該情報処理装置上において請求項１乃至請求項１１のいずれかに記載の色処理方法を実現することを特徴とするプログラム。
【請求項１６】
請求項１５記載のプログラムが記録されたことを特徴とするコンピュータ可読の記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は色処理装置およびその方法に関し、特に、第1の表色系で表現される色信号値を所定の表色系を介して第2の表色系の色信号値に変換する色処理装置およびその方法に関する。
【背景技術】
【０００２】
近年、カラー画像を扱うデバイスの普及により、同じカラー画像を異なるデバイスで扱う機会が増加している。例えば、ディジタルカメラで撮影した画像の出力先としてモニタやプリンタが考えられる。しかし、デバイス毎に色再現が可能な範囲(以下、色域という)が異なるため、同じ画像であってもモニタで表示される色とプリンタで出力される色が異なるという問題がある。そこで、異なるデバイス間での色域の差を吸収し、可能な限り同等の色再現を実現するためのCMS(Color Management System)が重要になっている。
【０００３】
一般的なCMSは、デバイス非依存の色空間(XYZ,CIELAB等)であるPCS(Profile Connection Space)を共通色空間とする変換システムとして構成される。デバイス依存の色空間(RGB,CMYK等)とPCSとの相互変換には、変換式あるいは変換テーブル(LUT：Look Up Table)が記述されたプロファイルが用いられる。
【０００４】
ここで、CMSにおける変換処理についてより詳細に説明すると、まず、入力デバイスに対応したプロファイル(以下、Srcプロファイルという)を用いて入力デバイス依存の色空間をPCSに変換する。次に、PCS上で入力デバイスの色域を出力デバイスの色域に変換する。そして、出力デバイスに対応したプロファイル(以下、Dstプロファイルという)でPCSから出力デバイス依存の色空間に変換する。以上のような処理を実行することで、入力デバイスの色域と出力デバイスの色域の差が吸収される。
【０００５】
このようなCMSで用いられるプロファイルとしては、例えば、モニタ等の加法混色で表現するデバイスの場合、マトリクス演算とガンマ演算の係数を記述したプロファイルが主に用いられる。一方、印刷機器等の減法混色で表現されるデバイスの場合、一般にデバイス色空間とPCSとの関係が非常に複雑であるので、その関係をより高精度に表現するためにLUTを記述したプロファイルが用いられる。一般的なLUTは、色空間において格子状に値を持つものとして記述されているため、LUTに表現されていない色に関しては補間演算によって色を算出する。
【０００６】
LUTに対する補間演算には、立方体補間や四面体補間といった線形補間が広く用いられている。図13に示すように、立方体補間は算出する色を囲むLUT上の8点(P1,P2,P3,P4,P5,P6,P7,P8)の値から色を算出する方法である。また、四面体補間は立方体補間で用いる8点で構成される立方体を6分割して得られる四面体を用いて、4点の値から色を算出する方法である。例えば四面体補間の場合、(P1,P3,P4,P8)で構成される四面体に属する点Pの値は次式で得られる。ここで、DL,Da,Dbは、点Pを囲む立方体において、点Pの位置を示す正規化した各軸方向の距離である。
【０００７】
P = P1 + DL・(P8-P1) + Da・(P3-P1) + Db・(P4-P1)
しかしながら、LUTの格子間隔が粗い場合に線形補間を用いると、立方体や四面体で囲まれた局所的な領域から値を算出するために、色算出精度が低下する。また、立方体や四面体の表面を境界として線形補間が切り替わることに起因して、値が急峻に変化して滑らかさが失われ、再現画像に擬似輪郭が現れることがある。
【０００８】
このような問題を解決する手法として、非線型演算による色算出法が提案されている(例えば、特許文献１参照)。このような非線形演算による手法によれば、複数の代表色から色を算出する際に、色の変化の傾向を自然に反映して滑らかな変化で色を算出するため、少ない代表色でも精度良く色を算出することが可能である。
【特許文献１】特開2003-416614公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
一般に、色を算出する際に、人間の視覚的に良好で好ましい色再現を実現することを考慮すると、実際の色に忠実な色再現よりも人間の記憶に基づいた色再現のほうが好まれる傾向がある。人間の記憶に基づいた色(以下、記憶色という)の例としては、肌色や空の色などがある。このような記憶色の色再現は、忠実な色再現よりも非常に高度な色再現が要求される。例えば、肌色のようなグレイ近辺の色の色相や彩度の変化に対して人間の視覚は非常に鋭敏であるため、高精度な色再現が要求される。他方、空の色のような高彩度の色に対して人間の視覚はやや鈍く、デバイスによって色域が大きく異なるため、色の算出精度よりも元の色の彩度や階調性を保つことが求められる。すなわち、高精度な色再現と、元の色の彩度や階調性を維持した色再現のいずれを優先すべきかを、人間の視覚に応じて制御することが要求される。
【００１０】
しかしながら、上記従来例で示した非線型演算による色算出方法によれば、ある色空間に対して一度の非線型演算で色を算出するため、上記のように人間の視覚に応じた高度な色再現を実現することは難しいという問題があった。
【００１１】
本発明は上述した問題を解決するためになされたものであり、人間の視覚的に好ましい色再現を実現する色処理装置およびその方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するための一手段として、本発明は以下の構成を備える。
【００１３】
すなわち、第1の表色系で表現される色信号値を所定の表色系を介して第2の表色系の色信号値に変換する際に、該所定の表色系における第1の色域内の色信号値に対して非線形演算を行うことによって第2の色域内の色信号値を算出する色処理方法であって、前記第1の色域と前記第2の色域との対応に基づいて標本色を設定する標本色設定ステップと、該設定された標本色に基づいて、前記非線形演算における係数を設定する係数設定ステップと、該設定された係数に基づき前記非線形演算を行う演算ステップと、該演算結果を評価する評価ステップと、を有し、前記評価ステップにおいて前記非線形演算結果が適切でないと判定された場合に、前記標本色設定ステップを再度実行し、前記評価ステップにおいて前記非線形演算結果が適切であると判定された場合に、前記係数を決定することを特徴とする。
【００１４】
例えば、前記非線形演算は、区分的多項式を基底関数とする多重総和演算であることを特徴とする。
【００１５】
例えば、前記基底関数は、スプライン関数であることを特徴とする。
【発明の効果】
【００１６】
以上の構成により本発明によれば、非線形演算による色変換結果を所望の色再現に近づけることが可能となり、人間の視覚的に好ましい色再現を実現することができる。
【発明を実施するための最良の形態】
【００１７】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。
【００１８】
＜第1実施形態＞
●装置構成
図1は、本実施形態に係る色処理装置の構成を示すブロック図である。同図において、101はCPU、102はメインメモリ、103はSCSIインタフェース、104はネットワークインタフェース、105はHDDである。また、106はグラフィックアクセラレータ、107はカラーモニタ、108はUSBコントローラ、109はカラープリンタ、110はキーボード/マウスコントローラ、111はキーボード、112はマウスである。そして、113はローカルエリアネットワーク、114はPCIバスである。
【００１９】
以下、上記構成において、プロファイルを読み込み、LUTから色を算出して画像の色を変換する処理について、詳細に説明する。なお本実施形態では、色変換アプリケーションを用いて画像の色を変換する。
【００２０】
本実施形態の色処理装置に対してユーザが色変換アプリケーションの起動を指示すると、ユーザの指示を受けたOSプログラムはHDD105に格納されている色変換アプリケーションを起動し、メインメモリ102に展開する。色変換アプリケーションが起動されると図2に示すウィンドウがカラーモニタ107上に表示される。図2において、201は変換する画像ファイルの入力を指示するためのボタンである。202はSrcプロファイルの入力を指示するためのボタンであり、203はDstプロファイルの入力を指示するためのボタンである。204は色変換後の画像の出力を指示するためのボタンである。また、205は画像の色変換の様子を表示するための表示領域であり、206は画像の色変換を指示するためのボタン、207はアプリケーションの終了を指示するためのボタンである。
【００２１】
以下、色変換アプリケーションの動作について、図3のフローチャートを用いて説明する。まずステップS401において、色変換の対象となる画像ファイルを読み込む。色変換アプリケーションにおいて、ユーザが画像ファイル入力ボタン201により画像の読み込みを指示すると、色変換アプリケーションの指示に従って、指定された画像がHDD105もしくはネットワークI/F104経由で読み込まれる。読み込まれた画像は、205aの表示領域に表示される。
【００２２】
次にステップS402において、画像を表現するデバイス依存色(RGB)をPCS(ここではL*C*hとする)に変換するLUTを持つSrcプロファイルを読み込む。色変換アプリケーションにおいて、ユーザがSrcプロファイル入力ボタン202よりSrcプロファイルの読み込みを指示すると、指定されたプロファイルがHDD105からもしくはネットワークI/F104経由で外部から読み込まれる。ここで、SrcプロファイルのLUTがR,G,B各5スライス、計125個のRGB値とL*C*h値との組を持つとすると、該LUTは図4Aに示すようなデータ構造として構成される。
【００２３】
次にステップS403において、PCSから画像を表現するデバイス依存色(RGB)に変換するLUTを持つDstプロファイルを読み込む。色変換アプリケーションにおいて、ユーザがDstプロファイル入力ボタン203よりDstプロファイルの読み込みを指示すると、指定されたプロファイルがHDD105からもしくはネットワークI/F104経由で外部から読み込まれる。ここで、DstプロファイルのLUTはL*C*h値とRGB値との組を持ち、図4Bに示すようなデータ構造で構成される。
【００２４】
以上の処理に続き、色変換アプリケーションにおいて、ユーザは変換実行ボタン206を押下することによって、読み込んだ画像の色変換を実行する。すると、まずステップS404において、色変換で用いるスプライン係数を算出する。なお、スプライン係数算出の詳細については後述する。そしてステップS405では、ステップS404で求めたスプライン係数を用いて、入力された画像の色をスプイン関数により変換する。なお、この変換方法の詳細については後述する。そしてステップS406において、変換後の画像が205bの表示領域にプレビューされる。
【００２５】
その後、色変換アプリケーションにおいて、ユーザが画像ファイル出力ボタン204より変換後の画像を出力する。そして、終了ボタン207によりアプリケーション終了を指示すると全てのデータ、並びにアプリケーションがメインメモリ102から消去され、アプリケーションを終了する。
【００２６】
●スプライン係数の算出処理
以下、上記ステップS404におけるスプライン係数の算出処理について、図5のフローチャートを用いて詳細に説明する。
【００２７】
具体的な処理を説明するに先立って、まず、色算出で用いるスプライン関数について説明する。ここで、入力値(lo,co,ho)に対する出力値を(Lo,Co,Ho)とすると、スプライン関数を用いて表される入力値と出力値の関係は次式のようになる。
【００２８】
2007060422.tif 000003
【００２９】
上式において、ＢiおよびＢjは明度及び彩度に関する非周期的な基底関数、Ｂkcは色相に関する周期的な基底関数である。従って、入力値(lo,co,ho)は図6に示すような円筒座標で表される。またα,β,γは、明度、彩度、色相それぞれの次元のスプライン係数であり、i,j,kは明度、彩度、色相それぞれの次元における基底関数番号である。本実施形態では、このスプライン係数α,β,γを適切に算出することによって、スプライン関数による最適な色変換を実現することを特徴とする。
【００３０】
以下、図5に示すフローチャートを説明する。まずステップS601において、図4A,図4Bのデータ構造で表されるLUTより、SrcプロファイルのL*C*h値とDstプロファイルのL*C*h値との対応関係を、全ての組について取得する。ここで、以降の説明においてL*C*h値は各次元それぞれ5つ、計125個のデータであるとし、i番目のデータに関して、入力色域のL*C*h値をli,ci,hi、出力色域のL*C*h値をLi,Ci,Hi、と表すこととする。ここで入力色域とは入力デバイスにおいて再現可能な色域に相当し、同様に出力色域とは出力デバイスにおいて再現可能な色域に相当する。
【００３１】
ステップS602では、入力色域を囲むようにして標本点の入力値を設定し、上記LUTから標本点の出力値を得る。ここで、標本点は図7Aおよび図7Bに示すように、入力色域の各次元(本実施形態では明度、彩度、色相成分)に対して、それぞれ任意の数だけ設定することができる。以下の説明では、明度、彩度、色相の各成分に関する標本点数はそれぞれ5点とする。なお、標本点の設定方法の詳細については後述する。
【００３２】
次にステップS603において、適当となるように節点を決定し、その節点に基づいて基底関数を算出してメインメモリ102に記憶する。ここで節点の決定方法としては、予め節点数並びに座標を決めておいてもよいし、あるいは入力値の変化より節点を決定しても構わない。節点が定まった後の基底関数の算出には、一般的なDe Boor-Coxのアルゴリズムを用いる。例えば、基底関数が3位のB-Spline基底であるとすると、非周期B-Spline基底は4つの節点(q0,q1,q2,q3)に対して図8に示すようになる。また、周期B-Spline基底は5つの節点(q0,q1,q2,q3,q4、但しq0=q4)に対して図9に示すようになる。以下の説明では、非周期的な明度、彩度成分に関する節点数はそれぞれ4点、周期的な色相成分に関する節点数は6点とし、基底関数は3位のB-Spline基底とする。
【００３３】
ステップS604では、ループ回数を判定する。1回目の場合はステップS605に移行し、2回目以降の場合はステップS606に移行する。
【００３４】
ステップS605では、ステップS602或いは後述するステップS609で設定した標本点の出力値をスプライン係数とする。すなわち、i番目の標本点に対応するi番目のスプライン係数αi,βi,γiは、次式のようになる。
【００３５】
αi = Li
βi = Ci
γi = Hi
一方ステップS606では、ステップS603で算出した基底関数と、ステップS602或いは後述するステップS609で設定した標本点を用いて、スプライン係数を求める。すなわち、以下の行列方程式をL*成分、C*成分、h成分についてそれぞれ解く。
【００３６】
Ｙ = ＭＣ
ここで、Ｍは基底関数と標本点の入力値から生成される行列、Ｃはスプライン係数を表すベクトル、Ｙは標本点の出力値を表すベクトルである。
【００３７】
以下、上記方程式によるスプライン係数α,β,γの算出方法について詳細に説明する。
【００３８】
まず、行列Ｍは125×125の行列であり、s行t列成分ｍstを次のように設定する。
【００３９】
ｍst = Ｂi(lu)Ｂj(cv)Ｂk(hw)
s = 25u + 5v + w
t = 25i + 5j + k
0≦i≦4，0≦j≦4，0≦k≦4，0≦u≦4，0≦ｖ≦4，0≦w≦4
従って、s番目の出力Lsを上記スプライン関数を用いて表すと次のようになる。
【００４０】
2007060422.tif 000004
【００４１】
これを行列式に変換すると、次のようになる。
【００４２】
Ｌ = Ｍαvector
そして、この行列式をLU分解で解くことによって、スプライン係数のベクトルαvectorが以下のように算出される。
【００４３】
αvector = [α0,α1,・・・,α124]
同様に、s番目の出力Csを上記スプライン関数を用いて表すと次のようになる。
【００４４】
2007060422.tif 000005
【００４５】
これを行列式に変換すると、次のようになる。
【００４６】
Ｃ = Ｍβvector
そして、この行列式をLU分解で解くことによって、スプライン係数のベクトルβvectorが以下のように算出される。
【００４７】
βvector = [β0,β1,・・・,β124]
さらに、s番目の出力hsを上記スプライン関数を用いて表すと次のようになる。
【００４８】
2007060422.tif 000006
【００４９】
これを行列式に変換すると、次のようになる。
【００５０】
ｈ = Ｍγvector
そして、この行列式をLU分解で解くことによって、スプライン係数のベクトルγvectorが以下のように算出される。
【００５１】
γvector = [γ0,γ1,・・・,γ124]
なお本実施形態においては、ステップS604における上記スプライン係数算出方法の選択条件をループ回数として説明したが、他の選択条件やユーザが任意に係数算出方法を選択できるようにしても良い。また、ステップS605およびステップS606の方法でスプライン係数を決定する例を説明したが、色算出において適当なスプライン関数が得られる手法であれば、他の係数決定手法を用いてもかまわない。
【００５２】
以上のようにステップS605或いはステップS606においてスプライン係数が算出されると、次にステップS607に進む。ステップS607では、決定されたスプライン係数を用いて、該スプライン係数が最終的な色変換用として十分であるか否かを判断するために中間色域を生成する。ここで中間色域は、図4Aで示したSrcプロファイルに対応した入力値125点を上記スプライン関数に代入することによって算出される。すなわち、入力色域におけるL*C*h値を(l,c,h)、それに対応する中間色域におけるL*C*h値を(L',C',H')とすると、入力色域と中間色域の関係は次式に示すようになる。
【００５３】
2007060422.tif 000007
【００５４】
次にステップS608においては、中間色域と出力色域との比較による条件判定を行う。ここでは、代表的な複数の同じ入力値に対するそれぞれの色域の値を求め、その平均色差ΔEabを判定条件とする。すなわち、上記ステップS601において取得した入力色域と出力色域との対応関係から、中間色域を算出したのと同じ入力値(l,c,h)に対応する出力色域のL*C*h値(L,C,H)を中間色域におけるL*C*h値(L',C',H')と比較する。これにより、平均色差ΔEabが以下のように求められる。
【００５５】
2007060422.tif 000008
【００５６】
但し、a=C・cos(πH/180)，b=C・sin(πH/180)
そして、ΔEabが所定の閾値Eth以上の場合はステップS609に移行し、ΔEabが閾値Ethよりも小さい場合はステップS610に移行する。なお、ステップS608における判定条件としては他の条件を用いてもかまわない。例えば色差のほか、明度差や彩度差、色相差、階調のいずれか、或いはその2つ以上の組み合わせを適用してもよい。
【００５７】
ステップS609では、ステップS607で生成した中間色域を2回目以降のスプライン係数算出時における入力色域として設定した後、ステップS602に戻って上記処理を繰り返す。これによりすなわち、新たな入力色域に対する標本点が設定され、新たなスプライン係数が算出される。
【００５８】
一方、ステップS610では、ステップS605或いはステップS606で算出したスプライン係数をメインメモリ102に記憶する。
【００５９】
以上説明したように本実施形態では図5に示すように、中間色域と出力色域との平均色差ΔEabが所定の閾値Ethよりも小さくなった時点で、スプライン係数を決定する。すなわち、中間色域が出力色域に対して、所望する程度(所定の閾値Ethとして示される)に近づくようなスプライン係数が設定される。
【００６０】
なお、詳細は後述するが本実施形態のスプライン関数を用いた色変換においては、ステップS605で算出されるスプライン係数を利用することによって、色の階調性が優先される。一方、ステップS606で算出されるスプライン係数を利用することによって、高精度な色再現が優先される。
【００６１】
●標本点設定処理
以下、ステップS602における標本点の設定方法について、図10のフローチャートを用いて詳細に説明する。
【００６２】
まずステップS1001において、入力色域の最大彩度の値を求める。次にステップS1002において、ステップS1001で求めた最大彩度を考慮して標本点が設定される。すなわち、図7Aや図7Bに示されるように、入力色域を囲むように任意数の標本点が設定される。
【００６３】
ここで標本点数に関しては、数を増やすと色算出の基準となる点が増加するため色算出の精度が向上する。反対に、数を減らすと非線型の関数によって算出される色が相対的に増加して滑らかに変化するため階調性が向上する。図7Aと図7Bは、同一入力色域について標本点数が異なる例を示しており、図7Aの方が標本点数が少ないため階調性を優先した色変換を行う場合に適しており、図7Bの方が標本点数が多いため色精度を優先した色変換を行う場合に適している。なお、設定する標本点数については、予め設定されているものとする。
【００６４】
そしてステップS1003において、現在注目する標本点が入力色域の外部にある場合はステップS1004に移行し、入力色域の内部にある場合はステップS1005に移行する。ステップS1004では、標本点を色差最小となる入力色域の表面にクリッピングした後、ステップS1005に移行する。
【００６５】
ステップS1005においては、上記ステップS601で取得したSrcプロファイルとDstプロファイルのLUTにおける対応関係に基づき、四面体補間などの適当な補間法を用いて標本点の出力値を算出する。
【００６６】
そしてステップS1006において、全ての標本点についての出力値が算出されたか否かを判定する。全ての出力値が算出されている場合は処理を終了し、算出されていない場合はステップS1003へ戻る。
【００６７】
●スプライン関数による色変換
以下、上記ステップS405におけるスプライン関数を用いた色変換、すなわち図5のフローチャートに従って決定されたスプライン係数値を用いた色変換処理について、図11のフローチャートを用いて詳細に説明する。
【００６８】
まずステップS1101において、入力された画像より、あるピクセルのRGB値を読み込む。そしてステップS1102ではSrcプロファイルを用いて、読み込んだRGB値をPCS(L*C*h値)に変換する。そしてステップS1103において、入力されたL*C*h値がステップS602で設定した標本点に囲まれる領域(以下、入力空間とする)内に存在するか否かを判定する。存在する場合はステップS1105へ移行するが、存在しない場合はステップS1104へ移行し、入力されたL*C*h値を色差最小となる入力空間の表面にクリッピングした後、ステップS1105へ移行する。ステップS1105では、入力されたL*C*hをスプライン関数に代入して色を変換する。ここで、入力値を(l,c,h)、出力値を(L,C,H)とすると、スプライン関数は次式のようになる。
【００６９】
2007060422.tif 000009
【００７０】
そしてステップS1106ではDstプロファイルを用いて、ステップS1105で算出されたL*C*h値をRGB値に変換する。次にステップS1107において、入力された画像の全ピクセルについて、色変換が施されたか否かを確認する。全ピクセルの色変換が終了していれば処理を終了し、色変換が終了していなければステップS1101に移行する。
【００７１】
ここで図12A,13Bに、本実施形態のスプライン関数を用いた色変換結果の一例を示す。図12Aは、図5のステップS606で算出されたスプライン係数を利用した場合であり、スプライン関数は設定した標本点を通過するため、精度良く色を算出することが可能である。一方、図12Bは図5のステップS605で算出されたスプライン係数を利用した場合であり、スプライン関数は標本点の変化の傾向を近似する関数となるため、標本点を補間するスプライン関数よりも滑らかな曲線となり、色の階調性が向上する。
【００７２】
●本実施形態の効果
以上説明したように本実施形態によれば、標本点やスプライン係数などの色変換パラメータを変化させた非線型演算を、所望の色再現を得るための条件を満たすまで繰り返し適用することによって、最終的な色変換パラメータを決定し、色を算出することが可能となる。その繰り返し演算は、一回目に非線型演算から算出された色が、例えば色差ΔE≦10といったの所望の条件を満たすかどうかを判定し、条件を満たさない場合は算出された色に対して二回目の非線型演算を適用する、というように演算を繰り返すことで実現される。このように、非線型演算の繰り返し毎に色変換パラメータを適切に設定することによって、グレイ付近の色再現精度と高彩度の色の階調性を両立する等、複雑な色再現を実現することが可能となり、人間の視覚的に良好な好ましい色再現を得ることができる。
【００７３】
なお、本実施形態では、基底関数としてB-Spline を用いる例を説明した。しかしながら、基底関数としてはRational B-Spline、Non Uniform Rational B-Spline、Bezier、Rational Bezier等、区分的多項式を用いるあらゆる関数を用いることが可能である。基底関数の局所性が存在するとより望ましいことから、本実施形態では最も代表的なB-Splineを用いる例を示した。
【００７４】
また、本実施形態では色を算出する非線型演算を実行する色空間としてL*C*h色空間を用いる例を示した。しかしながら、用いる色空間に何ら制限はなく、CMYK色空間、L*a*b*色空間、JCh色空間、XYZ色空間、xy色空間等を用いることも可能である。さらに、本発明はインク色分解などにも適用可能であり、CMYKに淡シアンならびに淡マゼンタを加えた6次元色空間等も用いることができる。また、色変換の対象となる色空間と、色空間後の色空間は、本実施形態におけるRGB色空間のように同一であっても良いし、異なってもよい。例えば、RGB表色系の画像を入力して色変換した後、CMY表色系の画像を出力してもよい。
【００７５】
なお、本発明は変換色の基本的算出方法を実施し、且つ、その算出方法の応用例を示したものである。従って、上記実施形態のような画像の色変換に限らず、上記特許文献１に示されている色修正や色域写像、キャリブレーション等の画像処理に関する様々な用途に応用可能である。
【００７６】
＜他の実施形態＞
以上、実施形態例を詳述したが、本発明は例えば、システム、装置、方法、プログラム若しくは記憶媒体(記録媒体)等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００７７】
尚本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。なお、この場合のプログラムとは、実施形態において図に示したフローチャートに対応したプログラムである。
【００７８】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００７９】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
【００８０】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD-ROM、CD-R、CD-RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD-ROM，DVD-R)などがある。
【００８１】
プログラムの供給方法としては、以下に示す方法も可能である。すなわち、クライアントコンピュータのブラウザからインターネットのホームページに接続し、そこから本発明のコンピュータプログラムそのもの(又は圧縮され自動インストール機能を含むファイル)をハードディスク等の記録媒体にダウンロードする。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【００８２】
また、本発明のプログラムを暗号化してCD-ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせることも可能である。すなわち該ユーザは、その鍵情報を使用することによって暗号化されたプログラムを実行し、コンピュータにインストールさせることができる。
【００８３】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００８４】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、実行されることによっても、前述した実施形態の機能が実現される。すなわち、該プログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行うことが可能である。
【図面の簡単な説明】
【００８５】
【図１】本発明に係る一実施形態における色処理装置の構成を示すブロック図である。
【図２】色処理アプリケーションのユーザインタフェース例を示す図である。
【図３】色算出アプリケーション動作を示すフローチャートである。
【図４Ａ】SrcプロファイルLUTのフォーマット例を示す図である。
【図４Ｂ】DstプロファイルLUTのフォーマット例を示す図である。
【図５】スプライン係数の算出方法を示すフローチャートである。
【図６】入力値の円筒座標系を表す図である。
【図７Ａ】標本点の設定例を示す図である。
【図７Ｂ】標本点の設定例を示す図である。
【図８】非周期的なスプライン基底関数を表す図である。
【図９】周期的なスプライン基底関数を表す図である。
【図１０】標本点の設定処理を示すフローチャートである。
【図１１】スプライン関数を用いた色算出演算を示すフローチャートである。
【図１２Ａ】色再現性重視のスプライン関数例を示す図である。
【図１２Ｂ】階調重視のスプライン関数例を示す図である。
【図１３】一般的な四面体補間における四面体の生成方法を示す図である。
【図１】
2007060422.tif 000010
【図２】
2007060422.tif 000011
【図３】
2007060422.tif 000012
【図４Ａ】
2007060422.tif 000013
【図４Ｂ】
2007060422.tif 000014
【図５】
2007060422.tif 000015
【図６】
2007060422.tif 000016
【図７Ａ】
2007060422.tif 000017
【図７Ｂ】
2007060422.tif 000018
【図８】
2007060422.tif 000019
【図９】
2007060422.tif 000020
【図１０】
2007060422.tif 000021
【図１１】
2007060422.tif 000022
【図１２Ａ】
2007060422.tif 000023
【図１２Ｂ】
2007060422.tif 000024
【図１３】
2007060422.tif 000025