(57)【要約】【課題】  写像を行う上で正確に色域を求めることは非常に重要であり、写像方法を選択するに当たってはデバイスの特性を解析することが必要になるが、その解析において正確な色域を得ることが求められる。【解決手段】  RGB色空間上の色を指定するRGB値と、印刷時の再現色を表すL*a*b*値（測色値）の組を示す色分布データを読み込み(S302)、色分布データを用いて、色域算出用のBスプライン面の係数および基底関数を算出し(S303)、Bスプライン面を用いて色域データを作成する(S304)。【選択図】    図3
2006211246.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置により、所定の表色系の色域を算出する色処理方法であって、
区分的多項式を基底関数とする二重総和演算を設定し、
第一の表色系の複数の色信号値と、それら色信号値に対する測色結果である第二の表色系の複数の色信号値との組み合わせを示すデータに基づき前記二重総和演算の係数を求め、
前記二重総和演算を用いて、前記第一の表色系の色域に対応する前記第二の表色系の色域を算出することを特徴とする色処理方法。
【請求項２】
前記色域の算出は、前記第一の表色系の色域境界に対応する前記第二の表色系の色域境界を算出することを特徴とする請求項1に記載された色処理方法。
【請求項３】
前記色域の算出は、前記第一の表色系の色域境界に位置する複数点を、前記第二の表色系に変換した複数点を用いた色域表現として前記色域を算出することを特徴とする請求項1に記載された色処理方法。
【請求項４】
前記色域表現は三角パッチ表現またはポリゴン表現であることを特徴とする請求項3に記載された色処理方法。
【請求項５】
さらに、前記色域の境界に対応する擬似三次元表示用のオブジェクトを生成することを特徴とする請求項1から請求項4の何れかに記載された色処理方法。
【請求項６】
画像処理装置を制御して、請求項1から請求項5の何れかに記載された色処理を実現することを特徴とするプログラム。
【請求項７】
請求項6に記載されたプログラムが記録されたことを特徴とする記録媒体。
【請求項８】
所定の表色系の色域を算出する画像処理装置であって、
区分的多項式を基底関数とする二重総和演算を設定する設定手段と、
第一の表色系の複数の色信号値と、それら色信号値に対する測色結果である第二の表色系の複数の色信号値との組み合わせを示すデータに基づき前記二重総和演算の係数を求める演算手段と、
前記二重総和演算を用いて、前記第一の表色系の色域に対する前記第二の表色系の色域を算出する算出手段とを有することを特徴とする色処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は色処理装置およびその方法に関し、例えば、色域の算出に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータやワークステーションの普及に伴い、デスクトップパブリッシング(DTP)やディジタル画像管理が広く一般に利用されるようになった。これに伴い、コンピュータによってモニタ上に表現される色を、色材を用いて再現する色再現技術が重要となった。例えば、DTP用のカラーモニタとカラープリンタを有するコンピュータシステムにおいては、モニタ上においてカラー画像の作成・編集・加工などを行い、カラープリンタでカラー画像を出力する。その際、DTPシステムのユーザは、モニタ上のカラー画像（モニタ画像と呼ぶ）の色とプリンタの出力画像（プリント画像と呼ぶ）の色が知覚的に一致することを強く望む。
【０００３】
しかし、色再現技術において、モニタ画像とプリント画像において、このような知覚上の一致を図るには困難が伴う。この困難さは以下の理由による。
【０００４】
CRTのカラーモニタは、蛍光体を用いて、特定波長の光を発光することでカラー画像を表現する。他方、カラープリンタは、インクなどを用いて特定波長の光を吸収し、残りの反射光によってカラー画像を表現する。このような画像表示形態の違いによって、両者は、その色域が大きく異なる。さらに、カラーモニタであっても液晶、電子銃方式のCRT、プラズマ方式では、その色域が異なる。勿論、カラープリンタも、紙質の相違、インクの使用量の相違などにより色域が異なる。このため、カラーモニタ上の画像とカラープリンタの出力画像、あるいは、複数のプリンタ機種、複数の紙質により出力したカラープリンタの出力画像相互において、これらの画像の色を測色的な意味において完全に一致させることは不可能である。従って、各表示・出力媒体におけるカラー画像を人間が知覚するとき、各画像間に大きな違いが知覚されることになる。
【０００５】
そこで、色域が異なる表示・出力媒体の間において、カラー画像の知覚上の相違を吸収し、カラー画像の知覚的なマッチングを図るガマットマッピング技術が存在する。ガマットマッピング技術は、均等表色系を用いて、ある色域を別の色域内へ写像するものである。ガマットマッピング技術の一例としては、無彩色軸上の一点へ向けて色域を圧縮する方式、明度-彩度次元でアフィン変換などの線形写像を施す方式などが知られている。さらに、特開2001-94799公報のように、一から三次元の写像を複数段に亘って施す技術、あるいは、特開2002-33929公報のように、色の変化としての階調を曲線表現に帰着したガマットマッピングを実現する技術がある。
【０００６】
これらの写像をより正確に行うためには、より正確にデバイス色域を求めることが非常に重要である。あるいは、このような写像方法を選択するに当たり、デバイスの特性を解析することが必要になるが、この解析においても、より正確に色域を求めることが必要である。
【０００７】
そこで、出願人は、より正確にデバイス色域を求める技術として、デバイス色をXYZやL*a*b*等のデバイスに独立な色空間で表現したデバイス独立色の関係を三次元的に取得し、色域を算出する技術を提案している。しかし、色域という二次元的な情報を算出するために、デバイス色に対するデバイス独立色の関係を三次元的に取得する必要があり、本来必要な情報に対して冗長な情報を取得することになる。この冗長さは、色域を算出する際の演算負荷および必要な記憶領域を増大させ、演算に時間がかかる問題がある。
【０００８】
【特許文献１】特開2001-94799公報
【特許文献２】特開2002-33929公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、少ない色分布情報に基づき、色域を正確に算出することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１１】
本発明は、所定の表色系の色域を算出する際に、区分的多項式を基底関数とする二重総和演算を設定し、第一の表色系の複数の色信号値と、それら色信号値に対する測色結果である第二の表色系の複数の色信号値との組み合わせを示すデータに基づき前記二重総和演算の係数を求め、前記二重総和演算を用いて、前記第一の表色系の色域に対応する前記第二の表色系の色域を算出することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、少ない色分布情報に基づき、色域を正確に算出することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。
【実施例１】
【００１４】
［構成］
図1は実施例の色処理装置の構成例を示すブロック図である。
【００１５】
図1において、CPU 101は、ROMやRAMからなるメインメモリ102やハードディスクドライブ(HDD) 105に格納されたプログラムに従い、メインメモリ102をワークメモリとして、システムバス（およびPCIバス）114を介して後述する構成を制御して、後述する各種処理および制御を実行する。
【００１６】
SCSIなどの汎用パラレルインタフェイス(I/F) 103は、HDD 105とシステムバス114をインタフェイスする。グラフィックアクセラレータ106は、カラーモニタ107とシステムバス114をインタフェイスする。USBコントローラ108は、カラープリンタ109とシステムバス114をインタフェイスする。キーボード/マウスコントローラ110は、キーボード111やマウス112などの入力デバイスとシステムバス114をインタフェイスする。なお、SCSI I/F 103、キーボード/マウスコントローラ110などに代わりUSBコントローラ108やIEEE 1394などのシリアルバスインタフェイスによって、HDD 105、キーボード111およびマウス112とシステムバス114をインタフェイスしてもよい。ネットワークインタフェイス(I/F) 104は、ローカルエリアネットワーク(LAN) 113とシステムバスをインタフェイスする。
【００１７】
［色域の解析］
上記構成における、色分布データを用いて色域を算出し解析する一連の動作を説明する。
【００１８】
まず、ユーザの操作およびCPU 101の指令により、HDD 105に格納された色域解析アプリケーションが起動される。続いて、色域解析アプリケーションの処理に従いHDD 105に格納された初期プロファイルと初期編集色データが、CPU 101の指令に基づきSCSI I/F 103、システムバス114を経由して、メインメモリ102に転送される。そして、色域解析アプリケーションにより、図2に示す色解析ツールのユーザインタフェイスがカラーモニタ107に表示される。
【００１９】
図2に示すユーザインタフェイスには、色分布データの読み込みを指示するための分布データ読み込みボタン201、色分布データの記憶を指示するための色域記憶ボタン202、色域の三次元表示領域203、記憶した色域に対する操作を指示するための操作エリア204、色域解析アプリケーションの終了を指示する終了ボタン208がある。
【００２０】
操作エリア204には、記憶した色域を選択するためのリストボックス205、リストボックス205で選択した色域の三次元表示をオン/オフするためのチェックボックス206、リストボックス205で選択した色域をメインメモリ102の記憶領域から削除するための色域削除ボタン207がある。
【００２１】
ユーザが分布データ読み込みボタン201をマウス112などでクリックして（または押して）、色分布データの読み込みを指示すると、色域解析アプリケーションの処理に従い、色分布データが、CPU 101の指令に基づき、HDD 105からSCSI I/F 103、システムバス114を経由して、メインメモリ102に転送される。
【００２２】
色域解析アプリケーションは、メインメモリ102に格納された色分布データから色域を算出し、算出した色域を三次元表示領域203に擬似三次元表示する。ここで、ユーザが色域記憶ボタン202を押すと、擬似三次元表示された色域はメインメモリ102に記憶（退避）される。
【００２３】
ユーザは、リストボックス205を操作することで、メインメモリ102に記憶（退避）した色域の中から操作対象の色域を選択し、選択した色域の三次元表示をチェックボックス206で設定する。チェックボックス206がオンに設定された色域は、三次元表示領域203に表示中の他のオブジェクトに重畳して表示される。ユーザは、色域削除ボタン207を押すことで、リストボックス205で選択した色域を削除することができる。
【００２４】
また、ユーザが終了ボタン208を押すと、色域解析アプリケーションは、処理に使用した総てのデータの記憶領域やワーク領域を解放し、処理を終了する。
【００２５】
［色域解析アプリケーションの動作］
次に、色解析アプリケーション動作を説明する。図3は色解析アプリケーションの動作を説明する状態遷移図である。
【００２６】
まず、動作に必要な各種メモリ領域の確保など初期化を行い(S301)、色分布データをHDD 105から読み込み、メインメモリ102に記憶にする(S302)。
【００２７】
図4はメインメモリ102に保持される色分布データのデータ構造例を示す図で、データ構造の先頭には、一面当たりのデータ数（図4の例では25組）が配置され、次にB=0面の色分布データであるRGB色空間上の色を指定するRGB値と印刷時の再現色を表すL*a*b*値（測色値）の組（図4の例では25組）が配置され、続いて、B=255面、R=0面、R=255面、G=0面、G=255面の色分布データがそれぞれ配置される。
【００２８】
次に、メインメモリ102に記憶された色分布データを用いて、後述する処理により色域算出用のBスプライン面に対する係数および基底関数を算出し(S303)、後述する処理に従って、Bスプライン面を用いて色域データを作成してメインメモリ102に記憶し(S304)、後述する処理に従って、色域データから擬似三次元表示用の3Dオブジェクトデータを算出し(S305)、その後、ユーザの操作を待つ状態になる(S306)。
【００２９】
ユーザの操作待ち状態(S306)で、図2に示す色分布データ読み込みボタン201が押されると、読み込むべき色分布データファイルをユーザが指定するためのダイアログを表示し、色分布データファイルが指定されると、指定された色分布データファイルがオープン可能か否かを判定し、オープン可能であればその色分布データファイルを読み込んでメインメモリ102に記憶し、色分布データファイルのフォーマットが正しいか否かを判定する(S307)。そして、オープン可能かつ正しいフォーマットであればステップS303へ遷移するが、オープン不可または不正なフォーマットの場合は、その旨を表示してステップS306へ戻る。
【００３０】
また、図2に示す色域記憶ボタン202が押されると、メインメモリ102に記憶した色域の3Dオブジェクトデータをメインメモリ102（またはHDD 105）の所定領域に退避し(S308)、ステップS306へ戻る。
【００３１】
また、図2に示す色域選択リストボックス205が操作されると、選択された色域に対応する番号をメインメモリ102の所定領域に記憶し(S309)、ステップS306へ戻る。
【００３２】
また、図2に示すチェックボックス206が操作されると、メインメモリ102に記憶された選択色域の番号に対応する色域の3Dオブジェクトデータの表示をオンまたはオフに設定し(S310)、ステップS306へ戻る。
【００３３】
また、図2に示す色域削除ボタン207が押されると、メインメモリ102に記憶された選択色域の番号に対応する色域の3Dオブジェクトデータをメインメモリ102（またはHDD 105）から削除し(S311)、ステップS306へ戻る。
【００３４】
また、図2に示す三次元表示領域203内におけるマウス操作を検出すると、ユーザのマウス操作に応じて、三次元表示領域203に表示中の3Dオブジェクトのズームイン、ズームアウト、回転処理を行い(S312)、ステップS306へ戻る。
【００３５】
また、図2に示す終了ボタン208が押されると、メモリ解放などの終了動作を行った後、色解析アプリケーション動作を終了する。
【００３６】
［色域算出用のBスプライン面の設定(S303)］
次に、色域算出用のBスプライン面の係数および基底関数の算出処理(S303)を説明するが、以後の説明のために、予め色算出用のBスプライン面の式を説明する。色域算出用のBスプライン面は式(1)で定義される。
λ = ΣiΣjcλijN1i(x)N2j(y)
a = ΣiΣjcaijN1i(x)N2j(y)    …(1)
b = ΣiΣjcbijN1i(x)N2j(y)
ここで、x、yはR値、G値またはB値を代入
λ、a、bはL*a*b*値
N1はx軸方向での基底関数
N2はy軸方向での基底関数
cλij、caij、cbijは係数
N1、N2に付属するサフィクスi、jは
それぞれの軸に対する基底における基底関数番号
【００３７】
実施例1で算出する色域情報はWYGC面、WCBM面、WMRY面、BkRYG面、BkGCB面、BkRMB面の六面で構成され、一つのBスプライン面の式は、前記六面の内の何れか一面を表現する。
【００３８】
図5は色域算出用のBスプライン面の係数および基底関数の算出処理(S303)を説明するフローチャートである。
【００３９】
まず、指定された、図4に示すデータ構造で表される色分布データから、六面分のRGB値とL*a*b*値の対応関係を取得する(S501)。図4に示すデータ構造は、WYGC面（B=255面）、WCBM面（R=255面）、WMRY面（G=255面）、BkRYG面（B=0面）、BkGCB面（R=0面）、BkRMB面（G=0面）の各面に対するRGB値とL*a*b*値の対応関係が記録されるとともに、一面当りのデータ総数が記録されている。ただし、データの総数は整数の二乗に相当する数でなければならない。
【００４０】
また、各面におけるRGB値とL*a*b*値の値の記述は、R値/G値/B値の何れかを定数とし、その色に関しては記述を省いている。従って、WYGC面（B=255面）およびBkRYG面（B=0面）ではR値とG値、WCBM面（R=255面）およびBkGCB面（R=0面）ではG値とB値、WMRY面（G=255面）およびBkRMB面（G=0面）ではR値とB値を記述する。
【００４１】
次に、一面当りのデータ総数に応じて、各面のBスプライン面の基底関数を算出してメインメモリ102に記憶する(S502)。例えば、基底関数N1、N2が何れも三位のBスプライン基底であり、かつ、データ数が25であれば、何れも図6に示すようなξ0〜ξ3の四節点の基底関数になる。なお、図6はx軸の基底関数N1を示している。以下、基底関数は何れも四節点の三位のBスプライン基底として説明する。
【００４２】
次に、六面のうちの一面について、算出した基底関数と、図4に示す色分布データから取得した、RGB値とL*a*b*値の対応関係を示す分布データを用いて、Bスプライン面の各係数を算出する(S503)。この処理は、行列方程式f=MCを、λ*成分、a*成分、b*成分それぞれについてLU分解を用いて解き、各係数を算出することで行う。
【００４３】
ここで、WYGC面（B=255面）およびBkRYG面（B=0面）の算出にxにR値、yにG値を与え、WCBM面（R=255面）およびBkGCB面（R=0面）の算出にはxにG値、yにB値を与え、WMRY面（G=255面）およびBkRMB面（G=0面）の算出にはxにR値、yにG値を与える。つまり、以下に示すxi、yiには、各面の色分布データにおけるi番目のRGB値が、先述のRGBとxyの関係に基づいて与えられる。
【００４４】
また、以下では、各面の色分布データにおけるi番目のL*a*b*値をλi、ai、bi、対応するRGB値を、先述した各面ごとのRGB値とxy値との関係に従ってxi、yiとして説明する。
【００４５】
以下、上記方程式による係数算出について詳しく説明する。まず、行列Mのs行t列成分mstを次のように算出する。
mst = N1i(xs)N2j(ys)    …(2)
ここで、t = 5(i - 1) + j
i, jは1から5までの整数
【００４６】
なお、tとi、jの関係は、節点数と基底関数の位数によって変化する。
【００４７】
次に、係数cλij、caij、cbijの算出をそれぞれ説明する。まず、係数cλijを算出するために、次の行列方程式をLU分解を用いて解く。
fλ = [λ1, λ2, …, λ24, λ25]
cλ= [cλ11, cλ12, …, cλ15, cλ21,
…, cλ54, cλ55]                    …(3)
fλ= M・cλ
【００４８】
次に、係数caijを算出するため、次の行列方程式をLU分解を用いて解く。
fa = [a1, a2, …, a24, a25]
ca = [ca11, ca12, …, ca15, ca21,
…, ca54, ca55]                    …(4)
fa = M・ca
【００４９】
次に、係数cbijkを算出するため、次の行列方程式をLU分解を用いて解く。
fb = [b1, b2, …, b24, b25]
cb = [cb11, cb12, …, cb15, cb21,
…, cb54, cb55]                    …(5)
fb = M・cb
【００５０】
そして、算出した係数をメインメモリ102に記憶する(S504)。
【００５１】
次に、六面総てのB-スプライン係数値の算出が終了したか否かを判定し(S505)、未了であれば処理をステップS503へ戻し、終了であればステップS303の色域算出用のB-スプライン面の係数および基底関数の算出を終了する。
【００５２】
［色域の算出処理(S304)］
図7は色域の算出処理(S304)を示すフローチャートである。
【００５３】
まず、作業用のメモリ領域確保し、変数を初期化するなど、初期化動作を行い(S701)、然るべき順序に従い一つの三角パッチを選択し、三頂点のRGB値を取得する(S702)。ここで、三頂点のRGB値はRGB色空間における色域境界、すなわちRGB立方体表面に位置する。
【００５４】
次に、六つのB-スプライン面から最も適切なB-スプライン面を、下記の条件に基づき判定し、当該B-スプライン面の基底関数と係数値をメインメモリ102から取得する(S703)。
B=255ならばWYGC面
R=255ならばWCBM面
G=255ならばWMRY面
B=0ならばBkRYG面
R=0ならばBkGCB面
G=0ならばBkRMB面
【００５５】
下式を用いて三頂点のRGB値をL*a*b*値に変換する(S704)。
λ = ΣiΣjcλijN1i(x)N2j(y)
a = ΣiΣjcaijN1i(x)N2j(y)    …(6)
b = ΣiΣjcbijN1i(x)N2j(y)
ここで、x、yはR値、G値またはB値を代入
λ、a、bはL*a*b*値
N1はx軸方向での基底関数
N2はy軸方向での基底関数
cλij、caij、cbijは係数
N1、N2に付属するサフィクスi、jは
それぞれの軸に対する基底における基底関数番号
【００５６】
なお、x、yの値は、ステップS503で説明したx、yとRGB値との関係に従って与える。
【００５７】
次に、算出した三頂点のL*a*b*値を図8に示すデータ構造にしてメインメモリ102の所定アドレスに格納する(S705)。図8に示すデータ構造の先頭には三角パッチの総数が記述され、その後に三角パッチの総数分、各三角パッチの三頂点のL*a*b*値の組が色域データとして記述される。
【００５８】
次に、総ての三角パッチについて色域を算出したか否かを判断し(S706)、未了であればステップS702からS705の処理を繰り返す。また、色域の算出が終了した場合は、作業用メモリの解放などの終了動作を行う(S707)。
【００５９】
続く、ステップS305の3Dオブジェクトの生成処理では、メインメモリ102に格納された三角パッチの色域データを読み込み、3Dオブジェクトデータ用のポリゴンデータに変換する。これにより図2に示す三次元表示領域203に擬似三次元表示される色域は、図9に示すようにパッチ境界が認識できるものになる。
【００６０】
このように、第一の表色系(RGB)で表現される色信号値より第二の表色系(Lab)の色信号値を算出する際に、区分的多項式を基底関数とする二重総和演算を用いて第二の表色系の色信号値を算出する色域算出ステップと、第一の表色系で色域と定められる複数の色信号値と、第二の表色系の色信号値との関係を記した組から、二重総和演算の係数を求める係数算出ステップとを有することで、少ない色分布情報に基づき、変化のトレンドを反映する非線型演算を用いて正確かつ滑らかな色域を算出することが可能になる。
【００６１】
［他の実施例］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００６２】
また、本発明の目的は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【００６３】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【００６４】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００６５】
【図１】実施例の色処理装置の構成例を示すブロック図、
【図２】色域解析アプリケーションが表示するユーザインタフェイスを示す図、
【図３】色解析アプリケーションの動作を説明する状態遷移図、
【図４】色分布データのデータ構造を示す図、
【図５】色域算出用のBスプライン体の係数および基底関数の算出処理を説明するフローチャート、
【図６】Bスプライン基底関数を表す図、
【図７】色域の算出処理を示すフローチャート、
【図８】色域を表現する三角パッチデータのデータ構造を示す図、
【図９】色域の擬似三次元表示を示す図である。
【図１】
2006211246.tif 000003
【図２】
2006211246.tif 000004
【図３】
2006211246.tif 000005
【図４】
2006211246.tif 000006
【図５】
2006211246.tif 000007
【図６】
2006211246.tif 000008
【図７】
2006211246.tif 000009
【図８】
2006211246.tif 000010
【図９】
2006211246.tif 000011