Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3740283B2 - Polyhedron generation method, information processing method, and recording medium - Google Patents
[go: Go Back, main page]

JP3740283B2 - Polyhedron generation method, information processing method, and recording medium - Google Patents

Polyhedron generation method, information processing method, and recording medium Download PDF

Info

Publication number
JP3740283B2
JP3740283B2 JP15590798A JP15590798A JP3740283B2 JP 3740283 B2 JP3740283 B2 JP 3740283B2 JP 15590798 A JP15590798 A JP 15590798A JP 15590798 A JP15590798 A JP 15590798A JP 3740283 B2 JP3740283 B2 JP 3740283B2
Authority
JP
Japan
Prior art keywords
color
data
point sequence
point
sequence data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP15590798A
Other languages
Japanese (ja)
Other versions
JPH11353494A (en
Inventor
尚之 西川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP15590798A priority Critical patent/JP3740283B2/en
Priority to US09/095,546 priority patent/US6556198B1/en
Publication of JPH11353494A publication Critical patent/JPH11353494A/en
Application granted granted Critical
Publication of JP3740283B2 publication Critical patent/JP3740283B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、色座標空間上に点在する点列を示す点列データの色域を求めるものに関する。
【0002】
【従来の技術】
色を構成する要素として3つの属性(明るさ、色相、彩度)があるのは広く知られていることである。これら3つの属性を各々直交する座標に割り当て、3次元ユークリッド空間で表現する例として、RGB色空間やXYZ色空間等が広く用いられている。
【0003】
様々な色空間の中でも空間内の距離と色差を結び付けたものとして均等知覚色空間というものが存在する。その中でもCIE1976−Lab空間(以下、単にLab色空間)は、色のマッピング状態や各カラーデバイスの色再現領域を解析するために、よく用いられる均等知覚色空間の一つである。色のマッピング状態や各カラーデバイスの色再現領域を解析するためには、カラーデバイスが出力する色(Lab値)を測定、又は計算で求め、該Lab色空間内にプロットする必要がある。ここで、プロットというのは、グラフにそのデータを記すことを意味する、二変数のプロットであればXY座標等の平面上における座標位置に点列等を記すが、座標が空間として構成される場合は、3Dのレンダリング機能を利用しなければならない。
【0004】
3Dのレンダリングシステムは、予め設定された観察位置を通して、ある投影面に写像される画像を生成することで空間上のオブジェクトを疑似的に二次元の画像で再現するものである。さらには、操作する利用者がより詳細にその様子を観察するために、回転や拡大縮小等の機能が付加されている場合も多い。このような機能を用いることで、色空間内に点在する色のデータを可視化することは従来より行われている。
【0005】
【発明が解決しようとする課題】
ところで、前述した3Dのレンダリング機能を提供する3次元レンダリングシステムは、多くの種類が存在する。その中でも、隠面処理の都合上、描画する三角ポリゴンの法線ベクトルを一致させなければならないものが存在する。
【0006】
しかし、従来より三角ポリゴン等で構成された多面体について、該ポリゴン群の法線ベクトルを自動処理によって一致させる手法については何ら技術開示されていない。このため、隠面処理の都合上、描画する三角ポリゴンの法線ベクトルを一致させなければならない3次元レンダリングシステムにおいては、法線ベクトルが不揃いのポリゴン群を描画することは不可能であった。
【0007】
ここで、3次元レンダリングシステムにおいて、登録する三角ポリゴンの3つの頂点の順番と該三角ポリゴンの法線ベクトルの向きとの関係を、図9に基づいて説明する。
【0008】
三角ポリゴンにおける法線ベクトルを考えると、長さは一意に求められるが、その向きは必要に応じて明確に定義しなければならない。そこで、登録されている頂点の順番でみたときに、右ネジの進行方向と同じように進む方向を法線ベクトルの向きとして定義する。04→19→05と右回りで登録されている三角ポリゴンの場合は奥方向に法線ベクトルが向いており、ちょうど右ネジが右回転の時に進行する場合と同じである。一方、04→11→05と登録されている三角ポリゴンの場合は手前方向に法線ベクトルが向き、ちょうど右ネジを左回転させた時に進行する方向と同じである。この例から、04→19→05と登録されている三角ポリゴンと、04→11→05と登録されている三角ポリゴンとは、法線ベクトルが一致していないことがわかる。
【0009】
また、このような法線ベクトルが一致しない三角ポリゴン群を、上記システムにおいて表示すると、本来は描画されるべき三角ポリゴンが表示されなかったりするという問題も生じる。
【0010】
本発明は、色座標空間上に点在する点列を示す点列データ群の色域を高速に求めることができるようにすることを目的とする。
【0011】
本願請求項5記載の発明は、色座標空間上に点在する点列を示す点列データ群の色域を高速に表示できるようにすることを目的とする。
【0012】
【課題を解決するための手段】
上記目的を達成するために、本願請求項1記載の発明は、色座標空間上に点在する点列を示す点列データ群の色域を示す多面体を求めるカラー画像処理装置であって、色座標空間上に点在する点列を示す点列データ群を読み込む読込手段と、前記点列データ群から所定条件に応じてN点の点列データを抽出する抽出手段と、前記N点のデータに基づきN面体を生成する生成手段と、前記点列データ群から前記N面体の内含点列を示す点列データを除外する除外手段と、前記N面体の内含点列を示す点列データを除外した点列データ群を用いて、前記N面体から前記色域を示すM面体(M>N)を生成し、該M面体を構成する頂点データを格納部に格納する生成手段とを有することを特徴とする。
【0013】
本願請求項5記載の発明は、カラー画像処理装置に適用可能なカラー情報処理方法であって、色座標空間上に点在する点列を示す点列データ群を読み込み、前記点列データ群から所定条件に応じてN点の点列データを抽出し、前記N点のデータに基づきN面体を生成し、前記点列データ群から前記N面体の内含点列の点列データを除外し、前記N面体の内含点列を示す点列データを除外した点列データ群を用いて、前記N面体から前記色域を示すM面体(M>N)を生成し、該M面体を構成する頂点データを格納部に格納し、前記M面体を構成する頂点データを用いて、前記色域を示すM面体を表示部に表示させることを特徴とする。
【0017】
【発明の実施の形態】
(実施形態1)
まず、多面体生成処理および多面体生成処理を実現するためのシステムの概略を説明する。
【0018】
第1の実施の形態を、図1ないし図6に基づいて説明する。
【0019】
まず、本実施形態の概略構成について説明する。図6は、カラー画像処理装置1における3Dのレンダリング機能を提供する3次元レンダリングシステム10(多面体生成装置)の1例を示す。
【0020】
3次元レンダリングシステム10は、データ生成手段11と、データ変更手段12と、表示手段13とを備えている。なお、14は、生成した多面体のデータを保存するファイルシステムである。15は、後述する実施の形態で用いるメモリである。
【0021】
ここで、データ生成手段11は、座標空間上に点在する点列を取り込み、検索対象辺から三角形を派生させ、該三角形の頂点を多面体を構成する三角ポリゴンのデータ群として生成する。このような多面体の生成処理によって、各三角ポリゴンの頂点を1組のデータ群としてファイルシステム14に登録してゆく。
【0022】
データ変更手段12は、多面体を構成する各三角ポリゴンの法線ベクトルを計算し、必要に応じて該法線ベクトルを適宜変更することにより、多面体を構成する全ての三角ポリゴンの法線ベクトルを一致させる。すなわち、まず、生成された多面体の内部に点を一つ設定する。通常は三角ポリゴン座標より求めた重心点は該多面体の内部に収まるので、該重心点を内部点として用いるが特に重心点である必要はない。次に、登録された三角ポリゴンの頂点データ1組のデータを取り出す。頂点データは、登録されている順序と該頂点の座標データから外積ベクトルを求め、これを法線ベクトルとする。次に、三角ポリゴンの三角形としての重心点を求め、さらに、前記内部点とのベクトルを求めることにより、内部点と三角形としての重心点とを結ぶベクトルを算出する。次に、その算出したベクトルと、前記法線ベクトルとの内積をとり、該求めたスカラー値を用いて必要に応じて、登録されている頂点データの順序を適宜入れ換える。このような処理によって、全ての三角ポリゴンの法線ベクトルを一致させる。
【0023】
表示手段13は、多面体を構成する三角ポリゴンの頂点の順序を適宜変更した後の法線ベクトルが全て一致した多面体を表示させる。
【0024】
図1は、座標空間に点在する点列を取り囲む多面体生成処理を示したフローチャートである。最初に、ステップS11において、初期化処理を行う。ここで最初の三角形の探索を行う。最初の三角形は座標空間上に点在する点列の最大値又は最小値等の極点近傍付近で探索する。次に、ステップS12において、探索対象辺を再編成し、さらに、探索対象となる辺をファイルシステム14に登録してゆく。
【0025】
ステップS13では、前記ステップS12において登録された辺を順に調べることで、検索が終了か否かの判断を行う。検索が終了していない場合はステップS14に進み、検索対象辺のアドレスへアクセスし、ファイルシステム14に登録された辺の座標データ等を取り出す。
【0026】
ステップS15では、ファイルシステム14から取り出された座標データ等をもとに、検索対象辺からの新たな三角形の派生が可能か検証し、新頂点候補を探索する。ステップS16において、新頂点候補が既に登録されたものと重複しないか等を判定した後に、新たな登録対象であった場合には、ステップS17において、ファイルシステム14に追加登録を行う。このようにして順次探索を行い、各三角形から隣接する新たな三角形を派生させ、これを登録することによって、ポリゴンデータの生成が可能となる。
【0027】
上述した図1の処理によって、図4および図5で示されるように、座標空間上に点在する点列を取り囲む多面体の生成を自動的に実行することが可能となる。
【0028】
次に、3次元レンダリングシステムにおいて、登録する三角ポリゴンの3つ頂点の順番と該三角ポリゴンの法線ベクトルの向きとの関係を、図3に基づいて説明する。
【0029】
三角ポリゴンにおける法線ベクトルを考えると、長さは一意に求められるが、その向きは必要に応じて明確に定義しなければならない。
【0030】
例えば、隠面処理を行う場合、視点の位置と多面体の位置関係に基づき隠面処理を行う三角ポリゴンが求められる。この隠面処理を高速に行う1手法として、三角ポリゴンの重心から視点へのベクトルと三角ポリゴンの法線ベクトル(右ネジの進行方向を正)の内積が負である場合にその三角ポリゴンに対して隠面処理を行う手法がある。
【0031】
そこで本実施形態では、登録されている頂点の順番でみたときに、右ネジの進行方向と同じように進む方向を法線ベクトルの向きとして定義し、多面体を構成する全ての三角ポリゴンの法線ベクトルの方向を揃える処理を行う。
【0032】
前述した図9に示した例では、04→19→05と右回りで登録されている三角ポリゴンの場合は奥方向に法線ベクトルが向いており、2つの三角ポリゴンが隣接しているのに法線ベクトルが互いに全く逆の方向を示している。このような場合において、法線ベクトルの方向を変更する。具体的には、図3に示すように、04→19→05を並び変えて、04→05→19と登録し直すことによって、法線ベクトルの方向を揃える。
【0033】
多面体を構成する三角ポリゴンの法線ベクトルの方向を全て一致させるためには、全ての三角ポリゴンの法線が外向きに設定させる必要がある。そのためには、多面体の内部の点(内部点又は重心点)から各三角形の重心点に向けてベクトルを求め、該ベクトルと法線ベクトルの内積をとり、該内積値が負数になった場合にその三角ポリゴンの頂点データの登録順序を変更するという処理を行えばよい。
【0034】
図2は、多面体を構成する全ての三角ポリゴンの法線ベクトルを一致させるために、各三角ポリゴンのベクトルを調べて頂点の登録順序を変更するデータ変更処理について説明したフローチャートである。
【0035】
まず、ステップS411において、初期化の処理を適宜行う。ステップS412のデータ読込み処理において、ファイルシステム14に記録されている三角ポリゴンの各データを読み込む。ステップS413では、読込んだ三角ポリゴンのデータの座標をもとに、多面体の重心点を計算する。ステップS421の読み出し処理では、改めて頂点座標の読み出しを行う。
【0036】
ステップS422のベクトル算出処理では、三角形の重心点を求め、前記ステップ413で求めた多面体の重心点から、該三角形の重心点へ向かうベクトルAを算出する。ステップS423の法線ベクトル算出処理では、登録されている頂点の順序に基づいて法線ベクトル成分を算出し、ステップS424の内積計算処理において、該法線ベクトルと前記ベクトルAの内積計算を行う。
【0037】
ステップS425の判定処理では、前記算出された内積値が、負数の時には、ステップS426の並替え処理へ分岐するよう構成する。ステップS426の並替え処理では、ファイルシステム14に登録されている三角ポリゴンの頂点データである2番目と3番目のデータを入れ換える処理を行う。ステップS427の終了判定処理では、ファイル構造体を参照し、読出しが終了したかの判定を行い、読出しが終了していなければステップS421の読出し処理へ戻り、終了していればステップS428の終了処理へ進み、終了処理を行う。
【0038】
以上の処理のように頂点の登録順序を適宜変更することにより、多面体を構成する全ての三角ポリゴンの法線ベクトルを一致させることができる。
【0039】
次に、実施形態1の変形例1を、図7に基づいて説明する。
【0040】
本例では、第1の実施の形態の例のように、既にファイルシステム14等に登録されているデータを読出して処理するのではなく、多面体を生成変更する処理の中で、図6に示したメモリ15を用いてデータの読出し処理を実行する。
【0041】
まず、ステップS511の初期化処理511では、適宜初期化処理を行う。ステップS152のデータ読込み処理では、ファイルシステム14に記録されている点列データを読み込む。ステップS513の検索終了判定処理では、図2のステップS13と同様な処理であり、ステップS514の検索登録処理では、図2のS14からS17までの処理とはほぼ同様な処理である。
【0042】
本例では、ここでファイルシステム14への登録を行わずに、一旦メモリ15上にデータを保持したまま、次の処理に移行する。
【0043】
ステップS515の重心点算出処理では、メモリ15上に記録されている三角ポリゴンのデータにアクセスし、多面体の重心点を算出する。ステップS521の座標取出し処理では、メモリ15上のデータに再度アクセスし、頂点の座標データを取り出す。ステップS522のベクトル算出処理では、三角形の重心点を求め、前記ステップS515で求めた多面体の重心点から、該三角形の重心点へ向かうベクトルAを算出する。ステップS523の法線ベクトル算出処理では、登録されている頂点の順序に基づいて法線ベクトル成分を算出し、ステップS524の内積計算処理において、該法線ベクトルと前記ベクトルAの内積計算を行う。
【0044】
ステップS525の判定処理では、前記算出された内積値が、負数の時にはステップS526の並替え処理へ分岐する。ステップS526の並替え処理では、メモリ15上に登録されている三角ポリゴンの頂点データである二番目と三番目のデータを入れ換える。ステップS527の終了判定処理では、登録データを参照するポインタ等を参照し、処理が終了したかの判定を行い、終了していなければステップS521の取出し処理へ戻り、終了していればステップS528の終了処理へ進み、メモリ15上のデータの書き出し、保存処理、メモリ15の解放処理等の終了処理を適宜行う。
【0045】
次に、実施形態1の変形例2を、図8に基づいて説明する。
【0046】
本例では、図4の点列データを入力した後に、図5の多面体を構成する段階で、検索できた三角ポリゴンを表示手段13に順次表示する処理を備えた場合の例である。
【0047】
まず、ステップS611のデータ読込み処理では、ファイルシステム14に記録されている点列データを読み込む。ステップS612の中心点算出処理では、各データにおける各座標成分の最大値、最小値等から多面体が構成されたときの中心点(内部点)を計算する。
【0048】
ステップS613の検索終了判定処理では、図2のS13に相当する処理であって、処理が終了するまで検索終了の判定処理を繰り返す。ステップS621の検索処理では、新たに登録すべき三角ポリゴンを検索し、これを一時領域に仮登録する。ステップS622のベクトル算出処理では、前記ステップS612で求めた多面体の中心点から、三角ポリゴンを形成する3つの頂点のいずれか一つの点へ向かうベクトル点へ向かうベクトルAを算出する。
【0049】
ステップS623の法線ベクトル算出処理では、仮登録されている頂点の順序に基づいて法線ベクトル成分を算出し、ステップS624の内積計算処理において、該法線ベクトルと前記ベクトルAの内積計算を行う。
【0050】
ステップS625の判定処理では、前記算出された内積値が、負数の時には、ステップS626の並替え処理へ分岐する。ステップS626の並替え処理では、メモリ15上に登録されている三角ポリゴンの頂点データである二番目と三番目のデータを入れ換える。ステップS627の描画処理では、法線ベクトルが適正化された三角ポリゴンを表示手段13により追加表示し、全ての検索が終了するまで順次追加作業を繰り返す。
【0051】
(実施形態2)
図5に示されるような凸型多面体を生成する方法は、ギフトラッピング法が最も基本的な実現方法として広く知られている。これは図1に示されるように、点列を入力し、該点列に対して、適当な外点を始点として各データ列を適宜操作し、繰り返し次の点列(頂点候補)を探索していくものである。
【0052】
しかしながら、この方法では対象とする点列の数が増えると、これに比例して処理時間も大きく増加するという問題が知られている。
【0053】
本実施形態では、以下の処理を行い、凸型多面体の内部の点を探索対象から除去することにより、高速な多面体の生成を実現している。
1.三次元を構成する各軸上での最大、最小値の端点(六点)を用いて八面体を形成する。
2.八面体の内含点列を除外し、処理する点列の数を減らす。
3.該内含点列を除外したデータ群に対してギフトラッピング法を適用する。また、更には、八面体を構成した後に、該八面体を構成する三角形上の点列に対して、該三角形の平面から最も遠い点列を選びだしこれを頂点とする四面体を新たに構成し、該四面体の内含点列を除外し、データ数を減少させる。この処理は複数回適宜繰り返すよう構成すれば更に効果的である。
【0054】
以下、図面を用いて多面体生成方法を詳細に説明する。
【0055】
図10はデータ点列の分布状態をXY平面に対して垂直な位置から観察したものであって、XY各軸上の最大点、最小点より四辺形を構成し、該四辺形の内部点を削除する様子を示したものである。図からも明らかなように各軸上の最大、最小値を基に構成された四辺形で取り囲まれる内部の点列は、表面を構成する点列とは成り得ないので後段の処理でも不必要であることがわかる。本発明の骨子は処理に不必要な点を削除することで処理対象のデータ数を大幅に減少させ、処理全体の高速化を実現することである。平面上のデータであれば四辺形又は三角形等の組み合わせで不必要な点を判定することが可能である。対象空間が色空間のように三次元である場合には多面体を用いて同様に不必要な点を判定することが可能である。
【0056】
図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つの三角形で囲まれることになる。
【0057】
本実施形態では、該八面体の内部に存在する点列を削除することで処理の高速化を実現する。図12は本実施形態の処理を示す概略フローチャートである。図1の多面体生成処理の前段処理として、八面体を構成する手続きステップS19と、該多面体の内部点を削除する手続き(ステップS20)を行う。この処理によって削除出来る点列の数は入力されるデータの分布状態により異なるが、例えば半径が1の球体状にほぼ均一にデータが分布しているとすれば、全体に対して約31.8(=1/π)%が削除対象となる。
【0058】
これは半径1の球体の体積(4π/3)に対して該球体に内接する八面体の体積(4/3)の割合である。実際の検討結果では、テストデータとして球体内部にランダムに生成させた435点に対する処理時間が51.8秒であったのに対して、削除処理によって対象処理データは324点に減少し、その結果処理時間は34.4秒に短縮した。その差17.4秒は、ほぼ33%の減少でありデータ数の減少率にほぼ比例する結果が出ることが判明した。
【0059】
(実施形態2の変形例)
次に、図13〜15を用いて実施形態2の変形例について説明する。
【0060】
図13に示されるように、実施形態2と同様に八面体の内部の点列を削除した後は、八面体の外部のみに点列が存在することになる。さらに、本変形例では、八面体を構成する各面の三角形その平面から最も距離が遠い点とで形成される四面体の内部に点列を削除することにより、削除する点数を増やし処理の高速化を実現する。
【0061】
まず、図13で示されるように、Xmin,Ymax,Zminの3つの点を各々点ABCとし該三点を含む平面上の点列を選択する。次に図14で示されるように該平面より最も距離の遠い点Dを頂点として四面体を形成し概四面体の内部点を削除する(ステップS25,26)。このような処理を八面体の全ての面に対して行う。更には該形成された四面体上の三角形平面に同様の処理を適宜繰り返す。全ての四面体内部に点列が存在しなくなった時に処理を終了するように構成すれば、生成された三角形の集合が与えられた点列データの外郭を覆う表面を表すことになる。
【0062】
図15を用いて処理の流れの概略を簡単に説明する。
【0063】
まず、ステップS21において初期化処理を行う。そして、ステップS22〜S24において実施形態2と同様に八面体を求め、八面体の内部の点を削除する。
【0064】
次に、八面体を構成するある面から最も距離が遠い点を探索し四面体を求め(ステップS26)、該四面体の内部の点を削除し(ステップS27)、ステップS26で探索された点を新頂点として追加登録する(ステップS28)。ステップS26〜S28の処理を八面体を構成する全ての面に対して行う(ステップS25、S29、S30)。
【0065】
そして、ステップS28により追加された新頂点と八面体を構成する8頂点に基づき、多面体を再構成し、多面体をより複雑にするか否かを判断する。多面体を複雑にする必要がある場合は、Nを再構成された多面体に応じて更新する(ステップS31)。なお、ステップS26で常に点が探索された場合はNに16が設定される。
【0066】
ステップS31においてNが更新された場合は、各面に対してステップS25〜S31の処理を繰り返す(ステップS32)。
【0067】
なお、上記本願実施形態2およびその変形例では、八面体や四面体を用いたが、例えば六面体などを用いても同様の処理を実現可能である。さらには、十二面体などの適当な多面体をもちいても同様である。
【0068】
すなわち、多面体生成処理の速度を向上させるためには、できる限り不用なデータ点列を効率よく削除すれば良いので、不用なデータ点列を削除する実施形態であれば良い。
【0069】
実施形態2によれば、空間上に点在する色データ等を包み込む多面体モデルを生成する際に、与えられた点列の数が増えても処理時間がこれに比例して大きく増加することを防ぎ効率的な多面体生成処理を行うことができる。
【0070】
(実施形態3)
凸型多面体の生成方法は、ギフトラッピング法が最も基本的な実現方法として広く知られている。凸型多面体の生成方法としては、その他にも多数存在する。
【0071】
ここで問題なのは、各々の処理速度が一概に予測することは出来ないという点である。例えば、あるデータの分布状態に応じては、最適なアルゴリズムが存在しても、別の分布状態を持つデータ群に関しては逆に速度が低下する場合も考えられる。よって理想的にはデータの分布状態に応じて最も最適なアルゴリズムを適応的に選択しなけれな意味が無いことになる。
【0072】
そこで、実施形態3は、データの分布状態に適したアルゴリズムを選択する方法を提供する。
【0073】
複数の解析アルゴリズムを予め用意し、定型的なデータ群に対しては、処理に最適な生成アルゴリズムを対応づけるタグを割り当て、解析実行に入る段階で該タグを用いて適宜処理を切替えるよう構成する。
【0074】
複数のアルゴリズムが並列処理可能なシステムにおいて、不定型的なデータ群に対しては、データの分布状態等を統計的に解析し、処理に最適な生成アルゴリズムを複数個候補として列挙させ、これを同時に起動させた後に、中間処理結果を調べることで、入力データ群に対応した最適なアルゴリズムを一意に決定し、不要になったプロセスを途中で抹消し該プロセスが確保した計算機資源を解放させるよう構成する。
【0075】
図16を用いて、定常的な実験又は測定により得られる特徴的なデータ列に対して、その入力データに応じたタグを割り振り、該タグによって適用するアルゴリズムの種類を選択する処理を説明する。
【0076】
複数のデータが各々データセレクタに入力される。各々のデータは各々異なる状況で測定されたデータ群であって、例えば、データ1はカラーインクジェットプリンタで出力された色を測定したデータ群、データ2はカラーLBPで出力された色を測定したデータ群で出力されたものとする。ここで、データ1にはアルゴリズムAの処理が、データ2にはアルゴリズムBの処理が各々最適であることが予め実験的に判明している場合を想定すると、これらデータ群に多面体生成処理に用いるアルゴリズムを指定するためのタグデータを付加する。
【0077】
タグデータが付加されたデータ1又は2を入力すると、図6の3次元レンダリングシステムに含まれるタグ解析処理部30(不図示)がデータに付加されたタグデータを解析し、該データに適したアルゴリズムを選択し、図6のデータ生成手段において実行される多面体生成処理において選択されたアルゴリズムを使用するように制御する。
【0078】
データ1が入力された場合は、タグ解析処理部30がタグAを解析し、アルゴリズムAを選択する。
【0079】
データ2が入力された場合は、タグ解析処理部30がタグBを解析し、アルゴリズムBを選択する。
【0080】
上述した処理により、定型的に行われる測定や解析に対しては、タグデータにより最適なアルゴリズムの選択を用いて多面体生成処理を行うことができる。したがって、常に短時間で多面体生成処理を行うことができる。
【0081】
次に、データの分布状態が不定な入力データに対して適切なアルゴリズムを選択する処理を図17を用いて説明する。
【0082】
まず与えられたデータ列に対してデータ解析を行い、その解析結果に応じて適用アルゴリズムの候補を列挙し、該列挙された候補の数の分だけプロセスをフォークし、該アルゴリズムを各々に並列計算機上で同時に処理を開始させる。処理が開始されてから暫く後に、処理の結果を調査し、該調査結果に基づいて最適なアリゴリズムを唯一選択決定し、処理の途中から利用可能な計算資源を選択決定されたアリゴリズムのみに割り当てることで処理時間の短縮を実現する。
【0083】
カラープリンタ(機種不問)で出力された色を測定したデータ群であるデータ3を入力する。まず、データ解析処理部31においてデータ3を解析し、データ生成手段11が有する複数のアルゴリズムA,B,Cから幾つかの候補を決定する。
【0084】
そして、例えば、データ3に対してアルゴリズムB,Cが候補として選択された場合は、データ生成手段11において、2つのアルゴリズムB,Cに基づく処理を同時に起動(フォーク)するように制御する(候補決定&フォーク32)。
【0085】
同時に起動された処理(B,C)は、所定タイミングにおいて処理したデータ数(又は処理進行度)を示す中間報告信号をプロセス監視処理部33に通知する。プロセス監視処理部33は中間報告信号に基づきデータ3に最適なアルゴリズムを選択し、制御信号によって選択されなかった処理を停止させる。
【0086】
そして、選択された処理を継続させることにより、データ3に対する多面体生成処理を完結させる。
【0087】
マルチタスクに動作する計算機上では、資源を有効に解放することで単一プロセスの処理速度を上げることが可能となるので結果的に最速で処理を終了させることが可能である。
【0088】
なお、データ解析処理部31(不図示)は図6の3次元レンダリングシステム10に含まれている。また、その他の処理部はデータ生成手段の機能である。
【0089】
図18に、図16及び図17の処理機能を有する本実施形態の構成の1例を示す。図18において、図16、17と同一の機能については同一の符号を付け説明を割愛する。
【0090】
データセレクタ35は、入力されたデータを解析し、データに多面体生成処理のアルゴリズムを指定するタグが付加されているか否かを判定する。そして、タグが付加されている場合は図16に示す処理を行い、タグが付加されていない場合は図17に示す処理を行うように制御する。
【0091】
本実施形態によれば、空間上に点在する色データ等を包み込む多面体モデルを生成する際に、与えられた点列データがどのような分布状態であっても特にそれを気にすることなく、自動的に該分布状態に応じた最適なアルゴリズムが適宜選択実行され、常に高速な処理結果を得ることが可能となる。
【0092】
(実施形態4)
モニター上のカラー画像をカラープリンタで出来る限り忠実に再現する技術はカラーマッチングと呼ばれており近年、広く利用されている技術の一つである。通常モニターの色再現領域は広く、プリンターのそれは狭い。つまり、モニター上の色、全てがプリンタで再現出来るわけではない。この問題を解決する為に色空間圧縮なる技術が用いられる。この色空間圧縮は様々な方法と圧縮率で複数存在する。これは利用されるケースに応じて適宜選択、または割当てられるものである。その際に問題となるのは適用される方法がどのように作用するのかが利用者にわかり辛いというものである。
【0093】
本実施形態では、実施形態1〜3で説明した3Dレンダリング機能を用いて色空間圧縮の作用を視覚的にわかり易くした方法を説明する。
【0094】
まず、本実施形態の概略を説明する。
【0095】
まず始めに空間上の色再現領域を表現する三角ポリゴンデータ群を一意に算出するモデリング手段を用意し、該モデリング手段を用いて、選択モニターの色再現領域と、該選択モニターを色空間圧縮で圧縮した後の色再現領域を表現するモデルデータを生成し、各々のポリゴンデータに適切な透過属性を持たせ、これを3D表示する。利用者は3D表示された2つの色再現領域を参照しながら、印刷の際に気になる特定色をその中へ追加表示し、所望の特性を持つ色空間圧縮方法を自由に選択するよう構成する。
【0096】
これにより従来よりわかりずらかった色空間圧縮のマッピングが三角形のポリゴンデータを用いることで高速に可視化できる為に利用者に、より迅速で最適なカラードキュメント印刷環境を提供することが可能となる。
【0097】
以下、図面を参照しながら本実施形態について詳細に詳説する。
【0098】
図19は本実施形態を実装したカラープリンタードライバの内部処理の概略ブロック図である。ここでは、ドライバの内部処理の中でも特に設定処理、及び該各設定により変更される色変換処理の動作について詳細に説明を行う。ここでは便宜上以下のようなシステムと過程して解説を行う。ドライバーはホストコンピュータのOSに組み込まれている。該ホストに接続されるモニタはA,Bタイプの二種類があり、いずれもフルカラー表示が可能である。出力プリンタは該ホストコンピュータのプリンタインターフェイスに直接接続されるローカルプリンタであってやはりフルカラー画像の出力が可能である。利用者は該ホストコンピュータ用いてカラードキュメントを作成し、これをカラープリンタ装置を用いて出力する。作成されるカラードキュメントは、モニタに表示されながら編集等の操作が加えられる。出力されたカラードキュメントの色はモニタに表示されたものと一致するよう該ドライバ内部でカラーマッチング処理が行われる。
【0099】
カラーマッチングのオプションとして、1:色相優先タイプと、2:彩度優先タイプの二種類を用意しておき、各ドキュメントに応じて適宜変更出来るように構成されている。これらは共に色空間圧縮方法を用いているが圧縮の方法が異なるタイプである。以下では便宜上カラーマッチングオプションと色空間圧縮方法は同義に扱う。また、CIE−1976Lab値を省略して単にLab値とする。さらには、ドライバーをOSに組み込んだ時点では、モニタはAタイプ、カラーマッチングオプションは、1:色相優先タイプがデフォルトとして設定されるとして扱う。
【0100】
画像データ101はプレビュー画像生成処理111によってプレビュー画像に変換された後、モニタ120上に表示される。利用者はこのプレビュー画像を参照しながら画像中の特定の色を選定し色指定入力手段113へ入力する。例えば、画像データは棒グラフを含むものであった場合に、棒グラフ中で特に気になる色(例えば紺青色等)を選定し、該選定色の値(RGB値)をキーボード装置やマウス操作等で入力する。モニタタイプやカラーマッチングオプションは各々、モニタ指定手段114とカラーマッチングオプション指定手段115により指定されており、該設定はドライバーの設定画面で変更可能である。プロファイルセレクタ112は、モニタータイプとカラーマッチングオプションの組み合わせにより指定されるプロファイルデータ(A1,A2,B1,B2の4つの中からいずれか一つ)をプロファイル格納ファイル131の中より選択し、これを色変換処理102へ引き渡す。色変換処理102は、印刷が開始されると画像データ101を入力とし、前記設定により指定されるプロファイルを用いて適切な色変換処理を行い印刷用の出力データ103を出力する。
【0101】
図20は図19におけるレンダリング処理部116の内部を示した概略ブロック図である。モデルデータ選択手段221は、モニタータイプとマッチングオプションの組み合わせにより指定されるモデルデータ(A1,A2,B1,B2の4つの中からいずれか一つ)をモデル格納ファイル211の中より選択しこれを合成処理231へ引き渡す。ここでは、色再現範囲を可視化するために、三角ポリゴン群で表面を構成する多面体を用いてこれを表現する。
【0102】
モデルデータはモデリング手段により予め用意されておりモニターの色再現範囲と色空間圧縮後の色再現範囲と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
【0103】
また、色指定入力手段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
【0104】
本実施形態ではレンダリングの空間としてxyz軸で構成される(3次元ユークリッド)空間を想定している。ここでは、該空間にLab空間を当てはめるので各々の座標値はLab値と等価となる。また、便宜上L軸はx軸、a軸はy軸、b軸はz軸として扱う。合成処理231では選択されたモデルのデータ(上記Model−A1)と座標位置算出手段223での出力ファイル(上記Model−Point)を合成し一つのファイルとして3次元レンダラー処理232へ引き渡す。該レンダラー処理では指定された3次元上のオブジェクトから二次元の画像を生成しディスプレィ装置へ表示するよう構成されている。
【0105】
図21は、モデルデータを作成するモデリング手段の処理の概略を示したフローチャートである。
【0106】
まず始めにステップ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表示されている多面体の表面かその内部にサンプル点が隠れるように、または三角形の表面が各サンプルから遠過ぎた場合は凹面を適当に構成してより良い近似を得るように三角ポリゴンを構成していく。ここで、より精度の高い近似を行う場合はより多くのサンプルを用いて、全ての点を慎重に選択していけば良い。
【0107】
なお、モデリング手段とし実施形態1〜3で説明したデータ生成手段11及びデータ変更手段12を用いても構わない。実施形態1〜3で説明した方法を用いると空間内に散在する点列に対して幾何学的な計算を施し自動的にかつ高速に多面体を生成することができる。
【0108】
図23は実際の3D表示の様子を示したサンプル例である。ここで多面体510はモニタ上の色再現領域を示しており、三角ポリゴンは辺のみで描画されている。一方多面体520は色空間圧縮後の色再現領域を示しており、三角ポリゴンは辺と面で描画されている。本実施形態の3D表示では隠面処理を行う為、常に手前にあるポリゴンしか描画されず、よって多面体520の内部は不可視となる。点531は指定色の色空間圧縮前の位置、点532は色空間圧縮後の位置を示している。
【0109】
ユーザは出力するドキュメントに応じた最適なマッチングオプションを切替えながら複数の指定色を各々マッピング状態を確認しながら最終的に各々の印刷に最適なマッチングオプションを選択することが可能となる。
【0110】
なお、図23では指定色を1色しか表示していないが、ユーザの指示に基づき複数色を同時に表示することも可能である。ただし同時に複数色を表示させた場合は視点を各色の位置関係により、隠面処理によって表示されない色が生じる可能性がある。
【0111】
(実施形態4の変形例1)
次に図24を参照しながら実施形態4の変形例1について解説する。図24は図19のレンダリング処理部116に相当する処理を説明した概略ブロック図である。色再現領域を表現するモデルデータを予め用意するのではなくて、処理系の中にモデルデータ生成機能を持つことで随時、選択されたモニタやマッチングオプションに応じたモデルデータを生成するという点である。ここでは空間上の色再現領域を凸面体生成アリゴリズムによって算出するモデリング手段を用意する。凸面体生成アリゴリズムは既に多くの手法が提案されているのでここでは特に解説しない。
【0112】
モデルデータ生成は、まず選択されたモニターの色再現領域に対して行う。モニタデータ1601には現在選択されているモニタの色特性情報が格納されていて、これを用いてモデリング手段1611は125点のサンプルを生成し、各点のLab値を求める。これら空間上の点列群を覆い包む表面ポリゴン(三角形)を凸多面体生成アルゴリズムによって自動生成する。生成されたモデルデータには処理1612において透過属性がそれぞれ付けられる。以下にその例を示す。ここでは、TransparentBegin()文とTransparentEnd文で囲まれたPolygonの面が透過属性を持ちその透過率TransparentBegin()文のパラメータで指定する。ここで100%の透過率を設定すると外郭を表現しているポリゴンそのものが見えなくなるので、本実施例では80%(指定値は100分の1で0.8となる)の透過率を設定する。
【0113】
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
【0114】
次にモデルデータ生成は、色空間圧縮後の色再現領域に対して行う。モニタデータ1611と、現在選択されている色空間圧縮方法を示すカラーマッチングオプションハンドル1630を色空間圧縮計算手段1613へ引き渡し、色空間圧縮後の125点のサンプルを生成し、各点のLab値を求める。モデリング手段1614ではこれら空間上の点列群を覆い包む表面ポリゴンを凸多面体生成アルゴリズムによって自動生成する。ここでは透過属性は付加されない。
【0115】
座標位置算出手段1615では、モニターデータ1611、カラーマッチングオプションハンドル1630、色指定手段1616で指定された特色の色のRGB値、各々が入力され現在選択されているモニタにおける指定色の座標位置が求められる。ここで座標位置は色空間圧縮前と後の二点が求められ合成処理1620へ引き渡される。
【0116】
合成処理1620では、色空間圧縮前のモニタ色再現領域のポリゴンデータと、色空間圧縮後のモニタ色再現領域のポリゴンデータと、指定色の座標位置2点(色空間圧縮前と後)のポイントデータを合成し、該データを三次元レンダラー処理1621へ引き渡す。このレンダラー処理では指定された3次元上のオブジェクトから二次元の画像を生成しディスプレィ装置へ表示を行う。ユーザは表示の様子を見ながら、出力するドキュメントに応じた最適なマッチングオプションへ変更することが可能である。
【0117】
(実施形態4の変形例2)
図25を参照しながら実施形態4の変形例2について解説する。図25は図19のレンダリング処理部116に相当する処理を説明した概略ブロック図である。本変形例では、色再現領域を表現するモデルデータを予め用意するのではなくて、処理系の中にモデルデータ生成機能を持つことで随時、選択されたモニタやマッチングオプションに応じたモデルデータを生成する。ただ、一つ大きく相違する点として色空間圧縮後の色再現領域を表現するポリゴンに第二の透過属性を持たせることである。
【0118】
モデルデータ生成は、まず選択されたモニターの色再現領域に対して行う。モニタデータ701には現在選択されているモニタの色特性情報が格納されていて、これを用いてモデリング手段711は125点のサンプルを生成し、各点のLab値を求める。これら空間上の点列群を覆い包む表面ポリゴン(三角形)を凸多面体生成アルゴリズムによって自動生成する。生成されたモデルデータには処理712において第一の透過属性がそれぞれ付けられる。ここで100%の透過率を設定すると外郭を表現しているポリゴンそのものが見えなくなるので、本実施例では第一の透過属性として80%(指定値は100分の1で0.8となる)の透過率を設定する。
【0119】
次にモデルデータ生成は、色空間圧縮後の色再現領域に対して行う。モニタデータ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
【0120】
座標位置算出手段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
【0121】
合成処理720では、色空間圧縮前のモニタ色再現領域のポリゴンデータと、色空間圧縮後のモニタ色再現領域のポリゴンデータと、指定色の座標位置2点(色空間圧縮前と後)のポイントデータを合成し、該データを三次元レンダラー処理721へ引き渡す。このレンダラー処理では指定された3次元上のオブジェクトから二次元の画像を生成しディスプレィ装置へ表示を行う。
【0122】
図26は本変形例の3D表示の様子を示した例である。ここで多面体810はモニタ上の色再現領域を示しており、これを表現している三角ポリゴン群は辺と透過率80%の面で描画されている。一方多面体820は色空間圧縮後の色再現領域を示しており、これを表現している三角ポリゴン群は辺と透過率20%の面で描画されている。本実施形態の3D表示では透過属性が設定されていないものと透過属性が設定されててもその透過率が0%のポリゴンに対しては隠面処理を行うが、それ以外のものでは透過属性を考慮してポリゴンの重なりも表示するよう構成している。よって図で示されるように仮に点832が色再現領域820の中に入り込んでいても透過属性が設定されている為に、点832は手前のポリゴン越しに見えることになる。また、点831は指定色の色空間圧縮前の位置、点832は色空間圧縮後の位置であって、これを矢印線で結線することで視覚的な認識が正しく行えるように工夫している。ユーザはこれらの表示の様子を見ながら、出力するドキュメントに応じた最適なマッチングオプションを自由に選択することが可能である。
【0123】
以上述べた実施形態以外にも以下のような実施形態が考えられる。
【0124】
1.モニタデータ601はカラーマネージメントシステムにおいて、各カラーデバイスに割り当てられたプロファイルから得た情報でも良い。
【0125】
2.モデリング手段611とモデリング手段614は説明の都合上、別手段としてブロック図としたが、実装上同じブロックとしても良い。
【0126】
3.色空間圧縮はモニタの色再現領域を圧縮したものであったが、これに限定されるものではない。ソース側とディステネーション側はあらゆるカラーデバイスがその対象となる。更には本実施例1〜3においては体積的な縮小が色空間圧縮であるように扱ったが、その限りではない。逆に色空間慎重でも色空間移動でも同様に処理が可能である。
【0127】
4.色再現領域を多面体の表面で表現する際の基本面構成として三角ポリゴンを用いているが、四角形ポリゴンと三角ポリゴンの組み合わせや、五角形ポリゴンと三角ポリゴンの組み合わせを用いても良い。また、微小な三角ポリゴンで自由曲面を近似したものでも構わない。
【0128】
5.色再現領域を多面体の表面で表現する際の基本面構成として三角ポリゴンを用いて、その3つの頂点の座標に、その座標位置における色を算出して、各頂点に該当色を、頂点と頂点を結ぶ辺や面には、各頂点の該当色を基に補間により求めた色を割り当てるよう構成する。
【0129】
6.プリンタの接続はローカルであってもそれ以外であっても良い。また、システムに組み込んだプリンタドライバ以外での処理でも同様に実現可能である。例えばユーティリティソフト、アプリケーションソフトや、またはアプリケーションソフトに接続するプラグイン形式、または、ヘルパーアプリケーションであっても良い。もちろん、カラーマネージメントシステムにおけるカラープロファイルを作成すプロファイルメイカーでこれを実現しても良い。
【0130】
7.モデルデータは予め用意しても、随時必要な時に作成しても、またはある時点において作成したデータをキャッシングしたものであっても良い。更には、プロファイルデータ内部にそのデータを格納しても、一時的な作業領域(メモリ又はファイル)に格納しても良い。
【0131】
8.三次元の表示に際しては、マウス等の入力デバイスを用いて、リアルタイムに移動、回転、縮尺等が可能であって、自由な位置から三次元データを観察することが可能であるよう構成を提供しても良い。
【0132】
9.透過属性を指定する代わりに、ある入力を基に隠面処理を切替える等の工夫をすることでポリゴンで覆われた表面の内部の点を観察出来るよう構成しても良い。
【0133】
以上述べた他にも様々な実施形態が考えられるが実質的には色再現領域を表現する際に、表面に三角形ポリゴンを用いた多面体を用いるものであれば、これに付随するその他の技術の手法により本願発明が限定されるものではない。
【0134】
実施形態4及びその変形例によれば、従来よりわかりずらかった色空間圧縮処理によるマッピングの状態を、三次元表示システムを用いて効率的に可視化することが可能となった。色空間圧縮前と色空間圧縮後における色再現領域の変化を重ね表示で同時にこれを比較することが可能となり、また、三角ポリゴンを用いることでデータ量が減少し、処理の高速化が計れた結果、従来より困難であったデータのリアルタイムな回転、縮尺が行なえる等、より自由な位置からインタラクティブに三次元データを観察することが可能となった。また、特定色を指定して該当色が、実際にどのようにマッピングされるか等を観察することで、実際のカラー印刷過程における課題を直接的に解析することが可能である。その結果、様々な色空間圧縮方法の中から所望の特性を持った種類を迅速に設定または選択することが可能となる。
【0135】
(実施形態5)
3Dレンダリング機能を用いて、空間上のオブジェクトを観察する際に、利用者が回転や拡大縮小等の操作を頻繁に繰り返して行なった場合には、そのオブフェクトの本来の上下関係等がわからなくなる場合がある。従来より座標軸等を同時に描画したり別の表示窓に方角等を表示する等の工夫もみられたが、直観性に欠けている。特に3Dレンダリングシステムを対話的に用いる場合は、システム自身が利用者の操作に対して即座に応答する程度の高速表示が要求されると同時に、利用者が表示されているデータを的確、且つ直観的にその状態が認識できるよう構成されてなければならない。
【0136】
そこで、本実施形態では、Lab色空間のab平面に平行な正方形を用意し、該正方形の中心点を原点に重ね合わせ、同時に表示することにより、利用者が表示されているデータの状態を直観的に認識できるようにした。この表示が必要ない時は利用者の操作によって随時消去可能とする。
【0137】
図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平面に平行であって、その重心点は原点と一致するように設定される。
【0138】
図28は、色再現領域を示すデータ群により生成された多面体P1に、該データ群に基づき図27の処理により生成された正方形P2を、3Dレンダリングシステムを用いて合成し、表示した画像を示す。
【0139】
図28では、多面体の表面の様子を観察することができるが、その内部を観察することができない。そこで、図29のP3に示されるように、多面体を構成する三角形を面で表現するのではなく、辺のみで再現することによりその内部を観察できるようにする。
【0140】
P3のように表示するには、実施形態4で説明した透過率を制御することにより簡単に実現することができる。
【0141】
すなわち、利用者が図28(P1)又は図29(P3)のいずれのモードを設定するかに応じて色再現領域に関する透過率を制御することにより、本実施形態を実現することができる。
【0142】
利用者はこの2つの画像を適宜切替えて観察することで詳細にデータの解析を行なうことができる。
【0143】
また、ある輝度値における色再現領域の状態を詳細に観察することも色再現領域を把握する際に重要である。
【0144】
そこで、図30のようなユーザーインターフェースを提供する。
【0145】
入力されたLab値の点列データ群に対して、多面体生成処理を施し多面体P4を得、これを3Dレンダリングシステムを用いて、表示窓R1に表示する。表示窓R1の左端には、スライド領域R2内で自由に移動するスライドバーR3ある。これを任意の位置へ移動するに伴ってab平面に平行な正方形P5が移動する。該正方形は多面体P4と重なっている場合には、必要に応じてその重なり部分が別の表示窓に適宜表示される。表示窓R43は図6で表示されているR5の位置における、その重なり部分を断面P6として表示している。表示窓R41、表示窓R42は、それ以前のP5の位置における重なりを示した表示窓であって、必要に応じて生成、保持、廃棄可能である。
【0146】
なお、P6では、多面体の頂点だけでなく、該頂点データを抽出したデータ群(例えば、図21のステップ301で入力される125点のサンプルデータ)に含まれる頂点以外のデータも表示している。これにより、多面体の精度の度合い及びサンプルデータを出力したデバイスの色再現性を確認することができる。
【0147】
図28、図29、図30を用いて説明した3Dレンダリングシステムを用いた色再現領域を表示する方法以外にも以下のような形態が考えられる。
【0148】
1.拡大縮小を施した複数の画像を扱う場合に、その縮尺による違い等が容易に認識が出来るよう、規定の長さの正方形に置き換えて表示することが出来るよう構成する。
【0149】
2.回転による操作で変化する上下関係がより容易に認識出来るよう、正方形の表と裏で異なる配色を適用する。
【0150】
3.内部の点列の様子を示す為に、三角ポリゴンの面に透過属性を持たせる。これによって色再現領域を常に認識しながら且つ内部の点の様子も観察することが可能となる。
【0151】
4.ある特定色のグラデーションを定義して、そのグラデーションの変化を線分による表現することで、色の変化、及び、色再現領域との位置関係等が観察出来るよう構成する。
【0152】
5.回転や拡大縮小等によってオブジェクトが所望の位置に表示されていない時には、予め登録済みのアイコンを選択することで、現在の表示状態を廃棄し、即座に登録された表示状態に切り替わる(回転、拡大縮小)よう構成する。
【0153】
以上述べた他にも様々な実施形態が考えられるが実質的には、色の解析を行なう目的で三次元の表示システムにおいて多面体モデルを表示し、これを回転、拡大縮小等の操作を行なう際、利用者がより扱い易いよう工夫したものは全て本発明と同質である。
【0154】
従来より三次元空間上のオブフェクトを観察する際に、利用者が回転や拡大縮小等の操作を頻繁に繰り返して行なった場合には、そのオブフェクトの上下関係等がわからなくなる場合がある。本実施形態によれば正方形を台座として原点付近に配置しこれを同時に表示することで、利用者は表示されているデータの上下関係等を的確に、且つ直観的に認識することが出来る。また、該正方形大きさを入力されるデータの分布に応じて変化させることで、観察データの対比、比較等が容易になる。更には、点列を取り囲む多面体を構成し、これをab平面に平行な正方形を用いて切断し、その切断面を別表示窓において表示するよう構成する。該正方形はL軸上を自由に移動出来るよう構成し、該切断面はこれに応じて適宜変更されるようにする。これによって多面体の立体的な把握が容易になる。
【0155】
なお、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明はシステム或いは装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体を該システム或いは装置に読み出すことによって、そのシステム或いは装置が、本発明の効果を享受することが可能となる。
【0156】
【発明の効果】
本願請求項1記載の発明によれば、色座標空間上に点在する点列を示す点列データ群の色域を高速に求めることができる。
【0157】
本願請求項5記載の発明によれば、色座標空間上に点在する点列を示す点列データ群の色域を高速に表示することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態である多面体を構成するポリゴンデータの生成時におけるデータ変更処理を示すフローチャートである。
【図2】多面体を構成するポリゴンデータの生成処理を示すフローチャートである。
【図3】三角ポリゴンの登録する頂点の順序と法線ベクトルとの関係において、法線ベクトルの向きが一致する場合の例を示す説明図である。
【図4】座標空間に点在する点列を示す説明図である。
【図5】座標空間に点在する点列を取り囲む多面体の構成を示す説明図である。
【図6】3次元レンダリングシステムの構成例を示すブロック図である。
【図7】第1の実施の形態の変形例1のフローチャートである。
【図8】第1の実施の形態の変形例2のフローチャートである。
【図9】三角ポリゴンの登録する頂点の順序と法線ベクトルとの関係において、法線ベクトルの向きが互いに異なる1例を示す説明図である。
【図10】多角形の内部点列を除外する様子を示した概説図。
【図11】三次元空間内でXYZ各軸上の最大、最小点の六点を選択し該六点から構成される多面体を示した概観図。
【図12】実施形態2の処理を示した概略フローチャート。
【図13】実施形態2の変形例において、三角平面上の点列を選択する様子を示した概念図。
【図14】実施形態2の変形例において、四面体の構成と内部点列を選択する様子を示した概念図。
【図15】実施形態2の変形例の処理を示した概略フローチャート。
【図16】データに付加されているタグに基づき多面体生成処理アルゴリズムを選択する処理を説明する図。
【図17】データを解析して、適したアルゴリズムを選択する処理を説明する図。
【図18】実施形態3の構成を説明する図。
【図19】実施形態4における全体処理を説明した概略ブロック図。
【図20】レンダリング処理116の内部処理を説明した概説ブロック図。
【図21】モデリデータを生成するモデリング過程を説明した概略フロー図。
【図22】隣接する三角形ポリゴンが新たな頂点により分割される様子を示した概説図。
【図23】三次元表示の例を示したサンプル図。
【図24】実施形態4の変形例におけるレンダリング処理の内部処理を説明した概説ブロック図。
【図25】実施形態4の変形例2におけるレンダリング処理の内部処理を説明した概説ブロック図。
【図26】三次元表示の例を示したサンプル図。
【図27】入力されたデータ点列の分布に応じて正方形の長さを変更する処理を概説した概略フローチャート。
【図28】Lab空間に点在する色データの色再現領域を多面体で表現し、これに正方形の平面オブジェクトを原点位置に配置し、共に3Dのレンダリングシステムで表示した様子を示した例。
【図29】Lab空間に点在する色データの色再現領域を多面体で表現し、これを構成する三角ポリゴンを面で描画した場合と、線分のみで描画した場合とを比較した例。
【図30】空間内に存在する多面体に対して、これを任意の位置で切断した場合の切断面を別の表示窓で表示した表示例。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a method for obtaining a color gamut of point sequence data indicating a sequence of points scattered in a color coordinate space.
[0002]
[Prior art]
It is widely known that there are three attributes (brightness, hue, and saturation) as elements constituting a color. As an example of assigning these three attributes to orthogonal coordinates and expressing them in a three-dimensional Euclidean space, the RGB color space, the XYZ color space, and the like are widely used.
[0003]
Among various color spaces, there is a uniform perceptual color space as a combination of distance and color difference in the space. Among them, the CIE 1976-Lab space (hereinafter simply referred to as “Lab color space”) is one of uniform perceptual color spaces often used for analyzing the color mapping state and the color reproduction region of each color device. In order to analyze the color mapping state and the color reproduction area of each color device, it is necessary to measure or calculate the color (Lab value) output from the color device and plot it in the Lab color space. Here, the plot means to write the data on the graph. In the case of a two-variable plot, a point sequence or the like is written at the coordinate position on the plane such as the XY coordinates, but the coordinates are configured as a space. In that case, a 3D rendering function must be used.
[0004]
The 3D rendering system reproduces an object in space as a two-dimensional image in a pseudo manner by generating an image mapped onto a certain projection plane through a preset observation position. Furthermore, functions such as rotation and enlargement / reduction are often added in order for the operating user to observe the situation in more detail. By using such a function, it has been conventionally performed to visualize color data scattered in a color space.
[0005]
[Problems to be solved by the invention]
There are many types of 3D rendering systems that provide the 3D rendering function described above. Among them, there are some which need to match the normal vectors of the triangular polygons to be drawn for the convenience of hidden surface processing.
[0006]
However, there is no technical disclosure of a technique for matching the normal vectors of the polygon group by automatic processing for a polyhedron composed of triangular polygons. For this reason, in the three-dimensional rendering system in which the normal vectors of the triangular polygons to be drawn must coincide with each other because of hidden surface processing, it has been impossible to draw a polygon group having irregular normal vectors.
[0007]
Here, in the three-dimensional rendering system, the relationship between the order of the three vertices of the registered triangular polygon and the direction of the normal vector of the triangular polygon will be described with reference to FIG.
[0008]
Considering the normal vector in a triangular polygon, the length is uniquely determined, but its direction must be clearly defined as necessary. Therefore, when viewed in the order of the registered vertices, the direction of the normal vector is defined as the direction of advance in the same way as the direction of the right-handed screw. In the case of a triangular polygon registered in the clockwise direction of 04 → 19 → 05, the normal vector is directed in the back direction, which is the same as the case where the right screw advances when it rotates clockwise. On the other hand, in the case of a triangular polygon registered as 04 → 11 → 05, the normal vector is directed in the forward direction, which is the same as the direction that proceeds when the right screw is rotated counterclockwise. From this example, it can be seen that the normal vectors of the triangular polygon registered as 04 → 19 → 05 and the triangular polygon registered as 04 → 11 → 05 do not match.
[0009]
In addition, when such a triangular polygon group whose normal vectors do not match is displayed in the above-described system, there is a problem that a triangular polygon that should be originally drawn may not be displayed.
[0010]
An object of the present invention is to make it possible to obtain a color gamut of a point sequence data group indicating a sequence of points scattered in a color coordinate space at high speed.
[0011]
It is an object of the present invention to display a color gamut of a point sequence data group indicating a sequence of points scattered in a color coordinate space at high speed.
[0012]
[Means for Solving the Problems]
In order to achieve the above object, the invention described in claim 1 of the present application is a color image processing apparatus for obtaining a polyhedron indicating a color gamut of a point sequence data group indicating a point sequence scattered in a color coordinate space, Reading means for reading a point sequence data group indicating a point sequence scattered in the coordinate space; extraction means for extracting N-point point sequence data from the point sequence data group according to a predetermined condition; and the N point data Generating means for generating an N-hedron based on the above, exclusion means for excluding the point sequence data indicating the included sequence of the N-plane from the point sequence data group, and point sequence data indicating the included sequence of the N-plane Generation means for generating an M-hedron (M> N) indicating the color gamut from the N-hedron using the point sequence data group excluding the M-hedron, and storing vertex data constituting the M-hedron in a storage unit It is characterized by that.
[0013]
The invention according to claim 5 of the present application is a color information processing method applicable to a color image processing apparatus, which reads a point sequence data group indicating a point sequence scattered in a color coordinate space, and from the point sequence data group N-point point sequence data is extracted according to a predetermined condition, an N-face body is generated based on the N-point data, and the point-sequence data included in the N-plane body is excluded from the point-sequence data group, An M-hedron (M> N) indicating the color gamut is generated from the N-hedron using a point-sequence data group excluding point-sequence data indicating the included point sequence of the N-hedron, and the M-hedron is configured. Vertex data is stored in a storage unit, and an M-hedron indicating the color gamut is displayed on a display unit using vertex data constituting the M-hedron.
[0017]
DETAILED DESCRIPTION OF THE INVENTION
(Embodiment 1)
First, an outline of a system for realizing polyhedron generation processing and polyhedron generation processing will be described.
[0018]
A first embodiment will be described with reference to FIGS.
[0019]
First, a schematic configuration of the present embodiment will be described. FIG. 6 shows an example of a three-dimensional rendering system 10 (polyhedron generation device) that provides a 3D rendering function in the color image processing apparatus 1.
[0020]
The three-dimensional rendering system 10 includes a data generation unit 11, a data change unit 12, and a display unit 13. Reference numeral 14 denotes a file system for storing the generated polyhedron data. Reference numeral 15 denotes a memory used in an embodiment described later.
[0021]
Here, the data generation means 11 takes in a sequence of points scattered in the coordinate space, derives a triangle from the search target side, and generates the vertex of the triangle as a data group of triangular polygons constituting the polyhedron. Through such polyhedron generation processing, the vertices of each triangular polygon are registered in the file system 14 as a set of data.
[0022]
The data changing means 12 calculates the normal vector of each triangular polygon constituting the polyhedron and matches the normal vector of all the triangular polygons constituting the polyhedron by appropriately changing the normal vector as necessary. Let That is, first, one point is set inside the generated polyhedron. Normally, the centroid point obtained from the triangular polygon coordinates is within the polyhedron, so that the centroid point is used as the inner point, but it is not necessary to be the centroid point. Next, a set of registered vertex data of triangular polygons is extracted. As the vertex data, an outer product vector is obtained from the registered order and the coordinate data of the vertex, and this is used as a normal vector. Next, a centroid point as a triangle of the triangular polygon is obtained, and a vector connecting the internal point and the centroid point as a triangle is calculated by obtaining a vector with the internal point. Next, an inner product of the calculated vector and the normal vector is taken, and the order of the registered vertex data is appropriately changed as necessary using the obtained scalar value. By such processing, the normal vectors of all the triangular polygons are matched.
[0023]
The display means 13 displays the polyhedron in which the normal vectors after matching the order of the vertices of the triangular polygons constituting the polyhedron are all matched.
[0024]
FIG. 1 is a flowchart showing a polyhedron generation process surrounding a sequence of points scattered in a coordinate space. First, in step S11, initialization processing is performed. Here, the first triangle is searched. The first triangle is searched in the vicinity of the extreme point such as the maximum value or the minimum value of the point sequence scattered in the coordinate space. Next, in step S12, the sides to be searched are reorganized, and the sides to be searched are registered in the file system 14.
[0025]
In step S13, it is determined whether or not the search is completed by sequentially examining the edges registered in step S12. If the search is not completed, the process proceeds to step S14, the address of the search target side is accessed, and the coordinate data of the side registered in the file system 14 is extracted.
[0026]
In step S15, it is verified whether a new triangle can be derived from the search target side based on the coordinate data extracted from the file system 14, and a new vertex candidate is searched. If it is determined in step S16 that the new vertex candidate does not overlap with the one already registered, if it is a new registration target, additional registration is performed in the file system 14 in step S17. By sequentially searching in this way and deriving new triangles from each triangle and registering them, polygon data can be generated.
[0027]
By the process of FIG. 1 described above, as shown in FIGS. 4 and 5, it is possible to automatically generate a polyhedron that surrounds a point sequence scattered in the coordinate space.
[0028]
Next, in the three-dimensional rendering system, the relationship between the order of the three vertices of the registered triangular polygon and the direction of the normal vector of the triangular polygon will be described with reference to FIG.
[0029]
Considering the normal vector in a triangular polygon, the length is uniquely determined, but its direction must be clearly defined as necessary.
[0030]
For example, when the hidden surface processing is performed, a triangular polygon that performs the hidden surface processing based on the positional relationship between the viewpoint position and the polyhedron is obtained. As one method of performing this hidden surface processing at high speed, if the inner product of the vector from the center of gravity of the triangular polygon to the viewpoint and the normal vector of the triangular polygon (positive direction of right-handed screw) is negative, There is a technique for performing hidden surface processing.
[0031]
Therefore, in this embodiment, when viewed in the order of the registered vertices, the direction of the normal vector is defined as the direction of the normal vector, and the normal of all the triangular polygons constituting the polyhedron is defined. Performs processing to align vector directions.
[0032]
In the example shown in FIG. 9 described above, in the case of a triangular polygon registered in the clockwise direction of 04 → 19 → 05, the normal vector faces in the back direction, and the two triangular polygons are adjacent to each other. The normal vectors indicate completely opposite directions. In such a case, the direction of the normal vector is changed. Specifically, as shown in FIG. 3, by rearranging 04 → 19 → 05 and re-registering 04 → 05 → 19, the direction of the normal vector is aligned.
[0033]
In order to make all the normal vectors of the triangular polygons constituting the polyhedron coincide, the normals of all the triangular polygons need to be set outward. To do this, if a vector is calculated from the point inside the polyhedron (inner point or centroid) to the centroid of each triangle, the inner product of the vector and the normal vector is taken, and the inner product value becomes negative A process of changing the registration order of the vertex data of the triangular polygon may be performed.
[0034]
FIG. 2 is a flowchart for explaining data change processing for examining the vectors of each triangular polygon and changing the registration order of vertices in order to match the normal vectors of all the triangular polygons constituting the polyhedron.
[0035]
First, in step S411, initialization processing is appropriately performed. In the data reading process in step S412, each triangular polygon data recorded in the file system 14 is read. In step S413, the barycenter of the polyhedron is calculated based on the coordinates of the read triangular polygon data. In the reading process in step S421, the vertex coordinates are read again.
[0036]
In the vector calculation process in step S422, the center of gravity of the triangle is obtained, and the vector A directed to the center of gravity of the triangle is calculated from the center of gravity of the polyhedron obtained in step 413. In the normal vector calculation processing in step S423, normal vector components are calculated based on the registered vertex order, and in the inner product calculation processing in step S424, the inner product calculation of the normal vector and the vector A is performed.
[0037]
The determination process in step S425 is configured to branch to the rearrangement process in step S426 when the calculated inner product value is a negative number. In the rearrangement process in step S426, a process of exchanging the second and third data which are the vertex data of the triangular polygon registered in the file system 14 is performed. In the end determination process of step S427, it is determined whether or not the reading has been completed by referring to the file structure. If the reading has not ended, the process returns to the reading process of step S421, and if the reading has ended, the end process of step S428 is performed. Proceed to ending processing.
[0038]
By appropriately changing the vertex registration order as described above, the normal vectors of all the triangular polygons constituting the polyhedron can be matched.
[0039]
Next, Modification 1 of Embodiment 1 will be described with reference to FIG.
[0040]
In this example, as shown in FIG. 6, in the process of generating and changing a polyhedron, instead of reading and processing data already registered in the file system 14 and the like as in the example of the first embodiment, Data read processing is executed using the memory 15.
[0041]
First, in the initialization processing 511 in step S511, initialization processing is performed as appropriate. In the data reading process in step S152, the point sequence data recorded in the file system 14 is read. The search end determination process in step S513 is the same process as step S13 in FIG. 2, and the search registration process in step S514 is a process substantially similar to the process from S14 to S17 in FIG.
[0042]
In this example, without registering in the file system 14 here, the process proceeds to the next process while temporarily retaining the data on the memory 15.
[0043]
In the center-of-gravity point calculation process in step S515, the data of the triangular polygon recorded on the memory 15 is accessed to calculate the center-of-gravity point of the polyhedron. In the coordinate extraction process in step S521, the data on the memory 15 is accessed again, and the vertex coordinate data is extracted. In the vector calculation process in step S522, a centroid point of the triangle is obtained, and a vector A directed to the centroid point of the triangle is calculated from the centroid point of the polyhedron obtained in step S515. In the normal vector calculation process in step S523, a normal vector component is calculated based on the registered order of vertices, and in the inner product calculation process in step S524, an inner product calculation of the normal vector and the vector A is performed.
[0044]
In the determination process of step S525, when the calculated inner product value is a negative number, the process branches to the rearrangement process of step S526. In the rearrangement process in step S526, the second and third data that are the vertex data of the triangular polygons registered in the memory 15 are exchanged. In the end determination process in step S527, it is determined whether or not the process has been completed by referring to a pointer or the like that refers to registered data. If it has not been completed, the process returns to the extraction process in step S521. Proceeding to an end process, an end process such as a data write / save process on the memory 15 and a memory 15 release process is appropriately performed.
[0045]
Next, a second modification of the first embodiment will be described with reference to FIG.
[0046]
In this example, after the point sequence data of FIG. 4 is input, a process for sequentially displaying the retrieved triangular polygons on the display means 13 at the stage of forming the polyhedron of FIG. 5 is provided.
[0047]
First, in the data reading process in step S611, the point sequence data recorded in the file system 14 is read. In the center point calculation process in step S612, the center point (internal point) when the polyhedron is configured is calculated from the maximum value and the minimum value of each coordinate component in each data.
[0048]
The search end determination process in step S613 is a process corresponding to S13 in FIG. 2, and the search end determination process is repeated until the process ends. In the search process of step S621, a triangular polygon to be newly registered is searched and temporarily registered in a temporary area. In the vector calculation process in step S622, a vector A is calculated from the center point of the polyhedron obtained in step S612 to a vector point going to one of the three vertices forming the triangular polygon.
[0049]
In the normal vector calculation process in step S623, a normal vector component is calculated based on the order of the tentatively registered vertices, and in the inner product calculation process in step S624, an inner product calculation of the normal vector and the vector A is performed. .
[0050]
In the determination process of step S625, when the calculated inner product value is a negative number, the process branches to the rearrangement process of step S626. In the rearrangement process in step S626, the second and third data that are the vertex data of the triangular polygons registered in the memory 15 are exchanged. In the drawing process in step S627, the triangular polygon with the normal vector optimized is additionally displayed on the display means 13, and the additional operation is repeated until all the searches are completed.
[0051]
(Embodiment 2)
As a method for generating a convex polyhedron as shown in FIG. 5, the gift wrapping method is widely known as the most basic implementation method. As shown in FIG. 1, a point sequence is input, and each data sequence is appropriately operated with respect to the point sequence, starting from an appropriate outer point, and the next point sequence (vertex candidate) is repeatedly searched. It will be.
[0052]
However, with this method, there is a problem that the processing time increases greatly in proportion to the number of target point sequences.
[0053]
In the present embodiment, high-speed polyhedron generation is realized by performing the following processing and removing points inside the convex polyhedron from the search target.
1. The octahedron is formed by using the maximum and minimum end points (six points) on each axis constituting the three dimensions.
2. The number of point sequences to be processed is reduced by excluding the octahedral inclusion sequence.
3. The gift wrapping method is applied to the data group excluding the included point sequence. Furthermore, after configuring the octahedron, for the point sequence on the triangle composing the octahedron, a point sequence farthest from the plane of the triangle is selected, and a tetrahedron with this as the vertex is newly configured. Then, the inclusion point sequence of the tetrahedron is excluded to reduce the number of data. This process is more effective if it is configured to be repeated a plurality of times as appropriate.
[0054]
Hereinafter, the polyhedron generation method will be described in detail with reference to the drawings.
[0055]
FIG. 10 shows the distribution state of the data point sequence observed from a position perpendicular to the XY plane. A quadrilateral is constituted by the maximum and minimum points on each XY axis, and the internal points of the quadrilateral are defined. It shows how it is deleted. As is apparent from the figure, the internal point sequence surrounded by the quadrilaterals based on the maximum and minimum values on each axis cannot be the point sequence that constitutes the surface, so it is not necessary for subsequent processing. It can be seen that it is. The gist of the present invention is to significantly reduce the number of data to be processed by deleting points unnecessary for processing, and to realize high-speed processing as a whole. If it is data on a plane, an unnecessary point can be determined by a combination of a quadrilateral or a triangle. When the target space is three-dimensional like a color space, unnecessary points can be similarly determined using a polyhedron.
[0056]
FIG. 11 shows a case where the data to be handled is extended to a three-dimensional space. As shown in the figure, the octahedron is configured by adding the maximum and minimum values of the Z axis. If the octahedron is assigned a vertex number (1-8) for convenience corresponding to the maximum value and the minimum value of each axis as shown in the figure, 1-2-3, 1-3-4, 1- 4-5, 1-5-2, 6-3-2, 6-4-3, 6-5-4, and 6-2-5 are surrounded by a total of eight triangles.
[0057]
In this embodiment, speeding up of processing is realized by deleting a point sequence existing inside the octahedron. FIG. 12 is a schematic flowchart showing the processing of this embodiment. As a pre-stage process of the polyhedron generation process of FIG. 1, a procedure step S19 constituting an octahedron and a procedure of deleting internal points of the polyhedron (step S20) are performed. The number of point sequences that can be deleted by this processing varies depending on the distribution state of the input data. For example, if the data is distributed almost uniformly in a spherical shape with a radius of 1, the total number of points is about 31.8. (= 1 / π)% is to be deleted.
[0058]
This is the ratio of the volume (4/3) of the octahedron inscribed in the sphere to the volume (4π / 3) of the sphere of radius 1. In actual examination results, the processing time for 435 points randomly generated inside the sphere as test data was 51.8 seconds, whereas the target processing data was reduced to 324 points by the deletion process, and as a result Processing time was reduced to 34.4 seconds. The difference of 17.4 seconds was a decrease of approximately 33%, and it was found that a result almost proportional to the decrease rate of the number of data was obtained.
[0059]
(Modification of Embodiment 2)
Next, a modification of the second embodiment will be described with reference to FIGS.
[0060]
As shown in FIG. 13, after deleting the dot sequence inside the octahedron as in the second embodiment, the dot sequence exists only outside the octahedron. Furthermore, in this modification, the number of points to be deleted is increased by deleting the point sequence inside the tetrahedron formed by the triangles of the faces constituting the octahedron and the point farthest from the plane. Realize.
[0061]
First, as shown in FIG. 13, three points Xmin, Ymax, and Zmin are set as point ABC, and a point sequence on the plane including the three points is selected. Next, as shown in FIG. 14, a tetrahedron is formed with a point D farthest from the plane as an apex, and the internal points of the roughly tetrahedron are deleted (steps S25 and S26). Such processing is performed on all the faces of the octahedron. Further, the same processing is repeated as necessary on the triangular plane on the formed tetrahedron. If the processing is terminated when there are no point sequences in all tetrahedrons, the generated triangle set represents the surface covering the outline of the given point sequence data.
[0062]
The outline of the processing flow will be briefly described with reference to FIG.
[0063]
First, initialization processing is performed in step S21. In steps S22 to S24, an octahedron is obtained as in the second embodiment, and points inside the octahedron are deleted.
[0064]
Next, a point that is farthest from a certain face constituting the octahedron is searched to obtain a tetrahedron (step S26), points inside the tetrahedron are deleted (step S27), and the points searched in step S26 Are additionally registered as new vertices (step S28). The processes in steps S26 to S28 are performed on all the faces constituting the octahedron (steps S25, S29, and S30).
[0065]
Then, based on the new vertex added in step S28 and the eight vertices constituting the octahedron, the polyhedron is reconfigured to determine whether or not the polyhedron is to be made more complicated. If the polyhedron needs to be complicated, N is updated according to the reconstructed polyhedron (step S31). If a point is always searched in step S26, N is set to 16.
[0066]
When N is updated in step S31, the processes of steps S25 to S31 are repeated for each surface (step S32).
[0067]
In addition, although the octahedron and the tetrahedron are used in the second embodiment and the modification thereof, the same processing can be realized by using, for example, a hexahedron. Furthermore, the same applies to the use of an appropriate polyhedron such as a dodecahedron.
[0068]
That is, in order to improve the speed of the polyhedron generation process, it is only necessary to delete unnecessary data point sequences as efficiently as possible.
[0069]
According to the second embodiment, when generating a polyhedron model that wraps color data or the like scattered in a space, the processing time greatly increases in proportion to the number of given point sequences. The prevention and efficient polyhedron generation processing can be performed.
[0070]
(Embodiment 3)
As a method for generating a convex polyhedron, the gift wrapping method is widely known as the most basic implementation method. There are many other methods for generating a convex polyhedron.
[0071]
The problem here is that each processing speed cannot be predicted in a general manner. For example, depending on the distribution state of a certain data, even if an optimal algorithm exists, the speed of a data group having another distribution state may be reduced. Therefore, ideally, there is no meaning to adaptively select the most optimal algorithm according to the data distribution state.
[0072]
Therefore, the third embodiment provides a method for selecting an algorithm suitable for the data distribution state.
[0073]
A plurality of analysis algorithms are prepared in advance, and a tag that associates a generation algorithm that is most suitable for processing is assigned to a typical data group, and processing is appropriately switched using the tags at the stage of analysis execution. .
[0074]
In a system that can process multiple algorithms in parallel, for an irregular data group, statistically analyze the data distribution status, etc., and list multiple generation algorithms that are optimal for processing as candidates. After starting up at the same time, by examining the intermediate processing results, the optimum algorithm corresponding to the input data group is uniquely determined, and the unnecessary process is erased halfway, and the computer resources secured by the process are released. Constitute.
[0075]
A process of assigning a tag corresponding to the input data to a characteristic data string obtained by a steady experiment or measurement and selecting an algorithm type to be applied by the tag will be described with reference to FIG.
[0076]
A plurality of data is input to the data selector. Each data is a data group measured in different situations, for example, data 1 is a data group obtained by measuring a color output by a color inkjet printer, and data 2 is a data obtained by measuring a color outputted by a color LBP. Suppose that it was output in groups. Here, assuming that it is experimentally known that the processing of algorithm A for data 1 and the processing of algorithm B for data 2 are optimal, these data groups are used for polyhedron generation processing. Add tag data to specify the algorithm.
[0077]
When data 1 or 2 to which tag data is added is input, a tag analysis processing unit 30 (not shown) included in the three-dimensional rendering system of FIG. 6 analyzes the tag data added to the data, and is suitable for the data. An algorithm is selected, and control is performed so as to use the selected algorithm in the polyhedron generation process executed in the data generation means of FIG.
[0078]
When data 1 is input, the tag analysis processing unit 30 analyzes the tag A and selects the algorithm A.
[0079]
When data 2 is input, the tag analysis processing unit 30 analyzes the tag B and selects the algorithm B.
[0080]
With the above-described processing, it is possible to perform polyhedron generation processing by using selection of an optimal algorithm based on tag data for routinely performed measurement and analysis. Therefore, the polyhedron generation process can always be performed in a short time.
[0081]
Next, a process for selecting an appropriate algorithm for input data whose data distribution state is indefinite will be described with reference to FIG.
[0082]
First, data analysis is performed on a given data string, candidates for the application algorithm are enumerated according to the analysis result, processes are forked by the number of the enumerated candidates, and the algorithm is assigned to each parallel computer. Start processing at the same time. Some time after the process is started, the result of the process is investigated, the optimal algorithm is selected and determined based on the result of the investigation, and the available computing resources are allocated only to the selected algorithm during the process. Realizes a reduction in processing time.
[0083]
Data 3 which is a data group obtained by measuring the color output by the color printer (model-independent) is input. First, the data analysis processing unit 31 analyzes the data 3 and determines some candidates from the plurality of algorithms A, B, and C included in the data generation unit 11.
[0084]
For example, when the algorithms B and C are selected as candidates for the data 3, the data generation unit 11 controls to start (fork) processes based on the two algorithms B and C simultaneously (candidates). Decision & Fork 32).
[0085]
The processes (B, C) started simultaneously notify the process monitoring processing unit 33 of an intermediate report signal indicating the number of data processed (or processing progress) at a predetermined timing. The process monitoring processor 33 selects an optimal algorithm for the data 3 based on the intermediate report signal, and stops the process not selected by the control signal.
[0086]
Then, the polyhedron generation process for the data 3 is completed by continuing the selected process.
[0087]
On a computer operating in multitasking, it is possible to increase the processing speed of a single process by effectively releasing resources, and as a result, it is possible to finish the processing at the fastest speed.
[0088]
Note that the data analysis processing unit 31 (not shown) is included in the three-dimensional rendering system 10 of FIG. The other processing unit is a function of data generation means.
[0089]
FIG. 18 shows an example of the configuration of the present embodiment having the processing functions of FIGS. 16 and 17. 18, the same functions as those in FIGS. 16 and 17 are denoted by the same reference numerals and description thereof is omitted.
[0090]
The data selector 35 analyzes the input data and determines whether or not a tag that specifies an algorithm for polyhedron generation processing is added to the data. If the tag is added, the process shown in FIG. 16 is performed. If the tag is not added, the process shown in FIG. 17 is controlled.
[0091]
According to the present embodiment, when generating a polyhedron model that wraps color data or the like scattered in space, no matter what the distribution of the given point sequence data is, The optimum algorithm corresponding to the distribution state is automatically selected and executed appropriately, and it is possible to always obtain a high-speed processing result.
[0092]
(Embodiment 4)
A technique for reproducing a color image on a monitor as faithfully as possible with a color printer is called color matching, and is one of techniques widely used in recent years. Usually, the color reproduction range of a monitor is wide, and that of a printer is narrow. In other words, not all colors on the monitor can be reproduced by the printer. In order to solve this problem, a technique called color space compression is used. There are a plurality of color space compressions in various methods and compression ratios. This is appropriately selected or assigned depending on the use case. The problem is that it is difficult for the user to understand how the applied method works.
[0093]
In the present embodiment, a method is described in which the effect of color space compression is visually understandable using the 3D rendering function described in the first to third embodiments.
[0094]
First, an outline of the present embodiment will be described.
[0095]
First, a modeling means for uniquely calculating a triangular polygon data group representing a color reproduction area in space is prepared, and the color reproduction area of the selected monitor and the selection monitor are subjected to color space compression using the modeling means. Model data representing the color reproduction area after compression is generated, each polygon data is given an appropriate transmission attribute, and this is displayed in 3D. A user can select a color space compression method having desired characteristics by referring to two color reproduction regions displayed in 3D while additionally displaying a specific color to be worried about during printing. To do.
[0096]
As a result, the mapping of color space compression, which has been difficult to understand conventionally, can be visualized at high speed by using triangular polygon data, so that it is possible to provide the user with a quicker and optimal color document printing environment.
[0097]
Hereinafter, this embodiment will be described in detail with reference to the drawings.
[0098]
FIG. 19 is a schematic block diagram of internal processing of a color printer driver in which the present embodiment is implemented. Here, among the internal processes of the driver, the setting process and the operation of the color conversion process changed by each setting will be described in detail. Here, for the sake of convenience, the following system and process will be described. The driver is incorporated in the OS of the host computer. There are two types of monitors connected to the host, A and B types, both of which can display full color. The output printer is a local printer directly connected to the printer interface of the host computer and can output a full color image. A user creates a color document using the host computer and outputs it using a color printer. The created color document is subjected to operations such as editing while being displayed on the monitor. Color matching processing is performed inside the driver so that the color of the output color document matches that displayed on the monitor.
[0099]
As color matching options, two types of a hue priority type and a saturation priority type are prepared and can be appropriately changed according to each document. These both use the color space compression method, but are different types of compression methods. Hereinafter, for convenience, the color matching option and the color space compression method are treated synonymously. Also, the CIE-1976 Lab value is omitted and is simply set as the Lab value. Furthermore, at the time when the driver is incorporated in the OS, the monitor is treated as A type, and the color matching option is treated as 1: hue priority type as default.
[0100]
The image data 101 is displayed on the monitor 120 after being converted into a preview image by the preview image generation processing 111. The user selects a specific color in the image while referring to the preview image and inputs it to the color designation input means 113. For example, if the image data includes a bar graph, select a color of particular interest (eg, dark blue) in the bar graph, and select the value (RGB value) of the selected color using a keyboard device or mouse operation. input. The monitor type and the color matching option are specified by the monitor specifying means 114 and the color matching option specifying means 115, respectively, and the settings can be changed on the driver setting screen. The profile selector 112 selects profile data (any one of four of A1, A2, B1, and B2) designated by the combination of the monitor type and the color matching option from the profile storage file 131, and selects this. Delivered to the color conversion process 102. When printing is started, the color conversion process 102 receives the image data 101, performs an appropriate color conversion process using the profile specified by the settings, and outputs output data 103 for printing.
[0101]
FIG. 20 is a schematic block diagram showing the inside of the rendering processing unit 116 in FIG. The model data selection means 221 selects model data (any one of four of A1, A2, B1, and B2) designated by the combination of the monitor type and the matching option from the model storage file 211, and selects this. Delivered to the synthesis process 231. Here, in order to visualize the color reproduction range, this is expressed using a polyhedron that forms a surface with a group of triangular polygons.
[0102]
Model data is prepared in advance by modeling means, and stores two data, a color reproduction range of the monitor and a color reproduction range after color space compression. Each of them describes a plurality of vertices and a triangular polygon group combining them. An example is shown below.
Filename “Model-A1”
ModelBegin // Motor
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 // Motor
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
[0103]
Further, based on the designated color (RGB value) input to the color designation input means 113, the coordinate position calculation means 223 obtains the color coordinate value A (Ax, Ay, Az) on the currently selected monitor, and After obtaining the color coordinate value A ′ (Ax ′, Ay ′, Az ′) after color conversion processing with the currently selected color matching option, the format is adapted to the rendering processing by the following processing. Convert.
Filename “Model-Point”
ModelBegin // 2points
PointSet sphere radius (o.5)
Vertex Ax Ay Az
Vertex Ax'Ay'Az '
Point 1 Color A
Point 2 Color A '
ModelEnd
[0104]
In the present embodiment, a (three-dimensional Euclidean) space composed of xyz axes is assumed as a rendering space. Here, since the Lab space is applied to the space, each coordinate value is equivalent to the Lab value. For convenience, the L axis is treated as the x axis, the a axis as the y axis, and the b axis as the z axis. In the synthesis process 231, the selected model data (Model-A1) and the output file (Model-Point) in the coordinate position calculation means 223 are synthesized and delivered to the three-dimensional renderer process 232 as one file. In the renderer process, a two-dimensional image is generated from a specified three-dimensional object and displayed on a display device.
[0105]
FIG. 21 is a flowchart showing an outline of processing of the modeling means for creating model data.
[0106]
First, in step 301, measured sample data of 125 points are input. Here, 125 points are assumed as samples for equally dividing the RGB space of the monitor. If 0 to 255 are divided into 5 steps for each axis of RGB, sample data of 5 × 5 × 5 points is obtained. If this is totaled, it will be 125 points. Lab values are obtained for each of the 125 RGB data combinations and input is made in step 301. At this time, input is performed in a combination of ID number, RGB value, and Lab value in order from the top. In step 302, the ID numbers of the eight basic colors (RGBCMYWK, corresponding to the eight vertices constituting the dodecahedron in FIG. 11) at this time are input. In step 310, the ID numbers and the input 125-point data are used. A dodecahedron is generated. In step 312, the generated polyhedron and 125 points are displayed simultaneously. In step 313, if the displayed polyhedron does not sufficiently approximate the color reproduction region, a new vertex is added in step 314, the polyhedron is reconstructed in step 315, and the process returns to step 312 to display again. By repeating this, it is possible to generate a polyhedron model until sufficient approximation can be performed. FIG. 22 is a conceptual diagram showing an example of adding one vertex to two adjacent triangular polygons to increase the number of faces. In this way, the sample points are hidden behind or inside the surface of the polyhedron displayed in 3D, or if the triangular surface is too far from each sample, the concave surface is appropriately configured to obtain a better approximation. Construct a triangular polygon. Here, when approximation with higher accuracy is performed, all the points may be selected carefully using more samples.
[0107]
Note that the data generation unit 11 and the data change unit 12 described in the first to third embodiments may be used as the modeling unit. When the method described in the first to third embodiments is used, a polyhedron can be generated automatically and at high speed by performing geometric calculation on a point sequence scattered in a space.
[0108]
FIG. 23 is a sample example showing an actual 3D display. Here, the polyhedron 510 indicates a color reproduction region on the monitor, and the triangular polygon is drawn with only sides. On the other hand, a polyhedron 520 shows a color reproduction region after color space compression, and a triangular polygon is drawn with sides and faces. In the 3D display of this embodiment, since the hidden surface process is performed, only the polygon in front is always drawn, and therefore the inside of the polyhedron 520 becomes invisible. A point 531 indicates a position of the designated color before color space compression, and a point 532 indicates a position after color space compression.
[0109]
The user can finally select the optimum matching option for each printing while checking the mapping state of the plurality of designated colors while switching the optimum matching option according to the document to be output.
[0110]
Although only one designated color is displayed in FIG. 23, a plurality of colors can be simultaneously displayed based on a user instruction. However, when a plurality of colors are displayed at the same time, there is a possibility that a color that is not displayed by the hidden surface process may be generated depending on the positional relationship between the viewpoints.
[0111]
(Modification 1 of Embodiment 4)
Next, Modification 1 of Embodiment 4 will be described with reference to FIG. FIG. 24 is a schematic block diagram illustrating processing corresponding to the rendering processing unit 116 of FIG. Rather than preparing model data representing the color reproduction area in advance, the model data generation function in the processing system will generate model data according to the selected monitor and matching options at any time. is there. Here, modeling means for calculating a color reproduction region in space by a convex body generation algorithm is prepared. Since many methods have already been proposed for the convex body generation algorithm, it will not be described here.
[0112]
Model data generation is first performed for the color reproduction region of the selected monitor. The monitor data 1601 stores the color characteristic information of the currently selected monitor, and using this, the modeling unit 1611 generates 125 samples and obtains the Lab value of each point. Surface polygons (triangles) covering the point sequence group in the space are automatically generated by a convex polyhedron generation algorithm. In the process 1612, a transparency attribute is assigned to the generated model data. An example is shown below. Here, the Polygon surface surrounded by the TransparentBegin () statement and the TransparentEnd statement has a transparency attribute, and is specified by the parameter of the transparency TransparentBegin () statement. Here, if the transmittance of 100% is set, the polygon representing the outline itself cannot be seen. Therefore, in this embodiment, the transmittance of 80% (specified value is 1/100 becomes 0.8) is set. .
[0113]
Filename “Model-A1”
ModelBegin // Motor
A (no compress)
Vertex Px1, Py1, Pz1
Vertex Px2, Py2, Pz2
...
TransientBegin (0.8)
Vertex PxM1, PyM1, PzM1
Polygon 3 ti1 tj1 tk1
Polygon 3 ti2 tj2 tk2
...
Polygon 3 tiN1 tjN1
tkN1
TransparentEnd
ModelEnd
ModelBegin // Motor
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
[0114]
Next, model data generation is performed on the color reproduction region after color space compression. The monitor data 1611 and the color matching option handle 1630 indicating the currently selected color space compression method are passed to the color space compression calculation means 1613, 125 color samples after color space compression are generated, and the Lab value of each point is set. Ask. The modeling means 1614 automatically generates a surface polygon covering the point sequence group in the space by a convex polyhedron generation algorithm. Here, the transparency attribute is not added.
[0115]
In the coordinate position calculation means 1615, the monitor data 1611, the color matching option handle 1630, the RGB values of the special color designated by the color designation means 1616, and the coordinate position of the designated color on the currently selected monitor are obtained. It is done. Here, two coordinate positions are obtained before and after color space compression, and are transferred to the composition process 1620.
[0116]
In the composition process 1620, the polygon data of the monitor color reproduction area before color space compression, the polygon data of the monitor color reproduction area after color space compression, and the two points of the coordinate position of the specified color (before and after color space compression) The data is synthesized, and the data is delivered to the three-dimensional renderer process 1621. In this renderer process, a two-dimensional image is generated from a specified three-dimensional object and displayed on a display device. The user can change to an optimum matching option according to the document to be output while viewing the display state.
[0117]
(Modification 2 of Embodiment 4)
A second modification of the fourth embodiment will be described with reference to FIG. FIG. 25 is a schematic block diagram illustrating processing corresponding to the rendering processing unit 116 of FIG. In this modification, model data representing the color reproduction area is not prepared in advance, but model data corresponding to the selected monitor or matching option can be obtained at any time by having a model data generation function in the processing system. Generate. However, one significant difference is that the polygon representing the color reproduction region after color space compression has the second transmission attribute.
[0118]
Model data generation is first performed for the color reproduction region of the selected monitor. The monitor data 701 stores the color characteristic information of the currently selected monitor, and using this, the modeling unit 711 generates 125 samples and obtains the Lab value of each point. Surface polygons (triangles) covering the point sequence group in the space are automatically generated by a convex polyhedron generation algorithm. In the process 712, the first transparency attribute is attached to the generated model data. Here, if a transmittance of 100% is set, the polygon representing the outline itself cannot be seen. Therefore, in this embodiment, the first transparency attribute is 80% (the designated value is 0.8 when 1/100). Set the transmittance.
[0119]
Next, model data generation is performed on the color reproduction region after color space compression. The monitor data 711 and the matching option handle 730 indicating the currently selected color space compression method are input to the color space compression calculation means 713, 125 samples after color space compression are generated, and the Lab value of each point is set. Ask. The modeling means 714 automatically generates a surface polygon covering the point sequence group in the space by a convex polyhedron generation algorithm. In the process 717, the first transparency attribute is attached to the generated model data. Here, a transmittance of 20% (specified value is 0.2 in 1/100) is set as the second transmission attribute. The following data is configured together with the polygon group constituting the outline described above.
Filename “Model-A1”
ModelBegin // Motor
A (no compress)
Vertex Px1, Py1, Pz1
Vertex Px2, Py2, Pz2
...
TransientBegin (0.8)
Vertex PxM1, PyM1, PzM1
Polygon 3 ti1 tj1 tk1
Polygon 3 ti2 tj2 tk2
...
Polygon 3 tiN1 tjN1
tkN1
TransparentEnd
ModelEnd
ModelBegin // Motor
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
[0120]
In the coordinate position calculation means 715, the monitor data 711, the matching option handle 730, the RGB value of the specific color designated by the color designation means 716, and the coordinate position of the designated color on the currently selected monitor are obtained. . Here, two coordinate positions are obtained before and after color space compression. In the present embodiment, a point A (coordinate before color space compression) is connected to a point A ′ (coordinate after compression) by an arrow line so that the position can be more easily grasped visually.
Filename “Model-Point”
ModelBegin // 2points
PointSet sphere radius (0.5)
Vertex Ax Ay Az
Vertex Ax'Ay'Az '
Point 1 Color A
Point 2 Color A '
Line 1 2 Arrow
ModelEnd
[0121]
In the composition process 720, the polygon data of the monitor color reproduction area before color space compression, the polygon data of the monitor color reproduction area after color space compression, and the two points of the coordinate position of the specified color (before and after color space compression) The data is synthesized and the data is delivered to the three-dimensional renderer process 721. In this renderer process, a two-dimensional image is generated from a specified three-dimensional object and displayed on a display device.
[0122]
FIG. 26 is an example showing a state of 3D display of this modification. Here, a polyhedron 810 indicates a color reproduction region on the monitor, and a triangular polygon group representing this is drawn with a side and a surface having a transmittance of 80%. On the other hand, a polyhedron 820 shows a color reproduction region after color space compression, and a triangular polygon group representing this is drawn with a side and a surface with a transmittance of 20%. In the 3D display of the present embodiment, the hidden surface processing is performed for polygons having a transparency of 0% even if the transparency attribute is not set and the transparency attribute is set. In consideration of the above, the polygon overlap is also displayed. Therefore, even if the point 832 enters the color reproduction area 820 as shown in the figure, the transmission attribute is set, so that the point 832 looks over the front polygon. A point 831 is a position before the color space compression of the designated color, and a point 832 is a position after the color space compression, and is devised so that visual recognition can be correctly performed by connecting these with an arrow line. . The user can freely select an optimal matching option corresponding to the document to be output while viewing the display state.
[0123]
In addition to the embodiments described above, the following embodiments are possible.
[0124]
1. The monitor data 601 may be information obtained from a profile assigned to each color device in the color management system.
[0125]
2. Although the modeling unit 611 and the modeling unit 614 are block diagrams as separate units for convenience of explanation, they may be the same block in mounting.
[0126]
3. The color space compression is a compression of the color reproduction area of the monitor, but is not limited to this. All color devices are targeted on the source and destination sides. Further, in the first to third embodiments, the volume reduction is treated as color space compression, but this is not restrictive. Conversely, processing can be performed in the same manner regardless of color space movement or color space movement.
[0127]
4). Triangular polygons are used as the basic surface configuration when the color reproduction area is represented by the surface of the polyhedron, but a combination of quadrilateral polygons and triangular polygons, or a combination of pentagonal polygons and triangular polygons may be used. Further, a free-form surface approximated by a small triangular polygon may be used.
[0128]
5. Using a triangular polygon as the basic surface configuration when expressing the color reproduction area on the surface of the polyhedron, the color at the coordinate position is calculated for the coordinates of the three vertices, the corresponding color is assigned to each vertex, and the vertex and vertex A color obtained by interpolation based on the corresponding color at each vertex is assigned to the sides and surfaces connecting the two.
[0129]
6). The printer connection may be local or other. In addition, the processing can be similarly realized by processing other than the printer driver incorporated in the system. For example, utility software, application software, a plug-in format connected to application software, or a helper application may be used. Of course, this may be realized by a profile maker that creates a color profile in a color management system.
[0130]
7). The model data may be prepared in advance, created when necessary, or data created at a certain time may be cached. Furthermore, the data may be stored inside the profile data or stored in a temporary work area (memory or file).
[0131]
8). For 3D display, it is possible to move, rotate, scale, etc. in real time using an input device such as a mouse, and provide a configuration that allows 3D data to be observed from any position. May be.
[0132]
9. Instead of designating the transmission attribute, it may be configured such that points inside the surface covered with the polygon can be observed by devising such as switching the hidden surface processing based on a certain input.
[0133]
Various embodiments other than those described above are conceivable. However, if a polyhedron using a triangular polygon is used on the surface when the color reproduction region is substantially expressed, other techniques associated therewith can be used. The present invention is not limited by the method.
[0134]
According to the fourth embodiment and the modification thereof, it is possible to efficiently visualize the mapping state by color space compression processing, which has been difficult to understand conventionally, using a three-dimensional display system. It is possible to compare changes in the color reproduction area before and after color space compression with overlapping display, and to reduce the amount of data and increase the processing speed by using triangular polygons. As a result, it has become possible to interactively observe three-dimensional data from more free positions, such as real-time rotation and reduction of data, which has been difficult in the past. In addition, it is possible to directly analyze a problem in an actual color printing process by designating a specific color and observing how the corresponding color is actually mapped. As a result, it is possible to quickly set or select a type having desired characteristics from various color space compression methods.
[0135]
(Embodiment 5)
When the user frequently repeats operations such as rotation and enlargement / reduction when observing an object in space using the 3D rendering function, the original top-to-bottom relationship of the effect cannot be understood. There is. Conventionally, there have been contrivances such as drawing the coordinate axes at the same time or displaying the direction in another display window, but lack in intuitiveness. In particular, when a 3D rendering system is used interactively, high-speed display is required so that the system responds immediately to the user's operation, and at the same time, the data displayed by the user is accurately and intuitively displayed. It must be configured so that its state can be recognized.
[0136]
Therefore, in the present embodiment, a square parallel to the ab plane of the Lab color space is prepared, the center point of the square is overlapped with the origin, and simultaneously displayed, so that the user can intuitively see the state of the displayed data. To be able to recognize. When this display is not necessary, it can be deleted at any time by a user operation.
[0137]
FIG. 27 is a schematic flowchart illustrating a process for determining the size of a square parallel to the ab plane with reference to the maximum value, minimum value, and maximum value, minimum value of b value of input data. In the initialization process S811, a process such as setting the variable Max to zero is performed. In the data input process S812, a set of L value, a value, and b value indicating the color reproduction area is read. In the magnitude determination S813, the absolute value of the a value read in the data input process S12 is compared with the variable Max. If the absolute value of the a value is larger, the absolute value of the a value is substituted into the variable Max in the substitution process S814. To do. In magnitude determination S815, the absolute value of the b value read in the data input process S12 is compared with the variable Max. If the absolute value of the b value is larger, the absolute value of the b value is assigned to the variable Max in the assignment process S816. To do. In end determination S817, it is determined whether reading has ended. If not, the process returns to data input processing S812. In the side length setting process S818, a value obtained by multiplying the variable Max by 0.5 is set. In the coordinate setting process S819, square coordinate data is generated based on the set value. The square is parallel to the ab plane, and its center of gravity is set to coincide with the origin.
[0138]
FIG. 28 shows a displayed image obtained by synthesizing the polyhedron P1 generated by the data group indicating the color reproduction area and the square P2 generated by the processing of FIG. 27 based on the data group using the 3D rendering system. .
[0139]
In FIG. 28, the surface of the polyhedron can be observed, but the inside cannot be observed. Therefore, as shown in P3 of FIG. 29, the triangles constituting the polyhedron are not represented by planes, but are reproduced by only the sides so that the inside can be observed.
[0140]
The display like P3 can be easily realized by controlling the transmittance described in the fourth embodiment.
[0141]
That is, the present embodiment can be realized by controlling the transmittance relating to the color reproduction region in accordance with which mode of FIG. 28 (P1) or FIG. 29 (P3) is set by the user.
[0142]
The user can analyze the data in detail by switching and observing the two images as appropriate.
[0143]
In addition, it is important to observe the state of the color reproduction area at a certain luminance value in detail when grasping the color reproduction area.
[0144]
Therefore, a user interface as shown in FIG. 30 is provided.
[0145]
A polyhedron generation process is performed on the input Lab value point sequence data group to obtain a polyhedron P4, which is displayed on the display window R1 using a 3D rendering system. At the left end of the display window R1, there is a slide bar R3 that freely moves within the slide region R2. As this is moved to an arbitrary position, a square P5 parallel to the ab plane moves. When the square overlaps with the polyhedron P4, the overlapping portion is appropriately displayed on another display window as necessary. The display window R43 displays the overlapping portion at the position of R5 displayed in FIG. 6 as a cross section P6. The display window R41 and the display window R42 are display windows showing an overlap at the previous position P5, and can be generated, held, and discarded as necessary.
[0146]
In P6, not only the vertices of the polyhedron but also data other than the vertices included in the data group from which the vertex data is extracted (for example, 125 sample data input in step 301 in FIG. 21) are displayed. . Thereby, the degree of accuracy of the polyhedron and the color reproducibility of the device that outputs the sample data can be confirmed.
[0147]
In addition to the method of displaying the color reproduction area using the 3D rendering system described with reference to FIGS. 28, 29, and 30, the following forms are conceivable.
[0148]
1. When handling a plurality of enlarged / reduced images, it is configured so that it can be replaced with a square having a specified length so that a difference due to the scale can be easily recognized.
[0149]
2. Different color schemes are applied to the front and back of the square so that the top and bottom relationships that change with the operation by rotation can be recognized more easily.
[0150]
3. In order to show the state of the internal point sequence, a transparent attribute is given to the surface of the triangular polygon. This makes it possible to observe the state of the internal points while always recognizing the color reproduction region.
[0151]
4). By defining a gradation of a specific color and expressing the change of the gradation by a line segment, the color change and the positional relationship with the color reproduction region can be observed.
[0152]
5. When an object is not displayed at a desired position due to rotation or enlargement / reduction, the current display state is discarded by selecting a pre-registered icon and immediately switched to the registered display state (rotation, enlargement) (Reduce).
[0153]
In addition to the above-described embodiments, various embodiments are conceivable. In practice, however, a polyhedral model is displayed in a three-dimensional display system for the purpose of color analysis, and this is performed when operations such as rotation and enlargement / reduction are performed. Anything designed to make it easier for the user to handle is the same as the present invention.
[0154]
Conventionally, when observing an effect in a three-dimensional space, if the user repeatedly performs operations such as rotation and enlargement / reduction, the vertical relationship of the effect may not be known. According to the present embodiment, by arranging a square as a pedestal in the vicinity of the origin and simultaneously displaying it, the user can accurately and intuitively recognize the vertical relationship of the displayed data. Further, the observation data can be easily compared and compared by changing the square size according to the distribution of input data. Further, a polyhedron surrounding the point sequence is formed, and this is cut using a square parallel to the ab plane, and the cut surface is displayed in a separate display window. The square is configured to be freely movable on the L axis, and the cut surface is appropriately changed according to this. This facilitates the three-dimensional grasp of the polyhedron.
[0155]
The present invention may be applied to a system composed of a plurality of devices or an apparatus composed of a single device. Needless to say, the present invention can also be applied to a case where the present invention is achieved by supplying a program to a system or apparatus. In this case, by reading a storage medium storing a program represented by software for achieving the present invention into the system or apparatus, the system or apparatus can enjoy the effects of the present invention.
[0156]
【The invention's effect】
According to the first aspect of the present invention, the color gamut of the point sequence data group indicating the point sequence scattered in the color coordinate space can be obtained at high speed.
[0157]
According to the fifth aspect of the present invention, the color gamut of the point sequence data group indicating the point sequence scattered on the color coordinate space can be displayed at high speed.
[Brief description of the drawings]
FIG. 1 is a flowchart showing a data change process at the time of generating polygon data constituting a polyhedron according to the first embodiment of the present invention.
FIG. 2 is a flowchart showing generation processing of polygon data constituting a polyhedron.
FIG. 3 is an explanatory diagram showing an example in the case where the directions of normal vectors match in the relationship between the order of vertices registered in a triangular polygon and the normal vectors;
FIG. 4 is an explanatory diagram showing a point sequence scattered in a coordinate space.
FIG. 5 is an explanatory diagram showing a configuration of a polyhedron surrounding a sequence of points scattered in a coordinate space.
FIG. 6 is a block diagram illustrating a configuration example of a three-dimensional rendering system.
FIG. 7 is a flowchart of Modification 1 of the first embodiment.
FIG. 8 is a flowchart of Modification 2 of the first embodiment.
FIG. 9 is an explanatory diagram showing an example in which the directions of normal vectors are different from each other in the relationship between the order of vertices registered in a triangular polygon and the normal vector.
FIG. 10 is a schematic diagram showing a state in which a polygonal internal point sequence is excluded.
FIG. 11 is an overview diagram showing a polyhedron composed of six points selected from the maximum and minimum points on the XYZ axes in a three-dimensional space.
FIG. 12 is a schematic flowchart showing processing of Embodiment 2.
FIG. 13 is a conceptual diagram showing how a point sequence on a triangular plane is selected in a modification of the second embodiment.
FIG. 14 is a conceptual diagram showing a configuration of a tetrahedron and a state of selecting an internal point sequence in a modification of the second embodiment.
FIG. 15 is a schematic flowchart showing processing of a modified example of the second embodiment.
FIG. 16 is a diagram illustrating processing for selecting a polyhedron generation processing algorithm based on a tag added to data.
FIG. 17 is a diagram for explaining processing for analyzing data and selecting a suitable algorithm;
FIG. 18 is a diagram illustrating a configuration of a third embodiment.
FIG. 19 is a schematic block diagram illustrating overall processing in the fourth embodiment.
FIG. 20 is a schematic block diagram illustrating internal processing of rendering processing;
FIG. 21 is a schematic flow diagram illustrating a modeling process for generating model data.
FIG. 22 is a schematic diagram showing a state in which adjacent triangular polygons are divided by new vertices.
FIG. 23 is a sample diagram showing an example of three-dimensional display.
FIG. 24 is a schematic block diagram illustrating internal processing of rendering processing according to a modification of the fourth embodiment.
FIG. 25 is a schematic block diagram illustrating internal processing of rendering processing according to the second modification of the fourth embodiment.
FIG. 26 is a sample diagram showing an example of three-dimensional display.
FIG. 27 is a schematic flowchart outlining a process for changing the length of a square according to the distribution of an input data point sequence.
FIG. 28 shows an example in which a color reproduction region of color data scattered in Lab space is represented by a polyhedron, a square planar object is arranged at the origin position, and both are displayed by a 3D rendering system.
FIG. 29 is an example in which a color reproduction region of color data scattered in Lab space is expressed by a polyhedron, and a triangular polygon constituting the area is drawn by a surface and a case of drawing only by a line segment.
FIG. 30 is a display example in which a cut surface when a polyhedron existing in a space is cut at an arbitrary position is displayed in another display window.

