(57)【要約】【課題】  入力色域のすべてを出力色域にマッピングするマッピング方法は、実際には使用されていない色域までも出力色域にマッピングすることになり、必要以上に彩度の低下や階調の潰れを発生させる。【解決手段】  入力デバイスに対応する入力色域データを取得し、設定する(S2)。次に、入力デバイスに対応する使用色域データを取得し、設定する(S3)。次に、出力デバイスに対応する出力色域データを取得し、設定する(S4)。次に、設定した入力色域データおよび使用色域データに基づき、入力画像を使用色域にマッピングする(S5)。次に、設定した使用色域データおよび出力色域データに基づき、使用色域にマッピングした画像を出力色域にマッピングする(S6)。【選択図】  図5
2006254369.tif 000002
【特許請求の範囲】
【請求項１】
第一のデバイスの画像データを第二のデバイスの色域にマッピングする色処理方法であって、
前記第一のデバイスが出力し得る色域を示す第一の色域情報、および、前記第二のデバイスの色域を示す第二の色域情報を取得する取得ステップと、
前記第一のデバイスの画像データを、前記第一の色域情報が示す色域内にマッピングする第一のマッピングステップと、
前記第一のマッピングステップによりマッピングした画像データを、前記第二の色域情報が示す色域内にマッピングする第二のマッピングステップとを有することを特徴とする色処理方法。
【請求項２】
前記第一のマッピングステップは、前記第一の色域情報が示す色域外の前記第一のデバイスの画像データを、前記第二の色域情報が示す色域の表面にマッピングすることを特徴とする請求項1に記載された色処理方法。
【請求項３】
前記第二のマッピングステップは、前記第一のマッピングステップによりマッピングされた画像データを、前記第二の色域情報が示す色域内に階調を保持するようにマッピングすることを特徴とする請求項1または請求項2に記載された色処理方法。
【請求項４】
前記第一の色域情報は、前記第一のデバイスの色処理条件に基づき求められることを特徴とする請求項1から請求項3の何れかに記載された色処理方法。
【請求項５】
前記第一のデバイスはディジタルカメラであり、前記第一のデバイスの画像データは規格化されたRGB色空間で示されることを特徴とする請求項1から請求項4の何れかに記載された色処理方法。
【請求項６】
第一のデバイスの画像データを第二のデバイスの色域にマッピングする色処理装置であって、
前記第一のデバイスが出力し得る色域を示す第一の色域情報、および、前記第二のデバイスの色域を示す第二の色域情報を取得する取得手段と、
前記第一のデバイスの画像データを、前記第一の色域情報が示す色域内にマッピングする第一のマッピング手段と、
前記第一のマッピング手段によってマッピングされた画像データを、前記第二の色域情報が示す色域内にマッピングする第二のマッピング手段とを有することを特徴とする色処理装置。
【請求項７】
請求項1から請求項5の何れかに記載された色処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第一のデバイスの画像データを第二のデバイスの色域にマッピングする色処理に関する。
【背景技術】
【０００２】
パーソナルコンピュータの普及に伴い、ディジタルカメラ、カラースキャナなどの入力デバイスによって画像を入力し、その画像をCRT、LCDなどの表示デバイスに表示し、確認して、さらに、その画像をカラープリンタなどの出力デバイスを使用して印刷するシステムが発達した。このシステムは、入力デバイスが画像を入力する際の色空間の色域（以下、入力色域）と、表示、出力デバイスの色域（以下、出力色域）の差による色の見えの違いを補正するために、カラーマッチング処理（色域マッピング）を行うのが通例である。このカラーマッチング処理を行うことで、デバイス間の色の見えの差を吸収する。
【０００３】
色域マッピングに関して様々な手法が提案されているが、特に写真画像を対象にする色域マッピングには写真画像の階調を保存するようなマッピング方法が用いられる。例えば、図1に示すように、各色相面において、入力色域の明度ごとの最大彩度Cinmaxを、出力色域の同じ明度の最大彩度Coutmaxにマッピングし、内部の低彩度部は、その色の彩度と最大彩度の比Cin/Cinmaxに対応する比Cout/Coutmaxをもつ出力色域の色にマッピングする方法や、図2に示すように入力色域内の、出力色域の最大彩度と定数x%の積k=x/100×Coutmaxまでの色はそのまま保存し、kより彩度が高い色は、出力色域の残り彩度領域Coutmax-kの領域にマッピングする方法、などが挙げられる。
【０００４】
上述の色域マッピングを用いる場合、入力色域で再現される階調を出力色域において概ね再現することができる。しかし、入力色域と出力色域の彩度差が非常に大きい場合は、前者の方法はマッピング前後で彩度の大幅な低下が発生し、後者の方法は圧縮部分（高彩度部）の階調がほとんど潰れてしまう問題が発生する。
【０００５】
ディジタルカメラに代表される入力デバイスは、例えばsRGBのような色空間で画像を入力するものの、sRGBの色域、すなわち入力色域のすべてを使用するわけではない。これは、入力デバイスの色作りのための色変換処理に起因する。この色変換処理によって、図3に例示するように、ディジタルカメラでどのようなシーンを撮影したとしても、入力色域であるsRGBの色域内の一部の色域しか利用されない。それにもかかわらず、上述した二例を含むほとんどのマッピング方法は、入力色域のすべてを出力色域にマッピングするため、実際には使用されていない色域までも出力色域にマッピングすることになり、必要以上に彩度の低下や階調の潰れを発生させる。
【０００６】
特開2000-83177公報は、入力画像の色分布を解析し、入力画像に存在する色域までを出力色域に圧縮する方法を開示する。これにより、圧縮が不要な色域まで圧縮することによる彩度の低下や階調の潰れを防止することができる。しかし、この方法は、画像の色分布によって圧縮の度合いが変わるため、被写体の背景など、被写体以外の色によって被写体の色が変化する可能性がある。
【０００７】
【特許文献１】特開2000-83177公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、色域のマッピングにおける必要以上の彩度の低下や階調の潰れを防ぐことを目的とする。
【０００９】
また、画像の色分布によって色再現が変化することを防ぐことを他の目的とする。
【課題を解決するための手段】
【００１０】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１１】
本発明にかかる色処理は、第一のデバイスの画像データを第二のデバイスの色域にマッピングする際に、第一のデバイスが出力し得る色域を示す第一の色域情報、および、第二のデバイスの色域を示す第二の色域情報を取得し、第一のデバイスの画像データを、第一の色域情報が示す色域内にマッピングし、マッピングした画像データを、第二の色域情報が示す色域内にマッピングすることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、画像データの色空間の色域内で、画像データが存在し得る色域を考慮して色域をマッピングすることで、必要以上の彩度の低下や階調の潰れを防ぐことができる。
【００１３】
また、画像の色分布によって色再現が変化することを防ぐことができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。
【００１５】
［概要］
ディジタルカメラは、ターゲットとする色域（入力色域）のすべてを使用しない。従って、入力色域をプリンタの出力色域にマッピングすると、必要以上に圧縮することになる。ただし、ユーザがレタッチソフトなどを利用してディジタルカメラの出力画像を編集（色調整）した場合は、ディジタルカメラが実際に出力し得る色の色域（以下、使用色域）を超えた、入力色域と使用色域の間の色が存在する可能性がある。
【００１６】
そこで、入力色域の色を使用色域にマッピングして、入力色域と使用色域の間の色は使用色域の表面にマッピングし、使用色域にマッピングした色を出力色域にマッピングする。言い換えれば、使用色域の色は階調性を保つように出力色域にマッピングし、入力色域と使用色域の間の色は階調を潰して出力色域にマッピングする。なお、使用色域の取得方法は後述する。
【００１７】
これにより、色域のダイナミックレンジを不必要に圧縮することなく、ディジタルカメラなどの入力デバイスが出力し得る色域を、プリンタなどの出力デバイスの色域にマッピングすることができる。
【実施例１】
【００１８】
［装置の構成］
図4は実施例の画像処理装置1の構成例を示すブロック図である。
【００１９】
入力部101は、入力デバイス2からカラー画像データを入力する。入力色域設定部102は、入力デバイス2の色域に対応する入力色域を設定する。使用色域設定部103は、実際に入力デバイス2が出力し得るデータの色域、つまり入力色域内の色域である使用色域を設定する。出力部104は、後述する画像処理後の画像データを出力デバイス3に出力する。なお、入力部101および出力部104には、例えばUSB (Universal Serial Bus)やIEEE1394などのシリアルバスインタフェイスを利用すればよい。また、入力部101としてメモリカードリーダを設定し、メモリカードからカラー画像データを入力してもよい。
【００２０】
出力色域設定部105は、出力デバイス3の色域に対応する出力色域を設定する。第一色域マッピング部106は、入力色域設定部102によって設定した入力色域内の色データを、使用色域設定部103によって設定した使用色域にマッピングする。第二色域マッピング部107は、第一色域マッピング部106がマッピング後の色データを、出力色域設定部105によって設定した出力色域にマッピングする。
【００２１】
色域情報保持部108は、入力色域、使用色域および出力色域の色域情報を保持する、例えばハードディスクのような不揮発性メモリである。また、バッファメモリ109は、演算途中の各データを一時保存する、例えばRAMのようなメモリである。
【００２２】
制御部110は、システムバス111を介して上記の各構成を制御する、例えばCPUである。制御部110は、バッファメモリ109をワークメモリとして、例えばハードディスクやROMなどに格納されたプログラムを実行することで、後述する画像処理などを実行する。
【００２３】
［画像処理］
図5は画像処理装置1の画像処理例を示すフローチャートで、制御部110によって実行される処理である。
【００２４】
まず、入力部101により、入力デバイス2からカラー画像データを入力し、バッファメモリ108に保存する(S1)。続いて、入力色域設定部102により、色域情報保持部108から入力デバイス2に対応する入力色域データ1001（図6参照）を取得し、第一色域マッピング部106に設定する(S2)。なお、入力デバイス2の機種情報は入力部101と入力デバイス2の通信によって得てもよいし、図示しない、モニタに表示したユーザインタフェイスを利用してユーザに設定させてもよい。あるいは、画像データに付加されたデータによって入力デバイスの機種情報を得てもよい。
【００２５】
図6は色域情報保持部108が保持する色域情報の構成例を示す図である。
【００２６】
色域情報保持部108は、入力デバイスの入力色域データ1001、入力デバイスの使用色域データ1002、および、出力デバイスの出力色域データ1003を保持する。さらに、入力色域データ1001は、図7に示すように、入力デバイスが扱う色空間（例えばsRGB色空間）を、そのRGB値（例えば、各0から255の8ビット）で例えば八分割した93=729組のデータ、並びに、各組のRGB値に対応する測色値（CIELAB値）が記録されている
【００２７】
次に、使用色域設定部103により、色域情報保持部108から入力デバイス2に対応する使用色域データ1002を取得し、使用色域を設定する(S3)。使用色域は、入力デバイスが出力し得る色データの色域であり、図3に一例を示したように、入力色域と一致することは少なく、入力色域の一部であることが多い。使用色域設定部103は、入力デバイス2に対応する使用色域データ1002を取得して、第一色域マッピング部106および第二色域マッピング部107に設定する。なお、使用色域の算出法は後述するが、色域情報保持部108に保持されている使用色域データ1002の記述形式は、入力色域データ1001と同じである。
【００２８】
次に、出力色域設定部104により、色域情報保持部108から出力デバイス3に対応する出力色域データ1003を取得し、第二色域マッピング部107に設定する(S4)。出力色域データ1003も入力色域データ1001と同様に、図7に示す形式で記述されている。勿論、CMYK値とCIELAB値の関係を示す形式でもよい。なお、出力デバイス3の機種情報は出力部104と入力デバイス3の通信によって得てもよいし、図示しない、モニタに表示したユーザインタフェイスを利用してユーザに設定させてもよい。
【００２９】
次に、第一色域マッピング部106により、設定された入力色域データ1001および使用色域データ1002に基づき、バッファメモリ108に保存されている入力画像の各画素の値を使用色域の表面にマッピングし、バッファメモリ108に保存する(S5)。
【００３０】
次に、第二色域マッピング部107により、設定された使用色域データ1002および出力色域データ1003に基づき、ステップS5で使用色域にマッピングした画像の各画素の値を出力色域にマッピングし、バッファメモリ108に保存する(S6)。
【００３１】
次に、出力部104により、出力色域にマッピングした画像をバッファメモリ108から読み出し、出力デバイス3に出力する(S7)。なお、バッファメモリ108にマッピング後の値として、出力デバイス3のデバイスRGB値が格納されている場合、制御部110または出力部104は、必要に応じて、デバイスRGB値をデバイスCMYK値に変換して出力する。その際、制御部110または出力部104が参照するデータは、例えば色域情報保持部108にRGB-CMYK変換テーブルとして格納されている。
【００３２】
［第一色域マッピング部］
図8は第一色域マッピング部106の処理(S5)を示すフローチャートである。
【００３３】
まず、バッファメモリ108に保持されている入力画像の画素値（RGB値）を取得する(S51)。各画素は、画像の左上から順に画素番号iがふられており、まず、画素番号i=0のRGB値を取得する。
【００３４】
次に、取得した画素値をCIELAB値に変換する。実施例1では、入力画像の表現色空間がsRGB（IEC61966-2-1） として以後の処理を説明する。画素値をRi、Gi、Biとすると、まず、式(1)を用いてCIE三刺激値XYZに変換する。
┌  ┐ ┌                    ┐┌  ┐
│Xi│ │0.4124 0.3576 0.1805││Ri│
│Yi│=│0.2126 0.7152 0.0722││Gi│      …(1)
│Zi│ │0.0193 0.1192 0.9505││Bi│
└  ┘ └                    ┘└  ┘
【００３５】
その後、白色点をD65として、式(2)によりCIELAB値に変換する。
Yi/Yn＞0.008856の場合は Li* = 116(Yi/Yn)1/3 - 16
Yi/Yn≦0.008856の場合は Li* = 903.29(Yi/Yn)
ai* = 500[f(Xi/Xn) - f(Yi/Yn)]
bi* = 200[f(Yi/Yn) - f(Zi/Zn)]
Xi/Xn＞0.008856の場合は f(Xi/Xn) = (X/Xn)1/3
Xi/Xn≦0.008856の場合は f(Xi/Xn) = 7.78X/Xn + 16/116
Yi/Yn＞0.008856の場合は f(Yi/Yn) = (Y/Yn)1/3
Yi/Yn≦0.008856の場合は f(Yi/Yn) = 7.78Y/Yn + 16/116
Zi/Zn＞0.008856の場合は f(Zi/Zn) = (Z/Zn)1/3
Zi/Zn≦0.008856の場合は f(Zi/Zn) = 7.78Z/Zn + 16/116      …(2)
ここで、 Xn、Yn、Znは白色点のXYZの値
D65の場合はXn=95.05、Yn=100.0、Zn=108.91
【００３６】
入力画像がIEC61966-2-1で規定されるsRGB色空間で表現される場合は式(1)および(2)の変換式を使用する。なお、入力画像がsRGB以外の色空間で表される場合は、式(1)は当該色空間に対応するものになり、CIELAB値へ変換する際の白色点も当該色空間に対応する白色点を用いる。また、その場合、入力色域データ1001も当該色空間のデータになる。以下では、CIELAB値に変換された画素値を(Li, ai, bi)とする。
【００３７】
次に、画素値(Li, ai, bi)が使用色域内にあるか否かの内外判定を行う(S53)。
【００３８】
先に説明したように、使用色域データ1002は、図7に示すように、例えば729組のRGB値と、それらに対応するCIELAB値からなる。言い換えれば、使用色域データ1002は、729組のLAB値から構成される512個の六面体からなる。従って、色域の内外判定は、画素値(Li, ai, bi)が何れかの六面体に含まれるか否かを判定する。実施例1では、図9に示すように、六面体をさらに六つの四面体に分割し、四面体について内外判定を行うことで、画素値(Li, ai, bi)が使用色域内にあるか否かを判定する。
【００３９】
図10は四面体を用いる内外判定を説明する図である。
【００４０】
四面体の各頂点をA、B、C、Dとし、入力データをPとすると、各頂点と点Pの関係は式(3)で表される。
↑AP = s↑AB + t↑AC + u↑AD      …(3)
ここで↑XYは点Xから点Yを指すベクトル
【００４１】
点Pが四面体ABCDの中にあれば、式(4)(5)がなり立つ。
s + t + u ≦ 1              …(4)
s ≧ 0、t ≧ 0、u ≧ 0      …(5)
【００４２】
従って、点Pは、式(4)(5)がなり立てば四面体ABCDの中にあり、なり立たなければ四面体ABCDの外にあると判定する。一つの画素値(Li, ai, bi)に対して、以上の四面体の内外判定を六個の四面体について行い（六面体の内外判定）、さらに、六面体の内外判定を512個の六面体について行うことで、使用色域の内外判定が終了する。
【００４３】
次に、色域の内外判定により使用色域内にあると判定した画素は、マッピング後のデータ(Li', ai', bi')に(Li, ai, bi)を代入、つまりマッピングしない。また、使用色域外と判定した画素は、使用色域の表面にマッピングする(S54)。
【００４４】
図11はマッピングを説明する図である。使用色域において、例えば明度範囲の中央（L*軸上のL*=50の点）と、入力点（画素値Li, ai, bi）を結ぶ線分（マッピング線）を定義し、このマッピング線と使用色域の交点に入力点をマッピングする。つまり、マッピング後のデータ(Li', ai', bi')として当該交点の座標値を代入する。
【００４５】
交点の座標値は次のようにして計算する。まず、使用色域データ1002から使用色域の表面データを取得する。表面データは、RGBの何れかが0または255をもつデータである。また、表面データは、図12に示すように、Rが255の表面（以下、R255表面）、Gが255の表面（以下、G255表面）、Bが255の表面（以下、B255表面）、Rが0の表面（以下、R0表面）、Gが0の表面（以下、G0表面）、Bが0の表面（以下、B0表面）の六つに分けられる。各表面は、81個の格子点を有し、128個の三角形パッチで構成される。従って、これら三角形パッチの各頂点のCIELAB値を表面ごとに取得し、表面データとする。
【００４６】
次に、各表面の128個の三角形パッチとマッピング線の交点を計算する。交点は、各三角形パッチの平面の方程式と、マッピング線の方程式から容易に求めることができる。そして、交点が三角形パッチ内にあるか否かを判定する。この内外判定は、前述した四面体の内外判定の二次元版である。すなわち、図13に示すように、三角形パッチの各頂点をA、B、Cとし、交点をPとすると式(6)で表すことができる。
↑AP = s↑AB + t↑AC      …(6)
ここで↑XYは点Xから点Yを指すベクトル
【００４７】
点Pが三角形ABCの中にあれば、式(7)(8)がなり立つ。
s + t  ≦ 1              …(7)
s ≧ 0、t ≧ 0            …(8)
【００４８】
そして、求めた三角形パッチの三つの頂点座標のCIELAB値から線形補間により交点の座標値（マッピング後のデータLi', ai', bi'）を計算する。
【００４９】
次に、マッピング後のデータ(Li', ai', bi')をバッファメモリ108に格納し(S55)、入力画像の全画素の処理が終了したか否かを判定し(S56)、全画素の処理が終了するまで画素番号iをインクリメントして、ステップS51からS55の処理を繰り返す。
【００５０】
このように、第一色域マッピング部は、使用色域外の入力点を使用色域の表面にマッピングする。
【００５１】
［第二色域マッピング部］
図14は第二色域マッピング部107の処理(S6)を示すフローチャートである。
【００５２】
まず、出力色域内の収束点OおよびパラメータX(%)を設定する(S61)。収束点Oは、マッピングの方向を規定する点であり、例えばCIELAB値が(50, 0, 0)の点とする。また、パラメータXは、詳細は後述するが、圧縮領域と非圧縮領域を切り替えるためのパラメータである。なお、収束点OおよびパラメータXは、予め第二色域マッピング部107に保持しておいてもよいし、外部から入力してもよい。
【００５３】
次に、使用色域にマッピングされた画素値(Li', ai', bi')を入力Iiとして取得する(S62)。前述したように、各画素は、画像の左上から順に画素番号iがふられており、まず、画素番号i=0の画素値を取得する。
【００５４】
次に、図15に示すように、収束点Oと入力点Iiを結ぶ直線OIiの方程式を算出し、直線OIiと使用色域の交点Pおよび出力色域の交点Qを算出し、パラメータXを用いて、圧縮領域と非圧縮領域の切り替え点Rを式(9)を使用して算出する。
↑OR = X/100×↑OQ      …(9)
ここで、↑XYは点Xから点Yを指すベクトル
【００５５】
次に、入力点Iiが線分OR上に存在するか否かを判定し(S64)、線分OR上に存在する場合は入力点Iiのマッピングは不要と判断して、マッピング後のデータ(Li", ai", bi")に(Li', ai', bi')をそのまま代入する。また、入力点Iiが線分OR上に存在しない場合は、式(10)を用いて入力点Iiを出力色域内にマッピングする(S65)。
↑OIi' = ↑OR + |↑QR|/|↑PR|×↑RIi      …(10)
ここで、↑XYは点Xから点Yを指すベクトル
【００５６】
次に、出力色域データ1003を参照して、マッピング後のデータ(Li", ai", bi")から出力デバイス3のデバイスRGB値（またはCMYK値）を算出し、バッファメモリ108に保存する(S66)。デバイスRGB（またはCMYK）の算出は、例えば色域の内外判定の説明したように、出力色域を構成する四面体からマッピングデータ(Li", ai", bi")を包む四面体を探索し、当該四面体の各頂点のRGB値（またはCMYK値）から線形補間を用いて算出する。
【００５７】
次に、画像の全画素の処理が終了したか否かを判定し(S67)、全画素の処理が終了するまで画素番号iをインクリメントして、ステップS61からS66の処理を繰り返す。
【００５８】
このように、第二色域マッピング部は、出力色域外の入力点を階調を保持するように出力色域内にマッピングする。
【００５９】
［使用色域の取得方法］
入力デバイスは、ディジタルカメラを例にとると、被写体からの光を、レンズ、カラーフィルタを通して、CCDやCMOSなどのセンサで受け取り、センサはrawRGBを出力する。そして、rawRGBに、色変換、例えばホワイトバランス補正などのためのゲイン調整やマトリクス変換などを施して、画像を表現する色空間（例えばsRGB）の画像データにして保存または出力する。
【００６０】
そこで、ディジタルカメラで内部演算が施される前のrawRGBとして、擬似的なRGBデータを入力し、ゲイン調整やマトリクス変換などの色変換を施すことで、実際色域を算出する。例えば、rawRGBのビット数を各色8ビットと仮定すると、rawRGBがとり得る範囲、すなわち0≦R, G, B≦255の範囲を八分割（9スライス）した擬似的なRGBデータをrawRGBデータと仮定し、ディジタルカメラの内部処理を施して、その処理データを取得すれば、rawRGBデータとディジタルカメラが出力し得るデータの関係を示す使用色域データ1002が得られる。
【００６１】
このようにして得た使用色域データ1002を、入力デバイスや出力デバイスのカラーマッチング用のデータとして、あるいは、デバイスドライバソフトに組み込んで、入力色域データ1001、出力色域データ1003などとともに配布する。画像処理装置1のユーザは、入手した色域データを色域情報保持部108に格納する。
【００６２】
一般に、ディジタルカメラなどが出力する画像の色空間はsRGBもしくはAdobeRGBなどの規格化されたRGB色空間であり、その規格から逸脱した色空間を用いると、好ましくない色が印刷される可能性がある。そこで、ディジタルカメラが出力する画像は、あくまで規格に則った色空間のデータにしておき、その画像を印刷する場合は、ディジタルカメラまたはプリンタに付属した、ディジタルカメラの使用色域データ1002を用いてマッピングするカラーマッチング方法が好ましいと言える。
【００６３】
このように、入力デバイスから出力されるカラー画像を出力デバイスに出力する際に、実際に入力デバイスが出力し得る使用色域を考慮して、使用色域のみ階調を保つように出力色域にマッピングすることで、色域のダイナミックレンジを不必要に圧縮することなく、階調の潰れや、彩度の低下を防ぐことができる。
【００６４】
また、入力デバイスで取得したカラー画像を出力デバイスで出力する際に、入力デバイスが実際に出力し得る使用色域の階調を保って色域をマッピングすることができ、カラー画像の大幅な彩度の低下や、階調の潰れを防止することができる。
【００６５】
また、パーソナルコンピュータ上の処理によって、使用色域外の色がカラー画像に加えられたとしても、出力色域外の色が発生することはなく、マッピングエラーが発生することはない。なお、使用色域外の色がある場合、その旨をユーザに通知して、使用色域へのマッピングを行うか否かをユーザが選択できるようにしてもよい。
【００６６】
さらに、画像自体の色域ではなく、入力デバイスの使用色域を用いて色域マッピングを行うため、画像によって色再現が変化することはない。
【００６７】
［変形例］
上記では、入力画像がsRGB(IEC61966-2-1)色空間で表現されていると仮定して、処理を説明したが、画像処理装置1へ入力される画像の色空間はsRGBに限るものではなく、どのような色空間でもよい。
【００６８】
また、上記では、色域情報保持部108に色域情報を予め保持する例を説明したが、例えば、入力部101によって、入力画像とともに外部から入力するようにしてもよい。また、色域情報保持部108に複数の色域情報を予め保持させ、外部からの入力に対応する色域情報を選択するようにしてもよい。
【００６９】
また、上記では、第一色域マッピング部106の処理は、使用色域内の色は完全に保存し、使用色域外の色をある方向に向かって使用色域表面にマッピングする手法を説明したが、例えば、使用色域外の色は、その明度を保って使用色域表面にマッピングするようにしてもよい。また、色相を変えずにCIELAB色空間内のユークリッド距離（色差ΔE）が最小になるようにマッピングするようにしてもよい。
【００７０】
また、上記では、第二色域マッピング部107の処理は、出力色域内のX%の色を保存し、それ以外の色は出力色域内の(100-X)%領域にマッピングする手法を説明したが、この方法に限らず、階調をなるべく保存するようにマッピングする方法であれば、どのようなマッピング方法であってもよい。
【００７１】
また、上記では、第一色域マッピング部106の処理により、入力画像の全画素を使用色域にマッピングし、一旦、バッファメモリ108にCIELAB値で表現した形式で保存した後、第二色域マッピング部107の処理により、出力色域にマッピングする構成を説明したが、例えば、バッファメモリ108のメモリ容量を減少させるために、画素ごとに第一色域マッピング部106の処理と第二色域マッピング部107の処理を連続して実行するようにしてもよい。
【００７２】
また、上記では、マッピング用の色空間としてCIELAB空間を用いる例を説明したが、例えばCIELUV色空間、XYZ空間でもよいし、CIECAM97、CIECAM97s、CIECAM02のようなカラーアピアランス空間を用いてもかまわない。
【００７３】
また、ユーザが、レタッチソフトを使用して、画像を表現する色空間を例えばsRGBからAdobeRGBなど、より広い色空間に拡げた後、使用色域外の色を追加した画像の場合は場合は、画像データに付加された情報を参照して、第一の色域としてAdobeRGBなどの広い色空間の色域を設定し、上記の処理を行えばよい。
【００７４】
［他の実施例］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００７５】
また、本発明の目的は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【００７６】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【００７７】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００７８】
【図１】写真画像の色域マッピングを説明する図、
【図２】写真画像の色域マッピングを説明する図、
【図３】入力色域と、実際に使用される色域を示す図、
【図４】実施例の画像処理装置の構成例を示すブロック図、
【図５】画像処理装置の画像処理例を示すフローチャート、
【図６】色域情報保持部が保持する色域情報の構成例を示す図、
【図７】色域データの記述例を説明する図。
【図８】第一色域マッピング部の処理を示すフローチャート、
【図９】色域の内外判定用の六面体および四面体を示す図、
【図１０】四面体を用いる内外判定を説明する図、
【図１１】マッピングを説明する図、
【図１２】使用色域の表面データを説明する図、
【図１３】三角形パッチと交点の関係の説明する図、
【図１４】第二色域マッピング部の処理を示すフローチャート、
【図１５】第二色域マッピング部における色域マッピングを説明する図である。
【図１】
2006254369.tif 000003
【図２】
2006254369.tif 000004
【図３】
2006254369.tif 000005
【図４】
2006254369.tif 000006
【図５】
2006254369.tif 000007
【図６】
2006254369.tif 000008
【図７】
2006254369.tif 000009
【図８】
2006254369.tif 000010
【図９】
2006254369.tif 000011
【図１０】
2006254369.tif 000012
【図１１】
2006254369.tif 000013
【図１２】
2006254369.tif 000014
【図１３】
2006254369.tif 000015
【図１４】
2006254369.tif 000016
【図１５】
2006254369.tif 000017