(実施形態1)
まず、多面体生成処理および多面体生成処理を実現するためのシステムの概略を説明する。
第1の実施の形態を、図1ないし図6に基づいて説明する。
まず、本実施形態の概略構成について説明する。図6は、カラー画像処理装置1における3Dのレンダリング機能を提供する3次元レンダリングシステム10(多面体生成装置)の1例を示す。
3次元レンダリングシステム10は、データ生成手段11と、データ変更手段12と、表示手段13とを備えている。なお、14は、生成した多面体のデータを保存するファイルシステムである。15は、後述する実施の形態で用いるメモリである。
ここで、データ生成手段11は、座標空間上に点在する点列を取り込み、検索対象辺から三角形を派生させ、該三角形の頂点を多面体を構成する三角ポリゴンのデータ群として生成する。このような多面体の生成処理によって、各三角ポリゴンの頂点を1組のデータ群としてファイルシステム14に登録してゆく。
データ変更手段12は、多面体を構成する各三角ポリゴンの法線ベクトルを計算し、必要に応じて該法線ベクトルを適宜変更することにより、多面体を構成する全ての三角ポリゴンの法線ベクトルを一致させる。すなわち、まず、生成された多面体の内部に点を一つ設定する。通常は三角ポリゴン座標より求めた重心点は該多面体の内部に収まるので、該重心点を内部点として用いるが特に重心点である必要はない。次に、登録された三角ポリゴンの頂点データ1組のデータを取り出す。頂点データは、登録されている順序と該頂点の座標データから外積ベクトルを求め、これを法線ベクトルとする。次に、三角ポリゴンの三角形としての重心点を求め、さらに、前記内部点とのベクトルを求めることにより、内部点と三角形としての重心点とを結ぶベクトルを算出する。次に、その算出したベクトルと、前記法線ベクトルとの内積をとり、該求めたスカラー値を用いて必要に応じて、登録されている頂点データの順序を適宜入れ換える。このような処理によって、全ての三角ポリゴンの法線ベクトルを一致させる。
表示手段13は、多面体を構成する三角ポリゴンの頂点の順序を適宜変更した後の法線ベクトルが全て一致した多面体を表示させる。
図1は、座標空間に点在する点列を取り囲む多面体生成処理を示したフローチャートである。最初に、ステップS11において、初期化処理を行う。ここで最初の三角形の探索を行う。最初の三角形は座標空間上に点在する点列の最大値又は最小値等の極点近傍付近で探索する。次に、ステップS12において、探索対象辺を再編成し、さらに、探索対象となる辺をファイルシステム14に登録してゆく。
ステップS13では、前記ステップS12において登録された辺を順に調べることで、検索が終了か否かの判断を行う。検索が終了していない場合はステップS14に進み、検索対象辺のアドレスへアクセスし、ファイルシステム14に登録された辺の座標データ等を取り出す。
ステップS15では、ファイルシステム14から取り出された座標データ等をもとに、検索対象辺からの新たな三角形の派生が可能か検証し、新頂点候補を探索する。ステップS16において、新頂点候補が既に登録されたものと重複しないか等を判定した後に、新たな登録対象であった場合には、ステップS17において、ファイルシステム14に追加登録を行う。このようにして順次探索を行い、各三角形から隣接する新たな三角形を派生させ、これを登録することによって、ポリゴンデータの生成が可能となる。
上述した図1の処理によって、図4および図5で示されるように、座標空間上に点在する点列を取り囲む多面体の生成を自動的に実行することが可能となる。
次に、3次元レンダリングシステムにおいて、登録する三角ポリゴンの3つ頂点の順番と該三角ポリゴンの法線ベクトルの向きとの関係を、図3に基づいて説明する。
三角ポリゴンにおける法線ベクトルを考えると、長さは一意に求められるが、その向きは必要に応じて明確に定義しなければならない。
例えば、隠面処理を行う場合、視点の位置と多面体の位置関係に基づき隠面処理を行う三角ポリゴンが求められる。この隠面処理を高速に行う1手法として、三角ポリゴンの重心から視点へのベクトルと三角ポリゴンの法線ベクトル(右ネジの進行方向を正)の内積が負である場合にその三角ポリゴンに対して隠面処理を行う手法がある。
そこで本実施形態では、登録されている頂点の順番でみたときに、右ネジの進行方向と同じように進む方向を法線ベクトルの向きとして定義し、多面体を構成する全ての三角ポリゴンの法線ベクトルの方向を揃える処理を行う。
前述した図9に示した例では、04→19→05と右回りで登録されている三角ポリゴンの場合は奥方向に法線ベクトルが向いており、2つの三角ポリゴンが隣接しているのに法線ベクトルが互いに全く逆の方向を示している。このような場合において、法線ベクトルの方向を変更する。具体的には、図3に示すように、04→19→05を並び変えて、04→05→19と登録し直すことによって、法線ベクトルの方向を揃える。
多面体を構成する三角ポリゴンの法線ベクトルの方向を全て一致させるためには、全ての三角ポリゴンの法線が外向きに設定させる必要がある。そのためには、多面体の内部の点(内部点又は重心点)から各三角形の重心点に向けてベクトルを求め、該ベクトルと法線ベクトルの内積をとり、該内積値が負数になった場合にその三角ポリゴンの頂点データの登録順序を変更するという処理を行えばよい。
図2は、多面体を構成する全ての三角ポリゴンの法線ベクトルを一致させるために、各三角ポリゴンのベクトルを調べて頂点の登録順序を変更するデータ変更処理について説明したフローチャートである。
まず、ステップS411において、初期化の処理を適宜行う。ステップS412のデータ読込み処理において、ファイルシステム14に記録されている三角ポリゴンの各データを読み込む。ステップS413では、読込んだ三角ポリゴンのデータの座標をもとに、多面体の重心点を計算する。ステップS421の読み出し処理では、改めて頂点座標の読み出しを行う。
ステップS422のベクトル算出処理では、三角形の重心点を求め、前記ステップ413で求めた多面体の重心点から、該三角形の重心点へ向かうベクトルAを算出する。ステップS423の法線ベクトル算出処理では、登録されている頂点の順序に基づいて法線ベクトル成分を算出し、ステップS424の内積計算処理において、該法線ベクトルと前記ベクトルAの内積計算を行う。
ステップS425の判定処理では、前記算出された内積値が、負数の時には、ステップS426の並替え処理へ分岐するよう構成する。ステップS426の並替え処理では、ファイルシステム14に登録されている三角ポリゴンの頂点データである2番目と3番目のデータを入れ換える処理を行う。ステップS427の終了判定処理では、ファイル構造体を参照し、読出しが終了したかの判定を行い、読出しが終了していなければステップS421の読出し処理へ戻り、終了していればステップS428の終了処理へ進み、終了処理を行う。
以上の処理のように頂点の登録順序を適宜変更することにより、多面体を構成する全ての三角ポリゴンの法線ベクトルを一致させることができる。
次に、実施形態1の変形例1を、図7に基づいて説明する。
本例では、第1の実施の形態の例のように、既にファイルシステム14等に登録されているデータを読出して処理するのではなく、多面体を生成変更する処理の中で、図6に示したメモリ15を用いてデータの読出し処理を実行する。
まず、ステップS511の初期化処理511では、適宜初期化処理を行う。ステップS152のデータ読込み処理では、ファイルシステム14に記録されている点列データを読み込む。ステップS513の検索終了判定処理では、図2のステップS13と同様な処理であり、ステップS514の検索登録処理では、図2のS14からS17までの処理とはほぼ同様な処理である。
本例では、ここでファイルシステム14への登録を行わずに、一旦メモリ15上にデータを保持したまま、次の処理に移行する。
ステップS515の重心点算出処理では、メモリ15上に記録されている三角ポリゴンのデータにアクセスし、多面体の重心点を算出する。ステップS521の座標取出し処理では、メモリ15上のデータに再度アクセスし、頂点の座標データを取り出す。ステップS522のベクトル算出処理では、三角形の重心点を求め、前記ステップS515で求めた多面体の重心点から、該三角形の重心点へ向かうベクトルAを算出する。ステップS523の法線ベクトル算出処理では、登録されている頂点の順序に基づいて法線ベクトル成分を算出し、ステップS524の内積計算処理において、該法線ベクトルと前記ベクトルAの内積計算を行う。
ステップS525の判定処理では、前記算出された内積値が、負数の時にはステップS526の並替え処理へ分岐する。ステップS526の並替え処理では、メモリ15上に登録されている三角ポリゴンの頂点データである二番目と三番目のデータを入れ換える。ステップS527の終了判定処理では、登録データを参照するポインタ等を参照し、処理が終了したかの判定を行い、終了していなければステップS521の取出し処理へ戻り、終了していればステップS528の終了処理へ進み、メモリ15上のデータの書き出し、保存処理、メモリ15の解放処理等の終了処理を適宜行う。
次に、実施形態1の変形例2を、図8に基づいて説明する。
本例では、図4の点列データを入力した後に、図5の多面体を構成する段階で、検索できた三角ポリゴンを表示手段13に順次表示する処理を備えた場合の例である。
まず、ステップS611のデータ読込み処理では、ファイルシステム14に記録されている点列データを読み込む。ステップS612の中心点算出処理では、各データにおける各座標成分の最大値、最小値等から多面体が構成されたときの中心点(内部点)を計算する。
ステップS613の検索終了判定処理では、図2のS13に相当する処理であって、処理が終了するまで検索終了の判定処理を繰り返す。ステップS621の検索処理では、新たに登録すべき三角ポリゴンを検索し、これを一時領域に仮登録する。ステップS622のベクトル算出処理では、前記ステップS612で求めた多面体の中心点から、三角ポリゴンを形成する3つの頂点のいずれか一つの点へ向かうベクトル点へ向かうベクトルAを算出する。
ステップS623の法線ベクトル算出処理では、仮登録されている頂点の順序に基づいて法線ベクトル成分を算出し、ステップS624の内積計算処理において、該法線ベクトルと前記ベクトルAの内積計算を行う。
ステップS625の判定処理では、前記算出された内積値が、負数の時には、ステップS626の並替え処理へ分岐する。ステップS626の並替え処理では、メモリ15上に登録されている三角ポリゴンの頂点データである二番目と三番目のデータを入れ換える。ステップS627の描画処理では、法線ベクトルが適正化された三角ポリゴンを表示手段13により追加表示し、全ての検索が終了するまで順次追加作業を繰り返す。
(実施形態2)
図5に示されるような凸型多面体を生成する方法は、ギフトラッピング法が最も基本的な実現方法として広く知られている。これは図1に示されるように、点列を入力し、該点列に対して、適当な外点を始点として各データ列を適宜操作し、繰り返し次の点列(頂点候補)を探索していくものである。
しかしながら、この方法では対象とする点列の数が増えると、これに比例して処理時間も大きく増加するという問題が知られている。
本実施形態では、以下の処理を行い、凸型多面体の内部の点を探索対象から除去することにより、高速な多面体の生成を実現している。
1.三次元を構成する各軸上での最大、最小値の端点(六点)を用いて八面体を形成する。
2.八面体の内含点列を除外し、処理する点列の数を減らす。
3.該内含点列を除外したデータ群に対してギフトラッピング法を適用する。また、更には、八面体を構成した後に、該八面体を構成する三角形上の点列に対して、該三角形の平面から最も遠い点列を選びだしこれを頂点とする四面体を新たに構成し、該四面体の内含点列を除外し、データ数を減少させる。この処理は複数回適宜繰り返すよう構成すれば更に効果的である。
以下、図面を用いて多面体生成方法を詳細に説明する。
図10はデータ点列の分布状態をXY平面に対して垂直な位置から観察したものであって、XY各軸上の最大点、最小点より四辺形を構成し、該四辺形の内部点を削除する様子を示したものである。図からも明らかなように各軸上の最大、最小値を基に構成された四辺形で取り囲まれる内部の点列は、表面を構成する点列とは成り得ないので後段の処理でも不必要であることがわかる。本発明の骨子は処理に不必要な点を削除することで処理対象のデータ数を大幅に減少させ、処理全体の高速化を実現することである。平面上のデータであれば四辺形又は三角形等の組み合わせで不必要な点を判定することが可能である。対象空間が色空間のように三次元である場合には多面体を用いて同様に不必要な点を判定することが可能である。
図11は扱うデータを三次元空間に拡張した場合を示している。図示されるようにZ軸の最大最小値を付加することで八面体が構成される。該八面体は図で示されるように各軸の最大値、最小値に対応して便宜上の頂点番号(1〜8)を割り当てるとすると、1−2−3、1−3−4、1−4−5、1−5−2、6−3−2、6−4−3、6−5−4、6−2−5、の計8つの三角形で囲まれることになる。
本実施形態では、該八面体の内部に存在する点列を削除することで処理の高速化を実現する。図12は本実施形態の処理を示す概略フローチャートである。図1の多面体生成処理の前段処理として、八面体を構成する手続きステップS19と、該多面体の内部点を削除する手続き(ステップS20)を行う。この処理によって削除出来る点列の数は入力されるデータの分布状態により異なるが、例えば半径が1の球体状にほぼ均一にデータが分布しているとすれば、全体に対して約31.8(=1/π)%が削除対象となる。
これは半径1の球体の体積(4π/3)に対して該球体に内接する八面体の体積(4/3)の割合である。実際の検討結果では、テストデータとして球体内部にランダムに生成させた435点に対する処理時間が51.8秒であったのに対して、削除処理によって対象処理データは324点に減少し、その結果処理時間は34.4秒に短縮した。その差17.4秒は、ほぼ33%の減少でありデータ数の減少率にほぼ比例する結果が出ることが判明した。
(実施形態2の変形例)
次に、図13〜15を用いて実施形態2の変形例について説明する。
図13に示されるように、実施形態2と同様に八面体の内部の点列を削除した後は、八面体の外部のみに点列が存在することになる。さらに、本変形例では、八面体を構成する各面の三角形その平面から最も距離が遠い点とで形成される四面体の内部に点列を削除することにより、削除する点数を増やし処理の高速化を実現する。
まず、図13で示されるように、Xmin,Ymax,Zminの3つの点を各々点ABCとし該三点を含む平面上の点列を選択する。次に図14で示されるように該平面より最も距離の遠い点Dを頂点として四面体を形成し概四面体の内部点を削除する(ステップS25,26)。このような処理を八面体の全ての面に対して行う。更には該形成された四面体上の三角形平面に同様の処理を適宜繰り返す。全ての四面体内部に点列が存在しなくなった時に処理を終了するように構成すれば、生成された三角形の集合が与えられた点列データの外郭を覆う表面を表すことになる。
図15を用いて処理の流れの概略を簡単に説明する。
まず、ステップS21において初期化処理を行う。そして、ステップS22〜S24において実施形態2と同様に八面体を求め、八面体の内部の点を削除する。
次に、八面体を構成するある面から最も距離が遠い点を探索し四面体を求め(ステップS26)、該四面体の内部の点を削除し(ステップS27)、ステップS26で探索された点を新頂点として追加登録する(ステップS28)。ステップS26〜S28の処理を八面体を構成する全ての面に対して行う(ステップS25、S29、S30)。
そして、ステップS28により追加された新頂点と八面体を構成する8頂点に基づき、多面体を再構成し、多面体をより複雑にするか否かを判断する。多面体を複雑にする必要がある場合は、Nを再構成された多面体に応じて更新する(ステップS31)。なお、ステップS26で常に点が探索された場合はNに16が設定される。
ステップS31においてNが更新された場合は、各面に対してステップS25〜S31の処理を繰り返す(ステップS32)。
なお、上記本願実施形態2およびその変形例では、八面体や四面体を用いたが、例えば六面体などを用いても同様の処理を実現可能である。さらには、十二面体などの適当な多面体をもちいても同様である。
すなわち、多面体生成処理の速度を向上させるためには、できる限り不用なデータ点列を効率よく削除すれば良いので、不用なデータ点列を削除する実施形態であれば良い。
実施形態2によれば、空間上に点在する色データ等を包み込む多面体モデルを生成する際に、与えられた点列の数が増えても処理時間がこれに比例して大きく増加することを防ぎ効率的な多面体生成処理を行うことができる。
(実施形態3)
凸型多面体の生成方法は、ギフトラッピング法が最も基本的な実現方法として広く知られている。凸型多面体の生成方法としては、その他にも多数存在する。
ここで問題なのは、各々の処理速度が一概に予測することは出来ないという点である。例えば、あるデータの分布状態に応じては、最適なアルゴリズムが存在しても、別の分布状態を持つデータ群に関しては逆に速度が低下する場合も考えられる。よって理想的にはデータの分布状態に応じて最も最適なアルゴリズムを適応的に選択しなけれな意味が無いことになる。
そこで、実施形態3は、データの分布状態に適したアルゴリズムを選択する方法を提供する。
複数の解析アルゴリズムを予め用意し、定型的なデータ群に対しては、処理に最適な生成アルゴリズムを対応づけるタグを割り当て、解析実行に入る段階で該タグを用いて適宜処理を切替えるよう構成する。
複数のアルゴリズムが並列処理可能なシステムにおいて、不定型的なデータ群に対しては、データの分布状態等を統計的に解析し、処理に最適な生成アルゴリズムを複数個候補として列挙させ、これを同時に起動させた後に、中間処理結果を調べることで、入力データ群に対応した最適なアルゴリズムを一意に決定し、不要になったプロセスを途中で抹消し該プロセスが確保した計算機資源を解放させるよう構成する。
図16を用いて、定常的な実験又は測定により得られる特徴的なデータ列に対して、その入力データに応じたタグを割り振り、該タグによって適用するアルゴリズムの種類を選択する処理を説明する。
複数のデータが各々データセレクタに入力される。各々のデータは各々異なる状況で測定されたデータ群であって、例えば、データ1はカラーインクジェットプリンタで出力された色を測定したデータ群、データ2はカラーLBPで出力された色を測定したデータ群で出力されたものとする。ここで、データ1にはアルゴリズムAの処理が、データ2にはアルゴリズムBの処理が各々最適であることが予め実験的に判明している場合を想定すると、これらデータ群に多面体生成処理に用いるアルゴリズムを指定するためのタグデータを付加する。
タグデータが付加されたデータ1又は2を入力すると、図6の3次元レンダリングシステムに含まれるタグ解析処理部30(不図示)がデータに付加されたタグデータを解析し、該データに適したアルゴリズムを選択し、図6のデータ生成手段において実行される多面体生成処理において選択されたアルゴリズムを使用するように制御する。
データ1が入力された場合は、タグ解析処理部30がタグAを解析し、アルゴリズムAを選択する。
データ2が入力された場合は、タグ解析処理部30がタグBを解析し、アルゴリズムBを選択する。
上述した処理により、定型的に行われる測定や解析に対しては、タグデータにより最適なアルゴリズムの選択を用いて多面体生成処理を行うことができる。したがって、常に短時間で多面体生成処理を行うことができる。
次に、データの分布状態が不定な入力データに対して適切なアルゴリズムを選択する処理を図17を用いて説明する。
まず与えられたデータ列に対してデータ解析を行い、その解析結果に応じて適用アルゴリズムの候補を列挙し、該列挙された候補の数の分だけプロセスをフォークし、該アルゴリズムを各々に並列計算機上で同時に処理を開始させる。処理が開始されてから暫く後に、処理の結果を調査し、該調査結果に基づいて最適なアリゴリズムを唯一選択決定し、処理の途中から利用可能な計算資源を選択決定されたアリゴリズムのみに割り当てることで処理時間の短縮を実現する。
カラープリンタ(機種不問)で出力された色を測定したデータ群であるデータ3を入力する。まず、データ解析処理部31においてデータ3を解析し、データ生成手段11が有する複数のアルゴリズムA,B,Cから幾つかの候補を決定する。
そして、例えば、データ3に対してアルゴリズムB,Cが候補として選択された場合は、データ生成手段11において、2つのアルゴリズムB,Cに基づく処理を同時に起動(フォーク)するように制御する(候補決定&フォーク32)。
同時に起動された処理(B,C)は、所定タイミングにおいて処理したデータ数(又は処理進行度)を示す中間報告信号をプロセス監視処理部33に通知する。プロセス監視処理部33は中間報告信号に基づきデータ3に最適なアルゴリズムを選択し、制御信号によって選択されなかった処理を停止させる。
そして、選択された処理を継続させることにより、データ3に対する多面体生成処理を完結させる。
マルチタスクに動作する計算機上では、資源を有効に解放することで単一プロセスの処理速度を上げることが可能となるので結果的に最速で処理を終了させることが可能である。
なお、データ解析処理部31(不図示)は図6の3次元レンダリングシステム10に含まれている。また、その他の処理部はデータ生成手段の機能である。
図18に、図16及び図17の処理機能を有する本実施形態の構成の1例を示す。図18において、図16、17と同一の機能については同一の符号を付け説明を割愛する。
データセレクタ35は、入力されたデータを解析し、データに多面体生成処理のアルゴリズムを指定するタグが付加されているか否かを判定する。そして、タグが付加されている場合は図16に示す処理を行い、タグが付加されていない場合は図17に示す処理を行うように制御する。
本実施形態によれば、空間上に点在する色データ等を包み込む多面体モデルを生成する際に、与えられた点列データがどのような分布状態であっても特にそれを気にすることなく、自動的に該分布状態に応じた最適なアルゴリズムが適宜選択実行され、常に高速な処理結果を得ることが可能となる。
(実施形態4)
モニター上のカラー画像をカラープリンタで出来る限り忠実に再現する技術はカラーマッチングと呼ばれており近年、広く利用されている技術の一つである。通常モニターの色再現領域は広く、プリンターのそれは狭い。つまり、モニター上の色、全てがプリンタで再現出来るわけではない。この問題を解決する為に色空間圧縮なる技術が用いられる。この色空間圧縮は様々な方法と圧縮率で複数存在する。これは利用されるケースに応じて適宜選択、または割当てられるものである。その際に問題となるのは適用される方法がどのように作用するのかが利用者にわかり辛いというものである。
本実施形態では、実施形態1〜3で説明した3Dレンダリング機能を用いて色空間圧縮の作用を視覚的にわかり易くした方法を説明する。
まず、本実施形態の概略を説明する。
まず始めに空間上の色再現領域を表現する三角ポリゴンデータ群を一意に算出するモデリング手段を用意し、該モデリング手段を用いて、選択モニターの色再現領域と、該選択モニターを色空間圧縮で圧縮した後の色再現領域を表現するモデルデータを生成し、各々のポリゴンデータに適切な透過属性を持たせ、これを3D表示する。利用者は3D表示された2つの色再現領域を参照しながら、印刷の際に気になる特定色をその中へ追加表示し、所望の特性を持つ色空間圧縮方法を自由に選択するよう構成する。
これにより従来よりわかりずらかった色空間圧縮のマッピングが三角形のポリゴンデータを用いることで高速に可視化できる為に利用者に、より迅速で最適なカラードキュメント印刷環境を提供することが可能となる。
以下、図面を参照しながら本実施形態について詳細に詳説する。
図19は本実施形態を実装したカラープリンタードライバの内部処理の概略ブロック図である。ここでは、ドライバの内部処理の中でも特に設定処理、及び該各設定により変更される色変換処理の動作について詳細に説明を行う。ここでは便宜上以下のようなシステムと過程して解説を行う。ドライバーはホストコンピュータのOSに組み込まれている。該ホストに接続されるモニタはA,Bタイプの二種類があり、いずれもフルカラー表示が可能である。出力プリンタは該ホストコンピュータのプリンタインターフェイスに直接接続されるローカルプリンタであってやはりフルカラー画像の出力が可能である。利用者は該ホストコンピュータ用いてカラードキュメントを作成し、これをカラープリンタ装置を用いて出力する。作成されるカラードキュメントは、モニタに表示されながら編集等の操作が加えられる。出力されたカラードキュメントの色はモニタに表示されたものと一致するよう該ドライバ内部でカラーマッチング処理が行われる。
カラーマッチングのオプションとして、1:色相優先タイプと、2:彩度優先タイプの二種類を用意しておき、各ドキュメントに応じて適宜変更出来るように構成されている。これらは共に色空間圧縮方法を用いているが圧縮の方法が異なるタイプである。以下では便宜上カラーマッチングオプションと色空間圧縮方法は同義に扱う。また、CIE−1976Lab値を省略して単にLab値とする。さらには、ドライバーをOSに組み込んだ時点では、モニタはAタイプ、カラーマッチングオプションは、1:色相優先タイプがデフォルトとして設定されるとして扱う。
画像データ101はプレビュー画像生成処理111によってプレビュー画像に変換された後、モニタ120上に表示される。利用者はこのプレビュー画像を参照しながら画像中の特定の色を選定し色指定入力手段113へ入力する。例えば、画像データは棒グラフを含むものであった場合に、棒グラフ中で特に気になる色(例えば紺青色等)を選定し、該選定色の値(RGB値)をキーボード装置やマウス操作等で入力する。モニタタイプやカラーマッチングオプションは各々、モニタ指定手段114とカラーマッチングオプション指定手段115により指定されており、該設定はドライバーの設定画面で変更可能である。プロファイルセレクタ112は、モニタータイプとカラーマッチングオプションの組み合わせにより指定されるプロファイルデータ(A1,A2,B1,B2の4つの中からいずれか一つ)をプロファイル格納ファイル131の中より選択し、これを色変換処理102へ引き渡す。色変換処理102は、印刷が開始されると画像データ101を入力とし、前記設定により指定されるプロファイルを用いて適切な色変換処理を行い印刷用の出力データ103を出力する。
図20は図19におけるレンダリング処理部116の内部を示した概略ブロック図である。モデルデータ選択手段221は、モニタータイプとマッチングオプションの組み合わせにより指定されるモデルデータ(A1,A2,B1,B2の4つの中からいずれか一つ)をモデル格納ファイル211の中より選択しこれを合成処理231へ引き渡す。ここでは、色再現範囲を可視化するために、三角ポリゴン群で表面を構成する多面体を用いてこれを表現する。
モデルデータはモデリング手段により予め用意されておりモニターの色再現範囲と色空間圧縮後の色再現範囲と2つのデータが格納されている。いずれも複数の頂点と、これを組み合わせた三角ポリゴン群を記述したものである。以下に例を示す。
Filename“Model−A1”
ModelBegin//Mointor
A(no compress)
Vertex Px1,Py1,Pz1
Vertex Px2,Py2,Pz2
Vertex PxM1,PyM1,PzM1
Polyline 3ti1 tj1 tk1
Polyline 3ti2 tj2 tk2
…
Polyline 3tiN1 tjN1
tkN1
ModelEnd
ModelBegin//Mointor
A(compressed)
Vertex px1,py1,pz1
Vertex px2,py2,pz2
…
Vertex pxM2,pyM2,PzM2
Polygon 3ti1 tj1 tk1
Polygon 3ti2 tj2 tk2
…
Polygon 3tiN2 tjN2 tkN2
ModelEnd
また、色指定入力手段113へ入力された指定色(RGB値)に基づいて座標位置算出手段223では現在選択されているモニタ上での色座標値A(Ax,Ay,Az)と、それを現在選択されているカラーマッチングオプションで色変換処理をした後での色座標値A’(Ax’,Ay’,Az’)を求めた後、以下のような処理によりレンダリング処理に応じたフォーマットへ変換する。
Filename“Model−Point”
ModelBegin//2points
PointSet sphere radious(o.5)
Vertex Ax Ay Az
Vertex Ax’Ay’Az’
Point 1 Color A
Point 2 Color A’
ModelEnd
本実施形態ではレンダリングの空間としてxyz軸で構成される(3次元ユークリッド)空間を想定している。ここでは、該空間にLab空間を当てはめるので各々の座標値はLab値と等価となる。また、便宜上L軸はx軸、a軸はy軸、b軸はz軸として扱う。合成処理231では選択されたモデルのデータ(上記Model−A1)と座標位置算出手段223での出力ファイル(上記Model−Point)を合成し一つのファイルとして3次元レンダラー処理232へ引き渡す。該レンダラー処理では指定された3次元上のオブジェクトから二次元の画像を生成しディスプレィ装置へ表示するよう構成されている。
図21は、モデルデータを作成するモデリング手段の処理の概略を示したフローチャートである。
まず始めにステップ301では測定された125点のサンプルデータを入力する。ここではモニタのRGB空間を均等に分割するサンプルとして125点を想定している。RGB各々の軸に対して0→255までを5ステップに分割すると、5×5×5点のサンプルデータが得られる。これを合計すれば125点となる。このRGBデータの組み合わせ125点に対して各々Lab値を求めてステップ301で入力を行う。この時に先頭から順にID番号、RGB値、Lab値という組合せで入力が行われる。ステップ302では、この時の基本8色(RGBCMYWK、図11の12面体を構成する8頂点に相当する。)のID番号を入力し、ステップ310では、該ID番号と入力された125点データより12面体を生成する。ステップ312では生成された多面体と125点を同時に表示する。ステップ313では表示された多面体が色再現領域を十分近似していない場合はステップ314において頂点を新規に追加しステップ315で多面体を再構成し、ステップ312へ戻り再度表示を行う。これを繰り返すことで十分よく近似が行えるまで多面体モデルを生成していくことが可能となる。図22は隣接する2つの三角ポリゴンに1点づつ頂点を追加し、面数を増やしていく例を示した概念図である。このようにして3D表示されている多面体の表面かその内部にサンプル点が隠れるように、または三角形の表面が各サンプルから遠過ぎた場合は凹面を適当に構成してより良い近似を得るように三角ポリゴンを構成していく。ここで、より精度の高い近似を行う場合はより多くのサンプルを用いて、全ての点を慎重に選択していけば良い。
なお、モデリング手段とし実施形態1〜3で説明したデータ生成手段11及びデータ変更手段12を用いても構わない。実施形態1〜3で説明した方法を用いると空間内に散在する点列に対して幾何学的な計算を施し自動的にかつ高速に多面体を生成することができる。
図23は実際の3D表示の様子を示したサンプル例である。ここで多面体510はモニタ上の色再現領域を示しており、三角ポリゴンは辺のみで描画されている。一方多面体520は色空間圧縮後の色再現領域を示しており、三角ポリゴンは辺と面で描画されている。本実施形態の3D表示では隠面処理を行う為、常に手前にあるポリゴンしか描画されず、よって多面体520の内部は不可視となる。点531は指定色の色空間圧縮前の位置、点532は色空間圧縮後の位置を示している。
ユーザは出力するドキュメントに応じた最適なマッチングオプションを切替えながら複数の指定色を各々マッピング状態を確認しながら最終的に各々の印刷に最適なマッチングオプションを選択することが可能となる。
なお、図23では指定色を1色しか表示していないが、ユーザの指示に基づき複数色を同時に表示することも可能である。ただし同時に複数色を表示させた場合は視点を各色の位置関係により、隠面処理によって表示されない色が生じる可能性がある。
(実施形態4の変形例1)
次に図24を参照しながら実施形態4の変形例1について解説する。図24は図19のレンダリング処理部116に相当する処理を説明した概略ブロック図である。色再現領域を表現するモデルデータを予め用意するのではなくて、処理系の中にモデルデータ生成機能を持つことで随時、選択されたモニタやマッチングオプションに応じたモデルデータを生成するという点である。ここでは空間上の色再現領域を凸面体生成アリゴリズムによって算出するモデリング手段を用意する。凸面体生成アリゴリズムは既に多くの手法が提案されているのでここでは特に解説しない。
モデルデータ生成は、まず選択されたモニターの色再現領域に対して行う。モニタデータ1601には現在選択されているモニタの色特性情報が格納されていて、これを用いてモデリング手段1611は125点のサンプルを生成し、各点のLab値を求める。これら空間上の点列群を覆い包む表面ポリゴン(三角形)を凸多面体生成アルゴリズムによって自動生成する。生成されたモデルデータには処理1612において透過属性がそれぞれ付けられる。以下にその例を示す。ここでは、TransparentBegin()文とTransparentEnd文で囲まれたPolygonの面が透過属性を持ちその透過率TransparentBegin()文のパラメータで指定する。ここで100%の透過率を設定すると外郭を表現しているポリゴンそのものが見えなくなるので、本実施例では80%(指定値は100分の1で0.8となる)の透過率を設定する。
Filename“Model−A1”
ModelBegin//Mointor
A(no compress)
Vertex Px1,Py1,Pz1
Vertex Px2,Py2,Pz2
…
TransparentBegin(0.8)
Vertex PxM1,PyM1,PzM1
Polygon 3 ti1 tj1 tk1
Polygon 3 ti2 tj2 tk2
…
Polygon 3 tiN1 tjN1
tkN1
TransparentEnd
ModelEnd
ModelBegin//Mointor
A(compressed)
Vertex px1,py1,pz1
Vertex px2,py2,pz2
…
Vertex pxM2,pyM2,PzM2
Polygon 3 ti1 tj1 tk1
Polygon 3 ti2 tj2 tk2
…
Polygon 3 tiN2 tjN2
tkN2
ModelEnd
次にモデルデータ生成は、色空間圧縮後の色再現領域に対して行う。モニタデータ1611と、現在選択されている色空間圧縮方法を示すカラーマッチングオプションハンドル1630を色空間圧縮計算手段1613へ引き渡し、色空間圧縮後の125点のサンプルを生成し、各点のLab値を求める。モデリング手段1614ではこれら空間上の点列群を覆い包む表面ポリゴンを凸多面体生成アルゴリズムによって自動生成する。ここでは透過属性は付加されない。
座標位置算出手段1615では、モニターデータ1611、カラーマッチングオプションハンドル1630、色指定手段1616で指定された特色の色のRGB値、各々が入力され現在選択されているモニタにおける指定色の座標位置が求められる。ここで座標位置は色空間圧縮前と後の二点が求められ合成処理1620へ引き渡される。
合成処理1620では、色空間圧縮前のモニタ色再現領域のポリゴンデータと、色空間圧縮後のモニタ色再現領域のポリゴンデータと、指定色の座標位置2点(色空間圧縮前と後)のポイントデータを合成し、該データを三次元レンダラー処理1621へ引き渡す。このレンダラー処理では指定された3次元上のオブジェクトから二次元の画像を生成しディスプレィ装置へ表示を行う。ユーザは表示の様子を見ながら、出力するドキュメントに応じた最適なマッチングオプションへ変更することが可能である。
(実施形態4の変形例2)
図25を参照しながら実施形態4の変形例2について解説する。図25は図19のレンダリング処理部116に相当する処理を説明した概略ブロック図である。本変形例では、色再現領域を表現するモデルデータを予め用意するのではなくて、処理系の中にモデルデータ生成機能を持つことで随時、選択されたモニタやマッチングオプションに応じたモデルデータを生成する。ただ、一つ大きく相違する点として色空間圧縮後の色再現領域を表現するポリゴンに第二の透過属性を持たせることである。
モデルデータ生成は、まず選択されたモニターの色再現領域に対して行う。モニタデータ701には現在選択されているモニタの色特性情報が格納されていて、これを用いてモデリング手段711は125点のサンプルを生成し、各点のLab値を求める。これら空間上の点列群を覆い包む表面ポリゴン(三角形)を凸多面体生成アルゴリズムによって自動生成する。生成されたモデルデータには処理712において第一の透過属性がそれぞれ付けられる。ここで100%の透過率を設定すると外郭を表現しているポリゴンそのものが見えなくなるので、本実施例では第一の透過属性として80%(指定値は100分の1で0.8となる)の透過率を設定する。
次にモデルデータ生成は、色空間圧縮後の色再現領域に対して行う。モニタデータ711と、現在選択されている色空間圧縮方法を示すマッチングオプションハンドル730を色空間圧縮計算手段713へ入力し、色空間圧縮後の125点のサンプルを生成し、各点のLab値を求める。モデリング手段714ではこれら空間上の点列群を覆い包む表面ポリゴンを凸多面体生成アルゴリズムによって自動生成する。生成されたモデルデータには処理717において第一の透過属性がそれぞれ付けられる。ここでは第二の透過属性として20%(指定値は100分の1で0.2となる)の透過率を設定する。上述した外郭を構成するポリゴン群と合わせて以下のようなデータが構成される。
Filename“Model−A1”
ModelBegin//Mointor
A(no compress)
Vertex Px1,Py1,Pz1
Vertex Px2,Py2,Pz2
…
TransparentBegin(0.8)
Vertex PxM1,PyM1,PzM1
Polygon 3 ti1 tj1 tk1
Polygon 3 ti2 tj2 tk2
…
Polygon 3 tiN1 tjN1
tkN1
TransparentEnd
ModelEnd
ModelBegin//Mointor
A(compressed)
Vertex px1,py1,pz1
Vertex px2,py2,pz2
…
Vertex pxM2,pyM2,PzM2
TransparentBegin(0.2)
Polygon 3 ti1 tj1 tk1
Polygon 3 ti2 tj2 tk2
…
Polygon 3 tiN2 tjN2
tkN2
TransparentEnd
ModelEnd
座標位置算出手段715では、モニターデータ711、マッチングオプションハンドル730、色指定手段716で指定された特定の色のRGB値、各々が入力され現在選択されているモニタにおける指定色の座標位置が求められる。ここで座標位置は色空間圧縮前と後の二点が求められる。本実施形態では更に点A(色空間圧縮前の座標)から点A′(同圧縮後の座標)へ向けて矢印線で結線されてより視覚的に位置が把握がし易いよう構成する。
Filename“Model−Point”
ModelBegin//2points
PointSet sphere radious(0.5)
Vertex Ax Ay Az
Vertex Ax’Ay’Az’
Point 1 Color A
Point 2 Color A’
Line 1 2 Arrow
ModelEnd
合成処理720では、色空間圧縮前のモニタ色再現領域のポリゴンデータと、色空間圧縮後のモニタ色再現領域のポリゴンデータと、指定色の座標位置2点(色空間圧縮前と後)のポイントデータを合成し、該データを三次元レンダラー処理721へ引き渡す。このレンダラー処理では指定された3次元上のオブジェクトから二次元の画像を生成しディスプレィ装置へ表示を行う。
図26は本変形例の3D表示の様子を示した例である。ここで多面体810はモニタ上の色再現領域を示しており、これを表現している三角ポリゴン群は辺と透過率80%の面で描画されている。一方多面体820は色空間圧縮後の色再現領域を示しており、これを表現している三角ポリゴン群は辺と透過率20%の面で描画されている。本実施形態の3D表示では透過属性が設定されていないものと透過属性が設定されててもその透過率が0%のポリゴンに対しては隠面処理を行うが、それ以外のものでは透過属性を考慮してポリゴンの重なりも表示するよう構成している。よって図で示されるように仮に点832が色再現領域820の中に入り込んでいても透過属性が設定されている為に、点832は手前のポリゴン越しに見えることになる。また、点831は指定色の色空間圧縮前の位置、点832は色空間圧縮後の位置であって、これを矢印線で結線することで視覚的な認識が正しく行えるように工夫している。ユーザはこれらの表示の様子を見ながら、出力するドキュメントに応じた最適なマッチングオプションを自由に選択することが可能である。
以上述べた実施形態以外にも以下のような実施形態が考えられる。
1.モニタデータ601はカラーマネージメントシステムにおいて、各カラーデバイスに割り当てられたプロファイルから得た情報でも良い。
2.モデリング手段611とモデリング手段614は説明の都合上、別手段としてブロック図としたが、実装上同じブロックとしても良い。
3.色空間圧縮はモニタの色再現領域を圧縮したものであったが、これに限定されるものではない。ソース側とディステネーション側はあらゆるカラーデバイスがその対象となる。更には本実施例1〜3においては体積的な縮小が色空間圧縮であるように扱ったが、その限りではない。逆に色空間慎重でも色空間移動でも同様に処理が可能である。
4.色再現領域を多面体の表面で表現する際の基本面構成として三角ポリゴンを用いているが、四角形ポリゴンと三角ポリゴンの組み合わせや、五角形ポリゴンと三角ポリゴンの組み合わせを用いても良い。また、微小な三角ポリゴンで自由曲面を近似したものでも構わない。
5.色再現領域を多面体の表面で表現する際の基本面構成として三角ポリゴンを用いて、その3つの頂点の座標に、その座標位置における色を算出して、各頂点に該当色を、頂点と頂点を結ぶ辺や面には、各頂点の該当色を基に補間により求めた色を割り当てるよう構成する。
6.プリンタの接続はローカルであってもそれ以外であっても良い。また、システムに組み込んだプリンタドライバ以外での処理でも同様に実現可能である。例えばユーティリティソフト、アプリケーションソフトや、またはアプリケーションソフトに接続するプラグイン形式、または、ヘルパーアプリケーションであっても良い。もちろん、カラーマネージメントシステムにおけるカラープロファイルを作成すプロファイルメイカーでこれを実現しても良い。
7.モデルデータは予め用意しても、随時必要な時に作成しても、またはある時点において作成したデータをキャッシングしたものであっても良い。更には、プロファイルデータ内部にそのデータを格納しても、一時的な作業領域(メモリ又はファイル)に格納しても良い。
8.三次元の表示に際しては、マウス等の入力デバイスを用いて、リアルタイムに移動、回転、縮尺等が可能であって、自由な位置から三次元データを観察することが可能であるよう構成を提供しても良い。
9.透過属性を指定する代わりに、ある入力を基に隠面処理を切替える等の工夫をすることでポリゴンで覆われた表面の内部の点を観察出来るよう構成しても良い。
以上述べた他にも様々な実施形態が考えられるが実質的には色再現領域を表現する際に、表面に三角形ポリゴンを用いた多面体を用いるものであれば、これに付随するその他の技術の手法により本願発明が限定されるものではない。
実施形態4及びその変形例によれば、従来よりわかりずらかった色空間圧縮処理によるマッピングの状態を、三次元表示システムを用いて効率的に可視化することが可能となった。色空間圧縮前と色空間圧縮後における色再現領域の変化を重ね表示で同時にこれを比較することが可能となり、また、三角ポリゴンを用いることでデータ量が減少し、処理の高速化が計れた結果、従来より困難であったデータのリアルタイムな回転、縮尺が行なえる等、より自由な位置からインタラクティブに三次元データを観察することが可能となった。また、特定色を指定して該当色が、実際にどのようにマッピングされるか等を観察することで、実際のカラー印刷過程における課題を直接的に解析することが可能である。その結果、様々な色空間圧縮方法の中から所望の特性を持った種類を迅速に設定または選択することが可能となる。
(実施形態5)
3Dレンダリング機能を用いて、空間上のオブジェクトを観察する際に、利用者が回転や拡大縮小等の操作を頻繁に繰り返して行なった場合には、そのオブフェクトの本来の上下関係等がわからなくなる場合がある。従来より座標軸等を同時に描画したり別の表示窓に方角等を表示する等の工夫もみられたが、直観性に欠けている。特に3Dレンダリングシステムを対話的に用いる場合は、システム自身が利用者の操作に対して即座に応答する程度の高速表示が要求されると同時に、利用者が表示されているデータを的確、且つ直観的にその状態が認識できるよう構成されてなければならない。
そこで、本実施形態では、Lab色空間のab平面に平行な正方形を用意し、該正方形の中心点を原点に重ね合わせ、同時に表示することにより、利用者が表示されているデータの状態を直観的に認識できるようにした。この表示が必要ない時は利用者の操作によって随時消去可能とする。
図27はab平面に平行な正方形の大きさを、入力されるデータのa値の最大値、最小値及びb値の最大値、最小値を参照し決定する処理を説明した概略フローチャートである。初期化処理S811では変数Maxをゼロに設定する等の処理を行なう。データ入力処理S812では、色再現領を示すL値、a値、b値、の一組を読み込む。大小判定S813では、前記データ入力処理S12で読み込んだa値の絶対値と変数Maxを比較し、a値の絶対値の方が大きければ代入処理S814にてa値の絶対値を変数Maxに代入する。大小判定S815では、前記データ入力処理S12で読み込んだb値の絶対値と変数Maxを比較し、b値の絶対値の方が大きければ代入処理S816にてb値の絶対値を変数Maxに代入する。終了判定S817では読み込みが終了しているかを判定し、終了していない場合にはデータ入力処理S812へ戻る。辺長設定処理S818では、変数Maxに0.5を乗じた値を設定する。座標設定処理S819では、この設定された値をもとに正方形の座標データを生成する。該正方形はab平面に平行であって、その重心点は原点と一致するように設定される。
図28は、色再現領域を示すデータ群により生成された多面体P1に、該データ群に基づき図27の処理により生成された正方形P2を、3Dレンダリングシステムを用いて合成し、表示した画像を示す。
図28では、多面体の表面の様子を観察することができるが、その内部を観察することができない。そこで、図29のP3に示されるように、多面体を構成する三角形を面で表現するのではなく、辺のみで再現することによりその内部を観察できるようにする。
P3のように表示するには、実施形態4で説明した透過率を制御することにより簡単に実現することができる。
すなわち、利用者が図28(P1)又は図29(P3)のいずれのモードを設定するかに応じて色再現領域に関する透過率を制御することにより、本実施形態を実現することができる。
利用者はこの2つの画像を適宜切替えて観察することで詳細にデータの解析を行なうことができる。
また、ある輝度値における色再現領域の状態を詳細に観察することも色再現領域を把握する際に重要である。
そこで、図30のようなユーザーインターフェースを提供する。
入力されたLab値の点列データ群に対して、多面体生成処理を施し多面体P4を得、これを3Dレンダリングシステムを用いて、表示窓R1に表示する。表示窓R1の左端には、スライド領域R2内で自由に移動するスライドバーR3ある。これを任意の位置へ移動するに伴ってab平面に平行な正方形P5が移動する。該正方形は多面体P4と重なっている場合には、必要に応じてその重なり部分が別の表示窓に適宜表示される。表示窓R43は図6で表示されているR5の位置における、その重なり部分を断面P6として表示している。表示窓R41、表示窓R42は、それ以前のP5の位置における重なりを示した表示窓であって、必要に応じて生成、保持、廃棄可能である。
なお、P6では、多面体の頂点だけでなく、該頂点データを抽出したデータ群(例えば、図21のステップ301で入力される125点のサンプルデータ)に含まれる頂点以外のデータも表示している。これにより、多面体の精度の度合い及びサンプルデータを出力したデバイスの色再現性を確認することができる。
図28、図29、図30を用いて説明した3Dレンダリングシステムを用いた色再現領域を表示する方法以外にも以下のような形態が考えられる。
1.拡大縮小を施した複数の画像を扱う場合に、その縮尺による違い等が容易に認識が出来るよう、規定の長さの正方形に置き換えて表示することが出来るよう構成する。
2.回転による操作で変化する上下関係がより容易に認識出来るよう、正方形の表と裏で異なる配色を適用する。
3.内部の点列の様子を示す為に、三角ポリゴンの面に透過属性を持たせる。これによって色再現領域を常に認識しながら且つ内部の点の様子も観察することが可能となる。
4.ある特定色のグラデーションを定義して、そのグラデーションの変化を線分による表現することで、色の変化、及び、色再現領域との位置関係等が観察出来るよう構成する。
5.回転や拡大縮小等によってオブジェクトが所望の位置に表示されていない時には、予め登録済みのアイコンを選択することで、現在の表示状態を廃棄し、即座に登録された表示状態に切り替わる(回転、拡大縮小)よう構成する。
以上述べた他にも様々な実施形態が考えられるが実質的には、色の解析を行なう目的で三次元の表示システムにおいて多面体モデルを表示し、これを回転、拡大縮小等の操作を行なう際、利用者がより扱い易いよう工夫したものは全て本発明と同質である。
従来より三次元空間上のオブフェクトを観察する際に、利用者が回転や拡大縮小等の操作を頻繁に繰り返して行なった場合には、そのオブフェクトの上下関係等がわからなくなる場合がある。本実施形態によれば正方形を台座として原点付近に配置しこれを同時に表示することで、利用者は表示されているデータの上下関係等を的確に、且つ直観的に認識することが出来る。また、該正方形大きさを入力されるデータの分布に応じて変化させることで、観察データの対比、比較等が容易になる。更には、点列を取り囲む多面体を構成し、これをab平面に平行な正方形を用いて切断し、その切断面を別表示窓において表示するよう構成する。該正方形はL軸上を自由に移動出来るよう構成し、該切断面はこれに応じて適宜変更されるようにする。これによって多面体の立体的な把握が容易になる。
なお、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明はシステム或いは装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体を該システム或いは装置に読み出すことによって、そのシステム或いは装置が、本発明の効果を享受することが可能となる。