Claims (7)

色座標空間上に点在する点列を示す点列データ群の色域を示す多面体を求めるカラー画像処理装置であって、
色座標空間上に点在する点列を示す点列データ群を読み込む読込手段と、
前記点列データ群から所定条件に応じてN点の点列データを抽出する抽出手段と、
前記N点のデータに基づきN面体を生成する生成手段と、
前記点列データ群から前記N面体の内含点列を示す点列データを除外する除外手段と、
前記N面体の内含点列を示す点列データを除外した点列データ群を用いて、前記N面体から前記色域を示すM面体(M>N)を生成し、該M面体を構成する頂点データを格納部に格納する生成手段とを有することを特徴とするカラー情報処理装置。
A color image processing apparatus for obtaining a polyhedron indicating a color gamut of a point sequence data group indicating a point sequence scattered on a color coordinate space,
Reading means for reading a point sequence data group indicating a point sequence scattered on the color coordinate space;
Extraction means for extracting point sequence data of N points from the point sequence data group according to a predetermined condition;
Generating means for generating an N-hedron based on the N-point data;
Exclusion means for excluding point sequence data indicating the included sequence of N-face from the point sequence data group;
An M-hedron (M> N) indicating the color gamut is generated from the N-hedron using a point-sequence data group excluding point-sequence data indicating the included point sequence of the N-hedron, and the M-hedron is configured. A color information processing apparatus comprising: generating means for storing vertex data in a storage unit.
前記色座標空間は3次元空間であり、
前記抽出手段は前記色座標空間を構成する各成分の値が最大または最小である8つの点列データを抽出することを特徴とする請求項1記載のカラー情報処理装置。
The color coordinate space is a three-dimensional space;
2. The color information processing apparatus according to claim 1, wherein the extraction unit extracts eight point sequence data having a maximum or minimum value of each component constituting the color coordinate space.
前記生成手段は、
前記前記N面体の内含点列の点列データを除外した点列データ群から、前記N面体を構成する各面の平面から最も距離が遠い点列データを検出し、頂点データとして登録する登録手段と、
前記検出された点列データと該各面とで構成される4面体の内含点列を示す点列データを除外する手段とを有することを特徴とする請求項1記載のカラー情報処理装置。
The generating means includes
Registration for detecting point sequence data farthest from the plane of each surface constituting the N-plane and registering it as vertex data from the point sequence data group excluding the point sequence data of the included-point sequence of the N-plane Means,
2. A color information processing apparatus according to claim 1, further comprising means for excluding point sequence data indicating a sequence of points included in a tetrahedron composed of the detected point sequence data and each surface.
前記生成手段で生成された前記M面体を構成する3角ポリゴンのデータ群を格納する格納手段と、
前記3角ポリゴン夫々の法線ベクトルが一致するように、該3角ポリゴンデータの頂点データの登録順序を変更する変更手段とを有することを特徴とする請求項1記載のカラー画像処理装置。
Storage means for storing a data group of triangular polygons constituting the M-hedron generated by the generation means;
2. The color image processing apparatus according to claim 1, further comprising changing means for changing a registration order of vertex data of the triangular polygon data so that normal vectors of the triangular polygons coincide with each other.
カラー画像処理装置に適用可能なカラー情報処理方法であって、
色座標空間上に点在する点列を示す点列データ群を読み込み、
前記点列データ群から所定条件に応じてN点の点列データを抽出し、
前記N点のデータに基づきN面体を生成し、
前記点列データ群から前記N面体の内含点列の点列データを除外し、
前記N面体の内含点列を示す点列データを除外した点列データ群を用いて、前記N面体から前記色域を示すM面体(M>N)を生成し、該M面体を構成する頂点データを格納部に格納し、
前記M面体を構成する頂点データを用いて、前記色域を示すM面体を表示部に表示させることを特徴とするカラー画像処理方法。
A color information processing method applicable to a color image processing apparatus,
Read the point sequence data group indicating the point sequence scattered in the color coordinate space,
N points of point sequence data are extracted from the point sequence data group according to predetermined conditions,
An N-face is generated based on the N-point data,
Excluding the point sequence data of the N-hedron containing point sequence from the point sequence data group;
An M-hedron (M> N) indicating the color gamut is generated from the N-hedron using a point-sequence data group excluding point-sequence data indicating the included point sequence of the N-hedron, and the M-hedron is configured. Store vertex data in the storage,
A color image processing method, comprising: displaying an M-hedron indicating the color gamut on a display unit using vertex data constituting the M-hedron.
前記色座標空間は3次元空間であり、
前記N点の点列データは、前記点列データ群において前記色座標空間を構成する各成分の値が最大または最小である8つの点列データであることを特徴とする請求項5記載のカラー情報処理方法。
The color coordinate space is a three-dimensional space;
6. The color according to claim 5, wherein the point sequence data of the N points is eight point sequence data having the maximum or minimum value of each component constituting the color coordinate space in the point sequence data group. Information processing method.
請求項5又は6記載のカラー画像処理方法をコンピュータによって実現するためのプログラムを記録する記録媒体。  A recording medium for recording a program for realizing the color image processing method according to claim 5 by a computer.
JP15590798A 1997-06-16 1998-06-04 Polyhedron generation method, information processing method, and recording medium Expired - Fee Related JP3740283B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP15590798A JP3740283B2 (en) 1998-06-04 1998-06-04 Polyhedron generation method, information processing method, and recording medium
US09/095,546 US6556198B1 (en) 1997-06-16 1998-06-11 Polyhedron generating method and apparatus thereof, and storage medium for storing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15590798A JP3740283B2 (en) 1998-06-04 1998-06-04 Polyhedron generation method, information processing method, and recording medium

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2005157369A Division JP4040640B2 (en) 2005-05-30 2005-05-30 Color processing method and apparatus

