(57)【特許請求の範囲】
【請求項１】
ポリゴンメッシュを圧縮するシステムであって、
プロセッサと、エンコーダと、を備え、
前記プロセッサは、
トラバース順序に従って、ポリゴンメッシュ内の複数のポリゴンの頂点をトラバースすることであって、前記複数のポリゴンは複数の非三角形ポリゴンを含む、ことと、
前記複数の非三角形ポリゴンを含む前記ポリゴンメッシュを、前記トラバース順序に従って順序付けられたポリゴンのファンのセットに分割することであって、少なくとも１つの前記ポリゴンのファンは複数のポリゴンを有し、各ポリゴンのファンは、前記ポリゴンのファン内の１つ以上のポリゴンの対応する頂点によって定義されており、前記複数のポリゴンを有する少なくとも１つの前記ポリゴンのファンについて、前記少なくとも１つのポリゴンのファン内の前記複数のポリゴンの共通の頂点から前記トラバース順序が開始する、ことと、
前記トラバース順序に従って、前記順序付けられたポリゴンのファンのセット内の非三角形ポリゴンの各々を、前記共通の頂点から非三角形ポリゴンの各々の対応する頂点までの三角形にテッセレーションし、前記トラバース順序に従って順序付けられた三角形のファンのセットを生成することによって、前記複数の非三角形ポリゴンを含む前記ポリゴンメッシュを三角形メッシュに変換することと、を含む動作を実行するように構成されており、
前記エンコーダは、
前記三角形メッシュ及び前記順序付けられた三角形のファンのセットを受信し、前記三角形メッシュ及び前記順序付けられた三角形のファンのセットを用いて、前記ポリゴンメッシュを圧縮するように構成されている、
システム。
【請求項２】
少なくとも２つの非三角形ポリゴンは共通の辺を共有している、
請求項１のシステム。
【請求項３】
前記分割することは、
付随するポリゴンを前記ポリゴンのファンのセットのうち何れかのポリゴンのファンに追加することを含み、
前記共通の頂点は、前記ポリゴンのファンの中心頂点であり、
前記付随するポリゴンは、巡回されておらず、
前記付随するポリゴンは、前記ポリゴンのファン内で隣接するポリゴンと同じ向きを有しており、又は、前記ポリゴンのファン内で隣接するポリゴンを有していない、
請求項２のシステム。
【請求項４】
前記テッセレーションすることは、
前記少なくとも１つのポリゴンのファン内の少なくとも２つの非三角形ポリゴンについて、前記少なくとも２つの非三角形ポリゴンの共通の頂点と、前記少なくとも２つの非三角形ポリゴンのうち対応する非三角形ポリゴンの他の頂点との間に、前記他の頂点のトラバース順序に従って少なくとも１つの辺を挿入することを含む、
請求項１のシステム。
【請求項５】
前記プロセッサは、
前記テッセレーションに基づいて、三角形メッシュを前記エンコーダに出力すること、を含む動作を実行するように構成されている、
請求項１のシステム。
【請求項６】
前記プロセッサは、
前記テッセレーションに基づいて、前記順序付けられた三角形のファンのセットを出力すること、を含む動作を実行するように構成されている、
請求項１のシステム。
【請求項７】
前記プロセッサは、
前記トラバース順序に従って、前記複数のポリゴン毎の三角形の数に対応する値のシーケンスを生成することと、
前記ポリゴンのファンのセットのうち何れかのポリゴンのファン内の各ポリゴンの三角形の数を出力することと、を含む動作を実行するように構成されている、
請求項１のシステム。
【請求項８】
前記エンコーダは、
前記三角形メッシュ及び前記順序付けられた三角形のファンのセットを受信し、前記三角形メッシュ及び三角形のファンのセットを用いて前記ポリゴンメッシュを圧縮するように構成された第１エンコーダと、
前記値のシーケンスを受信して圧縮するように構成されたエントロピーエンコーダと、を備える、
請求項７のシステム。
【請求項９】
ポリゴンメッシュを圧縮する方法であって、
トラバース順序に従って、ポリゴンメッシュ内の複数のポリゴンの頂点をトラバースすることであって、前記複数のポリゴンは複数の非三角形ポリゴンを含む、ことと、
前記複数の非三角形ポリゴンを含む前記ポリゴンメッシュを、前記トラバース順序に従って順序付けられたポリゴンのファンのセットに分割することであって、少なくとも１つの前記ポリゴンのファンは複数のポリゴンを有し、各ポリゴンのファンは、前記ポリゴンのファン内の１つ以上のポリゴンの対応する頂点によって定義されており、前記複数のポリゴンを有する少なくとも１つの前記ポリゴンのファンについて、前記少なくとも１つのポリゴンのファン内の前記複数のポリゴンの共通の頂点から前記トラバース順序が開始する、ことと、
前記トラバース順序に従って、前記順序付けられたポリゴンのファンのセット内の非三角形ポリゴンの各々を、前記共通の頂点から非三角形ポリゴンの各々の対応する頂点までの三角形にテッセレーションし、前記トラバース順序に従って順序付けられた三角形のファンのセットを生成することによって、前記複数の非三角形ポリゴンを含む前記ポリゴンメッシュを三角形メッシュに変換することと、
前記三角形メッシュ及び前記順序付けられた三角形のファンのセットを用いて、前記ポリゴンメッシュを圧縮することと、を含む、
方法。
【請求項１０】
少なくとも２つの非三角形ポリゴンは共通の辺を共有している、
請求項９の方法。
【請求項１１】
前記分割することは、
付随するポリゴンを前記ポリゴンのファンのセットのうち何れかのポリゴンのファンに追加することを含み、
前記共通の頂点は、前記ポリゴンのファンの中心頂点であり、
前記付随するポリゴンは、巡回されておらず、
前記付随するポリゴンは、前記ポリゴンのファン内で隣接するポリゴンと同じ向きを有しており、又は、前記ポリゴンのファン内で隣接するポリゴンを有していない、
請求項１０の方法。
【請求項１２】
前記テッセレーションすることは、
前記少なくとも１つのポリゴンのファン内の少なくとも２つの非三角形ポリゴンについて、前記少なくとも２つの非三角形ポリゴンの共通の頂点と、前記少なくとも２つの非三角形ポリゴンのうち対応する非三角形ポリゴンの他の頂点との間に、前記他の頂点のトラバース順序に従って少なくとも１つの辺を挿入することを含む、
請求項９の方法。
【請求項１３】
前記テッセレーションに基づいて、三角形メッシュをエンコーダに出力すること、を含む、
請求項９の方法。
【請求項１４】
前記テッセレーションに基づいて、前記順序付けられた三角形のファンのセットを出力すること、を含む、
請求項９の方法。
【請求項１５】
前記トラバース順序に従って、前記複数のポリゴン毎の三角形の数に対応する値のシーケンスを生成することと、
前記ポリゴンのファンのセットのうち何れかのポリゴンのファン内の各ポリゴンの三角形の数を出力することと、を含み、
前記圧縮することは、
前記三角形メッシュ及び三角形のファンのセットを用いて前記ポリゴンメッシュを圧縮することと、
前記値のシーケンスを圧縮することと、を含む、
請求項９の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、２０１４年８月２９日に出願された米国特許出願第１４／４７３，２４２号の優先権を主張する。
【０００２】
本開示は、概して、グラフィックス圧縮に関する。より具体的には、本開示は、ポリゴンメッシュ圧縮に関する。
【背景技術】
【０００３】
より現実的な３Ｄコンピュータグラフィックスを作成したいという要望が近年増加している。より現実的な３Ｄコンピュータグラフィックスを作成するためには、一般的に、３Ｄオブジェクトを、より細かい粒度のポリゴンメッシュによって表現する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ポリゴンメッシュは、オブジェクトの形状を定義する頂点、辺及び表面の集合である。メッシュによって表現される頂点、辺及び表面が多くなると、オブジェクトがより現実的に見える。しかしながら、頂点、辺及び表面の数が増えると、より多くのメモリが必要になる。これは、メモリ又は帯域幅が制限されている環境においては重大な問題になる。したがって、ポリゴンメッシュを圧縮する方法を見出すことが望ましい。
【課題を解決するための手段】
【０００５】
実施形態は、トラバース順序に従ってポリゴンメッシュをトラバースし、前記トラバース順序に基づいて、ポリゴンメッシュをポリゴンのファン（fan）のセットに分割し、前記トラバース順序に基づいて、前記ポリゴンのファンのセットを三角形にテッセレーションする技術を含む。このメカニズムによって、スケーラブルコンプレクシティ３Ｄメッシュ圧縮−トライアングルファン（ＳＣ３ＤＭＣ−ＴＦＡＮ：Scalable Complexity 3D Mesh Compression-Triangle-Fan）標準を用いて、ポリゴンメッシュを圧縮及び解凍することが可能になる。この結果、このメカニズムにより、ＳＣ３ＤＭＣエンコーダ及びデコーダを最大限に再利用することが可能になる。
【０００６】
本明細書で説明される実施形態は、ＳＣ３ＤＭＣ−ＴＦＡＮ標準を用いてポリゴンメッシュを圧縮及び解凍するためのシステム、コンピュータ可読媒体、及び、コンピュータによって実行される方法を含む。本実施形態のさらなる特徴及び利点、並びに、本実施形態の構造及び動作は、添付図面を参照して以下で詳細に説明される。本実施形態は、本明細書に記載の特定の実施形態に限定されないことに留意されたい。かかる実施形態は、例示的な目的のためだけに本明細書にて提示される。本明細書に含まれる教示に基づいて、さらなる実施形態が当業者において明らかであろう。
【０００７】
本明細書に組み込まれ本明細書の一部を形成する添付図面は、実施形態を示しており、以下の説明とともに、本実施形態の原理を説明し、開示された実施形態を当業者が行い、使用できるようにすることにおいて役立つ。
【図面の簡単な説明】
【０００８】
【図１】一実施形態による、ポリゴンメッシュを圧縮するシステムのブロック図である。
【図２】一実施形態による、ポリゴンメッシュを解凍するシステムのブロック図である。
【図３】一実施形態による、ポリゴンメッシュを圧縮する例示的な方法のフローチャートである。
【図４】一実施形態による、ポリゴンメッシュを解凍する例示的な方法のフローチャートである。
【図５】一実施形態による、圧縮目的でポリゴンメッシュの頂点をトラバースする例示的な順序を示す図である。
【図６】一実施形態による、圧縮目的でポリゴンをポリゴンのファンに分割する例を示す図である。
【図７】一実施形態による、圧縮目的でポリゴンのファンを三角形にテッセレーション処理する例を示す図である。
【図８】本実施形態を実施可能な例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【０００９】
以下の詳細な説明において、「一実施形態」、「実施形態」、「例示的な実施形態」等の言及は、説明された実施形態が特定の特徴、構造又は特性を含むことを示しているが、必ずしも特定の特徴、構造又は特性を含む必要はない。また、かかる語句は、必ずしも同一の実施形態を指しているわけではない。さらに、特定の特徴、構造又は特性が実施形態に関連して説明される場合、明確に説明されるか否かに関わらず、他の実施形態と関連してかかる特徴、構造又は特性に影響を与えることは当業者の知識の範囲内であると受け入れられる。
【００１０】
「実施形態」という用語は、全ての実施形態が、考察された特徴、利点又は動作モードを含むことを必要としない。実施形態の範囲から逸脱することなく、代替的な実施形態が考察されてもよい。また、実施形態の周知の要素は、詳細に説明されなくてもよいし、実施形態の関連する詳細を曖昧にしないように省略されてもよい。また、本明細書で使用される専門用語は、特定の実施形態を説明することのみを目的とするものであり、実施形態を限定することを意図するものではない。例えば、本明細書で使用されるように、単数形「ａ」、「ａｎ」及び「ｔｈｅ」は、文脈において明確に示されない限り、複数形も含むことが意図される。「ｃｏｍｐｒｉｓｅｓ（備える）」、「ｃｏｍｐｒｉｓｉｎｇ（備えている）」、「ｉｎｃｌｕｄｅｓ（含む）」及び／又は「ｉｎｃｌｕｄｉｎｇ（含んでいる）」は、本明細書で使用される場合、記載された特徴、整数、ステップ、動作、要素及び／又は構成要素の存在を特定するものであるが、１つ以上の他の特徴、整数、ステップ、動作、要素、構成要素及び／又はこれらのグループの存在又は追加を排除するものではない。
【００１１】
本開示は、ポリゴンメッシュを圧縮するためのシステム及び方法に関連する実施形態を対象とする。メッシュ圧縮には、いくつかの標準が存在する。最も一般的な標準の１つは、ＭＰＥＧ／ＳＣ３ＤＭＣ（Moving Picture Experts Group/Scalable Complexity 3D Mesh Compression）標準である。この標準は、三角形メッシュを圧縮するための種々のアルゴリズムを定義している。ＳＣ３ＤＭＣ  Ｔｒｉａｎｇｌｅ−Ｆａｎ（ＴＦＡＮ）アルゴリズムは、最良の圧縮比を提供する。しかしながら、ＳＣ３ＤＭＣ−ＴＦＡＮアルゴリズムは、任意のｎ面（又はｎ次）ポリゴンメッシュを圧縮するために使用することができない。むしろ、ＳＣ３ＤＭＣ−ＴＦＡＮアルゴリズムは、三角形メッシュ（すなわち、ｎ＝３のｎ面ポリゴン）でしか機能しない。
【００１２】
三角形メッシュは、ポリゴンメッシュの特殊なケースである。具体的には、３Ｄオブジェクトは、ポリゴンの集合としてではなく、三角形の集合として表現される。しかしながら、三角形メッシュがポリゴンメッシュの特殊なタイプであるものの、ポリゴンメッシュは、依然として、３Ｄオブジェクトをモデル化する場合に非常に有用である。四角形、五角形、六角形及び高次のポリゴンによって、３Ｄモデラは、３Ｄオブジェクトをより容易且つ正確にモデリングすることができる。
【００１３】
上述したように、ＳＣ３ＤＭＣ−ＴＦＡＮ標準を用いてポリゴンメッシュを圧縮及び解凍することの可能なシステム及び方法が必要とされている。かかるシステム及び方法によって、ＳＣ３ＤＭＣ−ＴＦＡＮ標準の既存の実装の使用を可能にすることが望ましい。
【００１４】
図１は、ＳＣ３ＤＭＣ−ＴＦＡＮ標準を使用してポリゴンメッシュを圧縮するシステムの例示的な機能ブロック図である。ブロック図１００は、前処理モジュール１２０と、ＳＣ３ＤＭＣエンコーダ１６０と、エントロピーエンコーダ１７０と、ＭＵＸ１８０と、等の種々の要素を含む。これらの要素は、ハードウェア又はソフトウェアで実装されてもよい。
【００１５】
前処理モジュール１２０は、ポリゴンメッシュ１１０を受信する。前処理モジュール１２０は、ポリゴンメッシュ１１０をテッセレーションする。ポリゴンメッシュ１１０をテッセレーションすることによって、ＳＣ３ＤＭＣ−ＴＦＡＮ標準を用いてポリゴンメッシュ１１０を圧縮することができる。このテッセレーションは、特定の方法で実行され、三角形メッシュ１３０と、三角形のファンのセット１４０と、シーケンス１５０と、を生成する。
【００１６】
三角形メッシュ１３０は、三角形の集合としてのポリゴンメッシュ１１０の表現である。換言すれば、ポリゴンメッシュ１１０内の各ポリゴンは、１つ以上の三角形に分割される。
【００１７】
三角形のファンのセット１４０は、三角形のファンのセットとしての三角形メッシュ１３０の表現である。三角形のファンは、記憶空間を節約する、３Ｄコンピュータグラフィックのプリミティブ（primitive）である。具体的には、三角形のファンは、１つの中心頂点を共有する、接続された三角形のセットを記述する。ファン内の三角形の数がＮである場合、三角形のファンを記述するのに必要な頂点の数はＮ＋２であるため、三角形のファンは記憶空間を節約する。これは、三角形を別々に記述するのに３×Ｎ個の頂点が必要であることに対する改善である。三角形のファンのセット１４０は、三角形メッシュ１３０を圧縮する場合にＳＣ３ＤＭＣエンコーダ１６０を案内するために使用される。
【００１８】
シーケンス１５０は、一連の数字であり、各数字は、ポリゴンメッシュ１１０内の各ポリゴンを構成する三角形の数を表している。シーケンス１５０を送信することによって、三角形メッシュ１３０からポリゴンメッシュ１１０を再構築することが可能になる。
【００１９】
ＳＣ３ＤＭＣエンコーダ１６０は、三角形メッシュ１３０と、三角形のファンのセット１４０との両方を受信する。ＳＣ３ＤＭＣエンコーダ１６０は、ＳＣ３ＤＭＣ−ＴＦＡＮ標準に従って、三角形メッシュ１３０の圧縮バージョンを生成する。ＳＣ３ＤＭＣエンコーダ１６０は、三角形メッシュを圧縮するように設計されている。したがって、ＳＣ３ＤＭＣエンコーダ１６０は、三角形メッシュ１３０と三角形のファンのセット１４０とを前処理モジュール１２０から受信するので、ポリゴンメッシュ１１０を圧縮することができる。
【００２０】
エントロピーエンコーダ１７０は、シーケンス１５０を受信して、圧縮する。当業者に理解されるように、種々の圧縮アルゴリズムが使用されてもよい。例えば、シーケンス１５０は、シーケンス内の統計的相関に基づいて圧縮されてもよい。
【００２１】
ＭＵＸ１８０は、三角形メッシュ１３０の圧縮バージョンをＳ３ＣＤＭＣエンコーダ１６０から受信する。また、ＭＵＸ１８０は、シーケンス１５０の圧縮バージョンをエントロピーエンコーダ１７０から受信する。ＭＵＸ１８０は、両方の情報を圧縮ストリーム１９０に多重化する。
【００２２】
図２は、圧縮ストリーム２１０を解凍するためのシステムの例示的な機能ブロック図２００である。圧縮ストリーム２１０は、ポリゴンメッシュ１１０及びシーケンス１５０の各々の圧縮バージョンを表す。ブロック図２００は、Ｄｅ−Ｍｕｘ２２０と、ＳＣ３ＤＭＣデコーダ２３０と、エントロピーデコーダ２４０と、後処理モジュール２７０と、等の種々の要素を含む。これらの要素は、ハードウェア又はソフトウェアで実装されてもよい。
【００２３】
Ｄｅ−Ｍｕｘ２２０は、圧縮ストリーム２１０を受信する。Ｄｅ−ＭＵＸ２２０は、圧縮ストリーム２１０を三角形メッシュ１３０の圧縮バージョンに逆多重化する。三角形メッシュ１３０の圧縮バージョンは、ＳＣ３ＤＭＣデコーダ２３０に送信される。また、Ｄｅ−ＭＵＸ２２０は、圧縮ストリーム２１０をシーケンス１５０の圧縮バージョンに逆多重化する。シーケンス１５０の圧縮バージョンは、エントロピーデコーダ２４０に送信される。
【００２４】
ＳＣ３ＤＭＣデコーダ２３０は、三角形メッシュ１３０の圧縮バージョンを受信して、三角形メッシュ２５０を生成する。三角形メッシュ２５０は、三角形メッシュ１３０と同一である。同様に、エントロピーデコーダ２４０は、シーケンス１５０の圧縮バージョンを受信して、シーケンス２６０を生成する。シーケンス２６０は、シーケンス１５０と同一である。
【００２５】
後処理モジュール２７０は、シーケンス２６０に基づいて、三角形メッシュ２５０からの三角形をポリゴンに統合（マージ）する。具体的には、後処理モジュール２７０は、前処理モジュール１２０によって指定されたトラバース順序に従って、三角形メッシュ２５０内の頂点をトラバースする。各ステージにおいて、現在の頂点（current vertex）に伴う（incident to）全ての三角形は、これらの復号化順序で順序付けされる。次いで、次のポリゴンを構成する三角形の数がシーケンス２６０から読み込まれる。その後、対応する数の三角形が単一のポリゴンに統合される。この操作は、現在の頂点に伴う全ての三角形が巡回されるまで繰り返される。
【００２６】
図３は、一実施形態による、ポリゴンメッシュを圧縮するための方法３００を示すブロック図である。上記で示唆され、以下でさらに詳細に説明されるように、方法３００は、ソフトウェア又はハードウェアで実施されてもよい。図３に示す動作をより良く理解するために、図５に示す例示的なポリゴンメッシュ５００と、図６に示すポリゴンのファンに分割されるポリゴンメッシュ６００と、図７に示すポリゴンメッシュ７００のポリゴンのファンのテッセレーションと、が参照される。
【００２７】
図３を参照すると、方法３００は、前処理モジュール１２０がポリゴンメッシュを受信するステップ３１０から開始する。ポリゴンメッシュは、３Ｄコンピュータグラフィックにおいて多面体オブジェクトの形状を定義する頂点、辺及び表面の集合である。例えば、図５では、７つのポリゴン（すなわち、Ｐ１〜Ｐ７から構成されるポリゴンメッシュ５００）を示している。ポリゴンメッシュの各ポリゴンは、頂点のセットによって定義され、各頂点は、元のインデックスを有する。例えば、図５のポリゴンＰ１は、インデックスｖ０，ｖ７，ｖ６，ｖ４，ｖ５，ｖ１を有する頂点によって定義されている。
【００２８】
ステップ３２０では、前処理モジュール１２０は、ポリゴンメッシュの頂点をトラバースする。好ましい実施形態では、前処理モジュール１２０は、頂点の隣接間決定論的トラバース（neighbor-to-neighbor deterministic traversal）を実行する。基本的な考え方は、ポリゴンメッシュをポリゴンのファンのセットに分割するために、頂点を一意の順序でトラバースすることである。
【００２９】
ポリゴンのファンは、対応するポリゴンのセットを個別に表現するのに比べて記憶空間を削減する、３Ｄコンピュータグラフィックのプリミティブである。ポリゴンのファンは、三角形のファンの一般化されたケースであり、１つの中心頂点を共有する、接続されたポリゴンのセットを定義する。例えば、図５では、ポリゴンＰ１，Ｐ２，Ｐ３，Ｐ４を含む中心頂点ｖ０を有するポリゴンのファンを示している。
【００３０】
ポリゴンのファンは、その頂点のトラバース順序によって定義されてもよい。具体的には、ポリゴンのファンは、その中心頂点から開始する、順序付けられた頂点のシーケンスとして定義されてもよい。例えば、図５では、ポリゴンＰ１，Ｐ２，Ｐ３，Ｐ４を含む中心頂点ｖ０を有するポリゴンのファンを示している。このポリゴンのファンは、頂点ｖ０，ｖ７，ｖ６，ｖ４，ｖ５，ｖ１，ｖ０，ｖ１，ｖ３，ｖ２，ｖ０，ｖ２，ｖ１３，ｖ１２，ｖ０，ｖ１２，ｖ８，ｖ７，ｖ０という、順序付けられた頂点のシーケンスによって定義されてもよい。この順序付けられた頂点のシーケンスは、ポリゴンのファンを定義する。
【００３１】
ポリゴンのファンは、いくつかの特性を有する。第１に、ポリゴンのファンの全てのポリゴンは、中心頂点を共有する。中心頂点は、ポリゴンのファンの所謂中心である。第２に、ポリゴンのファン内の連続する２つのポリゴンの各々は、共通の辺を共有するという意味で隣接している。例えば、図６のポリゴンメッシュ６００のポリゴンＰ１，Ｐ２は、共通の辺（すなわち、（ｖ０，ｖ１））を共有している。第３に、隣接するポリゴンは、同じ向きを有する。具体的には、隣接する２つのポリゴンは、これらの共通の辺がポリゴンのファンに対して反対方向にトラバースされる場合、同じ向きを有する。例えば、上記のトラバース順序に基づいて、ポリゴンＰ１，Ｐ２の共通の辺（ｖ０，ｖ１）は、反対方向にトラバースされる。
【００３２】
ステップ３２０に従ってポリゴンメッシュをポリゴンのファンのセットに分割するために、前処理モジュール１２０は、ポリゴンメッシュの頂点の一意のトラバース順序を定義する。上述したように、好ましい実施形態では、前処理モジュール１２０は、ポリゴンメッシュの頂点の隣接間決定論的トラバースを実行する。基本的な考え方は、隣接間決定論的トラバースに基づいて、ポリゴンメッシュの各頂点インデックスを再ラベル付けすることである。
【００３３】
好ましい実施形態では、前処理モジュール１２０は、以下のように隣接間決定論的トラバースを実行する。最初に、ポリゴンメッシュ内の頂点のセット全体が巡回されていないとみなされる。次に、ポリゴンメッシュから任意の頂点が選択される。選択された頂点は、好ましくは、先入れ先出し（ＦＩＦＯ）データ構造（例えば、Ｆ）に記憶される。各ステージにおいて、頂点は、Ｆから抽出され、そのトラバース順序に基づいて再ラベル付けされる。
【００３４】
前処理モジュール１２０は、抽出された頂点の各々に対して、未だ検討されていない付随するポリゴンのセットを決定する。次いで、この付随するポリゴンのセットは、ステップ３３０に従ってポリゴンのファンのセットに分割される。ポリゴンのファンの各頂点は、その後、トラバースされ、Ｆに挿入され、巡回されたものとしてマークされる。さらに、頂点は、そのトラバース順序に従って再ラベル付けされる。この処理は、Ｆが空になり、ポリゴンメッシュの全ての頂点が巡回されたものとしてマークされたときに終了する。
【００３５】
好ましい実施形態では、頂点をそのトラバース順序に基づいて再ラベル付けするために、カウンタが使用される。具体的には、カウンタは、ゼロに初期化されており、巡回されていない新たな頂点がＦから抽出される毎にインクリメントされる。したがって、カウンタの値は、ポリゴンメッシュ内の頂点のトラバース順序を定義する。例えば、Ｆから抽出されたｊ番目の頂点は、ｊに等しいトラバース順序を有する。
【００３６】
付随するポリゴンのセットをポリゴンのファンのセットに分割するためのいくつかの異なる方針が検討されてもよい。好ましい実施形態では、反復的アプローチが使用される。この好ましい実施形態は、以下のステップ３３０で説明される。当業者は、他の手法を使用してもよいことを理解するであろう。
【００３７】
ステップ３３０では、前処理モジュール１２０は、ポリゴンメッシュをポリゴンのファンのセットに分割する。換言すると、ステップ３２０において抽出された各頂点について、抽出された頂点に付随するポリゴンのセットがポリゴンのファンのセットに分割される。
【００３８】
具体的には、Ｆから抽出されたｊ番目の頂点を考える。これは、巡回されたｊ番目の頂点であり、ｖ’ｊで示される。各反復ｎにおいて、ｖ’ｊに付随するポリゴンＰ１（ｊ）から開始するポリゴンのファンＰＦ（ｎ）（ｊ）が生成され、Ｐ１（ｊ）は、最小数の隣接するポリゴンを有する。ＰＦ（ｎ）（ｊ）内のＰ１（ｊ）に隣接するポリゴンは、Ｐ１（ｊ）と辺を共有するポリゴンであって、巡回されておらず、Ｐ１（ｊ）と同じ向きを有するポリゴンである。次に、Ｐ１（ｊ）は、ポリゴンファンのＰＦ（ｎ）（ｊ）に追加され、巡回されたものとしてマークされる。
【００３９】
そして、この手順が繰り返される。例えば、巡回されておらず、Ｐ１（ｊ）に隣接し、Ｐ１（ｊ）と同じ向きを有する、ｖ’ｊに付随するポリゴンが、ランダムに選択される。次に、この付随するポリゴンは、ポリゴンファンＰＦ（ｎ）（ｊ）に追加され、巡回されたものとしてマークされる。
【００４０】
付随するポリゴンがポリゴンＰＦ（ｎ）（ｊ）に追加される毎に、その頂点がＦに追加される。これらの頂点は、（巡回されていない場合）そのトラバース順序に基づいて抽出され、トラバースされ、再ラベル付けされ、さらには、巡回されたものとしてマークされる。好ましい実施形態では、ポリゴンの頂点は、時計回りにトラバースされる。また、前処理モジュール１２０は、以前に巡回されていない抽出された頂点毎に、付随するポリゴンのセットを決定する。また、この付随するポリゴンのセットの頂点は、Ｆに追加される。
【００４１】
この処理は、巡回されていない同じ向きの隣接するポリゴンを選択することが不可能になるまで継続する。これが発生した場合、新たなポリゴンのファンが生成される必要がある。前処理モジュール１２０は、考察されていない付随するポリゴンを有する次の抽出された頂点ｖ’ｋから開始する新たなポリゴンのファンを生成する。抽出された頂点ｖ’ｋについて付随するポリゴンＰ１（ｋ）を識別した後、Ｐ１（ｋ）がポリゴンのファンＰＦ（ｎ）（ｋ）に追加され、巡回されたものとしてマークされる。また、Ｐ１（ｋ）に関連付けられた頂点がＦに追加される。
【００４２】
上述した動作をより良く理解するために、図５のポリゴンメッシュ５００を参照してステップ３２０，３３０を説明する。上述したように、図５は、７つのポリゴン（すなわち、Ｐ１〜Ｐ７）から構成されるポリゴンメッシュ５００を示している。ポリゴンメッシュ５００は、頂点のセット（すなわち、ｖ１〜ｖ１３）によって定義されている。しかしながら、これらの頂点のインデックスは、ポリゴンのファンのセットに対しては勿論、ポリゴンに対してトラバース順序を定義していない場合がある。例えば、ポリゴンＰ２は、頂点ｖ０，ｖ１，ｖ３，ｖ２によって時計回りに定義されている。しかしながら、これらのインデックスは、Ｐ２のトラバース順序を定義していない。したがって、ポリゴンメッシュ５００の頂点を再ラベル付けする必要がある。
【００４３】
ステップ３２０では、頂点ｖ０が任意に選択され、ｖ’０に再ラベル付けされる。これは、ｖ０が、トラバースされた最初の頂点であったためである。ポリゴンＰ１，Ｐ２，Ｐ３，Ｐ４は、頂点ｖ’０に付随する。したがって、これらの付随するポリゴンは、ステップ３３０に従って、ポリゴンのファンのセットに分割される。
【００４４】
ステップ３３０では、ポリゴンのファン０が、ｖ’０に付随するポリゴンＰ１から開始して生成される。Ｐ１は、ポリゴンのファン０に追加される。また、Ｐ１の頂点は、Ｆに追加される。Ｐ１からの各頂点がＦから抽出されるので、各頂点がそのトラバース順序に基づいて再ラベル付けされる。好ましい実施形態では、Ｐ１の頂点は、時計回りにトラバースされる。
【００４５】
加えて、前処理モジュール１２０は、抽出された頂点の各々に対して、新たな付随するポリゴンを決定する。例えば、頂点ｖ７は、Ｆから抽出され、ｖ’１として再ラベル付けされ、トラバースされた第２の頂点となり、巡回されたものとしてマークされる。ｖ’１は、２つの付随するポリゴン（すなわち、Ｐ１，Ｐ４）を有しており、これらのポリゴンが既にｖ’０に関して検討されているので、これらに関連する頂点がＦに追加されないことに留意されたい。それぞれｖ’２，ｖ’３，ｖ’４，ｖ’５として再ラベル付けられた頂点ｖ６，ｖ４，ｖ５，ｖ１でのトラバースが継続する。次いで、ポリゴンＰ１は、巡回されたものとしてマークされる。Ｐ１のトラバースの後に、付随するポリゴンＰ２は、ポリゴンのファン０に包含されるために考察される。Ｐ２は、ポリゴンのファンに包含される特性を満たすため、ポリゴンのファン０に追加される。特に、Ｐ１及びＰ２は、中心頂点（すなわち、ｖ０）を共有している。また、Ｐ２は、Ｐ１と辺（すなわち、（ｖ０、ｖ１））を共有しているため、Ｐ１の隣接ポリゴンである。最後に、Ｐ２は、Ｐ１と共通する辺（ｖ０、ｖ１）が反対方向にトラバースされるため、Ｐ１と同じ向きを有している。上記を検討すると、Ｐ２が巡回されないため、Ｐ２は、ポリゴンのファン０に追加され、巡回されたものとしてマークされる。
【００４６】
次に、Ｐ２の頂点がＦに追加され、その後トラバースされる。Ｐ２の頂点は、Ｆから抽出されるため、トラバース順序に基づいて再ラベル付けされる。しかしながら、頂点ｖ０，ｖ１は、既に巡回されているため、再ラベル付けされない。換言すると、巡回されていない頂点のみが再ラベル付けされる。したがって、Ｐ２の場合、ｖ０，ｖ１は、再ラベル付けされたインデックスｖ’０，ｖ’５を保持する。一方、ｖ３，ｖ２は、巡回されていないため、それぞれｖ’６，ｖ’７に再ラベル付けされる。結果として、Ｐ２の頂点は、ｖ’０，ｖ’５，ｖ’６，ｖ’７として再ラベル付けされる。
【００４７】
上記の処理は、巡回されていない同じ向きの隣接するポリゴンを得ることが不可能になるポイントまで継続することに留意されたい。このポイントに達すると、新たなポリゴンのファンを作成する必要がある。例えば、ポリゴンＰ３は、Ｐ２に隣接するポリゴンであり、巡回されておらず、Ｐ２と同じ向きを有している。したがって、ポリゴンＰ３は、ポリゴンのファン０に追加され、巡回されたものとしてマークけされる。しかしながら、ポリゴンＰ４をポリゴンのファン０に追加した後には、Ｐ４に対して、同じ向きを有し、巡回されていない、隣接するポリゴンが存在しない。実際、ポリゴンＰ１，Ｐ２，Ｐ３，Ｐ４の完全なファンが生成されている。この結果、新たなポリゴンを生成する必要がある。
【００４８】
ｖ１３で開始する新たなポリゴンのファン１が生成される。各頂点がトラバースされるにつれて、各頂点がＦに追加されることに留意されたい。さらに、各頂点がＦから抽出されると、抽出された頂点に付随するポリゴンのセットが検討されることに留意されたい。次いで、これらの付随するポリゴンの頂点は、トラバースされ、Ｆに挿入される。但し、新たな付随するポリゴンのみが検討される。したがって、頂点ｖ７が抽出されると、Ｐ１，Ｐは、ｖ０に対して付随するポリゴンとして既に検討されているため、検討されない。
【００４９】
一方、ｖ１３が抽出されると、ポリゴンＰ５は、ｖ０に付随するポリゴンの一部ではなかった。このため、ポリゴンＰ５に対応する頂点が、抽出のためにＦに追加される。同様に、ｖ１２が抽出されると、Ｐ６，Ｐ７は、検討されていない付随するポリゴンであることから、これらの頂点がＦに追加される。
【００５０】
上述したように、ステップ３２０，３３０は、Ｆに頂点がなくなったときに完了する。図５は、頂点の最終的なトラバース順序を示しており、図６は、ポリゴンのファンのセットを示している。具体的には、図６のポリゴンメッシュ６００は、３つのポリゴンのファン（すなわち、ポリゴンファン０、ポリゴンファン１及びポリゴンファン２）を有している。ポリゴンファン０はポリゴンＰ１〜Ｐ４を含む。ポリゴンファン１はポリゴンＰ５を含む。ポリゴンファン２はポリゴンＰ６及びＰ７を含む。
【００５１】
図５のポリゴンメッシュ５００は、一意の頂点のトラバース順序を有するポリゴンのファンのセットに分割されるが、依然として、ＳＣ３ＤＭＣエンコーダ１６０による圧縮に適していない。これは、ポリゴンメッシュ５００がポリゴンのファンに分割されており、ポリゴンメッシュ５００が、依然として、三角形というよりもむしろポリゴンから構成されているためである。したがって、ポリゴンメッシュ５００のポリゴンのファンのセットを、三角形にテッセレーションする必要がある。
【００５２】
ステップ３４０では、ステップ３３０で生成されたポリゴンのファンの各々が、頂点のトラバース順序に基づいて、前処理モジュール１２０によって１つ以上の三角形にテッセレーションされる。これにより、ＳＣ３ＤＭＣ−ＴＦＡＮアルゴリズムに従って三角形メッシュを圧縮するＳＣ３ＤＭＣエンコーダ１６０が、ポリゴンメッシュ５００を確実に圧縮することができる。
【００５３】
基本的な考え方は、ポリゴンのファンの各々に適切な追加の辺を導入することである。具体的には、前処理モジュール１２０は、ポリゴンのファン内の三角形ではない各ポリゴンに対して、最小のトラバース順序を有するポリゴンの頂点と、ポリゴンのファンの中心頂点と、の間に追加の辺を導入する。これにより、ポリゴン全体が三角形にテッセレーションされる。追加の辺を導入するこの処理は、ポリゴンのファン全体が三角形のファンに変形するまで継続する。この処理は、その後のポリゴンのファンに対しても繰り返される。
【００５４】
前処理モジュール１２０は、ポリゴンを、当該ポリゴンに関連する頂点がトラバースされる順序でテッセレーションする。換言すると、頂点ｖ’０，ｖ’１を含むポリゴンは、テッセレーションされる最初のポリゴンである。また、各ポリゴンがテッセレーションされた後、ポリゴンを構成する三角形の数は、解凍を目的としてメモリに記憶される。換言すると、前処理モジュール１２０は、シーケンスを生成する。シーケンス内の各数字は、対応するポリゴン内の三角形の数を表す。したがって、例えば３、５、２というシーケンスは、トラバース順序に基づくポリゴンメッシュの１番目（最初）のポリゴンが３つの三角形を含み、２番目のポリゴンが５つの三角形を含み、３番目（最後）のポリゴンが２つの三角形を含むことを示している。この生成されたシーケンスは、得られた三角形メッシュを元のポリゴンメッシュに再構築するのを可能にする。
【００５５】
例として、図７は、ポリゴンＰ１〜Ｐ４を含むポリゴンのファン０を示している。ポリゴンＰ１について、追加の辺が、頂点ｖ’０から反対側の頂点ｖ’２，ｖ’３，ｖ’４に導入される。これにより、Ｐ１は、全体的に三角形、特に４つの三角形から構成されることになる。テッセレーションは、ポリゴンＰ２，Ｐ３，Ｐ４の各々に対して繰り返される。この結果、ポリゴンのファン０は、１０個の三角形から構成される、中心頂点ｖ０を有する三角形のファンになる。次いで、この処理が、ポリゴンのファン１とポリゴンのファン２とに対して繰り返される。
【００５６】
ポリゴンのファン１は、既に三角形のみで構成されている。したがって、テッセレーションは実行されない。しかしながら、ポリゴンのファン２は、テッセレーションされていない。具体的には、ポリゴンのファン２は、ポリゴンＰ６，Ｐ７を含む。ポリゴンＰ６は三角形であるが、ポリゴンＰ７は三角形ではない。したがって、前処理モジュール１２０は、頂点ｖ’９とｖ’１３との間に辺を導入する。これにより、Ｐ７が２つの三角形にテッセレーションされることになる。図７に基づいて、ポリゴンごとの三角形の数を表す生成されたシーケンスは、｛４，２，２，２，１，１，２｝である。
【００５７】
ステップ３５０では、圧縮ストリームが出力される。圧縮ストリームは、２つの情報（すなわち、ステップ３４０で生成された圧縮三角形メッシュと、ポリゴン毎の三角形の数を表す圧縮シーケンスと）を含む。
【００５８】
図４は、一実施形態による、ポリゴンメッシュを解凍するための方法４００を示すブロック図である。以下でさらに詳細に説明するように、方法４００は、ソフトウェア又はハードウェアで実施されてもよい。
【００５９】
図４を参照すると、方法４００は、ｄｅ−ｍｕｘ２２０が、圧縮ストリームを受信するステップ４１０から開始する。圧縮ストリームは、ポリゴンメッシュを表す、ＳＣ３ＤＭＣエンコーダ１６０によって圧縮された三角形メッシュを含む。また、圧縮ストリームは、ポリゴンメッシュ内のポリゴン毎の三角形の数を表す、エントロピーエンコーダ１７０によって圧縮されたシーケンスを含む。
【００６０】
ステップ４２０では、ｄｅ−ｍｕｘ２２０は、圧縮ストリームを、その構成部分に逆多重化する。ＳＣ３ＤＭＣデコーダ２３０は、圧縮三角形メッシュを三角形メッシュ２５０に復号する。エントロピーデコーダ２４０は、ポリゴン毎の三角形の数を表す圧縮シーケンスをシーケンス２６０に復号する。両方の情報は、元のポリゴンメッシュを再構築するために後処理モジュール２７０に送信される。
【００６１】
ステップ４３０では、後処理モジュール２７０は、前処理モジュール１２０によって指定されたトラバース順序に従って、三角形メッシュ２５０の頂点をトラバースする。具体的には、後処理モジュール２７０は、再ラベル付けされたインデックスの順に頂点をトラバースする。
【００６２】
後処理モジュール２７０は、各頂点を順に検討する。各ステップにおいて、現在の頂点に付随する全ての三角形は、それらの復号順序で順序付けられる。換言すると、現在の頂点に付随する三角形は、それらの対応する再ラベル付けされた頂点に基づいて順序付けられる。例えば、図７では、頂点ｖ’０は、検討される最初の頂点である。Ｖ’０は、１０個の付随する三角形を有する。頂点ｖ’０，ｖ’１，ｖ’２によって定義される三角形は、復号順序１番目の付随する三角形である。同様に、頂点ｖ’０，ｖ’２，ｖ’３によって定義される三角形は、復号順序２番目の付随する三角形である。現在の頂点に対し付随する三角形を識別した後、後処理モジュール２７０は、ステップ４４０を実行する。
【００６３】
ステップ４４０では、付随する三角形が１つ以上のポリゴンに統合される。具体的には、後処理モジュール２７０は、シーケンス２６０における次の番号Ｎを読み込む。次に、後処理モジュール２７０は、次のＮ個の付随する三角形を単一のポリゴンに統合する。次いで、Ｎ個の付随する三角形が、巡回されたものとしてマークされる。そして、この動作が、現在の頂点に付随する全ての三角形が巡回されるまで繰り返される。
【００６４】
最後に、ステップ４５０では、結果として生じるポリゴンメッシュが出力される。結果として生じるポリゴンメッシュは、上述した前処理モジュール１２０によって処理されるポリゴンメッシュと同一である。
【００６５】
本明細書に提示された実施形態又はその一部は、ハードウェア、ファームウェア、ソフトウェア、及び／又は、これらの組み合わせで実施されてもよい。
【００６６】
本明細書で提示された実施形態は、２つ以上のデバイスの間又は１つのデバイスのサブコンポーネント内の任意の通信システムに適用される。本明細書で説明した代表的な機能は、ハードウェア、ソフトウェア、又は、これらのいくつかの組み合わせで実施されてもよい。例えば、代表的な機能は、本明細書で与えられた説明に基づいて当業者によって理解されるように、コンピュータプロセッサ、コンピュータ論理、特定用途向け集積回路（ＡＳＩＣ）、デジタルシグナルプロセッサ等を用いて実装されてもよい。したがって、本明細書で説明された機能を実行する任意のプロセッサは、本明細書で提示される実施形態の範囲及び趣旨内のものである。
【００６７】
以下に、本明細書で提示された開示の実施形態を実施するために使用され得る汎用コンピュータシステムを説明する。本開示は、ハードウェアにおいて、又は、ソフトウェアとハードウェアとの組み合わせとして実施されてもよい。したがって、本開示は、コンピュータシステム又は他の処理システムの環境において実施されてもよい。かかるコンピュータシステム８００の一例を図８に示す。コンピュータシステム８００は、プロセッサ８０４等の１つ以上のプロセッサを含む。プロセッサ８０４は、専用又は汎用のデジタルシグナルプロセッサであってもよい。プロセッサ８０４は、通信インフラストラクチャ８０２（例えば、バス又はネットワーク）に接続されている。この例示的なコンピュータシステムの観点から、種々のソフトウェアの実装形態が説明される。この説明を読めば、他のコンピュータシステム及び／又はコンピュータアーキテクチャを使用して本開示をどのように実施するかが、当業者に明らかになるであろう。
【００６８】
また、コンピュータシステム８００は、メインメモリ８０６（例えば、ランダムアクセスメモリ（ＲＡＭ））を含み、補助メモリ８０８も含むことができる。補助メモリ８０８は、１つ以上の例えば、ハードディスクドライブ８１０及び又はリムーバルストレージドライブ８１２（フロッピー（登録商標）ディスクドライブ、磁気テープドライブ、光ディスクドライブ等を表す）を含んでもよい。リムーバルストレージドライブ８１２は、リムーバルストレージユニット８１６に対して、周知の方法で読み込み及び／又は書き込みを行う。リムーバルストレージユニット８１６は、フロッピー（登録商標）ディスク、磁気テープ、光ディスク等を表し、リムーバルストレージドライブ８１２によって読み書きされる。当業者に理解されるように、リムーバルストレージユニット８１６は、コンピュータソフトウェア及び／又はデータが記憶されたコンピュータ利用可能記憶媒体を含む。
【００６９】
他の実装形態では、補助メモリ８０８は、コンピュータプログラム又は他の命令をコンピュータシステム８００にロードさせるための他の同様の手段を含んでもよい。かかる手段は、例えば、リムーバルストレージユニット８１８及びインタフェース８１４を含んでもよい。かかる手段の例は、プログラムカートリッジ及びカートリッジインタフェース（ビデオゲームデバイスで見られるもの等）、リムーバブルメモリチップ（ＥＰＲＯＭ又はＰＲＯＭ等）、並びに、関連ソケット、サムドライブ及びＵＳＢポートを含んでもよいし、ソフトウェア及びデータをリムーバルストレージユニット８１８からコンピュータシステム８００に転送させることの可能な他のリムーバルストレージユニット８１８及びインタフェース８１４を含んでもよい。
【００７０】
また、コンピュータシステム８００は、通信インタフェース８２０を含んでもよい。通信インタフェース８２０は、ソフトウェア及びデータを、コンピュータシステム８００と外部デバイスとの間で転送させることができる。通信インタフェース８２０の例は、モデム、ネットワークインタフェース（イーサネット（登録商標）カード等）、通信ポート、ＰＣＭＣＩＡスロット及びカード等を含んでもよい。通信インタフェース８２０を介して転送されるソフトウェア及びデータの信号形式は、電気信号、電磁気信号、光信号、又は、通信インタフェース８２０によって受信され得る他の信号であってよい。これらの信号は、通信経路８２２を介して通信インタフェース８２０に提供される。通信経路８２２は、信号を搬送するものであって、ワイヤ又はケーブル、光ファイバー、電話回線、携帯電話リンク、ＲＦリンク及び他の通信チャネルを用いて実装可能である。
【００７１】
本明細書で使用される場合、「コンピュータプログラム媒体」及び「コンピュータ可読媒体」という用語は、概して、リムーバルストレージユニット８１６，８１８又はハードディスクドライブ８１０に取り付けられたハードディスク等の有形の記憶媒体を総称するために用いられる。これらのコンピュータプログラム製品は、ソフトウェアをコンピュータシステム８００に提供するための手段である。
【００７２】
コンピュータプログラム（コンピュータ制御論理とも呼ばれる）は、メインメモリ８０６及び／又は補助メモリ８０８に記憶される。また、コンピュータプログラムは、通信インタフェース８２０を介して受信することもできる。かかるコンピュータプログラムは、実行されると、コンピュータシステム８００に対して、本明細書で説明した実施形態を実施させることができる。具体的には、コンピュータプログラムは、実行されると、プロセッサ８０４に対して、本明細書で説明した何れかの方法等の本開示の実施形態の処理を実施させることができる。したがって、かかるコンピュータプログラムは、コンピュータシステム８００のコントローラを表す。本開示がソフトウェアを用いて実施される場合、ソフトウェアは、コンピュータプログラム製品に記憶されてもよいし、リムーバルストレージドライブ８１２、インタフェース８１４又は通信インタフェース８２０を用いてコンピュータシステム８００にロードされてもよい。
【００７３】
他の実施形態では、本開示の特徴は、例えば、特定用途向け集積回路（ＡＳＩＣ）及びゲートアレイ等のハードウェアコンポーネントを用いて、主にハードウェアで実施される。また、本明細書で説明した機能を実行するためのハードウェアステートマシンの実装形態も当業者には明らかであろう。
【００７４】
本発明の概要及び要約は、発明者によって検討された、全てではないが１つ以上の例示的な実施形態を示しているが、本実施形態及び添付の特許請求の範囲を限定することを意図するものでは決してない。
【００７５】
本明細書における実施形態は、特定の機能の実装及びその関連を示す機能構成ブロックを用いて上述されている。これらの機能構成ブロックの境界は、説明の便宜上、本明細書において任意に定義されている。特定の機能及びそれに関連するものが適切に実行される限り、他の境界が定義されてもよい。
【００７６】
特定の実施形態の上述した説明は、当業者の知識を適用することによって、過度の実験をすることなく、本実施形態の一般的な概念から逸脱することなく、かかる特定の実施形態を種々の適用のために容易に修正及び／又は適合させることができる、本実施形態の一般的な性質を十分に表している。したがって、そのような適用及び修正は、本明細書で提示された教示及び指導に基づいて、開示された実施形態の均等物の意味及び範囲内にあることが意図される。本明細書の表現又は専門用語は、説明を目的とするものであって、限定を目的とするものではない。したがって、本明細書の専門用語又は表現は、教示及び指導の観点から当業者によって解釈されるものであることを理解されたい。
【図１】
0006517922.tif 000002
【図２】
0006517922.tif 000003
【図３】
0006517922.tif 000004
【図４】
0006517922.tif 000005
【図５】
0006517922.tif 000006
【図６】
0006517922.tif 000007
【図７】
0006517922.tif 000008
【図８】
0006517922.tif 000009