(57)【要約】【課題】  出力する画像データに対して、最適な色再現を実現する。【解決手段】  入力側の色再現域における色信号を中間の色再現域における色信号に変換し、出力する画像データの色分布情報に基づいて評価関数を決定し、評価関数に基づいて目標色に近づくように写像パラメータを決定し、出力側の色再現域における色信号に変換する。【選択図】  図５
2008072341.tif 000002
【特許請求の範囲】
【請求項１】
入力側の色再現域における色信号を出力側の色再現域における色信号へ変換する画像処理方法において、
入力側の色再現域における色信号を、入力側および出力側の色再現域に依存しない中間色再現域における色信号に変換する第１の変換工程と、
前記第１の変換手段により変換された前記中間色再現域における色信号を、変更可能な写像パラメータに基づいて出力側の色再現域における色信号に変換する第２の変換工程と、
前記入力側の色再現域における複数色に対し、色再現目標値として前記中間色再現域における色信号を設定する目標色設定工程と、
出力する画像データに対する色分布情報を取得する色分布情報取得工程と、
前記色分布情報に基づいて、前記写像パラメータを調整するための評価関数を決定する評価関数決定工程と、
前記評価関数に基づいて、前記色再現目標値に近づくように前期写像パラメータを決定する写像パラメータ決定工程とを備えることを特徴とする画像処理方法。
【請求項２】
前記目標色設定工程は、前記入力側の色再現域における複数色に対し、前記入力側の色再現域または前記出力側の色再現域における色信号として設定することを特徴とする請求項１記載の画像処理方法。
【請求項３】
前記色分布情報取得工程は、画像データのヒストグラム情報を取得することを特徴とする請求項１および２に記載の画像処理方法。
【請求項４】
入力側の色再現域における色信号を出力側の色再現域における色信号へ変換する画像処理装置において、
入力側の色再現域における色信号を、入力側および出力側の色再現域に依存しない中間色再現域における色信号に変換する第１の変換手段と、
前記第１の変換手段により変換された前記中間色再現域における色信号を、変更可能な写像パラメータに基づいて出力側の色再現域における色信号に変換する第２の変換手段と、
前記入力側の色再現域における複数色に対し、色再現目標値として前記中間色再現域における色信号を設定する目標色設定手段と、
出力する画像データに対する色分布情報を取得する色分布情報取得手段と、
前記色分布情報に基づいて、前記写像パラメータを調整するための評価関数を決定する評価関数決定手段と、
前記評価関数に基づいて、前記色再現目標値に近づくように前期写像パラメータを決定する写像パラメータ決定手段とを備えることを特徴とする画像処理装置。
【請求項５】
入力側の色再現域における色信号を出力側の色再現域における色信号へ変換する画像処理プログラムにおいて、
入力側の色再現域における色信号を、入力側および出力側の色再現域に依存しない中間色再現域における色信号に変換する第１の変換手順と、
前記第１の変換手段により変換された前記中間色再現域における色信号を、変更可能な写像パラメータに基づいて出力側の色再現域における色信号に変換する第２の変換手順と、
前記入力側の色再現域における複数色に対し、色再現目標値として前記中間色再現域における色信号を設定する目標色設定手順と、
出力する画像データに対する色分布情報を取得する色分布情報取得手順と、
前記色分布情報に基づいて、前記写像パラメータを調整するための評価関数を決定する評価関数決定手順と、
前記評価関数に基づいて、前記色再現目標値に近づくように前期写像パラメータを決定する写像パラメータ決定手順とを備えることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は入力側の色再現域における色信号から出力側の色再現域における色信号に変換する画像処理方法および画像処理装置に関する。
【背景技術】
【０００２】
従来、色再現域の異なる紙質や表示媒体において、画像の知覚的一致を図る色再現技術として、ある色再現域と別の色再現域とを均等表色系において対応付けるガマット写像技術が一般的であった。このようなガマット写像技術としては、例えば、［特許文献１］のような1次元から３次元までの複雑な写像変換を複数段にわたって行う技術、あるいは、［特許文献２］のような色の変化としての階調を曲線表現に帰着して、ガマット写像を実現する技術が提案されている。
【０００３】
また、出力する画像データに応じてカラーバランス補正を実行し、画像における色再現を向上させる技術が提案されている［特許文献３］。
【特許文献１】特開２００１−９４７９９号公報
【特許文献２】特開２００２−３３９２９号公報
【特許文献３】特開２００５−３１８５２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしこれらの技術によれば、モニタからカラープリンタへのガマット写像の際、ユーザが多数の色変換用パラメータを手動で調整する必要がある。最適なパラメータの組み合わせはモニタやカラープリンタの機種等にも依存するため、ガマット写像の最適制御パラメータをユーザが決定するには、多大な時間的コストを必要とする。
【０００５】
また、ガマット写像は一般に複数段の写像から構成されているため制御が難しく、ユーザが意図する色再現を達成するためには写像変換に対する高度な知識が要求される。一部の写像変換ではユーザが写像を制御しやすいように写像パラメータを構成しているものの、それでもなお写像パラメータによる効果ならびに全体に及ぼす影響を理解することは困難である。
【０００６】
さらには、画像データに応じた好ましい画像処理を実現するために、出力する画像データに対して最適な写像パラメータを決定することは非常に困難である。
【０００７】
これらの理由から、不特定の画像に対して効率的かつ均質に好ましいガマット写像を実現するために、写像パラメータの自動的な最適調整が求められている。
【０００８】
本発明は以上の問題に鑑みてなされたものであり、画像データに応じて、写像パラメータの自動的な最適調整を行うための技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために本発明の画像処理方法は、入力側の色再現域における色信号を出力側の色再現域における色信号へ変換する画像処理方法において、
入力側の色再現域における色信号を、入力側および出力側の色再現域に依存しない中間色再現域における色信号に変換する第１の変換工程と、
前記第１の変換手段により変換された前記中間色再現域における色信号を、変更可能な写像パラメータに基づいて出力側の色再現域における色信号に変換する第２の変換工程と、
前記入力側の色再現域における複数色に対し、色再現目標値として前記中間色再現域における色信号を設定する目標色設定工程と、
出力する画像データに対する色分布情報を取得する色分布情報取得工程と、
前記色分布情報に基づいて、前記写像パラメータを調整するための評価関数を決定する評価関数決定工程と、
前記評価関数に基づいて、前記色再現目標値に近づくように前期写像パラメータを決定する写像パラメータ決定工程とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、出力側の色再現域が異なる紙質や表示媒体に対して、共通の色再現域目標値を設定することにより、自動的に統一した色再現が可能となる。さらには、出力する画像データに対して、最適な色再現が可能となる。
【発明を実施するための最良の形態】
【００１１】
＜実施形態１＞
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００１２】
＜システム構成について＞
図１は、本実施形態に係るシステムの構成例を示すブロック図である。同図に示す如く、本実施形態に係るシステムは、本実施形態に係る画像処理装置として機能するコンピュータ１００と、画像出力装置の一例として用いているプリンタ１０９とで構成されている。
【００１３】
先ず、コンピュータ１００について説明する。コンピュータ１００には、一般のＰＣ（パーソナルコンピュータ）やＷＳ（ワークステーション）等が適用可能である。
【００１４】
ＣＰＵ１０１は、メインメモリ１０２に格納されているプログラムやデータを用いてコンピュータ１００全体の制御を行うと共に、コンピュータ１００が行う後述の各処理を実行する。
【００１５】
メインメモリ１０２は、ＨＤＤ（ハードディスクドライブ装置）１０５からロードされたプログラムやデータを一時的に記憶するためのエリアや、ＣＰＵ１０１が各種の処理を実行する際に用いるワークエリア等、各種のエリアを適宜提供することができる。
【００１６】
ＳＣＳＩインターフェース１０３は、ＨＤＤ１０５をバス１１４に接続するためのインターフェースとして機能するものである。
【００１７】
ネットワークインターフェース１０４は、コンピュータ１００をＬＡＮやインターネットなどのネットワーク回線１１３に接続するためのインターフェースとして機能するものである。なお、ネットワーク回線１１３は有線、無線の何れに限定するものではなく、様々な形態が考えられる。従って、ネットワークインターフェース１０４はネットワーク回線１１３に対応したものとなる。
【００１８】
ＨＤＤ１０５は、ＯＳ（オペレーティングシステム）や、コンピュータ１００が行う後述の各処理をＣＰＵ１０１に実行させるためのプログラムやデータ、プリンタ１０９のドライバソフトウェアなどを保持するものである。そしてこれらはＣＰＵ１０１による制御に従って適宜メインメモリ１０２にロードされ、ＣＰＵ１０１による処理対象となる。
【００１９】
グラフィックアクセラレータ１０６は、ＣＰＵ１０１によって処理された画像をカラーモニタ１０７に転送する処理を行う。
【００２０】
カラーモニタ１０７は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ１０１による処理結果を画像や文字などでもって表示することができる。
【００２１】
ＵＳＢコントローラ１０８は、プリンタ１０９をバス１１４に接続するためのインターフェースとして機能するものである。
【００２２】
キーボード／マウスコントローラ１１０は、キーボード１１１やマウス１１２をバス１１４に接続するためのインターフェースとして機能とするものである。コンピュータ１００の操作者がキーボード１１１やマウス１１２を用いて入力した指示はこのキーボード／マウスコントローラ１１０を介してＣＰＵ１０１に通知される。
【００２３】
次に、プリンタ１０９について説明する。一般にプリンタには、様々な記録方式のものが存在するが、本実施形態では、プリンタ１０９については特にその記録方式や機能については限定するものではない。
【００２４】
＜システムの動作について＞
次に、図１に示した構成を有するシステムの動作について説明する。本システムは、画像をカラーモニタ１０７に表示することができると共に、プリンタ１０９によって印刷することもできる。何れにせよ、そのためにはメインメモリ１０２に画像を取得する必要があるが、画像の取得形態については様々な形態が考えられる。
【００２５】
例えば、コンピュータ１００の操作者がキーボード１１１やマウス１１２を用いて、ＨＤＤ１０５に保存されている画像のうち所望の画像を指示したとする。その場合、ＣＰＵ１０１はこの指示を受け、指示された画像をＨＤＤ１０５から読み出す。そして、読み出した画像を、ＳＣＳＩインターフェース１０３、バス１１４を介してメインメモリ１０２に転送する。
【００２６】
また別の形態として、コンピュータ１００の操作者がキーボード１１１やマウス１１２を用いて、ネットワーク回線１１３上に接続されている装置に保持されている画像のうち所望の画像を指示したとする。その場合、ＣＰＵ１０１は指示された画像をこの装置、ネットワークインターフェース１０４、バス１１４を介してメインメモリ１０２に取得する。
【００２７】
次に、ＣＰＵ１０１は、メインメモリ１０２に取得したこの画像をグラフィックアクセラレータ１０６に転送する。グラフィックアクセラレータ１０６はこの転送された画像に対して所定の処理を施し、その後カラーモニタ１０７に転送する。これにより、カラーモニタ１０７の表示画面上には、この画像が表示されることになる。
【００２８】
ここで、コンピュータ１００の操作者がキーボード１１１やマウス１１２を用いて、この画像に対する印刷指示を入力すると、ＣＰＵ１０１はＨＤＤ１０５からメインメモリ１０２に既にロードしているプリンタ１０９のドライバソフトウェアにこの画像を渡す。そして、このドライバソフトウェアを実行する。
【００２９】
このドライバソフトウェアを実行すると、先ず、この画像の色変換処理を行う。この色変換処理については後述する。次に、色変換処理が施された画像をＣＭＹＫ画像に変換し、変換したこのＣＭＹＫ画像を、ＵＳＢコントローラ１０８を介してプリンタ１０９に転送する。これにより、プリンタ１０９によって、このＣＭＹＫ画像が紙などの記録媒体上に記録されることになる。
【００３０】
＜プリンタ１０９のドライバソフトウェアの動作について＞
次に、ＣＰＵ１０１が上記ドライバソフトウェアを実行する事で行う処理について、同処理のフローチャートを示す図２を用いて説明する。
【００３１】
先ず、メインメモリ１０２に画像データを取得する（ステップＳ２０１）。本実施形態では、この画像データは、ＲＧＢで表現される色を有する画素でもって構成されている画像（ＲＧＢ画像）のデジタルデータであるとする。また、画像の取得形態については上述の通り様々なものがあり、ここでは特には限定しない。
【００３２】
次に、後述の色補正ＬＵＴ（ルックアップテーブル）自動作成アプリケーションでもって作成され、ＨＤＤ１０５に保存されている色補正ＬＵＴをメインメモリ１０２にロードする（ステップＳ２０２）。
【００３３】
ここで、色補正ＬＵＴとは、ＲＧＢ色空間における色の格子点座標値と、この色に対応するＬ＊ａ＊ｂ＊色空間内の色の格子点座標値との対応を記したテーブルであり、例えば、図３（ｂ）に示す構成を有する。図３（ｂ）は、色補正ＬＵＴの構成例を示す図である。色補正ＬＵＴは、ＬＵＴ格子構成データ部分と、ＬＵＴ格子点データ部分とで構成されている。
【００３４】
同図に示す如く、ＬＵＴ格子構成データには、Ｒ、Ｇ、Ｂの取りうる値が記述されている。同図では、Ｒ、Ｇ、Ｂは共に０〜２５５の範囲内で、ステップ幅３２毎の離散値を取りうる。即ち、Ｒ、Ｇ、Ｂの取りうる値は、０、３２、６４、…、２２４、２５５となる。
【００３５】
図３（ａ）は、ＬＵＴ格子構成データが表す各格子点を示す図である。上述の通り、Ｒ、Ｇ、Ｂは０、３２、６４、…、２２４、２５５の何れかの値を取ることから、Ｒ軸、Ｇ軸、Ｂ軸のそれぞれは８等分されていることになる。それぞれの格子点の座標値はＧｒｉｄ（Ｒ／３２、Ｇ／３２、Ｂ／３２）で表されている。
【００３６】
ＬＵＴ格子点データには、図３（ａ）に示したＲＧＢ色空間における各格子点に対応する、Ｌ＊ａ＊ｂ＊空間における格子点の座標値が記述されている。なお、このように、ＲＧＢ色空間における色と、Ｌ＊ａ＊ｂ＊色空間における色のとの対応関係を示すＬＵＴについては周知のものであるので、これ以上の説明は省略する。また、色補正ＬＵＴは色の分布を示すものであることから、以下の説明では、この色補正ＬＵＴを色分布データと呼称する場合もある。
【００３７】
図２に戻って、次に、ステップＳ２０２で取得した色補正ＬＵＴを用いて、ステップＳ２０１で取得した画像（ここではＲＧＢのそれぞれが２４ビットで表現される画像）を、Ｌ＊ａ＊ｂ＊固定小数点データに変換する（ステップＳ２０３）。なお、変換後のデータはメインメモリ１０２に格納する。この変換には四面体補間を用いる。
【００３８】
次に、予め定められた色変換ＬＵＴを用いて、ステップＳ２０３で変換したＬ＊ａ＊ｂ＊固定小数点データをＣＭＹＫ３２ビット画像データ（ＣＭＹＫのそれぞれが３２ビットで表現される画像）に変換する（ステップＳ２０４）。この色変換ＬＵＴは予め作成され、ＨＤＤ１０５に保存されているものである。また、ステップＳ２０４で変換したＣＭＹＫ３２ビット画像データはメインメモリ１０２に格納する。
【００３９】
そして、ステップＳ２０４で変換したＣＭＹＫ３２ビット画像データを、ＵＳＢコントローラ１０８を介してプリンタ１０９に出力する（ステップＳ２０５）。
【００４０】
＜色補正ＬＵＴ自動作成アプリケーションについて＞
次に、上記ステップＳ２０２で用いた色補正ＬＵＴを作成する色補正ＬＵＴ自動作成アプリケーションについて説明する。この色補正ＬＵＴ自動作成アプリケーションは、ＨＤＤ１０５に保存されており、ＣＰＵ１０１による制御に従って適宜メインメモリ１０２にロードされるものである。
【００４１】
ＣＰＵ１０１がこの色補正ＬＵＴ自動作成アプリケーションを実行することで、カラーモニタ１０７の表示画面には、図４に示すＧＵＩが表示される。図４は、色補正ＬＵＴを自動作成するためのＧＵＩの表示例を示す図である。図４では、出力画像データのシーンモード４０１および出力用紙４０２を指定できる。
【００４２】
シーンモード４０１は、人物画、風景画、夜景、など、予め設定された選択肢の中から、画像データに適切なモードを選択できる。そして、シーンモード４０１に基づき、予め対応された色再現域を目標色として設定する。
【００４３】
出力用紙４０２は、普通紙、マット紙、光沢紙、など、予め設定された選択肢の中から、画像データを出力する用紙を選択できる。そして、出力用紙４０２に基づき、予め対応された色再現域をプリンタ１０９の色再現域として設定する。
【００４４】
なお、シーンモードの設定は図４に示すＧＵＩによる指定のみではなく、様々な手段が考えられる。例えば、画像データがＥｘｉｆファイル形式で保存されている場合、Ｅｘｉｆデータ領域に記録されている情報からシーンモードを設定できる。
【００４５】
また、入力側の色再現域は、画像データのＲＧＢ色空間に依存するものであり、ｓＲＧＢ色再現域やＡｄｏｂｅＲＧＢ色再現域などのカラーモニタの色再現域である。
【００４６】
＜色補正ＬＵＴ自動作成アプリケーションの動作について＞
次に、色補正ＬＵＴ自動作成アプリケーションを実行する事で行う処理について、同処理のフローチャートを示す図５を用いて説明する。
【００４７】
先ず、メインメモリ１０２内における作業用ヒープメモリの確保、写像パラメータの初期化、等の様々な初期化処理を行う（ステップＳ５０１）。
【００４８】
次に、図４に示したＧＵＩから、カラーモニタの色再現域、プリンタの色再現域、目標色再現域を取得し、メインメモリ１０２にロードする（ステップＳ５０２）。
【００４９】
次に、メインメモリ１０２に取得した画像データから色分布情報を取得する（ステップＳ５０３）。本実施形態では、色分布情報は、画像データ全体を解析して、ＲＧＢ色空間において６色相に分割した領域に対する画素の割合を算出する。
【００５０】
なお、色分布情報は６色相における画素の割合以外にも、周知の色分布情報として知られている種々の方法を用いることができる。例えば、画像データのヒストグラム情報を用いてもよい。
【００５１】
次に、色分布情報に基づいて写像パラメータを決定するための評価関数を決定する（ステップＳ５０４）。本実施形態では、色分布情報に基づいて、評価値を算出するための重み付け係数を決定する。その詳細については後述する。
【００５２】
次に、評価関数に基づいて最適な写像パラメータを決定する（ステップＳ５０５）。本実施形態では、評価関数に基づく評価値が最小となるように写像パラメータを決定する。
【００５３】
なお、評価関数に基づく評価値が最小となる写像パラメータを決定する方法として、周知の最適化手法として知られている種々の方法を用いることができる。例えば、２分枝探索法や準ニュートン法などを用いてもよい。
【００５４】
最後に、写像パラメータに基づいて色域写像処理を行い、カラーモニタの色再現域をプリンタ１０９の色再現域に写像する（ステップＳ５０６）。その詳細については後述する。
【００５５】
＜評価関数決定処理＞
次に、上記ステップＳ５０４における評価関数の決定処理の詳細について、図６に示したフローチャートを用いて説明する。図６は、ステップＳ５０４における評価関数の決定処理の詳細な処理を示すフローチャートである。
【００５６】
画像データの色分布情報として、６色相に分割した領域に対する画素の割合が上記ステップＳ５０３で得られる。また、カラーモニタの色再現域として、ＲＧＢ色空間における各格子点に対応するＬ＊ａ＊ｂ＊色空間における各格子点の色が上記ステップＳ５０２で得られる。
【００５７】
従って、後述の色域写像処理によって得られたＬ＊ａ＊ｂ＊色空間における各格子点の色（以下、色域写像処理結果）と、上記ステップＳ５０２でメインメモリ１０２にロードした各格子点の目標色とで、対応する格子点同士で、明度差の絶対値｜ΔＬ｜を求める（ステップＳ６０１）。
【００５８】
そして、全ての格子点同士で明度差を求めると、全ての明度差の平均値を求める（ステップＳ６０２）。
【００５９】
ここで、目標値とＬ＊ａ＊ｂ＊色空間の格子点数あるいは格子点間隔が等しくない場合には、補間によりＬ＊ａ＊ｂ＊色空間の格子点に対応する目標色を算出する。
【００６０】
次に、ＲＧＢＣＭＹのうち１つの色相を選択し、選択した色相の面上に位置する複数格子点の写像結果と、対応する目標色との誤差の平均ΔＥを求める（ステップＳ６０３）。
【００６１】
図７は、レッドの色相における目標色データと色域写像処理結果とを示す図である。同図において、実線が色域写像処理結果、点線が目標色データを示している。従って、ここでは、それぞれで対応する格子点同士の差を求める。
【００６２】
次に、ＲＧＢＣＭＹのそれぞれの色相について求めたΔＥの平均値ΔＥｉを求める（ステップＳ６０４）。ここで、ΔＥｉのｉはＲＧＢＣＭＹの色相を表す添え字である。
【００６３】
最後に、以下の式に基づいて評価値Ｅを求める（ステップＳ６０５）。
【００６４】
Ｅ＝α×｜ΔＬ｜＋Σ（βｉ×ΔＥｉ）、０＜α、β＜１
ここで、α、βｉは画像データの色分布情報に基づいて決定した重み付け係数である。例えば、重み係数αはヒストグラム情報に基づいて決定できる。また、重み係数βｉは６色相に分割した領域に対する画素の割合に応じて決定できる。
【００６５】
このように、様々な要素を評価値に反映させることができる。何れにせよ、評価値が小さいほど、写像結果が目標値に近いものであることを示すように、評価値を求める式を構成する必要がある。
【００６６】
＜色域写像処理＞
次に、ステップＳ５０６で行う色域写像処理について、同処理のフローチャートを示す図８を用いて以下説明する。
【００６７】
上記ステップＳ５０２でメインメモリ１０２にロードしたカラーモニタの色再現域、プリンタ１０９の色再現域を取得する（ステップＳ８０１）。カラーモニタの色再現域およびプリンタ１０９の色再現域は上述の通り、ＲＧＢ色空間における各格子点に対応するＬ＊ａ＊ｂ＊色空間における各格子点の色が登録されている。
【００６８】
次に、カラーモニタの色再現域内の色に対して明度および色相を調整し、第１中間色再現域を求める処理を行う（ステップＳ８０２）。図９は、グリーンの色相において、カラーモニタの色再現域、第１中間色再現域、プリンタ１０９の色再現域を示す図である。同図において、９０１がカラーモニタの色再現域、９０２が第１中間色再現域、９０３が同色相におけるプリンタ１０９の色再現域を示す。ステップＳ８０２では、カラーモニタの色再現域内の色に対して明度成分と色度成分を分離し、明度成分を非線形に写像する。また、色度成分に対しては、適当となるように色相の調整を行う。この動作により、カラーモニタの色再現域９０１を第１中間色再現域９０２に写像する。なお、この写像処理について詳しくは後述する。
【００６９】
図９に戻って、次に、第１中間色再現域内の色に対して明度を調整し、第２中間写像域を求める処理を行う（ステップＳ８０３）。図１０は、グリーンの色相において、第１中間色再現域、第２中間色再現域、プリンタ１０９の色再現域を示す図である。同図において、１００１が第１中間色再現域、１００２が第２中間色再現域、１００３が同色相におけるプリンタ１０９の色再現域を示す。ステップＳ８０３では、第１中間色再現域１００１内の色に対して明度成分と色度成分を分離し、色度成分一定のまま明度成分のみ非線形に写像する。なお、写像を実現する明度入出力関数は色度により異なる。この動作により、第１中間色再現域１００１を第２中間色再現域１００２に写像する。なお、この写像処理について詳しくは後述する。
【００７０】
図９に戻って、次に、第２中間色再現域内の色に対して彩度を調整し、プリンタ１０９の色再現域に写像する処理を行う（ステップＳ８０４）。図１１は、グリーンの色相において、第２中間色再現域、色域写像処理結果色再現域、プリンタ１０９の色再現域を示す図である。同図において、１１０１が第２中間色再現域、１１０２が色域写像処理結果色再現域、１１０３がプリンタ１０９の色再現域を示す。ステップＳ８０４では、第２中間色再現域１１０１内の色に対して明度成分と色度成分を分離し、明度成分一定のまま色度成分における彩度成分を非線形に写像する。この動作により、第２中間色再現域１１０１を色域写像処理結果色再現域１１０２に写像する。なお、この写像処理について詳しくは後述する。
【００７１】
＜明度／色相写像＞
ここでは、上記ステップＳ８０２における明度／色相写像処理について、同処理のフローチャートを示す図１２を用いて以下、説明する。
【００７２】
先ず、明度０，２０，４０，６０，８０，１００のそれぞれに対して、色相入出力関数ｈ０（・），ｈ２０（・），ｈ４０（・），ｈ６０（・），ｈ８０（・），ｈ１００（・）を生成する（ステップＳ１２０１）。
【００７３】
即ち、関数ｈ０（・）は、明度０における６つの色相（Ｒ、Ｇ、Ｂ、Ｃ、Ｍ、Ｙ）のそれぞれの色相制御値を１次スプライン、すなわち直線で結んだ関数として計算される。同様に、関数ｈ２０（・）は、明度２０における６つの色相におけるそれぞれの色相制御値を１次スプライン、すなわち直線で結んだ関数として計算される。同様に、関数ｈ４０（・）は、明度４０における６つの色相におけるそれぞれの色相制御値を１次スプライン、すなわち直線で結んだ関数として計算される。同様に、関数ｈ６０（・）は、明度６０における６つの色相におけるそれぞれの色相制御値を１次スプライン、すなわち直線で結んだ関数として計算される。同様に、関数ｈ８０（・）は、明度８０における６つの色相におけるそれぞれの色相制御値を１次スプライン、すなわち直線で結んだ関数として計算される。同様に、関数ｈ１００（・）は、明度１００における６つの色相におけるそれぞれの色相制御値を１次スプライン、すなわち直線で結んだ関数として計算される。
【００７４】
このようにして、明度毎に、色相入出力関数を作成する。例えば、明度値８０に対して、ＲとＹの２つの色相にて色相角を少しプラス側へ動かし、Ｂの色相でマイナス側へ動かした場合には、図１３に示すような色相入出力関数ｈ８０（・）が得られる。なお、図１３においては、色相角をａ＊ｂ＊色度座標系においてｂ＊軸正方向を色相角0 ｒａｄとし、反時計回りの向きを正としたラジアン表記により表している。
【００７５】
図１２に戻って、次に、以降の処理では、ＲＧＢ色空間におけるそれぞれの格子点に対応する色毎に行うので、先ず、１つの格子点を選択し、選択した格子点に対応する色（ｐ）を取得する（ステップＳ１２０２）。次に、色ｐに対する色相入出力関数ｈ（・）を、上記ｈ０（・），ｈ２０（・），ｈ４０（・），ｈ６０（・），ｈ８０（・），ｈ１００（・）を用いて生成する（ステップＳ１２０３）。
【００７６】
より詳しくは、色ｐの明度をｘとすると、先ず、明度０，２０，４０，６０，８０，１００のうち、明度ｘの直上の明度ｕｐに対応する色相入出力関数ｈｕｐ（・）、直下の明度ｌｗに対応する色相入出力関数ｈｌｗ（・）を特定する。そして、色相入出力関数ｈｕｐ（・）、ｈｌｗ（・）を用いて、色ｐに対する色相入出力関数ｈ（・）を、以下の式でもって求める。
【００７７】
ｈ（・）＝（ｈｌｗ（・）×（ｕｐ−ｘ）＋ｈｕｐ（・）×（ｘ−ｌｗ））／２０
例えば、ｘ＝７０の場合、明度７０の直上の明度は８０、直下の明度は６０であるので、色相入出力関数ｈ８０（・）、ｈ６０（・）を用いて、色ｐに対する色相入出力関数ｈ（・）を、以下の式でもって求める。
【００７８】
ｈ（・）＝（ｈ６０（・）＋ｈ８０（・））／２
そして、次に、求めた色相入出力関数ｈ（・）を用いて、色ｐの色相Ｈｕｅ＿ｍを変換する（ステップＳ１２０４）。
【００７９】
Ｈｕｅ＿ｍ＿Ｍａｐｐｅｄ＝ｈ（Ｈｕｅ＿ｍ）
ここで、Ｈｕｅ＿ｍ＿Ｍａｐｐｅｄは写像後の色相である。
【００８０】
次に、色ｐの明度成分の写像を行う（ステップＳ１２０５）。この写像では、色度に依存しない１つの写像関数を用いて、Ｌｍａｐｐｅｄ＝ｌ（Ｌｉｎ）と算出する。ここで、Ｌｉｎは写像前の明度、Ｌｍａｐｐｅｄは写像後の明度を示す。また、写像関数l(・)は、全体の明度制御パラメータｘに基づいて、以下のように定義される。
【００８１】
ｘが５０以上：
ｌ（・）＝（ｌ５０（・）×（１００−ｘ）＋ｌ１００（・）×（ｘ−５０））／５０
ｘが５０未満：
ｌ（・）＝（ｌ０（・）×（５０−ｘ）＋ｌ５０（・）×ｘ）／５０
ここで、ｌ０（・），ｌ５０（・），ｌ１００（・）は予め定められた関数である。ｌ０（・）は制御値ｘが０のときの写像関数、ｌ５０（・）は制御値ｘが５０のときの写像関数、ｌ１００（・）は制御値ｘが１００のときの写像関数である。それぞれの関数の形状を、図１４（ａ），（ｂ），（ｃ）に示す。同図から明らかなように、制御値ｘが０のときは全体的に暗く、制御値ｘが１００のときは全体的に明るく、また制御値ｘが５０のときは中庸な明るさとなる。
【００８２】
図１２に戻って、以上説明した一連の写像処理を、全ての格子点について行ったのか否かを判断する（ステップＳ１２０６）。そして、行っていないのであれば、処理をステップＳ１２０２に戻し、未だ選択していない格子点を選択し、選択した格子点について以降の処理を行う。
【００８３】
＜明度調整写像＞
次に、上記ステップＳ８０３における明度調整写像処理について、同処理のフローチャートを示す図１５を用いて以下説明する。
【００８４】
先ず、第１中間色再現域における１つの色ｑを選択する（ステップＳ１５０１）。次に、色ｑと同じ色度における第１中間色再現域の上部境界Ｂｕ、及び下部境界Ｂｌを求める（ステップＳ１５０２）。次に、色ｑと同じ色度における第２中間色再現域の上部境界Ｂｕ＿ｍａｐｐｅｄ、及び下部境界Ｂｌ＿ｍａｐｐｅｄを求める（ステップＳ１５０３）。
【００８５】
図１６は、色ｑ、上部境界Ｂｕ、下部境界Ｂｌ、上部境界Ｂｕ＿ｍａｐｐｅｄ、下部境界Ｂｌ＿ｍａｐｐｅｄを示す図である。同図において、実線は第１中間色再現域の境界を示し、１点破線は第２中間色再現域、点線はプリンタ１０９の色再現域を示す。
【００８６】
図１５に戻って、次に、明度調整の写像を行う入出力関数ｐ（・）を求める（ステップＳ１５０４）。ここで、入出力関数ｐ（・）は、下記の条件を満たすＣ２連続な３次スプライン関数として算出する。
【００８７】
ｐ（・）の台は［ＬＢｌ，ＬＢｕ］
ｐ（・）は台において単調増加
ｐ（ＬＢｌ）＝ＬＢｌｍ
ｐ（ＬＢｕ）＝ＬＢｕｍ
ｐ（・）は少なくともＣ１連続
ｐ'（ＬＢｌ）＝α，α＞０，αは圧縮を制御する定数
ｐ'（ＬＢｕ）＝β，β＞０，βは圧縮を制御する定数
なお、ＬＢｌはＢｌの明度であり、ＬＢｌｍはＢｌ＿ｍａｐｐｅｄの明度であり、ＬＢｕはＢｕの明度であり、ＬＢｕｍはＢｕ＿ｍａｐｐｅｄの明度である。ここで、入出力関数ｐ（・）の一例を図１７（ａ）、（ｂ）に示す。図１７（ａ）においては、台の中央部において明度がほぼ保たれている一方、低明度付近ならびに高明度付近では大きく圧縮されている。ちなみに、ＬＢｌ＝４０、ＬＢｌｍ＝４５、ＬＢｕ＝６８、ＬＢｕｍ＝６４である。
【００８８】
また図１７（ｂ）においては、明度の変化が大きいため、台の中間部において明度を保持するような特徴が見られるものの完全には保存していない。低明度付近では大きく伸張され、高明度付近では大きく圧縮されている。ちなみに、ＬＢｌ＝６０、ＬＢｌｍ＝４６、ＬＢｕ＝８４、ＬＢｕｍ＝７５である。
【００８９】
図１５に戻って、次に、ステップＳ１５０４で求めた入出力関数ｐ（・）を用いて、色ｑの写像前明度Ｌｍを変換（写像）し、写像後の明度Ｌｍ＿ｍａｐｐｅｄを求める（ステップＳ１５０５）。写像の式は以下の通りである。
【００９０】
Ｌｍ＿ｍａｐｐｅｄ＝ｐ（Ｌｍ）
次に、ＲＧＢ色空間における各格子点に対応する第１中間色再現域における全ての格子点について以上の処理を行ったのか否かをチェックする（ステップＳ１５０６）。チェックの結果、未だ選択していない格子点がある場合には、処理をステップＳ１５０１に戻し、未だ選択していない格子点の色を選択し、以降の処理を繰り返す。
【００９１】
＜彩度調整写像＞
次に、上記ステップＳ８０４における彩度調整写像処理について、同処理のフローチャートを示す図１８を用いて以下説明する。
【００９２】
先ず、第２中間色再現域における１つの色ｒを選択する（ステップＳ１８０１）。次に、色ｒと同じ色度、色相における第２中間色再現域の境界Bｐを求める（ステップＳ１８０２）。次に、色ｒと同じ色度、色相における色域写像処理結果色再現域の境界Ｂｉを求める（ステップＳ１８０３）。
【００９３】
図１９は、色ｑ、境界Ｂｐ、境界Ｂｉを示す図である。同図において、実線は第２中間色再現域の境界を示し、点線は色域写像処理結果色再現域における境界、１点破線はプリンタ１０９の色再現域を示す。
【００９４】
図１８に戻って、次に、彩度調整の写像を行う入出力関数ｑ（・）を求める（ステップＳ１８０４）。ここで入出力関数ｑ（・）は、下記の条件を満たすＣ２連続な３次スプライン関数として算出する。
【００９５】
ｑ（・）の台は［０，ｃｉ］
ｑ（０）＝０
ｑ（ｃｉ）＝ｃｐ
ｑ'（０）＝ｇ＿ｌｏｗ，ｇ＿ｌｏｗは低彩度から中彩度付近における彩度の拡大／圧縮率を制御する値
ｑ'（ｃｉ）＝ｇ＿ｈｉｇｈ，ｇ＿ｈｉｇｈは最大彩度付近における彩度補正の拡大／圧縮率を制御する値
ｑ'（ｘ）≠０，０＜ｘ＜ｃｉ
なお、ｃｐはＢｐの彩度であり、ｃｉはＢｉの彩度である。ここで、入出力関数q(・)の一例を図２０（ａ）、（ｂ）に示す。図２０（ａ）においては、高彩度部で伸張動作となっている一方、彩度調整値ｇ＿ｌｏｗが０．８であるため低／中彩度部では彩度を抑えるように動作している。また図２０（ｂ）では、高彩度部では圧縮動作となっている一方、ｇ＿ｌｏｗが１．２であるために低／中彩度部では彩度を強調するように動作している。
【００９６】
図１８に戻って、次に、ステップＳ１８０４で求めた入出力関数ｑ（・）を用いて、色ｒの写像前彩度ｃ＿ｏｒｇを変換（写像）し、写像後の彩度ｃ＿ｍｏｄを求める（ステップＳ１８０５）。写像の式は以下の通りである。
【００９７】
ｃ＿ｍｏｄ＝ｑ（ｃ＿ｏｒｇ）
次に、ＲＧＢ色空間における各格子点に対応する第２中間色再現域における全ての格子点について以上の処理を行ったのか否かをチェックする（ステップＳ１８０６）。チェックの結果、未だ選択していない格子点がある場合には、処理をステップＳ１８０１に戻し、未だ選択していない格子点の色を選択し、以降の処理を繰り返す。
【００９８】
以上の処理により、図９の９０１に示すカラーモニタの色再現域は９０３に示すプリンタ１０９の色再現域へと写像される。
【００９９】
以上の処理により、本実施形態よれば、出力側の色再現域が異なる紙質や表示媒体に対して、共通の色再現域目標値を設定することにより、自動的に統一した色再現が可能となる。さらには、出力する画像データに対して、最適な色再現が可能となる。
【０１００】
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１０１】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０２】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０３】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１０４】
【図１】本発明の実施形態に係るシステムの構成例を示すブロック図である。
【図２】ＣＰＵ１０１がドライバソフトウェアを実行する事で行う処理のフローチャートである。
【図３】（ａ）は、ＬＵＴ格子構成データが表す各格子点を示す図で、（ｂ）は、色補正ＬＵＴの構成例を示す図である。
【図４】色補正ＬＵＴを自動作成するためのＧＵＩの表示例を示す図である。
【図５】色補正ＬＵＴ自動作成アプリケーションを実行する事で行う処理のフローチャートである。
【図６】ステップＳ５０４における評価値の計算処理の詳細な処理を示すフローチャートである。
【図７】レッドの色相における目標色再現域と色域写像処理結果とを示す図である。
【図８】ステップＳ５０６で行う色域写像処理のフローチャートである。
【図９】グリーンの色相において、カラーモニタの色再現域、第１中間色再現域、プリンタ１０９の色再現域を示す図である。
【図１０】グリーンの色相において、第１中間色再現域、第２中間色再現域、プリンタ１０９の色再現域を示す図である。
【図１１】グリーンの色相において、第２中間色再現域、色域写像処理結果色再現域、プリンタ１０９の色再現域を示す図である。
【図１２】ステップＳ８０２における明度／色相写像処理のフローチャートである。
【図１３】ｈ８０（・）の例を示す図である。
【図１４】ｌ０（・）、ｌ５０（・）、ｌ１００（・）のそれぞれの関数の形を示す図である。
【図１５】ステップＳ８０３における明度調整写像処理のフローチャートである。
【図１６】色ｑ、上部境界Ｂｕ、下部境界Ｂｌ、上部境界Ｂｕ＿ｍａｐｐｅｄ、下部境界Ｂｌ＿ｍａｐｐｅｄを示す図である。
【図１７】入出力関数ｐ（・）の一例を示す図である。
【図１８】ステップＳ８０４における彩度調整写像処理のフローチャートである。
【図１９】色ｑ、境界Ｂｐ、境界Ｂｉを示す図である。
【図２０】入出力関数ｑ（・）の一例を示す図である。
【図１】
2008072341.tif 000003
【図２】
2008072341.tif 000004
【図３】
2008072341.tif 000005
【図４】
2008072341.tif 000006
【図５】
2008072341.tif 000007
【図６】
2008072341.tif 000008
【図７】
2008072341.tif 000009
【図８】
2008072341.tif 000010
【図９】
2008072341.tif 000011
【図１０】
2008072341.tif 000012
【図１１】
2008072341.tif 000013
【図１２】
2008072341.tif 000014
【図１３】
2008072341.tif 000015
【図１４】
2008072341.tif 000016
【図１５】
2008072341.tif 000017
【図１６】
2008072341.tif 000018
【図１７】
2008072341.tif 000019
【図１８】
2008072341.tif 000020
【図１９】
2008072341.tif 000021
【図２０】
2008072341.tif 000022