(57)【要約】【課題】  画像の色および階調の忠実再現を演算コストを抑えて実現する。【解決手段】  画像の入力側および出力側のデバイスプロファイルに基づき画像を階調補正する(S404)。そして、入力側および出力側のデバイスプロファイルに基づき仮想デバイスプロファイルを生成し(S405)、入力側および出力側のカラーアピアランスモデルプロファイルに基づき仮想カラーアピアランスモデルプロファイルを生成する(S406)。仮想デバイスプロファイル、仮想カラーアピアランスモデルプロファイル、出力側のデバイスプロファイル、および、出力側のカラーアピアランスモデルプロファイルに基づき階調補正後の画像にカラーマッチングを施す(S407)。【選択図】  図17
2011004187.tif 000002
【特許請求の範囲】
【請求項１】
画像の入力側および出力側のデバイスプロファイルに基づき前記画像を階調補正する補正手段と、
前記入力側および出力側のデバイスプロファイルに基づき仮想デバイスプロファイルを生成し、前記入力側および出力側のカラーアピアランスモデルプロファイルに基づき仮想カラーアピアランスモデルプロファイルを生成する生成手段と、
前記仮想デバイスプロファイル、前記仮想カラーアピアランスモデルプロファイル、前記出力側のデバイスプロファイル、および、前記出力側のカラーアピアランスモデルプロファイルに基づき前記階調補正後の画像にカラーマッチングを施す処理手段とを有することを特徴とする画像処理装置。
【請求項２】
さらに、前記入力側および出力側のデバイスプロファイルおよび観察条件を設定する設定手段を有することを特徴とする請求項1に記載された画像処理装置。
【請求項３】
前記生成手段は前記設定された観察条件に対応するカラーアピアランスモデルプロファイルを用いて前記仮想カラーアピアランスモデルプロファイルを生成することを特徴とする請求項2に記載された画像処理装置。
【請求項４】
前記生成手段は、前記入力側および出力側のデバイスプロファイルに記述された白色点の輝度値に基づき前記入力側のデバイスプロファイルに記述された測色値を変換して前記仮想デバイスプロファイルを生成することを特徴とする請求項1から請求項3の何れか一項に記載された画像処理装置。
【請求項５】
画像の入力側および出力側のデバイスプロファイルに基づき前記画像を階調補正し、
前記入力側および出力側のデバイスプロファイルに基づき仮想デバイスプロファイルを生成し、前記入力側および出力側のカラーアピアランスモデルプロファイルに基づき仮想カラーアピアランスモデルプロファイルを生成し、
前記仮想デバイスプロファイル、前記仮想カラーアピアランスモデルプロファイル、前記出力側のデバイスプロファイル、および、前記出力側のカラーアピアランスモデルプロファイルに基づき前記階調補正後の画像にカラーマッチングを施すことを特徴とする画像処理方法。
【請求項６】
コンピュータ装置を制御して、請求項1から請求項4の何れか一項に記載された画像処理装置の各手段として機能させることを特徴とするプログラム。
【請求項７】
請求項6に記載されたプログラムが記録されたことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の色および階調を再現する画像処理に関する。
【背景技術】
【０００２】
近年、ディジタルスチルカメラ(DSC)で撮影した自然界の被写体の画像や、コンピュータグラフィクス(CG)でモデリングした仮想オブジェクトを、人間の視覚に対して忠実に再現することが求められる。例えば、デスクトップパブリッシング(DTP)においては、被写体の撮影現場における被写体の見え方に忠実な写真画像のプリントが要求される。また、CGにおいては、仮想オブジェクトが実在するような再現が要求される。このような画像の再現を実現する技術として、色を忠実に再現するためのカラーマッチング技術と、階調を忠実に再現するための階調補正技術の二つがある。
【０００３】
カラーマッチング技術は、色域が異なるデバイス間において、色再現の知覚的な一致を図る技術である。例えばInternational Color Consortium (ICC)によって定められたICCカラープロファイルを用いるカラーマネージメントシステム(CMS)が一般的である。CMSは、カラーマッチングを行うためのデバイスに独立なプロファイル接続空間(PCS)を定義する。そして、PCS上で、デバイスの色空間からPCSへの色変換を規定するソースプロファイル、および、PCSからデバイスの色空間への色変換を規定するデスティネーションプロファイルを用いてカラーマネージメントを実現する。なお、PCSは「ハブ色空間」と呼ばれることもある。
【０００４】
色変換は、ソースプロファイルとデスティネーションプロファイルの二種類のカラープロファイルに基づき、次のように実施される。まず、入力画像を供給するデバイス（以下、入力デバイス）に適合したデバイス色空間の色信号値を、ソースプロファイルによってPCSの色信号値に変換する。そして、PCSの色信号値を、デスティネーションプロファイルによって画像の出力先のデバイス（以下、出力デバイス）に適合したデバイス色空間の色信号に変換する。
【０００５】
このようなCMSによれば、CGにおいて使用されるモニタとプリンタのカラーマネージメント、DTPにおけるプルーフのカラーマネージメントなどに、幅広く柔軟に対応することができる。例えばCGにおいては、ソースプロファイルとしてモニタの特性を記したカラープロファイルを指定し、デスティネーションプロファイルとしてプリンタの特性を記したカラープロファイルを指定する。このようにカラープロファイルを指定することによって、所望する画像とプリンタの出力画像の間の知覚的一致を図ることができる。
【０００６】
さらに、ICCカラープロファイルは、国際照明委員会(CIE)が規定する色順応モデルのCIECAM02、CIECAM97sなどにも対応したフォーマットであり、観察環境などに依存する視覚順応状態の変化にも対応したCMSを構築することができる。とくに、モニタとプリンタのカラーマッチングにおいては、この機構を応用して、部分順応を考慮した白色点を設定し、より知覚的に一致した色再現を得ることができる（特許文献1参照）。
【０００７】
他方、階調補正技術は、ダイナミックレンジが異なるデバイス間において画像の階調再現の知覚的一致を図る技術である。例えばiCAM06（非特許文献1）や、Local Contrast Range Transform (LCRT)（非特許文献2）といった技術が知られている。これら技術は、階調再現に対する技術的アプローチはそれぞれ異なる。しかし、何れも視覚の局所順応に対応した階調圧縮技術で、モニタやプリンタなどのコントラストが比較的低いデバイスにおいて、屋外などコントラストが非常に高い環境における被写体の写真画像を高階調に再現することができる。
【０００８】
カラーマッチング技術と階調補正技術はそれぞれ別の技術である。色の忠実再現と階調の忠実再現を両立させるには両技術を組み合わせる必要がある。このような要求に対する技術開発の一例として、iCAM06のような階調補正技術に色域マッピングを導入することが検討されている。しかし、画素単位の階調補正技術に色域マッピングを導入すれば、演算コストが非常に大きくなる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開2000-148979公報
【非特許文献】
【００１０】
【非特許文献１】Kuang, J., Johnson, G. M., Fairchild M. D.「iCAM06: A refined image appearance model for HDR image rendering」Journal of Visual Communication, 2007
【非特許文献２】Yusuke Monobe, Haruo Yamashita, Toshiharu Kurosawa, Hiroaki Kotera「Dynamic Range Compression Preserving Local Image Contrast for Digital Video Camera」IEEE Transaction on Consumer Electronics, Vol.51, No.1, February 2005
【非特許文献３】Jobson et. al「A Multiscale Retinex for Bridging the Gap Between Color Images and the Human Observation of Scenes」IEEE TRANSACTIONS ON IMAGE PROCESSING, VOL. 6, NO. 7, JULY 1997
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明は、画像の色および階調の忠実再現を演算コストを抑えて実現することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１３】
本発明にかかる画像処理は、画像の入力側および出力側のデバイスプロファイルに基づき前記画像を階調補正し、前記入力側および出力側のデバイスプロファイルに基づき仮想デバイスプロファイルを生成し、前記入力側および出力側のカラーアピアランスモデルプロファイルに基づき仮想カラーアピアランスモデルプロファイルを生成し、前記仮想デバイスプロファイル、前記仮想カラーアピアランスモデルプロファイル、前記出力側のデバイスプロファイル、および、前記出力側のカラーアピアランスモデルプロファイルに基づき前記階調補正後の画像にカラーマッチングを施すことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、画像の色および階調の忠実再現を演算コストを抑えて実現することができる。
【図面の簡単な説明】
【００１５】
【図１】実施例の画像処理装置の構成例を説明するブロック図。
【図２】APウィンドウの一例を説明する図。
【図３】画像処理APが提供するプロファイル設定用のダイアログの一例を説明する図。
【図４】色変換処理を説明するフローチャート。
【図５】デバイスプロファイルのデータ構造例を説明する図。
【図６】CAMプロファイルのデータ構造例を説明する図。
【図７】画像データのデータ構造例を説明する図。
【図８】階調補正処理を説明するフローチャート。
【図９】階調写像関数p(r)の一例を説明する図。
【図１０】階調変換の詳細を説明するフローチャート。
【図１１】仮想デバイスプロファイルの生成の詳細を説明するフローチャート。
【図１２】カラーマッチング処理の詳細を説明するフローチャート。
【図１３】カラーマッチング処理用のLUTの生成の詳細を説明するフローチャート。
【図１４】写像処理の詳細を説明するフローチャート。
【図１５】知覚的一致を目的とする色域写像を明度J-彩度C断面で模式的に説明する図。
【図１６】写像を明度J-彩度C断面で模式的に説明する図。
【図１７】CAMプロファイルとデバイスプロファイルに関するデータフローを説明する図。
【図１８】CAMプロファイルとデバイスプロファイルに関するデータフローの他例を説明する図。
【図１９】実施例4の階調補正処理を説明するフローチャート。
【図２０】CAMプロファイルとデバイスプロファイルに関するデータフローを説明する図。
【発明を実施するための形態】
【００１６】
以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。
【実施例１】
【００１７】
［装置の構成］
図1のブロック図により実施例の画像処理装置の構成例を説明する。CPU101は、メインメモリ102のランダムアクセスメモリ(RAM)をワークメモリに使用する。そして、メインメモリ102のリードオンリメモリ(ROM)およびハードディスクドライブ(HDD)105に格納されたオペレーティングシステム(OS)や各種プログラムを実行する。そして、PCI (peripheral component interconnect)バスなどのシステムバス114を介して各構成を制御する。さらに、後述する画像処理アプリケーション、プリンタドライバ、カラーマネージメントモジュールを含む各種プログラムを実行する。
【００１８】
CPU101は、システムバス114およびシリアルATAインタフェイス(SATA I/F)103を介してHDD105にアクセスする。また、ネットワークI/F104を介してローカルエリアネットワーク(LAN)などのネットワーク1101にアクセスする。
【００１９】
以下では、画像処理アプリケーション（以下、画像処理AP）、画像データ、各種デバイスのデバイスプロファイルなどをHDD105から読み出すとして説明するが、ネットワーク1101上のサーバ（不図示）から読み出すこともできる。
【００２０】
また、CPU101は、後述する処理のユーザインタフェイスや処理結果をグラフィックアクセラレータ106を介してモニタ107に表示し、ユーザ指示をキーボード/マウスコントローラ110に接続されたキーボード111、マウス112を介して入力する。また、CPU101は、画像データをUSB (Universal Serial Bus)コントローラ108を介してプリンタ109に出力して、例えばユーザが指示する画像を印刷する。
【００２１】
［画像処理アプリケーション］
ユーザは、キーボード111やマウス112を操作して、画像処理APの実行を指示する。この指示に応じて、CPU101は、HDD105に格納された画像処理APを実行する。画像処理AP（CPU101）は、ダイアログの描画をグラフィックアクセラレータ106に指示し、モニタ107にアプリケーションウィンドウ（以下、APウィンドウ）201が表示される。
【００２２】
図2によりAPウィンドウ201の一例を説明する。ユーザは、APウィンドウ201のプルダウンメニュー202を操作して、処理対象の画像ファイルの読み込みを指示する。この指示（HDD105に格納された画像データの指定を含む）に応じて、画像処理APは、HDD105に格納された画像データをメインメモリ102のRAMにロードする。そして、画像処理APは、画像データの描画をグラフィックアクセラレータ106に指示し、APウィンドウ201の画像ウィンドウ203内に画像データが表す画像が表示される。
【００２３】
また、ユーザが、APウィンドウ201のプルダウンメニュー202を操作して、プロファイルの設定を指示すると、画像処理APは、プロファイル設定用のダイアログ301をモニタ107に表示する。
【００２４】
図3により画像処理APが提供するプロファイル設定用のダイアログ301の一例を説明する。詳細は後述するが、ユーザは、プロファイル設定用のダイアログ301を操作して、色変換に必要な各種設定を行う。色変換に必要な各種設定が終わると、ユーザは設定終了ボタン306を押す。設定終了ボタン306が押されると、画像処理APは、プロファイル設定用のダイアログ301の設定に対応するパラメータを後述する色変換処理に設定する。
【００２５】
また、ユーザが、APウィンドウ201のプルダウンメニュー202を操作して、色変換表示/印刷を指示すると、画像処理APは、メインメモリ102のRAMに保持する画像データに後述する色変換処理を施し、ユーザが指定する方法で画像を出力する。
【００２６】
例えば、デスティネーションデバイスとしてモニタ107が指定されている場合、画像処理APは、色変換処理後の画像データの描画をグラフィックアクセラレータ106に指示する。従って、アプリケーションウィンドウ201の画像ウィンドウ203内に色変換処理後の画像データが表す画像が表示される。
【００２７】
また、デスティネーションデバイスとしてプリンタ109が指定されている場合、画像処理APは、色変換処理後の画像データの印刷をプリンタドライバに指示する。プリンタドライバは、色変換処理後の画像データをプリンタ109の色データ（例えばCMYKデータ）に変換し、色データをプリンタ109に供給する。従って、プリンタ109は、色変換処理後の画像データが表す画像を印刷する。
【００２８】
●プロファイル設定用のダイアログ
ユーザは、色変換に必要な入力デバイスおよび出力デバイスのデバイス特性および観察条件を設定する。ユーザは、入力側条件欄のリストボックスであるデバイスプロファイル設定部302を操作して入力デバイスのデバイス特性が記述されたデバイスプロファイル（以下、入力プロファイル）を指定または選択する。また、CAMプロファイル設定部303を操作して入力側の観察条件が記述されたカラーアピアランスモデルプロファイル（以下、入力CAMプロファイル）を指定または選択する。なお、CAMプロファイルは、例えばCIECAM02などのカラーアピアランスモデル(CAM)のプロファイルである。
【００２９】
同様に、ユーザは、出力側条件欄のリストボックスであるデバイスプロファイル設定部304を操作して出力デバイスのデバイス特性が記述されたデバイスプロファイル（以下、出力プロファイル）を指定または選択する。また、CAMプロファイル設定部305を操作して出力側の観察条件が記述されたカラーアピアランスモデルプロファイル（以下、出力CAMプロファイル）を指定または選択する。
【００３０】
［色変換処理］
画像処理APは、画像変換表示/印刷が指示されると、指定された画像データをメインメモリ102の所定領域にロードし、色変換処理を施し、色変換後の画像データが示す画像をプリンタ109によって印刷またはモニタ107に表示する。図4のフローチャートにより色変換処理を説明する。
【００３１】
画像処理APは、デバイスプロファイル設定部302、304に設定された入力プロファイルおよび出力プロファイルを取得する(S401)。そして、CAMプロファイル設定部303、305に設定された入力CAMプロファイルおよび出力CAMプロファイルを取得する(S402)。次に、画像処理APは、指定された画像データをメインメモリ102にロードし(S403)、入力デバイスと出力デバイスの輝度レンジに基づく階調補正処理を画像データに施す(S404)。
【００３２】
次に、詳細は後述するが、画像処理APは、入力プロファイルと出力プロファイルに基づき、後述するカラーマッチング処理に使用する仮想デバイスプロファイルを生成する(S405)。そして、入力CAMプロファイルと出力CAMプロファイルに基づき、カラーマッチング処理に使用する仮想カラーアピアランスモデルプロファイル（以下、仮想CAMプロファイル）を生成する(S406)。
【００３３】
次に、画像処理APは、出力プロファイル、出力CAMプロファイル、仮想デバイスプロファイル、および、仮想CAMプロファイルを用いて、階調補正後の画像データにカラーマッチング処理を施す(S407)。そして、カラーマッチング処理後の画像データを、出力プロファイルのデバイス名によって指定される画像出力デバイス（例えばモニタ107やプリンタ109）に出力する(S408)。
【００３４】
●デバイスプロファイル
図5によりデバイスプロファイルのデータ構造例を説明する。デバイスプロファイルは、4バイトのタグIDと、タグIDに続く12バイトの情報値の羅列、並びに、測色値データから構成される。なお、図5には、ファイル内のオフセットアドレスを示したが、プロファイルにはタグID、情報値、測色値データが記述されている。また、図5には、タグIDをキーワードで表現したが、実際の記述は各キーワードに対応する4バイトの数値である。
【００３５】
タグ「Profiler Version」は、プロファイルの種別とバージョンを表す文字列であり、プロファイルの先頭に必ず配置される。
【００３６】
タグ「Device Type」は、デバイスの種別を示し、情報値「0」はプリンタ、「1」はモニタ、「2」はプロジェクタ、「3」はDSC（ディジタルスチルカメラ）、「4」はスキャナ、「5」はハイダイナミックレンジモニタを示す。タグ「Model Name」は、機種名を表す文字列である。
【００３７】
タグ「Device Modeling」は、デバイス特性の表現モデルを示す。情報値「0」は後続の測色値データが三次元ルックアップテーブル(3DLUT)に基づくことを示し、「1」はガンママトリクスモデル、「2」は三次元多項式モデルであることを示す。なお、3DLUTのデータの並びについては、例えばICC発行のICC Profile仕様書に記載されている。また、三次元多項式モデルについては、例えば米国特許出願公開第2007/0058223号明細書に記載されている。
【００３８】
タグ「Number of Data」は、測色値データに記述されるXYZ値の総数を示す。図5の例では、測色値データが3DLUTに基づくため、格子点の数93=729を示す16進数2D9が記述されている。
【００３９】
タグ「Data Head」は、測色値データの記述開始アドレスを示す。なお、測色値データはX、Y、Zの順に各XYZ値を単精度浮動小数点による絶対値として記述する。
【００４０】
●CAMプロファイル
図6によりCAMプロファイルのデータ構造例を説明する。CAMプロファイルは、4バイトのタグIDと、タグIDに続く12バイトの情報値の羅列から構成される。なお、図6には、ファイル内のオフセットアドレスを示したが、プロファイルにはタグID、情報値が記述されている。また、図6には、タグIDをキーワードで表現したが、実際の記述は各キーワードに対応する4バイトの数値である。
【００４１】
タグ「Profiler Version」は、プロファイルの種別とバージョンを表す文字列であり、プロファイルの先頭に必ず配置される。
【００４２】
タグ「Adopted White」は、順応白色点を示し、順応白色点はX、Y、Zの順に単精度浮動小数点で記述する。つまり、タグ「Adopted White」の情報値として、ステップS702で算出した順応白色点を記述する。
【００４３】
タグ「Degree of Adaptation」は、不完全順応の割合を示し、不完全順応の割合は単精度浮動小数点で記述する。なお、情報値「-1」は不完全順応の割合が自動的に算出されることを示す。
【００４４】
タグ「Luminance of Adapting Visual Field」は、順応視野の輝度値を示し、順応視野の輝度値は単精度浮動小数点で記述する。一般に、順応視野の輝度値は、二度視野の平均輝度値の20%の値を記述する。
【００４５】
タグ「Background」は、背景輝度を示し、背景輝度は白色に対する相対値を単精度浮動小数点で記述する。一般に、背景輝度は、十度視野の平均輝度のパーセンテージとして20が記述される。
【００４６】
なお、タグIDと情報値については、CIEが定めたCIECAM02の仕様書に詳細な記載がある。
【００４７】
●画像データ
図7により画像データのデータ構造例を説明する。画像データは、4バイトのタグIDと、タグIDに続く12バイトの情報値の羅列、および、画像データから構成される。なお、図7には、ファイル内のオフセットアドレスを示したが、画像データにはタグID、情報値、画像データ、プロファイルデータが記述されている。また、図7には、タグIDをキーワードで表現したが、実際の記述は各キーワードに対応する4バイトの数値である。
【００４８】
タグ「Compression」は、画像データの圧縮形式を表す。情報値「0」は非圧縮、「1」はJPEG圧縮、「2」はランレンレングス圧縮を示す。
【００４９】
タグ「Bit Depth」は、一画素当りのビット長を示す。図7の例は16進数30が記載されているので、一画素当り48ビット、つまり16ビットカラーであることを示す。
【００５０】
タグ「Image Width」は画像の横幅を、タグ「Image Height」は画像の縦長を示す。
【００５１】
タグ「Image Data Head」は、画像データの記述開始アドレスを示す。なお、図7の例では、画像データはタグ「Compression」の値に「0」に基づき、非圧縮で記述される。
【００５２】
●階調補正処理
図8のフローチャートにより階調補正処理(S404)を説明する。画像処理APは、下式により、入力プロファイルと出力プロファイルに基づく階調写像関数p(r)を算出する(S801)。
p(r) = C3x3 + C2x2 + C0      …(1)
【００５３】
p(r)は上式のように表現される三次関数式であり、ステップS801における算出は、四つの係数を求める動作である。まず、出力デバイスの輝度レンジに対する入力デバイスの輝度レンジの比r（以下、輝度レンジ比）を算出する。このrにより、階調写像関数の台は〔0..r〕であると定義される。続いて、画像処理APは、台の端点における階調写像関数の境界条件を次のように定める。
p(0) = 0；
P'(0) = γ0；
p(r) = 1；
p'(r) = γ1；      …(2)
【００５４】
ここで、γ0とγ1は次のように設定される。
if (r ≦ 1)
γ0 = 1/r；
elseif (1 ＜ r ≦ 2)
γ0 = 1；
elseif (2 ＜ r)
γ0 = 2/r；
if (r ≦ 1)
γ1 = 1/r；
elseif (1 ＜ r ≦ 2)
γ1 = 1/r2；
elseif (2 ＜ r)
γ1 = 1/2r；      …(3)
【００５５】
図9により階調写像関数p(r)の一例を説明するが、式(1)の係数Cnは上記の境界条件を満たすように一意に定まる。
【００５６】
次に、画像処理APは、下式により画像データの各画素のRGB値を輝度値Yに変換して、輝度画像を生成し、輝度画像をメインメモリ102の所定領域に格納する(S802)。
Y = 0.299R + 0.587G + 0.114B      …(4)
【００５７】
次に、画像処理APは、輝度画像にローパスフィルタを施して、フィルタリング画像を生成し、フィルタリング画像をメインメモリ102の所定領域に格納する(S803)。ローパスフィルタには、フィルタ長が33×33の単純な二次元移動平均フィルタを用いる。そして、輝度画像とフィルタリング画像に基づく階調変換を画像データに施す(S804)。
【００５８】
図10のフローチャートにより階調変換(S804)の詳細を説明する。画像処理APは、ラスタ順に画像データの画素値（RGB値）を取得し(S1001)、RGB値の最大値が輝度レンジ比rになるようスケーリングした上で、次式に従いRGB値をYUV値に変換する(S1002)。
Y =  0.299R + 0.587G + 0.114B
U = -0.169R - 0.331G + 0.500B      …(5)
V =  0.500R - 0.419G - 0.081B
【００５９】
次に、画像処理APは、フィルタリング画像から注目画素の輝度値Yaveを取得し(S1003)、注目画素のY値に次の階調変換を施して、注目画素のY値を更新する(S1004)。なお、この階調変換については、非特許文献2にその詳細が開示されている。
Y' = p(Y)(Y/Yave){1-Y・p'(Y)/p(Y)}      …(6)
【００６０】
次に、画像処理APは、注目画素のUV値に対して次式の補正を施す(S1005)。なお、この補正結果のUV値は、RGB値の最大値が1になるようスケーリングした上で、RGB値をYUV値に変換した場合と同じ値になる。
U' = U/r
V' = V/r      …(7)
【００６１】
次に、画像処理APは、次式により、式(6)(7)によって更新したYUV値をRGB値に変換する(S1006)。なお、変換結果の値が255を超える場合は255に、0未満になる場合は0に制限する。また、「255」という値から明らかなように、入力画像のビット深さに関わらず階調補正後の画像データは8ビットカラー画像である。
R = (1.000Y' + 1.402V')×255
G = (1.000Y' - 0.344U'- 0.714V')×255      …(8)
B = (1.000Y' + 1.772U')×255
【００６２】
次に、画像処理APは、変換後の注目画素のRGB値をメインメモリ102の所定領域に格納し(S1007)、画像データの総ての画素に変換を施したか否か判定する(S1008)。そして、変換が未了の画素があれば処理をステップS1001に戻す。
【００６３】
●仮想デバイスプロファイル
図11のフローチャートにより仮想デバイスプロファイルの生成(S405)の詳細を説明する。画像処理APは、入力プロファイルから入力デバイスの白色点の輝度値（Y値）Yinを取得し(S1101)、出力プロファイルから出力デバイスの白色点のY値Youtを取得する(S1102)。そして、入力プロファイルから測色値データ（XYZ値）を一つ取得し(S1103)、取得したXYZ値に白色点のY値の比Yout/Yinを乗算するスケーリングを行う(S1104)。
【００６４】
次に、画像処理APは、入力プロファイルの総ての測色値データをスケーリングしたか否かを判定し(S1105)、未了であれば処理をステップS1103へ戻す。また、測色値データのスケーリングが完了すると、スケーリング後の測色値データにプロファイルヘッダを付加し、HDD105の所定領域に格納する(S1106)。なお、プロファイルヘッダは、入力プロファイルのヘッダ情報のコピーであるが、タグID「Model Name」に続く文字列を例えば「Unknown」に変更する。
【００６５】
●仮想CAMプロファイル
画像処理APは、入力CAMプロファイルと出力CAMプロファイルに基づき、次の手順で各タグIDに対する情報を生成して、仮想CAMプロファイルとしてHDD105の所定領域に格納する。
【００６６】
タグID「Profiler Version」「Degree of Adaptation」「Background」については、入力CAMプロファイルの文字列をコピーする。
【００６７】
タグID「Adopted White」は、入力CAMプロファイルの順応白色点のXYZ値を取得し、式(9)によりxy色度座標を算出する。そして、出力CAMプロファイルの順応白色点のY値Ywoutを取得し、式(10)によって算出したXYZ値をタグID「Adopted White」に設定する。
xWin = Xwin/(Xwin + Ywin + Zwin)
yWin = Ywin/(Xwin + Ywin + Zwin)      …(9)
Xw = Xwout・xWin/yWin
Ywvirtual = Ywout
Zwvirtual = Zwout・(1 - xWin - yWin)/yWin      …(10)
【００６８】
タグID「Luminance of Adapting Field」は、入力CAMプロファイルの値LAinを取得し、次式により算出したLA値を設定する。
LAvirtual = LAin・Ywout/Ywin      …(11)
【００６９】
●カラーマッチング処理
図12のフローチャートによりカラーマッチング処理(S407)の詳細を説明する。画像処理APは、ソースプロファイルとして仮想デバイスプロファイルと仮想CAMプロファイルを設定し(S1201)、デスティネーションプロファイルとして出力プロファイルと出力CAMプロファイルを設定する(S1202)。そして、詳細は後述するが、設定したプロファイルを用いてカラーマッチング処理用のRGB to RGB変換ルックアップテーブル(LUT)を生成する(S1203)。そして、LUTを用いて階調補正後の画像データを色変換し、色変換後の画像データをメインメモリ102の所定領域に格納する(S1204)。
【００７０】
●LUT
図13のフローチャートによりカラーマッチング処理用のLUTの生成(S1203)の詳細を説明する。画像処理APは、所定の順序に従い、LUTの格子点（注目格子点）のRGB値を取得する(S1301)。そして、取得したRGB値をソース側のデバイスモデル（ソースプロファイル）に基づきXYZ値に変換し(S1302)、CIECAM02に基づきXYZ値をJCh値に変換する(S1303)。その際、CIECAM02に与える順応白色点として、ソースプロファイルに設定したCAMプロファイルが記載する順応白色点を用いる。
【００７１】
次に、画像処理APは、JCh値を出力デバイスの色域に写像し(S1304)、CIECAM02に基づき、写像したJCh値をXYZ値に変換する(S1305)。この時にCIECAM02に与える順応白色点として、デスティネーションプロファイルに設定したCAMプロファイルが記載する順応白色点を用いる。
【００７２】
次に、画像処理APは、JCh値から変換したXYZ値をデスティネーション側のデバイスモデル（デスティネーションプロファイル）に基づきRGB値に変換する(S1306)。そして、RGB値を注目格子点の出力値としてメインメモリ102の所定領域に格納し(S1306)。LUTの全格子点について出力値を計算したか否かを判定し(S1307)、未了であれば処理をステップS1301へ戻す。
【００７３】
●写像処理
図14のフローチャートにより写像処理(S1304)の詳細を説明する。また、図15により知覚的一致を目的とする色域写像を明度J-彩度C断面で模式的に説明する。
【００７４】
画像処理APは、写像する色（JCh）を取得する(S1401)。そして、ソースプロファイルに設定したデバイス（以下、写像元）の色域の明度レンジの最大値を正規化する（J=100にする）ように、取得した色の明度値Jを補正する(S1402)。この処理により、図15(B)に示すように、一点鎖線で示す写像元の色再現が、実線で示す色再現に変化する。なお、点線はデスティネーションプロファイルに設定したデバイス（以下、写像先）の色域を示す。
【００７５】
次に、画像処理APは、シグモイド関数を用いて、補正後の明度値J'をスケーリングする(S1403)。このスケーリングにより、図15(C)に示すように、一点鎖線で示す移動後の色再現が、実線で示すスケーリング後の色再現に変化する。次に、画像処理APは、彩度値Cに応じて、スケーリング後の明度値J"を補正する(S1404)。この補正により、図15(D)に示すように、一点鎖線で示す色再現が、実線で示す色再現に変化する。
【００７６】
次に、画像処理APは、色相値hを保存しつつ、補正後の明度値J"と彩度値C'で表される色M（J"C'h）を写像先の色域内に写像する(S1405)。言い換えれば、補正後の写像元の色域と、写像先の色域に基づき色域写像を行う。図16により写像を明度J-彩度C断面で模式的に説明する。図16において、実線はステップS1402からS1404の処理で得られる写像元の色域、点線は写像先の色域を表す。
【００７７】
色Mを写像する場合、写像先の色域における、色Mと同色相で最大彩度を有する色Dを算出し、色Dと同じ明度値を有する明度軸上の色Fを決定する。そして、色Fと色Mを結ぶ直線と写像元の色域境界の交点Bs、および、色Fと色Mを結ぶ直線と写像先の色域境界の交点Bdを算出する。そして、交点Bdと色Fの間の距離を1：9に内分する点E（BdE：EF=1：9）を算出する。ここで、距離MFが距離EF以下（MF≦EF）の場合は、色Mに対する写像を行わない（M'=M）。他方、距離MFが距離EFを超える（MF＞EF）の場合は、式(12)が表す点M'を写像後の色にする（点M'は交点Bdと点Eの間に存在する）。
M' = M/BsE×BdE      …(12)
ここで、BsEは交点Bsと点Eの間の距離、
BdEは交点Bdと点Eの間の距離。
【００７８】
上記は注目画素の色Mに対する処理であるが、画像処理APは、注目画素の写像後の色M'をメインメモリ102の所定領域に格納した後、他の画素の写像を繰り返した、画像データ全体の色域写像を行う。
【００７９】
［デバイスプロファイルの測色値］
デバイスプロファイルには、前述したように、デバイス特性のモデル表現方法によって決まるカラーパッチの測定値を記述する。カラーパッチの測色値は次のように算出する。
【００８０】
プリンタなど、物体色によって色を再現するデバイスを「物体色デバイス」と呼ぶことにする。物体色デバイスのデバイスプロファイルの場合、プロファイル値である分光反射率R(λ)に対するXYZ値は下式によって算出する。
Xi = ∫S(λ)Ri(λ)x(λ)dλ
Yi = ∫S(λ)Ri(λ)y(λ)dλ      …(13)
Zi = ∫S(λ)Ri(λ)z(λ)dλ
ここで、XiYiZiはi番目のプロファイル値であるXYZ値、
S(λ)は照明の分光分布の測定値、
Ri(λ)はi番目のプロファイル値である分光反射率、
x(λ)y(λ)z(λ)は二度視野XYZ等色関数、
積分範囲は可視範囲。
【００８１】
モニタなど、光源色によって色を再現するデバイスを「光源色デバイス」と呼ぶことにする。光源色デバイスのデバイスプロファイルの場合、プロファイル値である分光放射輝度R(λ)に対するXYZ値は、二度視野XYZ等色関数x(λ)y(λ)z(λ)から、式(14)によって算出する。
Xi = ∫Ri(λ)x(λ)dλ
Yi = ∫Ri(λ)y(λ)dλ      …(14)
Zi = ∫Ri(λ)z(λ)dλ
ここで、Ri(λ)はi番目のプロファイル値である分光放射輝度、
XiYiZiはi番目のプロファイル値であるXYZ値、
積分範囲は可視範囲。
【００８２】
［データフロー］
図17によりCAMプロファイルとデバイスプロファイルに関するデータフローを説明する。なお、図17にはHDD105から読み出した画像データを処理してメインメモリ102に格納する例を示すが、画像データの取得先および出力先はこれに限定されない。
【００８３】
画像処理APは、HDD105から画像データを読み出す。そして、HDD105から入力プロファイルおよび出力プロファイルを読み出し、それらプロファイルに基づき、画像データに階調補正処理(S404)を施す。
【００８４】
次に、画像処理APは、入力プロファイルおよび出力プロファイルから仮想デバイスプロファイルを生成する仮想プロファイル生成処理(S405)を実行する。さらに、HDD105から入力CAMプロファイルおよび出力CAMプロファイルを読み出し、それらプロファイルから仮想CAMプロファイルを生成する仮想CAMプロファイル生成処理(S406)を実行する。
【００８５】
次に、画像処理APは、仮想デバイスプロファイル、仮想CAMプロファイル、出力プロファイル、出力CAMプロファイルに基づき、階調補正処理後の画像データにカラーマッチング処理(S407)を施す。
【００８６】
図18によりCAMプロファイルとデバイスプロファイルに関するデータフローの他例を説明する。つまり、図17は、仮想CAMプロファイルを入力CAMプロファイルと出力CAMプロファイルから生成する例を示す。しかし、出力CAMプロファイルの順応白色点のY値Yw_outの代わりに、出力プロファイルの順応白色点のY値を取得してYw_outに設定しても上記の処理が実現される。言い換えれば、出力プロファイルに記述されたデバイス白色の輝度を用いて入力CAMプロファイルと出力プロファイルから生成することもできる。
【００８７】
このように、階調補正処理(S404)とカラーマッチング処理(S407)を備える一連の画像処理において、入出力デバイスのデバイス特性と入出力側の観察条件を反映して、色の忠実な再現と階調の忠実な再現を両立させることができる。さらに、カラーマッチング処理には、変換処理の高速化を実現する一手法であるLUTを用いる色変換を適用することができ、演算コストの増大を抑制することができる。さらに、観察条件としてのアピアランスパラメータを制御することが可能になり、複数種のデバイスの出力を同時に観察するような複雑な観察条件においても、色の再現性を向上することが可能である。
【実施例２】
【００８８】
以下、本発明にかかる実施例2の画像処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００８９】
実施例1においては、絶対値に基づくデバイスプロファイル（以下、絶対値プロファイル）を仮定した。しかし、物体色デバイスのデバイスプロファイルは、一般に、紙白または完全白色を白色基準とする相対値に基づくプロファイル（以下、相対値プロファイル）である。そこで、実施例2においては、相対値プロファイルを扱う例を説明する。
【００９０】
まず、出力デバイスの輝度レンジに対する入力デバイスの輝度レンジの比（輝度レンジ比r）の算出（図8のステップS801）は、絶対値の取得が前提になるため、相対値プロファイルの場合は輝度レンジ比rを正しく算出することができない。そこで、事前の処理として、図5に示すデバイスプロファイルのタグID「Device Type」がプリンタまたはスキャナを示す場合、階調補正処理（図4のステップS404）において、次のように相対値プロファイルを絶対値プロファイルに修正する。
【００９１】
まず、CAMプロファイルを参照して、タグID「Luminance of Adapting Visual Field」に記述された輝度値LAを取得する。一般にLAの値として、白色の20%の輝度値が設定されるため、白色輝度Yw=5・LAと推定する。そして、デバイスプロファイルの測色値データのXYZ値にYw/100を乗算するスケーリングにより絶対値プロファイルを作成する。この事前処理後、ステップS802において輝度レンジ比rを算出する。
【００９２】
デバイスプロファイルのタグID「Device Type」がプリンタまたはスキャナを示す場合は、仮想デバイスプロファイル生成処理（図4のステップS405）においても、階調補正処理で作成した絶対値プロファイルを用いる。
【００９３】
プリンタのデバイスプロファイルのように、物体色に基づく媒体に関するデバイスプロファイルの場合、プロファイルに記述する測色値データ（相対値）は下式によって算出する。また、モニタのデバイスプロファイルのように、光源色に基づく媒体に関するデバイスプロファイルの場合は実施例1の算出方法と同じである。
Xi = ∫S(λ)Ri(λ)x(λ)dλ/∫S(λ)x(λ)dλ
Yi = ∫S(λ)Ri(λ)y(λ)dλ/∫S(λ)y(λ)dλ      …(15)
Zi = ∫S(λ)Ri(λ)z(λ)dλ/∫S(λ)z(λ)dλ
ここで、XiYiZiはi番目のプロファイル値であるXYZ値、
S(λ)は照明の分光分布の測定値、
Ri(λ)はi番目のプロファイル値である分光反射率、
x(λ)y(λ)z(λ)は二度視野XYZ等色関数、
積分範囲は可視範囲。
【実施例３】
【００９４】
以下、本発明にかかる実施例3の画像処理を説明する。なお、実施例3において、実施例1、2と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００９５】
実施例1では、スケーリングにより、入力プロファイルから仮想デバイスプロファイルを生成する例を説明した。こうすれば、入力デバイスの本来の色域をカラーマッチング処理において考慮することができる。しかし、入力デバイスの階調特性に歪みなどが存在すると、階調補正処理は当該歪みを考慮しない一方、カラーマッチング処理は当該歪みを忠実に再現することになり、この矛盾により色の再現を大きく損う可能性がある。そこで、この問題に対処した実施例3を説明する。
【００９６】
以下では、実施例1と異なる実施例3の仮想デバイスプロファイル生成処理(S405)を説明する。なお、以下では、仮想デバイスプロファイルをモニタモデルとし、RGBW四色のXYZ値とガンマ値γを算出する例を説明する。
【００９７】
画像処理APは、入力プロファイルから入力デバイスの白色点のY値Yinを取得し、出力プロファイルから出力デバイスの白色点のY値Youtを取得する。また、入力プロファイルからRGBW四色のXYZ値としてXYZRin、XYZGin、XYZBin、XYZWinを取得する。そして、これら値に基づき四色のxy色度座標xyRin、xyGin、xyBin、xyWinを計算する。そして、仮想デバイスプロファイルの白色点XYZwvirtualを下式により算出する。
Xwvirtual = XWout×xWin／yWin
Ywvirtual = YWout                            …(16)
Zwvirtual = ZWout×(1 - xWin - yWin)/yWin
【００９８】
次に、画像処理APは、仮想デバイスプロファイルのRGB三色のXYZ値を計算するために、まずRGB三色のY値を下式により算出する。
┌         ┐     ┌         ┐
│Yrvirtual│     │Xwvirtual│
│Ygvirtual│= M-1│Ywvirtual│      …(17)
│Ybvirtual│     │Zwvirtual│
└         ┘     └         ┘
ここで、
┌                                                        ┐
│    xRin/yRin          xGin/yGin          xBin/yBin     │
M = │        1                  1                  1         │
│(1-xRin-yRin)/yRin (1-xGin-yGin)/yGin (1-xBin-yBin)/yBin│
└                                                        ┘
【００９９】
次に、画像処理APは、算出したY値に基づきX値、Z値を下式により算出し、仮想デバイスプロファイルのRGB三色のXYZ値とする。
Xrvirtual = Yrvirtual×xRvirtual
Zrvirtual = Yrvirtual×(1-xRvirtuall-yRvirtual)
Xgvirtual = Ygvirtual×xGvirtual
Zgvirtual = Yvirtual×(1-xGvirtual-yGvirtual)      …(18)
Xbvirtual = Ybvirtual×xBvirtual
Zbvirtual = Ybvirtual×(1-xBvirtual-yBvirtual)
【０１００】
次に、画像処理APは、仮想デバイスプロファイルのガンマ特性を計算するために、入力プロファイルからRGB等量のグレイに対する輝度値Ygyiを、RGBの最小値から最大値まで均等間隔に17段階分取得する。そして、値の範囲が[0..1]になるようYgyiを正規化して、次式の値を最小にするようにガンマ値γを算出する。
Σ{Ygyi - (i/16)γ}      …(19)
ここで、Σ演算はi=0から16まで。
【０１０１】
画像処理APは、以上のように算出したRGBW四色のXYZ値とガンマ値γを仮想デバイスプロファイルに記述してHDD105の所定領域に格納する。その際、ヘッダ情報のタグID「Device Modeling」にはモデル表現方法がガンママトリクスモデルであることを示す「1」を記述し、タグID「Model Name」に続く文字列は「Unknown」にする。また、タグID「Profiler Version」および「Device Type」は入力プロファイルのヘッダ情報の値をコピーする。
【実施例４】
【０１０２】
以下、本発明にかかる実施例4の画像処理を説明する。なお、実施例4において、実施例1〜3と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【０１０３】
実施例1では、階調補正処理（図4、S404）としてLCRTに基づく処理を行う例を説明した。しかし、他の階調補正技術、例えばLCRTと同じくRGB色空間において階調補正を行うRetinex技術（非特許文献3参照）を使用することも可能である。さらに、XYZ画像に対して階調補正を行うiCAM06を使用することも可能である。そこで、実施例4においては、XYZ画像に基づく階調補正技術であるiCAM06を使用する場合を説明する。
【０１０４】
［階調補正処理］
図19のフローチャートにより実施例4の階調補正処理(S404)を説明する。画像処理APは、階調補正処理する画像データの各画素のRGB値をsRGB変換式に基づきXYZ値に変換し、変換結果のXYZ画像をメインメモリ102の所定領域に格納する(S1901)。そして、入力プロファイルから入力デバイスの白色点のY値Yinを取得し、各画素のXYZ値にYin/80を乗算するスケーリングを行う(S1902)。なお、分母の80は、sRGBにおける白色輝度80cd/m2の規定に基づく。
【０１０５】
次に、画像処理APは、スケーリングしたXYZ画像にiCAM06の階調変換を施して、階調変換が施されたRGB画像を生成し(S1903)、生成したRGB画像をメインメモリ102の所定領域に格納する(S1904)。なお、iCAM06の階調変換は、非常に複雑であり説明を省略するが、詳細は非特許文献1に記載されている。
【０１０６】
［仮想デバイスプロファイル生成処理］
次に、実施例1と異なる仮想デバイスプロファイル生成処理(S405)を説明する。なお、以下では、仮想デバイスプロファイルをモニタモデルとし、RGBW四色のXYZ値を算出し、ガンマ値γ=2.2とする例を説明する。なお、γ=2.2は、sRGBのガンマ特性が近似的には2.2であることに基づく。
【０１０７】
画像処理APは、入力プロファイルから入力デバイスの白色点のY値Yinを取得し、出力プロファイルから出力デバイスの白色点のY値Youtを取得する。また、入力プロファイルからRGBW四色のXYZ値としてXYZRin、XYZGin、XYZBin、XYZWinを取得する。そして、これら値に基づき四色のxy色度座標xyRin、xyGin、xyBin、xyWinを計算する。そして、仮想デバイスプロファイルの白色点XYZwvirtualを下式により算出する。
Xwvirtual = XWout×xWin／yWin
Ywvirtual = YWout                            …(20)
Zwvirtual = ZWout×(1 - xWin - yWin)/yWin
【０１０８】
次に、画像処理APは、仮想デバイスプロファイルのRGB三色のXYZ値を次のように求める。まず、R／G／Bの3色のY値を次式により算出する。
┌         ┐     ┌         ┐
│Yrvirtual│     │Xwvirtual│
│Ygvirtual│= M-1│Ywvirtual│      …(21)
│Ybvirtual│     │Zwvirtual│
└         ┘     └         ┘
ここで、
┌                                                        ┐
│    xRin/yRin          xGin/yGin          xBin/yBin     │
M = │        1                  1                  1         │
│(1-xRin-yRin)/yRin (1-xGin-yGin)/yGin (1-xBin-yBin)/yBin│
└                                                        ┘
【０１０９】
次に、画像処理APは、算出したY値に基づきX値、Z値を下式により算出し、仮想デバイスプロファイルのRGB三色のXYZ値とする。
Xrvirtual = Yrvirtual×xRvirtual
Zrvirtual = Yrvirtual×(1-xRvirtuall-yRvirtual)
Xgvirtual = Ygvirtual×xGvirtual
Zgvirtual = Yvirtual×(1-xGvirtual-yGvirtual)      …(22)
Xbvirtual = Ybvirtual×xBvirtual
Zbvirtual = Ybvirtual×(1-xBvirtual-yBvirtual)
【０１１０】
画像処理APは、以上のように算出したRGBW四色のXYZ値とガンマ値γ=2.2を仮想デバイスプロファイルに記述してHDD105の所定領域に格納する。その際、ヘッダ情報のタグID「Device Modeling」にはモデル表現方法がガンママトリクスモデルであることを示す「1」を記述し、タグID「Model Name」に続く文字列は「Unknown」にする。また、タグID「Profiler Version」および「Device Type」は入力プロファイルのヘッダ情報の値をコピーする。
【０１１１】
［データフロー］
図20によりCAMプロファイルとデバイスプロファイルに関するデータフローを説明する。なお、図20にはHDD105から読み出した画像データを処理してメインメモリ102に格納する例を示すが、画像データの取得先および出力先はこれに限定されない。
【０１１２】
画像処理APは、HDD105から画像データを読み出す。そして、HDD105から入力プロファイルを読み出し、入力プロファイルに基づき、画像データに階調補正処理(S404)を施す。
【０１１３】
次に、画像処理APは、入力プロファイルおよび出力プロファイルから仮想デバイスプロファイルを生成する仮想プロファイル生成処理(S405)を実行する。さらに、HDD105から入力CAMプロファイルおよび出力CAMプロファイルを読み出し、それらプロファイルから仮想CAMプロファイルを生成する仮想CAMプロファイル生成処理(S406)を実行する。
【０１１４】
次に、画像処理APは、仮想デバイスプロファイル、仮想CAMプロファイル、出力プロファイル、出力CAMプロファイルに基づき、階調補正処理後の画像データにカラーマッチング処理(S407)を施す。
【０１１５】
ところで、実施例4における階調補正処理(S404)とカラーマッチング処理(S407)の接続において、色空間の不整合が発生するようにみえる。これは、iCAM06の入出力をsRGBに基づく色空間と見做すことで、階調補正におけるsRGB色域外のクリップ発生などを防ぎ、結果として良好な画像再現を得るためのものである。
【０１１６】
［他の実施例］
本発明の目的は、次のようにしても達成される。上記実施例の機能または先に説明したフローチャートの処理や制御を実現するプログラムを記録した記録媒体をシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（CPUやMPU）に前記プログラムを実行させる。この場合、記録媒体から読み出されたソフトウェア自体が上記実施例の機能を実現することになり、そのプログラムと、そのプログラムを記憶する、コンピュータが読み取り可能な記録媒体は本発明を構成する。
【図１】
2011004187.tif 000003
【図２】
2011004187.tif 000004
【図３】
2011004187.tif 000005
【図４】
2011004187.tif 000006
【図５】
2011004187.tif 000007
【図６】
2011004187.tif 000008
【図７】
2011004187.tif 000009
【図８】
2011004187.tif 000010
【図９】
2011004187.tif 000011
【図１０】
2011004187.tif 000012
【図１１】
2011004187.tif 000013
【図１２】
2011004187.tif 000014
【図１３】
2011004187.tif 000015
【図１４】
2011004187.tif 000016
【図１５】
2011004187.tif 000017
【図１６】
2011004187.tif 000018
【図１７】
2011004187.tif 000019
【図１８】
2011004187.tif 000020
【図１９】
2011004187.tif 000021
【図２０】
2011004187.tif 000022