(57)【要約】【課題】  ICCプロファイルの処理系において、カラーアピアランス空間を用いた色域マッピングを取り入れることが望まれる。【解決手段】  ICCプロファイル形式に準拠したLUTを作成する場合、CIE LAB値をCIE三刺激値XYZ値に変換し(S2)、そのXYZ値をカラーアピアランス変換式を用いてカラーアピアランス空間値に変換する(S3)際に、所定の条件を満たす点に対しては変換可能かつ最近傍点になる点を探索して対応するカラーアピアランス空間値を算出する(S4)。そして、得られたカラーアピアランス空間値を所定のデバイス色域にマッピングする(S6)。【選択図】  図5
2005295154.tif 000002
【特許請求の範囲】
【請求項１】
ルックアップテーブルを作成する色処理方法であって、
格子点の色データに対して、カラーアピアランスモデルを用いたカラーアピアランス変換を行い、カラーアピアランスデータを生成する変換処理ステップと、
前記カラーアピアランスデータに対して色処理を行う色処理ステップと、
前記色処理されたデータに基づき、前記ルックアップテーブルを作成する作成ステップと、
前記カラーアピアランスモデルを用いた変換処理ができなかった色データのカラーアピアランスデータを、前記カラーアピアランスモデルを用いた変換処理ができた色データのカラーアピアランスデータから得る取得ステップとを有することを特徴とする色処理方法。
【請求項２】
前記取得ステップは、前記カラーアピアランスモデルを用いた変換処理ができなかった色データの近傍に位置する、前記カラーアピアランスモデルを用いた変換処理ができた色データのカラーアピアランスデータを、前記カラーアピアランスモデルを用いた変換処理ができなかった色データのカラーアピアランスデータとすることを特徴とする請求項1に記載された色処理方法。
【請求項３】
前記取得ステップは、前記カラーアピアランスモデルを用いた変換処理ができなかった色データの近傍に位置する、前記カラーアピアランスモデルを用いた変換処理ができた複数の色データのカラーアピアランスデータから、前記カラーアピアランスモデルを用いた変換処理ができなかった色データのカラーアピアランスデータを推測することを特徴とする請求項1に記載された色処理方法。
【請求項４】
ルックアップテーブルを作成する色処理方法であって、
格子点の色データに対して、カラーアピアランスモデルを用いたカラーアピアランス変換を行い、カラーアピアランスデータを生成する変換処理ステップと、
前記カラーアピアランスデータに対して色処理を行う色処理ステップと、
前記色処理されたデータに基づき、前記ルックアップテーブルを作成する作成ステップと、
前記カラーアピアランスモデルを用いた変換処理ができなかった色データの色処理結果を、前記カラーアピアランスモデルを用いた変換処理ができた色データの色処理結果から推測する推測ステップとを有することを特徴とする色処理方法。
【請求項５】
前記カラーアピアランスモデルは、CIEで規定されているカラーアピアランスモデルであることを特徴とする請求項1から請求項4の何れかに記載された色処理方法。
【請求項６】
前記カラーアピアランスモデルは指数演算を含むことを特徴とする請求項5に記載された色処理方法。
【請求項７】
さらに、格子点の色データに対して、前記カラーアピアランス変換することが可能であるか否かを判定する判定ステップを有することを特徴とする請求項1から請求項5の何れか記載された色処理方法。
【請求項８】
ICCプロファイル形式に準拠したルックアップテーブルを作成する色処理方法であって、
格子点のLab値をXYZ値に変換し、
前記格子点のXYZ値をカラーアピアランス変換してカラーアピアランス値を取得し、
前記格子点のうちの所定の格子点について、前記所定の格子点に最近傍かつ前記カラーアピアランス変換が可能な点を探索し、その点のカラーアピアランス値を算出し、
取得および算出されるカラーアピアランス値を所定のデバイスの色域にマッピングして、前記ルックアップテーブルを作成することを特徴とする色処理方法。
【請求項９】
ICCプロファイル形式に準拠したルックアップテーブルを作成する色処理方法であって、
格子点のLab値をXYZ値に変換し、
前記格子点のXYZ値をカラーアピアランス変換してカラーアピアランス値を取得し、
前記格子点のうち所定の格子点のカラーアピアランス値を、前記所定の格子点の近傍の格子点のカラーアピアランス値から予測し、
取得および予測されるカラーアピアランス値を所定のデバイスの色域にマッピングして、前記ルックアップテーブルを作成することを特徴とする色処理方法。
【請求項１０】
ICCプロファイル形式に準拠したルックアップテーブルを作成する色処理方法であって、
格子点のLab値をXYZ値に変換し、
前記格子点のXYZ値をカラーアピアランス変換してカラーアピアランス値を取得し、
取得されるカラーアピアランス値を所定のデバイスの色域にマッピングし、
前記第二の変換手段によって得られるカラーアピアランス値を所定のデバイスの色域にマッピングして、前記ルックアップテーブルを作成し、
前記格子点のうちの所定の格子点のマッピング先を、前記所定の格子点の近傍の格子点のマッピング先から重み付け演算によって決定することを特徴とする色処理方法。
【請求項１１】
画像処理装置を制御して、請求項1から請求項10の何れかに記載された色処理を実現することを特徴とするプログラム。
【請求項１２】
請求項11に記載されたプログラムが記録されたことを特徴とする記録媒体。
【請求項１３】
ICCプロファイル形式に準拠したルックアップテーブルを作成する色処理装置であって、
格子点のLab値をXYZ値に変換する第一の変換手段と、
前記第一の変換手段により得られた、格子点のXYZ値をカラーアピアランス変換してカラーアピアランス値を得る第二の変換手段と、
前記格子点のうちの所定の格子点について、前記所定の格子点に最近傍かつ前記カラーアピアランス変換が可能な点を探索し、その点のカラーアピアランス値を算出する算出手段と、
前記第二の変換手段および前記算出手段によって得られるカラーアピアランス値を所定のデバイスの色域にマッピングして、前記ルックアップテーブルを作成するマッピング手段とを有することを特徴とする色処理装置。
【請求項１４】
ICCプロファイル形式に準拠したルックアップテーブルを作成する色処理装置であって、
格子点のLab値をXYZ値に変換する第一の変換手段と、
前記第一の変換手段により得られた、格子点のXYZ値をカラーアピアランス変換してカラーアピアランス値を得る第二の変換手段と、
前記格子点のうち所定の格子点のカラーアピアランス値を、前記所定の格子点の近傍の格子点のカラーアピアランス値から予測する予測手段と、
前記第二の変換手段および前記予測手段によって得られるカラーアピアランス値を所定のデバイスの色域にマッピングして、前記ルックアップテーブルを作成するマッピング手段とを有することを特徴とする色処理装置。
【請求項１５】
ICCプロファイル形式に準拠したルックアップテーブルを作成する色処理装置であって、
格子点のLab値をXYZ値に変換する第一の変換手段と、
前記第一の変換手段により得られた、格子点のXYZ値をカラーアピアランス変換してカラーアピアランス値を得る第二の変換手段と、
前記第二の変換手段によって得られるカラーアピアランス値を所定のデバイスの色域にマッピングして、前記ルックアップテーブルを作成するマッピング手段と、
前記格子点のうちの所定の格子点のマッピング先を、前記所定の格子点の近傍の格子点のマッピング先から重み付け演算によって決定する演算手段とを有することを特徴とする色処理装置。
【請求項１６】
前記所定の格子点は前記カラーアピアランス変換が不可能な格子点であることを特徴とする請求項13から請求項15の何れかに記載された色処理装置。
【請求項１７】
前記カラーアピアランス変換はCIE CAM02に基づくことを特徴とする請求項13から請求項15の何れかに記載された色処理装置。
【請求項１８】
前記カラーアピアランス変換はCIE CAM97sに基づくことを特徴とする請求項13から請求項15の何れかに記載された色処理装置。
【請求項１９】
さらに、前記デバイス色域を保持する保持手段を有することを特徴とする請求項13から請求項18の何れかの何れかに記載された色処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は色処理装置およびその方法に関し、例えば、ルックアップテーブルを作成する色処理に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータの普及に伴い、ディジタルカメラ、カラースキャナなどの画像入力デバイスによって画像を入力し、その画像をCRT、LCDなどの画像表示デバイスを用いて表示、確認し、さらに、その画像をカラープリンタなどの画像出力デバイスによって出力することが容易に行えるようになった。その際、入力デバイスと、表示および出力デバイスの色再現域の差による色の見えの違いを補正するために、通例、カラーマッチング処理（色域マッピング）を行う。つまり、カラーマッチング処理により、デバイス間の色の見えの差を吸収する。
【０００３】
カラーマッチング処理の一つにICCプロファイルを用いる手法がある。図1に示すように、ICCプロファイルの処理は、ソースプロファイル（以下「Srcプロファイル」と呼ぶ）を用いて、入力デバイスによって得られた画像のRGB値をデバイスに依存しない色空間であるCIE三刺激値XYZやCIE LABに変換し、ディスティネイションプロファイル（以下「Dstプロファイル」と呼ぶ）よって、CIE LABから出力（表示）デバイスのデバイスRGB（以下「DevRGB」と呼ぶ）に変換する。Srcプロファイルには、入力デバイスの色再現特性を示すRGB→XYZ変換マトリクスや、RGB→Lab変換ルックアップテーブル(LUT)が記述されている。一方、Dstプロファイルには、ある特定の形式に沿ったLab→DevRGBのLUTが記述されている。このDstプロファイルのLUTは、L*値が0≦L*≦100、a*値が-128≦a*≦127、b*値が-128≦b*≦127の範囲をそれぞれ均等にnスライス（n(整数)個の断片に分割すること）した格子点データを定義し、そのL*a*b*値を出力デバイスの色域にマッピングすることで得たDevRGB値を記述した形式である。
【０００４】
このように、ICCプロファイルの処理系においては、カラーマッチング情報、すなわち色域マッピングの情報は、Dstプロファイル内のLUTに出力デバイスの色域情報と同時に記述されている。
【０００５】
一方、近年、色の見えモデルとして、従来のCIE LABよりも人間の視覚特性を高精度にモデル化したカラーアピアランスモデルが発表されている。このカラーアピアランス空間の色値（例えばJ*a*b*値とする）は、概ねCIE三刺激値XYZから計算することができるようになっている。このJ*a*b*を利用してカラーマッチング（色域マッピング）を行うことで、より人間の視覚特性に適合した色合わせを行うことができる。
【０００６】
さて、カラーアピアランス空間を用いたカラーマッチングをICCプロファイルの処理系で実現する場合、上述したようにカラーマッチング情報はDstプロファイルに記述するため、新たなDstプロファイルを作成しなければならない。しかし、Dstプロファイルには、L*a*b*値とDevRGB値の関係を前述した所定の形式でLUT化したものを埋め込むようになっている。つまり、カラーアピアランス空間を用いたカラーマッチング情報をDstプロファイル化するためには、ICCプロファイル形式に従い、所定形式のL*a*b*の格子点列を一旦カラーアピアランス変換式でJ*a*b*値に変換し、その後、出力デバイスの色域にマッピングして対応するDevRGB値を得てLUT化する、という作業が必要になる。計算の流れとしては、図2に示すように、L*a*b* → J*a*b* → J*'a*'b*' → DevRGBという具合である。
【０００７】
しかし、カラーアピアランス空間の色値J*a*b*を得るための変換式は、可視範囲外の色には対応していないという問題がある。カラーアピアランス変換は、例えば、色順応変換や錐体応答変換、反対色応答変換を行って、色値が人間の視覚特性に近付くように変換する。色順応変換の変換方法は、例えば、式(1)に示すようなマトリクス変換を代表とする線形変換であり、錐体応答変換は、マトリクス変換に加え、式(2)に示すような指数演算も行う。また、反対色応答変換は、錐体応答変換後の値を人間の視覚特性に適合した座標J*a*b*の値とするための変換であり、線形変換および三角関数変換が代表的な変換式になる。
┌           ┐
│a00 a01 a02│
A' =│a10 a11 a12│ A              …(1)
│a20 a21 a22│
└           ┘
A' = b(cA/d)e/{f + (cA/d)e} + g    …(2)
ここで、a00からa22およびbからgは定数、ただし0≦e≦1
Aは変換前の値
A'は変換後の値
【０００８】
この変換式によれば、可視範囲外の色を表すXYZ値が入力された場合、線形演算である色順応変換は計算できるものの、錐体応答変換における式(2)のような指数演算を行う場合は計算エラーが起きる場合がある。これは、式(2)における(cA/d)は、本来可視範囲の色であれば必ず正の数になるように式(1)および(2)の定数が設計されているが、可視範囲の色が入力されると負の数になることがあり、負の数の分数乗は定義されていないため計算が出来ない。
【０００９】
つまり、図3に示すように、CIE LAB空間上で定義されたL*a*b*格子点列のうち、可視範囲外の色（例えばL*=0、a*=-128、b*=-128）をJ*a*b*値に変換することができず、その格子点に対応するDevRGB値を算出することができない問題がある。実際に、ICCプロファイルの処理系でカラーマッチングを行う際、入力された画像に可視範囲外の色が存在することは有り得ないが、可視範囲ぎりぎりの色が存在する場合がある。そのような色をLUTを用いて補間する際は、可視範囲内の格子点だけではなく可視範囲外の格子点も用いるため、可視範囲外の格子点に対しても適切なDevRGB値を入力しておく必要がある。
【００１０】
ICCプロファイルおよびカラーアピアランス空間を利用したカラーマッチング方法としては特開2000-40140公報に開示された技術がある。同公報に開示された技術は、ICCプロファイル形式で記述されているSrcプロファイルおよびDstプロファイルから各デバイスの色域を専用の装置に読み込み、各色域をカラーアピアランス変換式の一つであるCIE CAM97変換式でJ*a*b*値に変換して色域マッピングを行うものである。この技術を用いる場合、J*a*b*空間での色域マッピング情報を記録したDstプロファイルを新たに作成する必要はなく、従来と同様のプロファイルを用いればよいため、前述したようなカラーアピアランス変換不能に起因する問題は発生しない。ところが、この技術は、カラーマッチングする際に特別な装置を必要とするため、例えばPhotoShop(R)のような一般的な画像操作アプリケーションを利用する場合は用いることはできない。また、専用の装置でカラーマッチングを行うため、ICCプロファイルに記述された色域マッピング情報を完全に無視するという問題もある。
【００１１】
【特許文献１】特開2000-40140公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
ICCプロファイルの処理系において、カラーアピアランス空間を用いた色域マッピングを取り入れることが望まれる。
【００１３】
本発明は、上述の問題を個々にまたはまとめて解決するもので、カラーアピアランス空間上での色処理結果に応じたルックアップテーブルを良好に作成することを目的とする。とくに、カラーアピアランス変換ができない入力色に対応可能にすることを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１５】
本発明は、ルックアップテーブルを作成する際、格子点の色データに対して、カラーアピアランスモデルを用いたカラーアピアランス変換を行い、カラーアピアランスデータを生成し、カラーアピアランスデータに対して色処理を行い、色処理されたデータに基づき、ルックアップテーブルを作成し、カラーアピアランスモデルを用いた変換処理ができなかった色データのカラーアピアランスデータを、カラーアピアランスモデルを用いた変換処理ができた色データのカラーアピアランスデータから得ることを特徴とする。
【００１６】
また、ルックアップテーブルを作成する際、格子点の色データに対して、カラーアピアランスモデルを用いたカラーアピアランス変換を行い、カラーアピアランスデータを生成し、カラーアピアランスデータに対して色処理を行い、色処理されたデータに基づき、ルックアップテーブルを作成し、カラーアピアランスモデルを用いた変換処理ができなかった色データの色処理結果を、カラーアピアランスモデルを用いた変換処理ができた色データの色処理結果から推測することを特徴とする。
【００１７】
また、ICCプロファイル形式に準拠したルックアップテーブルを作成する際、格子点のLab値をXYZ値に変換し、前記格子点のXYZ値をカラーアピアランス変換してカラーアピアランス値を取得し、前記格子点のうちの所定の格子点について、前記所定の格子点に最近傍かつ前記カラーアピアランス変換が可能な点を探索し、その点のカラーアピアランス値を算出し、取得および算出されるカラーアピアランス値を所定のデバイスの色域にマッピングして、前記ルックアップテーブルを作成することを特徴とする。
【００１８】
また、格子点のLab値をXYZ値に変換し、前記格子点のXYZ値をカラーアピアランス変換してカラーアピアランス値を取得し、前記格子点のうち所定の格子点のカラーアピアランス値を、前記所定の格子点の近傍の格子点のカラーアピアランス値から予測し、取得および予測されるカラーアピアランス値を所定のデバイスの色域にマッピングして、前記ルックアップテーブルを作成することを特徴とする。
【００１９】
また、格子点のLab値をXYZ値に変換し、前記格子点のXYZ値をカラーアピアランス変換してカラーアピアランス値を取得し、取得されるカラーアピアランス値を所定のデバイスの色域にマッピングし、前記第二の変換手段によって得られるカラーアピアランス値を所定のデバイスの色域にマッピングして、前記ルックアップテーブルを作成し、前記格子点のうちの所定の格子点のマッピング先を、前記所定の格子点の近傍の格子点のマッピング先から重み付け演算によって決定することを特徴とする。
【発明の効果】
【００２０】
本発明によれば、カラーアピアランス変換ができない入力色を含むルックアップテーブルを、カラーアピアランス空間上での色処理結果に応じて作成することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明にかかる一実施形態の画像処理装置を図面を参照して詳細に説明する。
【００２２】
［概要］
本発明のICCプロファイル形式に準拠したLUTを作成する画像処理は、CIE LAB値をCIE三刺激値XYZ値に変換し、そのXYZ値をカラーアピアランス変換式を用いてカラーアピアランス空間値に変換する際に、所定の条件を満たす点に対しては変換可能かつ最近傍点になる点を探索して対応するカラーアピアランス空間値を算出する。そして、得られたカラーアピアランス空間値を所定のデバイス色域にマッピングする。
【００２３】
また、CIE LAB値をCIE三刺激値XYZ値に変換し、そのXYZ値をカラーアピアランス変換式を用いてカラーアピアランス空間値に変換する際に、所定の条件を満たす点のカラーアピアランス空間値を、近傍の格子点のカラーアピアランス空間値から予測する。そして、得られたカラーアピアランス空間値を所定のデバイス色域に色域マッピングする。
【００２４】
また、CIE LAB値をCIE三刺激値XYZ値に変換し、そのXYZ値をカラーアピアランス変換式を用いてカラーアピアランス空間値に変換し、得られたカラーアピアランス空間値を所定のデバイス色域に色域マッピングする際に、所定の条件を満たす点の色域マッピング先を、その点とは異なる点に対応するマッピング先から重付演算によって決定する。
【実施例１】
【００２５】
［構成］
図4は実施例1の画像処理装置1の構成例を示すブロック図である。
【００２６】
画像処理装置1は、出力デバイスの色域データを入力する入力部101、LUT保持部108に保持されているCIE LABの格子点情報(L*a*b*)からCIE三刺激値XYZを算出するXYZ算出部102、XYZ算出部102において算出されたXYZ値からカラーアピアランス変換式を用いてJ*a*b*値を算出するカラーアピアランス変換部103、LUTを出力する出力部104、カラーアピアランス変換部103においてJ*a*b*値に変換不可能な点に対して、変換可能かつ最近傍点になる点を探索し、変換不可能な点のJ*a*b*値を算出する最近傍点算出部105、カラーアピアランス変換部103および最近傍点算出部105において算出されたJ*a*b*を色域保持部107に保持されている出力デバイスの色域へ色域マッピングする色域マッピング部106、入力部101によって入力された出力デバイスの色域データを保持する色域保持部107、CIE LAB空間上の格子点列および各値に対応するJ*a*b*値、出力デバイス色域にマッピングされた後のJ*'a*'b*'値、並びに、J*'a*'b*'値に対応する出力デバイスのDevRGB値を保持するLUT保持部108、処理途中の演算結果を一時保存するバッファメモリ109を有する。
【００２７】
［画像処理装置の動作］
図5は画像処理装置1が実行する処理例を示すフローチャートである。
【００２８】
入力部101において出力デバイスの色域データを入力し、色域保持部107に格納する(S1)。図6は出力デバイスの色域データの一例を示す図で、例えば、0≦R, G, B≦255の範囲を9スライスしたRGBデータ(729色)と、それに対応する出力デバイスの出力XYZ値を記述したデータを用いる。このXYZ値には、前記729色のRGBデータを対象の出力デバイスで出力したパッチを測色したデータを用いる。
【００２９】
次に、XYZ算出部102により、予めLUT保持部108に格納されているCIE LABで表現された所定の格子点データL*a*b*を式(3)を用いてXYZ値（XYZ格子点データ）に変換し、バッファメモリ109に保存する(S2)。図7はLUT保持部108に保持されているL*a*b*の格子点データを示す図で、格子点データはICCプロファイルにおけるDstプロファイルに用いられる形式であり、0≦L*≦100、-128≦a*≦127、-128≦b*≦127の範囲をそれぞれ33段階に均等にスライスした計35937色の格子点データである。なお、以下の説明では、33段階にスライスした格子点データを用いるが、格子点データは33スライスに限定されるものではなく、例えば9スライス、17スライス、65スライスでもよい。
f(Y) = (L* + 16)/116
f(X) = a*/500 + f(Y)
f(Z) = -b*/200 + f(Y)
f(X)3＞0.008856 のとき X = Xn・f(X)3
f(X)3≦0.008856 のとき X = {f(X) - 16/116}・Xn/7.787
f(Y)3＞0.008856 のとき Y = Yn・f(Y)3
f(Y)3≦0.008856 のとき Y = {f(Y) - 16/116}・Yn/7.787
f(Z)3＞0.008856 のとき Z = Zn・f(Z)3
f(Z)3≦0.008856 のとき Z = {f(Z) - 16/116}・Zn/7.787    …(3)
ここで、Xn、Yn、Znは白色点のXYZ値
D50の場合は(Xn, Yn, Zn)=(96.43, 100.0, 82.51)
【００３０】
式(3)には、白色点、すなわち、出力デバイスで出力した画像を観察する際の光源がD50であると仮定して計算式を示したが、観察する環境が別の環境（例えばD65）である場合はその白色点に対応したXn、Yn、Znを用いる。式(3)に示すような計算をL*a*b*格子点データすべてに適用して得られるXYZ格子点データはバッファメモリ109に保存される。
【００３１】
次に、カラーアピアランス変換部103により、XYZ算出部102によって算出されたXYZ値をカラーアピアランス変換式を用いてJ*a*b*値に変換し(S3)、最近傍点算出部105により、カラーアピアランス変換部103が変換できなかった格子点のJ*a*b*値を、その格子点の最近傍点から算出し(S4)、カラーアピアランス変換部103により、色域保持部107に保持されている出力デバイスの色域データ（XYZ値）をカラーアピアランス値J*a*b*に変換し、色域保持部107に保存し(S5)、色域マッピング部106により、J*a*b*値を出力デバイスの色域にマッピングして得られる出力デバイスのDevRGB値をLUT保持部108に保存し(S6)、出力部104により、LUT保持部108に保持されたLUTを出力する(S7)。この一連の処理における、カラーアピアランス変換部103、最近傍点算出部105および色域マッピング部106の具体的な処理は後述する。
【００３２】
［カラーアピアランス変換部］
図8はカラーアピアランス変換部103の処理(S3)を説明するフローチャートである。
【００３３】
まず、バッファメモリ109からXYZ格子点データを取得し(S31)、取得したXYZ値をカラーアピアランス空間の色値であるJ*a*b*値に変換する(S32)。その際、カラーアピアランス変換式による変換（以下「カラーアピアランス変換」と呼ぶ）の途中で計算エラーが発生した場合は、その格子点の計算は行わない。
【００３４】
次に、ステップS32の演算結果を参照して、J*a*b*値が計算できたか否かを判定し(S33)、計算ができた場合は、計算されたJ*a*b*値をLUT保持部108のカラーアピアランス値保持部1002に保存する(S34)。また、J*a*b*値が計算できなかった場合は、そのエラー処理として、LUT保持部108のカラーアピアランス値保持部1002にエラーを示す値を保存する(S35)。
【００３５】
図9はLUT保持部108の内部構造（メモリ割り当て）を示す図で、予め保持されているL*a*b*格子点データが記述されたCIE LAB値保持部1001に加え、L*a*b*格子点データの各値に対応するカラーアピアランス値J*a*b*値を格納するカラーアピアランス値保持部1002、さらに、出力デバイスのDevRGB値を保持するDevRGB値保持部1003を有し、計算されたJ*a*b*値（またはエラーを示す値）はカラーアピアランス値保持部1002に保存される。
【００３６】
次に、バッファメモリ109に保存されているXYZ格子点データのすべてをカラーアピアランス変換したか否かを判定し(S36)、すべてのデータを変換した場合は処理を終了し、未了であればステップS31に戻り、すべてのXYZ格子点データの変換が終わるまで上記を繰り返す。
【００３７】
［最近傍点算出部］
図10は最近傍点算出部105の処理(S4)を説明するフローチャートである。
【００３８】
まず、LUT保持部108のカラーアピアランス値保持部1002に保持されている格子点データを取得し(S41)、カラーアピアランス変換が不可能な格子点か否か、つまり取得した値がエラーを示すか否かを判定し(S42)、取得した値がエラーを示さないJ*a*b*値の場合はステップS47へ進む。
【００３９】
また、取得した値がエラーを示す場合は、LUT保持部108のCIE LAB値保持部1001から対応するL*a*b*値(Lt, at, bt)を取得し(S43)、Ltにおける-128≦a*≦127、-128≦b*≦127（a*、b*は整数）の範囲で全L*a*b*値(Lt, aij, bij)（i, jは0から255の整数）を作成し、バッファメモリ109に保存する(S44)。例えば、(Lt, at, bt)=(0, -128, -128)の場合はL*=0の全L*a*b*値を、(Lt, at, bt)=(50, 127, 127)の場合はL*=50の全L*a*b*値を、といった具合に作成する。
【００４０】
次に、作成した(Lt, aij, bij)をカラーアピアランス変換部103に送り、各値をカラーアピアランス値(Jt, aij, bij)に変換させ、バッファメモリ109に保存する(S45)。その際、計算不可能な点は、前述したようにエラーを示す値をバッファメモリに保存する。図11は(Lt, aij, bij)と(Jt, aij, bij)の関係例を示す図で、L*=Ltにおけるa*b*平面を表し、この平面上に(Lt, aij, bij)が張り巡らされている状態である。なお、図11には、(Lt, aij, bij)のうちカラーアピアランス変換可能な点を記号●で、不可能な点（言い換えれば、バッファメモリ109にエラーを示す値が保存された可視範囲外の点）を記号○で示す。
【００４１】
次に、バッファメモリ109に保持された(Lt, aij, bij)および(Jt, aij, bij)を用いて、格子点(Lt, at, bt)に対応するJ*a*b*値をカラーアピアランス値保持部1002に保存する(S46)（エラーを示す値がJ*a*b*値に置き換わる）。具体的には、カラーアピアランス変換することができないL*a*b*格子点(Lt, at, bt)のJ*a*b*値を、L*a*b*格子点(Lt, at, bt)に最も距離が近いカラーアピアランス変換が可能な点(Lt, aij, bij)のJ*a*b*値(Jt, aij, bij)で代用する。図12は(Lt, aij, bij)と(Lt, at, bt)の関係例を示す図で、最も(Lt, at, bt)に近い点●の(Lt, aij, bij)をカラーアピアランス変換したJ*a*b*値を(Jt, at, bt)として代用することを示している。つまり、これらの処理によって、可視範囲外の格子点のカラーアピアランス値は、その格子点から最も近い可視範囲内の点のカラーアピアランス変換値J*a*b*値で代用されることを意味する。
【００４２】
次に、カラーアピアランス値保持部1002に保持されているすべての格子点データの処理が終了したか否かを判定し(S47)、終了した場合は処理を終了し、未了であればステップS41に戻り、すべての格子点データの処理が終わるまで上記を繰り返す。
【００４３】
［色域マッピング部］
図13は色域マッピング部106の処理(S6)を説明するフローチャートである。
【００４４】
まず、LUT保持部108のカラーアピアランス値保持部1002からJ*a*b*値の格子点データ(Jt, at, bt)を取得し(S61)、色域保持部107から出力デバイスの色域を示す（ステップS5で計算された）J*a*b*値を取得し(S62)、格子点データ(Jt, at, bt)が出力デバイスの色域内にあるか否かを判定する(S63)。
【００４５】
● 色域内外の判定法
本実施例において出力デバイスの色域は、RGBを各9スライスした729点のデータ、すなわち512個の六面体によって表される。従って、格子点データ(Jt, at, bt)が512個の六面体の何れかに含まれれば、その格子点データは出力デバイスの色域内にあると判定できる。そこで、格子点データを一つずつ、六面体に含まれるか否かを判定することになるが、本実施例では、図14に示すように、六面体をさらに六つの四面体に分割し、それぞれの四面体について内外判定処理を行うことで、格子点データが六面体に含まれるか否かを判定する。
【００４６】
図15は四面体の内外判定を説明する図で、四面体の各頂点をA、B、C、Dとし、格子点データをPとし、例えばA点からB点へ向かうベクトルを↑ABで表すと、式(4)が成り立つ。
↑AP = s↑AB + t↑AC + u↑AD        …(4)
【００４７】
このとき、点Pが四面体ABCDに含まれれば式(5)および(6)が成り立つ。
s + t + u≦1                      …(5)
s≧0, t≧0, u≧0                  …(6)
【００４８】
点Pは、式(5)および(6)が成り立てば四面体の中、成り立たなければ四面体の外と判定することができる。
【００４９】
以上の四面体の内外判定を六個の四面体について行うことで、格子点データの六面体の内外判定を行うことができ、さらに、この六面体内の外判定を512個の六面体について実行することで、格子点データのデバイス色域の内外判定が完了する。
【００５０】
次に、色域内にあると判定した場合は、その格子点のマッピング後のデータ(Jk, ak, bk)に格子点データ(Jt, at, bt)を代入し(S64)、色域外にあると判定した場合は、その格子点データ(Jt, at, bt)を出力デバイスの色域の表面にマッピングする(S65)。図16は色域外の格子点データのマッピング例を示す図で、例えば、格子点データ(Jt, at, bt)とカラーアピアランス空間の中間グレイ値(J*, a*, b*)=(50, 0, 0)を結ぶ直線を定義し、その直線と出力デバイスの色域の交点に格子点データ(Jt, at, bt)をマッピングする。すなわち、マッピング後のデータ(Jk, ak, bk)に、その交点の座標値を代入する。なお、交点の算出は、出力デバイスの色域の表面に位置する隣り合う三点で構成される平面の方程式と、直線の方程式を解くことによって容易に求まるから、ここでは、その説明を省略する。
【００５１】
次に、マッピング後のデータ(Jk, ak, bk)に対応する出力デバイスのDevRGB値を算出し、LUT保持部108のDevRGB値保持部1003に保存する(S66)。DevRGB算出法の一例を図15を用いて説明する。前述したように、デバイス色域内の点は、式(4)のように表すことができ、かつ、式(5)および(6)を満たす。そこで、この条件を満たす四面体ABCDを探索し、式(4)におけるs、t、uを算出する。そして、式(7)を用いることでDevRGB値を得ることができる。
R = RA + s(RB - RA) + t(RC - RA) + u(RD - RA)
G = GA + s(GB - GA) + t(GC - GA) + u(GD - GA)      …(7)
B = BA + s(BB - BA) + t(BC - BA) + u(BD - BA)
ここで、RA, GA, BAは点Aに対応するDevRGB値
RB, GB, BBは点Bに対応するDevRGB値
RC, GC, BCは点Cに対応するDevRGB値
RD, GD, BDは点Dに対応するDevRGB値
各頂点のDevRGB値は色域保持部107に保持されている
【００５２】
次に、全格子点データの処理が終了したか否かを判定し(S67)、終了した場合は処理を終了し、未了の場合はステップS61に戻り、全格子点データの処理が終了するまで上記を繰り返す。
【００５３】
このように、カラーアピアランス空間を用いたマッピング処理を記述したICCプロファイル形式のLUTを作成する際に、カラーアピアランス変換式で計算できない点（カラーアピアランス変換が不可能な可視範囲外の格子点）のカラーアピアランス値を、可視範囲内になる最近傍の点のカラーアピアランス値で代用することで、可視範囲外の格子点についての情報の欠如がないLUTを作成することができる。従って、このLUTを用いたICCプロファイルで画像を変換する際に、可視範囲ぎりぎりの色が入力され、可視範囲外の格子点を使用して補間する場合に良好な変換結果を得ることができる。
【実施例２】
【００５４】
以下、本発明にかかる実施例2の画像処理を説明する。なお、本実施例において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００５５】
図17は実施例2の画像処理装置1の構成例を示すブロック図である。図4に示す実施例1の構成と異なるのは、実施例1の、カラーアピアランス変換部103においてJ*a*b*値に変換不可能な点に対して、変換可能かつ最近傍点になる点を探索し、変換不可能な点のJ*a*b*値を算出する最近傍点算出部105の代わりに、実施例2は、変換不可能な点のJ*a*b*値を変換可能である近傍点のJ*a*b*値を用いて予測する格子点予測部115を有することである。
【００５６】
図18は実施例2の画像処理装置1が実行する処理例を示すフローチャートである。図5に示す実施例1の処理では、ステップS4において、最近傍点算出部105により、カラーアピアランス変換部103が変換できなかった格子点のJ*a*b*値を、その格子点の最近傍点から算出したのに対して、実施例2では、格子点予測部115により、カラーアピアランス変換部103が変換できなかった格子点のJ*a*b*値を、その格子点の近傍点数点から予測する(S74)。
【００５７】
また、エラー値が入力された場合は、マッピング後データJk,ak,bkにエラー値を代入し、ステップS55へ進む。以下、色域内外判定について説明する。
【００５８】
［格子点予測部］
図19は格子点予測部115の処理(S74)を説明するフローチャートである。
【００５９】
まず、LUT保持部108のカラーアピアランス値保持部1002に保持されている格子点データを取得し(S81)、カラーアピアランス変換が不可能な格子点か否か、つまり取得した値がエラーを示すか否かを判定し(S82)、取得した値がエラーを示さないJ*a*b*値の場合はステップS86へ進む。
【００６０】
また、取得した値がエラーを示す場合は、L*方向の格子点を予測し(S83)、a*方向の格子点を予測し(S84)、b*方向の格子点を予測する(S85)。L*、a*、b*方向の格子点の予測は同一の処理であるので、その詳細は後述する。
【００６１】
次に、カラーアピアランス値保持部1002に保持されているすべての格子点データの処理が終了したか否かを判定し(S86)、終了した場合は処理を終了し、未了であればステップS81に戻り、すべての格子点データの処理が終わるまで上記を繰り返す。
【００６２】
［格子点の予測方法］
図20は格子点予測部115によるL*方向の予測を説明するフローチャートである。
【００６３】
まず、格子点のb*、a*方向の番号を示すインデックスi、jに零を代入する(S401)。なお、本実施例の場合、0≦i, j≦32であり、a*、b*ともに小さい方(-128)から大きい方(127)に向けてに番号付けされているとする。
【００６４】
次に、b*=biにおけるL*a*平面の全格子点データ（本実施例の場合は33×33=1089点）を取得し(S402)、a*=ajにおけるカラーアピアランス変換が可能な点のうち、L*値が最大の格子点を探索する(S403)。図21はb*=biにおけるL*a*平面の例を示す図で、a*=ajのライン上の格子点列から、カラーアピアランス変換が可能な点のうち最大のL*値をもつ格子点を探索する。
【００６５】
次に、探索した最大のL*値をもつ格子点および二番目に大きいL*値をもつ格子点のカラーアピアランス値を用いて、最大のL*値をもつ格子点より一段大きいL*値をもつ格子点のカラーアピアランス値を予測する(S404)。例えば、探索された最大のL*値をもつ格子点がk番目の格子点Lkajbiとすると、その格子点と二番目に大きいL*値をもつ格子点Lk-1ajbiのカラーアピアランス値JkajbiおよびJk-1ajbiから、カラーアピアランス変換が不可能な格子点Lk+1ajbiのカラーアピアランス値Jk+1ajbiを予測する。この予測には例えば式(8)のような線形予測式を用いればよい。
Jk+1ajbi = 2・Jkajbi - Jk-1ajbi      …(8)
【００６６】
次に、a*=ajにおけるカラーアピアランス変換が可能な点のうち、L*値が最小の格子点を探索する(S405)。すなわち、図21に示すL*a*平面において、a*=ajのライン上の格子点列から、カラーアピアランス変換が可能な点のうち最小のL*値をもつ格子点を探索する。
【００６７】
次に、探索した最小のL*値をもつ格子点および二番目に小さいL*値をもつ格子点のカラーアピアランス値を用いて、最小のL*値をもつ格子点より一段小さいL*値をもつ格子点のカラーアピアランス値を予測する(S406)。例えば、探索された最小のL*値をもつ格子点がp番目の格子点Lpajbiとすると、その格子点と二番目に小さいL*値をもつ格子点Lp+1ajbiのカラーアピアランス値JpajbiおよびJp+1ajbiから、カラーアピアランス変換が不可能な格子点Lp-1ajbiのカラーアピアランス値Jp-1ajbiを予測する。この予測には例えば式(9)のような線形予測式を用いればよい。
Jp-1ajbi = 2・Jpajbi - Jp+1ajbi      …(9)
【００６８】
次に、インデックスjを判定し(S407)、j＜32であればjをインクリメントし(S409)、ステップS403に戻り、j=32であればインデックスiを判定し(S408)、i＜32であればiをインクリメントし(S410)、ステップS402に戻る。また、i=32であれば処理を終了する。
【００６９】
上記ではL*方向の予測方法を説明したが、b*、a*、L*の関係を相互に置き換えることでa*、b*方向の予測方法になるから、a*、b*方向の予測方法の説明は省略する。
【００７０】
なお、格子点のカラーアピアランス値を予測する際の線形演算は、近傍の二格子点のカラーアピアランス値を用いた線形演算に限らず、例えば、近傍の三格子点のカラーアピアランス値を用いた線形演算でよい。その場合、予測演算式は、例えば式(10)および(11)のようになる。
Jk+1ajbi = 3・Jkajbi - 3・Jk-1ajbi + Jk-2ajbi      …(10)
Jp-1ajbi = 3・Jpajbi - 3・Jp+1ajbi + Jp+2ajbi      …(11)
【００７１】
さらに言えば、予測は線形演算を用いなくてもよく、格子点を予測するに足る計算式であれば、どのようなものであってもかまわない。
【００７２】
このように、カラーアピアランス空間を用いたマッピング処理を記述したICCプロファイル形式のLUTを作成する際に、カラーアピアランス変換式で計算できない点（カラーアピアランス変換が不可能な可視範囲外の格子点）のカラーアピアランス値を、可視範囲内にある、近傍の格子点のカラーアピアランス値から予測することで、可視範囲外の格子点についての情報の欠如がないLUTを作成することができる。従って、このLUTを用いたICCプロファイルで画像を変換する際に、可視範囲ぎりぎりの色が入力され、可視範囲外の格子点を使用して補間する場合に良好な変換結果を得ることができる。
【実施例３】
【００７３】
以下、本発明にかかる実施例2の画像処理を説明する。なお、本実施例において、実施例1、2と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００７４】
図22は実施例3の画像処理装置1の構成例を示すブロック図である。図4に示す実施例1の構成と異なるのは、実施例1の、カラーアピアランス変換部103においてJ*a*b*値に変換不可能な点に対して、変換可能かつ最近傍点になる点を探索し、変換不可能な点のJ*a*b*値を算出する最近傍点算出部105の代わりに、実施例3は、変換不可能な点に対応するマッピング先のDevRGB値を重み付け演算によって算出する重付演算部125を有することである。
【００７５】
図23は実施例3の画像処理装置1が実行する処理例を示すフローチャートである。実施例1、2の処理では、カラーアピアランス変換できなかった格子点のJ*a*b*値を、その格子点の最近傍点から算出したり、その格子点の近傍点数点から予測したが、実施例3では、重付演算部125により、カラーアピアランス変換が不可能な点のマッピング先のDevRGB値を算出する(S76)。
【００７６】
なお、実施例3の色域マッピング部106は、エラーを示す値を入力した場合（図13に示すS61）、マッピング後データとしてエラーを示す値を代入し(S64)、マッピング後データに対応するDevRGB値として図9に示すLUT保持部108のDevRGB値保持部1003にエラーを示す値を代入する(S66)。
【００７７】
［重付演算部］
図24は重付演算部125の処理(S76)を説明するフローチャートである。
【００７８】
まず、LUT保持部108のDevRGB値保持部1003に保持されている格子点データを取得し(S91)、カラーアピアランス変換が不可能な格子点か否か、つまり取得した値がエラーを示すか否かを判定し(S92)、取得した値がエラーを示さないJ*a*b*値の場合はステップS96へ進む。
【００７９】
また、取得した値がエラーを示す場合は、L*方向の重み付け演算を行い(S93)、a*方向の重み付け演算を行い(S94)、b*方向の重み付け演算を行い(S95)、DevRGB値を算出する。なお、L*、a*、b*方向の重付演算は同一の処理であるので、その詳細は後述する。
【００８０】
次に、DevRGB値保持部1003に保持されているすべての格子点データの処理が終了したか否かを判定し(S96)、終了した場合は処理を終了し、未了であればステップS91に戻り、すべての格子点データの処理が終わるまで上記を繰り返す。
【００８１】
［重み付け演算によるDevRGB値の算出］
図25は重付演算部125によるL*方向の重み付け演算によるDevRGB値の算出を説明するフローチャートである。
【００８２】
まず、格子点のb*、a*方向の番号を示すインデックスi、jに零を代入する(S601)。なお、本実施例の場合、0≦i, j≦32であり、a*、b*ともに小さい方(-128)から大きい方(127)に向けてに番号付けされているとする。
【００８３】
次に、b*=biにおけるL*a*平面の全格子点データ（本実施例の場合は33×33=1089点）を取得し(S602)、a*=ajにおけるカラーアピアランス変換が可能な点のうち、L*値が最大の格子点を探索する(S603)。図21に示すb*=biにおけるL*a*平面のa*=ajのライン上の格子点列から、カラーアピアランス変換が可能な点のうち最大のL*値をもつ格子点を探索する。
【００８４】
次に、探索した最大のL*値をもつ格子点および二番目に大きいL*値をもつ格子点のマッピング先のDevRGB値を用いて、最大のL*値をもつ格子点より一段大きいL*値をもつ格子点に対応するDevRGB値を計算する(S604)。例えば、探索された最大のL*値をもつ格子点がk番目の格子点Lkajbiとすると、その格子点と二番目に大きいL*値をもつ格子点Lk-1ajbiのマッピング先のDevRGB値RkGjBiおよびRk-1GjBiから、カラーアピアランス変換が不可能な格子点Lk+1ajbiに対応するDevRGB値Rk+1GjBiを計算する。この計算には例えば式(12)のような線形予測式を用いればよい。
Rk+1GjBi = u・RkGjBi + v・Rk-1GjBi      …(12)
ここで、u、vは重み
【００８５】
次に、a*=ajにおけるカラーアピアランス変換が可能な点のうち、L*値が最小の格子点を探索する(S605)。すなわち、図21に示すL*a*平面において、a*=ajのライン上の格子点列から、カラーアピアランス変換が可能な点のうち最小のL*値をもつ格子点を探索する。
【００８６】
次に、探索した最小のL*値をもつ格子点および二番目に小さいL*値をもつ格子点のマッピング先のDevRGB値を用いて、最小のL*値をもつ格子点より一段小さいL*値をもつ格子点に対応するDevRGB値を計算する(S606)。例えば、探索された最小のL*値をもつ格子点がp番目の格子点Lpajbiとすると、その格子点と二番目に小さいL*値をもつ格子点Lp+1ajbiのマッピング先のDevRGB値RpGjBiおよびRp+1GjBiから、カラーアピアランス変換が不可能な格子点Lp-1ajbiに対応するDevRGB値Rp-1GjBiを計算する。この計算には例えば式(13)のような線形予測式を用いればよい。
Rp-1GjBi = u・RpGjBi + v・Rp+1GjBi      …(13)
ここで、u、vは重み
【００８７】
次に、インデックスjを判定し(S607)、j＜32であればjをインクリメントし(S609)、ステップS603に戻り、j=32であればインデックスiを判定し(S608)、i＜32であればiをインクリメントし(S610)、ステップS602に戻る。また、i=32であれば処理を終了する。
【００８８】
上記ではL*方向の重み付け演算を説明したが、b*、a*、L*の関係を相互に置き換えることでa*、b*方向の重み付け演算になるから、a*、b*方向の重み付け演算の説明は省略する。
【００８９】
なお、格子点に対応するDevRGB値を計算する際の線形演算は、近傍の二格子点のカラーアピアランス値を用いた線形演算に限らず、例えば、近傍の三格子点のカラーアピアランス値を用いた線形演算でよい。その場合、予測演算式は、例えば式(14)および(15)のようになる。
Rk+1GjBi = u・RkGjBi + v・Rk-1GjBi + w・Rk-2GjBi      …(14)
Rp-1GjBi = u・RpGjBi + v・Rp+1GjBi + w・Rp+2GjBi      …(15)
ここで、u、v、wは重み
【００９０】
さらに言えば、予測は線形演算を用いなくてもよく、格子点を予測するに足る計算式であれば、どのようなものであってもかまわない。
【００９１】
このように、カラーアピアランス空間を用いたマッピング処理を記述したICCプロファイル形式のLUTを作成する際に、カラーアピアランス変換式で計算できない点（カラーアピアランス変換が不可能な可視範囲外の格子点）のマッピング先を、その点の近傍の格子点のマッピング先のDevRGB値を使用した重み付け演算で計算することにより、可視範囲外の格子点についても情報の欠如がないLUTを作成することができる。従って、このLUTを用いたICCプロファイルで画像を変換する際に、可視範囲ぎりぎりの色が入力され、可視範囲外の格子点を使用して補間する場合に良好な変換結果を得ることができる。
【００９２】
［変形例］
上記実施例においては、入力部101で読み込む出力デバイス色域データをCIE三刺激値XYZ値として説明したが、予めカラーアピアランス変換したカラーアピアランス値J*a*b*を入力してもよい。
【００９３】
また、上記実施例においては、入力される出力デバイス色域をRGB各9スライスしたデータのCIE三刺激値XYZ値としたが、9スライスに限定されるわけではなく、出力デバイスの色域がわかる程度のスライス数であれば何でもよい。例えば計算量を減らすためにスライス数を5や7に減らしてもよいし、精度を上げるために12や17に増やしてもよく、用途によって使い分けることができる。
【００９４】
また、上記実施例における色域マッピング部106の処理は、出力デバイス色域内の色はそのまま表現し、色域外の色は色域の表面に貼り付ける方法を採用したが、これに限定されず、例えば、色域内の色を特定の色に変換したり、色域外の色も階調を保つようにマッピングしたりするような方法をとってもよい。
【００９５】
また、上記実施例においては、人間の視覚特性を高精度にモデル化したカラーアピアランス空間を用いる例を説明したが、カラーアピアランス空間の例としては例えばCIEで規定（推奨）されているCIE CAM97s、CIE CAM02などがある。
【００９６】
また、カラーアピアランス変換ができない色を入力可能なルックアップテーブルでは、同様の問題が生じる。従って、上記の実施例においては、ICCプロファイル形式に準拠したルックアップテーブルを作成したが、ICCプロファイル形式に準拠していないルックアップテーブルを作成する場合にも、本発明を適用することが可能である。
【００９７】
上述した実施例によれば、カラーアピアランス空間における色域マッピング処理をICCプロファイル化したLUTを作成することができる。その際、カラーアピアランス変換が不可能な可視範囲外の格子点のカラーアピアランス値を、その格子点に最近傍の可視範囲内の点のカラーアピアランス値で代用する、可視範囲内にある、近傍の点のカラーアピアランス値から予測する、あるいは、カラーアピアランス変換が不可能な可視範囲外の格子点のマッピング先を、その点の近傍の格子点のマッピング先の値を使用した重み付け演算で計算する、ことにより可視範囲外の格子点についての情報欠如がないLUTを作成する。従って、このLUTを用いたICCプロファイルで画像を変換する際に、可視範囲ぎりぎりの色が入力され、可視範囲外の格子点を使用して補間する場合にも、良好な変換を行って良好な画像を出力することができる。
【００９８】
［他の実施例］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００９９】
また、本発明の目的は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【０１００】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【０１０１】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１０２】
【図１】ICCプロファイルを用いるカラーマッチング処理を示す図、
【図２】カラーアピアランス空間を用いるカラーマッチング処理を、ICCプロファイルを用いて実現する際の処理の流れを示す図、
【図３】ICCプロファイル形式のLUTにおけるCIE Lab格子点と、カラーアピアランス空間の関係例を示す図、
【図４】実施例1の画像処理装置の構成例を示すブロック図、
【図５】画像処理装置が実行する処理例を示すフローチャート、
【図６】出力デバイスの色域データの一例を示す図、
【図７】LUT保持部に保持されているL*a*b*の格子点データを示す図、
【図８】カラーアピアランス変換部の処理を説明するフローチャート、
【図９】LUT保持部の内部構造を示す図、
【図１０】最近傍点算出部の処理を説明するフローチャート、
【図１１】(Lt, aij, bij)と(Jt, aij, bij)の関係例を示す図、
【図１２】(Lt, aij, bij)と(Lt, at, bt)の関係例を示す図、
【図１３】色域マッピング部の処理を説明するフローチャート、
【図１４】内外判定処理のための六面体の分割例を説明する図、
【図１５】四面体の内外判定を説明する図、
【図１６】色域外の格子点データのマッピング例を示す図、
【図１７】実施例2の画像処理装置の構成例を示すブロック図、
【図１８】画像処理装置が実行する処理例を示すフローチャート、
【図１９】格子点予測部の処理を説明するフローチャート、
【図２０】格子点予測部によるL*方向の予測を説明するフローチャート、
【図２１】格子点予測部によるL*方向の予測を説明する図、
【図２２】実施例3の画像処理装置の構成例を示すブロック図、
【図２３】画像処理装置が実行する処理例を示すフローチャート、
【図２４】重付演算部の処理を説明するフローチャート
【図２５】重付演算部によるL*方向の重み付け演算によるDevRGB値の算出を説明するフローチャートである。
【図１】
2005295154.tif 000003
【図２】
2005295154.tif 000004
【図３】
2005295154.tif 000005
【図４】
2005295154.tif 000006
【図５】
2005295154.tif 000007
【図６】
2005295154.tif 000008
【図７】
2005295154.tif 000009
【図８】
2005295154.tif 000010
【図９】
2005295154.tif 000011
【図１０】
2005295154.tif 000012
【図１１】
2005295154.tif 000013
【図１２】
2005295154.tif 000014
【図１３】
2005295154.tif 000015
【図１４】
2005295154.tif 000016
【図１５】
2005295154.tif 000017
【図１６】
2005295154.tif 000018
【図１７】
2005295154.tif 000019
【図１８】
2005295154.tif 000020
【図１９】
2005295154.tif 000021
【図２０】
2005295154.tif 000022
【図２１】
2005295154.tif 000023
【図２２】
2005295154.tif 000024
【図２３】
2005295154.tif 000025
【図２４】
2005295154.tif 000026
【図２５】
2005295154.tif 000027