(57)【要約】【課題】  写像制御パラメータ、表色系の自動的な最適調整を行うための技術を提供すること。【解決手段】  変更可能な写像パラメータに基づいて、第１の色再現域における色を所定の表色系に属する中間色再現域における色に変換し、この中間色再現域における色を第２の色再現域における色に変換する処理を、複数種の表色系のそれぞれについて行う。それぞれの表色系に対応した第２の色再現域における色と、目標色とを用いて、それぞれの表色系に対応した評価値を求める。それぞれの表色系に対応した評価値に基づいて、複数種の表色系から用いる表色系を１つ決定する。【選択図】  図１
2007081733.tif 000002
【特許請求の範囲】
【請求項１】
変更可能な写像パラメータに基づいて、第１の色再現域における色を所定の表色系に属する中間色再現域における色に変換する第１の変換手段と、
前記写像パラメータに基づいて、前記第１の変換手段により変換された前記中間色再現域における色を第２の色再現域における色に変換する第２の変換手段と、
前記写像パラメータの変更を検知した場合には、複数種の表色系から前記所定の表色系として用いる表色系を１つ決定する決定手段とを備え、
前記決定手段は更に、
前記複数種の表色系のそれぞれを前記所定の表色系に適用する毎に前記第１の変換手段、前記第２の変換手段を動作させ、それぞれの表色系に対応した前記第２の色再現域における色を取得する取得手段と、
それぞれの表色系に対応した前記第２の色再現域における色と、目標色とを用いて、当該それぞれの表色系に対応した評価値を求める計算手段とを備え、
前記決定手段は、それぞれの表色系に対応した評価値に基づいて、前記複数種の表色系から前記所定の表色系として用いる表色系を１つ決定することを特徴とする画像処理装置。
【請求項２】
前記複数種の表色系には、ＲＧＢ表色系、ＣＭＹ表色系、ＸＹＺ表色系、Ｌｕｖ表色系、Ｌａｂ表色系、ＣＡＭ０２表色系が含まれていることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記写像パラメータには、色相写像を制御するためのパラメータ、明度写像を制御するためのパラメータが含まれていることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記計算手段は、
それぞれの表色系に対応した前記第２の色再現域における色と、前記目標色との差に基づいて、前記評価値を求めることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記決定手段は、最も評価値が小さい表色系を前記所定の表色系として用いるものとして決定することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
更に、
前記写像パラメータに基づいて、第１の色再現域における色を前記決定手段によって決定した表色系に属する中間色再現域における色に変換し、
その後、前記写像パラメータに基づいて、当該変換された中間色再現域における色を第２の色再現域における色に変換することで得られる、当該第１の色再現域における色と当該第２の色再現域における色との対応関係を、ＬＵＴ（ルックアップテーブル）として作成する手段を備えることを特徴とする請求項１に記載の画像処理装置。
【請求項７】
変更可能な写像パラメータに基づいて、第１の色再現域における色を所定の表色系に属する中間色再現域における色に変換する第１の変換工程と、
前記写像パラメータに基づいて、前記第１の変換工程で変換された前記中間色再現域における色を第２の色再現域における色に変換する第２の変換工程と、
前記写像パラメータの変更を検知した場合には、複数種の表色系から前記所定の表色系として用いる表色系を１つ決定する決定工程とを備え、
前記決定工程は更に、
前記複数種の表色系のそれぞれを前記所定の表色系に適用する毎に前記第１の変換工程、前記第２の変換工程を動作させ、それぞれの表色系に対応した前記第２の色再現域における色を取得する取得工程と、
それぞれの表色系に対応した前記第２の色再現域における色と、目標色とを用いて、当該それぞれの表色系に対応した評価値を求める計算工程とを備え、
前記決定工程では、それぞれの表色系に対応した評価値に基づいて、前記複数種の表色系から前記所定の表色系として用いる表色系を１つ決定することを特徴とする画像処理方法。
【請求項８】
コンピュータに請求項７に記載の画像処理方法を実行させることを特徴とするプログラム。
【請求項９】
請求項８に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関し、詳しくは、プリンタなどの印刷装置の色再現特性の管理をする画像処理装置およびその画像処理方法に関するものである。
【背景技術】
【０００２】
近年、パーソナルコンピュータ／ワークステーションの普及に伴い、デスクトップ・パブリッシング（DTP）やCADが広く使用されるようになってきた。このような中、コンピュータによってモニタ上で表現される色と、出力媒体上に再現される色とのマッチングを行う色再現技術が重要となってきている。例えばDTPの現場では、カラーモニタとカラープリンタを有するコンピュータシステムにおいて、モニタ上にてカラー画像の作成／編集／加工等を行い、カラープリンタで出力する。ここでは、モニタ上のカラー画像とプリンタ出力画像とが知覚的に一致していることが強く望まれている。
【０００３】
しかしながら、モニタ上のカラー画像とプリンタ出力画像との間で知覚的な一致を図ることは、以下の理由により困難が伴う。
【０００４】
カラーモニタにおいては、蛍光体を用いて特定波長の光を発光することによりカラー画像を表現している。他方、カラープリンタにおいてはインク等を用いて特定波長の光を吸収し、残りの反射光によってカラー画像を表現している。このように、画像表示形態が異なることに起因して、両者の色再現域は大きく異なっている。
【０００５】
さらにカラーモニタであっても、液晶モニタやブラウン管モニタ、さらにはプラズマ方式のモニタによっても色再現域は大きく異なる。またカラープリンタにおいても、紙質等の相違やインク使用量の相違等により色再現域が異なる。このため、カラーモニタ上の画像とカラープリンタの出力画像、あるいは異なる紙質にて出力したカラープリンタの画像において、これらの画像の色を完全に一致させることは不可能である。
【０００６】
ここで、色再現域の異なる紙質や表示媒体において、画像の知覚的一致を図る色再現技術として、ある色再現域と別の色再現域とを均等表色系において対応づけるガマット写像技術がある。このようなガマット写像技術としては、例えば、特許文献１のような１次元から３次元までの複雑な写像変換を複数段にわたって行う技術が開示されている。また、特許文献２のように、色の変化としての階調を曲線表現に帰着して、ガマット写像を実現する技術が開示されている。
【０００７】
また、入力画像の階調性を損なうことなくカラープリンタにより出力画像の知覚的一致を図る特許文献３のような技術が開示されている。更に、入力画像の階調性を保ちつつ、ユーザが均等表色系における色調整および評価／解析を行う特許文献４のような技術が開示されている。これらの技術を組み合わせてガマット写像を制御し、好ましい色再現を実現できることが示されている。
【特許文献１】特開2001-94799号公報
【特許文献２】特開2002-33929号公報
【特許文献３】特開2002-033931号公報
【特許文献４】特開2003-173437号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしこれらの技術によれば、モニタからカラープリンタへのガマット写像の際、ユーザが多数の色変換用パラメータを手動で調整する必要がある。最適なパラメータの組み合わせはモニタやカラープリンタの機種等にも依存するため、ガマット写像の最適制御パラメータをユーザが決定するには、多大な時間的コストを必要とする。
【０００９】
また、ガマット写像は一般に複数段の写像から構成されているため制御が難しく、ユーザが意図する色再現を達成するためには写像変換に対する高度な知識が要求される。一部の写像変換ではユーザが写像を制御しやすいように写像パラメータを構成しているものの、それでもなお写像パラメータによる効果ならびに全体に及ぼす影響を理解することは困難である。
【００１０】
また、高次の非線形変換による写像においては、非線形変換の係数項の写像への影響を理解している必要があり、一層制御が困難である。さらに、上記の非線形変換による写像は、写像変換を適用する表色系によってその効果は異なる。
【００１１】
これらの理由から、不特定の画像に対して効率的かつ均質に好ましいガマット写像を実現するために、写像制御パラメータおよび表色系の自動的な最適調整が求められている。
【００１２】
本発明は以上の問題に鑑みてなされたものであり、写像制御パラメータ、表色系の自動的な最適調整を行うための技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００１４】
即ち、変更可能な写像パラメータに基づいて、第１の色再現域における色を所定の表色系に属する中間色再現域における色に変換する第１の変換手段と、
前記写像パラメータに基づいて、前記第１の変換手段により変換された前記中間色再現域における色を第２の色再現域における色に変換する第２の変換手段と、
前記写像パラメータの変更を検知した場合には、複数種の表色系から前記所定の表色系として用いる表色系を１つ決定する決定手段とを備え、
前記決定手段は更に、
前記複数種の表色系のそれぞれを前記所定の表色系に適用する毎に前記第１の変換手段、前記第２の変換手段を動作させ、それぞれの表色系に対応した前記第２の色再現域における色を取得する取得手段と、
それぞれの表色系に対応した前記第２の色再現域における色と、目標色とを用いて、当該それぞれの表色系に対応した評価値を求める計算手段とを備え、
前記決定手段は、それぞれの表色系に対応した評価値に基づいて、前記複数種の表色系から前記所定の表色系として用いる表色系を１つ決定することを特徴とする。
【００１５】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００１６】
即ち、変更可能な写像パラメータに基づいて、第１の色再現域における色を所定の表色系に属する中間色再現域における色に変換する第１の変換工程と、
前記写像パラメータに基づいて、前記第１の変換工程で変換された前記中間色再現域における色を第２の色再現域における色に変換する第２の変換工程と、
前記写像パラメータの変更を検知した場合には、複数種の表色系から前記所定の表色系として用いる表色系を１つ決定する決定工程とを備え、
前記決定工程は更に、
前記複数種の表色系のそれぞれを前記所定の表色系に適用する毎に前記第１の変換工程、前記第２の変換工程を動作させ、それぞれの表色系に対応した前記第２の色再現域における色を取得する取得工程と、
それぞれの表色系に対応した前記第２の色再現域における色と、目標色とを用いて、当該それぞれの表色系に対応した評価値を求める計算工程とを備え、
前記決定工程では、それぞれの表色系に対応した評価値に基づいて、前記複数種の表色系から前記所定の表色系として用いる表色系を１つ決定することを特徴とする。
【発明の効果】
【００１７】
本発明の構成により、写像制御パラメータ、表色系の自動的な最適調整を行うことができる。
【発明を実施するための最良の形態】
【００１８】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００１９】
＜システム構成について＞
図１は、本実施形態に係るシステムの構成例を示すブロック図である。同図に示す如く、本実施形態に係るシステムは、本実施形態に係る画像処理装置として機能するコンピュータ１００と、画像出力装置の一例として用いているプリンタ１０９とで構成されている。
【００２０】
先ず、コンピュータ１００について説明する。コンピュータ１００には、一般のＰＣ（パーソナルコンピュータ）やＷＳ（ワークステーション）等が適用可能である。
【００２１】
ＣＰＵ１０１は、メインメモリ１０２に格納されているプログラムやデータを用いてコンピュータ１００全体の制御を行うと共に、コンピュータ１００が行う後述の各処理を実行する。
【００２２】
メインメモリ１０２は、ＨＤＤ（ハードディスクドライブ装置）１０５からロードされたプログラムやデータを一時的に記憶するためのエリアや、ＣＰＵ１０１が各種の処理を実行する際に用いるワークエリア等、各種のエリアを適宜提供することができる。
【００２３】
ＳＣＳＩインターフェース１０３は、ＨＤＤ１０５をバス１１４に接続するためのインターフェースとして機能するものである。
【００２４】
ネットワークインターフェース１０４は、コンピュータ１００をＬＡＮやインターネットなどのネットワーク回線１１３に接続するためのインターフェースとして機能するものである。なお、ネットワーク回線１１３は有線、無線の何れに限定するものではなく、様々な形態が考えられる。従って、ネットワークインターフェース１０４はネットワーク回線１１３に対応したものとなる。
【００２５】
ＨＤＤ１０５は、ＯＳ（オペレーティングシステム）や、コンピュータ１００が行う後述の各処理をＣＰＵ１０１に実行させるためのプログラムやデータ、プリンタ１０９のドライバソフトウェアなどを保持するものである。そしてこれらはＣＰＵ１０１による制御に従って適宜メインメモリ１０２にロードされ、ＣＰＵ１０１による処理対象となる。
【００２６】
グラフィックアクセラレータ１０６は、ＣＰＵ１０１によって処理された画像をカラーモニター１０７に転送する処理を行う。
【００２７】
カラーモニター１０７は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ１０１による処理結果を画像や文字などでもって表示することができる。
【００２８】
ＵＳＢコントローラ１０８は、プリンタ１０９をバス１１４に接続するためのインターフェースとして機能するものである。
【００２９】
キーボード／マウスコントローラ１１０は、キーボード１１１やマウス１１２をバス１１４に接続するためのインターフェースとして機能とするものである。コンピュータ１００の操作者がキーボード１１１やマウス１１２を用いて入力した指示はこのキーボード／マウスコントローラ１１０を介してＣＰＵ１０１に通知される。
【００３０】
次に、プリンタ１０９について説明する。一般にプリンタには、様々な記録方式のものが存在するが、本実施形態では、プリンタ１０９については特にその記録方式や機能については限定するものではない。
【００３１】
＜システムの動作について＞
次に、図１に示した構成を有するシステムの動作について説明する。本システムは、画像をカラーモニター１０７に表示することができると共に、プリンタ１０９によって印刷することもできる。何れにせよ、そのためにはメインメモリ１０２に画像を取得する必要があるが、画像の取得形態については様々な形態が考えられる。
【００３２】
例えば、コンピュータ１００の操作者がキーボード１１１やマウス１１２を用いて、ＨＤＤ１０５に保存されている画像のうち所望の画像を指示したとする。その場合、ＣＰＵ１０１はこの指示を受け、指示された画像をＨＤＤ１０５から読み出す。そして、読み出した画像を、ＳＣＳＩインターフェース１０３、バス１１４を介してメインメモリ１０２に転送する。
【００３３】
また別の形態として、コンピュータ１００の操作者がキーボード１１１やマウス１１２を用いて、ネットワーク回線１１３上に接続されている装置に保持されている画像のうち所望の画像を指示したとする。その場合、ＣＰＵ１０１は指示された画像をこの装置、ネットワークインターフェース１０４、バス１１４を介してメインメモリ１０２に取得する。
【００３４】
次に、ＣＰＵ１０１は、メインメモリ１０２に取得したこの画像をグラフィックアクセラレータ１０６に転送する。グラフィックアクセラレータ１０６はこの転送された画像に対して所定の処理を施し、その後カラーモニター１０７に転送する。これにより、カラーモニター１０７の表示画面上には、この画像が表示されることになる。
【００３５】
ここで、コンピュータ１００の操作者がキーボード１１１やマウス１１２を用いて、この画像に対する印刷指示を入力すると、ＣＰＵ１０１はＨＤＤ１０５からメインメモリ１０２に既にロードしているプリンタ１０９のドライバソフトウェアにこの画像を渡す。そして、このドライバソフトウェアを実行する。
【００３６】
このドライバソフトウェアを実行すると、先ず、この画像の色変換処理を行う。この色変換処理については後述する。次に、色変換処理が施された画像をＣＭＹＫ画像に変換し、変換したこのＣＭＹＫ画像をＵＳＢコントローラ１０８を介してプリンタ１０９に転送する。これにより、プリンタ１０９によって、このＣＭＹＫ画像が紙などの記録媒体上に記録されることになる。
【００３７】
＜プリンタ１０９のドライバソフトウェアの動作について＞
次に、ＣＰＵ１０１が上記ドライバソフトウェアを実行する事で行う処理について、同処理のフローチャートを示す図２を用いて説明する。
【００３８】
先ず、メインメモリ１０２に画像データを取得する（ステップＳ２０１）。本実施形態では、この画像データは、ＲＧＢで表現される色を有する画素でもって構成されている画像（ＲＧＢ画像）のデジタルデータであるとする。また、画像の取得形態については上述の通り様々なものがあり、ここでは特には限定しない。
【００３９】
次に、後述の色補正ＬＵＴ（ルックアップテーブル）作成アプリケーションでもって作成され、ＨＤＤ１０５に保存されている色補正ＬＵＴをメインメモリ１０２にロードする（ステップＳ２０２）。
【００４０】
ここで、色補正ＬＵＴとは、ＲＧＢ色空間における色の格子点の座標値と、この色に対応するL*a*b*色空間内の色の格子点の座標値との対応を記したテーブルであり、例えば、図３（ｂ）に示す構成を有する。図３（ｂ）は、色補正ＬＵＴの構成例を示す図である。色補正ＬＵＴは、ＬＵＴ格子構成データ部分と、ＬＵＴ格子点データ部分とで構成されている。
【００４１】
同図に示す如く、ＬＵＴ格子構成データには、Ｒ、Ｇ、Ｂの取りうる値が記述されている。同図では、Ｒ、Ｇ、Ｂは共に０〜２５５の範囲内で、ステップ幅３２毎の離散値を取りうる。即ち、Ｒ、Ｇ、Ｂの取りうる値は、０，３２，６４，、、２２４，２５５となる。
【００４２】
図３（ａ）は、ＬＵＴ格子構成データが表す各格子点を示す図である。上述の通り、Ｒ、Ｇ、Ｂは０，３２，６４，、、２２４，２５５の何れかの値を取ることから、Ｒ軸、Ｇ軸、Ｂ軸のそれぞれは８等分されていることになる。それぞれの格子点の座標値はＧｒｉｄ（Ｒ／３２、Ｇ／３２、Ｂ／３２）で表されている。
【００４３】
ＬＵＴ格子点データには、図３（ａ）に示したＲＧＢ色空間における各格子点に対応する、Ｌ＊ａ＊ｂ空間における格子点の座標値が記述されている。なお、このように、ＲＧＢ色空間における色と、Ｌ＊ａ＊ｂ色空間における色のとの対応関係を示すＬＵＴについては周知のものであるので、これ以上の説明は省略する。また、色補正ＬＵＴは色の分布を示すものであることから、以下の説明では、この色補正ＬＵＴを色分布データと呼称する場合もある。
【００４４】
図２に戻って、次に、ステップＳ２０２で取得した色補正ＬＵＴを用いて、ステップＳ２０１で取得した画像（ここではＲＧＢのそれぞれが２４ビットで表現される画像）を、L*a*b*固定小数点データに変換する（ステップＳ２０３）。なお、変換後のデータはメインメモリ１０２に格納する。この変換には四面体補間を用いる。
【００４５】
次に、予め定められた色変換ＬＵＴを用いて、ステップＳ２０３で変換したL*a*b*固定小数点データをＣＭＹＫ３２ビット画像データ（ＣＭＹＫのそれぞれが３２ビットで表現される画像）に変換する（ステップＳ２０４）。この色変換ＬＵＴは予め作成され、ＨＤＤ１０５に保存されているものである。また、ステップＳ２０４で変換したＣＭＹＫ３２ビット画像データはメインメモリ１０２に格納する。
【００４６】
そして、ステップＳ２０４で変換したＣＭＹＫ３２ビット画像データをＵＳＢコントローラ１０８を介してプリンタ１０９に出力する（ステップＳ２０５）。
【００４７】
＜色補正ＬＵＴ作成アプリケーションについて＞
次に、上記ステップＳ２０２で用いた色補正ＬＵＴを作成する色補正ＬＵＴ作成アプリケーションについて説明する。この色補正ＬＵＴ作成アプリケーションは、ＨＤＤ１０５に保存されており、ＣＰＵ１０１による制御に従って適宜メインメモリ１０２にロードされるものである。
【００４８】
ＣＰＵ１０１がこの色補正ＬＵＴ作成アプリケーションを実行することで、カラーモニター１０７の表示画面には、図４（ａ）、（ｂ）に示すＧＵＩが表示される。図４（ａ）は、図３（ｂ）に例示したＬＵＴ格子点データに記述された各Ｌ＊ａ＊ｂ座標値でもって表される色分布情報を３次元表示した場合の表示例を示す図である。図４（ｂ）は、色補正ＬＵＴを調整するためのＧＵＩ（色補正LUT調整ウィンドウ）の表示例を示す図である。
【００４９】
これらのＧＵＩを用いることで、色補正ＬＵＴを調整し、最終的には所望とする色補正ＬＵＴを作成することができる。その詳細については後述する。
【００５０】
＜色補正ＬＵＴ作成アプリケーションの動作について＞
次に、ＣＰＵ１０１が上記色補正ＬＵＴ作成アプリケーションを実行する事で行う処理について、同処理のフローチャートを示す図５を用いて説明する。
【００５１】
先ず、メインメモリ１０２内における作業用ヒープメモリの確保、写像制御パラメータの初期化、図４（ａ）に示した色分布情報を３次元表示するためのジオメトリ情報の初期化、等の様々な初期化処理を行う（ステップＳ５０１）。
【００５２】
次に、ＲＧＢ色空間における色をＬ＊ａ＊ｂ色空間における色に変換する場合に、変換先色として目標となる色（目標色）のデータをＨＤＤ１０５からメインメモリ１０２にロードする（ステップＳ５０２）。この目標色データの構成は、色補正ＬＵＴと同じである。
【００５３】
次に、現在設定されている写像制御パラメータを用いて、後述の色域写像処理を行い、ＲＧＢ色空間における色をＬ＊ａ＊ｂ色空間における色に変換する。これにより、ＲＧＢ色空間における各色に対応するＬ＊ａ＊ｂ色空間における各色が求まるので、ＲＧＢ色空間とＬ＊ａ＊ｂ色空間とで対応する色を記した色補正ＬＵＴを作成する（ステップＳ５０３）。
【００５４】
次に、ステップＳ５０３で作成した色補正ＬＵＴに記されているＬ＊ａ＊ｂ色空間における各色の格子点の座標値を用いて、この各色の色分布情報を３次元モデル（物体）として作成する（ステップＳ５０４）。この３次元モデルの作成方法については後述する。
【００５５】
次に、ステップＳ５０４で作成した３次元モデルをカラーモニター１０７に表示する（ステップＳ５０５）。
【００５６】
そして次に、後述する各種のメッセージの入力待ち状態となる（ステップＳ５０６）。
【００５７】
＜３次元モデルの作成、及び表示について＞
ここでは、上記ステップＳ５０４における３次元モデル作成処理、ステップＳ５０５における３次元モデル表示処理について説明する。
【００５８】
３次元モデルを作成する場合、図３（ａ）に示す如く、ＲＧＢ色空間上での最大の格子領域表面にて各格子点により形成される最小の四角形は、図６に示す三角形の組み合わせにより２通りの場合が考えられる。図６は、ＲＧＢ色空間上での最大の格子領域表面にて各格子点により形成される最小の四角形を示す図である。
【００５９】
図６において、太線で囲まれた領域が各格子点により形成される最小の四角形である。この領域において、破線で分割される２つの三角形の組み合わせと、２点破線で分割される２つの三角形の組み合わせとが考えられる。ここで、これら三角形の頂点である格子点座標を、Ｌ＊ａ＊ｂ色空間において対応する座標値に変換し、変換後の座標値から３次元モデルの体積が最大となるよう、各々２通りの三角形の組み合わせから選択する。こうして生成された３次元モデルはステップＳ５０５において、例えば、図４（ａ）に示す如く、カラーモニター１０７に表示される。
【００６０】
＜色補正LUT調整ウィンドウ＞
ここでは、図４（ｂ）に示したＧＵＩ（色補正LUT調整ウィンドウ）について説明する。同図のＧＵＩにおいてコンピュータ１００の操作者がキーボード１１１やマウス１１２を用いてボタン４０１〜４０３を指示したことをＣＰＵ１０１が検知すると、メッセージDISP_MAPCTRLを生成する。更に、ＣＰＵ１０１は、サブメッセージを生成する。ボタン４０１が指示された場合にはDISP_CHANGE_BRIGHTNESS、ボタン４０２が指示された場合にはDISP_CHANGE_HUE、ボタン４０３が指示された場合にはDISP_CHANGE_CHROMAを生成する。
【００６１】
また、ＣＰＵ１０１は、ボタン４０４が指示されたことを検知すると、メッセージGEN_LUT、ボタン４０５が指示されたことを検知すると、メッセージENDを生成する。
【００６２】
＜ステップＳ５０６で入力を待っているメッセージについて＞
ここでは、ステップＳ５０６で入力を待っているメッセージについて説明する。図７は、メッセージと、メッセージに付加されるサブメッセージとを示す図である。
【００６３】
＜＜DISP_MAPCTRL＞＞
ステップＳ５０６においてメッセージDISP_MAPCTRLの入力を検知すると、メッセージに付加されているサブメッセージを抽出し、処理をステップＳ５０７に進める。ステップＳ５０７では、抽出されたサブメッセージに対応する写像制御用モードレスダイアログを表示し、処理をステップＳ５０６に戻す。
【００６４】
＜＜CTRL_MAP＞＞
ステップＳ５０６においてメッセージCTRL_MAPの入力を検知すると、メッセージに付加されているサブメッセージを抽出し、処理をステップＳ５０８に進める。ステップＳ５０８では、抽出されたサブメッセージに基づいて写像制御パラメータを調整し、処理をステップＳ５１２に進める。ステップＳ５１２では、複数の表色系のそれぞれを用いて、写像制御パラメータに基づく色域写像処理を行い、目標色に近い写像結果が得られる表色系の選択処理を行う。
【００６５】
その後、処理をステップＳ５０３に進め、ステップＳ５０８で調整された写像制御パラメータ、ステップＳ５１２で選択（決定）された表色系を用いて、後述する色域写像処理を行う。即ち、色補正ＬＵＴを更新する。そしてステップＳ５０４，Ｓ５０５を介してステップＳ５０６へ戻る。
【００６６】
＜＜CTRL_DISP＞＞
ステップＳ５０６においてメッセージCTRL_DISPの入力を検知すると、メッセージに付加されているサブメッセージを抽出し、処理をステップＳ５０９に進める。ステップＳ５０９では、抽出されたサブメッセージに基づいてジオメトリ情報を更新し、処理をステップＳ５０５に進める。ステップＳ５０５では、更新されたジオメトリ情報を用いて３次元モデル表示を更新し、処理をステップＳ５０６に戻す。
【００６７】
＜＜GEN_LUT＞＞
ステップＳ５０６においてメッセージGEN_LUTの入力を検知すると、処理をステップＳ５１０に進める。ステップＳ５１０では、後述する方法により生成された写像色再現域を参照してRGBデータからCMYKデータへの変換用LUTを作成し、ＨＤＤ１０５に保存する。その後、処理をステップＳ５０６に戻す。
【００６８】
＜＜END＞＞
ステップＳ５０６においてメッセージENDの入力を検知すると、処理をステップＳ５１１に進める。ステップＳ５１１では、ヒープメモリ開放等の終了処理を行い、色補正LUT作成アプリケーションを終了する。
【００６９】
＜サブメッセージについて＞
ここでは、ステップＳ５０６で抽出されるサブメッセージについて説明する。
【００７０】
＜＜DISP_CHANGE_BRIGHTNESS＞＞
ステップＳ５０６においてサブメッセージDISP_CHANGE_BRIGHTNESSを検知すると、ステップＳ５０７では、図８（ａ）に示すダイアログを表示し、処理をステップＳ５０６に戻す。
【００７１】
図８（ａ）に示したダイアログにおいて、８０１はスライダで、コンピュータ１００の操作者がキーボード１１１やマウス１１２を用いて左右に操作することができる。スライダ８０１を操作すると、ＣＰＵ１０１は、メッセージCTRL_MAPと、これに付随するサブメッセージDISP_CHANGE_BRIGHTNESSを生成する。また、スライダ８０１の位置情報をメッセージCTRL_MAPに付加する。
【００７２】
サブメッセージ、位置情報が付加されたメッセージCTRL_MAPの入力をステップＳ５０６で検知すると、処理をステップＳ５０８に進める。ステップＳ５０８では、サブメッセージDISP_CHANGE_BRIGHTNESSを検知すると、メッセージに付加されている位置情報を取得する。そして、明度制御値を、取得した位置情報に基づいて０から１００までの整数値をとる明度制御値に更新する。そして更新した明度制御値に基づいて写像制御パラメータを更新する。そして処理をステップＳ５１２に進める。ステップＳ５１２では、更新した写像制御パラメータに基づいて、後述する表色系選択を行い、処理をステップＳ５０３に戻し、以降の処理を行う。
【００７３】
＜＜DISP_CHANGE_HUE＞＞
ステップＳ５０６においてサブメッセージDISP_CHANGE_HUEを検知すると、ステップＳ５０７では、図８（ｂ）に示すダイアログを表示し、処理をステップＳ５０６に戻す。
【００７４】
図８（ｂ）に示したダイアログにおいて、８０２は明度を選択するためのリストである。このリスト８０２をキーボード１１１やマウス１１２でもって操作することで、０，２０，４０，６０，８０，１００の何れかの数値を選択することができ、選択した数値は、明度値として設定される。
【００７５】
８０３は、調整対象の色相を選択するためのリストで、キーボード１１１やマウス１１２でもって操作することで、６色相（レッド、グリーン、ブルー、シアン、マゼンタ、イエロー）の何れかを選択することができる。
【００７６】
８０４はスライダで、キーボード１１１やマウス１１２でもって左右に操作することができる。スライダ８０４を操作すると、ＣＰＵ１０１は、メッセージCTRL_MAPと、これに付随するサブメッセージDISP_CHANGE_HUEを生成する。また、スライダ８０４の位置情報をメッセージCTRL_MAPに付加する。
【００７７】
サブメッセージ、位置情報、リスト８０２で選択された明度、リスト８０３で選択された色相、が付加されたメッセージCTRL_MAPの入力をステップＳ５０６で検知すると、処理をステップＳ５０８に進める。ステップＳ５０８では、サブメッセージDISP_CHANGE_HUEを検知すると、メッセージに付加されている位置情報、選択明度、選択色相を取得する。そして、調整対象たる色相角値を算出する。更には、色相制御値を、取得した位置情報に基づいて−２０から２０までの整数値をとる色相制御値に更新する。そして、選択明度、色相制御値、選択色相に基づいて写像制御パラメータを更新する。
【００７８】
そして処理をステップＳ５１２に進める。ステップＳ５１２では、更新した写像制御パラメータに基づいて、後述する表色系選択処理を行い、処理をステップＳ５０３に戻し、以降の処理を行う。
【００７９】
＜＜DISP_CHANGE_CHROMA＞＞
ステップＳ５０６においてサブメッセージDISP_CHANGE_CHROMAを検知すると、ステップＳ５０７では、図８（ｃ）に示すダイアログを表示し、処理をステップＳ５０６に戻す。
【００８０】
図８（ｃ）に示したダイアログにおいて、８０５は、調整対象の色相を選択するためのリストである。このリスト８０５をキーボード１１１やマウス１１２でもって操作することで、黄、橙、赤、赤紫、マゼンタ、青紫、青、空色、シアン、青緑、緑、黄緑の何れかを選択することができる。
【００８１】
８０６はスライダで、キーボード１１１やマウス１１２でもって左右に操作することができる。スライダ８０６を操作すると、メッセージCTRL_MAPと、これに付随するサブメッセージDISP_CHANGE_CHROMAを生成する。また、スライダ８０６の位置情報をメッセージCTRL_MAPに付加する。
【００８２】
サブメッセージ、位置情報、リスト８０５で選択した色相が付加されたメッセージCTRL_MAPの入力をステップＳ５０６で検知すると、処理をステップＳ５０８に進める。ステップＳ５０８では、サブメッセージCHANGE_CHROMAを検知すると、メッセージに付加されている位置情報、選択色相を取得する。そして、調整対象たる色相角値を算出する。更には、彩度制御値を、取得した位置情報に基づいて０．５から２までの実数値をとる彩度調整値に更新する。そして、彩度制御値、選択色相に基づいて、写像制御パラメータを更新する。
【００８３】
そして、処理をステップＳ５１２に進める。ステップＳ５１２では、更新した写像制御パラメータに基づいて、後述する表色系選択処理を行い、処理をステップＳ５０３に戻し、以降の処理を行う。
【００８４】
＜色域写像処理＞
次に、ステップＳ５０３で行う上記色域写像処理について、同処理のフローチャートを示す図９を用いて以下説明する。
【００８５】
色補正ＬＵＴには上述の通り、ＲＧＢ色空間における各格子点に対応する色のデータが登録されているので、先ず、このデータを読み出してメインメモリ１０２にロードする（ステップＳ９０１）。各格子点に対応する色とは、図３（ａ）に示した各格子点におけるＲＧＢ値で定義される色である。
【００８６】
次に、各格子点の色を、現在設定されている表色系（予め、若しくは従前のステップＳ５１２において選択された表色系）に写像した場合に、取りうる領域の境界を示す情報（境界情報）を周知の方法でもって求める（ステップＳ９０２）。そして、メインメモリ１０２に取得する（ステップＳ９０２）。
【００８７】
次に、ステップＳ９０１でメインメモリ１０２にロードした各格子点の色の明度、及び色相を、現在設定されている表色系に写像することで、第１中間写像色再現域を求める処理を行う（ステップＳ９０３）。
【００８８】
図１０は、グリーンの色相において、各格子点の色域、第１中間写像色再現域、同色相におけるプリンタ１０９の色再現域を示す図である。同図において１００１が各格子点の色域、１００２が第１中間写像色再現域、１００３が同色相におけるプリンタ１０９の色再現域を示す。
【００８９】
ステップＳ９０３では、ステップＳ９０１でメインメモリ１０２にロードした各格子点に対する色に対して明度成分と色度成分を分離し、明度成分を非線形に写像する。また、色度成分に対しては、適当となるように色相の調整を行う。この動作により、ステップＳ９０１でメインメモリ１０２にロードした各格子点に対応する色を第１中間写像色再現域に写像する。なお、この写像処理について詳しくは後述する。
【００９０】
図９に戻って、次に、第１中間写像色再現域に対して明度を調整し、第２中間写像色再現域を求める処理を行う（ステップＳ９０４）。図１１は、グリーンの色相において、第１中間写像色再現域、第２中間写像色再現域、プリンタ１０９の色再現域を示す図である。同図において１１０１が第１中間写像色再現域、１１０２が第２中間写像色再現域、１１０３が同色相におけるプリンタ１０９の色再現域を示す。
【００９１】
ステップＳ９０４では、第１中間写像色再現域１００１内の色に対して明度成分と色度成分を分離し、色度成分一定のまま明度成分のみ非線形に写像する。なお、写像を実現する明度入出力関数は色度により異なる。この動作により、第１中間写像色再現域１１０１を第２中間写像色再現域１１０２に写像する。なお、この写像処理について詳しくは後述する。
【００９２】
図９に戻って、次に、ステップＳ９０２で求めた境界情報を用いて、第２中間写像色再現域をＬ＊ａ＊ｂ色空間におけるもの（写像色再現域）に写像する処理を行う（ステップＳ９０５）。写像は彩度について行う。図１２は、グリーンの色相において、第２中間写像色再現域、Ｌ＊ａ＊ｂ色空間で取りうる色域、プリンタ１０９の色再現域を示す図である。同図において１２０１が第２中間写像色再現域、１２０２がＬ＊ａ＊ｂ色空間で取りうる色域、１２０３がプリンタ１０９の色再現域を示す。
【００９３】
ステップＳ９０５では、第２中間写像色再現域１２０１内の色に対して明度成分と色度成分を分離し、明度成分一定のまま色度成分における彩度成分を非線形に写像する。この動作により、第２中間写像色再現域１２０１を、Ｌ＊ａ＊ｂ色空間における色域に写像する。なお、この写像処理について詳しくは後述する。
【００９４】
＜明度／色相写像＞
ここでは、上記ステップＳ９０３における明度／色相写像処理について、同処理のフローチャートを示す図１３を用いて以下、説明する。
【００９５】
先ず、明度０，２０，４０，６０，８０，１００のそれぞれに対して、色相入出力関数ｈ０（・），ｈ２０（・），ｈ４０（・），ｈ６０（・），ｈ８０（・），ｈ１００（・）を生成する（ステップＳ１３０１）。
【００９６】
即ち、関数ｈ０（・）は、明度０における６つの色相（Ｒ、Ｇ、Ｂ、Ｃ、Ｍ、Ｙ）のそれぞれの色相制御値を１次スプライン、すなわち直線で結んだ関数として計算される。同様に、関数ｈ２０（・）は、明度２０における６つの色相のそれぞれの色相制御値を１次スプライン、すなわち直線で結んだ関数として計算される。同様に、関数ｈ４０（・）は、明度４０における６つの色相のそれぞれの色相制御値を１次スプライン、すなわち直線で結んだ関数として計算される。同様に、関数ｈ６０（・）は、明度６０における６つの色相のそれぞれの色相制御値を１次スプライン、すなわち直線で結んだ関数として計算される。同様に、関数ｈ８０（・）は、明度８０における６つの色相のそれぞれの色相制御値を１次スプライン、すなわち直線で結んだ関数として計算される。同様に、関数ｈ１００（・）は、明度１００における６つの色相のそれぞれの色相制御値を１次スプライン、すなわち直線で結んだ関数として計算される。
【００９７】
このようにして、明度毎に、色相入出力関数を作成する。例えば、明度値８０に対して、ＲとＹの２つの色相にて色相角を少しプラス側へ動かし、Ｂの色相でマイナス側へ動かした場合には、図１４に示すような色相入出力関数ｈ８０（・）が得られる。なお、図１４においては、色相角をa*b*色度座標系においてb*軸正方向を色相角0 radとし、反時計回りの向きを正としたラジアン表記により表している。
【００９８】
図１３に戻って、次に、以降の処理では、ＲＧＢ色空間におけるそれぞれの格子点に対応する色毎に行うので、先ず、１つの格子点を選択し、選択した格子点に対応する色（ｐ）を取得する（ステップＳ１３０２）。次に、色ｐに対する色相入出力関数ｈ（・）を、上記ｈ０（・），ｈ２０（・），ｈ４０（・），ｈ６０（・），ｈ８０（・），ｈ１００（・）を用いて生成する（ステップＳ１３０３）。
【００９９】
より詳しくは、色ｐの明度をｘとすると、先ず、明度０，２０，４０，６０，８０，１００のうち、明度ｘの直上の明度ｕｐに対応する色相入出力関数ｈｕｐ（・）、直下の明度ｌｗに対応する色相入出力関数ｈｌｗ（・）を特定する。そして、色相入出力関数ｈｕｐ（・）、ｈｌｗ（・）を用いて、色ｐに対する色相入出力関数ｈ（・）を、以下の式でもって求める。
【０１００】
ｈ（・）＝（ｈｌｗ（・）×（ｕｐ−ｘ）＋ｈｕｐ（・）×（ｘ−ｌｗ））／２０
例えば、ｘ＝７０の場合、明度７０の直上の明度は８０、直下の明度は６０であるので、色相入出力関数ｈ８０（・）、ｈ６０（・）を用いて、色ｐに対する色相入出力関数ｈ（・）を、以下の式でもって求める。
【０１０１】
ｈ（・）＝（ｈ６０（・）＋ｈ８０（・））／２
そして、次に、求めた色相入出力関数ｈ（・）を用いて、色ｐの色相Hue_mを変換する（ステップＳ１３０４）。
【０１０２】
Ｈｕｅ＿ｍ＿Ｍａｐｐｅｄ＝ｈ（Ｈｕｅ＿ｍ）
ここで、Hue_m_mappedは写像後の色相である。
【０１０３】
次に、色ｐの明度成分の写像を行う（ステップＳ１３０５）。この写像では、色度に依存しない１つの写像関数を用いて、Lmappd = l(Lin)と算出する。ここで、Ｌｉｎは写像前の明度、Ｌｍａｐｐｅｄは写像後の明度を示す。また、写像関数l(・)は、図８（ａ）にしめしたダイアログにおいてスライダ８０１で調節した制御値ｘに基づいて、以下のように定義される。
【０１０４】
ｘが５０以上：
ｌ（・）＝（ｌ５０（・）×（１００−ｘ）＋ｌ１００（・）×（ｘ−５０））／５０
ｘが５０未満：
ｌ（・）＝（ｌ０（・）×（５０−ｘ）＋ｌ５０（・）×ｘ）／５０
ここで、ｌ０（・），ｌ５０（・），ｌ１００（・）は予め定められた関数である。ｌ０（・）は制御値ｘが０のときの写像関数、ｌ５０（・）は制御値ｘが５０のときの写像関数、ｌ１００（・）は制御値ｘが１００のときの写像関数である。それぞれの関数の形状を、図１５（ａ），（ｂ），（ｃ）に示す。同図から明らかなように、制御値ｘが０のときは全体的に暗く、制御値ｘが１００のときは全体的に明るく、また制御値ｘが５０のときは中庸な明るさとなる。
【０１０５】
図１３に戻って、以上説明した一連の写像処理を、全ての格子点について行ったのか否かを判断する（ステップＳ１３０６）。そして、行っていないのであれば、処理をステップＳ１３０２に戻し、未だ選択していない格子点を選択し、選択した格子点について以降の処理を行う。
【０１０６】
＜明度調整写像＞
次に、上記ステップＳ９０４における明度調整写像処理について、同処理のフローチャートを示す図１６を用いて以下説明する。
【０１０７】
先ず、第１中間写像色再現域における１つの色ｑを選択する（ステップＳ１６０１）。次に、色ｑと同じ色度における第１中間写像色再現域の上部境界Bu、及び下部境界Blを求める（ステップＳ１６０２）。次に、色ｑと同じ色度における第２中間写像色再現域の上部境界Bu_mapped、及び下部境界Bl_mappedを求める（ステップＳ１６０３）。
【０１０８】
図１７は、色ｑ、上部境界Bu、下部境界Bl、上部境界Bu_mapped、下部境界Bl_mappedを示す図である。同図において、実線は第１中間写像色再現域の境界を示し、１点破線は第２中間写像色再現域、点線はＬ＊ａ＊ｂ色空間で取りうる色域を示す。
【０１０９】
図１６に戻って、次に、明度調整の写像を行う入出力関数ｐ（・）を求める（ステップＳ１６０４）。ここで、入出力関数ｐ（・）は、下記の条件を満たすＣ２連続な３次スプライン関数として算出する。
【０１１０】
ｐ（・）の台は［ＬＢｌ，ＬＢｕ］
ｐ（・）は台において単調増加
ｐ（ＬＢｌ）＝ＬＢｌｍ
ｐ（ＬＢｕ）＝ＬＢｕｍ
ｐ（・）は少なくともＣ１連続
ｐ’（ＬＢｌ）＝α，α＞０，αは圧縮を制御する定数
ｐ’（ＬＢｕ）＝β，β＞０，βは圧縮を制御する定数
なお、LBlはBlの明度であり、LBlmはBl_mappedの明度であり、LBuはBuの明度であり、LBumはBu_mappedの明度である。ここで、入出力関数p(・)の一例を図１８（ａ）、（ｂ）に示す。図１８（ａ）においては、台の中央部において明度がほぼ保たれている一方、低明度付近ならびに高明度付近では大きく圧縮されている。ちなみに、LBl = 40, LBlm = 45, LBu = 68, LBum = 64である。
【０１１１】
また図１８（ｂ）においては、明度の変化が大きいため、台の中間部において明度を保持するような特徴が見られるものの完全には保存していない。低明度付近では大きく伸張され、高明度付近では大きく圧縮されている。ちなみに、LBl = 60, LBlm = 46, LBu = 84, LBum = 75である。
【０１１２】
図１６に戻って、次に、ステップＳ１６０４で求めた入出力関数ｐ（・）を用いて、色ｑの写像前明度Lmを変換（写像）し、写像後の明度Lm_mappedを求める。写像の式は以下の通りである。
【０１１３】
Ｌｍ＿ｍａｐｐｅｄ＝ｐ（Ｌｍ）
次に、ＲＧＢ色空間における各格子点に対応する第１中間写像色再現域における全ての格子点について以上の処理を行ったのか否かをチェックする（ステップＳ１６０６）。チェックの結果、未だ選択していない格子点がある場合には、処理をステップＳ１６０１に戻し、未だ選択していない格子点の色を選択し、以降の処理を繰り返す。
【０１１４】
＜彩度調整写像＞
次に、上記ステップＳ９０５における彩度調整写像処理について、同処理のフローチャートを示す図１９を用いて以下説明する。
【０１１５】
先ず、第２中間写像色再現域における１つの色ｒを選択する（ステップＳ１９０１）。次に、色ｒと同じ色度、色相における第２中間写像色再現域の境界Bｐを求める（ステップＳ１９０２）。次に、色ｒと同じ色度、色相における写像色再現域の境界Biを求める（ステップＳ１９０３）。
【０１１６】
図２０は、色ｑ、境界Bｐ、境界Biを示す図である。同図において、実線は第２中間写像色再現域の境界を示し、点線は写像色再現域における境界、１点破線はプリンタ色再現域を示す。
【０１１７】
図１９に戻って、次に、彩度調整の写像を行う入出力関数ｑ（・）を求める（ステップＳ１９０４）。ここで入出力関数ｑ（・）は、下記の条件を満たすＣ２連続な３次スプライン関数として算出する。
【０１１８】
ｑ（・）の台は［０，ｃｉ］
ｑ（０）＝０
ｑ（ｃｉ）＝ｃｐ
ｑ’（０）＝ｇ＿ｌｏｗ，ｇ＿ｌｏｗは低彩度から中彩度付近における彩度の拡大／圧縮率を制御する値
ｑ’（ｃｉ）＝ｇ＿ｈｉｇｈ，ｇ＿ｈｉｇｈは最大彩度付近における彩度補正の拡大／圧縮率を制御する値
ｑ’（ｘ）≠０，０≦ｘ≦ｃｉ
なお、cpはBpの彩度であり、ciはBiの彩度である。ここで、入出力関数q(・)の一例を図２１（ａ）、（ｂ）に示す。図２１（ａ）においては、高彩度部で伸張動作となっている一方、彩度調整値g_lowが0.8であるため低／中彩度部では彩度を抑えるように動作している。また図２１（ｂ）では、高彩度部では圧縮動作となっている一方、g_lowが1.2であるために低／中彩度部では彩度を強調するように動作している。
【０１１９】
図１９に戻って、次に、ステップＳ１９０４で求めた入出力関数ｑ（・）を用いて、色ｒの写像前彩度c_orgを変換（写像）し、写像後の彩度c_modを求める。写像の式は以下の通りである。
【０１２０】
ｃ＿ｍｏｄ＝ｑ（ｃ＿ｏｒｇ）
次に、ＲＧＢ色空間における各格子点に対応する第２中間写像色再現域における全ての格子点について以上の処理を行ったのか否かをチェックする（ステップＳ１９０６）。チェックの結果、未だ選択していない格子点がある場合には、処理をステップＳ１９０１に戻し、未だ選択していない格子点の色を選択し、以降の処理を繰り返す。
【０１２１】
＜表色系選択処理＞
次に、上記ステップＳ５１２における表色系選択処理について、同処理のフローチャートを示す図２２を用いて以下、説明する。先ず、選択可能な複数の表色系のうち、１つを選択する（ステップＳ２２０１）。この複数の表色系には、ＲＧＢ表色系、ＣＭＹ表色系、ＸＹＺ表色系、Ｌｕｖ表色系、Ｌａｂ表色系、ＣＡＭ０２表色系等が含まれる。
【０１２２】
次に、図９のフローチャートに従った処理を実行することで、ＲＧＢ色空間における各格子点に対応する色を、ステップＳ２２０１で選択した表色系に写像し、その後、Ｌ＊ａ＊ｂ表色系に変換する（ステップＳ２２０２）。この処理の結果、得られたＬ＊ａ＊ｂ表色系における各色は、ステップＳ２２０１で選択した表色系の影響を受けている。
【０１２３】
次に、ステップＳ２２０１で選択した表色系に対する評価値を計算する（ステップＳ２２０３）。この計算処理については後述する。
【０１２４】
次に、選択可能な全ての表色系についてステップＳ２２０２，Ｓ２２０３における処理を行ったか否かをチェックする（ステップＳ２２０４）。チェックの結果、未だ選択していない表色系がある場合には処理をステップＳ２２０１に戻し、未だ選択していない表色系を選択し、ステップＳ２２０２，Ｓ２２０３の処理を行う。
【０１２５】
一方、全ての表色系についてステップＳ２２０２、Ｓ２２０３による処理を行った場合、即ち、全ての表色系について評価値が求まった場合には、処理をステップＳ２２０５に進め、それぞれの評価値を比較する（ステップＳ２２０５）。そしてこの比較の結果、最も低い評価値となった表色系を、上記ステップＳ５０３以降の処理で用いる表色系として選択（設定）する（ステップＳ２２０６）。即ち、最も低い評価値となった表色系が、視覚的に最も好ましいものとなる。
【０１２６】
＜＜評価値算出処理＞＞
次に、上記ステップＳ２２０３における評価値の計算処理の詳細について、図２３に示したフローチャートを用いて説明する。図２３は、ステップＳ２２０３における評価値の計算処理の詳細な処理を示すフローチャートである。
【０１２７】
ＲＧＢ色空間における各格子点に対応するＬ＊ａ＊ｂ色空間における各格子点の色が上記ステップＳ２２０２で得られる。従って、得られたＬ＊ａ＊ｂ色空間における各格子点の色（以下、色域写像処理結果）と、上記ステップＳ５０２でメインメモリ１０２にロードした各格子点の目標色とで、対応する格子点同士で、明度差の絶対値｜ΔＬ｜を求める（ステップＳ２３０１）。そして、全ての格子点同士で明度差を求めると、全ての明度差の平均値を求める（ステップＳ２３０２）。ここで、目標値とＬ＊ａ＊ｂ色空間の格子点数あるいは格子点間隔が等しくない場合には、補間によりＬ＊ａ＊ｂ色空間の格子点に対応する目標色を算出する。
【０１２８】
そして、以下の式に基づいて、評価値Ｅを求める（ステップＳ２３０５）。
【０１２９】
Ｅ＝α×｜ΔＬ｜    ０≦α≦１
ここで、αは重み付け係数である。
【０１３０】
なお、評価値に反映させるべき要素は明度差のみではなく、その他のものを反映させることもできる。
【０１３１】
例えば、ＲＧＢＣＭＹのうち１つの色相を選択し、選択した色相の面上に位置する複数格子点の写像結果と、対応する目標色との誤差の平均ΔＥを求める。図２４は、レッドの色相における目標色データと色域写像処理結果とを示す図である。同図において、実線が色域写像処理結果、点線が目標色データを示している。従って、ここでは、それぞれで対応する格子点同士の差を求める。
【０１３２】
次に、ＲＧＢＣＭＹのそれぞれの色相について求めたΔＥの平均値ΔＥｖを求める。そして以下の式に基づいて、評価値Ｅを求める。
【０１３３】
Ｅ＝α×｜ΔＬ｜＋β×ΔＥｖ、０≦α、β≦１
ここで、α、βは重み付け係数である。
【０１３４】
このように、様々な要素を評価値に反映させることができる。何れにせよ、評価値が小さいほど、写像結果が目標値に近いものであることを示すように、評価値を求める式を構成する必要がある。
【０１３５】
以上の処理により、本実施形態よれば、適用可能な複数の表色系においてガマット写像を行い、最も知覚的に一致した表色系を自動的に選択することによって、ユーザの意図した高精度なガマット写像を実現することが可能となる。これにより、ユーザが好ましいガマット写像を決定するまでの設計効率を改善することができるとともに。ユーザの主観的評価によらない均質なガマット写像を実現することができる。
【０１３６】
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１３７】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１３８】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１３９】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１４０】
【図１】本発明の実施形態に係るシステムの構成例を示すブロック図である。
【図２】ＣＰＵ１０１がドライバソフトウェアを実行する事で行う処理のフローチャートである。
【図３】（ａ）は、ＬＵＴ格子構成データが表す各格子点を示す図で、（ｂ）は、色補正ＬＵＴの構成例を示す図である。
【図４】（ａ）は、図３（ｂ）に例示したＬＵＴ格子点データに記述された各Ｌ＊ａ＊ｂ座標値でもって表される色分布情報を３次元表示した場合の表示例を示す図で、（ｂ）は、色補正ＬＵＴを調整するためのＧＵＩの表示例を示す図である。
【図５】ＣＰＵ１０１が色補正ＬＵＴ作成アプリケーションを実行する事で行う処理のフローチャートである。
【図６】ＲＧＢ色空間上での最大の格子領域表面にて各格子点により形成される最小の四角形を示す図である。
【図７】メッセージと、メッセージに付加されるサブメッセージとを示す図である。
【図８】ダイアログの表示例を示す図である。
【図９】ステップＳ５０３で行う色域写像処理のフローチャートである。
【図１０】グリーンの色相において、各格子点の色域、第１中間写像色再現域、同色相におけるプリンタ１０９の色再現域を示す図である。
【図１１】グリーンの色相において、第１中間写像色再現域、第２中間写像色再現域、プリンタ１０９の色再現域を示す図である。
【図１２】グリーンの色相において、第２中間写像色再現域、Ｌ＊ａ＊ｂ色空間で取りうる色域、プリンタ１０９の色再現域を示す図である。
【図１３】ステップＳ９０３における明度／色相写像処理のフローチャートである。
【図１４】ｈ８０（・）の例を示す図である。
【図１５】ｌ０（・），ｌ５０（・），ｌ１００（・）のそれぞれの関数の形を示す図である。
【図１６】ステップＳ９０４における明度調整写像処理のフローチャートである。
【図１７】色ｑ、上部境界Bu、下部境界Bl、上部境界Bu_mapped、下部境界Bl_mappedを示す図である。
【図１８】入出力関数p(・)の一例を示す図である。
【図１９】ステップＳ９０５における彩度調整写像処理のフローチャートである。
【図２０】色ｑ、境界Bｐ、境界Biを示す図である。
【図２１】入出力関数q(・)の一例を示す図である。
【図２２】ステップＳ５１２における表色系選択処理のフローチャートである。
【図２３】ステップＳ２２０３における評価値の計算処理の詳細な処理を示すフローチャートである。
【図２４】レッドの色相における目標色データと色域写像処理結果とを示す図である。
【図１】
2007081733.tif 000003
【図２】
2007081733.tif 000004
【図３】
2007081733.tif 000005
【図４】
2007081733.tif 000006
【図５】
2007081733.tif 000007
【図６】
2007081733.tif 000008
【図７】
2007081733.tif 000009
【図８】
2007081733.tif 000010
【図９】
2007081733.tif 000011
【図１０】
2007081733.tif 000012
【図１１】
2007081733.tif 000013
【図１２】
2007081733.tif 000014
【図１３】
2007081733.tif 000015
【図１４】
2007081733.tif 000016
【図１５】
2007081733.tif 000017
【図１６】
2007081733.tif 000018
【図１７】
2007081733.tif 000019
【図１８】
2007081733.tif 000020
【図１９】
2007081733.tif 000021
【図２０】
2007081733.tif 000022
【図２１】
2007081733.tif 000023
【図２２】
2007081733.tif 000024
【図２３】
2007081733.tif 000025
【図２４】
2007081733.tif 000026