IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許7442993情報処理装置、情報処理方法、データ構造、及びプログラム
<>
  • 特許-情報処理装置、情報処理方法、データ構造、及びプログラム 図1
  • 特許-情報処理装置、情報処理方法、データ構造、及びプログラム 図2
  • 特許-情報処理装置、情報処理方法、データ構造、及びプログラム 図3
  • 特許-情報処理装置、情報処理方法、データ構造、及びプログラム 図4
  • 特許-情報処理装置、情報処理方法、データ構造、及びプログラム 図5
  • 特許-情報処理装置、情報処理方法、データ構造、及びプログラム 図6
  • 特許-情報処理装置、情報処理方法、データ構造、及びプログラム 図7
  • 特許-情報処理装置、情報処理方法、データ構造、及びプログラム 図8
  • 特許-情報処理装置、情報処理方法、データ構造、及びプログラム 図9
  • 特許-情報処理装置、情報処理方法、データ構造、及びプログラム 図10
  • 特許-情報処理装置、情報処理方法、データ構造、及びプログラム 図11
  • 特許-情報処理装置、情報処理方法、データ構造、及びプログラム 図12
  • 特許-情報処理装置、情報処理方法、データ構造、及びプログラム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-26
(45)【発行日】2024-03-05
(54)【発明の名称】情報処理装置、情報処理方法、データ構造、及びプログラム
(51)【国際特許分類】
   G06T 17/20 20060101AFI20240227BHJP
   H04N 19/20 20140101ALI20240227BHJP