Publications (2)

Publication Number Publication Date
JPH11353494A JPH11353494A (en) 1999-12-24
JP3740283B2 true JP3740283B2 (en) 2006-02-01

Family

ID=15616131

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15590798A Expired - Fee Related JP3740283B2 (en) 1997-06-16 1998-06-04 Polyhedron generation method, information processing method, and recording medium

Country Status (1)

Country Link
JP (1) JP3740283B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3817473B2 (en) 2001-12-25 2006-09-06 キヤノン株式会社 Image output apparatus and image processing method
JP4492313B2 (en) * 2004-11-25 2010-06-30 富士ゼロックス株式会社 Color image processing apparatus, color image processing method, program, and color image evaluation apparatus
EP1838083B1 (en) * 2006-03-23 2020-05-06 InterDigital CE Patent Holdings Color metadata for a downlink data channel
US10129513B2 (en) 2008-08-28 2018-11-13 Thomson Licensing Color metadata for a downlink data channel
JP4917139B2 (en) * 2009-10-08 2012-04-18 関西ペイント株式会社 Change color generation and display device
JP2011221862A (en) * 2010-04-12 2011-11-04 Ricoh Co Ltd Method and program for drawing distribution area of data points in coordinate plane

Also Published As

Publication number Publication date
JPH11353494A (en) 1999-12-24

