(57)【特許請求の範囲】
【請求項１】
３次元三角形メッシュを漸進復元できるように符号化する方法において、
（ａ）  モデルに対する３次元三角形メッシュを１つ以上の連結成分に分類する段階と、
（ｂ）  前記１つ以上の連結成分に対して各々頂点グラフ情報及び三角形グラフ情報を生成する段階と、
（ｃ）  各連結成分に対してその連結成分を構成する前記頂点グラフ情報及び前記三角形グラフ情報を複数個のデータパーティションに分割して符号化する段階と、
（ｄ）  前記データパーティション別に各データパーティションを構成する各三角形に対して頂点の位置に関する幾何情報及び色相、法線、テクスチャー座標情報を含む画像情報を符号化する段階とを含むことを特徴とする３次元メッシュ情報の漸進的な符号化方法。
【請求項２】
前記（ｃ）段階は、
前記モデルに属する頂点グラフ情報を全て集めて所定の大きさのデータパーティションに分割して符号化し、モデルに属する三角形グラフ情報を全て集めて所定の大きさのデータパーティションに分割して符号化する段階であることを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項３】
前記（ｃ）段階は、
各連結成分別にその連結成分を構成する前記頂点グラフ情報を１つのデータパーティションに符号化し、前記三角形グラフ情報を所定の大きさのデータパーティションに分割して符号化する段階であることを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項４】
前記（ｃ）段階は、
１つ以上の頂点グラフ情報及び三角形グラフ情報が順次に含まれた第１パーティション型と、一つの頂点グラフ情報のみが含まれた第２パーティション型と、他のパーティション型に含まれた三角形グラフ情報とも関連した頂点グラフ情報及びその頂点グラフ情報と対応する一部の三角形グラフ情報が含まれた第３パーティション型と、三角形グラフ情報のみが含まれた第４パーティション型のうち１つの型により各連結成分を構成する前記頂点グラフ情報と前記三角形グラフ情報のうち少なくとも１つを分割して符号化し、使用したパーティション型情報を符号化する段階であることを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項５】
前記（ｃ）段階は、
分岐する三角形に連結された２本のブランチのうち三角形が少ないブランチを先に符号化し、その符号化方向を示すオリエンテーション情報を符号化することを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項６】
前記オリエンテーション情報は、
三角形グラフ情報を含むデータパーティション毎に与えられることを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項７】
前記オリエンテーション情報は、
三角形グラフ情報を構成する対応する三角形ツリー情報に配置することを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項８】
前記オリエンテーション情報は、
三角形グラフ情報を構成する対応する三角形データに配置することを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項９】
前記（ｃ）段階において、
前記三角形グラフ情報をデータパーティションに分割して符号化する際、分岐する三角形が存在する場合、分岐する三角形に連結された２本のブランチのうち少なくとも片方のブランチの三角形情報が全て含まれた位置で分割することを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項１０】
前記（ｃ）段階において、前記三角形グラフ情報をデータパーティションに分割して符号化する際、分岐する三角形が存在する場合、分岐する三角形のＹ−頂点に対した情報を三角形グラフ情報のヘッダ情報に含めて符号化することを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項１１】
前記Ｙ−頂点に対した情報は、
Ｙ−頂点に対したバウンディングループインデックスであることを特徴とする請求項１０に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項１２】
前記３次元三角形メッシュが多角形メッシュ情報から三角形に再構成されて多角形エッジ情報を含んでいる際、
前記（ｃ）段階で多角形メッシュの実際エッジでのみ分割して三角形グラフ情報のデータパーティションに含まれた最初の三角形の多角形エッジ情報は符号化しないことを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項１３】
前記３次元三角形メッシュが多角形メッシュ情報から三角形に再構成されて多角形エッジ情報を含んでいる際、
前記（ｃ）段階で多角形メッシュの実際エッジ及び仮想エッジの分割を全て許容し、三角形グラフ情報の最初のデータパーティションに含まれた最初の三角形の多角形エッジ情報は符号化しないことを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項１４】
前記（ｃ）段階において、
前記三角形グラフ情報をデータパーティションに分割して符号化する際、三角形ストリップにおいて右側境界の開始点と左側境界の開始点に対したバウンディングループインデックス対を三角形グラフ情報のヘッダ情報に含めて符号化することを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項１５】
前記バウンディングループインデックス対に用いられるインデックスは前記モデルに属する連結成分別に独立された一連の番号のうち１つであることを特徴とする請求項１４に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項１６】
前記バウンディングループインデックス対に用いられるインデックスは前記モデル全体に亙った一連の番号のうち１つであることを特徴とする請求項１４に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項１７】
前記（ｄ）段階において、
前記データパーティションの境界に属する幾何情報を処理順が早いデータパーティションでのみ符号化することを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項１８】
前記（ｄ）段階において、
前記データパーティションの境界に属する幾何情報を処理順が早いデータパーティションと処理順が後のデータパーティションで全て符号化することを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項１９】
前記（ｄ）段階において、
前記データパーティションの境界に属する幾何情報を処理順が早いデータパーティションで符号化し、境界に属する幾何情報のうち処理順が後のデータパーティションの幾何情報と所定数より多く連結されたもののみを処理順が後のデータパーティションで符号化することを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項２０】
前記（ｄ）段階において、
前記データパーティションの境界に属する幾何情報のうちサンプリングした半分は処理順が早いつデータパーティションで符号化し、残り半分は処理順が後のデータパーティションで符号化することを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項２１】
前記（ｄ）段階において、
前記データパーティションの境界に属する幾何情報を処理順が早いデータパーティションでのみ符号化する第１幾何情報符号化方式と、処理順が早いデータパーティションと処理順が後のデータパーティションで全て符号化する第２幾何情報符号化方式のうち１つをデータパーティションのヘッダ情報に基づいて選択して符号化し、その選択情報を符号化することを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項２２】
前記（ｄ）段階において、
１つのデータパーティションに属するマーチビット毎に前記幾何情報及び前記画像情報を符号化することを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項２３】
前記（ｄ）段階において、
１つのデータパーティションに属する三角形グラフ情報、幾何情報及び画像情報を各々別に集めて１つのパーティションを構成して符号化することを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項２４】
前記（ｄ）段階において、
１つのデータパーティションに属する三角形グラフ情報、幾何情報及び画像情報を各々別に集めて別のパーティションを構成して符号化することを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項２５】
前記データパーティションは前記データパーティションの識別子及び前記データパーティションの内部に含まれた三角形の個数を示す三角形の個数情報を含むことを特徴とする請求項１に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項２６】
前記識別子は、
前記三角形グラフ情報をデータパーティションに分割して符号化する際、三角形ストリップにおいて右側境界の開始点と左側境界の開始点に対したバウンディングループインデックス対であることを特徴とする請求項２５に記載の３次元メッシュ情報の漸進的な符号化方法。
【請求項２７】
モデルに対する３次元三角形メッシュを１つ以上の連結成分に分類し、前記１つ以上の連結成分に対して各々頂点グラフ情報及び三角形グラフ情報を生成し、各連結成分に対してその連結成分を構成する前記頂点グラフ情報及び前記三角形グラフ情報を複数個のデータパーティションに分割して符号化し、前記データパーティション別に各データパーティションを構成する各三角形に対して頂点の位置に関する幾何情報及び色相、法線、テクスチャー座標情報を含む画像情報を符号化する漸進的な符号化方法により符号化したビットストリームを入力して復号化する方法において、
（ａ）  入力されたビットストリームを、含まれるヘッダ情報に基づいてデータパーティション単位に区分する段階と、
（ｂ）  前記データパーティションのパーティション型を前記ヘッダ情報に基づいて、１つ以上の頂点グラフ情報及び三角形グラフ情報が順次に含まれた第１パーティション型と、一つの頂点グラフ情報のみが含まれた第２パーティション型と、他のパーティション型に含まれた三角形グラフ情報とも関連された頂点グラフ情報及びその頂点グラフ情報と対応する一部の三角形グラフ情報が含まれた第３パーティション型と、三角形グラフ情報のみが含まれた第４パーティション型のいずれであるかを確認する段階と、
（ｃ）  前記データパーティションに頂点グラフ情報が含まれていると、前記頂点グラフ情報を復号化してバウンディングループを生成する段階と、
（ｄ）  前記データパーティションに三角形グラフ情報が含まれていると、前記三角形グラフ情報を復号化して３次元メッシュを生成する段階と、
（ｅ）  前記（ａ）段階乃至前記（ｄ）段階を繰返すことによって漸進的に３次元メッシュを生成する段階とを含むことを特徴とする３次元メッシュ情報の漸進的な復号化方法。
【請求項２８】
前記三角形グラフ情報を含むデータパーティションにはオリエンテーション情報が与えられ、
前記オリエンテーション情報により復号化方向を決定することを特徴とする請求項２７に記載の３次元メッシュ情報の漸進的な復号化方法。
【請求項２９】
三角形グラフ情報を構成する三角形ツリー情報にはオリエンテーション情報が与えられ、
前記オリエンテーション情報により復号化方向を決定することを特徴とする請求項２７に記載の３次元メッシュ情報の漸進的な復号化方法。
【請求項３０】
三角形グラフ情報を構成する三角形データ情報にはオリエンテーション情報が与えられ、
前記オリエンテーション情報により復号化方向を決定することを特徴とする請求項２９に記載の３次元メッシュ情報の漸進的な復号化方法。
【請求項３１】
前記三角形グラフ情報のヘッダに分岐する三角形のＹ−頂点に対した情報が与えられ、
分岐する三角形を復号化する場合、前記Ｙ−頂点に対した情報を用いて復号化することを特徴とする請求項２７に記載の３次元メッシュ情報の漸進的な復号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はMPEG-4合成/天然混合符号化(Moving Pictures Expert Group-4 Synthetic and Natural Hybrid Coding：以下MPEG-4 SNHCと称する)分野及びＶＲＭＬ(Virtual Reality Markup Language：以下VRMLと称する)で使われている三次元メッシュ(Mesh)データの漸進的な符号化/復号化のための方法及び装置に関する。
【背景技術】
【０００２】
三次元メッシュからなる三次元客体の伝送においてはメッシュデータの効率的な符号化のみならず、伝送されるデータの漸進的な復元が重要な必要条件として認識されている。伝送途中の線路上のエラーによってデータに損失が発生した場合、漸進的な復元によれば既に伝送されたデータのみでも一部復元が可能なので、再伝送されるべきメッシュデータの量が最小化される。漸進的な復元方式は、このように線路エラーに対して強い特徴を有するため、今後の無線通信または低伝送率通信等において効率よく使用可能な技術である。本発明は三次元メッシュデータの漸進的な符号化及びデータ損失に対する回復性(error resilience)を与えるために必要な連結情報(Connectivity)、幾何情報(Geometry)及び画像情報(Photometry)を構成し、これを符号化/復号化する方法を提示するためのものである。
【０００３】
以下、本発明の関連分野において用いられる用語を予め定義する。
▲多角形メッシュ(Polygonal mesh)：多角形メッシュは頂点の3次元空間上の座標(幾何情報)、それぞれの面とそれを構成する頂点との関係(連結情報)及びメッシュの幾何学的構造には影響を与えないが、どのように見えるかに対して影響を与える色相、法線、テクスチャー座標情報などの画像情報によって定義される。
【０００４】
▲フェース(Face)：フェースとは、一連の頂点インデックスの集合であり、コーナー(corner）は（面、頂点）の対を意味する。フェースを構成する頂点が相異なる頂点インデックスの集合である時、シンプルフェース(simple face)と称する。本発明ではシンプルフェース(simple face)で構成された多角形メッシュのみを取扱う。
▲エッジ(Edge)：頂点インデックスの対をエッジと称する。もし、多角形メッシュにおいて１つのエッジが一面でのみ現れるとこれを"boundary"と定義する。もし、多面に同一なエッジが現れればこのエッジは"singular"と定義する。但し、二枚の隣接面にのみ現れるエッジは"internal"と定義する。boundary edgeとinternal edgeは"regular"と定義する。
【０００５】
▲メッシュグラフ(Mesh graph)及びデュアルグラフ(dual Graph)：メッシュの各面の内部に各々１点を定義し、面間のinternal edgeを通過して前記定義した点を連結したグラフをデュアルグラフと称する。図６（Ａ）はメッシュグラフを例示したものであり、図６（Ｂ）は図６（Ａ）に示されたメッシュグラフのデュアルグラフを示したものである。
▲連結成分(Connected Component)：多角形メッシュにおいて経路(path）は一つのエッジにより連結された連続的な頂点の対のような非反復的な頂点の系列である。一つの経路において最初の頂点と最後の頂点はその経路により連結されたと称される。三角形メッシュの全ての頂点の全ての対が一つの経路により連結されたとすれば三角形メッシュは連結されたと見なす。一つの三角形メッシュが連結されない場合には二つ以上の連結成分に分解されうる。それぞれの連結成分は元の三角形メッシュの頂点、エッジ及び三角形の部分集合から構成された連結された三角形メッシュであり、その三角形メッシュの二つの頂点を一つの経路により連結すると同じ連結成分に属することになる。
【０００６】
▲ＶＲＭＬ(Virtual Reality Modeling Language：VRML）はインターネットで仮想空間を記述して伝送するために作られたグラフィック標準フォーマットである。
▲MPEG(Moving Picture Expert Group：MPEG）はビデオなどの多様なメディアの伝送のための圧縮フォーマットを標準化するための国際標準化活動である。
▲メッシュは客体を多数個の多角形で構成して表現したものである。
【０００７】
▲ノード(Node）は頂点スパニンググラフにおける一つの頂点、またはVRMLにおいて使用する描写の最小単位である。
▲位相幾何学的サーザリ(Topological Surgery）は、メッシュを三角形のストリップ(strip)状に作るために、与えられた経路(path)に沿ってメッシュをカットする、IBM社のメッシュコーディングのための方法である。
【０００８】
▲頂点スパニンググラフ(Vertex spanning graph）は位相幾何学的サーザリにおいてメッシュをカットする経路である。
▲三角形スパニングツリー(Triangle spanning tree）は位相幾何学的サーザリにおいて頂点スパニンググラフに沿ってカットして示す三角形ストリップ(triangle strip)であって、2進ツリー構造である。
【０００９】
▲vrunは連結された頂点の集合であって、branchやvleafに終わる。
▲vlastは現在のラン(run）が最後のブランチなのか否かを示す。最後のブランチであれば1、そうでなければ0が与えられる。
▲vleafは現在の頂点ラン端がリーフで終わるか、或いはブランチングノードで終わるかを示す。リーフで終わると1、そうでなければ0が与えられる。
【００１０】
▲vlengthは頂点ランの長さである。
▲loopstartは頂点ランのうち一部はリーフが再び他の頂点ランに会ってループを形成する場合が発生するが、そうした場合の開始を示す。
▲loopendは頂点ランのリーフがループを形成する場合、その終点を示す。
▲loopmapはloopstartとloopendの相互連関性を示す。loopendからloopstartへのエッジを関連付けるインデックスの集合である。
【００１１】
▲trunは連続される三角形の集合であって、その端はリーフ三角形またはブランチングする三角形からなる。
▲tleafは三角形のランがリーフ三角形で終るか、ブランチングする三角形で終わるかを示す。リーフ三角形ならば1、そうでなくブランチングする三角形ならば0が与えられる。
【００１２】
▲tmarchingは三角形の前進様相を記述する。ストリップにおいて右側境界にエッジを有すると1、左側境界にエッジを有すると0が与えられる。
▲polygonedgeは現在のエッジが元のメッシュモデルから与えられたエッジなのか、それとも多角形を三角形の集合として表現するためにいれたエッジなのかを示す。元のメッシュモデルから与えられたエッジならば1、そうでなければ0が与えられる。
【００１３】
▲Torientationはブランチ三角形において右側を先に訪問するか、左側を先に訪問するかを示す。左側を先に訪問すれば1、右側を訪問すれば0が与えられる。
既存の三次元メッシュデータに対する符号化ではメッシュデータ全体に対して符号化を行っていたため、全体のビットストリームを全て受取る前に符号化されたデータを部分的に復元することはほぼ不可能であった。また、伝送時発生する線路上のエラーによって極一部のデータが損失されても、全体を再び受取らなければならないという非効率が存在した。その例として、現在MPEG-4 SNHC三次元メッシュ符号化の技術として採択されているIBM社の符号化方式(ISO/IEC JTC1/SC29/WG11 MPEG98/W2301、"MPEG-4SNHC Verification Model 9.0")を挙げることができる。
【００１４】
MPEG-4 SNHCではVRMLに基づいてメッシュコーディングをデザインしている。VRMLにおいてメッシュはIndexed Face Setというノード型で記述される。メッシュデータをコーディングするための主な技術としてIBM社の位相幾何学的サーザリ(Topological Surgery)がある。この技術は与えられたメッシュを球と位相幾何学的に同一であると仮定した後、与えられた切断エッジ(Cutting-edge)に沿ってメッシュをカットすることによって、2進ツリー構造の三角形スパニンググラフ(triangle spanning graph)を生成する。この際、メッシュをカットするために定められた切断エッジは頂点と頂点を繋ぐ形態であって、ループを有するツリー構造として与えられる。この切断エッジを頂点スパニンググラフと称する。従って、この二つのツリー構造、即ち三角形スパニンググラフと頂点スパニンググラフとをコーディング及びデコーディングすれば元のメッシュを損失なく再生できる。
【００１５】
MPEG-4 SNHCによれば、一つのVRMLファイルには多数のIndexed Face Setが有り得るが、基本的に一つのIndexed Face Setを単位で圧縮を行なう。しかし、頂点間を連結しうる多角形の集合を一つの連結成分(connected component)とすれば、一つのIndexed Face Setは多数の連結成分で構成されることを許す。
一般に、グラフィックの迅速な処理のためにはモデリングされる単位が三角形でなければならないが、このような三角形はランダムに構成されるものではなく、ストリップやファンの形で相互連結されていることが望ましい。また、シンボルが反復されて表現されたものであるほど圧縮率に優れる。IBM社はこのような圧縮率とグラフィックの迅速な処理という観点でメッシュを可能な限り一つの長い三角形ストリップで作ろうとした。
【００１６】
図１は位相幾何学的サーザリにおける頂点スパニンググラフの一例を示したものである。図１においては頂点ランが復帰するループを有する形態を示す。
図２，図３は三角形メッシュの一例に対して頂点スパニンググラフと三角形スパニンググラフを生成する既存の方法を示したものである。図２（Ａ）乃至図３（Ａ）において太線で描いた部分が頂点スパニンググラフであり、このグラフは一本のブランチから多数本のブランチに分岐されうる。頂点スパニンググラフに沿ってメッシュをカットすれば、１つの連結された長い三角形ストリップが得られる。これを三角形スパニンググラフと称し、図２（Ｃ）に示される。図３（Ｂ）は頂点スパニンググラフにより形成されるバウンディングループを生成する過程を示し、図３（Ｃ）はデュアルグラフを示す。図３（Ｃ）に示されたデュアルグラフは三角形内の任意の一点をそのエッジを通過して隣接する三角形の内部の一点に連結する線を連結したものであり、三角形スパニンググラフの場合には２進ツリー構造を有する。
【００１７】
一つのメッシュは多数個の連結成分で構成できるので実際にはメッシュをなす連結成分毎に図２（Ｂ）のような頂点スパニンググラフと図２（ｃ）のような三角形スパニンググラフの対を生成する。従って、一つのIndexed Face Setをコーディングすれば、多数個の三角形スパニンググラフと頂点スパニンググラフが得られる。
この方法でエンコーディングされたデータを復元する方法は次の順序通り構成される。
【００１８】
1．頂点スパニンググラフを用いて図４に例示されたようなバウンディングループを生成する。
2．三角形スパニングツリーにおいてブランチングする三角形の第3の頂点をY-頂点とし、三角形スパニングツリーのビットストリームを用いてY-頂点を計算する。
3．三角形スパニンググラフの三角形マーチビットパターンを用いて三角形または多角形を生成する。
【００１９】
IBM社は頂点スパニンググラフと三角形スパニンググラフとを算術符号化を用いて無損失圧縮している。しかし、IBM社の方法で元の構造を再構成するためには全てのビットストリームを入力すべきであり、これによって次のような短所を有することになる。
1．データのデコーディングのためには全てのビットストリームを入力すべきなので、伝送中にエラーが発生した場合、全てのビットストリームを再伝送しなければならない。
【００２０】
2．圧縮されたデータが大きな場合、そのデータを全て伝送するには長時間がかかり、使用者はその時間だけ待機しなければならない。
従来の技術の短所を克服するためには次のような問題点を解決すべきである。
1．伝送中にエラーが発生してもその部分のみを再伝送することによってネットワークの負担と伝送時間を低減すべきである。
【００２１】
2．データの一部分のみで復元でき、既に復元された部分に対する三角形ないし多角形を処理してディスプレー上に表示すべきである。
前記二つの機能を既存のIBM社の方法の基本構造を維持しながら具現するためには、まず図３に示されたようなバウンディングループとY-頂点をどのように効率よく処理するかにかかっている。復元段階でY-頂点を計算するためにはブランチングする二つの三角形ランのうち少なくとも一方の三角形ランが全て入力されていなければならない。図３（Ｃ）において10、14、18に該当する点がY-頂点である。三角形ラン内に位置する三角形に対してはマーチビットパターンとバウンディングループを用いてその三角形の三つの頂点に対してインデックスを決定しうる。しかし、ブランチ三角形の３番目の頂点のY-頂点はつながる他の二つの三角形ランに対する全てのビットストリームがなければそのインデックスが決定できない。従って、後続ビットストリームが入る前まではブランチ三角形の以降の全ての三角形は復元されてディスプレーできない。IBM社の方法では全てのビットストリームが全て入力されていると仮定するので、かかる問題が発生しないが、入力順序通り三角形を復元してディスプレーするためにはかかる問題を解決すべきである。
【００２２】
従来のMPEGにおいて使用する三次元メッシュデータの圧縮方式は図７の通りである。
図７によれば、三次元メッシュデータ100は連結情報、幾何情報、そして画像情報に分れて各々連結情報符号化器102、幾何情報符号化器103、画像情報符号化器112を具備する符号化器101により符号化される。この際、頂点構造に対する情報105は連結情報符号化器102から幾何情報符号化器103に伝えられる。連結情報符号化器102、幾何情報符号化器103、そして画像情報符号化器112で圧縮された情報はエントロピ符号化器104により圧縮されたビットストリーム111で置換えられる。
【００２３】
圧縮されたビットストリーム111は再び復号化器112に入力される。即ち、圧縮されたビットストリーム111はエントロピ復号化器106を経て連結情報及び幾何情報、そして画像情報に分れ、これら情報は各々連結情報復号化器107、幾何情報復号化器108、画像情報復号化器113で各々復号される。符号化器101と同様に、頂点構造に対する情報109は連結情報復号化器107から幾何情報復号化器108に伝えられる。復号された連結情報、幾何情報、そして画像情報を用いて復元された三次元メッシュ110を構成しうる。
【００２４】
図７によれば、三次元メッシュは通信線路等で圧縮されたビットストリーム状に伝送される。ところが、図７に示されたような従来のMPEGで使用する三次元メッシュデータの圧縮方式はエントロピ符号化器104を使用するので、通信線路等から発生される伝送エラーに対して脆弱である。
【発明の開示】
【発明が解決しようとする課題】
【００２５】
本発明は前記問題点を解決するために創出されたものであって、伝送中にエラーが発生してもその部分のみを再伝送することによってネットワークの負担と伝送時間を低減し、伝送された一部の連結情報、幾何情報、そして画像情報を用いて三次元メッシュを漸進復元しうる三次元メッシュ情報の漸進的符号化/復号化方法を提供することをその目的とする。
【課題を解決するための手段】
【００２６】
前記目的を達成するために、本発明に係る三次元三角形メッシュを漸進復元できるように符号化する方法は、(a) モデルに対する三次元三角形メッシュを１つ以上の連結成分に分類する段階と、(b) 前記１つ以上の連結成分に対して各々頂点グラフ情報及び三角形グラフ情報を生成する段階と、(c) 各連結成分に対してその連結成分を構成する前記頂点グラフ情報及び前記三角形グラフ情報を独立して復号化しうる形式を有するデータパーティションに分割して符号化する段階と、(d) 前記データパーティション別に各データパーティションを構成する各三角形に対して頂点の位置に関する幾何情報及び色相、法線、テクスチャー座標情報を含む画像情報を符号化する段階とを含むことを特徴とする。
【００２７】
前記他の目的を達成するために、本発明に係る漸進的な符号化方法により符号化されたビットストリームを入力して復号化する方法は、(a) 入力されたビットストリームをデータパーティション単位に区分する段階と、(b) 前記データパーティションのパーティション型を確認する段階と、(c) 前記データパーティションに頂点グラフ情報が含まれていると、前記頂点グラフ情報を復号化してバウンディングループを生成する段階と、(d) 前記データパーティションに三角形グラフ情報が含まれていると、前記三角形グラフ情報を復号化して三次元メッシュを生成する段階と、(e) 前記(a)段階乃至前記(d)段階を繰返すことによって漸進的に三次元メッシュを生成する段階とを含むことを特徴とする。
【発明を実施するための最良の形態】
【００２８】
以下、添付された図面に基づき本発明を詳しく説明する。
まず、三次元メッシュの漸進的な処理のために、本発明では新たなメッシュ構造を図８のように提案する。図８によれば、三次元メッシュMOは連結または連結されていない多数の部分に分けられる。三次元メッシュMOに含まれた部分を多数個の段階別メッシュMOLに再構成しうる。一つの段階別メッシュはそれ自体の復元に必要な連結情報、幾何情報及び画像情報などを含む。この際、段階別メッシュは１つまたはそれ以上の部分メッシュMCOMを含むことになる。即ち、段階別メッシュは部分メッシュの集合で表現されうる。この際、部分メッシュは一つの独立した情報単位となり、連結情報、幾何情報、または画像情報に対する基本処理単位として取扱われる。
【００２９】
図９は本発明に係る三次元メッシュの符号器と復号器の構成を示す。まず、三次元メッシュ100が三次元データ分析器201により段階別メッシュMOL 211に再構成されて多数のMOL符号器202の入力となる。各MOL符号器202は図７の101のような独立形態の連結情報、幾何情報、そして画像情報の符号化器を具備する。一つの段階別メッシュMOLは必要に応じて多数個の部分メッシュMCOMに分れて伝送される。伝送される順序は図８に示された通りである。図８のように部分メッシュMCOMは連結情報、幾何情報または画像情報のうち何れか一つであり、連結情報、幾何情報、画像情報の順に符号化されて伝送される。この際、画像情報は必要に応じて省ける。連結情報、幾何情報、画像情報の順序を変更することは可能であるが、一つの段階別メッシュを表現するためには、一つのグループ内にこれら情報が形成されていることが望ましい。部分メッシュに区分される程度によってこのようなグループは多数個存在しうる(図８参照)。MOL符号器202は多数存在しうるが、上位段階のMOL符号器で使われた情報203は再び下位段階のMOL符号器で使われる。MOL符号器202を通じて圧縮されたMOLはMCOM単位の圧縮されたビットストリーム状に多重化器(MUX)204を経て伝送される。圧縮されたビットストリーム210は逆多重化器(DEMUX)205により段階別メッシュ(MOL)単位に分類されて各段階別MOL復号器206に伝えられ、各段階別MOL復号器206は伝えられた段階別メッシュ(MOL)を再び部分(MCOM)別に復号する。復号段階においても上位段階のMOL復号器の情報207は下位段階のMOL復号器で再使用される。段階別に復号化された段階別メッシュ(MOL）は三次元データ合成器208を通して三次元メッシュ110に復元される。
【００３０】
このように、一つの連結成分内の三次元メッシュ情報を特定の大きさに分割して符号化する場合、復号化器の側面から考慮すべき情報が発生する。即ち、分割された三次元メッシュビットストリームの一部を復号化器で受信し、漸進復元しながらレンダリング(rendering)させる時、復元されるツリーの方向が一定方向にのみ固定されており、前述したY-頂点に至った時、右側方向にある三角形ツリーの構成情報がわからなくて伝送されていない三次元メッシュ情報を全て得るまで漸進的な復号化のためのレンダリングをこれ以上出来ないとの問題がある。従って、漸進的に三次元メッシュの情報を符号化/復号化するために２進ツリーの分岐点から右側ツリーの連結性情報が提供できるY-頂点情報をビットストリーム内に構成して復号化器に伝送すべきである。
【００３１】
これを解決するためには、連結成分内の三次元メッシュ情報を特定の大きさに分割する時、レンダリングのためにY-頂点の連結性情報を共に構成して符号化する方法がある。ところが、この方法によればY-頂点の位置情報と順序情報の追加によって符号化効率が劣る問題点がある。かかる問題点は一定方向にのみツリーを構成してその方向に応じて符号化することによって招かれる問題であって、分割された三次元メッシュ情報においてY-頂点に至った時、連結性情報が必要なく、または最小化される方向に符号化方向を適応的に可変させることによって解決しうる。
【００３２】
図１０及び図１１によれば、本発明では三角形ツリーにおいてY-頂点を有する三角形に至った時、連結成分内の三角形ツリーを特定の大きさ単位に均等分割する時使用したtriangles＿per＿data、右側ブランチに属する三角形の個数のtriangle＿per＿right＿tree及び左側ブランチに属する三角形の個数のtriangle＿per＿left＿treeを基準として三角形ツリーの符号化順序を決定するようにし、これによる符号化方向を示すtorientation表示子750を備えるようにする。即ち、torientation750が0ならばルートが上側にある状態で左側のブランチ(逆時計回り方向)にある従属三角形ツリーを先に符号化し、1ならばルートが上側にある状態で右側のブランチ(時計回り方向)にある従属三角形ツリーを先に符号化させる。また、符号化方向性が決定された従属三角形ツリー内ではY-頂点を有する三角形に至っても符号化方向を示さない。
【００３３】
このような符号化方向性決定方法によって方向性表示者のtorientationを生成する過程の例を図１２に示す。この例において部材番号756及び757は既に方向性表示子が決定された従属三角形ツリー内で発生するY-頂点を有する三角形であるため、方向性表示子が定義されない。758は復号化器に三次元メッシュ情報の圧縮されたビットストリームを伝送する順序とレンダリングする順序を示したものである。即ち、従属三角形ツリー内でリーフ三角形の総数は方向性表示を有している三角形と方向性表示がなくY-頂点を有している三角形とを合せた数と同一であるとの特性を判別条件として使用する。
【００３４】
図１３は三次元メッシュ情報(MO)を例示したものであって、図１４は段階別メッシュ情報を例示したものである。
まず、一つの三角形メッシュが復元されるために必要な情報を要約すれば次の通りである。
図１５は三角形グラフとバウンディングループインデックスとの関係に対する概念図である。図１５においてmは右側開始インデックス、nは左側開始インデックス、中間の矢印はコーディングされる三角形の順序であり、この時前進する方向を基準として三角形ストリップの右側に位置する境界を右側境界、左側に位置する境界を左側境界、内部の点部はブランチ三角形である。
【００３５】
図１５のように三角形グラフの分割(パーティション)において右側境界及び左側境界の開始点のバウンディングループにおけるインデックスが与えられると仮定する。すると、次の通り各三角形グラフの各三角形に対して次のような情報が必要である。
●ブランチ三角形以前の三角形の場合
図１５に示されたように、ブランチ三角形以前の三角形の場合にはバウンディングループのインデックスが左側境界では１ずつ増加し、右側境界では1ずつ減少するので、マーチビットが復号化される度に三角形の三つの頂点をすぐ復元しうることがわかる。
【００３６】
●ブランチ三角形の場合
図１５においてブランチ三角形は三つの頂点b[m-3]、b[m-10]、b[n+2]で構成されることが分かる。しかし、ブランチ三角形において右側ブランチの三角形情報、即ち三角形の個数が分かる情報が入らなければ３番目の頂点のY-頂点のバウンディングループにおけるインデックスであるm-10がわからない。従って、Y-頂点のインデックスが決定されるためには一方のブランチの三角形の個数が分かる情報が入らなければならないことがわかる。一方のブランチの個数を知るためには三角形グラフで三角形ランに対する情報のみ入れば可能である。図１５の場合、右側のブランチ数がp個なら用いられる頂点の個数は次の通り容易に分かる。
【００３７】
一方のブランチにおける用いられる頂点の個数=p+2
従って、図１５においてブランチ三角形の３番目の頂点のY-頂点のバウンディングループにおけるインデックスは右側境界上の頂点のインデックスがm-3であり、ブランチ内の三角形の個数が５個という事実を用いて次の通り決定しうる。
Y-頂点のインデックス=(m-3)-(5+2)=m-3-7=m-10
●ブランチ三角形から分岐するブランチ内の三角形である場合
この場合、ブランチ三角形のY-頂点が決定されないと三角形の頂点のインデックスが決定できない。これは図１５に示された右側のブランチでY-頂点が解決されないと左側境界上に位置する頂点のインデックスが決定されないからである。
【００３８】
従って、漸進的なレンダリングのためにはデータ分割の結果Y-頂点を効率よく解決すべきであることが分かる。本発明ではこれを考慮して分割されたデータが相互独立的に復元及びレンダリング可能な方法を提示しようとする。
データ分割方法を大きく２種に分けて固定分割方法及び可変分割方法を提案する。固定分割方法は与えられたモデル全体に亙って同一な分割方式が適用される反面、可変分割方法はデータ分割に含まれるビットストリームの種類、即ち頂点グラフ、三角形ツリー、三角形データ等によって異なる分割方式を使用しうる。
【００３９】
＜固定分割方法＞
図１６（Ａ）乃至図１６（Ｄ）は位相幾何学的サーザリ過程における本発明が提案する固定データ分割方法を示す。scは開始コード、idはパーティションの識別子、vgは頂点グラフ、ttは三角形ツリー、そしてtdは三角形データを示す。図１６（Ａ）は一つの連結されたデータを一つの単位データに区分する場合であり、図１６（Ｂ）は一つの連結されたデータ内で頂点グラフ及び三角形グラフを各々一つのデータ単位に束ねる場合である。
【００４０】
前述したように分割することによって、位相幾何学的サーザリを通じて得られた情報を意味のある大きさのデータ単位として区分する。このように区分されたデータ単位を伝送することによって、次のような利点が得られる。
●全体のデータが伝送されなくても伝送されたデータ単位として漸進的な復元が可能である。
【００４１】
●伝送途中にエラーが発生してもエラーの発生しないデータは再伝送が不要ですぐ復元が可能なので使用者の待ち時間を縮められる。
●エラーが発生したデータ単位のみを再伝送することによってネットワークの負荷を減らしうる。
データ分割方法は次の通りである。
【００４２】
1．連結成分単位のデータ分割方法
図１６（Ａ）がこの場合を示している。この方法は具現しやすく、連結成分間の大きさに差がなければ効率的である。しかし、連結成分の大きさが不均一で差が大きければデータ分割の大きさが不均一になる。さらに、連結成分そのものが大きければ効率性が劣る。
2．小さな連結成分を合わせて分割する方法
モデル内に小さな連結成分を多く含むと、ビット量が増加して非効率的になる。これを防止するために、小さな連結成分を一つの成分に集めた後、それぞれの成分を独立したデータパーティションにコーディングする方法である。
【００４３】
3．大きな連結成分の分割方法
前記方法等は大きな連結成分がある場合には非効率的になる短所がある。このような点を解決するためには、図１６（Ｃ）と図１６（Ｄ）のように連結成分そのものを分割する。即ち、図１６（Ｃ）は図１６（Ａ）において一つのモデルに属する全ての連結成分の頂点グラフ情報を集めた後これを分割し、三角形グラフ情報を別に全て集めた後、三角形グラフを独立したデータパーティションとしてコーディング処理する方式を示す。図１６（Ｄ）は図１６（Ｂ）の三角形グラフそのものを再び多数個のパーティションに分けてコーディング処理する方式を示す。
【００４４】
図１７及び図１８は本発明に係るデータ分割の概念図である。図１７及び図１８において、VGは頂点グラフ、TGは三角形グラフ、vgは頂点グラフデータ、tgは三角形グラフデータを示す。図１７においてid情報は便宜上略したが、開始コードに後続すべきである。図１７はデータの分割時三角形グラフ、即ち三角形ラン、マーチ三角形及び多角形エッジを含んで構成された角形グラフを例示したものであり、図１８は前記固定データ分割方式を活用したデータ分割過程を例示したものである。
【００４５】
図１８においてnは連結成分(CC)の個数であり、n'は連結成分を大きさに応じて再構成した場合の再構成された成分の個数である。再構成の方法は次のような過程により進行される。
1．連結成分の再構成(ステップ251)
小さな連結成分は合わせてデータパーティションの大きさの範囲に含まれるようにする。図１８の例においては、連結成分CC1と連結成分CC2を合わせて再構成された成分CC'1を作る。データパーティションの大きさに比べて大きな連結成分は内部で小さな成分に分割する。図１８の例においては、３番目の連結成分CC3を多数個の成分CC'2、...、CC'kに分割した。
【００４６】
2．頂点グラフと三角形グラフの生成(ステップ252)
再構成したそれぞれの成分に対して頂点グラフと三角形グラフの対を作る。
3．頂点グラフと三角形グラフの再配列(ステップ253)
ステップ252の過程で生成した頂点グラフを一つの頂点グラフ情報に再配列し、三角形グラフを一つの三角形グラフ情報に再配列する。
【００４７】
4．頂点グラフ情報の分割(ステップ254)
ステップ253の過程で再配列した頂点グラフ情報を所定の大きさの単位に分割する。
5．三角形グラフ情報の分割(ステップ255)
ステップ253の過程で生成した三角形グラフ情報を所定の大きさの意味のある単位に分割する。
【００４８】
＜可変分割方法＞
データを分割するためには次のような事項を考慮しなければならない。
▲本発明の場合のようにエラー回復性のためにはデータを分割し、それぞれのパーティションの前に開始コードを与えるべきである。
▲一般にデータを分割すると、データを分割しない場合に比べてビットストリーム量が増えることになる。
【００４９】
▲一方、開始コードは選択的に挿入できない。即ち、エラー弾力性を支援するために分割するが、エラー回復性を支援しないとしても開始コードを挿入しないことはできない。
▲従って、エラー回復性の支援が不要な場合、不要な開始コードを挿入し続けてコーディングすべきなのでビット量が無駄に増えるという短所がある。
このような理由で固定分割方法を使用すればエラー回復性の支援が不要な場合にも開始コードを挿入すべきである。従って、無駄にビット量が増加される。これを解決するために固定分割方法の代わりに可変分割方法を使用することになる。
【００５０】
図１９（Ａ）乃至図１９（Ｄ）は可変分割方法におけるパーティションの種類を示したものである。図１９においてscは開始コード、ttは三角形ツリー、tdは三角形データ、ptは現在のパーティションの形態であり、idはパーティションの識別子である。図１９においてviは訪問インデックスであって、現在のパーティションを復元する時復元された三角形ストリップ境界の最初の頂点に対したバウンディングループにおけるインデックスを示し、左側と右側境界の開始インデックスの対として与えられる。図１９（Ａ）はデータパーティションにvg、tt、tdを順次に含む場合で、図１９（Ｂ）はvgのみを含む場合で、図１９（Ｃ）はvgの後に一対のtt、td情報を含む場合であり、図１９（Ｄ）はtt、tdのみを含む場合である。即ち、データ分割の種類はデータパーティションが含むビットストリームの内容、即ち頂点グラフ、三角形ツリー、三角形データに応じて図１９（Ａ）乃至図１９（Ｄ）に示されたように４つのデータパーティション型に分類される。
【００５１】
可変分割方法の実現は次のような過程を通じて実現される。
▲それぞれのパーティションの前には開始コードを挿入する。
▲開始コードに続いて分割の形態情報をコーディングする。この情報はパーティション中に含まれる情報の種類に応じて別の値が与えられる。
▲一つのパーティションに頂点グラフ、三角形ツリー、三角形データなどのデータの一部または全体が含められる。
【００５２】
本発明の一実施例では図１９（Ａ）乃至図１９（Ｄ）に示されたように４種類のパーティション型を使用する。従って、本発明の一実施例では２ビットを用いてpt(パーティション形態)を定義し、それぞれのpt値による意味は表１の通りである。
【００５３】
【表１】
0004452242.tif 000002
【００５４】
図２０は可変分割方法を用いた分割の一例を示す。図２０は４つの連結成分(CC)で構成されている。それぞれの連結成分から一対のvg(頂点グラフ)とtd(三角形グラフ)を得る。図２０において前の三つの連結成分(CC)は小さいので、それぞれの連結成分(CC）が一つのパーティションを構成し、表１の３番目のパーティション型を用いてコーディングする。しかし、４番目のCCは一つのパーティションにコーディングするにはメッシュが大きいため、これを４つのパーティションに分割している。最初のパーティションは表１の３番目のパーティション型を用いてコーディングし、２番目、３番目、４番目のパーティションは表１の４番目のパーティション型を用いてコーディングする。
【００５５】
一方、図２０の４番目の連結成分の場合、図２１のようにコーディングすることもできる。
図２０及び図２１における大きな連結成分の分割方法には次のような差が存在する。
▲ 図２１に示されたようにvgのみを別にコーディングすると、後続の最初のtt、td対のためにscとvi情報をコーディングすべきなのでビット量が増加する。
【００５６】
▲ 図２０に示されたようにvgと最初のtt、td対とを共にコーディングすればデータパーティションが大きくなるので、エラーの発生時再伝送すべきデータが多くなる。
従って、vgのみをパーティションに含むか、またはttとtdとを共に分割するかを選択することが重要であるが、ビット量を考慮すればtt、td対をvgと同一なパーティションでコーディングすることが望ましい。
【００５７】
＜多角形メッシュにおけるデータ分割＞
位相幾何学的サーザリでは多角形で構成されたメッシュ情報をコーディングするために、まず多角形情報を三角形メッシュで再構成する。図２２は多角形メッシュの三角形メッシュ化の一例を示した図面である。図２２において実線は元多角形メッシュのエッジであり、点線は多角形を三角形に割るために加えられた仮想エッジである。
【００５８】
多角形を三角形に割るために仮想エッジが加えられるので、これを復号部で復元して元の多角形を復元するための情報が伝送されるべきであり、この情報を多角形エッジ情報と称する。従って、１つの三角形当り１つの多角形エッジ情報が伝送されるが、
●実際エッジならば1の値で、
●そうでなければ0の値で符号化する。
【００５９】
既存の方法では多角形エッジ情報は多角形メッシュに含まれた多角形を三角形メッシュ化した後の三角形の個数だけ発生し、これを全てコーディングして伝送/格納した。しかし、最初の三角形は必ず実際エッジで始まるので該当する多角形エッジ情報は常に１の値を有することになるのでコーディングを行わない。この場合、復号部では最初の三角形に対して多角形エッジ情報が１と仮定して復号化する。
【００６０】
図２４（Ａ）乃至図２４（Ｅ）は多角形メッシュにおける分割方法と関連シンタックス(syntax)を例示した図面である。図２４（Ｄ）及び図２４（Ｅ）において、ttは三角形のラン情報で、tmはマーチ情報で、peは多角形エッジの情報であり、下付けはttに該当する同一順序におけるtmとpeとを意味し、nは三角形の個数である。図２４（Ａ）は本来の多角形メッシュを示し、図２４（Ｂ）は多角形の内部における分割を例示した図面であり、図２４（Ｃ）は多角形と多角形との間における(実際エッジ)分割を示した図面であり、図２４（Ｄ）は多角形メッシュを実際エッジでのみカットする場合のシンタックスであり、図２４（Ｅ）は多角形メッシュを仮想エッジにおけるカットが許される場合のシンタックスである。
【００６１】
データ分割を行うと、図２４（Ｂ）に示されたように、実際に三角形でない仮想の三角形、即ち多角形の内部の位置で分割が発生しうる。このような場合、データパーティション内で多角形エッジ値が常に１で始まるとは仮定できないので、多角形エッジ情報を三角形の個数だけコーディングすべきである。しかし、図２４（Ｃ）のように多角形と多角形との境界の実際エッジでのみデータ分割を起こすと、最初の多角形エッジ値は常に１となるのでコーディングしなくてもよい。
【００６２】
多角形メッシュの場合、各パーティションにおける多角形エッジの処理は次の通りである。
1．仮想エッジにおける分割が許されない場合には、パーティション内の最初の多角形エッジ値はコーディングしない。本発明ではこのように実際エッジでのみ分割することを基本とする。
【００６３】
2．仮想エッジにおける分割が許される場合には、パーティション内の最初の多角形エッジ値をコーディングする。この時にも最初のパーティションの場合には多角形エッジ値が１なのでコーディングを行わない。
＜三角形グラフのデータ分割＞
三角形グラフの分割のため、本発明では以前パーティションの最後から最初に現われる分岐する三角形の左側(右側)ブランチの三角形情報が全て入力される位置でデータ分割を行う。
【００６４】
図２３はメーンブランチにおけるデータ分割の例を示す図面である。このように三角形グラフを分割する理由はY-頂点のインデックスを決定しないと該当するブランチ三角形以降の三角形の復元及びレンダリングができないからである。このようにメーンブランチでのみデータ分割を可能にすれば、常にY-頂点のインデックスを１つのパーティション内で決定しうる。しかし、この方法は最初に決まった訪問(traversing)順序と実際三角形グラフの形態とによっては非効率的な場合もある。即ち、左側(右側)ブランチのコーディングが優先する場合、三角形グラフから分岐するブランチのうち左側ブランチがかなり大きいと、相変らずデータパーティションの大きさが適切な規模を越えることになり、Y-頂点を解決するためにもブランチ三角形以降の情報、即ち一方のブランチの三角形数に対した情報が処理されるまで待つべき負担がある。
【００６５】
＜ブランチ三角形におけるコーディング順序の決定方法＞
既存の位相幾何学的サーザリ方法ではコーディングする順序が全体の三角形グラフに対して固定されている。コーディングの順序を一定に固定する方法において問題となるのは、先にコーディングすべきブランチの大きさが過度に大きくなる場合である。もし、分岐する２つのブランチの大きさが均一でなければ、Y-頂点を解決するためには小さなブランチを先にコーディングして伝達するのがさらに効率的である。これにより、Y-頂点を早く決定し、レンダリングもさらに早く行える。従って、コーディングする順序を一定に固定したままデータを分割すれば、Y-頂点を効率よく決定できず、多角形の漸進的な復元及びレンダリング効果が期待できない。
【００６６】
実際的に、図５（Ａ）乃至図５（Ｄ）のような位相幾何学的サーザリによってデータを得ると、一方のブランチの三角形の数が対応する他方のブランチの三角形の総数より少ない場合がある。従って、本発明では位相幾何学的サーザリで定義されないコーディング順序の情報を与える。即ち、オリエンテーション情報が1ならば最初に決められたコーディング順のように左側(右側)を先に訪問し、0ならば右側(左側)を先にコーディングする。このような情報を与えることによって小さなブランチを先に復号することになり、データパーティションの結果、漸進的なレンダリングの効果を期待しうる。オリエンテーション情報を加えると最初に決められた一定の大きさだけデータ分割することも可能なので、エラーが発生した場合再伝送されるべきデータの大きさも縮められる。
【００６７】
図２５（Ａ）乃至図２５（Ｄ）はオリエンテーション情報を活用したコーディングの概念図である。図２５（Ａ）において、灰色三角形はブランチ三角形であり、バウンディングループの右側及び左側の矢印はブランチ三角形から先にコーディングするブランチに対してバウンディングループのインデックスをマッピングする方向である。図２５（Ｂ）乃至図２５（Ｄ）においてtrは三角形ラン、tlはtleaf情報、toはオリエンテーション情報、tmはマーチ情報、idはパーティションの識別子である。図２５（Ａ）はオリエンテーションのためのコーディング順序の変更方法を、図２５（Ｂ）は三角形ランにオリエンテーション情報を配置する場合を、図２５（Ｃ）は三角形データにオリエンテーション情報を配置する場合を、図２５（Ｄ）各パーティション毎にオリエンテーション情報を配置する方法を示した図面である。
【００６８】
図２６（Ａ）及び図２６（Ｂ）は既存の方法によるコーディング順序と本発明によってオリエンテーションを与えた時のコーディング順序を例として比較した図面である。図２６（Ａ）及び図２６（Ｂ）においてそれぞれの数字はコーディングする順序を意味する。図２６（Ａ）は既存の位相幾何学的サーザリコーディング順序を、図２６（Ｂ）は分岐する三角形における両側ブランチの大きさに応じるコーディング順序の決定方法を示した図面である。図２６（Ｂ）において、黒い三角形は分岐する三角形であってオリエンテーション情報が与えられる。ブランチ三角形において一側の三角形の個数が分かればY-頂点の問題は解決される。従って、１つのデータパーティション内のオリエンテーションが同一であれば、各パーティションのヘッダにオリエンテーション情報を一つのみ与えることによってY-頂点が決定されうる。
【００６９】
＜エラー発生時パーティション独立的なデータの復号及びレンダリング(Error resilience)＞
エラーが発生したデータパーティションをあきらめると、後続データパーティションに対する復号または復元が不可能に成り得る。従って、エラーが発生したデータパーティションは再伝送されなければならない。それともエラーが発生した以降の全てのデータパーティションはあきらめなければならない。このような非効率性を防止するためには、それぞれのデータパーティションを独立的に復元及びレンダリング可能にすべきである。このためには各データパーティションが始まるバウンディングループ上における開始位置値を与え、同時にY-頂点のインデックス値がデータパーティションにおいて独立的に特定できるようにすべきである。
【００７０】
復号部ではまず頂点グラフを復号化することになるが、ここでは次に復元する三角形の各頂点の値をバウンディングループというテーブルに格納する。従って、三角形を正確に復元してレンダリングするためには、三角形の各頂点がバウンディングループテーブルの何処にマッピングされるかの情報が分からなければならない。もし、データパーティションの最初の三角形の頂点のバウンディングループにおけるインデックスが決定できれば、後続の三角形の頂点はバウンディングループテーブルのインデックスを1だけずつ増減することによって決定しうる。従って、データパーティションの最初の三角形の頂点のバウンディングループにおけるインデックスが与えられると、他のデータパーティションと独立して多角形の復元が可能である。
【００７１】
図１５はデータパーティションを復元した結果の三角形の頂点とバウンディングループのインデックスとの関係を示す図面である。バウンディングループには実際の頂点の幾何情報に対するインデックス値がマッピングされているので、バウンディングループのインデックスが分かると三角形の頂点の座標値を決定しうる。ところが、データパーティションにも図１５のようにブランチング三角形を含むことができる。
【００７２】
Y-頂点を解決するための方法として本発明では次の２種の方法を提案する。
● 第１はブランチ三角形において一方のブランチを全て含んでメーンブランチでのみ分割を行わせる方法である。図２３ではメーンブランチからカットする場合の例を示している。
● 第２はY-頂点のバウンディングループにおけるインデックス値をヘッダに直接示す方法である。図１５の場合m-10の値をヘッダに与えればよい。
【００７３】
図２７（Ａ）及び図２７（Ｂ）はY-頂点のインデックス値をヘッダに与える場合データパーティションにおけるシンタックスを例示した図面であって、Lは三角形ストリップの左側境界上の最初の頂点のバウンディングループにおけるインデックスで、Rは右側境界上の最初の頂点のバウンディングループにおけるインデックスで、nはパーティションにおいて示されるY-頂点の個数であり、YiはY-頂点のバウンディングループにおけるインデックスである。図２７（Ａ）はメーンブランチから分割する場合のシンタックスの例を示し、図２７（Ｂ）は任意の位置で分割し、Y-頂点情報をヘッダに含むシンタックスの例を示す図面である。
【００７４】
＜インデクシング値の決定＞
前述したように、パーティション内に含まれるデータを他のパーティションとは独立して復号化して復元するためには、バウンディングループにおいて三角形ストリップの境界の開始点に対応する左側及び右側インデックスをパーティションに示す。ビットストリームがＣＤのような貯蔵媒体のように順次に入る場合、ビット値の変形のみが存在すると仮定しうる。かかる場合にバウンディングループのインデックスは連結成分(CC)別に0から始まってバウンディングループの大きさの間に存在するので、パーティションのヘッダ部分に与えるインデックス値もその間の値にコーディングすればよい。それは、バウンディングループと三角形グラフ情報が正確に一対一の対応関係であり、常に頂点グラフ、三角形グラフの順にコーディングされるために可能である。しかし、伝送媒体の特性に応じては伝送の遅延による送信順序と受信順序が異なる場合が発生したり、ビットストリームの損失が発生する場合もある。このような場合、三角形グラフと対応される頂点グラフ情報が常に適時に正しく入るとは保障できないので、前の場合とは異なってインデックス値を与えるべきである。
【００７５】
図２８は多数個の連結成分を有する場合にバウンディングループと三角形グラフデータの関係を例示する。第１列は各連結成分別にバウンディングループが独立してインデクシングする場合の例であり、第２列は以前バウンディングループの最後の値を増加し続けながら現在のバウンディングループのインデクシングを行う場合の例である。
図２９（Ａ）及び図２９（Ｂ）はパーティションの開始インデックス情報をコーディングする方法を示す図面である。最初の連結成分のバウンディングループの大きさがn1で、２番目の連結成分のバウンディングループの大きさがn2の場合、２番目の連結成分のパーティションは図２９（Ａ）及び図２９（Ｂ）のように２種の方式でインデックス情報がヘッダに与えられる。図２９（Ａ）は連結成分別バウンディングループインデクシングを行う場合のパーティションのヘッダ情報を示した図面であって、図２９（Ｂ）はモデル全体にわたってバウンディングループインデクシングを行う場合のパーティションのヘッダ情報を示した図面である。
【００７６】
＜三角形グラフオリエンテーションの生成及びビットストリーム上における配置＞
既存の位相幾何学的サーザリ方法では三角形グラフをコーディングする時にコーディングする方向が固定されていた。即ち、一度左側優先で決定されれば三角形グラフ全体にわたって左側方向優先でコーディングすることになる。既存の位相幾何学的サーザリではオリエンテーション情報を与えなかったため既存の三角形グラフのビットストリーム上の位置が重要である。三角形グラフは三角形ランと三角形データとから構成されている。
【００７７】
従って、三角形ランにオリエンテーション情報を配置する方法及び三角形データにオリエンテーション情報を配置する方法がある。
後者の方法を使用すれば、前者の場合よりレンダリングのための待ち時間とメモリの使用を低減しうる。
三角形のマーチ情報以前に三角形ラン情報が先に復号化されるので、先にコーディングされたブランチに含まれる三角形の個数がわかる。オリエンテーション情報と三角形ランとを復号化した結果、先にコーディングするように決定されたブランチ内における三角形の個数がt個ならば次のようにY-頂点を決定しうる。
【００７８】
● 右側ブランチを先にコーディングした場合(オリエンテーション値が1の場合)
ブランチ三角形の右側境界上の頂点に対したバウンディングループにおけるインデックスがqならばY-頂点のインデックスは次の通りである。
Y-頂点の位置＝q−t−2
● 左側ブランチを先にコーディングした場合(オリエンテーション値が0の場合)
ブランチ三角形の左側境界上の頂点に対したバウンディングループにおけるインデックスがpならばY-頂点のインデックスは次の通りである。
【００７９】
Y-頂点の位置＝p＋t＋2
＜データパーティション時の幾何情報のコーディング方法＞
今まではデータパーティションにおいて主にモデルの連結情報を中心として本発明を記述した。しかし、幾何情報のビットストリーム上における配置及びコーディングも重要である。本発明ではエラー回復性と漸進的なレンダリングのために次のように処理する。
【００８０】
現在データパーティションにおいて必要とする情報は以前パーティションにも現れた情報とそうでない情報の２種が存在する。以前パーティションと現在のパーティションにおいて共に用いられる幾何情報は両パーティションの境界で現れることになる。
図３０（Ａ）乃至図３０（Ｂ）はパーティション情報のコーディングにおける幾何情報のコーディングの例を示した図面である。図３０（Ａ）乃至図３０（Ｄ）において陰をつけた円は以前パーティションでのみコーディングされる幾何情報であり、黒色円は以前パーティションと現在パーティションにおいて全てコーディングされる幾何情報であり、白色円は現在パーティションにおいてコーディングされる幾何情報を意味し、太実線はパーティションの境界を示す。
【００８１】
図３０（Ａ）はパーティションの境界で現れる幾何情報を重畳させない場合を、図３０（Ｂ）はパーティションの境界で重畳されて現れる情報を以前パーティションと現在パーティションの2箇所で全てコーディングを行う場合を、図３０（Ｃ）は境界線の幾何情報のうち現在パーティション内において多数個のエッジを形成する点にたいしてのみ以前パーティションと現在パーティションで共にコーディングを行う場合を、図３０（Ｄ）は重畳される幾何情報をサンプリングして両パーティションに分散コーディングする場合を、図３０（Ｅ）は図３０（Ａ）と図３０（Ｂ）とを選択的に使用する方法のシンタックスを示した図面である。
【００８２】
即ち、データ分割時の幾何情報コーディング方法は次のように分けられる。
第１、図３０（Ａ）に示されたように、現在パーティションには以前パーティションにおいて現れなかったもののみコーディングする方法である。
第２、図３０（Ｂ）に示されたように、以前の他のパーティションでコーディングされた情報を現在のパーティションにおいてもコーディングすることによって、以前パーティションに独立して現在のパーティションにおいて幾何情報を復元可能にする方法である。
【００８３】
第３、図３０（Ｃ）に示されたように以前の他のパーティションで既にコーディング処理されたデータのうち現在のパーティションにおいて新しく現れる多数個の幾何情報と連結して現れる幾何情報に対してのみ現在のパーティションにおいてコーディング処理する方法である。
第４、図３０（Ｄ）に示されたように、以前パーティションと現在パーティションに重畳されて現れる幾何情報は一般に三角形ストリップの何れの境界面から連続されて現れるので、重畳されるデータの半分は以前パーティションで、そして残り半分は現在パーティションでコーディングする方法である。
【００８４】
しかし、かかる方法はそれぞれ長短所を有している。
前記第１の方法は具現しやすいものの幾何情報のコーディングのための予測に使用しうる周辺データの数が前記第２の方法より少ないために幾何情報の正確度に劣る恐れが大きい。
前記第２の方法は第１の方法に比べて確実に幾何情報の正確度は改善されるが、境界に現れる幾何情報を両パーティションで重畳してコーディングするために圧縮率に劣る短所がある。
【００８５】
前記第３の方法はある程度の圧縮率を保ちながら幾何情報の正確度は保てるが、連結情報の特性を把握すべき短所がある。
前記第４の方法は第２の方法に比べて別に重畳コーディングされる短所がないため圧縮率は向上されるが、第１の方法に比べてレンダリングしにくい短所がある。即ち、前記第１、第２及び第３の方法はその自体のみで復元及びレンダリングが可能であるが、第４の方法はレンダリングのためには周辺の幾何情報を用いて抜けた値を補間して使用するか、または次のパーティションが入るまで待つべき短所がある。
【００８６】
かかる点を考慮して本発明の一実施例では前記第１の方法及び前記第２の方法を適応的に使用する。かかる適応的な方法では、データパーティションの幾何情報は基本的に前記第１の方法を使用してコーディングするが、パーティションに応じては前記第２の方法を使用してもよい。
即ち、
● ヘッダに予測値が0に設定されていると、前記第１の方法を使用してパーティションをコーディングし、
● ヘッダに予測値が1に設定されていると、前記第２の方法を使用してコーディングする。
【００８７】
＜幾何情報及び画像情報の位置＞
今まで主にメッシュ情報の連結情報をパーティションする方法を示した。幾何情報、色相情報、法線情報とテクスチャー座標などの画像情報のコーディング方式もエラー回復性と漸進的レンダリングのために重要である。これをコーディングする方式として次のような方式を考慮しうる。図３１（Ａ）乃至図３１（Ｃ）はマーチビット、幾何情報及び画像情報のデータ分割における配置のためのシンタックスを例示した図面である。図３１（Ａ）ではマーチビット毎に画像情報をコーディングする。この方法によれば、マーチビットと多角形エッジ情報とを復号化しながら直ちに三角形を復元し、レンダリングしうる長所がある。従って、本発明の一実施例ではこの方法を使用する。しかし、選択的に図３１（Ｂ）や図３１（Ｃ）のように、マーチビット列、幾何情報及び画像情報を各々別に結合する方式も使用しうる。
【００８８】
図３２は図３０（Ａ）及び図３０（Ｂ）の方式を混用して幾何情報をコーディングし、図３１（Ａ）と同様な方式で幾何情報を配置する場合の幾何情報コーディングのための流れ図である。図３２において、predは両パーティション間に現れる幾何情報に対するコーディング方法を示すが、pred=0ならば１つのパーティションでのみコーディングし、pred=1ならば両パーティション共コーディングすることを示す。そして、visitedは同一パーティションにおいてコーディングするか否かを示すが、visited=0ならばまだコーディングされていないとの意味であり、visited=1ならばコーディング済みの意味である。
【００８９】
図３２によれば、先に予測方法を決定する(301段階)。即ち、図３０（Ａ）の方式でコーディングするか、或いは図３０（Ｂ）の方式でコーディングするかを決定する。
ルート三角形パーティションにおいて最初に現れる三角形をコーディングする(302段階)。
ルート幾何情報をコーディングする(303段階)。
【００９０】
次の三角形の存在有無を検査し(304段階)、次の三角形が存在すれば次の三角形に移動し(305段階)、そうでなければ次のパーティションに移動する(312段階)。
三角形の各頂点に対して以前パーティションでコーディングされたかを判断する(306、307段階)。以前パーティションでコーディングされなかった場合現在のパーティションでコーディングしたかを判断し(309段階)、コーディングされていなければコーディングを行う(310段階)。頂点が以前パーティションでコーディングされたが、予測値が１なら(308段階)、現在のパーティションで既にコーディングされたかを判断し(309段階)、コーディングされていない場合コーディングする(310段階)。
【００９１】
305段階乃至310段階の過程を現在パーティションの最後の三角形まで繰返す。
＜データパーティションのシンタックス＞
前述した本発明を用いたデータパーティションのシンタックスの構成は図３３のようである。図３３において、scは開始コードで、idはデータパーティションを確認するための識別子であり、#triはデータパーティションに含まれた三角形の個数である。エラーが発生する場合、該当データパーティションを再伝送される必要がある。この際、伝送側に再伝送を要求するために使われるものがidである。即ち、受信側は所望のパーティションを再伝送されるためには伝送側に該当idを有するデータパーティションを再伝送することを要求することだけで十分である。三角形の個数、即ち図３３における#triをコーディングする理由はデータパーティションの大きさが固定されていないからである。即ち、ビットストリームの大きさを用いてデータを分割することではなく、前述したように三角形グラフの特性を考慮してデータを分割するので、パーティションの大きさが一定しないからである。三角形の個数を知っていると復号過程で発生する三角形の個数を通じてパーティションの復号化を終えることができる。即ち、三角形の個数は三角形グラフのマーチ、リーフ、ブランチングビットを合せた個数と同一で、多角形エッジの個数(最初多角形エッジがコーディングされない場合にはこれを共に計算すべきである)とも同一であるからである。
【００９２】
＜分割の大きさの把握を考慮した分割方法＞
データを分割すれば一つのデータパーティションの端がわかる情報がなければならない。データの端がわかる方法にはデータの分析結果から類推できる方法とそうでなく大きさに関する情報を与える方法がある。大きさが分かるように分割する方法には次のような方法がある。
【００９３】
1．頂点グラフ情報のみをコーディングする。頂点グラフは解釈を通じて何時終わるかわかるので、これを通じて一つのデータパーティションの端がわかる。
2．三角形グラフを一つのデータパーティションとする。三角形グラフは一つの２進ツリーを構成するので類推過程を通じて容易にその端がわかる。
3．連結成分を各々一つのデータパーティションとする方法によっても前記1と前記2の過程を通じて容易に分かる。即ち、頂点グラフをコーディングし、次いで三角形グラフ情報をコーディングするので、頂点グラフ情報が復元されると後続情報が三角形グラフ情報ということを把握して前記２のように三角形グラフ情報を類推すればパーティションの端がわかる。
【００９４】
4．固定された大きさに分割する方法にはビットストリームの大きさを定める方法とデータパーティション内に含まれる三角形の個数を固定された大きさとする方法がある。ビットストリームの大きさを一定に定める場合には定められた分のビットを処理すればデータの端と認識する。一方、三角形の個数を固定する場合には、復元される三角形の個数が定められただけ生成されるとパーティションの端と認識する。
【００９５】
5．Y-頂点を解決するために分割をメーンブランチで行う場合にパーティションの大きさは一定していなくなる。これを解決するために、まず固定されたパーティションの大きさを定める。前記４と同様に処理し、もし分割された位置がメーンブランチではない場合には、次のメーンブランチの最初の三角形が出ればその以前またはその以降の地点で直ちに分割する。
【００９６】
以下、漸進的な三次元メッシュ情報及び損失に関する弾力性を具現するためのコーディングシンタックスを説明する。
３次元多角形メッシュに対する圧縮されたビットストリームはグロ−バル情報を有するヘッダデータブロックとこれに後続され各々メッシュの一つの連結成分に関連された一連の連結成分データブロックとから構成されている。
【００９７】
【表２】
0004452242.tif 000003
【００９８】
さらに、メッシュが階層的モードで表現されるなら、最後の連結成分データブロックに繋がって１つまたはそれ以上の精密(refinement)ステップデータブロックが続く。これらは各々フォレスト(forest)分割動作を示す。
【００９９】
【表３】
0004452242.tif 000004
【０１００】
各連結成分のデータブロックは頂点グラフ、三角形ツリーレコード及び三角形データレコードの三種のレコードで構成される。
【０１０１】
【表４】
0004452242.tif 000005
【０１０２】
三角形ツリーレコードは簡単な多角形を形成する対応する連結成分の全ての三角形をリンクする三角形スパニンググラフの構造を有する。メッシュはビットストリームから三角形に分けられた形に表現されるが、それはまた本来のフェースを再生するのに必要な情報を有する。頂点グラフレコードは本来の連結成分の連結情報を再生するための簡単な多角形の境界エッジの対を合わせるのに必要な情報を有する。その連結情報は(連結成分当り)グロ−バル情報と(三角形当り)ローカル情報とに分割される。グロ−バル情報は頂点グラフと三角形ツリーレコードに格納される。ローカル情報は三角形データレコードに格納される。
【０１０３】
三角形データは三角形単位に基づいて整列されるが、三角形の順序は三角形ツリーの訪問(traverse)により決定される。
【０１０４】
【表５】
0004452242.tif 000006
【０１０５】
与えられた三角形に対するデータは次のように構成される。
【０１０６】
【表６】
0004452242.tif 000007
【０１０７】
オリエンテーションビットは２本のブランチのうち何れのブランチが先に復号化されるかを示す。マーチビットとポリゴンビットは三角形単位の連結情報を構成する。他のフィールドは頂点座標(coord)及び選択的にノーマル、色相及びテクスチャー座標(texCoord)情報を再生するための情報を有する。
もし、メッシュが階層的モードに符号化されると、各フォレスト分割ブロックは選択的事前平滑化データブロック(pre-smoothing data block)、事後平滑化データブロック(post-smoothing data block)及び１つまたはその以上の連結成分更新データブロックで構成される。
【０１０８】
【表７】
0004452242.tif 000008
【０１０９】
事前平滑化データブロックは頂点座標に対するグロ−バル予測器であって、平坦化ステップを適用するために必要な媒介変数を有する。
事後平滑化データブロックは量子化加工物を除去するために頂点座標に対する平坦化に適用するために必要な媒介変数を有する。
各連結成分更新データブロックは事前更新データブロックと事後更新データブロックとから構成される。
【０１１０】
【表８】
0004452242.tif 000009
【０１１１】
事前更新データブロックは現在段階の何れのエッジが現在段階のメッシュに対するグラフ内のフォレストを構成するかに対する情報を有するフォレストデータブロック、per-三角形連結情報を有する三角形データブロック及びper-face及びper-cornerに関する特徴に対する特徴データ更新で構成される。
連結が事前更新データブロックにある情報から更新された後、事前平坦化データブロック内に貯蔵された媒介変数により前述された事前平坦化動作が頂点座標に対するグロ−バル予測器として適用される。
【０１１２】
事後更新データブロックは事前平坦化ステップにより予測された頂点座標に関してツリーループに属する頂点のための頂点座標更新を有する。選択的に、事後更新データブロックは頂点座標更新とフォレストとのいかなるツリーも伴わない現在の連結成分のフェースに対する特徴更新もさらに有する。
以下、可変分割方法を用いたコーディングのシンタックスを示す。ここで、nTrianglesPerMOCはパーティション(MOC)におけるターゲット三角形の個数である。
【０１１３】
【表９】
0004452242.tif 000010
【０１１４】
【表１０】
0004452242.tif 000011
【０１１５】
【表１１】
0004452242.tif 000012
【０１１６】
【表１２】
0004452242.tif 000013
【０１１７】
【表１３】
0004452242.tif 000014
【０１１８】
【表１４】
0004452242.tif 000015
【０１１９】
【表１５】
0004452242.tif 000016
【０１２０】
【表１６】
0004452242.tif 000017
【０１２１】
【表１７】
0004452242.tif 000018
【０１２２】
【表１８】
0004452242.tif 000019
【０１２３】
【表１９】
0004452242.tif 000020
【０１２４】
【表２０】
0004452242.tif 000021
【０１２５】
【表２１】
0004452242.tif 000022
【０１２６】
【表２２】
0004452242.tif 000023
【０１２７】
【表２３】
0004452242.tif 000024
【０１２８】
【表２４】
0004452242.tif 000025
【０１２９】
【表２５】
0004452242.tif 000026
【０１３０】
【表２６】
0004452242.tif 000027
【０１３１】
【表２７】
0004452242.tif 000028
【０１３２】
【表２８】
0004452242.tif 000029
【０１３３】
【表２９】
0004452242.tif 000030
【０１３４】
【表３０】
0004452242.tif 000031
【０１３５】
【表３１】
0004452242.tif 000032
【０１３６】
【表３２】
0004452242.tif 000033
【０１３７】
【表３３】
0004452242.tif 000034
【０１３８】
【表３４】
0004452242.tif 000035
【０１３９】
【表３５】
0004452242.tif 000036
【０１４０】
【表３６】
0004452242.tif 000037
【０１４１】
【表３７】
0004452242.tif 000038
【０１４２】
【表３８】
0004452242.tif 000039
【０１４３】
【表３９】
0004452242.tif 000040
【０１４４】
＜3次元メッシュ客体＞
▲ 3D＿Mesh＿Object
MO＿start＿code：これは同期目的として用いられる長さ32(sc+7）の唯一のコードである。
▲ 3D＿Mesh＿Object＿Header
ccw：このブール値(boolean value）は復号化されるフェースの頂点順序が逆時計回り方向の順序に従うか否かを示す。
【０１４５】
convex：このブール値はモデルが膨らんでいるか否かを示す。
solid：このブール値はモデルが堅いか否かを示す。
creaseAngle：この6ビット符号無し整数はクリーズ角(crease angle)なのか否かを示す。
▲ 3D＿Mesh＿Object＿Layer
MOL＿start＿code：これは同期目的として用いられる長さ32(sc+7）の唯一のコードである。
【０１４６】
mol＿id：この8ビット符号無し整数は段階別メッシュ(mesh object layer：MOL)に対する唯一の識別子を示す。値0はベース段階(base layer)を示し、0より大きな値は精密段階(refinement layer)を示す。3D＿Mesh＿Object＿Headerの後の最初の3D＿Mesh＿Object＿Layerはmol＿id=0で、同じ3D＿Mesh＿Objectを有する後続3D＿Mesh＿Object＿Layerはmol＿id>0でなければならない。
【０１４７】
N＿Verticesは3次元メッシュの現在の解像度における頂点の個数である。計算を減らすために使われる。
N＿Trianglesは3次元メッシュの現在の解像度における三角形の個数である。計算を減らすために使われる。
N＿Edgesは3次元メッシュの現在の解像度におけるエッジの個数である。計算を減らすために使われる。
【０１４８】
▲ 3D＿Mesh＿Object＿Base＿Layer
MOBL＿start＿code：これは同期目的として用いられる長さ32(sc+7）の唯一のコードである。
mobl＿id：この8ビット符号無し整数はメッシュ客体成分(mesh object component)に対する唯一の識別子を示す。
【０１４９】
last＿component：このブール値は復号化する連結成分の有無を示す。もし、last＿componentが真(true)ならば、最後の成分は復号化された。そうでなければ、復号化する成分がさらに存在する。このフィールドは算術的に符号化される。
▲ coord＿header
coord＿binding：この2ビット符号無しの整数は3次元メッシュに対する頂点座標の結合を示す。唯一に許容される値は‘01’である。
【０１５０】
coord＿bbox：このブール値は幾何情報(geometry)に対してバウンディングボックス(bounding box)が提供されるか否かを示す。バウンディングボックスが提供されないと、デフォルトが使われる。
coord＿xmin、coord＿ymin、coord＿zmin：この不動小数点値は幾何情報の置かれたバウンディングボックスの左下側コーナーを示す。
【０１５１】
coord＿size：この不動小数点値はバウンディングボックスの大きさを示す。
coord＿quant：この5ビット符号無し整数は幾何情報に対する量子化ステップ(quantization step)を示す。
coord＿pred＿type：この2ビット符号無し整数はメッシュの頂点座標を再生するために用いられる予測の形態を示す。
【０１５２】
【表４０】
0004452242.tif 000041
【０１５３】
coord＿nlambda：この2ビット符号なし整数は幾何情報を予測するために用いられる先祖(ancestor)の個数を示す。coord＿nlambdaに対して許容可能な値は1と3である。表3はnormal＿pred＿typeの機能として許容可能な値を示す。
【０１５４】
【表４１】
0004452242.tif 000042
【０１５５】
coord＿lambda：この符号なし整数は予測のために先祖に与えられる加重値を示す。このフィールドで用いられるビットの数はcoord＿quant+3のようである。
▲ normal＿header
normal＿binding：この2ビット符号なし整数は3次元メッシュに対するノーマルの結合を示す。許容可能な値は表4に示される。
【０１５６】
【表４２】
0004452242.tif 000043
【０１５７】
normal＿bbox：このブール値は常に偽(‘0’)でなければならない。
normal＿quant：この5ビットの符号なし整数はノーマルに対して用いられる量子化ステップを示す。
normal＿pred＿type：この2ビット符号なし整数はどのようにノーマル値が予測されるかを示す。
【０１５８】
【表４３】
0004452242.tif 000044
【０１５９】
【表４４】
0004452242.tif 000045
【０１６０】
normal＿nlambda：この2ビット符号なし整数はノーマルを予測するために用いられる先祖の個数を示す。normal＿nlambdaに対して許容可能な値は1と3である。表7はnormal＿pred＿typeの機能として許容可能な値を示す。
【０１６１】
【表４５】
0004452242.tif 000046
【０１６２】
normal＿lambda：この符号なし整数は予測のために先祖に与えられる加重値を示す。このフィールドで用いられるビットの数はnormal＿quant+3のようである。
▲ color＿header
color＿binding：この2ビット符号なし整数は3次元メッシュに対する色相(color)の結合を示す。許容可能な値は表8に示される。
【０１６３】
【表４６】
0004452242.tif 000047
【０１６４】
color＿bbox：このブール値は色相に対してバウンディングボックスが与えられるか否かを示す。
color＿xmin、color＿ymin、color＿zmin：この不動小数点値はRGB空間内のバウンディングボックスの左下側コーナーの位置を示す。
color＿size：この不動小数点値は色相バウンディングボックスの大きさを示す。
【０１６５】
color＿quant：この5ビット符号なし整数は色相に対して用いられる量子化ステップを示す。
color＿pred＿type：この2ビット符号なし整数はどのように色相が予測されるかを示す。
【０１６６】
【表４７】
0004452242.tif 000048
【０１６７】
【表４８】
0004452242.tif 000049
【０１６８】
color＿nlambda：この2ビット符号なし整数は色相を予測するために用いられる先祖の個数を示す。color＿nlambdaに対して許容可能な値は1と3である。表11はcolor＿pred＿typeの機能として許容可能な値を示す。
【０１６９】
【表４９】
0004452242.tif 000050
【０１７０】
color＿lambda：この符号なし整数は予測のために先祖に与えられる加重値を示す。このフィールドで用いられるビットの数はcolor＿quant+3のようである。
▲texCoord＿header
texCoord＿binding：この2ビット符号なし整数は3次元メッシュに対するテクスチャーの結合を示す。許容可能な値は表12に示される。
【０１７１】
【表５０】
0004452242.tif 000051
【０１７２】
texCoord＿bbox：このブール値はテクスチャーに対してバウンディングボックスが与えられるか否かを示す。
texCoord＿xmin、texCoord＿ymin、texCoord＿zmin：この不動小数点値は２次元空間内のバウンディングボックスの左下側コーナーの位置を示す。
texCoord＿size：この不動小数点値はテクスチャーバウンディングボックスの大きさを示す。
【０１７３】
texCoord＿quant：この5ビット符号なし整数はテクスチャーに対して用いられる量子化ステップを示す。
texCoord＿pred＿type：この2ビット符号なし整数はtexCoord＿bindingが‘01’ならば常に‘10’で、そうでない場合には‘01’である。
texCoord＿nlambda：この2ビット符号なし整数はテクスチャーを予測するために用いられる先祖の個数を示す。texCoord＿nlambdaに対して許容可能な値は1と3である。表13はtexCoord＿pred＿typeの機能として許容可能な値を示す。
【０１７４】
【表５１】
0004452242.tif 000052
【０１７５】
texCoord＿lambda：この符号なし整数は予測のための先祖に与えられる加重値を示す。このフィールドで用いられるビットの数はtexCoord＿quant+3のようである。
▲Cgd＿header
N＿Proj＿surface＿Spheresは射出された表面球(Projected Surface Spheres）の個数である。典型的に、この個数は1と同一である。
【０１７６】
x＿coord＿Center＿Pointは射出された表面球の中心点(典型的に、客体の重心点）のx座標である。
y＿coord＿Center＿Pointは射出された表面球の中心点(典型的に、客体の重心点）のy座標である。
z＿coord＿Center＿Pointは射出された表面球の中心点(典型的に、客体の重心点）のz座標である。
【０１７７】
Normalized＿Screen＿Distance＿Factorは射出された表面球の半径と比べて仮想スクリーンがどこに位置するかを示す。射出された表面球の中心点と仮想スクリーンとの距離はRadius/(Normalized＿Screen＿Distance＿Factor+1)のようである。Radiusは各射出された表面球に対して記述されるが、Normalized＿Screen＿Distance＿Factorは一回のみ記述される。
【０１７８】
Radiusは射出された表面球の半径である。
Min＿Proj＿Surfaceは対応する射出された表面球に関する最小の射出された表面値である。この値は度々(しかし、必ずしもその必要はない)Proj＿Surface値のうち１つと同一である。
N＿Proj＿Pointsは射出された表面が伝送される射出された表面球上の点の個数である。他の全ての点に対して、射出された表面は線形補間により決定される。N＿Proj＿Pointsは典型的に最初の射出された表面球に対しては小さく(例えば、20)、さらに射出された表面球に対しては非常に小さい(例えば、3)。
【０１７９】
Sphere＿Point＿Coordは8面体内の点位置に対するインデックスである。
Proj＿SurfaceはSphere＿Point＿Coordにより記述された点内の射出された表面である。
▲connected＿component
3D＿VG＿MOC＿start＿code：これは頂点グラフMOCの同期目的として特別に使用される長さ32(sc+7）の唯一のコードである。
【０１８０】
vg＿moc＿id：この符号なし整数は頂点グラフMOCの識別子を示す。
3D＿SP＿MOC＿start＿code：これは簡単な多角形MOCの同期目的として特別に使用される長さ32(sc+7）の唯一のコードである。
sp＿moc＿id：この符号なし整数は簡単な多角形MOCの識別子を示す。
ntrianglesPerMOC：この符号なし整数はパーティションに属する三角形の長さを示す。
【０１８１】
left＿bloop＿idx：この符号なし整数はパーティションにおいて再生される三角形ストリップに対するバウンディングループテーブル内における左側開始インデックスを示す。
right＿bloop＿idx：この符号なし整数はパーティションにおいて再生される三角形ストリップに対するバウンディングループテーブル内における右側開始インデックスを示す。
【０１８２】
log＿bloop＿lenはバウンディングループテーブルの大きさに対するログスケールされた値である。
prediction：このブールは両パーティションに共通された座標、色相、ノーマル及び色相座標情報をどのように符号化/復号化するかを指定するが、prediction値が1ならば全ての共通情報は両パーティション内で符号化され、そうでなければただ一つのパーティション内でのみ符号化される。
【０１８３】
▲ vertex＿graph
vg＿simple：このブール値は現在の頂点グラフが簡単なのか否かを指定する。簡単な頂点グラフはいかなるループも含まない。このフィールドは算術的に符号化される。
vg＿last：このブールフラグは現在のランが現在のブランチング頂点から始まる最後のランなのか否かを示す。このフィールドは各ブランチング頂点の最初のラン、即ち、skip＿last変数が真(true)の時には符号化されない。現在の頂点ランに対しvg＿lastの値が符号化されない場合には偽(false)であると見なされる。このフィールドは算術符号化される。
【０１８４】
vg＿forward＿run：このブールフラグは現在のランが新たなランなのか否かを示す。もし、それが新たなランでなければ、それはグラフ内のループを示す予め訪問された(traversed)ランでなければならない。このフィールドは算術符号化される。
vg＿loop＿index：この符号なし整数は現在のループが連結されたランに対するインデックスを示す。その単一(unary）の表現は算術符号化される。もし、変数openloopsがvg＿loop＿indexと同じならば、その単一の表現で後続される‘1’は削除される。
【０１８５】
【表５２】
0004452242.tif 000053
【０１８６】
vg＿run＿length：この符号なし整数は現在の頂点ランの長さを示す。
その単一の表現は算術符号化される。
【０１８７】
【表５３】
0004452242.tif 000054
【０１８８】
vg＿leaf：このブールフラグは現在のランの最後の頂点がリーフ(leaf)頂点なのか否かを示す。もし、それがリーフ頂点でなければ、それはブランチング頂点である。このフィールドは算術符号化される。
vg＿loop：このブールフラグは現在のランのリーフがループを示し、そのグラフのブランチング頂点に連結したか否かを示す。このフィールドは算術符号化される。
【０１８９】
▲ triangle＿tree
tt＿run＿length：この符号なし整数は現在の三角形ランの長さを示す。
その単一の表現は算術符号化される。
【０１９０】
【表５４】
0004452242.tif 000055
【０１９１】
tt＿leaf：このブールフラグは現在のランの最後の三角形がリーフ三角形なのか否かを示す。もし、それが三角形でなければ、それはブランチング三角形である。このフィールドは算術符号化される。
triangulated：このブール値は現在の成分が三角形のみを含むか否かを示す。このフィールドは算術符号化される。
【０１９２】
marching＿triangle：このブール値は三角形ツリーにおける三角形の位置に応じて決定される。三角形がリーフまたはブランチングならmarching＿triangle=0で、そうでなければmarching＿triangle=1である。
marching＿pattern：このブールフラグは三角形ラン内部のエッジのマーチパターンを示す。0は左からのマーチを示し、1は右からのマーチを示す。このフィールドは算術符号化される。
【０１９３】
polygon＿edge：このブールフラグは現在の三角形のベースが3次元メッシュ客体の再生時保たれるべきエッジなのか否かを示す。もし、現在の三角形のベースが保たれなければ、それは捨てられる。このフィールドは算術符号化される。
▲ triangle
coord＿bit：このブール値は幾何情報(geometry)ビットの値を示す。このフィールドは算術符号化される。
【０１９４】
coord＿heading＿bit：このブール値はヘディング幾何情報(heading geometry)ビットの値を示す。このフィールドは算術符号化される。
coord＿sign＿bit：このブール値は幾何情報サンプルの符号を示す。このフィールドは算術符号化される。
coord＿trailing＿bit：このブール値はトレーリング幾何情報ビットの値を示す。このフィールドは算術符号化される。
【０１９５】
normal＿bit：このブール値はノーマルビットの値を示す。このフィールドは算術符号化される。
normal＿heading＿bit：このブール値はヘディングノーマルビットの値を示す。このフィールドは算術符号化される。
normal＿sign＿bit：このブール値はノーマルサンプルの符号を示す。このフィールドは算術符号化される。
【０１９６】
normal＿trailing＿bit：このブール値はトレーリングノーマルビットの値を示す。このフィールドは算術符号化される。
color＿bit：このブール値は色相ビットの値を示す。このフィールドは算術符号化される。
color＿heading＿bit：このブール値はヘディング色相ビットの値を示す。このフィールドは算術符号化される。
【０１９７】
color＿sign＿bit：このブール値は色相サンプルの符号を示す。このフィールドは算術符号化される。
color＿trailing＿bit：このブール値はトレーリング色相ビットの値を示す。このフィールドは算術符号化される。
texCoord＿bit：このブール値はテクスチャービットの値を示す。このフィールドは算術符号化される。
【０１９８】
texCoord＿heading＿bit：このブール値はヘディングテクスチャービットの値を示す。このフィールドは算術符号化される。
texCoord＿sign＿bit：このブール値はテクスチャーサンプルの符号を示す。このフィールドは算術符号化される。
texCoord＿trailing＿bit：このブール値はトレーリングテクスチャービットの値を示す。このフィールドは算術符号化される。
【０１９９】
▲ 3D＿Mesh＿Object＿Forest＿Split
MOF＿start＿code：これは同期目的として用いられる長さ32(sc+7）の唯一のコードである。
mofs＿id：この8ビット符号なし整数はフォレスト分割成分に対する唯一の識別子である。
【０２００】
pre＿smoothing：このブール値は現在のフォレスト分割動作が総体的に頂点位置を予測するための事前平滑化段階(pre-smoothingstep)を使用するか否かを示す。
pre＿smoothing＿n：この整数値は事前平滑化フィルター(pre-smoothing filter）の反復回数を示す。
pre＿smoothing＿lambda：この不動小数点値は事前平滑化フィルター(pre-smoothing filter）の最初の媒介変数である。
【０２０１】
pre＿smoothing＿mu：この不動小数点値は事前平滑化フィルターの二番目の媒介変数である。
post＿smoothing：このブール値は現在のフォレスト分割動作が量子化加工物を除去するための事後平滑化段階(post-smoothing step)を使用するか否かを示す。
post＿smoothing＿n：この整数値は事後平滑化フィルターの反復回数を示す。
【０２０２】
post＿smoothing＿lambda：この不動小数点値は事後平滑化フィルターの最初の媒介変数である。
post＿smoothing＿mu：この不動小数点値は事後平滑化フィルターの二番目の媒介変数である。
sharp＿edges：このブール値は平滑化不連続エッジ(smoothing discontinuity edges)を示すデータがビットストリームに含まれたか否かを示す。もし、sharp＿edges=0ならば、如何なるエッジも平滑化不連続エッジとして示されていない。もし、平滑化不連続エッジが示されていれば、事前平滑化フィルター及び事後平滑化フィルターはこれを考慮する。
【０２０３】
fixed＿vertices：このブール値は平滑化過程の間、動かないデータがビットストリームに含まれたか否かを示す。もし、fixed＿vertices=0ならば、如何なる頂点も動き禁止となる。もし、固定された頂点が表示されていれば、事前平滑化フィルター及び事後平滑化フィルターはこれを考慮する。
edge＿mark：このブール値は対応するエッジが平滑化不連続エッジで表されているか否かを示す。
【０２０４】
vertex＿mark：このブール値は対応する頂点が固定されたか否かを示す。
tree＿edge：このブール値はエッジが今まで作られたフォレストに追加されるべきか否かを示す。
other＿update：このブール値は頂点座標に対する更新とフォレストの如何なるツリーにも付随されないフェースに関連した特性がビットストリームに従うか否かを示す。
【産業上の利用可能性】
【０２０５】
本発明によれば、第1、伝送中にエラーが発生してもエラーが発生した部分のみ再伝送することによってネットワークの負担と伝送時間を減らしうる。
第2、データの一部のみで復元でき、既に復元された部分に対する三角形ないしは多角形を処理してディスプレー上に示しうる。
【図面の簡単な説明】
【０２０６】
【図１】位相幾何学的サーザリにおける頂点スパニンググラフの一例を示した図面である。
【図２】図２（Ａ）乃至図２（Ｃ）は三角形メッシュの一例に対した頂点スパニンググラフ及び三角形スパニンググラフの従来の方法を示した図面である。
【図３】図３（Ａ）乃至図３（Ｃ）は三角形メッシュの一例に対した頂点スパニンググラフ及び三角形スパニンググラフの従来の方法を示した図面である。
【図４】位相幾何学的サーザリにおけるバウンディングループを例示した図面である。
【図５】図５（Ａ）乃至図５（Ｄ）は位相幾何学的サーザリの例を示した図面である。
【図６】図６（Ａ）及び図６（Ｂ）は各々多角形メッシュとそのデュアルグラフの例を示した図面である。
【図７】従来の技術に係る三次元メッシュ情報符号化方式の概念図である。
【図８】漸進的な三次元メッシュ情報表現の概念図である。
【図９】本発明に係る漸進的な三次元メッシュ情報符号化方式の概念図である。
【図１０】Y-頂点符号化のために、本発明に係る適応的に符号化方向を決定する方法を示した図面である。
【図１１】Y-頂点符号化のために、本発明に係る適応的に符号化方向を決定する方法を示した図面である。
【図１２】Y-頂点符号化のために、本発明に係る適応的に符号化方向を決定する方法を示した図面である。
【図１３】三次元メッシュ情報(MO)及び段階別メッシュ情報(MOL）の例を示した図面である。
【図１４】三次元メッシュ情報(MO)及び段階別メッシュ情報(MOL）の例を示した図面である。
【図１５】三角形グラフとバウンディングループインデックスとの関係を示す概念図である。
【図１６】図１６（Ａ）乃至図１６（Ｄ）は位相幾何学的サーザリ過程における固定データ分割方法を例示した図面である。
【図１７】本発明に係るデータ分割の概念図である。
【図１８】本発明に係るデータ分割の概念図である。
【図１９】図１９（Ａ）及び図１９（Ｄ）は可変データ分割方法におけるパーティションの種類を示した図面である。
【図２０】可変分割方法に係る分割を例示した図面である。
【図２１】可変分割方法における大きな連結成分に関するパーティションの他の例を示した図面である。
【図２２】多角形メッシュの三角形メッシュ化を例示した図面である。
【図２３】図２３（Ａ）乃至図２３（Ｅ）は多角形メッシュにおける分割と関連したシンタックスを例示した図面である。
【図２４】メーンブランチにおけるデータ分割を例示した図面である。
【図２５】図２５（Ａ）乃至図２５（Ｄ）はオリエンテーション情報を活用した符号化方法及びそのシンタックスを例示した図面である。
【図２６】図２６（Ａ）は基準方向がある場合のコーディング順序を示し、図２６（Ｂ）はオリエンテーション情報を活用した場合のコーディング順序を示した図面である。
【図２７】図２７（Ａ）及び図２７（Ｂ）はY-頂点をヘッダに与える場合データパーティションにおけるシンタックスを例示した図面である。
【図２８】バウンディングループのインデクシング方法とそれに係るパーティションのヘッダ情報とをコーディングする方法を例示した図面である。
【図２９】図２９（Ａ）及び図２９（Ｂ）はパーティションの開始インデックス情報の符号化方法を説明するための図面である。
【図３０】図３０（Ａ）乃至図３０（Ｅ）はパーティション情報の符号化において幾何情報の符号化を例示した図面である。
【図３１】マーチビット、幾何情報及び画像情報のデータ分割における配置のためのシンタックスを例示した図面である。
【図３２】幾何情報コーディング過程の流れ図である。
【図３３】一つのパーティション内のシンタックスの構成図である。
【図１】
0004452242.tif 000056
【図２】
0004452242.tif 000057
【図３】
0004452242.tif 000058
【図４】
0004452242.tif 000059
【図５】
0004452242.tif 000060
【図６】
0004452242.tif 000061
【図７】
0004452242.tif 000062
【図８】
0004452242.tif 000063
【図９】
0004452242.tif 000064
【図１０】
0004452242.tif 000065
【図１１】
0004452242.tif 000066
【図１２】
0004452242.tif 000067
【図１３】
0004452242.tif 000068
【図１４】
0004452242.tif 000069
【図１５】
0004452242.tif 000070
【図１６】
0004452242.tif 000071
【図１７】
0004452242.tif 000072
【図１８】
0004452242.tif 000073
【図１９】
0004452242.tif 000074
【図２０】
0004452242.tif 000075
【図２１】
0004452242.tif 000076
【図２２】
0004452242.tif 000077
【図２３】
0004452242.tif 000078
【図２４】
0004452242.tif 000079
【図２５】
0004452242.tif 000080
【図２６】
0004452242.tif 000081
【図２７】
0004452242.tif 000082
【図２８】
0004452242.tif 000083
【図２９】
0004452242.tif 000084
【図３０】
0004452242.tif 000085
【図３１】
0004452242.tif 000086
【図３２】
0004452242.tif 000087
【図３３】
0004452242.tif 000088