【FI】
G06T17/20
H04N19/20
【請求項の数】 11
(21)【出願番号】P 2019137851
(22)【出願日】2019-07-26
(65)【公開番号】P2021022122
(43)【公開日】2021-02-18
【審査請求日】2022-07-25
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】佐藤 智一
【審査官】鈴木 圭一郎
(56)【参考文献】
【文献】特開2005-332028(JP,A)
【文献】特開2007-265459(JP,A)
【文献】特開2000-092487(JP,A)
【文献】特開2019-086918(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 17/20
H04N 19/20
(57)【特許請求の範囲】
【請求項1】
被写体の三次元形状を表す際に用いられるポリゴンメッシュの解像度を段階的に復号可能な符号化データを出力する情報処理装置であって、
前記被写体の三次元形状を表現する第1のポリゴンデータを構成する第1のポリゴンメッシュを表すメッシュデータを取得する取得手段と、
前記取得手段により取得されたメッシュデータに基づいて、前記第1のポリゴンデータより解像度が高い第2のポリゴンデータであって、かつ前記被写体の三次元形状を表現する第2のポリゴンデータを構成する第2のポリゴンメッシュの頂点の三次元空間における位置に関する情報を含むジオメトリデータを生成する第1生成手段と、
前記第2のポリゴンデータに対応するテクスチャ画像と、前記テクスチャ画像上の前記第2のポリゴンデータに対応するジオメトリ及びトポロジとを生成する第2生成手段と、
前記テクスチャ画像上の頂点の接続関係を示す情報および前記第1のポリゴンメッシュを構成する頂点の接続関係を示す情報を含むトポロジデータと、前記第1生成手段により生成されたジオメトリデータと、を含む前記符号化データを出力する出力手段と
を有することを特徴とする情報処理装置。
【請求項2】
前記トポロジデータは、前記第1のポリゴンメッシュの構成単位及び前記テクスチャ画像上の前記第1のポリゴンメッシュの構成単位に関する情報をさらに含み、
前記第1のポリゴンメッシュの構成単位及び前記テクスチャ画像上の前記第1のポリゴンメッシュの構成単位は、それぞれ当該構成単位を形成するエッジを用いて記述されることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記エッジは、当該エッジの両端の頂点の参照を記述することで定義され、
前記頂点の参照は、前記メッシュデータにおける頂点の順位を示すものであり、前記順位の低い順又は高い順に記述されることを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記第1のポリゴンメッシュの構成単位及び前記テクスチャ画像上の前記第1のポリゴンメッシュの構成単位に対応する領域は、三角形のメッシュであることを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記第1のポリゴンメッシュの構成単位及び前記テクスチャ画像上の前記第1のポリゴンメッシュの構成単位に対応する領域は、前記三角形を構成する頂点のうち、前記順位の低い頂点を基点として、対辺に向かって、右側のエッジ、左側のエッジ、対辺のエッジの順に前記エッジの参照を記述することで定義されることを特徴とする請求項4に記載の情報処理装置。
【請求項6】
前記第1のポリゴンメッシュを第2のポリゴンメッシュに細分化する細分化手段をさらに有し、
前記細分化手段は、
前記三角形を構成するエッジの各々に対して、2つのエッジに分割し、当該分割した2つのエッジを接続する頂点を生成し、
当該生成された頂点を互いに接続するエッジを生成することで、前記三角形を4つの三角形に分割することを特徴とする請求項4又は5に記載の情報処理装置。
【請求項7】
前記第1のポリゴンメッシュのトポロジを細分化して、第3のポリゴンメッシュのトポロジを生成する生成手段と、
前記第2のポリゴンメッシュのジオメトリのうち、前記第3のポリゴンメッシュのジオメトリを取得する第2の取得手段と、
前記第3のポリゴンメッシュのトポロジ及びジオメトリから、前記第3のポリゴンメッシュを復元する復元手段と
をさらに備えることを特徴とする請求項1から6のいずれか1項に記載の情報処理装置。
【請求項8】
前記テクスチャ画像上の前記第1のポリゴンメッシュの構成単位を記述するエッジは、前記第1のポリゴンメッシュの構成単位を記述するエッジに対応付けられていることを特徴とする請求項2から6のいずれか1項に記載の情報処理装置。
【請求項9】
前記第2生成手段は、前記取得手段により取得されたメッシュデータの前記テクスチャ画像に基づいて、前記第2のポリゴンメッシュの前記テクスチャ画像と、前記第2のポリゴンメッシュの形状と前記第2のポリゴンデータに対応する前記テクスチャ画像上のジオメトリ及びトポロジとの対応情報と、を生成することを特徴とする請求項1から8のいずれか1項に記載の情報処理装置。
【請求項10】
被写体の三次元形状を表す際に用いられるポリゴンメッシュの解像度を段階的に復号可能な符号化データを出力する情報処理装置における情報処理方法であって、
前記被写体の三次元形状を表現する第1のポリゴンデータを構成する第1のポリゴンメッシュを表すメッシュデータを取得する取得ステップと、
前記取得ステップにおいて取得されたメッシュデータに基づいて、前記第1のポリゴンデータより解像度が高い第2のポリゴンデータであって、かつ前記被写体の三次元形状を表現する第2のポリゴンデータを構成する第2のポリゴンメッシュの頂点の三次元空間における位置に関する情報を含むジオメトリデータを生成する第1生成ステップと、
前記第2のポリゴンデータに対応するテクスチャ画像と、前記テクスチャ画像上の前記第2のポリゴンデータに対応するジオメトリ及びトポロジとを生成する第2生成ステップと、
前記テクスチャ画像上の頂点の接続関係を示す情報および前記第1のポリゴンメッシュを構成する頂点の接続関係を示す情報を含むトポロジデータと、前記第1生成ステップにおいて生成されたジオメトリデータと、を含む前記符号化データを出力する出力ステップと
を含むことを特徴とする情報処理方法。
【請求項11】
コンピュータを、請求項1からのいずれか1項に記載された情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、データ構造、及びプログラムに関する。
【背景技術】
【0002】
従来、三次元情報のデータ表現の方法として、ポリゴンメッシュによるサーフェイスモデル(メッシュモデル)を用いる方法が知られている。但し、この方法では、例えば、ウェブブラウザを用いてポリゴンメッシュの描画を行う場合等に、描画リソースが限られる場合がある。
【0003】
そこで、低解像度から高解像度までポリゴンメッシュを段階的に復号可能なプログレッシブ符号化方式を適用し、先に低解像度のメッシュデータを転送して描画し、後から追加の詳細情報を転送して高解像度のメッシュデータを描画することが行われている。
【0004】
特許文献1には、符号化時にメッシュの2頂点を1頂点に統合する処理を繰り返すことで簡略化したメッシュとその手順を管理する木構造を生成し、復号時にその簡略化したメッシュから木構造を逆に辿ることで元のメッシュを復元する方法が開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2003-337953号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に記載の方法では、元のメッシュを復元する上で、順次、木構造を辿り、1つずつ頂点を復号する処理が必要であり、復号処理に時間がかかってしまう。特に、多数の高精細なメッシュを描画する場合には、復号に係る処理時間が長くなってしまう。加えて、三次元情報のデータ表現にはテクスチャが用いられるが、テクスチャを付与するとさらに復号時間に係る処理時間が長くなってしまう。
【0007】
本発明は、このような課題に鑑みてなされたものであり、ポリゴンメッシュの解像度を段階的に復号可能なプログレッシブ符号化方式において、復号に係る処理時間を削減することを目的とする。
【課題を解決するための手段】
【0008】
本発明の一実施形態において、被写体の三次元形状を表す際に用いられるポリゴンメッシュの解像度を段階的に復号可能な符号化データを出力する情報処理装置は、前記被写体の三次元形状を表現する第1のポリゴンデータを構成する第1のポリゴンメッシュを表すメッシュデータを取得する取得手段と、前記取得手段により取得されたメッシュデータに基づいて、前記第1のポリゴンデータより解像度が高い第2のポリゴンデータであって、かつ前記被写体の三次元形状を表現する第2のポリゴンデータを構成する第2のポリゴンメッシュの頂点の三次元空間における位置に関する情報を含むジオメトリデータを生成する第1生成手段と、前記第2のポリゴンデータに対応するテクスチャ画像と、前記テクスチャ画像上の前記第2のポリゴンデータに対応するジオメトリ及びトポロジとを生成する第2生成手段と、前記テクスチャ画像上の頂点の接続関係を示す情報および前記第1のポリゴンメッシュを構成する頂点の接続関係を示す情報を含むトポロジデータと、前記第1生成手段により生成されたジオメトリデータと、を含む前記符号化データを出力する出力手段とを有する。
【発明の効果】
【0009】
本発明によれば、ポリゴンメッシュの解像度を段階的に復号可能なプログレッシブ符号化方式において、復号に係る処理時間を削減することができる。
【図面の簡単な説明】
【0010】
図1】既存のデータ記述形式で記述された、テクスチャを伴うメッシュデータを示す図である。
図2】プログレッシブ符号化装置の機能構成を示す図である。
図3】プログレッシブ符号化装置の符号化部において実行される処理の概要及び手順を示すフローチャートである。
図4】ベースメッシュの細分化、及び入力されたメッシュへのフィッティングによって、メッシュが変化する様子を示す図である。
図5】プログレッシブ形式で記述された、テクスチャを伴うメッシュデータを示す図である。
図6】テクスチャを伴うプログレッシブメッシュデータのファイル構成を示す図である。
図7】細分化前後におけるプログレッシブ形式で記述されたメッシュデータの変化を示す図である。
図8】細分化前後における要素数の変動を示す図である。
図9】三角形のメッシュ及び四角形のメッシュの細分化を示す図である。
図10】プログレッシブ符号化装置の復号部において実行される処理の概要及び手順を示すフローチャートである。
図11】プログレッシブ符号化装置のハードウェア構成を示す図である。
図12】プログレッシブ符号化装置の機能構成を示す図である。
図13】三角形のメッシュ及び四角形のメッシュの細分化を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施形態は、本発明を限定するものではなく、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。加えて、本発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれ、また、以下の実施形態の一部を適宜組み合わせることもできる。その他、以下の実施形態において、その装置構成として、符号化部と復号部の双方の機能を有するものとして説明するが、符号化部と復号部のいずれか一方の機能を有するものでもよい。
【0012】
(第1の実施形態)
はじめに、本実施形態について説明する前に、本実施形態で用いるメッシュのデータ記述方法(データ記述形式)との対比のため、既存のメッシュのデータ記述方法について、図1を用いて説明する。図1は、既存のデータ記述形式で記述された、テクスチャを伴うメッシュデータを示す。
【0013】
図1(a)は、頂点V0、V2、V3によって構成される三角形F0と、頂点V0、V3、V1によって構成される三角形F1と、頂点V1、V3、V4によって構成される三角形F2から成るメッシュを表す。各三角形には、図1(b)に示されるテクスチャ画像の一部がテクスチャとして割り当てられる。図1(a)に割り当てられるテクスチャは、三角形で表される。つまり、テクスチャの領域は、3つの頂点とその頂点間を結ぶ線分で囲まれた領域である。言い換えると、メッシュに対応するテクスチャを示す領域は、3つ以上の頂点とその頂点を結ぶ線分とで構成される領域である。
【0014】
このようなメッシュは、図1(c)に示される各頂点の頂点座標と、図1(d)に示される各頂点に対応するテクスチャ画像の頂点座標と、図1(e)に示される各三角形を構成するメッシュ及びテクスチャの頂点の参照を記述することで定義される。
【0015】
なお、図1(c)~(e)において、要素の参照符号であるV、C、Fは、これらの並びによって暗に示すことが可能であり、データとしては持たなくともよい。また、頂点の参照とは、データ上の頂点の順位(インデックス)を示すものであるが、各要素間の接続関係は、頂点座標にアクセス可能な手段で示されればよく、その他に、メモリ上のアドレス等で記述されることもある。また、図1(c)に示されるような三次元空間における位置を表現する情報をジオメトリ、図1(e)に示されるような各要素間の接続関係を表現する情報をトポロジと称する。なお、本実施形態においては、テクスチャ上の頂点座標及びその接続関係も、それぞれジオメトリ及びトポロジと称する。以下では、上述のデータ記述形式を、既存のデータ記述形式と称する。
【0016】
次に、本実施形態に係る情報処理装置として、テクスチャを伴うメッシュのプログレッシブ符号化装置と、そのプログレッシブ符号化装置により生成される、テクスチャを伴うメッシュのデータ記述形式について説明する。
【0017】
図2は、第1の実施形態におけるプログレッシブ符号化装置の機能構成例を示す。図2(a)は符号化部を示し、図2(b)は復号部を示す。図2(a)に示される符号化部は、図1で示した既存のデータ記述形式で表現されたテクスチャを伴うメッシュを、段階的に解像度を制御することができるようにプログレッシブ符号化する。本実施形態におけるプログレッシブ符号化方式は、ポリゴンメッシュの3次元ポリゴンメッシュモデルを複数の解像度(精細度)で復号可能なように(複数の解像度のうち、いずれかの解像度(各々の解像度)を選択して復号可能なように)符号化する方式である。すなわち、本実施形態における符号化装置は、ポリゴンメッシュモデルを複数の解像度で復号可能な符号化データ(プログレッシブメッシュデータ)を出力する情報処理装置として機能する。ポリゴンメッシュモデルは、被写体の三次元形状を表現するデータ(ポリゴンデータ)である。また、ポリゴンメッシュモデルの解像度は、被写体の三次元形状を表現するデータを構成するポリゴンメッシュの数で表される。例えば、同じ被写体を表現するポリゴンメッシュモデルを構成するポリゴンメッシュの数が多いほうが、その数が少ない場合に比べて、解像度が高い。
【0018】
符号化部は、図2(a)に示されるように、メッシュ入力部201、メッシュ簡略化部202、トポロジ変換部203、メッシュ細分化部204、テクスチャ付与部207、及びメッシュ出力部208を有する。また、メッシュ細分化部204は、トポロジ細分化部205、及びジオメトリ算出部206を含む。
【0019】
メッシュ入力部201は、既存のデータ記述形式(具体的には、図1(c)~(e)に示されるデータ記述形式)で記述されたポリゴンメッシュを表すメッシュデータを受信(取得)し、符号化部に入力する。メッシュ簡略化部202は、入力されたメッシュデータのメッシュ(以下、入力メッシュと称する)を簡略化する。以下、簡略化したメッシュをベースメッシュと称する。
【0020】
トポロジ変換部203は、ベースメッシュのトポロジをプログレッシブ表現に変換する。なお、プログレッシブ表現については、図5を参照して後述する。メッシュ細分化部204は、プログレッシブ表現に変換されたベースメッシュのトポロジの細分化と、頂点座標の入力メッシュへのフィッティングを繰り返し実行する。これにより、メッシュ細分化部204は、最終階層のメッシュ(以下、フルメッシュと称する)を生成する。
【0021】
テクスチャ付与部207は、フルメッシュにテクスチャを付与する。テクスチャの付与に関する具体的な処理は、後述する。
【0022】
メッシュ出力部208は、テクスチャ付与部207で生成されたプログレッシブ表現のベースメッシュのトポロジ情報及びフルメッシュのジオメトリ情報を、プログレッシブメッシュとして出力する。
【0023】
次に、図2(a)に示される符号化部において実行される処理の概要及び手順を、図3(a)のフローチャートを用いて説明する。なお、フローチャートの説明における記号「S」は、ステップを表すものとする。また、その他のフローチャートの説明においても同様に記号「S」を使用する。
【0024】
まず、S301において、メッシュ入力部201が、符号化部にメッシュデータを入力する。
【0025】
S302において、メッシュ簡略化部202が、入力メッシュを簡略化して、より面数の少ないメッシュ(すなわち、ベースメッシュ)で、入力メッシュを近似的に表現する。なお、メッシュの簡略化に関して、本実施形態では、上述の特許文献1で開示されている方法を用いるが、この方法に限定されるものではなく、形状の構造を保った状態で面数を削減できる方法であれば任意の方法でよい。
【0026】
S303において、トポロジ変換部203が、ベースメッシュのトポロジをプログレッシブ表現に変換する。なお、プログレッシブ表現に変換するときの解像度の段階数をPD(Progressive Depth)とする。例えば、PD=3の場合、ベースメッシュから2回の細分化が行われ、1階層目のベースメッシュと、3階層目のフルメッシュと、その間に2階層目の中間メッシュが存在することになる。中間メッシュは、ベースメッシュより解像度が高く、フルメッシュは中間メッシュより解像度が高くなる。つまり、同じ被写体の三次元形状を表現するデータをベースメッシュよりも中間メッシュを用いたほうが、メッシュの数が多くなり、また中間メッシュよりもフルメッシュを用いたほうが、メッシュの数が多くなっている。ここで、メッシュの解像度という表現を用いるが、上述したように、ポリゴンメッシュモデルの解像度と同じ意味で用いる。つまり、同じ被写体の三次元形状を表現する際に用いられるメッシュの数が多いほど、そのメッシュの解像度が高いと表現する。
【0027】
S304において、トポロジ細分化部205が、プログレッシブ表現に変換されたベースメッシュのトポロジの正則分割を実行する。なお、正則分割については、図4を参照して後述する。また、正則分割では、面数や頂点数が増えるだけで形状は変化しないため、S305においてジオメトリ算出部206が、頂点座標が入力メッシュに近づくように、位置合わせを実行する。ここでは、位置合わせを実行する頂点により近い入力メッシュの頂点を探索し、その位置合わせを実行する頂点の座標をその探索した頂点の座標と一致させる。その他、位置合わせに関して、入力メッシュとの差を最小化するようなエネルギー最小化問題として実行してもよく、その方法は任意である。
【0028】
ここで、補足として、図4を用いて、S302~S305の一連の処理によってメッシュが変化する様子を説明する。図4(a)は入力メッシュであり、表現したい理想的な形状である。入力メッシュは、図示されていない多数の微小な三角形によって形成されているものとする。この入力メッシュをS302において簡略化することで、図4(b)に示されるように2つの三角形で近似表現する。そして、S304においてメッシュの正則分割を実行することで、図4(c)に示されるように、それぞれの三角形が4分割される。最後に、S305において頂点の位置合わせ(フィッティング)を実行することで、図4(d)に示されるように、メッシュの形状を入力メッシュに近づける。ポリゴンメッシュの解像度は、図4(a)で示される入力メッシュに対して、どれくらいのポリゴン数で表現するかに依存する。つまり、ポリゴン数が多いほど、ポリゴンメッシュの解像度が大きい。図4(b)では、入力メッシュが2つの三角形により表される。図4(c)、(d)では、入力メッシュが8つの三角形により表される。そのため、図4(c)、(d)のメッシュは、図4(b)のメッシュよりも高解像度と言う。
【0029】
S306において、メッシュ細分化部204は、上述のS304及びS305の処理がPD-1回、繰り返し実行されたかどうか判定する。メッシュ細分化部204は、上述のS304及びS305の処理をPD-1回、繰り返し実行することで(S306のYes)、解像度の段階数がPDであるプログレッシブ表現された最終階層のメッシュ(すなわち、フルメッシュ)を生成することができる。
【0030】
S307において、テクスチャ付与部207は、生成されたフルメッシュにテクスチャを付与する。具体的には、テクスチャ付与部207は、後述する図5(b)のテクスチャ画像、並びに、図5(e)のテクスチャエッジ、テクスチャ頂点座標、及びポリゴン情報を生成する。図5の例では、図5(a)の三角形F0に対して、図5(b)のI0の領域のテクスチャが付与されている。また、図5(a)の三角形F1及びF2に対して、図5(b)のI1の領域のテクスチャが付与されている。より具体的には、テクスチャエッジが、メッシュエッジに対応付けられている。なお、図5(e)のテクスチャ頂点座標は、テクスチャ画像上の横軸をu、縦軸をvとして、メッシュの頂点と対応付けるべきテクスチャ画像上の位置を指定する。
【0031】
S308において、メッシュ出力部208が、テクスチャを伴うプログレッシブメッシュデータを出力する。プログレッシブメッシュデータは、少なくともベースメッシュ及びテクスチャのトポロジに関するトポロジデータと、フルメッシュのジオメトリに関するジオメトリデータを含む。
【0032】
次に、図5を用いて、プログレッシブ表現された、テクスチャを伴うメッシュ(すなわち、テクスチャを伴うプログレッシブメッシュ)のデータ記述形式を説明する。
【0033】
図5(a)は、メッシュのデータ記述形式の概略を示す。メッシュの形状は、頂点V(V0、V1、V2、V3、V4、V5)と、エッジE(E0、E1、E2、E3、E4、E5、E6)とで表される三角形F(F0、F1、F2)で構成される。このようなメッシュに対して、図5(b)に示されるテクスチャ画像を対応付けることで、テクスチャを伴うメッシュモデルを表現することができる。図5(b)に示されるように、テクスチャ上にも、テクスチャ頂点C(C0、C1、C2、C3)と、テクスチャエッジtE(tE0、tE1、tE2、tE3、tE4)とで表される三角形F(F0、F1、F2)が存在する。図5(a)に示されるメッシュの形状を構成する三角形と、図5(b)に示されるテクスチャ上の三角形は、一対一の関係となる。
【0034】
図5(c)は、メッシュの頂点Vの頂点座標を記述したものであり、図1(c)と同様である。
【0035】
図5(d)は、メッシュの形状を構成する三角形Fの頂点V間の接続関係を表すエッジEを記述したものであり、各エッジの両端の頂点の参照が記述されている。また、図5(d)では、頂点の参照を、図5(a)における頂点の順位(番号)のうち(例えば、V0は0番目の頂点を示す)、順位の低い(番号が小さい)ものから順に記述している。
【0036】
図5(e)は、テクスチャ上のジオメトリ(頂点座標)及びトポロジ(エッジ)と、形状との対応情報を示したものである。I(I0、I1)は、図5(b)にも示すように、テクスチャ画像上のテクスチャのまとまりを表し、本実施形態ではこれを島と呼ぶ。図5の例では二つの島が存在し、それぞれの島に独立したジオメトリ及びトポロジが割り当てられている。テクスチャ頂点座標は、テクスチャ画像上の頂点位置を表している。なお、全ての島を通して一意の参照を定義しても構わない。テクスチャエッジは、テクスチャ頂点間の接続関係を表しており、さらに対応する形状のエッジ(メッシュエッジ)の参照が記述される。これによって、形状とテクスチャの対応関係を定義する。ポリゴン情報は、メッシュの構成単位であるテクスチャ上の三角形を記述したものであり、三角形を構成する3つのテクスチャエッジの参照を記述する。ここで記述されるテクスチャエッジの参照は、三角形を構成する頂点のうち最も番号が小さい頂点を基点として対辺に向かって右側のエッジ、左側のエッジ、対辺のエッジの順に記述する。例えば、三角形F0の場合、図5(b)のI0図5(e)のI0のF0に示されているように、3頂点C0、C1、C2のうち最も番号が小さい頂点はC0である。従って、エッジの順序は、最初に対辺tE2に向かって右側のエッジであるtE0、次に左側のエッジtE1、最後に対辺tE2の順となる。テクスチャエッジを特定すると、テクスチャエッジに記述された形状のエッジの参照から形状のエッジを一意に特定することができる。この順番は、三角形の表方向をエッジの記述順序によって一意に表現できれば良く、逆順やずれ等その他の順で記述されていてもよい。以下、本データ記述形式をプログレッシブ形式と称する。テクスチャ頂点及びテクスチャエッジは島ごとに独立しているため、参照番号は島間で重複してもよい。
【0037】
図6は、メッシュ出力部208が出力する、テクスチャを伴うプログレッシブメッシュデータのファイル構成を示す。図示されるように、ファイルは、header領域とbody領域を含む。header領域は、common領域、mesh_header領域、及びisland_header領域(island_header0,island_header1)を含む。body領域は、形状データを格納したmesh領域と、各島の情報を格納したisland領域(island0,island1)を含む。
【0038】
header領域は、body領域の各要素について、面数、エッジ数、頂点数を解像度の段階ごとに格納している。common領域には、解像度の段階数(progressive_depth)などの共通情報が記述されている。
【0039】
また、body領域では、mesh領域が、ベースメッシュ(level0)のエッジedges及び頂点座標coordsと、分割階層(level1,level2)の頂点座標coordsを格納している。island領域は、ベースメッシュのテクスチャにおける三角形(面)faces、エッジtexedges、及び頂点座標texcoordsと、分割階層の頂点座標texcoordsを格納している。
【0040】
なお、ヘッダに記述されている頂点数と、その階層におけるファイルに記述される頂点数は、異なっていてもよい。例えば、ヘッダに記述されている頂点数が、階層間の頂点数の差分を表してもよく、その場合、頂点数は異なることになる。
【0041】
次に、図3(b)のフローチャートを用いて、上述したメッシュの正則分割処理について説明する。ここで、分割前のメッシュの頂点数をNV、エッジ数をNE、三角形数をNTとし、各要素の参照番号を(n)で示すものとする。なお、頂点については、分割後の頂点も分割前の頂点を利用するため、分割前後で参照番号は維持されるが、エッジ及び三角形については、分割前後で独立(固有)の参照番号が付与される。図7は、細分化の分割前後におけるプログレッシブ形式で記述されたメッシュデータの変化(すなわち、頂点V、エッジE、三角形Tの参照番号の関係)を示す。また、図8は、細分化の分割前後における各要素数(すなわち、頂点数、エッジ数、及び三角形数)の変動を示す。
【0042】
まず、S309において、トポロジ細分化部205は、例えば、着目するエッジをEdとすると、そのエッジEdの両端の2頂点(Va、Vb)の平均座標によって表される新頂点VNV+dを生成する(図7参照)。すなわち、トポロジ細分化部205は、エッジEdを分割して、新頂点VNV+dを生成する。
【0043】
S310において、トポロジ細分化部205は、分割により生成された新頂点とその両端の2頂点の各々とを結ぶ新エッジE2d、E2d+1を生成する。
【0044】
S311において、トポロジ細分化部205は、全てのエッジに対して分割処理を実行したか否か判定する。全てのエッジに対して実行されている場合は、S312に進む。一方、そうでない場合は、S309に戻り、分割処理を繰り返す。
【0045】
このように、S309~S311において、トポロジ細分化部205は、分割前のエッジの1つ1つに順に着目して分割処理を実行する。図9を参照して補足すると、例えば、図9(a)に示される各エッジは、図9(b)に示されるように分割される。すなわち、エッジE0、E1、及びE2のそれぞれで、新頂点VNV+0、VNV+1、及びVNV+2を生成する。さらに、各新頂点とその両側の2頂点のそれぞれとを結ぶ新エッジE20及びE20+1、新エッジE21及びE21+1、並びに新エッジE22及びE22+1を生成する。
【0046】
次いで、S312において、トポロジ細分化部205は、三角形Tgを構成するエッジEd、Ee、Efのそれぞれを分割して生成された3つの新頂点VNV+d、VNV+e、VNV+fを互いに接続する。これにより、トポロジ細分化部205は、3つの新エッジE2NE+3g、E2NE+3g+1、E2NE+3g+2を生成する。
【0047】
S313において、トポロジ細分化部205は、三角形Tgを分割して4つの新三角形T4g~T4g+3を生成(定義)する。新三角形T4g~T4g+3は、9つの新エッジE2d、E2d+1、E2e、E2e+1、E2f、E2f+1、E2NE+3g~E2NE+3g+2により構成される。
【0048】
S314において、トポロジ細分化部205は、全ての三角形に対して分割処理を実行したか否か判定する。全ての三角形に対して実行されている場合は、処理を終了する。一方、そうでない場合は、S312に戻り、処理を繰り返す。
【0049】
このように、S312~S314において、トポロジ細分化部205は、新エッジを生成し、さらに、新三角形を定義(生成)する。図9を参照して補足すると、例えば、図9(b)において、各エッジに新たに生成された新頂点VNV+0、VNV+1、VNV+2を互いにエッジで結ぶことにより、図9(c)に示されるように4つの新三角形を生成(定義)する。これにより、トポロジ(すなわち、各要素間の接続関係を表現する情報)が生成される。
【0050】
図8は、細分化の分割前後における頂点、エッジ、及び三角形の要素数の変動を示す。S309で生成される新頂点は符号801の領域に記述され、S310で生成される新エッジは符号802の領域に記述され、S312で生成される新エッジは符号803の領域に記述される。また、S313で生成される新三角形は符号804の領域に記述される。
【0051】
上述した分割処理は、三次元のメッシュ及び二次元のテクスチャの島でそれぞれ実行される。
【0052】
次に、図2(b)に示される復号部について説明する。復号部は、図2(a)の符号化部により生成された、テクスチャを伴うプログレッシブメッシュデータを復号し、所望の解像度のメッシュ(設定された階層のメッシュ)を取得する。復号部は、例えば、PD(解像度の段階数)=3で生成されたプログレッシブメッシュデータに対して、解像度の段階数として2階層目のメッシュを指定すると、ベースメッシュの4倍の面数のメッシュを取得する。なお、本実施形態では、復号時に設定された階層のメッシュのみを出力する仕様としているが、復号の過程で取得される全ての階層のトポロジを出力するようにしてもよい。
【0053】
復号部は、図2(b)に示されるように、メッシュ入力部209、トポロジ格納部210、トポロジ細分化部211、ジオメトリ格納部212、ジオメトリ取得部213、メッシュ復元部214、及びメッシュ出力部215を含む。
【0054】
メッシュ入力部209は、テクスチャを伴うプログレッシブメッシュデータを復号部に入力し、トポロジ格納部210にトポロジ情報を格納(設定)し、ジオメトリ格納部212に頂点座標情報(ジオメトリ情報)を格納する。
【0055】
トポロジ細分化部211は、トポロジ格納部210に格納されたトポロジを細分化し、設定された階層のメッシュのトポロジを生成する。ジオメトリ取得部213は、ジオメトリ格納部212に格納された頂点座標のうち、設定された階層に必要な部分(頂点座標データ)を取得する。
【0056】
メッシュ復元部214は、細分化されたメッシュのトポロジを変換して既存のデータ記述形式のトポロジを取得すると共に、ジオメトリ取得部213から取得した頂点座標データとあわせて、設定された階層におけるメッシュの表現を取得(復元)する。メッシュ出力部215は、復元されたメッシュを出力する。
【0057】
次に、図2(b)に示される復号部において実行される処理の概要及び手順を、図10(a)のフローチャートを用いて説明する。
【0058】
S1001において、メッシュ入力部209が、テクスチャを伴うプログレッシブメッシュデータを復号部に入力する。メッシュ入力部209は、トポロジ格納部210にトポロジ情報を格納(設定)し、ジオメトリ格納部212に頂点座標情報(ジオメトリ情報)を格納する。
【0059】
S1002において、トポロジ細分化部211が、プログレッシブメッシュのトポロジの正則分割を実行する。
【0060】
S1003において、トポロジ細分化部211が、解像度の段階数がN階層のメッシュを取得する場合、N-1回、S1002における正則分割を実行したか否か判定する。N-1回の正則分割が実行されていない場合はS1002に戻り、実行されている場合はS1004に進む。
【0061】
S1004において、メッシュ復元部214が、プログレッシブ表現された三角形を既存のメッシュ表現のメッシュデータ(すなわち、既存のデータ記述形式のメッシュデータ)に変換する。すなわち、メッシュ復元部214が、メッシュを復元する。なお、この場合、上述した図5のデータ記述形式(すなわち、三角形におけるエッジの参照の記述順序、エッジにおける頂点の参照の記述順序)に従うことで、メッシュの面の表裏を誤ることなく、頂点を取得することができる。具体的には、例えば、三角形を構成する3つのエッジのうち、1番目に記述されたエッジの1番目に記述された頂点、1番目に記述されたエッジの2番目に記述された頂点、2番目に記述されたエッジの2番目に記述された頂点を取り出せばよい。
【0062】
S1005において、メッシュ出力部215が、復元されたメッシュ(すなわち、既存のデータ記述形式のメッシュデータ)を出力する。
【0063】
続いて、図10(b)のフローチャートを用いて、S1002において実行されるプログレッシブメッシュのトポロジの正則分割処理について説明する。なお、図10(b)において、上述した図3(b)との変更点は、図3(b)のS309に相当する処理がないことである。すなわち、図10(b)では、頂点座標の算出(図3(b)のS309)は行わず、S1001で入力されたプログレッシブメッシュデータに含まれる頂点座標情報を新頂点Vの頂点座標として利用して、新エッジを生成する(S1006)。なお、S1007からS1010までの処理は、図3(b)と同様である。
【0064】
上述の構成により、メッシュのトポロジをエッジで管理することで、上位階層で生じるトポロジの生成ルールが簡易になり、復号に係る処理時間を削減することが可能な三次元メッシュのプログレッシブ符号化を実現することができる。すなわち、メッシュデータのデータ構造内にエッジデータを埋め込むことで、高速な復号処理を実現することができる。なお、本実施形態において説明した内容は、二次元のメッシュにも同様に適用可能である。
【0065】
図11は、プログレッシブ符号化装置のハードウェア構成を示す。本実施形態におけるプログレッシブ符号化装置は、CPU1101、RAM1102、ROM1103、キーボード1104、マウス1105、表示装置1106、外部記憶装置1107、記憶媒体ドライブ1108、I/F(インタフェース)1109を備える。
【0066】
CPU(Central Processing Unit)1101は、RAM1102又はROM1103に格納されているコンピュータプログラム又はデータを用いて、コンピュータ全体の制御を行う。また、CPU1101は、プログレッシブ符号化装置が実行するものとして説明した上述の各処理を実行する。RAM(Random Access Memory)1102は、コンピュータ読み取り可能な記憶媒体の一例である。RAM1102は、外部記憶装置1107、記憶媒体ドライブ1108、又はI/F1109からロードされたコンピュータプログラムやデータを一時的に記憶するための記憶エリアを備える。また、RAM1102は、CPU1101が各種の処理を実行するときに用いるワークエリアを備える。即ち、RAM1102は、各種のエリアを適宜提供することができる。ROM(Read Only Memory)1103は、コンピュータ読み取り可能な記憶媒体の一例であり、例えば、コンピュータの設定データ、ブートプログラム等を格納する。
【0067】
本実施形態に係るプログレッシブ符号化装置のCPU1101は、図2に示されるブロックの一部の機能を実現する。即ち、CPU1101は、メッシュ簡略化部202、トポロジ変換部203、メッシュ細分化部204、テクスチャ付与部207、トポロジ細分化部211、ジオメトリ取得部213、メッシュ復元部214の機能を実現する。また、CPU1101がRAM1102にロードされたプログラムを実行することで、上述の図2に示されるブロックの一部は、CPU1101が実行するソフトウェア(コンピュータプログラム)として実装できる。この場合、このソフトウェアは、PC(Personal Computer)等のコンピュータのRAM1102にインストールされることになる。そして、このコンピュータのCPU1101がこのインストールされたソフトウェアを実行することで、このコンピュータは上述のプログレッシブ符号化装置の機能を実現することになる。
【0068】
なお、CPU1101とは異なる専用の1又は複数のハードウェア或いはGPU(Graphics Processing Unit)を備え、CPU1101による処理の少なくとも一部を専用のハードウェア又はGPUが行うようにしてもよい。また、専用のハードウェアとしては、例えば、ASIC(特定用途向け集積回路)、FPGA(Field-Programmable Gate Array)、及びDSP(デジタルシグナルプロセッサ)等がある。その他、補足として、図2のトポロジ格納部210及びジオメトリ格納部212は、例えば、RAM1102、外部記憶装置1107等に対応する。
【0069】
キーボード1104及びマウス1105は、コンピュータの操作者が操作するものであり、これを用いることで、各種の指示やデータをCPU1101に対して入力することができる。表示装置1106は、CRTや液晶画面などにより構成されており、CPU1101による処理結果を画像や文字などで表示することができる。
【0070】
外部記憶装置1107は、コンピュータ読み取り可能な記憶媒体の一例であり、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置1107には、例えば、OS(オペレーティングシステム)や、図3(a)及び(b)に示される各処理をCPU1101に実行させるためのコンピュータプログラムやデータ等が記憶される。外部記憶装置1107に記憶されるコンピュータプログラムやデータは、CPU1101による制御に従って、適宜RAM1102にロードされ、処理される。
【0071】
記憶媒体ドライブ1108は、CD-ROMやDVD-ROMなどの記憶媒体に記録されているコンピュータプログラムやデータを読み出し、読み出したコンピュータプログラムやデータを外部記憶装置1107やRAM1102に出力する。なお、外部記憶装置1107に記憶されているものとして説明した情報の一部若しくは全部を上述のCD-ROMやDVD-ROMなどの記憶媒体に記憶させておき、この記憶媒体ドライブ1108に読み取らせてもよい。
【0072】
I/F1109は、外部装置から頂点インデックス等を入力したり、外部装置に符号データを出力したりするためのインタフェースであり、例えば、USB(Universal Serial Bus)である。バス1110は、プログレッシブ符号化装置内の各部を接続する。
【0073】
上述したようなハードウェア構成において、コンピュータの電源がオンになると、CPU1101はROM1103に格納されているブートプログラムに従って、外部記憶装置1107からOSをRAM1102にロードする。この結果、キーボード1104及びマウス1105を介した入力操作が可能となり、また、表示装置1106にGUI(Graphical User Interface)を表示することが可能となる。さらに、ユーザが、キーボード1104やマウス1105等を操作し、外部記憶装置1107に格納されたテクスチャマッピングアプリケーションの起動を指示すると、CPU1101は、当該アプリケーションをRAM1102にロードし、各種処理を実行する。これにより、上述のコンピュータがプログレッシブ符号化装置として機能することになる。
【0074】
なお、CPU1101が実行するプログレッシブ符号化アプリケーションプログラムは、メッシュ簡略化部202、メッシュ細分化部204、トポロジ細分化部211、メッシュ復元部214に相当する関数を備えることになる。また、ここでの処理結果は、外部記憶装置1107に保存される。
【0075】
以上説明したように、上述のコンピュータは、本実施形態に係るプログレッシブ符号化装置に適用可能である。
【0076】
(第二の実施形態)
上述した第一の実施形態では、復号に係る処理時間を削減するためにエッジデータをデータ構造内に埋め込む例について説明した。しかし、この方法では、メッシュの復号が高速である反面、エッジ数が一般に頂点数に対して約3倍程度存在するため要素数が多くなり、データ量が増加する傾向がある。
【0077】
そこで、本実施形態では、データ量を低減することを目的として、データ構造内にエッジデータを埋め込まずに、プログレッシブ符号化を実現する方法について説明する。なお、本実施形態に係るプログレッシブ符号化装置も、上述の図2に示される符号化装置と同様に、後述する各ブロックの機能を、関数群から成るプログラムにより実現してもよい。また、第一の実施形態は、メッシュの構成単位の例として三角形のメッシュを用いて説明したが、本実施形態は、例として、四角形のメッシュを用いて説明する。
【0078】
図12は、本実施形態におけるプログレッシブ符号化装置の構成例を示す。図12(a)は符号化部を示し、図12(b)は復号部を示す。符号化部は、図12(a)に示されるように、メッシュ入力部201、メッシュ簡略化部202、トポロジ変換部203、メッシュ細分化部204、テクスチャ付与部207、及びメッシュ出力部1208を有する。メッシュ細分化部204は、トポロジ細分化部205、及びジオメトリ算出部206を含む。復号部は、図12(b)に示されるように、メッシュ入力部1209、トポロジ格納部210、トポロジ変換部1216、トポロジ細分化部211、ジオメトリ格納部212、ジオメトリ取得部213、メッシュ復元部214、及びメッシュ出力部215を有する。
【0079】
以下の説明では、上述した各処理部について、第一の実施形態と異なる処理内容を主に説明する。
【0080】
図12(a)の符号化部では、メッシュ簡略化部202は、第一の実施形態と同様に、入力メッシュを簡略化し、ベースメッシュを生成する。そして、本実施形態では、メッシュ簡略化部202は、それにより得られた既存のデータ記述形式のベースメッシュのトポロジを、テクスチャ付与部207に出力する。テクスチャ付与部207は、本実施形態では、既存のデータ記述形式で表現されたメッシュにテクスチャを付与する。メッシュ出力部1208は、プログレッシブ表現されたメッシュのトポロジ情報ではなく、既存のデータ記述形式のベースメッシュのトポロジ情報及びフルメッシュのジオメトリ情報を出力する。
【0081】
図12(b)の復号部では、メッシュ入力部1209は、メッシュ出力部1208が出力したテクスチャを伴う既存のデータ記述形式のベースメッシュ及びフルメッシュを復号部に入力する。メッシュ入力部1209は、既存のデータ記述形式のベースメッシュのトポロジをトポロジ格納部210に格納し、フルメッシュのジオメトリをジオメトリ格納部212に格納する。
【0082】
トポロジ変換部1216は、トポロジ格納部210に格納された既存のデータ記述形式のベースメッシュのトポロジを、プログレッシブ表現に変換する。なお、復号部のトポロジ変換部1216における入出力は、符号化部のトポロジ変換部203における入出力と一致するものとする。
【0083】
トポロジ細分化部211は、トポロジ変換部1216がプログレッシブ表現に変換したベースメッシュのトポロジを細分化し、設定された階層のメッシュのトポロジを生成する。
【0084】
本実施形態における四角形メッシュのメッシュ細分化(分割)の行程は、基本的に図4と同様であるが、図13に示されるようにトポロジが異なる。具体的には、図9に示されるように、四角形のメッシュは、エッジの分割において、図9(d)のエッジが図9(e)に示すように分割される。このように、エッジの分割については、三角形のメッシュと同様である。一方、図9(f)に示されるように、四角形メッシュでは、面の処理において四角形の内部(中央)に新たな頂点が生成される点で異なる。
【0085】
以上本実施形態では、テクスチャを伴う既存のデータ記述形式のベースメッシュのトポロジを出力して、プログレッシブ符号化を実現する構成を説明した。この構成により、本実施形態では、第一の実施形態と比較して、トポロジに要するデータ量を低減することができる。
【0086】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0087】
201 メッシュ入力部
202 メッシュ簡略化部
203 トポロジ変換部
204 メッシュ細分化部
205 トポロジ細分化部
206 ジオメトリ算出部
207 テクスチャ付与部
208 メッシュ出力部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13