Similar Documents

Publication Publication Date Title
Bruckner et al. Volumeshop: An interactive system for direct volume illustration
US6456287B1 (en) Method and apparatus for 3D model creation based on 2D images
EP2058764B1 (en) Image processing apparatus and image processing method
US6573893B1 (en) Voxel transfer circuit for accelerated volume rendering of a graphics image
JP4999711B2 (en) Image processing apparatus and image processing method
KR100829561B1 (en) Method and apparatus for rendering 3D graphic data
JP2001357410A (en) Graphic system for composing three-dimensional images generated separately
AU2011241415A1 (en) Camera projection meshes
JPH07282293A (en) 3D image generation method
KR20190129095A (en) Mixed Reality System with Multi-Source Virtual Content Synthesis and Method of Creating Virtual Content Using Them
JP3855053B2 (en) Image processing apparatus, image processing method, and image processing program
JP3740283B2 (en) Polyhedron generation method, information processing method, and recording medium
JP2008259697A (en) Image processing method, apparatus, and program
JP2006107093A (en) Image processor and program
US20060203010A1 (en) Real-time rendering of embedded transparent geometry in volumes on commodity graphics processing units
Toennies et al. Volume rendering for interactive 3D segmentation
JP4040640B2 (en) Color processing method and apparatus
Brecheisen et al. Flexible GPU-Based Multi-Volume Ray-Casting.
JP5069689B2 (en) Method and system for interactive probing and annotation of medical images using profile flags
EP3876205B1 (en) Image generation system and method
JP7595626B2 (en) Information processing device, information processing method, and program
US6356280B1 (en) Mechanism and apparatus for realistic 3D model creation using interactive scissors
Scheibel et al. Attributed vertex clouds
JP3733207B2 (en) Polyhedron generation method, polyhedron generation apparatus, recording medium, and color image processing apparatus
US20250299421A1 (en) Data processing systems

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050329

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050530

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051101

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051107

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081111

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091111

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101111

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101111

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111111

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121111

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131111

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees