(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-06
(45)【発行日】2024-12-16
(54)【発明の名称】情報処理装置、情報処理方法、データ構造、及びプログラム
(51)【国際特許分類】
G06T 17/20 20060101AFI20241209BHJP
【FI】
G06T17/20 500
(21)【出願番号】P 2023082299
(22)【出願日】2023-05-18
(62)【分割の表示】P 2019010058の分割
【原出願日】2019-01-24
【審査請求日】2023-06-07
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】佐藤 智一
【審査官】岡本 俊威
(56)【参考文献】
【文献】特開2005-332028(JP,A)
【文献】特開2000-092487(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 17/00-17/30
(57)【特許請求の範囲】
【請求項1】
外部装置から、オブジェクトの形状を表す第1のメッシュデータと、前記オブジェクトの形状を表す第2のメッシュデータを
構成する
ポリゴンの頂点の位置を示す位置情報とを取得する取得手段と、
前記取得手段により取得される前記
位置情報
を用いて、前記取得手段により取得される前記第1のメッシュデータを構成するポリゴンのエッジを正則分割することにより、前記第2のメッシュデータを生成する生成手段と、
を有することを特徴とする情報処理装置。
【請求項2】
前記取得手段
は、前記第2のメッシュデータを構成するポリゴンの頂点の位置の個数の情報を
取得すること
を特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記第2のメッシュデータを構成するポリゴンの数は、前記第1のメッシュデータを構成するポリゴンの数よりも多いこと
を特徴とする請求項1
又は2に記載の情報処理装置。
【請求項4】
外部装置から、オブジェクトの形状を表す第1のメッシュデータと、前記オブジェクトの形状を表す第2のメッシュデータを
構成する
ポリゴンの頂点の位置を示す位置情報とを取得する取得工程と、
前記取得工程において取得される前記
位置情報
を用いて、前記取得工程において取得される前記第1のメッシュデータを構成するポリゴンのエッジを正則分割することにより、前記第2のメッシュデータを生成する生成工程と、
を含むことを特徴とする情報処理方法。
【請求項5】
コンピュータを、請求項1乃至
3のいずれか1項に記載された情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、データ構造、及びプログラムに関する。
【背景技術】
【0002】
従来、三次元情報のデータ表現の方法として、ポリゴンメッシュによるサーフェイスモデル(メッシュモデル)を用いる方法が知られている。但し、この方法において、例えば、ウェブブラウザを用いてポリゴンメッシュの描画を行う場合等、描画リソースが限られる場合がある。
【0003】
そこで、低解像度から高解像度までポリゴンメッシュを段階的に復号可能なプログレッシブ符号化方式を適用し、先に低解像度のメッシュデータを転送して描画し、後から追加の詳細情報を転送して高解像度のメッシュデータを描画することが行われている。
【0004】
特許文献1には、符号化時にメッシュの2頂点を1頂点に統合する処理を繰り返すことで簡略化したメッシュとその手順を管理する木構造を生成し、復号時にその簡略化したメッシュから木構造を逆に辿ることで元のメッシュを復元する方法が開示されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に記載の方法では、元のメッシュを復元する上で、順次、木構造を辿り、1つずつ頂点を復号する処理が必要であり、復号する処理に時間がかかるという課題がある。取り分け、多数の高精細なメッシュを描画する場合等には、復号時間が長くなる。
【0007】
本発明は、前記従来の課題に鑑みてなされたものであって、その目的は、ポリゴンメッシュの解像度を段階的に復号可能なように符号化するプログレッシブ符号化方式において、復号に係る処理量を削減する。
【課題を解決するための手段】
【0008】
本発明に係る情報処理装置は、外部装置から、オブジェクトの形状を表す第1のメッシュデータと、前記オブジェクトの形状を表す第2のメッシュデータを構成するポリゴンの頂点の位置を示す位置情報とを取得する取得手段と、前記取得手段により取得される前記位置情報を用いて、前記取得手段により取得される前記第1のメッシュデータを構成するポリゴンのエッジを正則分割することにより、前記第2のメッシュデータを生成する生成手段と、を有する。
【発明の効果】
【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によって構成される三角形T0と頂点V0、頂点V3、頂点V1によって構成される三角形T1から成るメッシュを表したものである。このようなメッシュは、
図1(B)に示される各頂点の頂点座標と、
図1(C)に示される各三角形を構成する頂点の参照を記述することで定義される。
【0014】
なお、頂点の参照はデータ上の頂点の順位(インデックス)を示すものであるが(記述するものであるが)、各要素間の接続関係は、頂点座標にアクセス可能な手段で示されればよく、その他、メモリ上のアドレス等で記述されることもある。また、
図1(B)に示されるような三次元空間における位置を表現する情報をジオメトリ、
図1(C)に示されるような各要素間の接続関係を表現する情報をトポロジと称する。加えて、以下において、上述のデータ記述形式を、既存のデータ記述形式と称する。
【0015】
次に、本実施形態に係る情報処理装置(符号化装置)として、メッシュを高速に復号することが可能なプログレッシブ符号化装置、併せて、そのプログレッシブ符号化装置により生成されるメッシュのデータ記述形式について説明する。
【0016】
図2は、プログレッシブ符号化装置の機能構成を示す図である。なお、
図2において、
図2(A)は符号化部、
図2(B)は復号部を示している。以下、順に説明する。
図2(A)に示される符号化部は、上述の
図1で示した既存のデータ記述形式で表現されたメッシュを、段階的に解像度を制御することができるようにプログレッシブ符号化する。本実施形態におけるプログレッシブ符号化は、ポリゴンメッシュの3次元メッシュモデルを複数の解像度(精細度)で復号可能なように(複数の解像度のうち、いずれかの解像度(各々の解像度)を選択して復号可能なように)符号化する符号化方式である。即ち、本実施形態における符号化装置は、ポリゴンメッシュを複数の解像度で復号可能な符号化データ(プログレッシブメッシュデータ)を出力する情報処理装置として機能する。
【0017】
符号化部は、
図2(A)に示されるように、メッシュ入力部201、メッシュ簡略化部202、トポロジ変換部203、メッシュ細分化部204、メッシュ出力部207を備える。さらに、メッシュ細分化部204は、トポロジ細分化部205、ジオメトリ算出部206を有する。
【0018】
メッシュ入力部201は、既存のデータ記述形式(具体的には、
図1(B)、
図1(C)に示されるデータ記述形式)で記述されたポリゴンメッシュを表すメッシュデータを受信(取得)し、プログレッシブ符号化装置内に入力する。メッシュ簡略化部202は、入力されたメッシュデータのメッシュを簡略化する。なお、以下において、この簡略化したメッシュをベースメッシュと称する。
【0019】
トポロジ変換部203は、ベースメッシュをプログレッシブ表現に変換する。なお、プログレッシブ表現については、
図4を用いて後述する。メッシュ細分化部204は、プログレッシブ表現に変換されたベースメッシュのトポロジの細分化、及び頂点座標の入力されたメッシュ(以下、入力メッシュと称する)へのフィッティングを繰り返し実行する。これにより、メッシュ細分化部204は、最終階層のメッシュ(以下、フルメッシュと称する)を生成する。メッシュ出力部207は、トポロジ変換部203で生成されたプログレッシブ表現のベースメッシュのトポロジ、及びメッシュ細分化部204で生成されたフルメッシュのジオメトリを、プログレッシブ表現されたメッシュとして出力する。なお、以下において、メッシュ出力部207により出力されるプログレッシブ表現されたメッシュデータをプログレッシブメッシュデータと称する。
【0020】
次に、
図2(A)に示されるプログレッシブ符号化装置の符号化部において実行される処理の概要及び手順を、
図3(A)のフローチャートを用いて説明する。なお、フローチャートの説明における記号「S」は、ステップを表すものとする。また、この点、以降のフローチャートの説明においても同様とする。
【0021】
S301において、メッシュ入力部201は、プログレッシブ符号化装置内にメッシュデータを入力する。S302において、メッシュ簡略化部202は、入力されたメッシュデータにおけるメッシュを簡略化して、より面数の少ないメッシュ(即ち、ベースメッシュ)で入力されたメッシュデータにおけるメッシュを近似的に表現する。なお、メッシュの簡略化に関して、本実施形態では、上述の特許文献1で開示されている方法を用いるが、必ずしもこの方法に限定されず、形状の構造を保った状態で面数を削減できる方法であれば任意の方法でよい。
【0022】
S303において、トポロジ変換部203は、ベースメッシュをプログレッシブ表現に変換する。なお、プログレッシブ表現に変換するときの解像度の段階数をPD(Progressive Depth)とする。例えば、PD=3の場合、ベースメッシュから2回の細分化が行われ、1階層目のベースメッシュと3階層目のフルメッシュとその間に2階層目の中間メッシュが存在することになる。中間メッシュはベースメッシュより解像度が高く、フルメッシュは中間メッシュより解像度が高くなる。
【0023】
S304において、トポロジ細分化部205は、メッシュの正則分割を実行する。なお、メッシュの正則分割については、
図5を用いて後述する。また、正則分割では面数や頂点数が増えるだけで形状は変化しないため、S305において、ジオメトリ算出部206は、頂点座標が入力メッシュに近づくように、位置合わせを実行する。ここでは、位置合わせを実行する頂点により近い入力メッシュの頂点を探索し、その位置合わせを実行する頂点の座標をその探索した頂点の座標と一致させる。その他、位置合わせに関して、入力メッシュとの差を最小化するようなエネルギー最小化問題として実行してもよく、その方法は任意である。
【0024】
ここで、補足として、S302~S305の一連の処理によって、メッシュが変化する様子を、
図5を用いて説明する。
図5(A)は入力メッシュであり、表現したい理想的な形状であり、図示されていない多数の微小な三角形によって形成されているものとする。この
図5(A)に示されるメッシュを入力メッシュとして、S302においてメッシュを簡略化することで、
図5(B)に示されるように2つの三角形で近似的に表現する。そして、S304においてメッシュの正則分割を実行することで、
図5(C)に示されるように、各々の三角形が4分割される。最後に、S305において頂点の位置合わせを実行することで、
図5(D)に示されるように、メッシュの形状を入力メッシュに近付ける。
【0025】
S306において、メッシュ細分化部204は、上述のS304、S305の処理がPD-1回、繰り返し実行されたか否かを判定する。メッシュ細分化部204は、上述のS304、S305の処理をPD-1回、繰り返し実行することで(S306 Yes)、解像度の段階数がPDであるプログレッシブ表現されたメッシュ(即ち、フルメッシュ)を生成することができる。S307において、メッシュ出力部207が出力するプログレッシブメッシュデータは、少なくともベースメッシュのトポロジに関するトポロジデータ及びフルメッシュのジオメトリに関するジオメトリデータを含む。
【0026】
次に、プログレッシブ表現されたメッシュのデータ記述形式を、
図4を用いて説明する。
図4(A)はメッシュのデータ記述形式の概略を示したものであり、また、メッシュデータは、V(V
0、V
1、V
2、V
3)で示される頂点、E(E
0、E
1、E
2、E
3、E
4)で示されるエッジ、T(T
0、T
1)で示される三角形を含むように構成される。
図4(B)は、頂点座標を記述したものであり、
図1(B)と同様である。
【0027】
図4(C)は、メッシュ上の頂点間の接続関係を示すエッジを記述したものであり、ここでは、エッジ両端の頂点の参照を記述している。また、
図4(C)では、頂点の参照を、
図4(B)に示される頂点の順位(番号)のうち、順位の低い(小さい)ものから順に記述している(即ち、順位が低いものが先に記述される)。なお、頂点の参照に関して、順位の高い(大きい)ものから順に記述してもよい。
【0028】
図4(D)は、メッシュの構成単位である三角形のメッシュを記述したものであり、ここでは、その三角形を構成する3つのエッジの参照を記述する。なお、エッジの参照は、三角形を構成する頂点の順位のうち、最も順位が低い頂点を基点として、対辺に向かって、右側のエッジ、左側のエッジ、対辺のエッジの順に記述される。補足として、この順番は、三角形の表方向をエッジの記述順序によって一意に表現できればよく、例えば、逆順やずれ等、その他の順序で記述されていてもよい。以下、このデータ記述形式をプログレッシブ形式と称する。
【0029】
次に、プログレッシブ符号化装置の符号化部のメッシュ出力部207より出力されるファイルの構成を、
図8を用いて説明する。出力されるファイルは、
図8に示されるように、header領域、base mesh領域、subband mesh領域を含む。header領域には、解像度の段階数(progressive_depth)、各階層におけるメッシュの頂点数(num_vertices)、エッジ数(num_edges)、三角形数(num_triangles)が記述されている。
【0030】
base mesh領域には、ベースメッシュのエッジedges、三角形triangles、頂点座標coordsが記述されている。subband mesh領域には、ベースメッシュよりも解像度の高い階層で必要とされる追加の詳細情報が記述されており、ここでは、各階層において、解像度の低い階層からの細分化処理で新たに生じた頂点の頂点座標coordsが記述されている。即ち、同一の階層において、header領域に記述されている頂点数とsubband mesh領域に記述される頂点数が異なることに留意する。
【0031】
続いて、
図3(B)のフローチャートを用いて、上述のプログレッシブメッシュの正則分割処理について説明する。ここで、分割前のメッシュの頂点数をNV、エッジ数をNE、三角形数をNTとし、以下、各要素の参照番号を(n)で示すものとする。なお、頂点に関して、分割後の頂点も分割前の頂点を利用するため、分割の前後において参照番号は維持されるが、エッジ及び三角形に関して、分割の前後において独立(固有)の参照番号が付与される。
図6に細分化前後におけるプログレッシブ形式で記述されたメッシュデータの変化(即ち、頂点V、エッジE、三角形Tの参照番号の関係)を示し、
図7に細分化前後における各要素数の変動を示す。
【0032】
S308において、トポロジ細分化部205は、例えば、着目するエッジをEdとして、そのエッジEdの両端の2頂点(Va、Vb)の平均座標である新頂点VNV+dを生成する。S309において、トポロジ細分化部205は、分割により生成された新頂点とその両端の2頂点の各々とを結ぶエッジE2d、E2d+1を新エッジとして生成する。S310において、トポロジ細分化部205は、全てのエッジに対して分割処理を実行したか否かを判定する。
【0033】
このように、S308~S310では、トポロジ細分化部205は、分割前のエッジの1つ1つに順に着目して分割処理を実行する。また、
図13を用いて補足すると、
図13(A)と
図13(B)の関係に示されるようになる。即ち、エッジE
0、エッジE
1、エッジE
2から新頂点V
NV+0、V
NV+1、V
NV+2を生成し、さらに新エッジE
20及びE
20+1、新エッジE
21及びE
21+1、新エッジE
22及びE
22+1を生成する。
【0034】
S311において、トポロジ細分化部205は、三角形Tgを構成するエッジEd、Ee、Efを分割して生成された3つの新頂点VNV+d、VNV+e、VNV+fを互いに接続する。これにより、トポロジ細分化部205は、3つの新エッジE2NE+3g、E2NE+3g+1、E2NE+3g+2を生成する。S312において、三角形Tgを分割して生成された9つの新エッジE2d、E2d+1、E2e、E2e+1、E2f、E2f+1、E2NE+3g~E2NE+3g+2により構成される4つの新三角形T4g~T4g+3を生成(定義)する。S313において、トポロジ細分化部205は、全ての三角形に対して分割処理を実行したか否かを判定する。
【0035】
このように、S311~S313では、新エッジを生成し、さらに、新三角形を定義(生成)する。また、
図13を用いて補足すると、
図13(B)と
図13(C)の関係に示されるように、
図13(B)において生成された新頂点V
NV+0、V
NV+1、V
NV+2を互いに結ぶことにより、
図13(C)に示されるように4つの新三角形を生成(定義)する。これにより、トポロジ(即ち、各要素間の接続関係を表現する情報)が生成される。
【0036】
その他、
図7に、細分化前後における頂点、エッジ、三角形の要素数の変動を示す。
図7において、S308で生成される新頂点は符号701の領域、S309で生成される新エッジは符号702の領域、S311で生成される新エッジは符号703の領域、S312で生成される新三角形は符号704の領域に記述される。
【0037】
次に、
図2(B)に示される復号部について説明する。復号部は、
図2(A)の符号化部により生成されたプログレッシブメッシュデータを復号し、所望の解像度のメッシュ(設定された階層のメッシュ)を取得する。復号部は、例えば、PD(解像度の段階数)=3で生成されたプログレッシブメッシュデータに対して、解像度の段階数として2階層目のメッシュを指定すると、ベースメッシュの4倍の面数のメッシュを取得する。なお、本実施形態では、復号時に設定された階層のメッシュのみを出力する仕様としているが、復号の過程で取得される全ての階層のトポロジを出力するようにしてもよい。
【0038】
復号部は、
図2(B)に示されるように、メッシュ入力部208、トポロジ格納部209、トポロジ細分化部210、ジオメトリ格納部211、ジオメトリ取得部212、メッシュ復元部213、メッシュ出力部214を備える。
【0039】
メッシュ入力部208は、プログレッシブ符号化装置内にプログレッシブメッシュデータを入力し、トポロジ格納部209にトポロジを格納(設定)し、ジオメトリ格納部211に頂点座標情報を格納する。
【0040】
トポロジ細分化部210は、トポロジ格納部209に格納されたトポロジを細分化し、設定された階層のメッシュのトポロジを生成する。ジオメトリ取得部212は、ジオメトリ格納部211に格納された頂点座標のうち、設定された階層に必要な部分(頂点座標データ)を取得する。
【0041】
メッシュ復元部213は、細分化されたメッシュのトポロジを変換して既存のデータ記述形式のトポロジを取得すると共に、ジオメトリ取得部212から取得した頂点座標データと併せて、設定された階層におけるメッシュの表現を取得する。メッシュ出力部214は、生成したメッシュを出力する。
【0042】
次に、
図2(B)に示されるプログレッシブ符号化装置の復号部において実行される処理の概要及び手順を、
図9(A)のフローチャートを用いて説明する。S901において、メッシュ入力部208は、プログレッシブ符号化装置内にプログレッシブメッシュデータを入力する。
【0043】
S902において、トポロジ細分化部210は、ベースメッシュのトポロジの正則分割を実行する。S903において、トポロジ細分化部210は、解像度の段階数がN階層のメッシュを取得する場合、N-1回、S902における正則分割を実行したか否かを判定する。
【0044】
S904において、メッシュ復元部213は、プログレッシブ表現された三角形を既存のメッシュ表現のメッシュデータ(即ち、既存のデータ記述形式のメッシュデータ)に変換する。なお、この場合、上述の
図4のデータ記述形式(即ち、三角形におけるエッジの参照の記述順序、エッジにおける頂点の参照の記述順序)に従うことで、メッシュの面の表裏を誤ることなく、頂点を取得することができる。具体的には、例えば、三角形を構成する3つのエッジのうち、1番目に記述されたエッジの1番目に記述された頂点、1番目に記述されたエッジの2番目に記述された頂点、2番目に記述されたエッジの2番目に記述された頂点を取り出せばよい。S905において、メッシュ出力部214は、生成したメッシュを出力する。
【0045】
続いて、
図9(B)のフローチャートを用いて、S902において実行されるベースメッシュのトポロジの正則分割処理について説明する。なお、
図9(B)において、上述の
図3(B)との変更点は、
図3(B)のS308を実行しないことである(即ち、
図9(B)では、頂点座標の算出は行わず、入力された頂点座標情報を利用する)。
【0046】
上述の構成により、メッシュのトポロジをエッジで管理することで、上位階層で生じるトポロジの生成ルールが簡易になり、高速に復号可能な三次元メッシュのプログレッシブ符号化を実現することができる。なお、本実施形態において説明した内容は、二次元メッシュにも同様に適用することができる。
【0047】
図10は、符号化装置のハードウェア構成を示す図である。本実施形態に係る符号化装置は、CPU1001、RAM1002、ROM1003、キーボード1004、マウス1005、表示装置1006、外部記憶装置1007、記憶媒体ドライブ1008、I/F1009を備える。
【0048】
CPU(Central Processing Unit)1001は、RAM1002又はROM1003に格納されているコンピュータプログラム又はデータを用いて、コンピュータ全体の制御を行う。また、CPU1001は、符号化装置が実行するものとして説明した上述の各処理を実行する。RAM(Random Access Memory)1002は、コンピュータ読み取り可能な記憶媒体の一例である。RAM1002は、外部記憶装置1007、記憶媒体ドライブ1008、又はネットワークI/F(インタフェース)1009からロードされたコンピュータプログラムやデータを一時的に記憶するための記憶エリアを備える。また、RAM1002は、CPU1001が各種の処理を実行するときに用いるワークエリアを備える。即ち、RAM1002は、各種のエリアを適宜提供することができる。ROM(Read Only Memory)1003は、コンピュータ読み取り可能な記憶媒体の一例であり、例えば、コンピュータの設定データ、ブートプログラム等を格納する。
【0049】
本実施形態に係る符号化装置のCPU1001は、
図2に示されるブロックの一部の機能を実現する。即ち、CPU1001は、
図2に示されるブロックの一部として、メッシュ簡略化部202、トポロジ変換部203、メッシュ細分化部204、トポロジ細分化部210、ジオメトリ取得部212、メッシュ復元部213の機能を実現する。また、CPU1001がRAM1002にロードされたプログラムを実行することで、上述の
図2に示されるブロックの一部は、CPU1001が実行するソフトウェア(コンピュータプログラム)として実装できる。この場合、このソフトウェアは、PC(Personal Computer)等のコンピュータのRAM1002にインストールされることになる。そして、このコンピュータのCPU1001がこのインストールされたソフトウェアを実行することで、このコンピュータは上述の符号化装置の機能を実現することになる。
【0050】
なお、CPU1001とは異なる専用の1又は複数のハードウェア或いはGPU(Graphics Processing Unit)を備え、CPU1001による処理の少なくとも一部を専用のハードウェア又はGPUが行うようにしてもよい。また、専用のハードウェアとしては、例えば、ASIC(特定用途向け集積回路)、FPGA(Field-Programmable Gate Array)、及びDSP(デジタルシグナルプロセッサ)等がある。その他、補足として、
図2のトポロジ格納部209及びジオメトリ格納部211は、例えば、RAM1002、外部記憶装置1007等に対応する。
【0051】
キーボード1004及びマウス1005は、コンピュータの操作者が操作するものであり、これを用いることで、各種の指示やデータをCPU1001に対して入力することができる。表示装置1006は、CRTや液晶画面等により構成されており、CPU1001による処理結果を画像や文字等で表示することができる。
【0052】
外部記憶装置1007は、コンピュータ読み取り記憶媒体の一例であり、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置1007には、例えば、OS(オペレーティングシステム)、
図3(A)及び(B)に示される各処理をCPU1001に実現させるためのコンピュータプログラムやデータ、上述の各種テーブル、データベース等が記憶される。外部記憶装置1007に記憶されるコンピュータプログラムやデータは、CPU1001による制御に従って、適宜RAM1002にロードされる。
【0053】
記憶媒体ドライブ1008は、CD-ROMやDVD-ROM等の記憶媒体に記憶されているコンピュータプログラムやデータを読み出し、その読み出したコンピュータプログラムやデータをRAM1002や外部記憶装置1007に出力する。なお、外部記憶装置1007に記憶されているものとして説明した情報の一部又は全部を上述のCD-ROMやDVD-ROM等の記憶媒体に記憶させておき、この記憶媒体ドライブ1008に読み取らせてもよい。
【0054】
ネットワークI/F1009は、外部装置から頂点インデックス等を入力したり、外部装置に符号データを出力したりするためのインタフェースであり、例えば、USB(Universal Serial Bus)である。バス1010は、プログレッシブ符号化装置内の各部を接続するバスである。
【0055】
以上のようなハードウェア構成において、コンピュータの電源がオンになると、CPU1001は、ROM1003に格納されているブートプログラムに従って、外部記憶装置1007からOSをRAM1002にロードする。この結果、キーボード1004及びマウス1005を介した入力操作が可能となり、また、表示装置1006にGUI(Graphical User Interface)を表示することが可能となる。さらに、ユーザが、マウス1005等を操作し、外部記憶装置1007に格納されたテクスチャマッピングアプリケーションの起動を指示すると、CPU1001は、このテクスチャマッピングアプリケーションをRAM1002にロードし、各種処理を実行する。これにより、上述のコンピュータが符号化装置として機能することになる。
【0056】
なお、CPU1001により実行される、プログレッシブ符号化のアプリケーションプログラムは、メッシュ簡略化部202、メッシュ細分化部204、トポロジ細分化部210、メッシュ復元部213に相当する関数を備えることになる。また、ここでの処理結果は、外部記憶装置1007に保存される。以上のように、上述のコンピュータは、本実施形態に係る符号化装置に適用することができる。
【0057】
(実施形態2)
上述の実施形態1では、高速に復号する上でエッジデータをデータ構造内に埋め込む例について説明した。但し、実施形態1では、メッシュを高速に復号できる反面、エッジ数は頂点数に対して約3倍程度であり、要素数が多くなることから、結果、データ量が大きくなる傾向がある。
【0058】
そこで、本実施形態では、データ量を低減することを目的として、出力するデータのデータ構造内にエッジデータを埋め込まずに、プログレッシブ符号化を実現する方法について説明する。なお、本実施形態に係る符号化装置に関して、上述の
図2に示される符号化装置と同様に、後述する各ブロックの機能を、各ブロックの機能を有する関数群から成るプログラムにより実現してもよい。また、上述の実施形態1では、メッシュの構成単位として、三角形のメッシュを例に説明したが、本実施形態では四角形のメッシュを例に説明する。
【0059】
図12は、プログレッシブ符号化装置の機能構成を示す図である。なお、
図12において、
図12(A)は符号化部、
図12(B)は復号部を示している。符号化部は、
図12(A)に示されるように、メッシュ入力部1201、メッシュ簡略化部1202、トポロジ変換部1203、メッシュ細分化部1204、メッシュ出力部1207を備える。さらに、メッシュ細分化部1204は、トポロジ細分化部1205、ジオメトリ算出部1206を有する。また、復号部は、
図12(B)に示されるように、以下を備える。即ち、メッシュ入力部1208、トポロジ格納部1209、トポロジ変換部1210、トポロジ細分化部1211、ジオメトリ格納部1212、ジオメトリ取得部1213、メッシュ復元部1214、メッシュ出力部1215を備える。
【0060】
以下、主に、実施形態1と共通する内容については、その説明を省略し、実施形態1と異なる部分に着目して説明する。符号化部のメッシュ簡略化部1202は、実施形態1と同様に、入力されたメッシュデータのメッシュを簡略化し、それにより得られた既存のデータ記述形式のベースメッシュのトポロジをメッシュ出力部1207に出力する。メッシュ出力部1207は、プログレッシブ表現されたメッシュのトポロジではなく、一般的なデータ記述形式のベースメッシュのトポロジを出力する。
【0061】
復号部のメッシュ入力部1208は、符号化部のメッシュ出力部1207から既存のデータ記述形式のベースメッシュを受信する。メッシュ入力部1208は、その受信したベースメッシュのトポロジをトポロジ格納部1209に格納し、そのベースメッシュのジオメトリをジオメトリ格納部1212に格納する。
【0062】
トポロジ変換部1210は、そのベースメッシュのトポロジをプログレッシブ表現に変換する。
なお、ここで、トポロジ変換部1210における入出力は、トポロジ変換部1203における入出力と一致するものとする。即ち、このように、復号部において、ベースメッシュをプログレッシブ表現に変換する。その後、トポロジ細分化部1211は、トポロジ変換部1210においてプログレッシブ表現に変換されたベースメッシュのトポロジを細分化し、設定された階層のメッシュのトポロジを生成する。
【0063】
また、本実施形態では、上述のように、四角形のメッシュをメッシュの構成単位として取り扱うため、メッシュ細分化(分割)の行程は、基本的に
図5と同様であるが、
図11に示されるようにトポロジが
図5と異なる。具体的には、三角形のメッシュに対して四角形のメッシュは、エッジの分割において、
図13(D)のエッジが
図13(E)のように分割され、実施形態1と同様であるが、
図13(F)に示されるように、四角形の内部に新たな頂点が生成される点で異なる。
【0064】
以上、本実施形態では、既存のデータ記述形式のベースメッシュのトポロジを出力して、プログレッシブ符号化を実現する構成について説明した。本実施形態に係る符号化装置は、この構成により、実施形態1に係る符号化装置と比較して、トポロジに要するデータ量を低減することができる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0065】
203 トポロジ変換部
204 メッシュ細分化部
207 メッシュ出力部