(57)【要約】【課題】  色空間の色域表面形状を再構築することにより色再現処理の精度を向上させることを目的とする。【解決手段】  色域の表面を示す多面体の幾何形状に関する色域表面情報を取得する色域表面情報取得工程と、前記多面体を構成する多角形の形状情報を取得する形状情報取得工程と、前記取得された形状情報を所定の形状情報と比較し、再構築の対象となる多角形を検出する多角形検出工程と、前記検出された多角形を複数の多角形に再構築する再構築工程とを有することを特徴とする。【選択図】  図６
2006203526.tif 000002
【特許請求の範囲】
【請求項１】
色域の表面を示す多面体の幾何形状に関する色域表面情報を取得する色域表面情報取得工程と、
前記多面体を構成する多角形の形状情報を取得する形状情報取得工程と、
前記取得された形状情報を所定の形状情報と比較し、再構築の対象となる多角形を検出する多角形検出工程と、
前記検出された多角形を複数の多角形に再構築する再構築工程と
を有することを特徴とする情報処理方法。
【請求項２】
前記多角形検出工程は、ガマットマッピングする際に用いられる多角形を検出する
ことを特徴とする請求項１に記載の情報処理方法。
【請求項３】
更に、前記色域の表面を示す多面体を表示させる表示工程と、
ユーザーの指示に基づき、再構築の対象となる多角形を選択する選択工程とを有し、
前記再構築工程は、前記選択工程において選択された多角形を複数の多角形に再構築することを特徴とする請求項１に記載の情報処理方法。
【請求項４】
更に、色情報を取得する色情報取得工程を有し、
前記再構築工程は、前記色情報を用いて、前記検出された多角形を複数の多角形に再構築することを特徴とする請求項１に記載の情報処理方法。
【請求項５】
前記色情報取得工程は、前記色域の表面を示す多面体の内部に位置する色情報を示す点を取得し、
前記再構築工程は、前記検出された多角形の頂点と、前記色域の表面を示す多面体の内部に位置する色情報を示す点とで、前記検出された多角形を複数の多角形に再構築する
ことを特徴とする請求項１に記載の情報処理方法。
【請求項６】
前記形状情報は面積であり、
前記多角形検出工程は、前記多角形の面積が所定値以上の多角形を検出することを特徴とする請求項１に記載の情報処理方法。
【請求項７】
前記形状情報は辺の長さであり、
前記多角形検出工程は、前記多角形の辺の長さが所定値以上の多角形を検出することを特徴とする請求項１に記載の情報処理方法。
【請求項８】
前記多角形は、三角形であることを特徴とする請求項１に記載の情報処理方法。
【請求項９】
色域の表面を示す多面体の幾何形状に関する色域表面情報を取得する色域表面情報取得工程と、
前記色域表面情報を解析する解析工程と、
前記解析結果に応じて色域の表面を構成する頂点を追加する頂点追加工程とを有することを特徴とする情報処理方法。
【請求項１０】
前記色域表面情報を用いて色域マッピング処理を行う色域マッピング処理工程を有し、
前記色域マッピング処理工程は、前記色域の表面を構成する頂点を用いてスケーリング処理を行うことを特徴とする請求項９記載の情報処理方法。
【請求項１１】
前記解析工程は、
前記色域表面情報から等色相断面情報を生成する生成工程と、
前記等色相断面情報を構成する線分から、所定条件を満たす線分を検出する線分検出工程と、
前記検出された線分を分割する分割工程とを有することを特徴とする請求項９記載の情報処理方法。
【請求項１２】
前記解析工程は、
前記色域表面を構成する辺から、所定の長さより長い線分を検出する線分検出工程と、
前記検出された線分を分割する線分分割工程とを有することを特徴とする請求項９記載の情報処理方法。
【請求項１３】
前記解析工程は、
前記色域表面を構成する多角形から、所定面積より大きい面積を有する多角形を検出する多角形検出工程と、
前記検出された多角形を分割する多角形分割工程とを有することを特徴とする請求項９記載の情報処理方法。
【請求項１４】
前記請求項１乃至１３のいずれかに記載の情報処理方法をコンピュータにて実施させるためのプログラム。
【請求項１５】
色域の表面を示す多面体の幾何形状に関する色域表面情報を取得する色域表面情報取得手段と、
前記多面体を構成する多角形の形状情報を取得する形状情報取得手段と、
前記取得された形状情報を所定の形状情報と比較し、再構築の対象となる多角形を検出する多角形検出手段と、
前記検出された多角形を複数の多角形に再構築する再構築手段と
を有することを特徴とする色処理装置。
【請求項１６】
色域の表面を示す多面体の幾何形状に関する色域表面情報を取得する色域表面情報取得手段と、
前記色域表面情報を解析する解析手段と、
前記解析結果に応じて色域の表面を構成する頂点を追加する頂点追加手段とを有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、色域を再構築するものに関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータの普及に伴い、デジタルカメラ、カラースキャナなどの画像入力デバイスによって画像を入力し、その画像をＣＲＴ、ＬＣＤなどの画像表示デバイスを用い画像を表示、確認、もしくは、カラープリンタなどの画像出力デバイスによって画像を出力するようなシステムが発達してきた。これらのシステムでは、入力デバイスと、表示、出力デバイスの色再現域の差による見えの違いを補正するために、カラーマッチング処理（色域マッピング）を行うのが通例である。色域マッピングを行うことにより、デバイス間の色の見えの差を吸収する。現在、この色域マッピング処理に関して様々な手法が提案されている。例えば、非特許文献１において、ＣＩＥＬＡＢ空間上のグレー軸上の一点（（Ｌ，ａ，ｂ）＝（５０，０，０））に向かって色域マッピングしていく方法が提案されている。また、ＣＩＥＬＡＢ空間上で色相毎に領域分割を行い、その領域毎に最適な圧縮方向へマッピングを行う手法も提案されている。また、国際照明委員会（ＣＩＥ）のＴＣ８−０３では、ＳＧＣＫ技法が推奨されている。
【０００３】
上述したように、その用途に応じた様々な色域マッピング手法が提案されているが、これらの手法のほとんどが、入出力色域の色域表面情報を（時には画像の色域情報も）必要としている。そのため、正確なマッピングを行うためには、マッピングの精度だけではなく、この色域表面の近似精度も高いものでなくてはならない。
【０００４】
色域表面の近似方法としては、例えば、入出力機器のデバイス信号値Ｒ，Ｇ，Ｂをそれぞれ９スライスして作成したパッチを、該入出力機器で出力し、測色して、デバイスＲＧＢ空間上の表面情報をもとに、測色値空間上の表面情報を算出する方法がある。この手法では、スライス数を増やせば高い近似精度が得られる。しかしながら、デバイスＲＧＢ空間上での表面情報が既知でないと使用できないため、例えば、入出力機器の任意の点集合から、測色値空間上の表面情報を算出することはできない。
【０００５】
一方、入出力機器の任意の点集合から色域表面を算出する方法の例としては、Ｃｏｎｖｅｘ  ｈｕｌｌ（凸包）を用いた手法が挙げられる。Ｃｏｎｖｅｘ  ｈｕｌｌとは、与えられた点集合を全て内部に含む最小の凸多面体のことであり、Ｃｏｎｖｅｘ  ｈｕｌｌを算出する手法としては、すでに多くの提案がなされている。これらの手法を用いることにより、任意の点集合からも色域表面を算出することができる。
【０００６】
【非特許文献１】Ｅ．Ｇ．Ｐａｒｉｓｅｒ，”Ａｎ  Ｉｎｖｅｓｔｉｇａｔｉｏｎ  ｏｆ  Ｃｏｌｏｒ  Ｇａｍｕｔ  Ｒｅｄｕｃｔｉｏｎ  Ｔｅｃｈｎｉｑｕｅｓ”，ＩＳ＆Ｔ  Ｓｙｍｐ．Ｅｌｅｃ．Ｐｒｅｐｒｅｓｓ  Ｔｅｃｈ．−Ｃｏｌｏｒ  Ｐｒｉｎｔｉｎｇ，ｐｐ．１０５−１０７（１９９１）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したように、入出力機器の任意の点集合から色域表面情報を算出する際には、Ｃｏｎｖｅｘ  ｈｕｌｌを用いた手法が良く用いられる。しかしながら、Ｃｏｎｖｅｘ  ｈｕｌｌを用いて色域表面を算出する場合、色域表面が凹の領域において、近似精度が悪化するという問題が生じる。
【０００８】
図１に、入出力機器の本来の色域表面と、Ｃｏｎｖｅｘ  ｈｕｌｌを用いた近似による色域表面の例を示す。ただし、図１は、ＣＩＥＬＡＢ空間のある色相におけるＬＣ平面を示す。図１に示すように、実際の色域は凹だが、凸に近似された領域１０において、近似した色域表面１１は、本来の色域表面１２と異なっていることが分かる。これは、色域表面が凹の領域においては、Ｃｏｎｖｅｘ  ｈｕｌｌを用いた手法では、正確な近似ができないことを示している。
【０００９】
色域表面の近似が正確ではなかった場合、色域マッピングの精度も悪化してしまう。図２にマッピングの精度悪化の様子を示す。図２に示すマッピング方法は、出力色域外にある入力点２０を、出力色域内のある収束点２３に向かって出力色域表面にマッピングする。図２に示すように、出力色域の近似精度が悪いために、実際のマッピング先２１と本来マッピングすべき点２２とがずれてしまい、良いマッピング結果を得ることが出来ない。
【００１０】
また、ＳＧＣＫ技法では、色域のスケーリング処理を行う。Ｃｏｎｖｅｘ  Ｈｕｌｌ技法によれば、時として生成されるポリゴンが非常に巨大となる場合がある。このような巨大となったポリゴンに於いてはスケーリングにて大きな誤差が発生し、結果として色再現性が悪化する場合がある。例えば、図３０の様なＣｏｎｖｅｘ  Ｈｕｌｌ技法で得られた色域をスケーリングした場合、図３９の様になる。図３９は、Ｃｏｎｖｅｘ  Ｈｕｌｌ技法で得られた色域をスケーリングした結果と等色相断面で理想的なスケーリング結果とを比較した模式図であり、スケーリングで大きな誤差が発生している。尚、ここで、実線で示される領域がＣｏｎｖｅｘ  Ｈｕｌｌ技法で得られた色域のスケーリング結果から算出した等色相断面であり、点線で示した領域が実際のデバイス色域をスケーリングした際の領域である。そこで、色域写像の精度を向上し、ひいては色再現性を向上させるため、このスケーリング誤差を小さくする手段が求められている。
【００１１】
本発明は上述した問題を解決するためになされたものであり、色空間の色域表面形状を再構築することにより、色再現処理の精度を向上させることを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明は以下の構成を有することを特徴とする。
【００１３】
請求項１記載の発明は、色域の表面を示す多面体の幾何形状に関する色域表面情報を取得する色域表面情報取得工程と、前記多面体を構成する多角形の形状情報を取得する形状情報取得工程と、前記取得された形状情報を所定の形状情報と比較し、再構築の対象となる多角形を検出する多角形検出工程と、前記検出された多角形を複数の多角形に再構築する再構築工程とを有することを特徴とする。
【００１４】
請求項９記載の発明は、色域の表面を示す多面体の幾何形状に関する色域表面情報を取得する色域表面情報取得工程と、前記色域表面情報を解析する解析工程と、前記解析結果に応じて色域の表面を構成する頂点を追加する頂点追加工程とを有することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、色域表面形状を再構築することができ、色再現処理の精度を向上させることができる。
【００１６】
本願請求項４記載の発明によれば、色情報取得工程で取得した色情報に基づき色域表面形状を高精度に生成することができる。
【００１７】
本願請求項１０記載の発明によれば、色域マッピング処理の精度を向上させることができる。
【発明を実施するための最良の形態】
【００１８】
（第一の実施例）
図３は、本実施例における色処理装置１のハードウェア構成を示すブロック図である。１０１は、出力デバイスの色域内の任意点集合１００１を取得する任意点集合取得部である。
【００１９】
図７に示すように、任意点集合１００１は、色域の形状を十分に再現できる程度の数のデータが必要であり、一般的にパッチを測色することにより得られる。
【００２０】
例えば、プリンタなどの出力デバイスでパッチを出力し、出力されたパッチを測色機で測色することにより得ることが出来る。
【００２１】
１０２は、前記任意点集合取得部１０１によって取得された出力色域の任意点集合１００１から、出力色域の色域表面形状を近似し、色域表面情報１００２を算出する色域表面近似部である。
【００２２】
図７に示すように、色域表面情報１００２は、色域の表面を近似的に構成する三角形のＩＤ番号と各頂点の座標から構成されている。該三角形は、任意点集合１００１をもとに、Ｃｏｎｖｅｘ  ｈｕｌｌを用いた方法で生成される。任意点集合１００１に対して、Ｃｏｎｖｅｘ  ｈｕｌｌを用いた方法を適用すると、任意点集合１００１のすべてを覆う凸形状の多面体が形成される。該多面体の表面は、色域を近似的に表し、三角形の集合で形成される。三角形以外の多角形の集合で近似することもできるが、処理が簡単になるため、色域の近似には三角形が良く用いられる。Ｃｏｎｖｅｘ  ｈｕｌｌを用いて表面形状を近似する方法については、これまでに様々な方法が提案されているため、本実施例では説明を省略する。
【００２３】
色域情報保持部１０３には、出力色域内の任意点集合１００１と、色域表面近似部１０２で算出された色域表面情報１００２とが保持される。１０４は、演算途中の各データを一時保存しておくバッファメモリである。１０５は、前記色域表面近似部１０３において算出された色域表面情報１００２の近似精度の判定を行う精度判定部である。１０６は、前記精度判定部１０５において判定された結果に応じて、前記色域表面データ内の低精度領域を再構築する色域表面再構築部である。１０７は、色域表面再構築部１０６により再構築された色域情報を出力する出力部である。
【００２４】
色処理装置１は、色域表面を示す複数の三角形の内、精度が悪い三角形を判定し、精度が悪いと判定された三角形を再構築する。
【００２５】
図６は、色処理装置１により実行される処理手順を示すフローチャートである。
【００２６】
ステップＳ１において、任意点集合取得部１０２は、色域情報保持部１０３に保持されている出力色域内の任意点集合を取得し、バッファメモリ１０４に保存する。ステップＳ２において、色域表面近似部１０２は、ステップＳ１において任意点集合取得部１０１が取得した出力色域の任意点集合をもとに、前述したｃｏｎｖｅｘ  Ｈｕｌｌを用いた手法で出力色域の表面形状を三角形の集合で近似する。ステップＳ３において、精度判定部１０５は、ステップＳ２で作成された出力色域の表面近似精度を判定する。精度判定の方法については、後述する。ステップＳ４において、色域表面再構築部１０６は、ステップＳ３において近似精度が悪いと判断された三角形に対し、三角形の再構築を行う。色域表面再構築部１０６の処理内容については後述する。ステップＳ５において、出力部１０７は、最終的に得られた出力色域の色域表面情報を出力する。
【００２７】
本実施例では、出力色域を多面体で表している。ステップＳ３における精度判定は、多面体を構成する三角形ごとに行う。例えば、図１のＬＣ平面図に示されているように、実際の色域は凹だが凸に近似された領域１０がある。領域１０は、図から分かるように、一つの三角形で近似される。本来は複数の三角形で近似される凹である領域が、一つの三角形で凸に近似されるため、領域１０を近似する三角形は、図８の６０１のように大きくなる。従って、本実施例では、しきい値Ｋよりも面積が大きい三角形は、本来の色域表面が凹である領域が凸に近似されているとして、精度が悪いと判定する。三角形の面積をしきい値と比較するだけなので、簡単な処理で精度判定を行うことが出来る。
【００２８】
図９に、ステップＳ３の具体的な処理の流れの例を示す。
【００２９】
ステップＳ３１において、精度判定部１０５は、しきい値Ｋを設定する。しきい値Ｋは、色域表面上の三角形の面積に対応し、精度判定を行う際に用いられる。Ｋの値は経験的に決定されるものである。また、しきい値Ｋは、あらかじめ精度判定部１０５に保持しておいても良いし、外部から取得しても良い。
【００３０】
ステップＳ３２において、精度判定部１０５は、カウントｉに１を代入する。カウントｉは、精度判定を三角形の数だけ行うためのカウンタである。
【００３１】
ステップＳ３３において、精度判定部１０５は、精度フラグＦｉに０を代入する。精度フラグＦｉは、出力色域表面の近似精度が許容できるか否かを判定するためのフラグである。ＩＤ番号ｉの三角形パッチに精度フラグＦｉが対応している。本実施例では、Ｆｉが０の場合はＩＤ番号ｉの三角形パッチの精度が許容でき、１の場合は許容できない、とする。
【００３２】
ステップＳ３４において、精度判定部１０５は、ステップＳ２４において色域表面近似部１０２によってバッファメモリ１０７に格納された色域表面情報１００２の内、ＩＤ番号ｉの三角形の情報を取得する。
【００３３】
ステップＳ３５において、精度判定部１０５は、ステップＳ３４において取得したＩＤ番号ｉの三角形の面積を算出する。三角形の面積は、三角形の各頂点の座標から算出する。
【００３４】
ステップＳ３６において、精度判定部１０５は、ステップＳ３１で設定したしきい値ＫとステップＳ３５で算出したＩＤ番号ｉの三角形の面積Ａｉを比較する。Ａｉ＜Ｋであった場合には、ステップＳ３８に進む。Ａｉ≧Ｋであった場合には、ステップＳ３７に進む。
【００３５】
ステップＳ３７では、三角形の面積Ａｉが所定のしきい値Ｋよりも大きいので、近似の精度が悪いと判断し、精度フラグＦｉに１を代入し、ステップＳ３８に進む。
【００３６】
ステップＳ３８において、精度判定部１０５は、ＩＤ番号ｉが全三角形の数Ｎと一致するか否かを判定する。ｉ＜Ｎの場合は、ステップＳ３９に進む。ｉ＝Ｎの場合は、処理を終了する。
【００３７】
ステップＳ３９において、精度判定部１０５は、カウントｉをインクリメントし、ステップＳ３３に戻る。
【００３８】
次に、精度が悪いと判定された三角形を再構築する具体的な方法について述べる。
【００３９】
図１０に、ステップＳ４における色域表面再構築部１０６の具体的な処理の流れの例を示す。
【００４０】
ステップＳ４１において、色域表面再構築部１０６は、カウントｉに１を代入する。カウントｉは、再構築するか否かの判定を三角形の数だけ行うためのカウンタである。
【００４１】
ステップＳ４２において、色域表面再構築部１０６は、ステップＳ３において設定された精度フラグＦｉの値を参照する。Ｆｉ＝０の場合は、近似精度が良いと判断された三角形なので、再構築処理を終了する。Ｆｉ＝１の場合は、ステップＳ４３に進む。
【００４２】
ステップＳ４３において、色域表面再構築部１０６は、バッファメモリ１０４から、ステップＳ３において精度が悪いと判定された三角形のＩＤ情報を取得する。ステップＳ４４において、色域表面再構築部１０６は、色域表面の再構築範囲を定義する。再構築範囲とは、三角形の再構築の際に用いる色域内部のデータを選別するための範囲である。
【００４３】
例えば、図１１のように、精度が悪いと判定された三角形１１０１の面に垂直な直線を、三角形の各頂点から色域内部の方向に延ばし、得られた三角柱領域を再構築範囲１１０２とする。
【００４４】
ステップＳ４５において、色域表面再構築部１０６は、色域情報保持部１０３に格納されている出力色域内の任意点集合１００１と、色域表面情報１００２とを取得する。
【００４５】
ステップＳ４６において、色域表面再構築部１０６は、ステップＳ４５において取得した出力色域内の任意点集合１００１から色域表面１２０１上の点１２０３を除いた点集合１２０４を抽出する。抽出された点集合１２０４は、図１２のＬＣ平面に示す第二の色域表面１２０２内の点である。図１２に示す第二の色域表面１２０２は、点集合を抽出した後、色域表面再構築部１０６により、Ｃｏｎｖｅｘ  Ｈｕｌｌを用いて抽出された点集合１２０４から算出される。
【００４６】
ステップＳ４７において、色域表面再構築部１０６は、ステップＳ４６において算出した第二の色域表面を構成する点の内、ステップＳ４４において定義された再構築範囲１１０２に含まれる点を再構築点１３０２として取得する。再構築点１３０２は、近似精度が悪いと判定された三角形１１０１を複数の三角形に再構築する際に用いられる。色域表面１２０１と、第二の色域表面１２０２と、再構築範囲１１０２と、再構築点１３０２との関係を図１３に示す。図１３に示すように、再構築範囲１１０１に含まれる第二の色域表面１２０２上の点が、再構築点１３０２となる。
【００４７】
ステップＳ４８において、色域表面再構築部１０６は、色域表面データと、ステップＳ４７において取得された再構築点１３０２とを用いて、該色域表面を再構築する。再構築を行うのは、対象となっている三角形１１０１のみであり、三角形１１０１の各頂点１３０１と、ステップＳ４７で取得した再構築点を結び、新たな複数の三角形を構築する。三角形が再構築された後の色域表面は、図１４の１４０１のようになる。再構築された新しい三角形は、元の三角形を構成する頂点１３０１と再構築点１３０２から成り、図１５に示すような三角形になる。図１５は、再構築された新しい三角形を図１４の矢印１４０２の方向から見た図であり、１４０２方向に凹になるように構築されている。誤差が大きいと判定された凸平面が凹平面に変換されるため、本来の色域表面に近くなり、近似精度が良好になる。
【００４８】
本実施例を用いて、色域を示す多面体を再構築すれば、ガマットマッピングや、色域を擬似三次元表示させる際などに近似精度が良い多面体を提供することが出来る。
【００４９】
（第二の実施例）
図４は、本実施例における色処理装置２のハードウェア構成を示すブロック図である。その構成は、実施例１における色処理装置１の構成とほぼ同じである。従って、色処理装置１と同様の構成である１０１から１０７までの説明は割愛する。
【００５０】
２０８は、本実施例で用いる入力画像データを出力色域内に写像するガマットマッピング部である。２１１は、本実施例で用いられる画像データと色域表面情報１００２を入力する入力部である。
【００５１】
本実施例では、ガマットマッピングを行う際に、ガマットマッピングに用いる三角形を再構築するか否か判定し、再構築すると判定した場合、ガマットマッピングに用いる三角形を再構築する。
【００５２】
以下に、図１６を用いて、具体的な処理フローを示す。
【００５３】
ステップＳ６１において、入力部２１１は、ガマットマッピングする対象であるカラー画像データを読み込み、バッファメモリ１０４に保存する。ステップＳ６２において、入力部２１１は、色域表面情報１００２を取得し、色域情報保持部１０３に保持する。ステップＳ６３において、ガマットマッピング部２０８は、バッファメモリ１０４からカラー画像データ中の画素と色域情報保持部１０３から色域表面情報とを取得して、ガマットマッピングに用いる三角形１９０３を抽出する。本実施例では、出力色域内の点１８０３から入力点１８０１へ引いた半直線と交わる出力色域を示す三角形を、ガマットマッピングに用いる三角形とする。
【００５４】
Ｓ６４において、精度判定部１０５は、ガマットマッピングに用いる三角形の精度を判定し、ガマットマッピングの精度を判定する。本実施例では、ガマットマッピングに用いる三角形の近似精度を判定し、三角形の近似精度が悪い場合、ガマットマッピングの精度も悪くなると判定する。ガマットマッピングに用いられる三角形の近似精度の判定方法は、第一の実施例と同様の方法である。Ｓ６４では、マッピングの精度が悪くなると判定された場合、ガマットマッピングを行わず、三角形を再構築するため、Ｓ６５へ進む。Ｓ６５では，色域表面再構築部１０６が、マッピングの精度が悪くなると判定された三角形を再構築する。三角形の再構築方法は、第一の実施例と同様の方法である。
【００５５】
Ｓ６４でマッピングの精度は悪くないと判定された場合、Ｓ６６で、ガマットマッピング部２０８は、入力画素を示す点をガマットマッピングする。ガマットマッピングの具体的な処理は、後述する。
【００５６】
Ｓ６６におけるガマットマッピング後、Ｓ６７へ進み、入力画像に含まれるすべての画素について、ガマットマッピングを行ったか否かを判定する。Ｓ６５での再構築後、もしくはＳ６７で、入力画像のすべての画素についてガマットマッピングを行っていないと判定された場合、再びＳ６３に戻り、ガマットマッピングに用いる三角形を抽出する。すべての画素について、ガマットマッピングを行った場合、Ｓ６８でガマットマッピングされた画像データを出力部１０７に出力する。以上が、本実施例における処理フローである。
【００５７】
次に、ガマットマッピング部２０８がガマットマッピングに用いる三角形を抽出する方法を述べる。
【００５８】
本実施例の出力色域は、先に説明したように、Ｃｏｎｖｅｘ  ｈｕｌｌによって得られた三角形の集合体から成っている。そこで、図２２に示す処理を用いて、三角形を抽出する。
【００５９】
ステップＳ８１では、出力色域内と容易にわかる点、例えば、（Ｌ，ａ，ｂ）＝（５０，０，０）の点を定義する。ステップＳ８２では、色域表面情報１００２から三角形を１つ取り出し、該三角形を構成する３頂点で定義される平面の方程式を算出する。ステップＳ８３では、ステップＳ８１で定義した出力色域内点１８０３（５０，０，０）と入力画素を示す点１８０１とを結ぶ直線の方程式を算出する。ステップＳ８４において、ステップＳ８２において算出した平面の方程式と、ステップＳ８３において算出した直線の方程式とから、平面と直線の交点を算出する。ステップＳ８５において、ステップＳ８４で算出した交点が、三角形の中に入っているか否かを判定する。図１８に三角形の内外判定の例を示す。図１８に示すように、三角形の各頂点をそれぞれＡ、Ｂ、Ｃ、とし、ステップＳ８４において算出された三角形と直線の交点をＰとすると、各点は、以下の式（３）のように表すことができる。
【００６０】
【数１】
2006203526.tif 000003
【００６１】
この時、点Ｐが三角形ＡＢＣの中であれば、以下の式（４）、式（５）が成り立つ。
【００６２】
【数２】
2006203526.tif 000004
【００６３】
【数３】
2006203526.tif 000005
【００６４】
式（４）、式（５）が成り立てば、交点が三角形の中にあると判定する。交点が中にある三角形は、入力点の内外判定に用いる三角形であり、図１６のフローで、ガマットマッピングに用いる三角形として再構築するか否かを判定する対象となる。式（４）、式（５）が成り立たなければ、交点が三角形の外にあると判定し、ステップＳ８６に進む。
【００６５】
ステップＳ８６では、直線と三角形が交点を持たない場合に、出力色域表面データの三角形のＩＤ番号を更新して、ステップＳ８２に戻る。
【００６６】
本実施例において、入力点が色域内か否かを判定する方法を示す。図１９に入力点１８０１、交点１８０２、色域内点１８０３の関係を示す。図１９に示すように、入力点１８０１、交点１８０２、色域内点１８０３の位置関係は（ａ）、（ｂ）の２通り考えられる。入力点１８０１をＱ、交点１８０２をＰ、色域内点１８０３をＲとすると、両者の判別方法は、例えば、以下に示す式（６）におけるｖが０≦ｖ≦１であるか否かで判別可能である。
【００６７】
【数４】
2006203526.tif 000006
【００６８】
０≦ｖ≦１である場合は、入力点１８０１から色域内点１８０３までの距離が、交点１８０２から色域内点１８０３までの距離以下である。従って、入力点１８０１は出力色域内（図１９の（ｂ）の状態）と判定する。
【００６９】
一方、０≦ｖ≦１でない場合には、入力点１８０１から色域内点１８０３までの距離が、交点１８０２から色域内点１８０３までの距離よりも大きい。従って、入力点１８０１は出力色域外（図１９の（ａ）の状態）であると判定する。
【００７０】
以上が、本実施例における色域内外判定の方法である。
【００７１】
次に、本実施例におけるガマットマッピング処理について説明する。
【００７２】
ステップＳ６６におけるガマットマッピングは、図２０に示すように行う。例えば、入力画素を示す入力点１８０１が出力色域外である場合、入力画素をマッピング後データとして、設定する。
【００７３】
また、入力画素を示す入力点１８０１が出力色域外である場合、入力点１８０１と出力色域内の点１８０３とを結ぶ直線を定義し、該直線と交わる出力色域表面上の三角形との交点にマッピングする。すなわち、マッピング後データとして、該交点の座標を設定する。
【００７４】
以下に、図１７のフローを用いて、図２０に示すガマットマッピングを実現するための具体的な処理の流れを示す。
【００７５】
ステップＳ７１において、ガマットマッピング部２０８は、バッファメモリ１０４に保持されている入力画像の画素値（Ｒ，Ｇ，Ｂ値）を取得する。ステップＳ７２において、ガマットマッピング部２０８は、色域情報保持部１０３から、色域表面情報１００２を取得する。
【００７６】
ステップＳ７３において、ガマットマッピング部２０８は、ステップＳ７１で取得した入力画素（Ｒ，Ｇ，Ｂ値）をデバイス非依存のＣＩＥＬＡＢ値に変換する。本実施例では、入力画像を表現している色空間をｓＲＧＢ（ＩＥＣ６１９６６−２−１）として以後の処理を説明する。入力画素のＲＧＢ値をＲｉ，Ｇｉ，Ｂｉとすると、まず、以下の式（１）を用いて、ＣＩＥ三刺激値ＸＹＺに変換する。
【００７７】
【数５】
2006203526.tif 000007
【００７８】
その後、白色点をＤ６５としてＣＩＥＬＡＢに変換する。変換式を式（２）に示す。
【００７９】
【数６】
2006203526.tif 000008
【００８０】
以下、ＣＩＥＬＡＢに変換された入力画素を（Ｌｉ，ａｉ，ｂｉ）とする。本実施例では、入力画像がＩＥＣ６１９６６−２−１で規定されるｓＲＧＢ色空間で表現されている場合を例にあげて説明したため、式（１）及び式（２）に示す変換式を用いた。しかし、画像を表現する色空間がｓＲＧＢ色空間ではなく、ＡｄｏｂｅＲＧＢ色空間などの他の色空間であってもよい。他の色空間であった場合は、式（１）は、該色空間に対応するものとなる。また、ＣＩＥＬＡＢへ変換する際の白色点も該色空間に対応した白色点を用いる。
【００８１】
ステップＳ７４において、ガマットマッピング部２０８は、ガマットマッピングに用いる三角形を用いて、入力画素が出力色域内にあるか否かを判定する。ガマットマッピングに用いる三角形がＳ６５のステップで再構築されている場合、前述した三角形を抽出する方法を用いて、新たにガマットマッピングに用いる三角形を抽出し、入力画素が出力色域内にあるか否かを判定する。
【００８２】
入力画素が色域内にあると判定された場合には、マッピング後データに入力画素の値を代入し、ステップＳ７６へ進む。
【００８３】
入力画素が色域外と判定された場合には、ステップＳ７５に進む。ステップＳ７５では、マッピング後データは、入力点１８０１と色域内点１８０３を結ぶ直線とガマットマッピングに用いる三角形との交点になる。交点の算出法については、色域内外判定法の説明の際に述べたため、ここでは省略する。
【００８４】
ステップＳ７６において、ガマットマッピング部２０８は、マッピング後データ１９０１に対応する出力デバイス値、例えばＲＧＢ値を算出する。デバイス値の算出は、例えば、デバイス値とＣＩＥＬＡＢ値との関係を表すＬＵＴ、変換マトリクス等を用いて変換する。ＬＵＴの場合は、四面体補間等の既知の技術を用いて変換する。
【００８５】
以上が、本実施例におけるガマットマッピングの具体的な処理の流れである。
【００８６】
本実施例では、ガマットマッピングに用いる三角形を再構築するか否かの対象とした。ガマットマッピングに用いる三角形は、色域内外判定に用いられる。また、色域外の入力点を、ガマットマッピングする際、マッピング後の点は、ガマットマッピングに用いる三角形面上の点になる。図２に示したように、実際の色域は凹だが凸に近似された領域１０が、マッピングに用いる三角形である場合、マッピング先は２１になる。しかし、実際のマッピング先２１が示す色は、出力色域外であるため、出力デバイスで出力することは出来ない。
【００８７】
また、内外判定に用いられる点２４が、本来の色域表面と近似した色域表面との間に位置している場合、本来は色域外であるはずが、色域内と判定されてしまうことがある。
【００８８】
従って、本実施例のガマットマッピングに用いる三角形を再構築する方法を用いることにより、上記問題を防止し、より良好なガマットマッピングを行うことが出来る。
【００８９】
（第三の実施例）
図３は、本実施例における色処理装置３のハードウェア構成を示すブロック図である。その構成は、実施例１における色処理装置１の構成とほぼ同じである。従って、色処理装置１と同様の構成である１０１から１０７までの説明は割愛する。３０９は、色域を示す多面体を、モニタなどの表示装置に擬似三次元表示させる多面体表示部である。３１０は、ユーザーからの指示を取得する指示取得部である。
【００９０】
第一の実施例及び、第二の実施例では、面積が大きい三角形を近似精度が悪いと判定した。しかし、本実施例では、ユーザーの指示に従い、精度が悪いと判定された三角形を再構築する処理する。図２１を用いて、以下に処理フローを示す。
【００９１】
Ｓ５１では、色域保持部１０３から、色域表面情報１００２を取得する。
【００９２】
Ｓ５２では、取得された色域表面情報１００２に基づき、多面体表示部３０９は色域を示す多面体を擬似三次元表示させる。多面体は、図８のようにモニタなどの表示装置に表示される。
【００９３】
Ｓ５３では、ユーザーの指示を指示取得部３１０から取得し、再構築する三角形を選択する。この際、多面体は、擬似三次元表示されているため、ユーザーは、マウスなどのポインティングデバイスを用いて、簡単に再構築する三角形を選択することが出来る。また、ユーザーが選択しやすいように、各三角形の面積を多面体と共に表示させてもよい。
【００９４】
Ｓ５４において、色域表面再構築部１０６は、選択された三角形を複数の三角形に再構築する。三角形の再構築の方法は、実施例１で述べた方法と同様であるため、説明を省く。Ｓ５５では、ユーザーの指示に基づき、再構築する三角形が他にあるかどうかを判定する。再構築する三角形が他にある場合は、Ｓ５２に戻り、再び多面体を表示させる。再構築する三角形が他にない場合は、Ｓ５６へ進み、色域表面情報を出力し、処理を終了する。本実施例では、ユーザーの指示に基づき、再構築する対象となる三角形を指定した。従って、良好な近似精度が要求されない領域を構成する三角形については再構築を行わないなど、よりユーザーの要望を反映させた処理が可能になる。
【００９５】
（第四の実施例）
なお、第二の実施例においては、入力画像をｓＲＧＢ（ＩＥＣ６１９６６−２−１）で表現されていると仮定して処理の説明をしたが、本実施例における色処理装置への入力は特にｓＲＧＢに限ったものではなく、ＡｄｏｂｅＲＧＢのような他の色空間であってもよい。
【００９６】
また、上記第一〜第三の実施例では、色域情報を色域情報保持部においてあらかじめ保持しておいたが、これに限らず、例えば、入力部を介し、外部から読み込むようにしても良いし、色域情報保持部にあらかじめ複数の色域情報を保持させておいて、外部からの入力に対応した色域情報を選択してもよい。
【００９７】
また、第二の実施例におけるガマットマッピング部２０８では、出力色域内の色を完全に保存し、出力色域外の色は、その色を示す点と色域内のある点を結ぶ直線と、出力色域表面との交点の色に変換する手法を説明したが、例えば、出力色域外の色と等明度で出力色域表面上の色に変換するようにしても良い。また、色相を変えずにＣＩＥＬＡＢ空間内のユークリッド距離（色差ΔＥ）が最小になるような色に変換しても良い。また、出力色域内の色を完全に保存する必要もなく、出力色域内、色域外とも好ましい色にマッピングするようにしても良いことは言うまでもない。
【００９８】
また、第二の実施例においては、マッピングする際の空間にＣＩＥＬＡＢ空間を用いたが、これは、例えばＣＩＥＬＵＶ空間やＸＹＺ空間でも良いし、ＣＩＥＣＡＭ９７、ＣＩＥＣＡＭ９７ｓ、ＣＩＥＣＡＭ０２のようなカラーアピアランス空間を用いてもかまわない。
【００９９】
また、上記実施例では、三角形の形状情報として、三角形の面積を用いて、色域表面の精度を判定した。しかし、例えば、三角形の各辺の長さの和で判定しても良いし、さらに言えば、色域表面の近似精度を判定できる方法であればどのような方法であってもかまわない。
【０１００】
また、上記実施例における色域表面再構築部では、再構築範囲として、三角形を含む三角柱領域を定義したが、再構築範囲はこれに限定されるものではなく、例えば、三角形と原点とを結ぶ三角錐領域であっても良いし、三角形を囲む立方体などであっても良い。
【０１０１】
（第五の実施例）
上記実施例は、任意点集合から生成された色域表面形状を解析し、低精度領域を検出し、再構築することにより、高精度の色域表面形状を生成するものである。
【０１０２】
これに対して、本実施例は、色域マッピングで行うスケーリング処理を高精度のものとするために、色域情報の所定条件を満たす領域を分割するものである。
【０１０３】
図２３は第五の実施例としての色再現編集装置のシステム構成を示すブロック図である。図２３の構成において、４０１はＣＰＵ、４０２はメインメモリ、４０３はＳＣＳＩインタフェース、４０４はネットワークインタフェース、４０５はＨＤＤ、４０６はグラフィックアクセラレータ、４０７はカラーモニタ、４０８はＵＳＢコントローラ、４０９はカラープリンタ、４１０はキーボード／マウスコントローラ、４１１はキーボード、４１２はマウス、４１３はローカルエリアネットワーク、４１４はＰＣＩバス、４１５はスキャナである。
【０１０４】
上記構成における、ディジタル画像のプリンタ出力動作について述べる。まず、ＨＤＤ４０５に格納されている画像アプリケーションが、ユーザの指示を受けたＯＳプログラムに基づき、ＣＰＵ４０１にて起動される。続いてユーザの指示による画像アプリケーション内の処理にしたがって、ＨＤＤ４０５に格納されているディジタル画像データが、ＣＰＵ４０１からの指令に基づきＳＣＳＩＩ／Ｆ４０３を介してＰＣＩバス４１４経由によりメインメモリ４０２に転送される。あるいは、ＬＡＮに接続されているサーバに格納されている画像データあるいはインターネット上のディジタル画像データが、ＣＰＵ４０１からの指令によりネットワークＩ／Ｆ４０４を介してＰＣＩバス４１４経由によりメインメモリ４０２に転送される。以下、メインメモリ４０２に保持されているディジタル画像データは、ＲＧＢ各色信号が符号無し８ｂｉｔで表現される画像データであるものとして実施例を説明する。前記メインメモリ４０２に保持されているディジタル画像データは、ＣＰＵ４０１からの指令によりＰＣＩバス４１４経由によってグラフィックアクセラレータ４０６に転送され、グラフィックアクセラレータ４０６はディジタル画像データをＤ／Ａ変換した後ディスプレイケーブルを通じてカラーモニタ４０７に送信する。これにより、カラーモニタ４０７上に画像が表示される。ここで、ユーザがメインメモリ４０２に保持されているディジタル画像をプリンタ４０９から出力するよう画像アプリケーションに指令すると、画像アプリケーションはディジタル画像データをプリンタドライバに転送する。ＣＰＵ４０１は、プリンタドライバの後述の処理フローチャートに基づき、ディジタル画像データをＣＭＹＫディジタル画像データに変換し、ＵＳＢコントローラ４０８を介して前記ＣＭＹＫ画像データをプリンタ４０９へ送信する。以上一連の動作の結果として、プリンタ４０９よりＣＭＹＫ画像が印字される。
【０１０５】
以下では、上記構成におけるプリンタドライバ動作について、図２４のフローチャートを用いて説明する。
【０１０６】
まずステップＳ１０１にて、画像アプリケーションより転送されたＲＧＢ２４ｂｉｔ画像データ（各色信号が符号無し８ｂｉｔの画像データ）をメインメモリ４０２に格納する。
【０１０７】
ステップＳ１０２にて、後述の処理に基づいて色補正ＬＵＴを作成する。色補正ＬＵＴはＲＧＢ色空間での格子点の色座標データと、前記格子点が再現するＬ＊ａ＊ｂ＊色空間の座標値との対応を記した、図２５の様なデータ構造で構成される。データ構造の先頭には、Ｒ／Ｇ／Ｂ値のステップが記述され、この後に、各格子点に対応する色座標がＬ＊値、ａ＊値、ｂ＊値が、Ｒ、Ｇ、Ｂの順でネストされて記述される。なお、以下では上記データ構造が色の分布を示すことから色補正ＬＵＴを色分布データとも呼ぶ。
【０１０８】
ステップＳ１０３では、色補正ＬＵＴに基づき、ＲＧＢ２４ｂｉｔ画像データをＬ＊ａ＊ｂ＊固定小数点データに変換し、再びメインメモリ４０２に格納する。変換には四面体補間を用いる。
【０１０９】
ステップＳ１０４では、あらかじめ定められた色変換ＬＵＴに従って、先のＬ＊ａ＊ｂ＊固定小数点データをＣＭＹＫ３２ｂｉｔ画像データ（ＣＭＹＫの各色信号が符号無し８ｂｉｔの画像データ）に変換し、再びメインメモリ４０２に格納する。
【０１１０】
ステップＳ１０５では、メインメモリに格納されたＣＭＹＫ３２ｂｉｔ画像データを、ＵＳＢコントローラ４０８を介してプリンタ４０９へ送信する。
【０１１１】
以下では、ステップＳ１０２に於ける色補正ＬＵＴ作成処理について、図２６のフローチャートに従い説明する。
【０１１２】
ステップＳ２０１では、図示されない方法により定められた、写像元の色再現情報と写像先の色再現情報とを取得する。これらの色再現情報は、例えばｓＲＧＢの変換式であったり、あるいはあらかじめ測定されたデバイスの色再現特性であったりする。一例として、プリンタの色再現の模式図を図２７に示す。
【０１１３】
ステップＳ２０２では、取得した写像元の色再現情報と写像先の色再現情報とから、後述の処理フローに基づいて写像元と写像先の色域の等色相断面情報をＬ＊ａ＊ｂ＊色空間において生成する。ここで、等色相断面情報は、２度毎に１８０個の情報が生成される。
【０１１４】
ステップＳ２０３では、ステップ４０４での写像動作の為に国際照明委員会（ＣＩＥ）のＴＣ８−０３にて推奨されているＳＧＣＫ技法に基づき、後述する様に写像元の色域の等色相断面情報をＬ＊ａ＊ｂ＊色空間においてスケーリングする。
【０１１５】
ステップＳ２０４では、ＳＧＣＫ技法に基づき、後述する様にＬ＊ａ＊ｂ＊色空間において色域写像を行う。
【０１１６】
ステップＳ２０５では、ステップＳ２０４での写像結果を、写像先の色再現情報を用いてＬ＊ａ＊ｂ＊値からＲＧＢ値に変換し、色補正ＬＵＴを生成する。
【０１１７】
ＳＧＣＫ技法による写像処理（色域マッピング）の概略について、図３６のフローチャートに従い説明する。また、処理の１例を、図３７および図３８に示す。処理の詳細に関しては、国際照明委員会のＴＣ８−０３の文献に記述されている。
【０１１８】
ステップＳ５０１では、写像すべき色を取得する。図３７ａにおいて、実線が写像元の色再現を示し、網点が写像先の色再現を示す。
【０１１９】
ステップＳ５０２では、明度レンジを正規化するよう、明度値に対してスケーリングを施す。この処理による色再現の変化の一例を、図３７ｂに示す。ここで一点破線が写像元の色再現を表し、実線が処理後の色再現を表し、点線が写像先の色域を表す。
【０１２０】
ステップＳ５０３では、シグモイド関数を用いて明度値をスケーリングする。この処理による色再現の変化の一例を、図３７ｃに示す。ここで一点破線がステップＳ５０２の処理結果である色再現を表し、実線が処理後の色再現を表し、点線が写像先の色域を表す。
【０１２１】
ステップＳ５０４では、彩度値に基づいて明度値を補正する。この処理による色再現の変化の一例を、図３７ｄに示す。ここで一点破線がステップＳ５０３の処理結果である色再現を表し、実線が処理後の色再現を表し、点線が写像先の色域を表す。
【０１２２】
ステップＳ５０５では、色相値を保存しつつ、明度と彩度とを写像する。この写像について、図３８を用いて説明する。図に於いて、実線はステップＳ２０３でスケーリングされた写像元の色域、破線は写像先の色域を表す。色Ｍを写像する際、まず、スケーリングされた写像元の等色相断面情報と、写像先の等色相断面情報とから、色Ｍの色相に最も近い等色相断面情報をそれぞれ取得する。続いて、写像先の等色相断面情報にてＭと同じ色相で最大彩度となる明度値を算出し、その明度を有するＬ＊軸上の色をＦと定義する。その後、ＦとＭとを結んだ線とスケーリングされた写像元の等色相断面情報との交点Ｂｓｒｃを算出し、ＦとＭとを結んだ線と写像先の等色相断面情報との交点Ｂｄｓｔを算出する。続いて、ＢｄｓｔとＦとの間を１：９に内分する点Ｃを算出する。ここで、ＭとＦとの距離が、ＢｄｓｔとＣとの距離を下回っていれば、色Ｍに対して写像は行わない。他方、上回っている場合には、ＭがＢｓｒｃとＣとを内分する値で、ＢｄｓｔとＣとの間を内分する色を、Ｍの写像値とする。
【０１２３】
次に、ステップＳ２０２における写像元の色域情報と写像先の色域情報との作成処理について、図２８のフローチャートに従い説明する。
【０１２４】
ステップＳ３０１では、写像元の色域情報から色域内の色分布情報を生成し、生成した色分布情報からＣｏｎｖｅｘ  Ｈｕｌｌ技法を用いて写像元の初期色域情報を生成する。これらの一例として、図２９に色分布情報を、図３０にＣｏｎｖｅｘ  Ｈｕｌｌ技法により生成された初期色域情報を示す。なお、色域情報は複数のポリゴンの組み合わせで表現される。
【０１２５】
ステップＳ３０２では、色相平面と色域のポリゴンとの交点を求め、それらの点を結び等色相断面を生成する。図３１において、等色相面を一点鎖線で示し、等色相断面を点線で示す。
【０１２６】
ステップＳ３０３では、等色相断面を構成する線分の、線分選択情報をクリアする。ステップＳ３０４では、線分の選択情報に応じて、線分を一つ選択して情報を取得する。ステップＳ３０５では、選択した線分の長さが所定の値より長いかどうかを判定し、真であればステップＳ３０６へ移行し、偽であればステップＳ３０７へ移行する。
【０１２７】
ステップＳ３０６では、選択された線分が、所定の値より短い線分で構成されるように、選択された線分に内分点を一つ、或いは複数挿入し、分割する。この動作を、図３２に図示する。図に於いて、線分Ｌが選択された線分を示し、点Ｍ１、Ｍ２が挿入された内分点を表す。これによりＴ１〜Ｔ３の様に複数の線分に分割される。
【０１２８】
ステップＳ３０７では、選択された線分情報を、次に新たに異なる線分を選択するように更新する。ステップＳ３０８では、全ての線分を選択したかどうかを判定する。判定が真であれば処理を終了する。このとき、全ての線分の長さが所定の値より短くなっている。偽であれば、ステップＳ３０４へ移行する。
【０１２９】
上述の一連の動作による処理結果の一例を、図３３に示す。図３３ａに示す等色相断面に対して上述の処理を行った結果が図３３ｂである。図３３ｂでは、図３３ａに比べて点が増えている。
【０１３０】
ステップＳ２０３に於ける、ステップ４０２で生成された色域の等色相断面情報に対するＳＧＣＫ技法に基づく色域スケーリング処理について、図３４のフローチャートに従い説明する。
【０１３１】
ステップＳ４０１では、ステップ４０２で生成した色域の等色相断面情報を取得する。ステップＳ４０２では、色域の等色相断面情報を構成する線分の各頂点に対し、ステップＳ５０２と同様に明度レンジを正規化するよう、明度値に対してスケーリングを施す。ステップＳ４０３では、色域の等色相断面情報を構成する線分の各頂点に対し、ステップＳ５０３と同様に、シグモイド関数を用いて明度値をスケーリングする。ステップＳ４０４では、色域の等色相断面情報を構成する線分の各頂点に対し、ステップＳ５０４と同様に、彩度値に基づいて明度値を補正する。ステップＳ４０５では、ステップＳ４０２〜Ｓ４０４の処理を施した色域情報をメインメモリ４０２に記憶する。
【０１３２】
このように、本実施例では、頂点に対してステップＳ４０２〜Ｓ４０４の処理を行う。そして、各頂点の間については、スケーリング処理された頂点データを線形補間することにより算出する。
【０１３３】
本実施例では、図２８に示した色域情報の生成処理において、色域の等色相断面を構成する線分から、所定値より長い線分を分割している。つまり、ステップＳ４０２〜Ｓ４０４の処理を行う頂点データを増やしている。これにより、線形補間により生じる誤差が所定以下になるように制御することができ、高精度なスケーリング処理を実現することができる。
【０１３４】
上述の一連の動作による処理結果の一例を、図３５に示す。ここで、実線で示される領域が算出した等色相断面であり、点線で示した領域がスケーリング結果の領域である。図から明らかなように、本実施例を用いない場合の例である図３９と比較してスケーリング誤差が小さくなっている。
【０１３５】
（第六の実施例）
第五の実施例では、図２８に示されるようにＣｏｎｖｅｘ  Ｈｕｌｌ技法により生成された色域の色相断面を構成する線分の長さが長い場合は、線分を分割する頂点を追加する処理を行っている。これに対して、本実施例では、頂点の追加処理をポリゴンを構成する辺毎に行う。
【０１３６】
以下、第五の実施例と異なる点について説明する。
【０１３７】
本実施例における、ステップＳ２０２に写像元の色域情報と写像先の色域情報との作成処理について、図４０を用いて説明する。
【０１３８】
ステップＳ６０１では、写像元の色域情報から色域内の色分布情報を生成し、生成した色分布情報からＣｏｎｖｅｘ  Ｈｕｌｌ技法を用いて写像元の初期色域情報を生成する。これらの一例として、図２９に色分布情報を、図３０に初期色域情報を示す。なお、色域情報は複数のポリゴンの組み合わせで表現される。
【０１３９】
ステップＳ６０２では、ポリゴンを構成する辺の、辺選択情報をクリアする。ステップＳ６０３では、辺の選択情報に応じて、辺を一つ選択して情報を取得する。ステップＳ６０４では、選択した辺の長さが所定の値より長いかどうかを判定し、真であればステップＳ６０５へ移行し、偽であればステップＳ６０６へ移行する。ステップＳ６０５では、選択された辺を含む２つのポリゴンについて、それぞれ次のように分割する。まず、選択された辺の中点に点を一つ挿入する。その後、選択された辺の端点以外の点に対し線分を結ぶことで、新たに辺を生成する。最後に、新たに生成された辺を用いて、ポリゴンを、複数三角パッチに分割する。この動作を、図４１に図示する。図に於いて、実線が選択されたポリゴンを示し、点Ｍが挿入された中点を表す。点線は、新たに生成された辺を表し、これによりＴ１〜ＴＮの様に複数の三角パッチに分割される。尚、ポリゴンの頂点数Ｍと分割生成された三角パッチＮの間にはＮ＝Ｍ−２の関係がある。図４１ａは、ポリゴンが３角形の場合を示し、図４１ｂは３角形とは異なる多角形の場合を示す。このように、本実施例ではポリゴンの形に限定されない。
【０１４０】
ステップＳ６０６では、選択された辺情報を、次に新たに異なる辺を選択するように更新する。
【０１４１】
ステップＳ６０７では、総ての辺を選択したかどうかを判定する。判定が真であれば、処理を終了する。このとき、総ての辺の長さが所定の値より短くなっている。偽であれば、ステップ６０３へ移行する。
【０１４２】
上述の一連の動作による処理結果の一例を、図４２に示す。これは、図３０に示した色域情報に対して処理が行われた結果である。
【０１４３】
このように、本実施例では頂点を追加する処理をポリゴンを構成する辺毎に行う。よって、図４２に示されるように、ポリゴンを構成する頂点が適切に配置されることになる。
【０１４４】
そして、本実施例では、第五の実施例において図３４を用いて説明した、色域のスケーリング処理を、色域情報を構成するポリゴンの各頂点に対して行う。図４２に示した色域情報に対してスケーリング処理を行った結果から算出した等色相断面図を図４３に示す。ここで、網点で示される領域が本実施例によって算出された等色相断面であり、実線で示した領域が実際のデバイス色域をスケーリングした際の領域である。本実施例を用いない場合の例である図３９と比較してスケーリング誤差が小さくなっている。
【０１４５】
本実施例によれば、生成された色域情報を再度分割する手段を用意しておくことで、その後の色域写像で必要とされる色域のスケーリングにおいて、スケーリング精度を向上させることが可能となる。結果として、色域写像の精度向上を実現し、出力画像の色再現性向上を実現できる。
【０１４６】
なお、本実施例では、色域情報がポリゴンあるいは三角パッチで構成されるとして説明した。しかしながら、本実施例は、色域情報が非線形曲面の集合として表現される場合にも応用可能である。
【０１４７】
（第七の実施例）
第六の実施例では頂点を追加するか否かの判定をポリゴンを構成する辺毎に行っていた。本実施例では、ポリゴンの面積に基づきポリゴン毎に頂点の追加処理を行う。
【０１４８】
本実施例におけるステップＳ２０２の写像元の色域情報と写像先の色域情報との作成処理について、図４４のフローチャートに従い説明する。
【０１４９】
ステップＳ７０１では、写像元の色域情報から色域内の色分布情報を生成し、生成した色分布情報からＣｏｎｖｅｘ  Ｈｕｌｌ技法を用いて写像元の初期色域情報を生成する。ステップＳ７０２では、色域情報を構成するポリゴンに於ける、ポリゴン選択情報をクリアする。ステップＳ７０３では、ポリゴン選択情報に応じて、ポリゴンを一つ選択して情報を取得する。ステップＳ７０４では、選択したポリゴンの面積が所定の値より大きいかどうかを判定し、真であればステップＳ７０５へ移行し、偽であればステップＳ７０６へ移行する。ステップＳ７０５では、選択されたポリゴンについて、次のように分割する。まず、選択されたポリゴンの重心に点を一つ挿入する。その後、ポリゴンの頂点に対し線分を結ぶことで、ポリゴンを三角パッチに分割する。更に、生成した三角パッチを面積が等しくなるよう、挿入した点から線を引いて二つに分割する。
【０１５０】
ステップＳ７０６では、選択されたポリゴン情報を、次に新たに異なるポリゴンを選択するように更新する。ステップＳ７０７では、総てのポリゴンを選択したかどうかを判定する。判定が真であれば、処理を終了する。このとき、総てのポリゴンの大きさが所定の面積より小さくなっている。偽であれば、ステップＳ７０３へ移行する。この動作を、図４５ａ，ｂに図示する。図に於いて、実線が選択されたポリゴンを示し、点Ｍが挿入された重心点を表す。点線は、新たに生成された辺を表し、これによりＴ１〜ＴＮの様に複数の三角パッチに分割される。尚、ポリゴンの頂点数Ｍと分割生成された三角パッチＮの間にはＮ＝２×Ｍの関係がある。
【０１５１】
なお、第五〜第七の実施例では色域マッピングとしてＳＧＣＫ技法を用いていたが、明度または彩度のスケーリング処理を行う他の色域マッピング方法にも適用できる。
【０１５２】
（変形例）
なお、上記実施例では、色域表面を三角形の集合で近似した。しかし、三角形ではなく、四角形などの他の多角形で近似してもよい。
【０１５３】
なお、上記実施例は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用しても良い。
【０１５４】
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵまたはＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによって、本実施例に記載された方法を行ってもよい。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本実施例を構成することになる。
【０１５５】
プログラムコードを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることが出来る。
【０１５６】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した上記実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１５７】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって上記実施例の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０１５８】
【図１】色域表面の近似精度が悪化する例
【図２】色域表面の近似精度が悪いため、ガマットマッピングの精度が悪化する例
【図３】色処理装置１の構成を説明する図
【図４】色処理装置２の構成を説明する図
【図５】色処理装置３の構成を説明する図
【図６】色域表面データを再構築するフロー
【図７】任意点集合１００１と色域表面情報１００２のデータ構造を示す図
【図８】ＣｏｎｖｅｘＨｕｌｌを用いて生成された多面体を示す図
【図９】しきい値以上の三角形を検出するフロー
【図１０】三角形を再構築するフロー
【図１１】三角形と再構築範囲との関係を示す図
【図１２】色域表面と第二の色域表面との位置関係を示す図
【図１３】色域表面と第二の色域表面と再構築範囲との関係を示す図
【図１４】再構築された色域表面を示す図
【図１５】構築された新たな複数の三角形を示す図
【図１６】ガマットマッピングを行う際に、精度が悪い三角形を検出するフロー
【図１７】ガマットマッピングを行うフロー
【図１８】Ｐ点が三角形ＡＢＣ上にあるか否かを判定する方法を示す図
【図１９】入力点Ｑが色域内にあるか否かを判定する方法を示す図
【図２０】マッピング方法を示す図
【図２１】三角形を再構築するフロー
【図２２】入力点の内外判定を行うフロー
【図２３】色再現編集装置のシステム構成を示すブロック図
【図２４】色再現編集装置におけるプリンタドライバの処理を示すフローチャート
【図２５】色補正ＬＵＴのデータ構造を説明する図
【図２６】色補正ＬＵＴの作成処理を示すフローチャート
【図２７】色再現情報の一例を示す図
【図２８】色域の等色相断面情報の作成処理を示すフローチャート
【図２９】色再現情報から得られる色分布の一例を示す図
【図３０】Ｃｏｎｖｅｘ  Ｈｕｌｌ技法により生成された色域情報の一例を示す図
【図３１】色域情報を等色相平面でスライスする一例を示す図
【図３２】分割された線分情報の一例を示す図
【図３３】生成された等色相断面情報の一例を示す図
【図３４】ＳＧＣＫ技法を用いた色域情報のスケーリングを示すフローチャート
【図３５】スケーリングされた等色相断面情報の一例を示す図
【図３６】色域写像としてのＳＧＣＫ技法を示すフローチャート
【図３７】ＳＧＣＫ技法による色再現の変化を示す図
【図３８】ＳＧＣＫ技法での色域写像を説明する図
【図３９】従来技術によるスケーリング処理の結果
【図４０】色域情報の作成処理を示すフローチャート
【図４１】色域情報を構成するポリゴンの分割の一例を示す図
【図４２】生成された色域情報の一例を示す図
【図４３】色域情報の等色相断面の一例を示す図
【図４４】色域情報の作成処理を示すフローチャート
【図４５】色域情報を構成するポリゴンの分割の一例を示す図
【図１】
2006203526.tif 000009
【図２】
2006203526.tif 000010
【図３】
2006203526.tif 000011
【図４】
2006203526.tif 000012
【図５】
2006203526.tif 000013
【図６】
2006203526.tif 000014
【図７】
2006203526.tif 000015
【図８】
2006203526.tif 000016
【図９】
2006203526.tif 000017
【図１０】
2006203526.tif 000018
【図１１】
2006203526.tif 000019
【図１２】
2006203526.tif 000020
【図１３】
2006203526.tif 000021
【図１４】
2006203526.tif 000022
【図１５】
2006203526.tif 000023
【図１６】
2006203526.tif 000024
【図１７】
2006203526.tif 000025
【図１８】
2006203526.tif 000026
【図１９】
2006203526.tif 000027
【図２０】
2006203526.tif 000028
【図２１】
2006203526.tif 000029
【図２２】
2006203526.tif 000030
【図２３】
2006203526.tif 000031
【図２４】
2006203526.tif 000032
【図２５】
2006203526.tif 000033
【図２６】
2006203526.tif 000034
【図２７】
2006203526.tif 000035
【図２８】
2006203526.tif 000036
【図２９】
2006203526.tif 000037
【図３０】
2006203526.tif 000038
【図３１】
2006203526.tif 000039
【図３２】
2006203526.tif 000040
【図３３】
2006203526.tif 000041
【図３４】
2006203526.tif 000042
【図３５】
2006203526.tif 000043
【図３６】
2006203526.tif 000044
【図３７】
2006203526.tif 000045
【図３８】
2006203526.tif 000046
【図３９】
2006203526.tif 000047
【図４０】
2006203526.tif 000048
【図４１】
2006203526.tif 000049
【図４２】
2006203526.tif 000050
【図４３】
2006203526.tif 000051
【図４４】
2006203526.tif 000052
【図４５】
2006203526.tif 000053