(57)【要約】【課題】  色域の形状によっては色域境界で階調反転やねじれが発生し、トーンジャンプの原因となっていた。【解決手段】  出力系デバイス６２の色域外に存在する色成分を色域境界に圧縮するに際して、色域表面の三角形の色域外側に向かう法線ベクトルおよび三角形のグリッド法線ベクトルのベクトル方向に従って同色成分を色域境界にガマットマッピングすることによって、階調反転やねじれを防止し、トーンジャンプを抑制することが可能になる。【選択図】  図２
2005117096.tif 000002
【特許請求の範囲】
【請求項１】
色域外に存在する色成分を同色域の色域境界に圧縮する色域圧縮装置であって、
上記色域境界の表面を分割した各平面から上記色域の外側に向けた法線ベクトルを規定する法線ベクトル規定手段と、
上記法線ベクトル規定手段にて規定された法線ベクトルのベクトル方向に存在する色成分を検索する色成分検索手段と、
上記色成分検索手段にて検索された色成分を上記法線ベクトル規定手段にて規定された法線ベクトルのベクトル方向に従って上記色域境界に圧縮する色域圧縮手段とを具備することを特徴とする色域圧縮装置。
【請求項２】
上記法線ベクトル規定手段は、上記色域境界の表面を三角形平面にて分割するとともに、同三角形平面の重心位置から上記色域の外側に向けた法線ベクトルを規定することを特徴とする上記請求項１に記載の色域圧縮装置。
【請求項３】
上記法線ベクトル規定手段は、上記規定した法線ベクトルに基づいて、上記三角形平面の各グリッドから上記色域の外側に向けたグリッド法線ベクトルを規定するとともに、上記色成分検索手段は、同グリッド法線ベクトルのベクトル方向に存在する色成分を検索し、上記色域圧縮手段は、同検索された色成分を上記グリッド法線ベクトルのベクトル方向に従って上記色域境界に圧縮することを特徴とする上記請求項２に記載の色域圧縮装置。
【請求項４】
上記法線ベクトル規定手段は、上記規定した法線ベクトルと隣接する三角形平面における上記グリッド法線ベクトルとが形成する角度、および、隣接する三角形平面における上記グリッド法線ベクトルが形成する角度を検出するとともに、同検出した角度が９０°より大きい場合、同９０°より大きい角度を形成する何れか一方のグリッド法線ベクトルのベクトル方向を補正することによって、上記角度を９０°未満に修正することを特徴とする上記請求項３に記載の色域圧縮装置。
【請求項５】
上記色域圧縮手段は、上記色成分について複数の法線ベクトル若しくはグリッド法線ベクトルによって圧縮可能な場合、各法線ベクトル若しくは各グリッド法線ベクトルをベクトル方向に従って上記色域境界に圧縮した際の圧縮点の距離の逆数比に応じて混合することにより混合法線ベクトルを算出するとともに、同色成分を同混合法線ベクトルのベクトル方向に従って同色域境界に圧縮することを特徴とする上記請求項３または請求項４のいずれかに記載の色域圧縮装置。
【請求項６】
色域外に存在する色成分を同色域の色域境界に圧縮する色域圧縮方法であって、
上記色域境界の表面を分割した各平面から上記色域の外側に向けた法線ベクトルを規定する法線ベクトル規定工程と、
上記法線ベクトル規定工程にて規定された法線ベクトルのベクトル方向に存在する色成分を検索する色成分検索工程と、
上記色成分検索工程にて検索された色成分を上記法線ベクトル規定工程にて規定された法線ベクトルのベクトル方向に従って上記色域境界に圧縮する色域圧縮工程とを具備することを特徴とする色域圧縮方法。
【請求項７】
色域外に存在する色成分を同色域の色域境界に圧縮する機能をコンピュータにて実現可能にする色域圧縮プログラムであって、
上記色域境界の表面を分割した各平面から上記色域の外側に向けた法線ベクトルを規定する法線ベクトル規定機能と、
上記法線ベクトル規定機能にて規定された法線ベクトルのベクトル方向に存在する色成分を検索する色成分検索機能と、
上記色成分検索機能にて検索された色成分を上記法線ベクトル規定機能にて規定された法線ベクトルのベクトル方向に従って上記色域境界に圧縮する色域圧縮機能とを具備することを特徴とする色域圧縮プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、色域圧縮装置、色域圧縮方法および色域圧縮プログラムに関し、特に、色域外に存在する色成分を色域境界に圧縮する色域圧縮装置、色域圧縮方法および色域圧縮プログラムに関する。
【背景技術】
【０００２】
この種の色域圧縮装置として、色域外の色成分から色域境界に対するマッピング方向を予め決定し、そのマッピング方向に従って色成分を圧縮し、到達した色域境界の点を圧縮先（マッピング先）として決定していた。例えば、色域外の明度または彩度により同一色相において（次元を１つ落として）マッピング方向を決定し、当該マッピング方向に従って色成分を色域境界に圧縮していた（例えば、特許文献１を参照。）。
【特許文献１】特開２００１−４３３４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述した従来の色域圧縮装置において、色域の形状によっては色域境界で階調反転やねじれが発生し、トーンジャンプの原因となっていた。
【０００４】
本発明は、上記課題にかんがみてなされたもので、圧縮時に階調反転やねじれを防止することによって、トーンジャンプの発生を抑制することが可能な色域圧縮装置、色域圧縮方法および色域圧縮プログラムの提供を目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、色域外に存在する色成分を同色域の色域境界に圧縮する色域圧縮装置を提供するに際して、先ず法線ベクトル規定手段によって色域境界の表面を分割した各平面から色域の外側に向けた法線ベクトルを規定する。次に、色成分検索手段では法線ベクトル規定手段にて規定された法線ベクトルのベクトル方向に存在する色成分を検索する。そして、色域圧縮手段によって色成分検索手段にて検索された色成分を法線ベクトル規定手段にて規定された法線ベクトルのベクトル方向に従って色域境界に圧縮する。このように、色域から外側に向けた法線ベクトルを先ず規定し、この法線ベクトルのベクトル方向に従って色成分を色域境界に圧縮することによって、階調反転やねじれを防止することが可能になる。また、三次元立体にて構成される色域を二次元に落とすことなく、圧縮先を決定することができるため、高精度の圧縮を実現することが可能になる。
【０００６】
法線ベクトル規定手段にて法線を規定する各平面の形状は特に限定されるものではないが、かかる場合に容易に法線ベクトルを求められる平面形状として、法線ベクトル規定手段は、色域境界の表面を三角形平面にて分割する。そして、この三角形平面の重心位置から色域の外側に向けた法線ベクトルを規定する。
色成分を法線ベクトルに従って色域境界に圧縮する場合、参照する法線ベクトルが多数存在すると、ベクトル方向に従って色成分を色域境界に圧縮する際に、より適したベクトル方向を選択することができる。そこで、法線ベクトル規定手段は、三角形平面によって規定した法線ベクトルに基づいて、同三角形平面の各グリッドから色域の外側に向けたグリッド法線ベクトルを規定する。そして、色成分検索手段は、この規定されたグリッド法線ベクトルのベクトル方向に存在する色成分を検索し、色域圧縮手段は、同検索された色成分をグリッド法線ベクトルのベクトル方向に従って色域境界に圧縮する。これにより、色成分の位置が法線ベクトル付近であれば、法線ベクトルのベクトル方向に従って圧縮することが可能になるし、グリッド法線ベクトル付近であれば、グリッド法線ベクトルのベクトル方向に従って圧縮することが可能になる。
【０００７】
このとき、任意の三角形平面の法線ベクトルと隣接する三角形平面のグリッド法線ベクトルが形成する角度が９０°より大きい場合、および、任意の三角形平面におけるグリッド法線ベクトルと、この三角形平面に隣接する三角形平面のグリッド法線ベクトルとが形成する角度が９０°より大きい場合、不具合が生じる可能性がある。そこで、法線ベクトル規定手段は、規定した法線ベクトルおよび隣接する三角形平面におけるグリッド法線ベクトルとが形成する角度、および、隣接する三角形平面におけるグリッド法線ベクトルが形成する角度を検出する。そして、この検出した角度が９０°より大きい場合、同９０°より大きい角度を形成する何れか一方のグリッド法線ベクトルのベクトル方向を補正し、９０°未満の角度が形成されるように修正する。これによって不具合を防止することが可能になる。
また、圧縮対象の色成分について、複数の圧縮方向（ベクトル方向）が存在する場合、何れか一つの圧縮方向に基づいて圧縮させても良いし、これらのベクトル方向を混合させて圧縮方向を決定しても良い。そこで、色域圧縮手段は、色成分について複数の法線ベクトル若しくはグリッド法線ベクトルによって圧縮可能な場合、各法線ベクトル若しくは各グリッド法線ベクトル方向に従って色域境界に圧縮した際の圧縮点の距離の逆数比に応じて混合した混合法線ベクトルを算出する。そして、色成分をこの算出した混合法線ベクトルのベクトル方向に従って色域境界に圧縮する。
【０００８】
ここで、上述してきた色域圧縮装置は、その方法としても成立することは言うまでもないし、当該色域圧縮装置と同等の機能をコンピュータにて実現可能にするプログラムとしても発明が成立することは言うまでもない。このとき、また、このプログラムの記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、光磁気ディスク、ＩＣカード、ＲＯＭカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置などコンピュータが読み取り可能な種々の媒体を利用できる。
【発明を実施するための最良の形態】
【０００９】
ここでは、下記の順序に従って本発明の実施形態について説明する。
（１）色域圧縮装置の構成：
（２）色域圧縮の処理動作について：
（３）まとめ：
【００１０】
（１）色域圧縮装置の構成：
図１は、本発明にかかる色域圧縮装置を適用したコンピュータの構成を示したブロック構成図である。
同図において、コンピュータ１０は、ＣＰＵ１１にバス１２を介してＲＯＭ１３と、ＲＡＭ１４と、ディスクドライバ１５と、プリンタドライバ１６と、シリアルＩ／Ｏ１７と、スキャナドライバ１８と、ＣＲＴドライバ１９とが接続されている。ＣＰＵ１１はバス１２を介してこれらと相互に通信可能となっている。ＣＰＵ１１はＲＯＭ１２や、ディスクドライバ１５を介して接続されるハードディスク１５ａに格納されている制御プログラムやオペレーティングシステムプログラムやアプリケーションプログラムを適宜ＲＡＭ１４に読み出すとともに、同ＲＡＭ１４をワークエリアとしつつ各プログラムを実行することによって、同コンピュータ１０を色域圧縮装置として機能させることが可能となっている。
【００１１】
ディスクドライバ１５にはその他にフレキシブルディスクドライブ１５ｂや、ＣＤ−ＲＯＭドライブ１５ｃが接続され、これらを介してフレキシブルディスク１５ｂ１およびＣＤ−ＲＯＭ１５ｃ１に格納されたプログラムを読み出して、ハードディスク１５ａにインストールする。また、プリンタドライバ１６にはカラープリンタ１６ａが接続されており、スキャナドライバ１８を介して接続されたスキャナ１８ａでのスキャン対象となる原稿を読み込んで生成される画像データを印刷可能になっている。むろん、オペレーティングシステムプログラムやアプリケーションプログラムによってＣＲＴドライバ１９を介して接続されているＣＲＴ１９ａに画像を表示させつつ、同画像を形成する画像データに基づいた印刷を行うことも可能になっている。ここで、カラープリンタ１６ａはＣＭＹＫインク（Ｃ：シアン、Ｍ：マゼンタ、Ｙ：イエロー、Ｋ：黒）を紙等の印刷媒体に吐出させて印刷画像を形成するインクジェットプリンタを採用しても良いし、レーザプリンタを採用しても良い。むろん、インク色はＣＭＹＫの４色に限定されるものではなく、ｌｍ（ライトマゼンタ）やｌｃ（ライトシアン）を含む構成であっても良い。
【００１２】
また、スキャナ１８ａは原稿台に載置した原稿をスキャンしつつ読み込むフラットベッドタイプであっても良いし、トレイに装着された原稿を引き込みつつ読み込むコンパクトタイプであっても良い。このように、フレキシブルディスク１５ｂ１やＣＤ−ＲＯＭ１５ｃ１に本発明にかかる色域圧縮プログラムを記憶しておき、コンピュータ１０にて読み出しつつ実行させて、当該コンピュータ１０を本発明にかかる色域圧縮装置として機能させるようにしても良い。また、シリアルＩ／Ｏ１７にハブ１７ａ等のネットワーク機器を接続し、インターネットやＬＡＮを介して本発明にかかる色域圧縮プログラムをコンピュータ１０にダウンロードして色域圧縮装置として機能させるようにしても良い。
【００１３】
図２は、上述したコンピュータ１０にて色域圧縮装置として機能する構成を示した機能ブロック構成図である。同図において、色域圧縮装置５０は、圧縮実行判定部５１と、色成分保持部５２と、法線ベクトル演算部５３と、圧縮部５４とから構成され、例えば、スキャナ１８ａの入力系デバイス６１から入力されるカラー画像信号の色成分は、制御部６０を介して色域圧縮装置５０に供給され、そのカラー画像信号の色成分のうち、例えばカラープリンタ１６ａやＣＲＴ１９ａの出力系デバイス６２の色域外の色成分を当該出力系デバイス６２における色域内の色成分に変換（圧縮）し、圧縮後の色成分を変換色成分信号保持部７０に出力する。
【００１４】
ここで、圧縮実行判定部５１は、制御部６０より供給されたカラー画像信号の色成分に対して色域圧縮処理を実行するか否かを判定し、色域圧縮処理を実行する場合にはカラー画像信号の色成分を圧縮部５４に出力し、色域圧縮処理を実行しない場合にはカラー画像信号の色成分を色成分保持部５２に出力する。すなわち、当該圧縮実行判定部５１では、制御部６０から供給されたカラー画像信号の色成分が出力系デバイス６１の色域内に位置するか否かに基づいて、色域内に位置しない場合には色域圧縮処理を実行すると判定し、色域内に位置する場合には色域圧縮処理を実行しないと判定するように構成されている。一方、法線ベクトル演算部５３は、後述する手法に基づいて、制御部６０を介して入力した出力系デバイス６２の測色データから出力系デバイス６２の色域表面を形成する表面三角形の法線ベクトルを算出する。
【００１５】
また、法線ベクトル演算部５３は、この色域表面の各表面三角形の頂点（グリッド）におけるグリッド法線ベクトルを算出し、圧縮部５４に通知する。圧縮部５４は、この通知された法線ベクトルおよびグリッド法線ベクトルのベクトル方向に従って圧縮対象の色成分を色域境界に圧縮する。ここで、変換色成分保持部７０は、色域圧縮装置５０から供給されたカラー画像信号の色成分を一括して、入力系デバイス６１、出力系デバイス６２間を変換する色変換テーブルを保持する変換色成分保持部である。画像処理部８０は、変換色成分保持部７０から供給されたカラー画像信号の色成分を基に、所定の画像処理、例えばエッジ処理などを施し、制御部６０に出力する画像処理部である。出力系デバイス６２は、制御部６０から供給されたカラー画像信号の色成分を可視化する、例えばカラープリンタ１６ａなどの出力系情報機器である。制御部６０は、入力系デバイス６１および出力系デバイス６２との間でカラー画像信号の授受を実行する制御部である。
【００１６】
（２）色域圧縮の処理動作について：
次に、本色域圧縮装置５０にて実行される色域圧縮の処理動作について概略を説明する。なお、本実施形態では色域圧縮を行う色空間はＣＩＥ／Ｌ＊ａ＊ｂ＊であるとして説明する。ただし、圧縮する色空間は、ＣＩＥ／Ｌ＊ａ＊ｂ＊に限られるものではなく、ＣＩＥ／Ｌｕｖや、ＣＩＥ／ＣＡＭ９７ｓ等任意の色空間でよい。まず、入力系デバイス６１によるカラー画像信号の色成分が制御部６０に供給されると、当該制御部６０から同カラー画像信号が色域圧縮装置５０の圧縮実行判定部５１に供給される。カラー画像信号の色成分は、明度、彩度、色相の情報を含み、例えばＣＩＥ／Ｌ＊ａ＊ｂ＊の色空間でベクトル演算可能な信号である。圧縮実行判定部５１は、制御部６０より供給されたカラー画像信号の色成分と予め記憶された各色相ごとの出力系デバイス６２の色域とを比較して、色域圧縮処理を実行するか否かを判定し、カラー画像信号の色成分が出力系デバイス６２の色域内に位置しない場合には、色域圧縮処理を実行するとして当該カラー画像信号の色成分を圧縮部５４に出力する。すると、当該圧縮部５４は、法線ベクトル演算部５３にて演算された法線ベクトルおよびグリッド法線ベクトルを取得し、圧縮対象の色成分の位置に対応したベクトル方向に従ってこの色成分を出力系デバイス６２の色域境界の色成分に圧縮する。以下、この圧縮について詳細を説明する。
【００１７】
先ず最初にこの色成分を圧縮する際の色域圧縮アルゴリズムについて説明する。本実施形態における色域圧縮アルゴリズムは、出力系デバイス６２の色域表面の法線を決定し、その法線方向（の逆方向）に色成分の圧縮を施す。色変換テーブル作成工程にて定義される色域形状は、立方格子状に測色されたものに代表されるような離散的な測色データから定義されるため、その表面の法線も離散点での法線しか求めることができない。本実施形態では、特に断らない限り法線ベクトルは、単位ベクトルであるとする。また、色変換テーブル作成工程では、全工程を通して、色域内部は、白−黒を優先した４面体補間を行うように最小単位を４面体として分割し、色域表面はそれに準じた、最小単位を三角形として表せる表面形状をなす。本実施形態における色域圧縮でも、その他の工程との整合性から、そうした色域形状を定義して色域圧縮を行う。ここで、以下の本実施形態では、色域のことをガマットと称し、色域圧縮のことをガマットマッピングと称する。
【００１８】
このガマットマッピングアルゴリズムでは、先ずガマット表面三角形の法線を求める。かかる場合、入力した出力系デバイス６２用の測色データから、ガマット表面形状を形成する表面三角形の法線ベクトルを求める。三角形は平面であるから、その法線は容易に求められることになる。また、この求めた法線ベクトルは、表面三角形の重心における法線ベクトルであると定義する。このとき、当該表面三角形の法線ベクトルＮｔおよび重心位置ベクトルＰｃｔは次式により求めることができる。
【数１】
2005117096.tif 000003
【数２】
2005117096.tif 000004
ここで、ｔは任意の表面三角形を表し、Ｐｔ０〜Ｐｔ２はその表面三角形をなす各頂点（グリッド）の位置ベクトルを表している。また、×はベクトルの外積を表している。
【００１９】
次に、ガマット表面グリッドの法線を求める。任意のガマット表面のグリッドは、表面三角形に囲まれて存在する。それらの三角形の頂点の内の１つは、当該グリッドと一致する。そこで、ガマット表面のグリッドにおける法線ベクトルは、当該グリッドを囲んでいる三角形（以下、隣接三角形と呼ぶ）の法線ベクトルを用いて算出する。あるグリッドに対する隣接三角形は、一般には６つ存在し、ガマット全体のＲＧＢＣＭＹの頂点では、４つ存在することになる。ここで、表面グリッドの法線ベクトルの求め方と、その注意点を、簡単のため２次元にて模式化した図３〜図５を使用して説明する。図においては、任意のグリッドｇ２におけるグリッド法線ベクトルＮｇ２を求める場合を考える。グリッドｇ２の位置ベクトルはＰｇ２とする。グリッドｇ２は表面三角形ｔ１，ｔ２と隣接しているとし、それらの三角形頂点の位置ベクトルＰｔ１１，Ｐｔ２０は、位置ベクトルＰｇ２と一致しているとする。また、本実施形態においては、隣接三角形における法線ベクトルを用いて、グリッドの法線ベクトルを求める。従って、隣接三角形の法線ベクトルＮｔ１，Ｎｔ２を用いてグリッド法線ベクトルＮｇ２を求めることになる。
【００２０】
図３のように、法線ベクトルＮｔ１，Ｎｔ２がほぼ同じ方向を向いている場合、求めるグリッド法線ベクトルＮｇ２は、位置ベクトルＰｇ２と位置ベクトルＰｃｔ１，位置ベクトルＰｇ２と位置ベクトルＰｃｔ２との距離比等から、重み付けることによって、法線ベクトルＮｔ１，Ｎｔ２を混合するような手法で求めても何ら問題がない。ここで、隣接三角形のなす角が鋭角である場合にも同様の方法で、グリッド法線ベクトルＮｇ２を求めた場合、図４のようにグリッド法線ベクトルＮｇ２が求められたと仮定して検証してみる。仮に、位置ベクトルＰｃｔ１と位置ベクトルＰｇ２の間に存在する位置ベクトルＰｘにおける法線ベクトルＮｘを、法線ベクトルＮｔ１，Ｎｇ２から、位置ベクトルＰｘと位置ベクトルＰｃｔ１，Ｐｘと位置ベクトルＰｇ２との距離比から混合して求めるとする。法線ベクトルＮｔ１とグリッド法線ベクトルＮｇ２のなす角が、同図のように９０°を超えている場合、いずれかの位置ベクトルＰｘで、混合して算出した法線ベクトルＮｘがゼロベクトルになるような状況が生じる可能性がある。言い換えると、位置ベクトルＰｃｔ１での接平面は、三角形ｔ１がなす平面であり、その接平面の法線ベクトルＮｔ１の正の側にグリッド法線ベクトルＮｇ２も向いていない場合、不具合が生じる可能性がある。同じことは、逆側の隣接三角形ｔ２でもいえるため、図５のように、斜線で示す領域方向に、グリッドｇ２における法線ベクトルＮｇ２が向いていなければならないことになる。
【００２１】
詳細は後述するが、実際には、位置ベクトルＰｇ１と位置ベクトルＰｇ２との間の法線ベクトルは、グリッド法線ベクトルＮｇ１とグリッド法線ベクトルＮｇ２を混合して求めるため、同様の制約条件が、グリッド法線ベクトルＮｇ１，Ｎｇ２，Ｎｇ３の間でも成り立たなければならない。しかし、最初に各表面グリッドの法線ベクトルを求める場合、全ての隣接する表面グリッドの法線ベクトルが求められているわけではないので、仮に、隣接三角形の法線ベクトルを使用して、各表面グリッドの法線ベクトルを求めることになる。ただし、図からも分かるように、ある程度ガマットを構成するグリッド数が多いならば、法線ベクトルＮｔ１とグリッド法線ベクトルＮｇ１、法線ベクトルＮｔ２とグリッド法線ベクトルＮｇ３は、ほぼ同等の方向を向いていると期待できるため、ある程度は、グリッド法線ベクトルＮｇ１，Ｎｇ２，Ｎｇ３でも同様の制約条件を満たしていると考えられる。ここで、グリッド法線ベクトルＮｇ２を求める方法を図６を使用して具体的に説明する。位置ベクトルＰｇ２における法線ベクトルは、位置ベクトルＰｇ２を始点として、ある位置ベクトル、ここではＱｇ２を終点とするベクトルである。また、位置ベクトルＱｇ２は隣接三角形ｔ１のなす平面ＰＬＮ１上の点Ｐｘ１を始点とし、法線ベクトルＮｔ１方向に、Ｎｔ１をαｔ１倍した点を終点としたベクトルにより表される。
【００２２】
言い換えると、位置ベクトルＱｇ２から平面ＰＬＮ１へ下ろした垂線の交点が始点Ｐｘ１である。三角形ｔ２においても、同様に、始点Ｐｘ２、αｔ２を定義できる。ただし、法線ベクトルは単位ベクトルとしたため、位置ベクトルＰｇ２，Ｑｇ２間の距離は１でなければならない。また、先に示した条件により、αｔ１、αｔ２は正値でなければならない。次に、これらの条件を数式化する。まず、平面ＰＬＮ１，ＰＬＮ２は定数ｄｔ１、ｄｔ２を用いて下式のように表すことができる。
【数３】
2005117096.tif 000005
ここで、「ｘ」は空間変数（ここでは、ＣＩＥ／Ｌ＊ａ＊ｂ＊）である。また、「・」はベクトルの内積を表す。平面ＰＬＮ１，ＰＬＮ２はいずれも位置ベクトルＰｇ２を通るので、定数ｄｔ１、ｄｔ２は以下のように表せる。
【数４】
2005117096.tif 000006
始点Ｐｘ１、Ｐｘ２は、
【数５】
2005117096.tif 000007
から、以下のように求まる。
【数６】
2005117096.tif 000008
【００２３】
また、始点Ｐｘ１、Ｐｘ２は、それぞれ平面ＰＬＮ１，ＰＬＮ２上の点なので、式（３）に代入し、以下の式を満たさなければならない。
【数７】
2005117096.tif 000009
さらに、式（４）（６）（７）より、以下条件式が必要である。（αは、先の説明でもあるように正値。）
【数８】
2005117096.tif 000010
また、本実施形態においては法線ベクトルを単位ベクトルと定義したので、次式も満たさなければならない。
【数９】
2005117096.tif 000011
【００２４】
以上より、式（８）（９）で表される条件式を満たす位置ベクトルＱｇ２を求めることによって、グリッド法線ベクトルＮｇ２を以下のように求めることができる。
【数１０】
2005117096.tif 000012
また、式（８）（９）を満たす位置ベクトルＱｇ２の中で、最適なものを求めなければならない。条件を満たすからといっても、αｔ２≒０であるような場合、位置ベクトルＱｇ２は、平面ＰＬＮ１にほとんど張り付いた状態であるので、できる限り平面ＰＬＮ１，ＰＬＮ２との距離が同等であり、かつ、その距離は大きい方が良いと予想できる。言い換えると、αｔ１、αｔ２は単位ベクトルの倍率であるから、αｔ１、αｔ２そのものが、位置ベクトルＱｇ２と平面ＰＬＮ１，ＰＬＮ２との距離そのものになるので、αｔ１とαｔ２ができるだけ等しく、かつ両者ができるだけ大きければよい。これを数値的条件に当てはめると、αｔ１とαｔ２の標準偏差が小さく、平均が大きければ（平均の逆数が小さければ）良いことになる。本実施形態においては、この２つの条件を目的関数Ｅとして、下式のように定義する。ここで、ＳＴＤＥＶ（）はパラメータで与えた値の標準偏差を示し、ＡＶＥ（）はパラメータで与えた値の平均を示している。
【数１１】
2005117096.tif 000013
【００２５】
以上より、条件式（８）（９）を満たし、目的関数Ｅが最小をとる場合の位置ベクトルＱｇ２を求めることによって、最適な位置ベクトルＱｇ２を求めることが可能となる。目的関数Ｅの最適化には、任意の最適化アルゴリズムを利用できるが、本実施形態におけるガマットマッピングの実装では、準ニュートン法を用いている。一方、図６に示すように隣接三角形が２つの場合でなく、実際の三次元の場合のように、隣接する三角形が６ないし４存在する場合について、上述してきた条件式および、目的関数を書き換えると以下のようになる。
【数１２】
2005117096.tif 000014
【数１３】
2005117096.tif 000015
【数１４】
2005117096.tif 000016
【数１５】
2005117096.tif 000017
【００２６】
ここでは、グリッドｇｘの法線ベクトルＮｇｘを求める場合を示し、位置ベクトルＰｇｘの隣接三角形ｔ１〜ｔｍ（ｍ＝１〜Ｍ、Ｍ＝６，４：隣接三角形数）が満たさなければならない条件を示している。以上が理論的なグリッド法線ベクトルＮｇｘの求め方であるが、最適化法には（程度によるが）誤差がつきものであるので、実装上は、以下の２点を確認する。
１つ目は、求めたグリッド法線ベクトルＮｇｘが単位ベクトルであるかどうかで、もし、単位ベクトルでない場合には、単位ベクトルに変換する。
２つ目は、グリッド法線ベクトルＮｇｘと法線ベクトルＮｔｍがある平面に対して同一方向を向いているか（両者のなす角が９０°未満であるか）を調査する。単位ベクトル同士の内積は、両ベクトルのなす角θのｃｏｓθであるので、グリッド法線ベクトルＮｇｘと法線ベクトルＮｔｍの内積が正であるかのチェックをする。もし、この内積が正でない場合、条件を満たす最適解が見つからなかったことを示しているが、先にも少しふれたように、実際には、法線ベクトルＮｔｍとグリッド法線ベクトルＮｇｘを混合して表面全体（連続したグリッドの間全て）の法線ベクトルを求めるわけではないので、ここでは、チェックのみにとどめておく。
【００２７】
上述してきたように、ガマット表面全体のグリッド法線ベクトルを求めた後、それらのグリッド法線ベクトルが、以後のマッピング位置を求めるに当たって、使用可能な条件を満たしているかのチェックを行う。ここでも、説明を簡略化するために２次元に模式化した図７および図８にて説明する。図７および図８に示すように、各グリッドのグリッド法線ベクトルＮｇ１〜Ｎｇ３が求められているとする。例えば、位置ベクトルＰｇ１と位置ベクトルＰｇ２の間をグリッド法線ベクトルＮｇ１とグリッド法線ベクトルＮｇ２を混合して求めるとすると、前述の、グリッド法線ベクトルと、隣接三角形の法線ベクトルとの例の場合と同様に、グリッド法線ベクトルＮｇ１とグリッド法線ベクトルＮｇ２のなす角が９０°を超えていると、不具合が生じる可能性がある。
【００２８】
そこで、混合する対象となる隣接グリッドのグリッド法線ベクトルとのなす角が９０°未満かどうかを調べる。チェック方法は、グリッド法線ベクトルと隣接三角形の法線ベクトルのなす角のチェック方法と同様に、両グリッド法線ベクトルの内積が正であるかどうかでチェックする。図７および図８では、調査対象グリッドをグリッドｇ２とし、グリッドｇ２と隣接するグリッドｇ１，ｇ３での法線ベクトルの向きの関係を調べる。例えば、図７でグリッド法線ベクトルＮｇ２の始点をＰｇ１に平行移動してみると、グリッド法線ベクトルＮｇ１と垂直に交わる平面ＰＬＮ１に対して、グリッド法線ベクトルＮｇ１とグリッド法線ベクトルＮｇ２は、逆方向を向いているので、両者のなす角は９０°を越えている。このような場合、グリッド法線ベクトルＮｇ１とグリッド法線ベクトルＮｇ２の関係においていずれかの法線ベクトルの修正が必要となる。いずれの修正でもかまわないが、実装上では、現在の調査対象グリッドはグリッドｇ２であるので、グリッド法線ベクトルＮｇ２を修正するようにする。
【００２９】
次に、グリッド法線ベクトルＮｇ２の修正方法を説明する。図８に示すように、法線ベクトルＮｇ１，Ｎｇ３と垂直に交わる平面ＰＬＮ１，ＰＬＮ３を、位置ベクトルＰｇ２を通るように平行移動する。すると、図３〜図６の法線ベクトルＮｔ１，Ｎｔ２をグリッド法線ベクトルＮｇ１、Ｎｇ３と置き換えれば、隣接三角形から表面グリッドの法線ベクトルを求める場合と全く同様の条件式が成り立たなくてはならないことが分かる。つまり、図８の斜線部方向に、グリッド法線ベクトルＮｇ２が向いていないといけないことになる。前述の方法と同様であるので、条件式および、目的関数だけを列挙すると、以下のようになる。
【数１６】
2005117096.tif 000018
【数１７】
2005117096.tif 000019
【数１８】
2005117096.tif 000020
【数１９】
2005117096.tif 000021
【００３０】
修正するグリッド法線ベクトルＮ’ｇｘは、隣接するグリッド法線ベクトルＮｇｍと倍率αｇｍから、目的関数Ｅを最小化して求めた点Ｑ’ｇｘによって求められる。ｇｍは隣接グリッドで、ｍ＝１〜Ｍ（Ｍ＝６，４）である。ある表面グリッドに隣接する表面グリッドは、隣接三角形が６つまたは、４つであるから、それと同数の隣接グリッドが存在することは言うまでもない。以上のように、表面グリッドの法線ベクトルに問題があるかチェックし、問題がある場合は、当該法線ベクトルを修正する。しかし、複数のグリッド法線ベクトルを修正したような場合、それらの効果から、別のグリッドの制約条件を満たさなくなる可能性があるため、実装上では、少なくとも１つのグリッド法線ベクトルを修正したら、必要に応じて再帰的にチェックしながら、修正を繰り返す。
【００３１】
以上より、ガマット表面のグリッドにおける法線ベクトルが求められたので、以下の方法を用いてガマットマッピングする位置を求める。任意の表面三角形は、互いに隣接する３つの表面グリッドからなることは言うまでもないが、本実施形態においては、図９に示すように、３グリッドｇ０〜ｇ２からなる表面三角形から、マッピング位置Ｐａを求める場合を考える。ただし、マッピング元（ターゲット）をＰｂとする。マッピング位置Ｐａは、３点のグリッドＰｇ０〜Ｐｇ２から線形補間すれば下式で表せる。
【数２０】
2005117096.tif 000022
ただし、ｒ１は、図９に示すように、位置ベクトルＰｇ０，Ｐｇ１間の距離を１とした場合の、位置ベクトルＰｇ０、Ｐｇ２からなる直線を、マッピング位置Ｐａを通るように平行移動して、位置ベクトルＰｇ０、Ｐｇ１からなる直線との交点と位置ベクトルＰｇ０との距離の比率であり、ｒ２は同様に、位置ベクトルＰｇ０、Ｐｇ２間の距離を１とした場合の、位置ベクトルＰｇ０、Ｐｇ１からなる直線を、マッピング位置Ｐａを通るように平行移動して、位置ベクトルＰｇ０，Ｐｇ２からなる直線との交点と位置ベクトルＰｇ０との距離の比率である。
【００３２】
また、マッピング位置Ｐａでの法線ベクトルＮａを、各グリッドのグリッド法線ベクトルＮｇ０〜Ｎｇ２を同様の比率ｒ１、ｒ２で混合すると次式のようになる。ただし、同式で求める法線ベクトルＮａは単位ベクトルであるとは限らない。
【数２１】
2005117096.tif 000023
ここで、ターゲット位置ベクトルＰｂは、法線ベクトルの逆方向からマッピングされるとするので、係数βを用いて、以下のように表せる。ただし、次式で表せるターゲット位置ベクトルＰｂは法線方向から逆に求めた仮のターゲット位置ベクトルであるとして、ターゲットＰ’ｂとして示す。
【数２２】
2005117096.tif 000024
式（２０）（２１）を式（２２）に代入すると、次式のようになる。
【数２３】
2005117096.tif 000025
仮に、マッピング位置Ｐａがグリッドｇ０〜ｇ２からなる三角形の内部である場合、
【数２４】
2005117096.tif 000026
となるから、式（２４）を条件式として、以下のように目的関数Ｅを定義して最小化した場合、Ｅ＝０であるならば、ターゲット位置ベクトルＰｂを法線方向にマッピングした場合、位置ベクトルＰｇ０〜Ｐｇ２で表す三角形の内側にマッピングされることを示しているといえる。ここで、目的関数Ｅは、
【数２５】
2005117096.tif 000027
である。ただし、Ｅ＝０であるマッピング位置Ｐａが見つかった場合でも、βが負値である場合は、ガマット内からマッピングされたことを表すので、βの正負も確認する必要がある。目的関数Ｅを最小化する最適化法は任意のものを使用できるが、実装上は準ニュートン法を利用している。このように全ての表面三角形でマッピング先を調査し、条件に合致するマッピング先が見つかれば良いことになる。
【００３３】
上記のように表面三角形を検索し、最初に見つかったマッピング先にマッピングする場合の処理内容を図１０のフローチャートに示す。同図において、先ずＮの三乗数の測色データ（ガマットデータ）を得ると（ステップＳ１０５）、ガマット表面三角形の法線ベクトルを求めるとともに（ステップＳ１１０）、グリッド法線ベクトルを求める（ステップＳ１１５）。そして、グリッド法線ベクトルの条件を判定し（ステップＳ１２０）、条件を満たさない場合はグリッド法線ベクトルを補正する（ステップＳ１２５）。次に、条件を満たすグリッド法線ベクトルに従い、マッピングが必要な全てのマッピング元について、色域境界にガマットマッピングする（ステップＳ１３０〜Ｓ１５０）。
【００３４】
上記の実施例では、図３〜６で説明したように最初に決定したグリッド法線ベクトルを、図７、８において説明したように条件式（１６）、（１７）を満たすように補正した。これは、図９を用いて説明したように、表面三角形をなすグリッドにおける法線ベクトルＮｇ０〜Ｎｇ２を用いてマッピング先を求めるためであった。しかし、もし、表面三角形をなす２つのグリッドと、表面三角形の重心位置ベクトルからなる三角形をガマット表面の最小単位三角形であるとした場合、当該２つのグリッドおよび１つ重心における法線ベクトルを用いてマッピング先を求めることができ、このとき、図７，８で説明したようなグリッド法線ベクトルの補正は必要ない。
【００３５】
つまり、三角形の重心を単位表面三角形の１グリッドとして法線ベクトルのベクトル方向を決める場合、グリッド法線ベクトルの補正を行う必要がない。かかる第２の実施例の場合における処理内容を図１１のフローチャートに示す。同図において、先ずＮの３乗数の測色データ（ガマットデータ）を得ると（ステップＳ３０５）、ガマット表面三角形の法線ベクトルを求めるとともに（ステップＳ３１０）、グリッド法線ベクトルを求める（ステップＳ３１５）。ここで、グリッド法線ベクトルの条件を判定することなく、求めたグリッド法線ベクトルに従い、マッピングが必要な全てのマッピング元について、色域境界にガマットマッピングする。このとき表面グリッドと表面三角形の重心とによって構成される三角形を基本単位とする（ステップＳ３２０〜Ｓ３４０）。このとき、マッピング先位置ベクトルＰａは、図９におけるＰｇ０〜Ｐｇ２のいずれか１つが重心位置ベクトルであり、その法線ベクトルが表面三角形法線ベクトルであるとして、上記と同様の方法で求めることができる。
【００３６】
上記第１、第２の実施例では、最初に見つかった法線ベクトルに対して、その方向へマッピングしている。これに対して例えば、全表面三角形を調査して、複数のマッピング先が発見された場合、それらのマッピング先を混合して最終的にマッピングする先を見つける。例えば、図１２に示すように、２つのマッピング先Ａ１，Ａ２が発見されたとする。かかる場合には、それぞれのマッピング先について、法線ベクトルが求められるので、ターゲットとマッピング先Ａ１，Ａ２との距離の逆数比に応じて混合し、新たなマッピング方向（混合法線ベクトルの逆方向）を求める。求められたマッピング方向により最終的なマッピング先Ａ３を決定する。
【００３７】
この複数のマッピング先が見つかった場合のマッピング先の決定方法を数式で確認する。まず、ターゲットのターゲット位置ベクトルをＰｂ、見つかったマッピング先位置ベクトルをＰａｌ（ｌ＝１，・・・，Ｌ、Ｌ：見つかったマッピング先の数）とする。またそれぞれのマッピング先に対する法線ベクトルをＮａｌとする。すると、最終的なマッピング方向に対応する法線ベクトルＮａｘは、
【数２６】
2005117096.tif 000028
と表す。ただし、Ｎａｘは単位ベクトルとは限らない。
次に、法線ベクトルＮａｘに対応するマッピング先Ｐａｘを探す。マッピング先位置ベクトルＰａｘも表面三角形を順次調査し、ガマット表面位置にマッピングされるようにする。
【００３８】
また、任意の表面三角形についての調査方法を、図１３を用いて説明する。ある表面三角形の頂点位置ベクトルを位置ベクトルＰｇ０〜Ｐｇ２とし、位置ベクトルＰｇ０と位置ベクトルＰｇ１の距離を１とした場合の、位置ベクトルＰｇ０、Ｐｇ２からなる直線を、位置ベクトルＰａｘを通るように平行移動して位置ベクトルＰｇ０、Ｐｇ１からなる直線との交点と、位置ベクトルＰｇ０との距離比をｓ１とし、同様に求めた位置ベクトルＰｇ０と位置ベクトルＰｇ２との距離比ｓ２を用いて、位置ベクトルＰａｘは、
【数２７】
2005117096.tif 000029
と表される。また、位置ベクトルＰａｘからの法線をγ倍すると、ターゲット位置ベクトルＰｂに達するとすると、
【数２８】
2005117096.tif 000030
と表せる。式（２７）を式（２８）に代入して変形すると、
【数２９】
2005117096.tif 000031
となるので、ｓ１、ｓ２、γを未知数とした線形連立方程式を解き、式（２７）に代入することで、最終的なマッピング先を求めることができる。ここで、当該表面三角形の内部に位置ベクトルＰａｘが存在し、かつガマット外からのマッピングであることの条件は、ｓ１≧０、ｓ２≧０、ｓ１＋ｓ２≦１、γ＞０であることは、容易に理解できる。
【００３９】
ここで、複数のマッピング先が見つかった場合の処理内容を第３、第４実施例として、図１４および図１５のフローチャートに示す。図１４が上述した図１０に対応しており、図１５が上述した図１１に対応している。かかる場合、ステップＳ２４５，２５０の処理およびステップＳ４３５，４４０の処理が異なり、このステップで複数のマッピング先を見つけ、この複数のマッピング先から混合法線ベクトルを求め、ステップＳ２５５，４４５にて混合法線ベクトルのベクトル方向に従ったガマットマッピングを行うことになる。
【００４０】
（３）まとめ：
このように、出力系デバイス６２の色域外に存在する色成分を色域境界に圧縮するに際して、色域表面の三角形の色域外側に向かう法線ベクトルおよび三角形のグリッド法線ベクトルのベクトル方向に従って同色成分を色域境界にガマットマッピングすることによって、階調反転やねじれを防止し、トーンジャンプを抑制することが可能になる。
【図面の簡単な説明】
【００４１】
【図１】色域圧縮装置を適用したコンピュータの構成図。
【図２】色域圧縮装置の機能ブロック構成図。
【図３】法線ベクトル・グリッド法線ベクトルの求め方を示した模式図。
【図４】法線ベクトル・グリッド法線ベクトルの求め方を示した模式図。
【図５】法線ベクトル・グリッド法線ベクトルの求め方を示した模式図。
【図６】法線ベクトル・グリッド法線ベクトルの求め方を示した模式図。
【図７】グリッド法線ベクトルの条件判定法を示した模式図。
【図８】グリッド法線ベクトルの条件判定法を示した模式図。
【図９】表面三角形からマッピング位置を求める場合の模式図。
【図１０】ガマットマッピングの処理内容を示したフローチャート。
【図１１】ガマットマッピングの処理内容を示したフローチャート。
【図１２】複数のマッピング先がある場合の態様を示した模式図。
【図１３】複数のマッピング先がある場合の態様を示した模式図。
【図１４】ガマットマッピングの処理内容を示したフローチャート。
【図１５】ガマットマッピングの処理内容を示したフローチャート。
【符号の説明】
【００４２】
１０…コンピュータ  １１…ＣＰＵ  １２…バス  １３…ＲＯＭ  １４…ＲＡＭ  １５…ディスクドライバ  １５ａ…ハードディスク  １５ｂ…フレキシブルディスクドライブ  １５ｂ１…フレキシブルディスク  １５ｃ…ＣＤ−ＲＯＭドライブ  １５ｃ１…ＣＤ−ＲＯＭ  １６…プリンタドライバ  １６ａ…カラープリンタ  １７…シリアルＩＯ  １８…スキャナドライバ  １８ａ…スキャナ  １９…ＣＲＴドライバ  １９ａ…ＣＲＴ  ５０…色域圧縮装置  ５１…圧縮実行判定部  ５２…色成分保持部  ５３…法線ベクトル演算部  ５４…圧縮部  ６０…制御部  ６１…入力系デバイス  ６２…出力系デバイス  ７０…変換色成分保持部  ８０…画像処理部
【図１】
2005117096.tif 000032
【図２】
2005117096.tif 000033
【図３】
2005117096.tif 000034
【図４】
2005117096.tif 000035
【図５】
2005117096.tif 000036
【図６】
2005117096.tif 000037
【図７】
2005117096.tif 000038
【図８】
2005117096.tif 000039
【図９】
2005117096.tif 000040
【図１０】
2005117096.tif 000041
【図１１】
2005117096.tif 000042
【図１２】
2005117096.tif 000043
【図１３】
2005117096.tif 000044
【図１４】
2005117096.tif 000045
【図１５】
2005117096.tif 000046