(57)【要約】【課題】  色域マッピングにおける無彩色の再現性を向上するとともに、有彩色の再現性の悪化を防ぐ。【解決手段】  入力部101は、画像の観察光源の光源データと、画像出力機器の出力色域の色域データを入力する。基準白色算出部102は、光源データが示す白色点と色域データが示す白色に基づき、色域データの格子点ごとに基準白色を計算する。色知覚空間値算出部103は、格子点ごとの基準白色を用いて、格子点の色値から色知覚空間の色値を計算する。色域マッピング部104は、計算された色知覚空間の色値に基づき、色域マッピングを行う。【選択図】  図7
2008278057.tif 000002
【特許請求の範囲】
【請求項１】
画像の観察光源の光源データと、画像出力機器の出力色域の色域データを入力する入力手段と、
前記光源データが示す白色点と前記色域データが示す白色に基づき、前記色域データの格子点ごとに基準白色を計算する白色算出手段と、
前記格子点ごとの基準白色を用いて、前記格子点の色値から色知覚空間の色値を計算する色値算出手段と、
前記色値算出手段が計算した色知覚空間の色値に基づき、色域マッピングを行うマッピング手段とを有することを特徴とする色処理装置。
【請求項２】
前記色域データの白色は紙白であることを特徴とする請求項1に記載された色処理装置。
【請求項３】
前記白色算出手段は、前記白色点の色値と前記紙白の色値を色度値に変換し、前記白色点の色度値と前記紙白の色度値を加重平均した色度値から前記基準白色を計算することを特徴とする請求項2に記載された色処理装置。
【請求項４】
前記白色算出手段は、前記白色点の色値と前記紙白の色値を色度値に変換し、前記白色点の色度値と前記紙白の色度値から最短距離にある黒体放射軌跡上の二点の色度値を加重平均した色度値から前記基準白色を計算することを特徴とする請求項2に記載された色処理装置。
【請求項５】
さらに、前記加重平均の重みを設定する設定手段を有することを特徴とする請求項3または請求項4に記載された色処理装置。
【請求項６】
さらに、前記加重平均の重みが更新された場合に、前記色値算出手段が計算した色知覚空間の色値に基づく色域を表示する表示手段を有することを特徴とする請求項5に記載された色処理装置。
【請求項７】
画像の観察光源の光源データと、画像出力機器の出力色域の色域データを入力し、
前記光源データが示す白色点と前記色域データが示す白色に基づき、前記色域データの格子点ごとに基準白色を計算し、
前記格子点ごとの基準白色を用いて、前記格子点の色値から色知覚空間の色値を計算し、
前記計算された色知覚空間の色値に基づき、色域マッピングを行うことを特徴とする色処理方法。
【請求項８】
コンピュータ装置を制御して、請求項1から請求項6の何れか一項に記載された色処理装置の各手段として機能させることを特徴とするコンピュータプログラム。
【請求項９】
請求項8に記載されたコンピュータプログラムが記録されたことを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、色域マッピングを行う色処理に関する。
【背景技術】
【０００２】
ディジタルカメラやスキャナなどの入力機器で取得した画像をプリントする機会が増えた。入力機器は、一旦、当該機器に依存するRGB色空間（以下、デバイスRGB色空間）のデータとして画像を取得し、デバイスRGB色空間のデータを標準的な色空間であるsRGBやAdobeRGBなどの色空間のデータに変換してメモリに保存する。
【０００３】
図1はsRGB色空間の色再現範囲（色域）を示すxy色度図である。点線で示す三角形領域RsはsRGBの色域を、実線で示す馬蹄形領域Rvは人間の可視領域を、破線で示す領域Rpは一般的なプリンタの色域をそれぞれ示している。図1に示すように、sRGB色空間の色域（以下、sRGB色域）とプリンタの色域は形状、面積が異なる。この色域の違いを吸収するには、sRGB色空間の画像（以下、sRGB画像）をプリンタで印刷する場合、sRGB画像の色値をプリンタの色値に対応付ける色域マッピングを行う必要がある。
【０００４】
図2は一般的な色域マッピングを示すフローチャートである。なお、以下では入力画像の色空間（以下、入力色空間）としてsRGB色空間を例に説明する。
【０００５】
まず、sRGB画像の画素値RGBに対応する色知覚空間の色値を算出する(S41)。色知覚空間としては例えばCIELAB、CIELUV、CIECAM02などがあるが、以下では、色知覚空間としてCIELABを、色値としてLab値を説明する。
【０００６】
次に、色知覚空間上で、Lab値をプリンタなどの出力機器の色域（以下、出力色域）に収めるような変換をLab値に施す(S42)。この変換、言い換えれば、入力機器の色値（以下、入力色値）を出力機器の色値（以下、出力色値）に対応付ける処理を色域マッピングと呼ぶ。
【０００７】
そして、マッピング後のLab値を出力機器のデバイス色空間のRGB値（以下、デバイスRGB値）に変換する(S43)。
【０００８】
出力機器のデバイスRGB値に変換された画像を印刷した場合、色域マッピングの方法によっては、入力機器における白の色値が出力機器における白の色値（紙白）で再現されない場合がある。言い換えれば、入力画像の白が、印刷物においては記録紙にインクやトナーが載った状態で再現される場合がある。入力画像の白に着色すると、色かぶりとして知覚されるため、画像の印象が悪くなる。これを防ぐため、一般に、画像処理の際に入力画像の白を紙白で再現するための処理を行う。
【０００９】
入力画像の白を紙白で再現するには、入力機器と出力機器の白を一致させる必要がある。そのための処理として、特許文献1は、機器の白と黒を結ぶグレイラインを明度軸に一致させるために、明度ごとにグレイラインを平行移動する方法を記載する。
【００１０】
図3は明度ごとにグレイラインを平行移動した場合の出力色域の変化を示す図である。点Pは移動前のグレイラインと等明度平面の交点を示し、点P'は移動後のグレイラインと等明度平面の交点を示す。実線Goutはグレイラインを移動する前の等明度平面における出力色域を示し、破線G'outはグレイラインを移動した後の等明度平面における出力色域を示す。このすように、出力色域は点Pの移動に伴い、点Pと同じ移動量だけ平行移動される。
【００１１】
上記のグレイラインの移動によれば、入力機器の白、出力機器の白、焦点が同一線分（移動後のグレイライン）上に存在する。従って、出力色域に設定した焦点に向けて、出力色域外の色をマッピングする焦点方式の色域マッピングを行えば、入力機器の白は焦点に向かってマッピングされて出力機器の白に一致し、入力機器の白を紙白などで再現することができる。なお、焦点（収束点）は、例えばグレイライン上の点Lab=(50, 0, 0)などに設定される。
【００１２】
また、特許文献2は、入出力機器の白を一致させる手法として、機器のグレイラインを明度軸に一致させるために、色域を回転させる方法を開示する。
【００１３】
図4は色域の回転により入出力機器の白を一致させる手法を説明する図である。点線Ginはある色相における入力機器の色域、実線Goutは当該色相における出力機器の色域、破線G'outは出力色域Goutを、入出力機器の白が一致するように回転した色域を示す。
【００１４】
上記の色域の回転によれば、特許文献1の技術と同様に、入力機器の白、出力機器の白、焦点が同一線分（回転後のグレイライン）上に存在する。従って、焦点方式の色域マッピングを行えば、入力機器の白は焦点に向かってマッピングされて出力機器の白に一致し、入力機器の白を紙白などで再現することができる。
【００１５】
しかし、グレイラインの平行移動や色域の回転は、平行移動や回転によって色知覚空間の色値がずれるため、色域マッピングを行うと白以外の色の再現性が悪化する問題がある。
【００１６】
図5はグレイラインの平行移動における色の再現性悪化を説明する図である。図5において、等明度平面上の点P、P0、P1の平行移動後の点はP'、P'0、P'1である。図5に示すように、グレイラインを平行移動した場合、入力機器の白を含む無彩色は、出力機器の無彩色によって再現され、再現性が向上する。しかし、点P0やP1などの有彩色は、平行移動により、本来の色度とは異なる色度点P'0やP'1にマッピングされることになる。
【００１７】
図6は色域の回転における色の再現性の悪化を説明する図である。図6において、等色相面上の点P0、P1は回転後の点はP'0、P'1である。図6に示すように、色域を回転した場合、無彩色の再現性は向上するが、点P0やP1などの有彩色は、回転により、本来とは異なる明度、彩度をもつ点P'0やP'1にマッピングされることになる。
【００１８】
【特許文献１】特開2001-326826号公報
【特許文献２】特開2002-016816号公報
【発明の開示】
【発明が解決しようとする課題】
【００１９】
本発明は、色域マッピングにおける無彩色の再現性を向上するとともに、有彩色の再現性の悪化を防ぐことを目的とする。
【課題を解決するための手段】
【００２０】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００２１】
本発明の色処理は、画像の観察光源の光源データと、画像出力機器の出力色域の色域データを入力し、前記光源データが示す白色点と前記色域データが示す白色に基づき、前記色域データの格子点ごとに基準白色を計算し、前記格子点ごとの基準白色を用いて、前記格子点の色値から色知覚空間の色値を計算し、前記計算された色知覚空間の色値に基づき、色域マッピングを行うことを特徴とする。
【発明の効果】
【００２２】
本発明によれば、色域マッピングにおける無彩色の再現性を向上するとともに、有彩色の再現性の悪化を防ぐことができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明にかかる実施例の色処理を図面を参照して詳細に説明する。
【実施例１】
【００２４】
［装置の構成］
図7は実施例の色処理装置10の構成例を示すブロック図である。
【００２５】
入力部101は、画像データ、出力色域を示すデータ（以下、出力色域データ）、観察光源を示すデータ（以下、光源データ）を、画像入力機器11や記憶装置12などから入力する。出力部106は、デバイス色空間の色値を示す画像データを、画像出力機器13や記憶装置14に出力する。入力部101および出力部106は、例えばUSBやIEEE1394などのシリアルバスインタフェイスを備え、色処理装置10はシリアルバスケーブルを介して画像入力機器11、画像出力機器13、記憶装置12、14に接続する。
【００２６】
画像データ保持部107は、入力部101が入力した画像データおよびを保持する。色域データ保持部108は、入力部101が入力した色域データを保持する。光源データ保持部109は、入力部101が入力した光源データを保持する。また、バッファメモリ110は、処理途中の各種データを一時的に保持するワークメモリである。これら保持部107〜109およびバッファメモリ110は、例えばRAMやハードディスク(HD)などのメモリの所定領域に割り当てられる。
【００２７】
基準白色算出部102は、詳細は後述するが、色域データ保持部108が保持する出力色域データおよび光源データ保持部109が保持する光源データに基づき、デバイスRGB値の格子点ごとに基準白色を算出する。色知覚空間値算出部103は、格子点ごとの基準白色を用いて、色域データ保持部108が保持する出力色域データから、デバイスRGB値の各格子点の色知覚空間の色値（例えばLab値）を算出する。
【００２８】
色域マッピング部104は、デバイスRGB値の各格子点のLab値に基づき、画像データ保持部107が保持する入力画像データの色値を出力色域に色域マッピングする。デバイス色値算出部105は、色域マッピングされた色値に対応するデバイス色空間の色値（例えばデバイスRGB値）を算出し、画像データ保持部107に格納する。デバイス色値算出部105は、デバイス色値とLab値の関係を表すルックアップテーブル(LUT)と四面体補間や立方体補間などの補間演算、あるいは、デバイス色値とLab値に変換する変換マトリクスなどを用いて、デバイス色値を計算する。
【００２９】
UI部112は、図示しない操作パネル、モニタとキーボードやマウスの組み合わせを介して、ユーザにユーザインタフェイスを提供する。
【００３０】
なお、上記の各構成は、システムバス111を介して相互に接続されている。また、入力部101および出力部106は、ネットワークインタフェイスまたはメモリカードリーダライタを備えてもよい。その場合、色処理装置10は、ネットワークまたはメモリカードを介して、画像入力機器11、画像出力機器13、記憶装置12、14に接続する。
【００３１】
［色処理］
図8は色処理装置10の動作を説明するフローチャートである。
【００３２】
まず、入力部101により、UI部112によってユーザ指示された、色処理に必要な画像データ、出力色域データ、光源データを画像入力機器11や記憶装置12から入力し、それぞれ対応する保持部107〜109に格納する(S11)。なお、入力部101の具体的な処理は後述する。
【００３３】
図9は画像データ保持部107が格納する画像データの形式例を示す図である。画像データ保持部107は、RGB色成分それぞれの値を一組とする、画像サイズ分の画素データをビットマップ形式でメモリに記憶する。例えば、画像入力機器11からJPEG形式の画像データ（以下、JPEGデータ）が入力される場合、入力部101は、JPEGデータを復号し、YCbCr→RGB変換したビットマップ形式の画像データを画像データ保持部107に格納する。
【００３４】
図10は色域データ保持部108が格納する出力色域データの形式例を示す図である。出力色域データは、デバイスRGB値とXYZ値の対が記述されたテーブル形式をもつ。なお、8ビットデータの場合、R=G=B=255におけるXYZ値は紙白に相当する。例えば、プリンタの出力色域データは、一般に、次のように作成する。
【００３５】
まず、RGB値それぞれの範囲（0〜255）を9または17スライスなどに格子分割する。そして、各格子点の座標に相当するRGB値をプリンタに入力して、所定の記録紙にRGB値に対応する複数の色票を印刷する。次に、色票をそれぞれ測色してXYZ値を取得する。このようにして、デバイスRGB値とXYZ値の対応関係を取得して、図10に示す出力色域データを作成する。従って、色票を印刷した記録紙の紙白はR=G=B=255に対応するXYZ値として表現される。なお、入力される出力色域データがデータ圧縮されている場合、入力部101は、出力色域データをデータ伸長し、伸長結果のテーブルを色域データ保持部108に格納する。
【００３６】
また、光源データ保持部109が格納する光源データは、例えば画像の観察環境における照明光や周囲光などを含む環境光の白色点のXYZ値、強度などを含む。
【００３７】
次に、詳細は後述するが、基準白色算出部102により、色域データ保持部108が保持する出力色域データおよび光源データ保持部109が保持する光源データに基づき基準白色を算出する(S12)。そして、色知覚空間値算出部103により、基準白色を用いて、画像データ保持部107が保持する入力画像データの各画素のLab値を算出する(S13)。
【００３８】
次に、詳細は後述するが、色域マッピング部104により、色域データ保持部108が保持する出力色域データを参照して、画像データの各画素のLab値を色域マッピングする(S14)。そして、デバイス色値算出部105により、色域マッピングしたLab値に対応するデバイスRGB値を算出して画像データ保持部107に格納する(S15)。
【００３９】
入力画像データに対する上記処理が終了すると、画像データ保持部107に出力画像データ（デバイスRGB値）が格納される。そこで、出力部106により、出力画像データを、UI部112によってユーザ指示された、画像出力機器13または記憶装置14に出力する(S16)。
【００４０】
なお、色処理装置10に接続された入出力機器がそれぞれ一台の場合、入力部101による画像データ、出力色域データおよび光源データの入力、並びに、出力部106による画像データの出力は必ずしもユーザ指示を必要としない。この場合、色処理装置10は、入力機器が出力するデータを入力し、色処理した画像データを出力機器に出力すればよい。
【００４１】
●入力部
図11は入力部101の処理(S11)の詳細を示すフローチャートである。
【００４２】
入力部101は、カウンタiを1に初期化し(S101)、入力画像データのi番目の画素データを画像データ保持部107の所定領域に格納する(S102)。そして、カウンタiをインクリメントし(S103)、入力画像データの全画素データを入力したか否かを判定する(S104)。未入力の画像データがある場合は、処理をステップS102へ戻す。なお、画素の順番は、例えばラスタスキャン順とする。
【００４３】
入力画像データの全画素データを入力すると、入力部101は、カウンタiを再び1に初期化し(S105)、出力色域データのi番目の格子点（格子点番号=i）のRGB値とXYZ値を色域データ保持部108の所定領域に格納する(S106)。そして、カウンタiをインクリメントし(S107)、出力色域データの全格子点のデータを入力したか否かを判定する(S108)。未入力の格子点データがある場合は、処理をステップS106に戻す。
【００４４】
出力色域データの全格子点のデータを入力すると、入力部101は、光源データを光源データ保持部109の所定領域に格納する(S109)。
【００４５】
●基準白色算出部
図12は基準白色算出部102の処理(S12)の詳細を示すフローチャートである。
【００４６】
基準白色算出部102は、色域データ保持部108が保持する出力色域データから紙白（R=G=B=255）のXYZ値を取得する(S201)。勿論、出力色域データがRGB値(0, 0, 0)から(255, 255, 255)の順に並んでいる場合は、テーブルの最下行のXYZ値を取得することで、紙白のXYZ値を取得してもよい。
【００４７】
次に、基準白色算出部102は、式(1)によって、紙白のXYZ値XwpYwpZwpからxy値xwpywpを計算する(S202)。
xwp = Xwp/(Xwp + Ywp + Zwp)
ywp = Ywp/(Xwp + Ywp + Zwp)      …(1)
【００４８】
次に、基準白色算出部102は、光源データ保持部109が保持する光源データから光源の白色点のXYZ値XwsYwsZwsを取得し(S203)、式(1)によって、光源の白色点のxy値xwsywsを計算する(S204)。
【００４９】
次に、基準白色算出部102は、Y値の閾値Ythを設定する(S205)。閾値Ythは、詳細は後述するが、基準白色と、光源の白色点および出力機器の白色（例えば紙白）の依存の程度を調整するための重みである。基準白色算出部102は、閾値Ythとして、UI部112によってユーザが入力するか、既定値を設定する。ここでは例えばYth=70に設定することにする。そして、カウンタiを1に初期化する(S206)。
【００５０】
次に、基準白色算出部102は、紙白のxy値、光源の白色点のxy値、閾値Yth、および、出力色域データのi番目の格子点のY値を用いて、基準白色のXYZ値を計算する(S207)。基準白色のXYZ値XwrYwrZwrは、線形補間によって計算した基準白色のxy値xwrywrをXYZ値に変換することで計算する。式(2)は、基準白色のxy値xwrywrを計算する式である。
xwr = n×xwp + m×xws/(m + n)
ywr = n×ywp + m×yws/(m + n)      …(2)
ここで、m = Ywp - Y (m ≧ 0)
n = Y - Yth (n ≧ 0)
【００５１】
つまり、格子点のY値がYth以下（Y≦Yth）の場合はn=0になり、基準白色は光源の白色点のXYZ値に依存する値になる。また、格子点のY値がYthを超える（Y＞Yth）の場合はn＞0になり、基準白色は光源の白色点と紙白の間の値になる。つまり、閾値Ythは、基準白色が、光源の白色点および出力機器の白色（例えば紙白）に依存する程度を調整する、加重平均の重みとして機能する。また、xy値をXYZ値に変換するには式(3)を用いる。
X = Y×x/y
Y = y                    …(3)
Z = Y×(1.0 - x - y)/y
【００５２】
次に基準白色算出部102は、i番目の格子点の基準白色（XYZ値）をバッファメモリ110に格納し(S208)、カウンタiをインクリメントする(S209)。そして、全格子点に対応する基準白色を算出したか否かを判定し(S210)、未了の場合は処理をステップS207に戻して、全格子点に対応する基準白色を算出するまでステップS207〜S210を繰り返す。
【００５３】
このように、基準白色算出部102は、出力色域データの各格子点のY値に対応する基準白色を、xy色度平面における紙白のxy値、光源の白色点のxy値、閾値Yth（重み）に基づき、線形補間（加重平均演算）によって計算する。
【００５４】
●色知覚空間値算出部
図13は色知覚空間値算出部103の処理(S13)の詳細を示すフローチャートである。
【００５５】
色知覚空間値算出部103は、カウンタiを1に初期化し(S301)、バッファメモリ110に格納されたi番目の格子点の基準白色を取得し(S302)、取得した基準白色を用いて、i番目の格子点のXYZ値に対応するLab値を計算する(S303)。
【００５６】
格子点のXYZ値に対応するLab値の計算は、色域データ保持部108から当該格子点のXYZ値を取得する。そして、式(4)によってLab値を計算する。
Y/Yn ＞ 0.008856の場合
L* = 116(Y/Yn)1/3 - 16
Y/Yn ≦ 0.008856の場合
L* = 903.29(Y/Yn)
a* = 500{f(X/Xn) - f(Y/Yn)}      …(4)
b* = 200(f(Y/Yn) - f(Z/Zn)}
ここで、X/Xn ＞ 0.008856の場合  f(X/Xn) = (X/Xn)1/3
X/Xn ≦ 0.008856の場合  f(X/Xn) = 7.78(X/Xn) + 16/116
Y/Yn ＞ 0.008856の場合  f(Y/Yn) = (Y/Yn)1/3
Y/Yn ≦ 0.008856の場合  f(Y/Yn) = 7.78(Y/Yn) + 16/116
Z/Zn ＞ 0.008856の場合  f(Z/Zn) = (Z/Zn)1/3
Z/Zn ≦ 0.008856の場合  f(Z/zn) = 7.78(Z/Zn) + 16/116
XnYnZnは基準白色のXYZ値
【００５７】
次に、色知覚空間値算出部103は、計算した格子点のLab値をバッファメモリ110に格納し(S304)、カウンタiをインクリメントする(S305)。そして、全格子点のLab値を算出したか否かを判定し(S306)、未了の場合は処理をステップS302へ戻し、全格子点のLab値を算出するまで、ステップS302〜S305の処理を繰り返す。
【００５８】
このように、色知覚空間値算出部103では、格子点ごとに計算した基準白色を用いて、格子点の色知覚空間値を計算する。
【００５９】
●色域マッピング部
図14は色域マッピング部104の処理(S14)の詳細を示すフローチャートである。
【００６０】
色域マッピング部104は、カウンタiを1に初期化し(S401)、画像データ保持部107が格納する入力画像データのi番目の画素データ（RGB値）に対応するLab値を計算する(S402)。つまり、i番目の画素データのRGB値を取得し、RGB値をXYZ値に変換する。例えば、画像データがIEC61966-2-1が規定するsRGB色空間で表現される場合、式(5)によってRGB値をXYZ値に変換する。
┌ ┐ ┌                    ┐┌  ┐
│X│ │0.4124 0.3576 0.1805││R"│
│Y│=│0.2126 0.7152 0.0722││G"│      …(5)
│Z│ │0.0193 0.1192 0.9505││B"│
└ ┘ └                    ┘└  ┘
ここで、R' = R/255
G' = G/255
B' = B/255
R'、G'、B' ≦ 0.04045の場合
R" = R'/12.92
G" = G'/12.92
B" = B'/12.92
R'、G'、B' ＞ 0.04045の場合
R" = {(R' + 0.055)/1.055}2.4
G" = {(G' + 0.055)/1.055}2.4
B" = {(B' + 0.055)/1.055}2.4
【００６１】
そして、式(5)で計算したXYZ値から、式(4)を用いて、Lab値を算出する。Lab値を計算する際の白色点には基準光源D65のXYZ値を用いるか、入力画像データのヘッダに記述された色温度または白色点のXYZ値を使用すればよい。
【００６２】
次に、色域マッピング部104は、i番目の画素データのLab値（以下、入力色）が出力色域内に存在するか否かを内外判定する(S403)。色域の内外判定は、焦点方式の色域マッピングにおける焦点から入力色に延伸した直線と出力色域の境界面との交点を囲む境界面の格子点によって判定する。
【００６３】
図15は色域の内外判定を説明する図である。図15に示す点Aは出力色域のグレイライン上（例えば、Lab=(50, 0, 0)）の焦点である。点Pは入力色を示す。点B、C、Dは、焦点Aから点Pに延伸した直線と出力色域の境界面との交点を囲む境界面の格子点である。このとき、ベクトルAPは式(6)によって表すことができる。
↑AP = s↑AB + t↑AC + u↑AD      …(6)
ただし、↑APは点Aから点Pに向かうベクトルを表す
【００６４】
式(6)の係数s、t、uは、任意の点XのLab値を(Lx, ax, bx)と表すと、式(7)によって計算することができる。
┌ ┐ ┌                 ┐-1┌     ┐
│s│ │LB-LA LC-LA LP-LA│  │LP-LA│
│t│=│aB-aA aC-aA aP-aA│  │aP-aA│      …(7)
│u│ │bB-bA bC-bA bP-bA│  │bP-bA│
└ ┘ └                 ┘  └     ┘
【００６５】
点Pが四面体ABCDの内部に存在すれば式(8)が成り立つ。
s + t + u ≦ 1、0 ≦ s, t, u      …(8)
【００６６】
つまり、色域マッピング部104は、式(8)が成り立つ格子点B、C、Dが存在すれば、入力色Pは出力色域内に存在すると判定する。また、式(8)が成り立つ格子点B、C、Dが存在しない場合、入力色Pは出力色域外に存在すると判定する。そして、入力色Pが出力色域内に存在すれば処理をステップS406に進める。
【００６７】
入力色Pが出力色域外に存在する場合、色域マッピング部104は、ベクトルAPと出力色域の境界面の交点（図15に示す点Pi）を計算し(S404)、入力色PのLab値を交点PiのLab値に置き換える(S405)。つまり、出力色域外の入力色Pを出力色域の境界面の交点Piにマッピングする。
【００６８】
次に、色域マッピング部104は、カウンタiをインクリメントし(S406)、入力画像データの全画素データを処理したか否かを判定する(S407)。そして、未処理の画素データが有る場合は処理をステップS402に戻し、全画素データの処理が終了するまでステップS402からS407を繰り返す。
【００６９】
このように、色域マッピング部104は、出力色域内の入力色Pはその色値を維持し、出力色域外の入力色Pは、ベクトルAPと出力色域の境界面の交点Piにマッピングすることで、入力画像データの色値を出力色域へ色域マッピングする。
【００７０】
このように、色処理装置10は、出力色域データの格子点ごとに基準白色を設定する。そして、当該基準白色を用いて算出した出力色域の格子点に対応する色知覚空間の色値に基づき、入力画像データの色知覚空間の色値を色域マッピングする。従って、入力機器の白と出力機器の白（紙白）を一致させて無彩色の再現性を向上するとともに、有彩色の再現性の悪化を防ぐことができる。
【実施例２】
【００７１】
以下、本発明にかかる実施例2の色処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００７２】
図16は実施例2の色処理装置10の動作を説明するフローチャートである。
【００７３】
実施例1と同様に、入力部101により、UI部112によってユーザ指示された、色処理に必要な画像データ、出力色域データ、光源データを画像入力機器11や記憶装置12から入力し、それぞれ対応する保持部107〜109に格納する(S11)。
【００７４】
次に、色知覚空間値算出部103により、色域データ保持部108が保持する出力色域データのXYZ値をLab値に変換し、出力色域の境界面のLab値を取得する(S21)。そして、デバイス色値算出部105により、出力色域の境界面のLab値をUI部112に接続されたモニタのデバイスRGB値に変換する(S22)。そして、UI部112により、ある色相における出力色域の断面をモニタに表示する(S23)。
【００７５】
図17はユーザインタフェイス200の一例を示す図である。ユーザは、画像データ設定部201のテキストボックスにファイル名を入力するか、参照ボタンを押すと表示される図示しないファイル選択ダイアログによって入力画像データを設定する。また、ユーザは、出力色域設定部202のテキストボックスにファイル名を入力するか、参照ボタンを押すと表示される図示しないファイル選択ダイアログによって出力色域データを設定する。
【００７６】
ユーザは、Y閾値設定部203のテキストボックスに数値を入力するか、テキストボックスに表示された数値をスピンボタンで調整するかして、閾値Ythを設定する。また、ユーザは、出力先設定部204のテキストボックスに画像データの出力先を特定するデバイス名、パス名、アドレスを入力するか、参照ボタンを押すと表示される図示しないファイル選択ダイアログによって画像データの出力先である出力機器を設定する。
【００７７】
出力色域表示部207には、出力色域データが表す出力色域のある色相断面が表示される。
【００７８】
UI部112は、「更新」ボタン205が押されたか否かを判定し(S25)、押された場合はY閾値設定部203に設定された閾値Ythを基準白色算出部102に供給し、出力色域の各格子点の基準白色を算出させる(S26)。続いて、色知覚空間値算出部103は、出力色域の格子点の基準白色を用いて、出力色域の境界面のLab値を算出する(S27)。この後、処理はステップS21へ戻り、UI部112は、出力色域の表示を更新する。
【００７９】
また、UI部201は、「決定」ボタンが押されたか否かを判定し(S24)、押された場合は処理をステップS12へ進める。ステップS12以降の処理は、図8に示す実施例1の処理と同様であるから、その詳細説明を省略する。
【００８０】
このように、ユーザは、Y閾値設定部203により閾値Ythを調整して、出力色域表示部207の表示により好ましい出力色域が得られるか否かを確認することができる。
【実施例３】
【００８１】
以下、本発明にかかる実施例3の色処理を説明する。なお、実施例3において、実施例1、2と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００８２】
図18は実施例3の色処理装置10の構成例を示すブロック図である。図7に示す構成に加えて、入力部101が入力した黒体放射軌跡データを保持する黒体放射軌跡保持部113を備える。黒体放射軌跡保持部113は、他の保持部と同様に、例えばRAMやハードディスク(HD)などのメモリの所定領域に割り当てられる。
【００８３】
図19は色処理装置10の動作を説明するフローチャートである。図8に示す動作と異なるのはステップS11'とS12'の処理である。つまり、入力部101により、UI部112によってユーザ指示された、色処理に必要な画像、出力色域、光源、黒体放射軌跡の各データを画像入力機器11や記憶装置12から入力し、それぞれ対応する保持部107〜109、113に格納する(S11')。なお、黒体放射軌跡保持部113は、一次元のLUT形式で黒体放射軌跡データを保持する。そして、基準白色算出部102により、黒体放射軌跡データを使用して基準白色を計算する(S12')。
【００８４】
図20は基準白色算出部102の処理(S12')の詳細を示すフローチャートである。
【００８５】
図12示すステップS201〜S204と同様の処理を実行した後、基準白色算出部102により、紙白のxy値xwpywpと最短距離になる黒体放射軌跡上の点のxy値を計算する(S211)。さらに、光源の白色点のxy値xwsywsと最短距離になる黒体放射軌跡上の点のxy値を計算する(S212)。そして、紙白のxy値および光源の白色点のxy値を黒体放射軌跡上のxy値で置き換える(S213)。
【００８６】
ステップS207における、各格子点の基準白色の算出は、黒体放射軌跡上の二点、つまり黒体放射軌跡上の紙白のxy値、黒体放射軌跡上の光源の白色点のxy値を用いることになる。従って、基準白色算出部102が計算する基準白色は、黒体放射軌跡に沿ったLab値、言い換えれば、人間の視覚特性に合った色知覚空間の色値になる。
【００８７】
［変形例］
上記の実施例においては、CIELab空間を用いる例を説明したが、CIELuv、CIECAM02、CIECAM97sなどの色知覚空間であってもよい。
【００８８】
また、上記の実施例において、基準白色算出部102は、線形補間を用いて、紙白や光源の白色点など複数の白色から基準白色を求める例を説明したが、非線形補間を用いてもよい。また、xy色度値を用いて基準白色を求める例を説明したが、uv色度値を用いてもよい。また、紙白や光源の白色点を用いる例を説明したが、部分順応白色や人間が純白と感じる絶対白色などを用いてもよい。
【００８９】
また、上記の実施例において、色域マッピング部104は、出力色域内の入力色はその色値を保ち、出力色域外の入力色は焦点に向かって出力色域の境界面にマッピングする例を説明した。しかし、出力色域外の入力色は明度を保って出力色域の境界面にマッピングしてもよい。また、入力色のマッピング前後におけるCIELab空間の三次元距離が最小になるように、つまり、出力色域の境界面の最短距離の点に入力色をマッピングしてもよい。また、出力色域内の入力色も完全に保つ必要はなく、出力色域内外ともに、好ましい色にマッピングしてもよい。また、sRGB空間の色値とデバイスRGB空間の色値を対応付ける変換マトリクスを用いたマスキング手法を用いてもよい。
【００９０】
また、上記の実施例において、基準白色算出部102は、出力色域データの各格子点のY値に応じて基準白色を算出する例を説明した。しかし、入力色域についても同様の処理を行ってもよい。
【００９１】
［他の実施例］
なお、本発明は、複数の機器（例えばコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置、制御装置など）に適用してもよい。
【００９２】
また、本発明の目的は、上記実施例の機能を実現するコンピュータプログラムを記録した記憶媒体をシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（CPUやMPU）が前記コンピュータプログラムを実行することでも達成される。この場合、記憶媒体から読み出されたソフトウェア自体が上記実施例の機能を実現することになり、そのコンピュータプログラムと、そのコンピュータプログラムを記憶する、コンピュータが読み取り可能な記憶媒体は本発明を構成する。
【００９３】
また、前記コンピュータプログラムの実行により上記機能が実現されるだけではない。つまり、そのコンピュータプログラムの指示により、コンピュータ上で稼働するオペレーティングシステム(OS)および/または第一、第二、第三、…のプログラムなどが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【００９４】
また、前記コンピュータプログラムがコンピュータに接続された機能拡張カードやユニットなどのデバイスのメモリに書き込まれていてもよい。つまり、そのコンピュータプログラムの指示により、第一、第二、第三、…のデバイスのCPUなどが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【００９５】
本発明を前記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応または関連するコンピュータプログラムが格納される。
【図面の簡単な説明】
【００９６】
【図１】sRGB色空間の色再現範囲（色域）を示すxy色度図、
【図２】一般的な色域マッピングを示すフローチャート、
【図３】明度ごとにグレイラインを平行移動した場合の出力色域の変化を示す図、
【図４】色域の回転により入出力機器の白を一致させる手法を説明する図、
【図５】グレイラインの平行移動における色の再現性悪化を説明する図、
【図６】色域の回転における色の再現性の悪化を説明する図、
【図７】実施例の色処理装置の構成例を示すブロック図、
【図８】色処理装置の動作を説明するフローチャート、
【図９】画像データ保持部が格納する画像データの形式例を示す図、
【図１０】色域データ保持部が格納する出力色域データの形式例を示す図、
【図１１】入力部の処理の詳細を示すフローチャート、
【図１２】基準白色算出部の処理の詳細を示すフローチャート、
【図１３】色知覚空間値算出部の処理の詳細を示すフローチャート、
【図１４】色域マッピング部の処理の詳細を示すフローチャート、
【図１５】色域の内外判定を説明する図、
【図１６】実施例2の色処理装置の動作を説明するフローチャート、
【図１７】ユーザインタフェイスの一例を示す図、
【図１８】実施例3の色処理装置の構成例を示すブロック図、
【図１９】色処理装置の動作を説明するフローチャート、
【図２０】基準白色算出部の処理の詳細を示すフローチャートである。
【図１】
2008278057.tif 000003
【図２】
2008278057.tif 000004
【図３】
2008278057.tif 000005
【図４】
2008278057.tif 000006
【図５】
2008278057.tif 000007
【図６】
2008278057.tif 000008
【図７】
2008278057.tif 000009
【図８】
2008278057.tif 000010
【図９】
2008278057.tif 000011
【図１０】
2008278057.tif 000012
【図１１】
2008278057.tif 000013
【図１２】
2008278057.tif 000014
【図１３】
2008278057.tif 000015
【図１４】
2008278057.tif 000016
【図１５】
2008278057.tif 000017
【図１６】
2008278057.tif 000018
【図１７】
2008278057.tif 000019
【図１８】
2008278057.tif 000020
【図１９】
2008278057.tif 000021
【図２０】
2008278057.tif 000022