(57)【要約】【課題】  階調性が良好となる色算出を実現する。【解決手段】  入力色データに対して、第一の色補正及び第二の色補正に基づく処理を行う色処理方法であって、前記第一の色補正に対応する非線形演算式を求め、前記非線形演算式の係数に対して第二の色補正に対応する処理を行い、前記第二の色補正に対応する処理が行われた係数を用いた非線形演算式に基づき、入力色データを色補正することを特徴とする。【選択図】  図１０
2006253961.tif 000002
【特許請求の範囲】
【請求項１】
入力色データに対して、第一の色補正及び第二の色補正に基づく処理を行う色処理方法であって、
前記第一の色補正に対応する非線形演算式を求め、
前記非線形演算式の係数に対して第二の色補正に対応する処理を行い、
前記第二の色補正に対応する処理が行われた係数を用いた非線形演算式に基づき、前記入力色データを色補正する
ことを特徴とする色処理方法。
【請求項２】
前記非線形演算式の基底関数は、Ｂ−スプライン、有理Ｂ−スプライン、不均一有理Ｂ−スプライン、ベジェ、有理ベジェのいずれかである
ことを特徴とする請求項１に記載の色処理方法。
【請求項３】
前記第一の色補正は、デバイス依存の色データを、デバイス独立の色データに補正する
ことを特徴とする請求項１又は２に記載の色処理方法。
【請求項４】
前記第一の色補正に対応する非線形演算式は、複数の入力色と、該複数の入力色に対する出力色より求められる
ことを特徴とする請求項１及至３のいずれか１項に記載の色処理方法。
【請求項５】
前記第二の色補正は、入力デバイスの色再現範囲と、出力デバイスの色再現範囲とに基づく、ガマットマッピングに対応する処理である
ことを特徴とする請求項１及至４のいずれか１項に記載の色処理方法。
【請求項６】
前記ガマットマッピングのアルゴリズムは、
明度軸上に目標点を設定し、入力色と前記目標点とを結ぶ直線上に、前記入力色をマッピングする
ことを特徴とする請求項５に記載の色処理方法。
【請求項７】
入力色データに対して、第一の色補正及び第二の色補正に基づく処理を行う色処理装置であって、
前記第一の色補正に対応する非線形演算式を求める算出手段と、
前記非線形演算式の係数に対して第二の色補正に対応する処理を行う処理手段と、
前記第二の色補正に対応する処理が行われた係数を用いた非線形演算式に基づき、入力色データを色補正する補正手段と
を有することを特徴とする色処理装置。
【請求項８】
前記請求項１及至６のいずれか１項に記載の色処理方法を、コンピュータ上にて実施させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置により、色信号値を算出する色処理方法及びその装置に関するものである。
【背景技術】
【０００２】
近年、パーソナルコンピュータ／ワークステーションの普及に伴い、デスクトップ・パブリッシング（ＤＴＰ）やＣＡＤが広く一般に使用されている。このような中で、コンピュータによってモニタ上で表現される色と、出力媒体上に再現される色とのマッチングを行う色再現技術が重要となっている。
【０００３】
例えば、ＤＴＰ用のカラーモニタとカラープリンタを有するコンピュータシステムにおいては、モニタ上にてカラー画像の作成／編集／加工等を行い、成果物として画像をカラープリンタで出力するというワークフローで作業を行う。このワークフローに於いて、モニタ上のカラー画像と、プリンタのプリンタ出力画像とが知覚的に一致していることを、ユーザは強く望んでいる。
【０００４】
しかしながら、色再現技術において、モニタ上のカラー画像とプリンタ出力画像間では、このような知覚上の一致を図ることには困難が伴う。この困難は、以下の理由による。
【０００５】
ＣＲＴのカラーモニタにおいては、蛍光体を用いて特定波長の光を発光することによりカラー画像を表現する。他方、カラープリンタにおいては、インク等を用いて特定波長の光を吸収し、残りの反射光によってカラー画像を表現する。このように、画像表示形態が異なることに起因して、両者を比較すると色再現域が大きく異なる。さらに、カラーモニタであっても、液晶モニタと電子銃方式のブラウン管のモニタとでは色再現域が異なる。また、カラープリンタにあっても、紙質等の相違、あるいはインク組成の相違等により色再現域が異なる。
【０００６】
このため、カラーモニタ上のカラー画像と、カラープリンタのプリンタ出力画像、あるいは複数種の機種、複数種の紙質にて出力したカラープリンタのプリンタ出力画像において、これらの画像の色を測色的な意味において完全に一致させることは不可能である。
【０００７】
ここで、これら色再現域の異なる出力媒体間において、色再現域の相違を吸収すると共に表示画像の知覚的一致を計るための技術として、Ｌ*ａ*ｂ*空間あるいはＪＣＨ空間等の色空間において、ある色再現域を別の色再現域内へ写像するガマットマッピング技術が存在する。
【０００８】
ガマットマッピング技術の一例としては、例えば、特許文献１に記載されたＬ軸上の一点を目標点として圧縮写像を行うような写像方法が存在する。しかしながら、このような写像方法によれば、図１５のように、ガマット境界近辺で色の変化が急峻となって擬似輪郭等の画像障害が発生する場合がある。ここで、図１５（ａ）の一点鎖線で表された色再現がモニタ色再現、図１５（ｂ）の実線で表された色再現が写像後のプリンタ色再現、図１５（ｂ）の点線はプリンタ色域である。
【０００９】
そこで、本出願人は、特願２００３−４１６６１６の色処理装置を提案している。この提案は、非線型演算で色の算出を実現しており、複数の代表色から色を算出する際に色値の変化のトレンドを自然に反映して滑らかな変化で色を算出する。そのため、少ない代表色による色域写像でも精度良く色を算出できる。さらに、滑らかに色が変化するため、階調性を良好に保ったまま、色域写像に基づく色の算出が可能である。
【特許文献１】特開２００４−１５３３３８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記の色処理装置で開示されている技術によれば、非線型演算を定める際に、所定の色座標値を通過するように非線型演算の基底関数係数値を定めている。このような算出方法によれば、非線型演算は滑らかな演算特性を有するが、他方で、１次元のスプライン関数から容易に推察できるように、振動が発生する場合がある。
【００１１】
この振動を１次元Ｂ−Ｓｐｌｉｎｅ（Ｂ−スプライン）関数を例に説明すると、所定の色座標値を通過するように基底関数の係数値を定めることは、図１６中の所定の値を通るように、１次元Ｂ−Ｓｐｌｉｎｅ関数を定めることに相当し、若干であっても振動が発生する場合がある。
【００１２】
従って、非線型演算を定める際に用いる所定の色座標値を写像で定めた際には、図１６に相当する多次元的な振動が現れる場合がある。例えば、明度信号での振動が現れた際には、画像上ではその画像の輝度（または濃度の）ムラなどの画像障害として現れ、画質低下の一因となる。
【００１３】
本発明は上記の課題を解決するためになされたものであり、階調性が良好となる色算出を実現することを目的とする。
【課題を解決するための手段】
【００１４】
上記の目的を達成するための本発明による色処理方法は、入力色データに対して、第一の色補正及び第二の色補正に基づく処理を行う色処理方法であって、前記第一の色補正に対応する非線形演算式を求め、前記非線形演算式の係数に対して第二の色補正に対応する処理を行い、前記第二の色補正に対応する処理が行われた係数を用いた非線形演算式に基づき、前記入力色データを色補正することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、階調性が良好となる色算出を実現することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本実施形態について図面を用いて詳細に説明する。
【００１７】
図１は本実施形態の色処理装置のハードウェア構成を示すブロック図である。
【００１８】
図１において、１０１はＣＰＵであり、色処理装置を構成する各種構成要素を制御する。１０２はメインメモリであり、ＲＡＭやＲＯＭ等で構成され、ＲＡＭはデータ作業領域や一時待避領域として機能する。ＲＯＭは、本実施形態を実現するプログラムを含む各種制御プログラムを記憶している。
【００１９】
１０３はＳＣＳＩインタフェース（Ｉ／Ｆ）であり、ＳＣＳＩデバイス（例えば、ＨＤＤ１０５）との接続及びそれに対するデータ転送を制御する。１０４はネットワークインタフェース（Ｉ／Ｆ）であり、外部ネットワーク（ローカルエリアネットワーク１１３）との接続及びそれを介するデータ送受信を制御する。１０５はＨＤＤ（ハードディスクドライブ）であり、上記各種制御プログラム（ＯＳや、各種アプリケーション）やルックアップテーブル（ＬＵＴ）を含むプロファイルデータ等の各種データを記憶する。
【００２０】
尚、本実施形態では、ＨＤＤは、ＳＣＳＩ形式のＨＤＤを例に挙げて説明しているが、これに限定されず、ＩＤＥ形式、ＳＡＴＡ形式等の他の形式のＨＤＤであっても構わない。その場合、各形式に応じたインタフェースが構成されることは言うまでもない。
【００２１】
１０６はグラフィックアクセラレータであり、カラーモニタ１０７に出力する画像（例えば、ＣＰＵ１０１の制御によって生成される各種ユーザインタフェース）の表示を制御する。１０７はカラーモニタであり、例えば、ＬＣＤやＣＲＴで構成される。
【００２２】
１０８はＵＳＢコントローラであり、ＵＳＢデバイス（例えば、カラープリンタ１０９）との接続及びそれの制御を実行する。１０９はカラープリンタであり、例えば、インクジェット方式やレーザビーム方式等の各種印刷方式がある。１１０はキーボード／マウスコントローラであり、入力デバイス（キーボード１１１やマウス１１２）との接続及びそれらの制御を実行する。１１１はキーボード、１１２はマウスである。１１３はローカルエリアネットワークである。１１４はシステムバスであり、例えば、ＰＣＩバス、ＩＳＡバス等で構成され、色処理装置を構成する各種構成要素を相互に接続する。
【００２３】
次に、図１の色処理装置に於けるプロファイル作成の一連の動作について、図１の構成と、図２のユーザインタフェースとを用いて説明する。
【００２４】
まず、ユーザの操作及びＣＰＵ１０１の指示により、ＨＤＤ１０５に格納されているプロファイル作成アプリケーションが、ＯＳプログラムにより起動され、メインメモリ１０２上に展開される。プロファイル作成アプリケーションが起動されると、まず、ＨＤＤ１０５に格納されている初期ガマットデータが、ＣＰＵ１０１の指示に基づきＳＣＳＩ  Ｉ／Ｆ１０３、システムバス１１４を経由して、メインメモリ１０２に転送される。そして、プロファイル作成アプリケーションにより、図２に示すプロファイル作成用のユーザインタフェースがカラーモニタ１０７上に表示される。
【００２５】
尚、このユーザインタフェースに対する操作は、キーボード１１１やマウス１１２等の入力デバイスを用いて実行する。そして、ユーザはこれらの入力デバイスを用いてユーザインタフェース上で用意された各種コントロールを操作することによって、所望のプロファイルを作成することができる。
【００２６】
ここで、図２のユーザインタフェースについて説明すると、２０１は、ガマットデータの読込を指示するためのボタンである。２０２は、作成したプロファイルを保存するためのボタンである。２０３は、表示領域である。
【００２７】
２０４は、色域表示のＯＮ／ＯＦＦを指示するための色域表示チェックボックスである。２０５は、プロファイル生成に使用される色再現特性の表示をＯＮ／ＯＦＦを指示するための色再現表示チェックボックスである。２０６は、プロファイル色分布の三次元表示をＯＮ／ＯＦＦするためのプロファイル色分布表示チェックボックスである。２０７は、アプリケーション終了ボタンである。
【００２８】
ユーザが、ガマット読込ボタン２０１によりガマットデータの読込を指示すると、プロファイル作成アプリケーションの処理に従い、ＨＤＤ１０５に格納されたガマットデータが、ＣＰＵ１０１の指示に基づきＳＣＳＩ  Ｉ／Ｆ１０３、システムバス１１４を経由して、メインメモリ１０２に転送される。あるいは、ＬＡＮ１１３に接続されたサーバに格納されたガマットデータまたはインターネット上のガマットデータが、ＣＰＵ１０１の指示により、ネットワークＩ／Ｆ１０４、システムバス１１４を経由してメインメモリ１０２に転送される。そして、プロファイル算出処理が実行される。
【００２９】
プロファイル算出処理結果は、各チェックボックスの設定に従って、表示領域２０３に擬似三次元表示される。
【００３０】
まず、色域表示チェックボックス２０４がＯＮである（チェックされている）場合には、読み込んだガマットデータの三次元色域形状が、表示領域２０３に擬似三次元表示される。また、色再現表示チェックボックス２０５がＯＮである場合には、プロファイル生成に使用される色再現特性が、擬似三次元表示される。また、プロファイル色分布表示チェックボックス２０６がＯＮである場合には、プロファイルのＬＵＴ値が、表示領域２０３に擬似三次的に点表示される。
【００３１】
また、各チェックボックス２０４〜２０６のＯＮ／ＯＦＦを行った場合にも、上記のような表示形態に更新がなされる。
【００３２】
ユーザが、プロファイル保存ボタン２０２を操作して、プロファイル保存を指示すると、プロファイル作成アプリケーションは、生成されたプロファイルをＨＤＤ１０５に保存する。
【００３３】
ユーザが、終了ボタン２０７を操作してアプリケーション終了を指示すると、総てのデータ並びにプロファイル作成アプリケーションがメインメモリ１０２より消去され、アプリケーション動作を終了する。
【００３４】
次に、プロファイル作成アプリケーションの動作について、図３の状態図を用いて説明する。
【００３５】
図３は本実施形態のプロファイル作成アプリケーション動作の状態遷移図である。
【００３６】
ステート３０１では、アプリケーション動作に必要な各種メモリ領域の確保等の初期化動作を行う。
【００３７】
ステート３０２では、後述の処理に従って、プロファイル算出用のＢ−Ｓｐｌｉｎｅ  Ｓｏｌｉｄに対する基底関数並びに係数を算出し、設定する。
【００３８】
ステート３０３では、初期ガマットデータをＨＤＤ１０５から読み込んでメインメモリ１０２に記憶する。ここでガマットデータは、図４に示すデータ構造からなる。構造としては、色域（ガマット）を表す三角パッチデータの総数が記述され、その後にパッチ総数分だけ三角パッチの３頂点を表す３つのＬ*ａ*ｂ*値が記述されたものである。
【００３９】
ステート３０４では、後述の写像動作に従って、Ｂ−Ｓｐｌｉｎｅ  Ｓｏｌｉｄ（Ｂ−スプライン体）の係数を写像変換して、メインメモリ１０２に記憶する。但し、オリジナルのＢ−Ｓｐｌｉｎｅ  Ｓｏｌｉｄの係数は、破棄せずにそのまま保存を続ける。
【００４０】
ステート３０５では、後述の処理に従って、プロファイル算出用のＢ−Ｓｐｌｉｎｅ  Ｓｏｌｉｄを用いてプロファイルを作成し、メインメモリ１０２に記憶する。
【００４１】
ステート３０６では、後述の処理に従って、ステート３０４にて生成したプロファイル算出用のＢ−Ｓｐｌｉｎｅ  Ｓｏｌｉｄ並びにステート３０５にて生成したプロファイルを用い、擬似三次元表示用の３Ｄオブジェクトデータを生成する。３Ｄオブジェクトデータは、色域表示用のソリッドデータ、プロファイル算出用色再現用のソリッドデータ、プロファイル表示用のポイントデータの３データである。
【００４２】
ステート３０７では、ユーザ操作判断待ち状態となる。
【００４３】
ここで、色域表示チェックボックス２０４がＯＮ／ＯＦＦされた場合には、ステート３０８へ移行して、色域表示処理を実行する。
【００４４】
色再現表示チェックボックス２０５がＯＮ／ＯＦＦされた場合には、ステート３０９へ移行して、色再現表示処理を実行する。
【００４５】
プロファイル色分布表示チェックボックス２０６がＯＮ／ＯＦＦされた場合には、ステート３１０へ移行し、プロファイル保存処理を実行する。
【００４６】
ガマットデータ読込ボタン２０２が押下されると、ステート３１１へ移行して、ガマットデータ読込処理を実行する。プロファイル保存ボタン２０２が押下されると、ステート３１２へ移行し、プロファイル保存処理を実行する。終了ボタン２０７が押下されると、ステート３１３へ移行し、終了処理を実行する。
【００４７】
ステート３０８では、色域表示チェックボックス２０４がＯＮとなった場合には、色域表示用のソリッドデータを表示する。一方、ＯＦＦとなった場合には色域表示用のソリッドデータを非表示する。このＯＮ／ＯＦＦにより、図２の表示領域２０３内に、図示のような、色域表示用のソリッドデータの表示／非表示がなされる。尚、図２では、色再現表示用のソリッドデータを単体で表示しているものであり、他の３Ｄオブジェクトデータが重畳して表示される場合もある。
【００４８】
ステート３０９では、色再現表示チェックボックス２０５がＯＮとなった場合には、色再現表示用のソリッドデータを表示する。一方、ＯＦＦとなった場合には、色再現表示用のソリッドデータを非表示する。このＯＮ／ＯＦＦにより、図２の表示領域２０３内に、図５に示すような、色再現表示用のソリッドデータの表示／非表示がなされる。尚、図５では、色再現表示用のソリッドデータを単体で表示しているものであり、他の３Ｄオブジェクトデータが重畳して表示される場合もある。
【００４９】
ステート３１０では、プロファイル色分布三次元表示チェックボックス２０６がＯＮとなった場合には、プロファイル表示用のポイントデータを表示する。一方、ＯＦＦとなった場合には、プロファイル表示用のポイントデータを非表示する。このＯＮ／ＯＦＦにより、図２の表示領域２０３内に、図６に示すような、プロファイル表示用のポイントデータの表示／非表示がなされる。尚、図６では、プロファイル表示用のポイントデータを単体で表示しているものであり、他の３Ｄオブジェクト・データが重畳して表示される場合もある。
【００５０】
ステート３１１では、読込対象のガマットデータファイルをユーザが指定し、その後、指定されたガマットデータファイルがオープンできるかどうか、また正しいガマットデータフォーマットかどうかを判定する。ガマットデータファイルがオープンでき且つ正しいフォーマットであれば、ＨＤＤ１０５もしくはネットワーク経由で読み込まれたガマットデータファイルをメインメモリ１０２に記憶した後、ステート３０３へ移行し、そうでなければステート３０７へ移行する。
【００５１】
ステート３１２では、メインメモリ１０２に記憶されているプロファイルをしかるべきフォーマットにてＨＤＤ１０５へ保存し、ステート３０７へ移行する。
【００５２】
ステート３１３では、メインメモリ解放等の終了動作を行った後、プロファイル作成アプリケーションを終了する。
【００５３】
以下では、ステート３０２における、プロファイル算出用のＢ−Ｓｐｌｉｎｅ  Ｓｏｌｉｄに対する基底関数並びに係数の算出処理について、図７のフローチャートを用いて説明する。
【００５４】
図７は本実施形態のプロファイル算出用のＢ−Ｓｐｌｉｎｅ  Ｓｏｌｉｄに対する基底関数並びに係数の算出処理を示すフローチャートである。
【００５５】
尚、以後の説明のため、あらかじめプロファイル算出用のＢ−Ｓｐｌｉｎｅ  Ｓｏｌｉｄの式を説明する。この式は、
【００５６】
【数１】
2006253961.tif 000003
【００５７】
で定義される。
【００５８】
ここで、ｒｒ、ｇｇ、ｂｂはＲＧＢ値、ｌ、ａ、ｂはＬ*ａ*ｂ*値を表す。ＮrはＲ軸方向での基底関数、ＮgはＧ軸方向での基底関数、ＮbはＢ軸方向での基底関数であり、ｃｌijk、ｃａijk、ｃｂijkは係数を表すものである。また、式の中でＮr、Ｎg、Ｎbに付属するサフィックスｉ、ｊ、ｋは、それぞれの軸に対する基底における基底関数番号である。つまり、この式は、区分的多項式を基底関数とする多重総和演算式である。
【００５９】
ステップＳ４０１では、ｓＲＧＢの変換式に従って、ＲＧＢ値とＬ*ａ*ｂ*値との対応を取得する。以後、ＲＧＢ値とＬ*ａ*ｂ*値との対応関係として、ｉ番目のＲＧＢ値をｒｒi、ｇｇi、ｂｂi、Ｌ*ａ*ｂ*値をｌi、ａi、ｂiとして説明する。但し、ＲＧＢ値は、あらかじめ定められたＲ／Ｇ／Ｂ値のステップに基づいて、Ｒ／Ｇ／Ｂ値の順番でネストされた値である。
【００６０】
ステップＳ４０２では、あらかじめ定められたＲ／Ｇ／Ｂ値のステップに基づいて、基底関数を算出し、メインメモリ１０２に記憶する。基底関数の算出には、一般的なＤｅ  Ｂｏｏｒ−Ｃｏｘのアルゴリズムを用いる。Ｒ／Ｇ／Ｂ値のステップが同一であった場合、基底関数Ｎr、Ｎg、Ｎbがいずれも３位のＢ−Ｓｐｌｉｎｅ基底であれば、いずれも図８に示すような、ξ０〜ξ３の４節点の基底関数となる。尚、図８では、Ｒ軸の基底関数Ｎrとして記してある。以下、基底関数はいずれも３位のＢ−Ｓｐｌｉｎｅ基底であるものとして説明する。
【００６１】
ステップＳ４０３では、ステップ４０２で算出した基底関数と、ステップＳ４０１で取得したＲＧＢ値とＬ*ａ*ｂ*値との対応関係を用い、行列方程式
【００６２】
【数２】
2006253961.tif 000004
【００６３】
をＬ*成分、ａ*成分、ｂ*成分について、それぞれＬＵ分解を用いて解くことで、各係数を算出する。以下、この行列方程式による係数算出について詳しく説明する。
【００６４】
まず、行列Ｍをのｓ行ｔ列成分ｍstを、次のように算出する。
【００６５】
【数３】
2006253961.tif 000005
【００６６】
ここで、ｔ  ＝  ２５（ｉ−１）＋５（ｊ−１）＋ｋであり、ｉ、ｊ、ｋは１から５までの整数である。尚、このｔとｉ、ｊ、ｋとの間の関係は、節点数と基底関数の位数によって変化する。例えば、３位のＢ−Ｓｐｌｉｎｅ基底で節点数が６である場合には、ｔ＝４９（ｉ−１）＋７（ｊ−１）＋ｋという関係になる。
【００６７】
以下、係数ｃｌijk、ｃａijk、ｃｂijkの算出について、それぞれ説明する。
【００６８】
まず、係数ｃｌijkを算出するために、次の行列方程式をＬＵ分解を用いて解く。
【００６９】
【数４】
2006253961.tif 000006
【００７０】
次に、係数ｃａijkを算出するため、次の行列方程式をＬＵ分解を用いて解く。
【００７１】
【数５】
2006253961.tif 000007
【００７２】
次に、係数ｃｂijkを算出するため、次の行列方程式をＬＵ分解を用いて解く。
【００７３】
【数６】
2006253961.tif 000008
【００７４】
ステップＳ４０４では、算出した係数を、メインメモリ１０２に記憶する。
【００７５】
以上のように、複数の入力色（ＲＧＢ）と、複数の入力色に対応する出力色（Ｌ*ａ*ｂ*値）から非線形演算式を求めるため、入力色データに対して、滑らかな変化をする非線形演算式を求めることができる。
【００７６】
ここで、算出されたＢ−Ｓｐｌｉｎｅ  Ｓｏｌｉｄにより算出されるｓＲＧＢ色再現の模式図を示すと、例えば、図９のようになる。
【００７７】
次に、ステート３０４における、Ｂ−Ｓｐｌｉｎｅ  Ｓｏｌｉｄの係数写像処理について、図１０のフローチャートを用いて説明する。
【００７８】
図１０は本実施形態のＢ−Ｓｐｌｉｎｅ  Ｓｏｌｉｄの係数写像処理を示すフローチャートである。
【００７９】
ステップＳ８０１では、ステート３０２で算出したＢ−Ｓｐｌｉｎｅ  Ｓｏｌｉｄより、Ｓｐｌｉｎｅ  Ｓｏｌｉｄ係数ｃｌijk、ｃａijk、ｃｂijkのそれぞれ係数値を１つ取得し、取得した値を用いて、色ＣをＬ*ａ*ｂ*値において、Ｃ＝（ｃｌijk、ｃａijk、ｃｂijk）と定める。但し、取得する際のサフィックスはｃｌ、ｃａ、ｃｂに対して同一の値を用いるものである。
【００８０】
ステップＳ８０２では、ステップＳ８０１で取得した色Ｃに対し、所定条件に基づいて、写像動作を適用することで、あらたなＳｐｌｉｎｅ  Ｓｏｌｉｄ係数値／ｃｌijk、／ｃａijk、／ｃｂijkを算出する。
【００８１】
ここで、写像動作の具体例について、図１１を用いて説明する。
【００８２】
図１１は本実施形態の係数の写像に対応するガマットマッピングの具体例を説明するための図である。
【００８３】
図１１において、９０１は、ステート３０４で算出されたＢ−Ｓｐｌｉｎｅ  Ｓｏｌｉｄより定まる色域（入力デバイスの色再現範囲）である。９０２は、ステート３０３で読み込んだガマットデータの色域（出力デバイスの色再現範囲）である。Ｂｓは、色Ｃと点Ｆを結んだ直線と色域９０１の交点である。Ｂｄは、色Ｃと点Ｆ（目標典）を結んだ直線と色域９０２の交点である。尚、点Ｆ（目標点）は、明度軸上の色（５０，０，０）として定められている。
【００８４】
ここで、色Ｃが、ＦとＢｓ間の距離≦ＦとＢｄ間の距離である場合、色Ｃに対して写像変換は実行しない。一方、ＦとＢｓ間の距離＞ＦとＢｄ間の距離となる場合、ＦとＣとの距離を算出し、例えば、図１２の変換テーブルのように、非線形に距離を変換する。つまり、ＦとＣの距離（写像前距離）が変換結果の距離（写像後距離）と等しくなるように、色Ｃを色Ｃｍ（あるいは、ＦとＢｄを結ぶ直線上でかつ色域９０２に属する色信号値Ｃｍ（例えば、Ｃ＊（Ｆ−Ｂｄ）／（Ｆ−Ｂｓ）をＣｍとしても良い））に写像変換する。
【００８５】
以上の写像変換（ガマットマッピング）を、Ｓｐｌｉｎｅ  Ｓｏｌｉｄ係数写像に適用する。例えば、ｃｌijkと／ｃｌijk、との比が、色ＣのＬ*値と色ＣｍのＬ*値との比と等しくなるように、／ｃｌijkを求める。同様に、／ｃａijkと／ｃｂijkとを算出する。また、ＦＣとＦＣｍとの距離の比に応じて、／ｃｌijk、／ｃａijk及び／ｃｂijkを算出してもよい。算出された係数値（／ｃｌijk、／ｃａijk及び／ｃｂijk）は、元の係数値（ｃｌijk、ｃａijk及びｃｂijk）と入れ替える。
【００８６】
つまり、本実施形態では、第一の色補正を、ＲＧＢ値（デバイス依存値）からＬ*ａ*ｂ*値（デバイス非依存値（デバイス独立値））への変換とし、第二の色補正を入力デバイスの色再現範囲と出力デバイスの色再現範囲に基づくＬ*ａ*ｂ*値へのガマットマッピングとすると、写像変換されたＳｐｌｉｎｅ  Ｓｏｌｉｄ係数を用いた非線形演算式により、図１６に示すような階調の変動が振動してしまうことを防ぎつつ、第二の色補正に対応する処理を行うことができる。
【００８７】
ステップＳ８０３では、ステップＳ８０２で算出したＳｐｌｉｎｅ  Ｓｏｌｉｄ係数値をメインメモリ１０２に記憶する。
【００８８】
ステップＳ８０４では、Ｓｐｌｉｎｅ  Ｓｏｌｉｄ係数値の総てに対して、処理を実行したか否かを判定する。実行していない場合（ステップＳ８０４でＮＯ）、ステップＳ８０１に戻る。一方、実行している場合（ステップＳ８０４でＹＥＳ）、処理を終了する。
【００８９】
次に、ステート３０５における、プロファイル算出用のＢ−Ｓｐｌｉｎｅ  Ｓｏｌｉｄを用いたプロファイル作成処理について、図１３を用いて説明する。
【００９０】
図１３は本実施形態のプロファイル作成処理を示すフローチャートである。
【００９１】
ここで、作成するプロファイルは、例えば、図１４に示すデータ構造で構成される。ＲＧＢ値はネストの順番と、プロファイルに記述されたＲ／Ｇ／Ｂ値のステップ値とに従って算出され、Ｌ*ａ*ｂ*値はプロファイルに記述されている値となる。
【００９２】
ステップＳ１１０１では、作業用のメモリ領域を確保し、変数初期化などの初期化動作を行う。
【００９３】
ステップＳ１１０２では、しかるべき順序に従って、プロファイルのＬＵＴ格子点に相当するＲＧＢ値を１つ取得する。
【００９４】
ステップＳ１１０３では、メインメモリ１０２よりプロファイル算出用のＢ−Ｓｐｌｉｎｅ  Ｓｏｌｉｄにおける基底関数と係数値とを１つ取得し、下式よりＬ*ａ*ｂ*値を算出する。
【００９５】
【数７】
2006253961.tif 000009
【００９６】
ここで、ｒｒ、ｇｇ、ｂｂはＲＧＢ値、ｌ、ａ、ｂはＬ*ａ*ｂ*値を表す。ＮrはＲ軸方向での基底関数、ＮgはＧ軸方向での基底関数、ＮbはＢ軸方向での基底関数であり、ｃｌijk、ｃａijk、ｃｂijkは係数を表すものである。また、式の中でＮr、Ｎg、Ｎbに付属するサフィックスｉ、ｊ、ｋは、それぞれの軸に対する基底における基底関数番号である。
【００９７】
ステップＳ１１０４では、ＬＵＴ格子点位置に対応するメモリアドレス（メインメモリ１０２）に、算出したＬ*ａ*ｂ*値を格納する。
【００９８】
ステップＳ１１０５では、ＬＵＴ格子点総てに対し、上記の変換を実行して、Ｌ*ａ*ｂ*値を算出したか否かを判定する。算出していない場合（ステップＳ１１０５でＮＯ）、ステップＳ１１０２に戻り、ＬＵＴ格子点総てに対し、上記の変換を実行して、Ｌ*ａ*ｂ*値を算出するまで、ステップＳ１１０２〜ステップＳ１１０４を繰り返す。
【００９９】
一方、ＬＵＴ格子点総てに対し、上記の変換を実行して、Ｌ*ａ*ｂ*値を算出した場合（ステップＳ１１０５でＹＥＳ）、ステップＳ１１０６へ進む。
【０１００】
ステップＳ１１０６では、メインメモリ１０２に格納された変換後のＬＵＴデータを、プロファイルデータとして、メインメモリ１０２の所定領域に格納する。
【０１０１】
そして、ステップＳ１１０７では、作業用メモリの解放等の終了動作を行う。
【０１０２】
次に、ステート３０６における３Ｄオブジェクト生成処理について説明する。
【０１０３】
色域表示用のソリッドデータは、ステート３０２にて読み込んだ三角パッチデータを総て用いて、ポリゴン表記のソリッドデータを生成する。
【０１０４】
プロファイル表示用のポイントデータは、ＬＵＴにおける総てのＬ*ａ*ｂ*値をポイントとし、ポイントデータを生成する。
【０１０５】
また、色再現表示用のソリッドデータは、以下のように生成する。
【０１０６】
まず、ステップが［０，６４，１２８，１９２，２５５］からなる５×５×５の格子を生成する。次に、総ての格子点について、ステップＳ１１０２と同様にしてＲＧＢ値からＬ*ａ*ｂ*値を算出する。最後に、算出されたＬ*ａ*ｂ*値の組より、ポリゴン表記の色再現表示用のソリッドデータを生成する。
【０１０７】
以上説明したように、本実施形態によれば、第１の表色系で表現される色信号値より第２の表色系の色信号値に算出（写像）する際に、第一の色補正に対応する処理として、一度滑らかな色再現を非線形演算式（第１の表色系のサンプル点を補間する補間式（本実施形態では、Ｂ−Ｓｐｌｉｎｅ  Ｓｏｌｉｄ式））を設定して近似する。また、第二の色補正に対応する処理として、その非線形演算式の係数を写像変換して、その非線形演算式を変形する。そして、この変形した非線形演算式を用いて、プロファイル算出用の演算を実行する。
【０１０８】
特に、この変形は、スプラインの変動近似特性を応用したものであり、この変動近似特性は、補間で発生する振動を抑制することができる。
【０１０９】
つまり、補間式の係数を所定条件（図１１で説明したような写像変換）を満足するように変形し、その変形した補間式を用いて、色域写像を行って色を算出することで、変動減少近似効果を利用し、複数の入力色に対応する出力色の階調の変動が振動してしまう現象を防ぐことができる。
【０１１０】
特に、本実施形態では、入力デバイスの色域内に含まれる多くの入力色データについて、上記係数の写像変換処理を行うため、階調の変動が振動してしまう現象を防ぐ効果は顕著になる。
【０１１１】
図１７は、ライン１７０１上にある複数の入力色と、ガマットマッピング後の複数の出力色との関係を示す図である。
【０１１２】
例えば、図１７のライン１７０１上の点群をガマットマッピングした後、ガマットマッピング後の点群をＢ−スプライン曲線で結ぶと、ライン１７０３の点線のようにラインが振動してしまう。これは、図１６に示すＢ−スプライン曲線の特性に起因し、図１５で示した通り、点群間の間で急峻な変化があると、その振動はより顕著になる。
【０１１３】
これに対して、本実施形態によれば、Ｂ−スプライン曲線の係数を写像することにより、ラインの振動が小さいライン１７０１の軌跡を維持しつつ、ガマットマッピング後の点群を近似するライン１７０２を形成することができる。
【０１１４】
つまり、ライン１７０２を示すＢ−スプライン関数で入力色を変換するので、出力色の良好な階調を得ることができる。また、このような算出を実行することで、擬似輪郭等の画像障害の発生を抑制することができる。
【０１１５】
尚、上記実施形態では、ソリッド表現における基底関数として、Ｂ−Ｓｐｌｉｎｅ（Ｂ−スプライン）を用いる例を挙げて説明しているが、これに限定されるものではない。例えば、基底関数としては、Ｒａｔｉｏｎａｌ  Ｂ−Ｓｐｌｉｎｅ（有理Ｂ−スプライン）、Ｎｏｎ  Ｕｎｉｆｏｒｍ  Ｒａｔｉｏｎａｌ  Ｂ−Ｓｐｌｉｎｅ（不均一有理Ｂ−スプライン）、Ｂｅｚｉｅｒ（ベジェ）、Ｒａｔｉｏｎａｌ  Ｂｅｚｉｅｒ（有理ベジェ）等の、あらゆる区分的関数（区分的多項式）を用いることができる。
【０１１６】
ここで、本実施形態では、基底関数の局所性が存在するとより望ましいことから、基底関数として最も代表的なＢ−Ｓｐｌｉｎｅ（Ｂ−スプライン）を例に挙げて説明している。
【０１１７】
このように、本実施形態では、第１の表色系で表現される色信号値より第２の表色系の色信号値に算出する際、第１の表色系の次元数と同じ多重度の区分的多項式を基底関数とする多重総和演算を用いて第２の表色系の色信号値を算出する。
【０１１８】
尚、上記実施形態で処理対象とする色空間については何ら制限はなく、ＣＭＹＫ色空間、Ｌ*ａ*ｂ*色空間、ＪＣＨ色空間、ＸＹＺ色空間、ｘｙ色空間等の様々な色空間を用いることができる。さらに、インク色分解などにも適用可能であり、ＣＭＹＫに淡シアンならびに淡マゼンタを加えた六次元色空間、さらに、レッドインクおよびグリーンインクを加えた八次元色空間等の色空間も用いることができる。また、式に与える色空間と、式より算出される色空間とが同一の色空間であってもよい。
【０１１９】
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１２０】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【０１２１】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１２２】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【０１２３】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【０１２４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１２５】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１２６】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【０１２７】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【０１２８】
また、本実施形態では、図１１に示すガマットマッピング方法を適用し、Ｓｐｌｉｎｅ  Ｓｏｌｉｄ係数を写像した。しかし、例えば、入力色の明度に応じて、図１１における点Fの位置を変化させても良いし、その他のガマットマッピング方法を適用し、Ｓｐｌｉｎｅ  Ｓｏｌｉｄ係数を写像しても良い。
【０１２９】
また、本実施形態では、第二の色補正として、ガマットマッピングを用いたが、色相調整など他の色補正に適用してもよい。
【図面の簡単な説明】
【０１３０】
【図１】本実施形態の色処理装置のハードウェア構成を示すブロック図である。
【図２】本実施形態のプロファイル作成アプリケーションのユーザインタフェースを示す図である。
【図３】本実施形態のプロファイル作成アプリケーション動作の状態遷移図である。
【図４】本実施形態のガマットデータのデータ構造を示す図である。
【図５】本実施形態の色再現の擬似三次元表示を示す模式図である。
【図６】本実施形態のプロファイルの擬似三次元表示を示す模式図である。
【図７】本実施形態のプロファイル算出用のＢ−Ｓｐｌｉｎｅ  Ｓｏｌｉｄに対する基底関数並びに係数の算出処理を示すフローチャートである。
【図８】本実施形態のＲ軸の基底関数Ｎrを示す図である。
【図９】本実施形態のｓＲＧＢ色再現の擬似三次元表示を示す模式図である。
【図１０】本実施形態のＢ−Ｓｐｌｉｎｅ  Ｓｏｌｉｄの係数写像処理を示すフローチャートである。
【図１１】本実施形態の写像動作の具体例を説明するための図である。
【図１２】本実施形態の写像における距離変換を説明するための図である。
【図１３】本実施形態のプロファイル作成処理を示すフローチャートである。
【図１４】本実施形態のプロファイルのデータ構造を示す図である。
【図１５】色域外のＬ*ａ*ｂ*値が指定された場合に目標色を設定する方法を説明するための図である。
【図１６】一次元のスプライン関数に発生する振動を説明するための図である。
【図１７】複数の入力色と、ガマットマッピング後の複数の出力色との関係を示す図である。
【符号の説明】
【０１３１】
１０１  ＣＰＵ
１０２  メインメモリ
１０３  ＳＣＳＩ  Ｉ／Ｆ
１０４  ネットワーク  Ｉ／Ｆ
１０５  ＨＤＤ
１０６  グラフィックアクセラレータ
１０７  カラーモニタ
１０８  ＵＳＢコントローラ
１０９  カラープリンタ
１１０  キーボード／マウスコントローラ
１１１  キーボード
１１２  マウス
１１３  ＬＡＮ
１１４  システムバス
【図１】
2006253961.tif 000010
【図２】
2006253961.tif 000011
【図３】
2006253961.tif 000012
【図４】
2006253961.tif 000013
【図５】
2006253961.tif 000014
【図６】
2006253961.tif 000015
【図７】
2006253961.tif 000016
【図８】
2006253961.tif 000017
【図９】
2006253961.tif 000018
【図１０】
2006253961.tif 000019
【図１１】
2006253961.tif 000020
【図１２】
2006253961.tif 000021
【図１３】
2006253961.tif 000022
【図１４】
2006253961.tif 000023
【図１５】
2006253961.tif 000024
【図１６】
2006253961.tif 000025
【図１７】
2006253961.tif 000026
【手続補正書】
【提出日】平成17年12月19日(2005.12.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入力色データに対して、第一の色補正及び第二の色補正に対応する処理を行う色処理方法であって、
前記第一の色補正に対応する非線形演算式を求め、
前記非線形演算式の係数に対して第二の色補正に対応する処理を行い、
前記第二の色補正に対応する処理が行われた係数を用いた非線形演算式により、前記
入力色データを色補正する
ことを特徴とする色処理方法。
【請求項２】
前記非線形演算式の基底関数は、Ｂ−スプライン、有理Ｂ−スプライン、不均一有理Ｂ−スプライン、ベジェ、有理ベジェのいずれかである
ことを特徴とする請求項１に記載の色処理方法。
【請求項３】
前記第一の色補正は、デバイス依存の色データを、デバイス独立の色データに補正する  ことを特徴とする請求項１又は２に記載の色処理方法。
【請求項４】
前記第一の色補正に対応する非線形演算式は、複数の入力色と、該複数の入力色に対する出力色より求められる
ことを特徴とする請求項１及至３のいずれか１項に記載の色処理方法。
【請求項５】
前記第二の色補正は、入力デバイスの色再現範囲と、出力デバイスの色再現範囲とに基づく、ガマットマッピングである
ことを特徴とする請求項１及至４のいずれか１項に記載の色処理方法。
【請求項６】
前記ガマットマッピングは、
明度軸上に目標点を設定し、入力色と前記目標点とを結ぶ直線上に、前記入力色をマッピングする処理である
ことを特徴とする請求項５に記載の色処理方法。
【請求項７】
入力色データに対して、第一の色補正及び第二の色補正に対応する処理を行う色処理装置であって、
前記第一の色補正に対応する非線形演算式を求める算出手段と、
前記非線形演算式の係数に対して第二の色補正に対応する処理を行う処理手段と、
前記第二の色補正に対応する処理が行われた係数を用いた非線形演算式により、入力
色データを色補正する補正手段と
を有することを特徴とする色処理装置。
【請求項８】
コンピュータに、請求項１及至６のいずれか１項に記載の色処理方法を実現させるためのプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
上記の目的を達成するための本発明による色処理方法は、入力色データに対して、第一の色補正及び第二の色補正に対応する処理を行う色処理方法であって、前記第一の色補正に対応する非線形演算式を求め、前記非線形演算式の係数に対して第二の色補正に対応する処理を行い、前記第二の色補正に対応する処理が行われた係数を用いた非線形演算式により、前記入力色データを色補正することを特徴とする。