(57)【要約】【課題】  写像変換の制御パラメータの調整操作を復元するために履歴管理を導入することもできる。しかし、調整操作を時間順に並べた履歴は得られるが、任意の時点の調整操作まで復元した後、以前と異なる調整操作を行えば、復元時点以降の過去の調整操作までは復元することができない。【解決手段】  入力色域を出力色域に写像変換して擬似三次元表示する(S502-S504)。写像変換の制御パラメータを変更すると、その変更履歴を管理し(S507)、その変更履歴に基づき、任意の時点または期間の写像変換の結果を再現する(S511-S504)。この再現によって、頻繁に制御パラメータを変更して試行錯誤を繰り返すガマット写像の設計効率を高める。【選択図】  図5
2007036881.tif 000002
【特許請求の範囲】
【請求項１】
画像の色再現を調整する色処理方法であって、
入力色域を出力色域に写像変換する変換ステップと、
前記写像変換の制御パラメータを変更する変更ステップと、
前記制御パラメータの変更履歴を管理する管理ステップと、
前記変更履歴に基づき、任意の時点または期間の前記写像変換の結果を再現する再現ステップとを有することを特徴とする色処理方法。
【請求項２】
前記管理ステップは、前記制御パラメータが変更される度に前記変更履歴のノードを生成し、前記生成したノードの親ノード情報、および、前記ノード生成時の制御パラメータを当該ノードに保持することを特徴とする請求項1に記載された色処理方法。
【請求項３】
さらに、前記ノードの階層表示により、前記変更履歴をモニタに表示する表示ステップと、
前記階層表示に基づく前記期間の開始および終了ノードの指示を入力する入力ステップとを有することを特徴とする請求項2に記載された色処理方法。
【請求項４】
前記再現ステップは、前記開始ノードから終了ノードに至るノード順に、前記制御パラメータを取得し、当該制御パラメータを前記変換ステップに供給し、前記開始ノードから終了ノードに至る一連の変更による前記写像変換の結果を連続して再現することを特徴とする請求項3に記載された色処理方法。
【請求項５】
前記入力ステップは前記開始および終了ノードの組を複数入力し、前記再現ステップは、前記組ごとに、前記開始ノードから前記終了ノードに至るノード順に、前記制御パラメータを取得し、当該制御パラメータを前記変換ステップに供給して、前記再現を並行に行うことを特徴とする請求項3に記載された色処理方法。
【請求項６】
前記制御パラメータは、明度、彩度、色相のうち少なくとも一つの要素の前記写像変換を制御する値であることを特徴とする請求項1から請求項5の何れかに記載された色処理方法。
【請求項７】
前記写像変換は、前記入力色域の明度、色相成分を変換して第一の色域へ写像し、前記第一の色域の明度成分を変換して第二の色域へ写像し、前記第二の色域の彩度成分を変換して前記出力色域へ写像することを特徴とする請求項1から請求項6の何れかに記載された色処理方法。
【請求項８】
さらに、前記写像変換によって得た前記出力色域を擬似三次元表示する色域表示ステップを有することを特徴とする請求項1から請求項7の何れかに記載された色処理方法。
【請求項９】
画像の色再現を調整する色処理装置であって、
入力色域を出力色域に写像変換する変換手段と、
前記写像変換の制御パラメータを変更する変更手段と、
前記制御パラメータの変更履歴を管理する管理手段と、
前記変更履歴に基づき、任意の時点または期間の前記写像変換の結果を再現する再現手段とを有することを特徴とする色処理装置。
【請求項１０】
画像処理装置を制御して、請求項1から請求項8の何れかに記載された色処理を実現することを特徴とするプログラム。
【請求項１１】
請求項10に記載されたプログラムが記録されたことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の色再現を調整する色処理に関する。
【背景技術】
【０００２】
パーソナルコンピュータやワークステーションの普及に伴い、デスクトップパブリッシング(DTP)やコンピュータ支援設計(CAD)が広く利用されている。このような中、コンピュータによってモニタに表現される色と、出力媒体に再現される色をマッチングする色再現技術の重要度が増している。例えば、DTPの現場では、カラーモニタとカラープリンタを有するコンピュータシステムを使用して、モニタ上で画像の作成、編集、加工などを行い、カラープリンタで画像を出力する。ユーザは、モニタの表示画像とプリンタの出力画像の色が知覚的に一致していることを強く望む。
【０００３】
しかし、モニタの表示画像とプリンタの出力画像の間の色の知覚的な一致は、以下の理由により困難が伴う。
【０００４】
モニタは、例えば蛍光体が発する特定波長の光を用いて色を表現する。他方、プリンタは、インクなどの色材によって特定波長の光を吸収した残りの反射光によって、色を表現する。つまり、モニタとプリンタの色再現域は、それらの画像形成形態が異なることに起因して大きく異なる。
【０００５】
さらに、モニタには液晶パネルやブラウン管を使うもの、あるいは、プラズマ方式などがあり、それらの色再現域は大きく異なる。また、プリンタも、記録方式、記録媒体の質（紙質）、色材の種類や使用量の違いにより色再現域が異なる。そのため、モニタの表示画像とプリンタの出力画像、あるいは、質が異なる記録媒体に出力したプリンタの出力画像などの間で、色を完全に一致させることは不可能である。
【０００６】
ここで、色再現域が異なる記録媒体や表示媒体において、色の知覚的一致を図る色再現技術として、ある色再現域と別の色再現域を均等表色系において対応付けるガマット写像技術がある。ガマット写像技術には、特開2001-094799公報に記載された一次元から三次元の複雑な写像変換を複数段階で行う技術、特開2002-033929公報に記載された色の変化としての階調を曲線表現に帰着してガマット写像を実現する技術などがある。
【０００７】
また、特開2002-033931公報は、入力画像の階調性を損うことなく、プリンタの出力画像の知覚的一致を図る技術を記載する。さらに、特開2003-173437号公報は、入力画像の階調性を保ちつつユーザが均等表色系における色調整および評価、解析を行う技術を記載する。
【０００８】
しかし、これらの技術は、モニタの色再現域からプリンタの色再現域へガマット写像する際に、ユーザは、多数の写像パラメータを手動調整する必要がある。最適な写像パラメータの組み合わせはモニタやプリンタの機種にも依存する。従って、写像パラメータを決定するガマット写像の設計は、多大な時間的コストを必要とする。
【０００９】
また、ガマット写像は一般に複数段階の写像から構成されるため制御が難しい。ユーザが意図する色再現を達成するには、写像変換に対する高度な知識が要求される。勿論、一部の写像変換は、写像を制御し易いように写像パラメータを構成するが、それでも、写像パラメータの調整による効果および画像全体に及ぼす影響の理解には困難が付き纏う。
【００１０】
また、高次の非線形変換による写像は、非線形変換の係数項が写像へ及ぼす影響を理解する必要があり、一層、制御が困難である。さらに、色再現を視覚的に確認しつつ写像パラメータを調整するには、写像と解析を交互に繰り返す必要があり、手順が煩雑になる。
【００１１】
上記の理由から、調整中の写像結果が芳しくないとしても、以前の状態に遡って写像パラメータの調整をやり直すことは困難である。このため、好ましい写像パラメータが決定するまでの設計効率は極めて低い。
【００１２】
勿論、写像パラメータの調整操作を復元するために履歴管理を導入することもできる。しかし、調整操作を時間順に並べた履歴が得られるだけで、任意の時点の調整操作まで復元した後、以前と異なる調整操作を行えば、復元時点以降の過去の調整操作までは復元することができない。
【００１３】
このように、頻繁に写像パラメータを変更して試行錯誤を繰り返すガマット写像の設計は、極めて設計効率が低い。
【００１４】
【特許文献１】特開2001-094799公報
【特許文献２】特開2002-033929公報
【特許文献３】特開2002-033931公報
【特許文献４】特開2003-173437号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
本発明は、任意の時点または期間の写像変換の変換結果を再現可能にすることを目的とする。
【課題を解決するための手段】
【００１６】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１７】
本発明にかかる色処理は、画像の色再現を調整する色処理であって、入力色域を出力色域に写像変換し、前記写像変換の制御パラメータを変更し、前記制御パラメータの変更履歴を管理し、前記変更履歴に基づき、任意の時点または期間の前記写像変換の結果を再現することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、任意の時点または期間の写像変換の変換結果が再現可能になる。従って、頻繁に写像変換の制御パラメータを変更して試行錯誤を繰り返すガマット写像の設計効率を高めることができる。
【発明を実施するための最良の形態】
【００１９】
以下に、本発明にかかる実施例の色処理を図面を参照して詳細に説明する。
【実施例１】
【００２０】
［装置の構成］
図1は色信号変換装置の構成例を示すブロック図である。
【００２１】
CPU 101は、メモリ102のRAMをワークメモリとして、メモリ102のROMおよびハードディスクドライブ(HDD) 105に格納されたオペレーティングシステム(OS)や各種プログラムに従い、PCI (Peripheral Component Interconnect)バスなどのシステムバス114を介して各構成を制御するとともに、後述する処理を実行する。
【００２２】
CPU 101は、システムバス114およびシリアルATAインタフェイス(SATA I/F) 103を介してHDD 105にアクセスする。また、ネットワークI/F 104を介してローカルエリアネットワーク(LAN)などのネットワーク113にアクセスする。
【００２３】
また、CPU 101は、後述する処理のユーザインタフェイスや処理結果をグラフィックアクセラレータ106を介してモニタ107に表示し、ユーザの指示入力をキーボード/マウスコントローラ110に接続されたキーボード111、マウス112を介して入力する。
【００２４】
また、CPU 101は、画像データをUSB (Universal Serial Bus)コントローラ108を介してプリンタ109に出力して、例えばユーザが指示する画像を印刷する。
【００２５】
［プリンタ出力］
図1に示す色変換装置におけるディジタル画像のプリンタ出力について説明する。
【００２６】
CPU 101は、ユーザからディジタル画像の表示を指示されると、HDD 105やネットワーク113上のサーバに格納されたディジタル画像データをメモリ102のRAMに転送する。なお、ネットワーク113上のサーバにはインターネットのような広域ネットワーク上のサーバも含まれる。
【００２７】
次に、CPU 101は、メモリ102に格納したディジタル画像データをグラフィックアクセラレータ106に送ってモニタ107に表示する。
【００２８】
ここで、ユーザからモニタ107に表示したディジタル画像のプリントが指示されると、CPU 101は、プリンタドライバを起動して後述する色変換処理を実行し、メモリ102に格納したディジタル画像データをプリンタ109のデバイスCMYKに対応するディジタル画像データに変換する。そして、CMYKディジタル画像データをプリンタ109に送って画像を印刷する。
【００２９】
［色変換処理］
図2はプリンタドライバの動作を説明するフローチャートで、CPU 101によって起動されたプリンタドライバが実行する処理を示す。
【００３０】
まず、画像データ、および、後述する色補正LUT作成アプリケーションが作成した色補正LUTを格納する領域をメモリ102に用意し(S201)、色補正LUTをHDD 105から読み込む(S202)。
【００３１】
色補正LUTは、図3Aに示すRGB色空間の格子点の座標値と、当該格子点に対応するLab色空間の座標値の対応関係を記したデータ構造を備える。データ構造は、図3Bに示すように、その先頭にはR、G、B値のステップを記述し、続いて、各格子点の座標値とLab値の対応関係をR、G、Bのネスト順に記述したものである。なお、以下では、上記のデータ構造が色の分布を示すことから色補正LUTを色分布データと呼ぶことがある。
【００３２】
次に、メモリ102に格納した色補正LUTを使用して、RGB24ビットの画像データを固定小数点のLab画像データに変換し、メモリ102に用意した領域に格納する(S203)。続いて、予め定められた色変換LUTを使用して、Lab画像データをCMYK32ビットの画像データに変換し、メモリ102に用意した領域に格納する(S204)。なお、これらの変換には四面体補間などを用いる。
【００３３】
そして、プリンタ109へ出力する画像データの準備ができたことをCPU 101に通知する(S205)。この通知により、CPU 101は、メモリ102からCMYK32ビット画像データを読み出して、USBコントローラ108を介してプリンタ109へ送信する。
【００３４】
［色補正LUT作成アプリケーション］
次に、色補正LUTを作成する色補正LUT作成アプリケーションについて説明する。
【００３５】
CPU 101は、ユーザから色補正LUT作成アプリケーションの起動が指示されると、HDD 105などに格納した色補正LUT作成アプリケーションをワークメモリ（メモリ102）にロードして実行する。
【００３６】
起動された色補正LUT作成アプリケーションは、図4Aおよび図4Bに示すウィンドウをモニタ107に表示する。詳細は後述するが、図4Aは、色補正LUTに記述された各格子点のLab値を色分布情報としてLab色空間上に表示する擬似三次元表示例を示している。また、図4Bは、色補正LUTを調整するためのメニューウィンドウである。
【００３７】
ユーザは、これらのウィンドウ（図4Aおよび図4B）を参照および使用して、色補正LUTを作成する。なお、作成した色補正LUTは、ユーザの指示により、HDD 105などに保存することが可能である。
【００３８】
図5は色補正LUT作成アプリケーションの動作を説明する状態遷移図である。
【００３９】
まず、初期化処理を行う(S501)。初期化処理には、メモリ102に作業用ヒープメモリの確保、写像制御パラメータの初期化、色分布情報を擬似三次元表示するためのジオメトリ情報および表示形態情報（3Dオブジェクト/線オブジェクト/面オブジェクトなど）の初期化などがある。
【００４０】
次に、写像制御パラメータを基に後述する色域写像処理により、色分布情報と等価の色補正LUTを作成し(S502)、色補正LUTおよびジオメトリ情報に基づき三次元物体データを生成する(S503)。そして、表示形態情報に基づき三次元物体をモニタ107に表示し(S504)、メッセージ待ち状態になる(S505)。そして、受信したメッセージに応じた状態へ移行する。
【００４１】
［擬似三次元物体データの生成(S503)および表示(S504)］
三次元物体データを生成する際、Lab色空間上の最大の格子領域表面の、各格子点により形成される最小の四角形それぞれにおいて二通りの三角形（三角パッチ）の組み合わせを生成するが、図6は、その様子を模式的に示す図である。
【００４２】
図6において、太線で囲まれた領域が各格子点により形成される最小の四角形で、この四角形を破線で分割して得られる二つの三角形の組み合わせ、および、二点鎖線で分割して得られる二つの三角形の組み合わせの二通りを生成する。次に、これら三角形の頂点である格子点座標を、色変換LUTを用いて、対応する色変換後のLab値に変換する。そして、三次元物体の体積が最大になるように、色変換後の三角形の組み合わせを選択して、色変換後の三角形の組み合わせから三次元物体データを生成する。言い換えれば、三角パッチの集合として三次元物体の表面情報を構成することになる。
【００４３】
こうして生成した三次元物体を、例えば図4Aに示すように、モニタ107に表示する。
【００４４】
［受信メッセージに対する処理］
図7はメッセージマップを示す図である。以下、通知されるメッセージに対する処理を説明する。
【００４５】
●メッセージDISP_MAPCTRL
メッセージDISP_MAPCTRLを受信すると、メッセージに付加されたサブメッセージを抽出し、サブメッセージに対応する写像制御用のモードレスダイアログを表示し(S506)、メッセージ待ち状態(S505)に戻る。
【００４６】
●メッセージCTRL_MAP
メッセージCTRL_MAPを受信すると、メッセージに付加された写像制御サブメッセージおよび付加メッセージを抽出し、写像制御サブメッセージおよび付加メッセージに基づき写像制御パラメータを調整する(S507)。そして、色域写像処理(S502)に遷移する。そして、調整後の写像制御パラメータによる色域写像処理(S502)、三次元物体データの生成(S503)、三次元物体の表示(S504)を行い、メッセージ待ち状態(S505)に戻る。
【００４７】
●メッセージCNT_HIST
メッセージCNT_HISTを受信すると、メッセージに付加されたサブメッセージを抽出し、サブメッセージに基づき後述する履歴操作を行い(S511)、色域写像処理(S502)に遷移する。そして、色域写像処理(S502)、三次元物体データの生成(S503)、三次元物体の表示(S504)を行い、メッセージ待ち状態(S505)に戻る。
【００４８】
●メッセージCTRL_DISP
メッセージCTRL_DISPを受信すると、メッセージに付加された表示制御サブメッセージおよび付加メッセージを抽出する。そして、表示制御サブメッセージおよび付加メッセージに基づき表示制御情報を更新し(S508)、三次元物体の表示(S504)に遷移する。そして、更新された表示制御情報に基づき三次元物体の表示を更新し(S504)、メッセージ待ち状態(S505)に戻る。
【００４９】
●メッセージGEN_LUT
メッセージGEN_LUTを受信すると、後述する方法により生成した写像色域を参照して、RGBデータからLabデータへの色補正LUTを生成してHDD 105へ保存し(S509)、メッセージ待ち状態(S505)に戻る。
【００５０】
●メッセージPROCESS_END
メッセージPROCESS_ENDを受信すると、ヒープメモリの解放などの終了処理動作を行い、色補正LUT作成アプリケーションを終了する。
【００５１】
［メニューウィンドウ］
図4Bに示すメニューウィンドウにおいて、ボタン401〜404が押されるとメッセージDISP_MAPCTRLを生成する。また、サブメッセージは、ボタン401はDISP_CHANGE_BRIGHTNESS、ボタン402はDISP_CHANGE_HUE、ボタン403はDISP_CHANGE_CHROMA、ボタン404はDISP_CTRL_HISTORYになる。また、ボタン405が押されるとメッセージGEN_LUTを、ボタン406が押されるとメッセージPROCESS_ENDをそれぞれ生成する。
【００５２】
［写像制御用のモードレスダイアログの表示(S506)］
次に、メッセージDISP_MAPCTRLを受信した際の写像制御用のモードレスダイアログの表示(S506)について説明する。
【００５３】
●サブメッセージDISP_CHANGE_BRIGHTNESS
サブメッセージDISP_CHANGE_BRIGHTNESSを抽出すると、図8Aに示す明るさ調整用のダイアログを表示する。ユーザは、色補正の全体的な明るさの調整量をスライダ801を用いて設定する。色補正LUT作成アプリケーションは、この調整量に応じて、後述する色域写像処理を行う。
【００５４】
●サブメッセージDISP_CHANGE_HUE
サブメッセージDISP_CHANGE_HUEを抽出すると、図8Bに示す色相調整用のダイアログが表示する。ユーザは、リストボックス802、803を用いて、明度、および、色相（レッド、グリーン、ブルー、シアン、マゼンタ、イエロー）の一つを選択し、選択した範囲の色の色相調整量をスライダ804を用いて設定する。色補正LUT作成アプリケーションは、この調整量に応じて、後述する色域写像処理を行う。
【００５５】
●サブメッセージDISP_CHANGE_CHROMA
サブメッセージDISP_CHANGE_CHROMAを抽出すると、図8Cに示す彩度調整用のダイアログを表示する。ユーザは、リストボックス805を用いて、調整対象の色相を選択し、選択色相における鮮やかさ調整量をスライダ806を用いて設定する。色補正LUT作成アプリケーションは、この調整量に応じて、後述する色域写像処理を行う。
【００５６】
●サブメッセージDISP_CTRL_HISTORY
サブメッセージDISP_CTRL_HISTORYを抽出すると、図8Dに示す履歴管理用のダイアログを表示する。ユーザは、このダイアログを用いて、写像制御パラメータの状態を操作し、以前の状態に遡ったり、一連の操作を連続再生して写像制御パラメータの効果を確認したりすることができる。色補正LUT作成アプリケーションは、ユーザの指示に応じて、後述する履歴操作を行う。
【００５７】
［写像制御パラメータの調整(S507)］
次に、写像制御パラメータの調整(S507)について説明する。
【００５８】
●サブメッセージCHANGE_BRIGHTNESS
図8Aに示すダイアログにおいて、ユーザがスライダ801を操作すると、メッセージCTRL_MAPとサブメッセージCHANGE_BRIGHTNESSを生成し、スライダ801の位置情報（例えば0から100の整数値）をメッセージに付加する。
【００５９】
メッセージCTRL_MAPを受信し、サブメッセージCHANGE_BRIGHTNESSを抽出すると、メッセージに付加されたスライダの位置情報を取得する。そして、取得した位置情報に基づき、明度制御パラメータを生成または修正して写像制御パラメータを更新する(S507)。そして、更新した写像制御パラメータに基づき後述する色域写像処理を行う(S502)。
【００６０】
●サブメッセージCHANGE_HUE
図8Bに示すダイアログにおいて、ユーザがスライダ804を操作すると、メッセージCTRL_MAPとサブメッセージCHANGE_HUEを生成する。その際、リストボックス802、803の選択情報（例えばリスト番号）、スライダ804の位置情報（例えば0から100の整数値）をメッセージに付加する。なお、明度選択用のリストボックス802は明度0から100まで20刻みの6リスト、色相選択用のリストボックス803は上記の六色に対応する6リストを有する。
【００６１】
メッセージCTRL_MAPを受信し、サブメッセージCHANGE_HUEを抽出すると、メッセージに付加されたリスト番号およびスライダの位置情報を取得する。そして、取得したリスト番号に基づき調整対象の明度値と色相角値を設定し、取得した位置情報に基づき例えば-20〜20の整数値をとる色相調整値を生成する。そして、調整対象の明度値、色相角値、色相調整値に基づき、色相制御パラメータを生成または修正して写像制御パラメータを更新する(S507)。そして、更新された写像制御パラメータに基づき後述する色域写像処理を行う(S502)。
【００６２】
●サブメッセージCHANGE_CHOROMA
図8Cに示すダイアログにおいて、ユーザがスライダ806を操作すると、メッセージCTRL_MAPとサブメッセージCHANGE_CHROMAを生成する。その際、リストボックス805の選択情報（例えばリスト番号）、スライダ806の位置情報（例えば0から100の整数値）をメッセージに付加する。なお、色相選択用のリストボックス805は、例えば黄、橙、赤、赤紫、マゼンタ、青紫、青、空色、シアン、青緑、緑、黄緑の12リストを有する。
【００６３】
メッセージCTRL_MAPを受信し、サブメッセージCHANGE_CHROMAを抽出すると、メッセージに付加されたリスト番号およびスライダの位置情報を取得する。そして、取得したリスト番号に基づき調整対象の色相角値を設定し、取得した位置情報に基づき例えば0.5〜2の実数値をとる彩度調整値を生成する。そして、調整対象の色相角値、彩度調整値に基づき、彩度制御パラメータを生成または修正して写像制御パラメータを更新する(S507)。そして、更新した写像制御パラメータに基づき後述する色域写像処理を行う(S502)。
【００６４】
［履歴操作(S511)］
次に、履歴操作(S511)について説明する。
【００６５】
●サブメッセージHIST_ADD
図8A〜8Cに示すダイアログにおいて、ユーザがスライダを操作すると、メッセージCTRL_HISTとサブメッセージHIST_ADDを生成し、（リストボックスがあれば選択された）リスト番号およびスライダの位置情報をメッセージに付加する。
【００６６】
メッセージCTRL_HISTを受信し、サブメッセージHIST_ADDを抽出すると、メッセージに付加された（リスト番号および）位置情報を取得し、前述した方法によって、取得した（リスト番号および）位置情報から写像制御パラメータを生成する。または、写像制御パラメータの調整(S507)で更新された写像制御パラメータを取得する。そして、図8Dに示すノード管理リスト807に対応するリストから現在のノードを取得し、現在のノードを親ノードとして、写像制御パラメータを付加した新しいノードを生成する。なお、ノードは、親ノードの情報および写像制御パラメータを保持する。
【００６７】
例えば、現在のノードが図8Dに符号814で示すノードの場合、生成または取得した写像制御パラメータと親ノード814の情報を保持する新ノード815を生成し、ノード814の子ノードとしてノード管理リスト807に対応するリストに登録する。これによって、ノード管理リスト807のノード814の右に新ノード815が階層表示（ツリー表示）され、現在のノードはノード815に更新される。なお、ノード814に既に子ノードが存在する場合は、階層表示（ツリー表示）に適切な位置にノード815を表示する。
【００６８】
●サブメッセージHIST_UNDO
図8Dに示すダイアログにおいて、ユーザが取消(Undo)ボタン816を押すと、メッセージCTRL_HISTとサブメッセージHIST_UNDOを生成し、現在のノードから取得した親ノードをメッセージに付加する。
【００６９】
メッセージCTRL_HISTを受信し、サブメッセージHIST_UNDOを抽出すると、メッセージに付加されたノード情報を取得する。そして、ノード管理リスト807の現在のノードを取得したノード情報が示すノードに更新し、当該ノードが保持する写像制御パラメータを取得して、取得した写像制御パラメータに基づき後述する色域写像処理を行う(S502)。
【００７０】
●サブメッセージHIST_ANIMATION
図8Dに示すダイアログにおいて、ユーザが再生ボタン817を押すと、メッセージCTRL_HISTとサブメッセージHIST_ANIMATIONを生成する。メッセージCTRL_HISTを受信し、サブメッセージHIST_ANIMATIONを抽出すると再生処理を実行する。
【００７１】
図9は再生処理を説明するフローチャートである。
【００７２】
まず、始点ノードと終点ノードを取得する(S901)。ユーザは、図8Dに示すダイアログにおいて、マウス操作などにより、始点ノードと終点ノードを指定することができる。例えば、ノード管理リスト807上のノードを左クリックすれば始点ノード、右クリックすれば終点ノードのように指定する。
【００７３】
次に、終点ノードから順に親ノードを遡って始点ノードに辿り着くか否かを判定する(S902)。もし、始点ノードに辿り着かない（再生経路が存在しない）場合は、エラーメッセージを表示して(S907)、再生処理を終了する。
【００７４】
再生径路が存在すれば、ノードの再生順を示す再生リストをメモリ102に保存し(S903)、再生リストの先頭のノードが保持する写像制御パラメータを取得する(S904)。そして、取得した写像制御パラメータに基づき後述する色域写像処理(S502)、三次元物体データの生成(S503)、三次元物体の表示(S504)を行う(S905)。
【００７５】
最後に、再生リストの始点ノードから終点ノードすべてに対応する写像制御パラメータに基づく色域写像処理を行ったか否かを判断して(S906)、終点ノードに達するまでステップS904〜S906の処理を繰り返す。
【００７６】
なお、写像パラメータの変更による色域写像への影響を視覚的に把握し易くするために、上記の処理の繰り返しに、所定の待ち時間を導入してもよい。待ち時間は、例えば、図8Dに示すダイアログで設定するなどが好ましい。
【００７７】
例えば、図8Dに示すノード管理リスト807においてノード808が始点、ノード814が終点の場合、その再生経路ノード808、812、813、814の順になる。この場合、始点ノード808が保持する写像制御パラメータに基づく色域写像処理(S502)を行い、所定の時間が経過した後、ノード812が保持する写像制御パラメータに基づく色域写像処理(S502)を行う。このようにして、最後に終点ノード814が保持する写像制御パラメータに基づく色域写像処理(S502)を行い再生処理を終了する。
【００７８】
●サブメッセージHIST_COMPARATOR
図8Dに示すダイアログにおいて、ユーザが比較ボタン818を押すと、メッセージCTRL_HISTとサブメッセージHIST_COMPARATORを生成する。メッセージCTRL_HISTを受信し、サブメッセージHIST_COMPARATORを抽出すると比較再生処理を実行する。
【００７９】
図10は比較再生処理を説明するフローチャートである。
【００８０】
まず、二つの再生経路の始点ノードと終点ノードを取得する(S1001)。ユーザは、図8Dに示すダイアログにおいて、マウス操作などにより、始点ノードと終点ノードを指定することができる。例えば、ノード管理リスト807上のノードを左クリックすれば始点ノード、右クリックすれば終点ノードのように一つ目の再生経路（再生経路1と呼ぶ）を指定する。続いて、ノード管理リスト807上のノードを左クリックすれば始点ノード、右クリックすれば終点ノードのように二つ目の再生経路（再生経路2と呼ぶ）を指定する。
【００８１】
次に、二つの再生経路それぞれについて、終点ノードから順に親ノードを遡って始点ノードに辿り着くか否かを判定する(S1002)。もし、何れかの再生経路において始点ノードに辿り着かない（再生経路が存在しない）場合は、エラーメッセージを表示して(S1008)、再生処理を終了する。
【００８２】
二つの再生径路が存在すれば、各再生経路について、ノードの再生順を示す再生リストをメモリ102に保存し(S1003)、再生経路1を再生する擬似三次元表示ウィンドウと、再生経路2を再生する擬似三次元表示ウィンドウを作成する(S1004)。
【００８３】
次に、二つの再生リストの先頭のノードが保持する写像制御パラメータを取得し(S1005)、二つの再生経路分の色域写像処理(S502)、三次元物体データの生成(S503)、三次元物体の表示(S504)を行う(S1006)。
【００８４】
最後に、再生リストの始点ノードから終点ノードすべてに対応する写像制御パラメータに基づく色域写像処理を行ったか否かを判断して(S1007)、終点ノードに達するまでステップS1005〜S1007の処理を繰り返す。
【００８５】
なお、写像パラメータの変更による色域写像への影響を視覚的に把握し易くするために、上記の処理の繰り返しに、所定の待ち時間を導入してもよい。待ち時間は、例えば、図8Dに示すダイアログで設定するなどが好ましい。また、再生を比較し易くするには、擬似三次元表示ウィンドウの表示更新タイミングを同期させることも効果的である。
【００８６】
例えば、図8Dに示すノード管理リスト807において、再生経路1の始点ノード808、終点ノード811の場合、再生リストはノード808、809、810、811になる。また、再生経路2の始点ノード808、終点ノード814の場合、再生リストはノード808、812、813、814になる。この場合、始点ノード808が保持する写像制御パラメータに基づき色域写像処理を行い、写像結果を二つの擬似三次元表示ウィンドウに表示する。続いて、再生経路1の次ノード809および再生経路2の次ノード812が保持する写像制御パラメータに基づき色域写像処理を行い、擬似三次元表示ウィンドウの表示を、同期して、それぞれ表示を更新する。
【００８７】
つまり、複数の再生経路の色域写像の処理結果を、並行に、同期して、再現する。このようにして、最後に終点ノード811、814が保持する写像制御パラメータに基づく色域写像処理を行い比較再生処理を終了する。
【００８８】
［色域写像処理(S502)］
図11は色域写像処理(S502)を説明するフローチャートである。
【００８９】
まず、HDD 105からモニタ107の色域情報（モニタ色域）およびプリンタ109の色域情報（プリンタ色域）を取得し(S1101)、モニタ107の色域境界の最終的な写像結果になる写像色域境界を生成する(S1102)。
【００９０】
次に、均等表色系においてモニタ色域の明度および色相を写像する(S1103)。明度/色相の写像動作については後述するが、図12に示す模式図を用いて簡単に説明する。
【００９１】
図12において、一点鎖線はグリーンの色相におけるモニタ色域1201を、実線は第一の中間写像色域1202を、点線は同色相におけるプリンタ色域1203をそれぞれ示す。ステップS1103において、モニタ色域1201内の色に対して明度成分と色度成分を分離し、明度成分を非線形に写像する。また、色度成分については、適切になるように色相を調整する。この明度/色度写像により、モニタ色域1201を第一の中間写像色域1202へ写像する。
【００９２】
次に、第一の中間写像色域1202の境界について明度を調整し、第二の中間写像色域の境界を生成する(S1104)。この明度調整写像については後述するが、図13に示す模式図を用いて簡単に説明する。
【００９３】
図13において、一点鎖線はグリーンの色相における第一の中間写像色域1301を、実線は第二の中間写像色域1302を、点線は同色相におけるプリンタ色域1303をそれぞれ示す。ステップS1104において、第一の中間写像色域1301内の色に対して明度成分と色度成分を分離し、色度成分一定のまま明度成分のみ非線形に写像する。なお、写像を実現する明度入出力関数は色度により異なる。この動作により、第一の中間写像色域1301を第二の中間写像色域1302へ写像する。
【００９４】
次に、中間写像色域の情報と写像色域の情報を参照して、第二の中間写像色域を写像色域へ彩度調整写像する(S1105)。この彩度調整写像については後述するが、図14に示す模式図を用いて簡単に説明する。
【００９５】
図14において、一点鎖線はグリーンの色相における第二の中間写像色域1401を、実線は写像色域1402を、点線はプリンタ色域1403をそれぞれ示す。ステップS1105において、第二の中間写像色域1401内の色に対して明度成分と色度成分を分離し、明度成分一定のまま色度成分における彩度成分を非線形に写像する。この動作により、第二の中間写像色域1401を写像色域1402へ写像する。
【００９６】
［明度/色相写像(S1103)］
図15は明度/色相写像(S1103)を説明するフローチャートである。
【００９７】
まず、色相制御パラメータに基づき、明度0から100までの20刻みの六つの明度値に対して、色相入出力関数h0(・)、h20(・)、h40(・)、h60(・)、h80(・)、h100(・)を生成する。色相制御パラメータは、レッドR、グリーンG、ブルーB、シアンC、マゼンタM、イエローYの六色相において、六つの各明度値に対応する色相調整量である。ここで、色相入出力関数は、明度ごとにR/G/B/C/M/Y色相の色相調整値を一次スプライン、すなわち直線で結んだ関数として計算する。
【００９８】
例えば、明度値80に対して、RとYの二つの色相における色相角を少しプラス側へ移動し、Bの色相でマイナス側へ移動する場合、図16に示す色相入出力関数h80(・)を得る。なお、図16は、ab色度座標系におけるb軸の正方向を色相角0 radとし、反時計回りを正とするラジアン表記により、色相角を表す。
【００９９】
次に、写像対象の色Mを取得し(S1502)、色Mに対する色相入出力関数h(・)をh0(・)、h20(・)、h40(・)、h60(・)、h80(・)、h100(・)を用いて、色Mに対する色相入出力関数h(・)を計算する(S1503)。
h(・) = {hLw(・)×(Up - x) + hUp(・)×(x - Lw)}/20  …(1)
ここで、hUp(・)は色Mの明度xに対して直上の明度Upの入出力関数
hLw(・)は色Mの明度xに対して直下の明度Lwの入出力関数
【０１００】
例えば、色Mの明度x=70の場合、直下の明度Lwの入出力関数はh60(・)、直上の明度Upの入出力関数はh80(・)であるから、色相入出力関数h(・)は次のようになる。
h(・) = {h60(・)×(80 - 70) + h80(・)×(70 - 60)}/20
= {h60(・) + h80(・)}/2
【０１０１】
次に、色相入出力関数h(・)を用いて、色Mの色相を写像する(S1504)。
HuemMapped = h(Huem)      …(2)
ここで、Huemは色Mの色相
Huemmappedは写像後の色相
【０１０２】
次に、色Mの明度成分を写像する(S1505)。具体的には、明度成分の写像を、色度に依存しない入出力関数λ(Lin)を用いて算出する。この写像関数λ(・)は、全体の明度制御パラメータxに基づき、次のように計算する。
x≧50：  λ(・) = {λ50(・)×(100 - x) + λ100(・)×(x - 50)}/50
x＜50：  λ(・) = (λ0(・)×(50 - x) + λ50(・)×x)/50          …(3)
ここで、λ0(・)、λ50(・)、λ100(・)は予め定められた関数
λ0(・)は制御値x=0のときの写像関数
λ50(・)は制御値x=50のときの写像関数
λ100(・)は制御値x=100のときの写像関数
【０１０３】
図17A〜17Cは写像関数λ0(・)、λ50(・)、λ100(・)の一例を示す図である。これらの図から明らかなように、制御値x=0のときは全体的に暗く、制御値x=100のときは全体的に明るく、また、制御値x=50のときは中庸な明るさに制御される。
【０１０４】
以上の明度/色相写像を色補正LUTの全格子点に行ったか否かを判定し(S1506)、全格子点に写像処理を施すまでステップS1502〜S1506の処理を繰り返す。
【０１０５】
以上の処理によって、図12に示すモニタ色域1201は、第一の中間写像色域1202へ写像される。
【０１０６】
［明度調整写像(S1104)］
図18は明度調整写像(S1104)を説明するフローチャートである。
【０１０７】
まず、明度/色相写像(S1103)の結果である第一の中間写像色域1202から、写像対象の色Mを取得する(S1801)。なお、色Mは、モニタ色域1201の色を表すものではない。
【０１０８】
次に、色Mと同一の色度における第一の中間写像色域1202(1301)の上部境界BUおよび下部境界BLを計算する(S1802)。そして、色Mと同一の色度における第二の中間写像色域1302の上部境界BUmappedと下部境界BLmappedを算出する(S1803)。図19は、明度調整写像における各色域と各境界の関係を示す図で、実線は第一の中間写像色域1301の境界を、一点鎖線は第二の中間写像色域1302を、点線はプリンタ色域1303を示す。
【０１０９】
次に、以上で計算した値と明度調整パラメータにより、明度調整写像用の入出力関数p(・)を導出する(S1804)。なお、入出力関数p(・)は、下記の条件を満たすC2連続な三次スプライン関数として算出する。
p(・)の台は[LBL, LBU]
p(・)は台において単調増加
p(LBL) = LBLm
p(LBU) = LBUm
p(・)は少なくともC1連続
p'(LBL) = α
p'(LBU) = β
ここで、LBLはBLの明度
LBLmはBLmappedの明度
LBUはBUの明度
LBUmはBUmappedの明度
α(＞0)、β(＞0)は圧縮を制御する定数
【０１１０】
入出力関数p(・)は、上記条件を満たすよう算出するとともに、さらに、台の中間部において明度をできるだけ保存するよう、明度変化量ができるだけ少なくなるように算出する。
【０１１１】
図20Aおよび図20Bは入出力関数p(・)の一例を示す図である。図20Aにおいて、台の中間部において明度がほぼ保たれる一方、低明度付近および高明度付近では大きく圧縮される。因みに、LBL=40、LBLm=45、LBU=68、LBUm=64である。
【０１１２】
また、図20Bにおいては明度の変化が大きいため、台の中間部において明度を保存する機能が働いているものの完全には保存していない。低明度付近では大きく伸長され、高明度付近では大きく圧縮される。因みに、LBL=60、LBLm=46、LBU=84、LBUm=75である。
【０１１３】
次に、色Mの写像前明度Lmに対する写像後の明度Lmmappedを、入出力関数p(・)を用いてLmmapped=p(Lm)として求める(S1805)。
【０１１４】
以上の明度調整写像を色補正LUTの全格子点に施したか否かを判定し(S1806)、全格子点の明度調整写像が終了するまでステップS1802からS1806を繰り返す。
【０１１５】
以上の処理によって、図13に示す第一の中間写像色域1301は、第二の中間写像色域1302へ写像される。
【０１１６】
［彩度調整写像(S1105)］
図21は彩度調整写像(S1105)を説明するフローチャートである。
【０１１７】
まず、明度調整写像(S1104)の結果である第二の中間写像色域1302から、写像対象の色Mを取得する(S2101)。
【０１１８】
次に、色Mと同一の明度/同一の色相における写像色域1402の境界Biを計算し(S2102)、色Mと同一の明度/同一の色相における第二の中間写像色域1401(1302)の境界Bpを計算する(S2103)。図22は、彩度調整写像における各色域と各境界の関係を示す図で、一点鎖線は第二の中間写像色域1401、実線は写像色域1402、点線はプリンタ色域1403である。
【０１１９】
次に、以上で計算した値と彩度調整パラメータにより、彩度調整写像用の入出力関数q(・)を導出する(S2104)。なお、入出力関数q(・)は、下記の条件を満たすC2連続な三次スプライン関数として算出する。
q(・)の台は[0, ci]
q(0) = 0
q(ci) = cp
q'(0) = gLo
q'(ci) = gHi
q'(x) ≠ 0 （0 ≦ x ≦ ci）
ここで、cpは色Bpの彩度
ciは色Biの彩度
gLoは低彩度から中彩度付近の彩度の拡大/圧縮率を制御する値
gHiは最大彩度付近の彩度補正の拡大/圧縮率を制御する値
【０１２０】
図23Aおよび図23Bは入出力関数q(・)の一例を示す図である。図23Aにおいては、高彩度部で伸長動作となる一方、彩度調整値gLoが0.8であるために低〜中彩度部では彩度を抑えるように動作する。また、図23Bでは、高彩度部で圧縮動作となる一方、彩度調整値gLoが1.2であるために低〜中彩度部では彩度を強調する動作になる。
【０１２１】
次に、色Mの写像前彩度corgに対する写像後彩度cmodを、入出力関数q(・)を用いてcmod=q(corg)として計算する(S2105)。
【０１２２】
以上の彩度調整写像を色補正LUTの全格子点に施したか否かを判定し(S2106)、全格子点の彩度調整写像が終了するまでステップS2102からS2106を繰り返す。
【０１２３】
以上の処理によって、図14に示す第二の中間写像色域1401は、写像色再現域1402へ写像される。
【０１２４】
このように、写像変換の制御パラメータが変更される都度、変更履歴にノードを生成して親ノード情報、および、その時点の制御パラメータを保持する。そして、ノードを階層表示（ツリー表示）した変更履歴リストをユーザインタフェイスに表示して、ユーザから、写像変換の変換結果を再現するノードまたはノードの連続の指定を受け付ける。そして、その指示に従い写像変換の変換結果を再現する。これにより、ユーザは、好ましいガマット写像を決定するまでの設計効率を大幅に改善することができる。
【０１２５】
［他の実施例］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１２６】
また、本発明の目的は、上記実施例の機能を実現するソフトウェアを記録した記憶媒体（記録媒体）をシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（CPUやMPU）が前記ソフトウェアを実行することでも達成される。この場合、記憶媒体から読み出されたソフトウェア自体が上記実施例の機能を実現することになり、そのソフトウェアを記憶した記憶媒体は本発明を構成する。
【０１２７】
また、前記ソフトウェアの実行により上記機能が実現されるだけでなく、そのソフトウェアの指示により、コンピュータ上で稼働するオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【０１２８】
また、前記ソフトウェアがコンピュータに接続された機能拡張カードやユニットのメモリに書き込まれ、そのソフトウェアの指示により、前記カードやユニットのCPUなどが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【０１２９】
本発明を前記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するソフトウェアが格納される。
【図面の簡単な説明】
【０１３０】
【図１】色信号変換装置の構成例を示すブロック図、
【図２】プリンタドライバの動作を説明するフローチャート、
【図３Ａ】色補正LUTのデータ構造を模式的に表す図、
【図３Ｂ】色補正LUTのデータ構造を説明する図、
【図４Ａ】色補正LUTに記述された各格子点のLab値を色分布情報としてLab色空間上に表示する擬似三次元表示例を示す図、
【図４Ｂ】色補正LUTを調整するためのメニューウィンドウを示す図、
【図５】色補正LUT作成アプリケーションの動作を説明する状態遷移図、
【図６】三次元物体データ生成用の三角形の生成を模式的に示す図、
【図７】メッセージマップを示す図、
【図８Ａ】明るさ調整用のダイアログの表示例を示す図、
【図８Ｂ】色相調整用のダイアログの表示例を示す図、
【図８Ｃ】彩度調整用のダイアログの表示例を示す図、
【図８Ｄ】履歴管理用のダイアログの表示例を示す図、
【図９】再生処理を説明するフローチャート、
【図１０】比較再生処理を説明するフローチャート、
【図１１】色域写像処理を説明するフローチャート、
【図１２】モニタ色域、第一の中間写像色域およびプリンタ色域を説明する図、
【図１３】第一の中間写像色域、第二の中間写像色域およびプリンタ色域を説明する図、
【図１４】第二の中間写像色域、写像色域およびプリンタ色域を説明する図、
【図１５】明度/色相写像を説明するフローチャート、
【図１６】色相入出力関数の一例を示す図、
【図１７Ａ】明度成分の非線型写像特性を示す図、
【図１７Ｂ】明度成分の非線型写像特性を示す図、
【図１７Ｃ】明度成分の非線型写像特性を示す図、
【図１８】明度調整写像を説明するフローチャート、
【図１９】明度調整写像における各色域と各境界の関係を示す図、
【図２０Ａ】入出力関数p(・)の一例を示す図、
【図２０Ｂ】入出力関数p(・)の一例を示す図、
【図２１】彩度調整写像を説明するフローチャート、
【図２２】彩度調整写像における各色域と各境界の関係を示す図、
【図２３Ａ】入出力関数q(・)の一例を示す図、
【図２３Ｂ】入出力関数q(・)の一例を示す図である。
【図１】
2007036881.tif 000003
【図２】
2007036881.tif 000004
【図３Ａ】
2007036881.tif 000005
【図３Ｂ】
2007036881.tif 000006
【図４Ａ】
2007036881.tif 000007
【図４Ｂ】
2007036881.tif 000008
【図５】
2007036881.tif 000009
【図６】
2007036881.tif 000010
【図７】
2007036881.tif 000011
【図８Ａ】
2007036881.tif 000012
【図８Ｂ】
2007036881.tif 000013
【図８Ｃ】
2007036881.tif 000014
【図８Ｄ】
2007036881.tif 000015
【図９】
2007036881.tif 000016
【図１０】
2007036881.tif 000017
【図１１】
2007036881.tif 000018
【図１２】
2007036881.tif 000019
【図１３】
2007036881.tif 000020
【図１４】
2007036881.tif 000021
【図１５】
2007036881.tif 000022
【図１６】
2007036881.tif 000023
【図１７Ａ】
2007036881.tif 000024
【図１７Ｂ】
2007036881.tif 000025
【図１７Ｃ】
2007036881.tif 000026
【図１８】
2007036881.tif 000027
【図１９】
2007036881.tif 000028
【図２０Ａ】
2007036881.tif 000029
【図２０Ｂ】
2007036881.tif 000030
【図２１】
2007036881.tif 000031
【図２２】
2007036881.tif 000032
【図２３Ａ】
2007036881.tif 000033
【図２３Ｂ】
2007036881.tif 000034