特許第5981566号(P5981566)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ トムソン ライセンシングの特許一覧

特許59815663Dモデルを表現するビットストリームを処理するための方法及び装置
<>
  • 特許5981566-3Dモデルを表現するビットストリームを処理するための方法及び装置 図000007
  • 特許5981566-3Dモデルを表現するビットストリームを処理するための方法及び装置 図000008
  • 特許5981566-3Dモデルを表現するビットストリームを処理するための方法及び装置 図000009
  • 特許5981566-3Dモデルを表現するビットストリームを処理するための方法及び装置 図000010
  • 特許5981566-3Dモデルを表現するビットストリームを処理するための方法及び装置 図000011
  • 特許5981566-3Dモデルを表現するビットストリームを処理するための方法及び装置 図000012
  • 特許5981566-3Dモデルを表現するビットストリームを処理するための方法及び装置 図000013
  • 特許5981566-3Dモデルを表現するビットストリームを処理するための方法及び装置 図000014
  • 特許5981566-3Dモデルを表現するビットストリームを処理するための方法及び装置 図000015
  • 特許5981566-3Dモデルを表現するビットストリームを処理するための方法及び装置 図000016
  • 特許5981566-3Dモデルを表現するビットストリームを処理するための方法及び装置 図000017
  • 特許5981566-3Dモデルを表現するビットストリームを処理するための方法及び装置 図000018
  • 特許5981566-3Dモデルを表現するビットストリームを処理するための方法及び装置 図000019
  • 特許5981566-3Dモデルを表現するビットストリームを処理するための方法及び装置 図000020
  • 特許5981566-3Dモデルを表現するビットストリームを処理するための方法及び装置 図000021
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5981566
(24)【登録日】2016年8月5日
(45)【発行日】2016年8月31日
(54)【発明の名称】3Dモデルを表現するビットストリームを処理するための方法及び装置
(51)【国際特許分類】
   G06T 17/00 20060101AFI20160818BHJP
【FI】
   G06T17/00 500
【請求項の数】18
【全頁数】18
(21)【出願番号】特願2014-555914(P2014-555914)
(86)(22)【出願日】2012年2月9日
(65)【公表番号】特表2015-513719(P2015-513719A)
(43)【公表日】2015年5月14日
(86)【国際出願番号】CN2012070982
(87)【国際公開番号】WO2013117001
(87)【国際公開日】20130815
【審査請求日】2015年2月6日
(73)【特許権者】
【識別番号】501263810
【氏名又は名称】トムソン ライセンシング
【氏名又は名称原語表記】Thomson Licensing
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】ティアン,チャン
(72)【発明者】
【氏名】チャン,ウェンフェイ
(72)【発明者】
【氏名】カイ,カンイン
【審査官】 千葉 久博
(56)【参考文献】
【文献】 特開2009−151754(JP,A)
【文献】 特表2008−538435(JP,A)
【文献】 国際公開第2011/044713(WO,A1)
【文献】 国際公開第2010/149492(WO,A1)
【文献】 国際公開第03/016031(WO,A1)
【文献】 若月大輔, 外4名,”VRオブジェクトの局部的な形状詳細度制御のためのマルチスケールパッチ生成法”,電子情報通信学会論文誌,日本,社団法人電子情報通信学会,2003年 5月 1日,第J86−D−II巻, 第5号,p.697-705
(58)【調査した分野】(Int.Cl.,DB名)
G06T 17/00,17/10−17/30
G06T 1/00,19/00−19/20
H04N 1/41−1/419
H04N 7/12,19/00−19/98
G09G 5/00−5/42
(57)【特許請求の範囲】
【請求項1】
3Dモデルを表現するビットストリームをエンコード又はデコードするための方法であって、
前記3Dモデルを表現するオクトツリーに属するセルの複数のサブセルの各々について表面平滑度を決定するステップと、
前記サブセルの前記表面平滑度に応じて、前記セルの前記サブセルがエンプティであるか否かを示す複数のビットが並ぶビット列をエンコード又はデコードする処理順序を決定するステップと
前記処理を実行するステップと、
を有する方法。
【請求項2】
前記表面平滑度を決定するステップが、前記セルのうちの特定のサブセルについて、
前記特定のサブセルと前記セルの隣接セルとに応じて、複数の三角形を形成するステップであって、前記三角形の各々は、前記特定のサブセルを代表する1つの点と前記隣接セルの2つのセルを代表する2つの点とにより規定される、形成するステップと、
前記三角形各々の面積を決定するステップと、
前記複数の三角形の前記面積に応じて、前記特定のサブセルの前記表面平滑度を決定するステップ
含む、請求項1に記載の方法。
【請求項3】
前記表面平滑度を決定するステップが、前記セルのうちの特定のサブセルについて、
前記特定のサブセルと前記セルの隣接セルとに応じて、複数の角度を形成するステップであって、前記角度の各々は、前記特定のサブセルを代表する1つの点と前記隣接セルの2つのセルを代表する2つの点とにより規定され、前記特定のサブセルを代表する点は、前記角度各々の頂点に対応する、形成するステップと、
前記角度各々の角度測定値を決定するステップと、
前記複数の角度の角度測定値に応じて、前記特定のサブセルの前記表面平滑度を決定するステップ
含む、請求項1に記載の方法。
【請求項4】
複数のセルを前記隣接セルとして決定するステップと、
前記隣接セルの並ぶ順序を決定するステップであって、前記隣接セルのうちの2つのセルが、前記並ぶ順序において互いに隣接している、決定するステップと、
前記隣接セルのうちの前記2つのセルを接続するステップと
を有する請求項2又は3に記載の方法。
【請求項5】
前記並ぶ順序を決定するステップが、
前記セル及び前記隣接セルに応じて、投影方向を決定するステップと、
前記セル及び前記隣接セルを2D平面に投影するステップと、
前記2D平面の中で前記セルを中心として前記隣接セルを時計回り又は反時計回りに並べるステップと
を有する請求項4に記載の方法。
【請求項6】
前記投影方向を決定するステップが、
複数のベクトルを形成するステップであって、前記複数のベクトルの各々は前記セルと前記隣接セルのうちの1つのセルとにより決定される、形成するステップと、
3つの座標軸の各々について内積の絶対値の組を決定するステップであって、前記内積の絶対値の組に属する内積の絶対値の各々は、関連する座標軸と前記複数のベクトルのうちの関連するものとの間で形成される、決定するステップと、
前記内積の絶対値の組のうち最小の内積の絶対値を決定するステップと、
内積の絶対値の3組に対する3つの最小の内積の絶対値のうち最大のものに対応する座標軸を、前記投影方向として決定するステップと
を有する請求項5に記載の方法。
【請求項7】
前記サブセルの各々に対するビットを決定するステップであって、前記ビットは対応するサブセルがエンプティであるか否かを示す、決定するステップと、
前記処理順序に応じて、前記サブセルについて決定されたビットを利用して、ビット列を形成するステップと、
前記ビット列を前記ビットストリームにエントロピー符号化するステップと
を有する請求項1に記載の方法。
【請求項8】
前記ビットストリームからビット列をデコードするステップと、
前記処理順序に応じて、対応するサブセルについてのビットを決定するステップであって、該ビットは前記対応するサブセルがエンプティであるか否かを示す、決定するステップと
を有する請求項1に記載の方法。
【請求項9】
3Dモデルを表現するビットストリームをエンコード又はデコードするための装置であって、
前記3Dモデルを表現するオクトツリーに属するセルの複数のサブセルの各々について表面平滑度を決定する手段と、
前記サブセルの前記表面平滑度に応じて、前記セルの前記サブセルがエンプティであるか否かを示す複数のビットが並ぶビット列をエンコード又はデコードする処理順序を決定し、前記処理を実行する手段と
を有する装置。
【請求項10】
前記表面平滑度を決定する手段が、前記セルのうちの特定のサブセルについて、
前記特定のサブセルと前記セルの隣接セルとに応じて、複数の三角形を形成する手段であって、前記三角形の各々は、前記特定のサブセルを代表する1つの点と前記隣接セルの2つのセルを代表する2つの点とにより規定される、形成する手段と、
前記三角形各々の面積を決定する手段と、
前記複数の三角形の前記面積に応じて、前記特定のサブセルの前記表面平滑度を決定する手段
含む、請求項9に記載の装置。
【請求項11】
前記表面平滑度を決定する手段が、前記セルのうちの特定のサブセルについて、
前記特定のサブセルと前記セルの隣接セルとに応じて、複数の角度を形成する手段であって、前記角度の各々は、前記特定のサブセルを代表する1つの点と前記隣接セルの2つのセルを代表する2つの点とにより規定され、前記特定のサブセルを代表する前記1つの点は、前記角度各々の頂点に対応する、形成する手段と、
前記角度各々の角度測定値を求める手段と、
前記複数の角度の角度測定値に応じて、前記特定のサブセルの前記表面平滑度を決定する手段
含む、請求項9に記載の装置。
【請求項12】
複数のセルを前記隣接セルとして決定する手段と、
前記隣接セルの並ぶ順序を決定する手段であって、前記隣接セルのうちの2つのセルが、前記並ぶ順序において互いに隣接している、決定する手段と、
前記隣接セルのうちの前記2つのセルを接続する手段と
を有する請求項10又は11に記載の装置。
【請求項13】
前記並ぶ順序を決定する手段が、
前記セル及び前記隣接セルに応じて、投影方向を決定する手段と、
前記セル及び前記隣接セルを2D平面に投影する手段と、
前記2D平面の中で前記セルを中心として前記隣接セルを時計回り又は反時計回りに並べる手段と
を有する請求項12に記載の装置。
【請求項14】
前記投影方向を決定する手段が、
複数のベクトルを形成する手段であって、前記複数のベクトルの各々は前記セルと前記隣接セルのうちの1つのセルとにより決定される、形成する手段と、
3つの座標軸の各々について内積の絶対値の組を決定する手段であって、前記内積の絶対値の組に属する内積の絶対値の各々は、関連する座標軸と前記複数のベクトルのうちの関連するものとの間で形成される、決定する手段と、
前記内積の絶対値の組のうち最小の内積の絶対値を決定する手段と、
内積の絶対値の3組に対する3つの最小の内積の絶対値のうち最大のものに対応する座標軸を、前記投影方向として決定する手段と
を有する請求項13に記載の装置。
【請求項15】
前記サブセルの各々に対するビットを決定する手段であって、前記ビットは対応するサブセルがエンプティであるか否かを示す、決定する手段と、
前記処理順序に応じて、前記サブセルについて決定されたビットを利用して、ビット列を形成する手段と、
前記ビット列を前記ビットストリームにエントロピー符号化する手段と
を有する請求項9に記載の装置。
【請求項16】
前記ビットストリームからビット列をデコードする手段と、
前記処理順序に応じて、対応するサブセルについてのビットを決定する手段であって、該ビットは前記対応するサブセルがエンプティであるか否かを示す、決定する手段と
を有する請求項9に記載の装置。
【請求項17】
請求項1〜8のうち何れか1項に記載の方法を装置に実行させるコンピュータプログラム。
【請求項18】
請求項17に記載のコンピュータプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は3Dモデルを表現するビットストリームを生成するための方法及び装置、並びにそのデコードを行うための方法及び装置等に関連する。
【背景技術】
【0002】
ビデオゲーム、仮想現実(バーチャルリアリティ)、及び科学的可視化(サイエンティフィックビジュアライゼーション)のようなマルチメディアアプリケーション等において、3Dグラフィックデータは広く使用されている。ディジタル収集技術の急速な進歩により、非常に多数の3Dモデルがますます一般的になりつつある。
【0003】
3Dモデルに関する従来のメッシュ表現は、幾何学(位置、形状)及びトポロジ(接続関係、位置関係)の双方を指定する必要がある。これに対して、ポイントベースの3Dモデル表現の場合、処理及びレンダリングは接続の制約なしに実行され、複雑なトポロジの対象物をより一層簡易に表現できる。従って、ポイントベースの3Dモデル表現は、非常に多数の点を伴う3Dモデルに対する理想的な選択肢となり得る。そのように多数のデータを伴う場合、3Dモデルの効率的な圧縮化が非常に重要になる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
一側面の実施の形態の課題は、3Dモデルの効率的な圧縮化のための方法及び装置等を提供することである。
【課題を解決するための手段】
【0005】
一側面の実施の形態による方法は、
3Dモデルを表現するビットストリームを生成又はデコードするための方法であって、
前記3Dモデルを表現するオクトツリーに属するセルの複数のサブセルの各々について表面平滑度を決定するステップと、
前記サブセルの前記表面平滑度に応じて、前記セルの前記サブセルの処理順序を決定するステップと
を有する方法である。
【図面の簡単な説明】
【0006】
図1A】ポイントベース3Dモデルで描いた絵を例示する図(図1B図1Aの場合よりも細かい詳細度で再構築されている)。
図1B】ポイントベース3Dモデルで描いた絵を例示する図(図1B図1Aの場合よりも細かい詳細度で再構築されている)。
図2A】チャイルドセルの処理順序を決定する様子を示す図。
図2B】ビットリオーダリングの前後における占有コードのヒストグラムを示す図。
図3】3Dモデルをエンコードするための本原理の一実施形態によるフローチャート。
図4】接続関係を決定するために隣接セルを特定して順序付ける本原理の一実施形態によるフローチャートを示す図。
図5】本原理の一実施形態において現在のセルn0及びその隣接セルn1,n2,n3,n4に対する投影方向を決定するために使用される座標軸及びベクトルを示す図。
図6】本原理の一実施形態におけるセルn0のサブセルp1,p2,p3,p4及びセルn0に対する1リング隣接セルを示す図。
図7】セルに属するサブセルの表面平滑度を計算するための本原理の一実施形態による一例を示すフローチャート。
図8】3Dモデルを描くための本原理の一実施形態による一例を示すフローチャート。
図9】オクトツリーの次のレベルにおける非エンプティセルの数をどのようにして算出するかを示す本原理の一実施形態による例を示す図。
図10】本原理の一実施形態によるエンコーダの一例を示す図。
図11】本原理の一実施形態によるデコーダの一例を示す図。
図12】本原理の1つ以上の実施形態において使用可能なデータ処理システムの一例を示す図。
図13】本原理の1つ以上の実施形態において使用可能なデータ処理システムの別の例を示す図。
【発明を実施するための形態】
【0007】
<実施の形態の概要>
本原理による方法は、後述するように、
3Dモデルを表現するビットストリームを生成又はデコードするための方法であって、
前記3Dモデルを表現するオクトツリーに属するセルの複数のサブセルの各々について表面平滑度を決定するステップと、
前記サブセルの前記表面平滑度に応じて、前記セルの前記サブセルの処理順序を決定するステップと
を有する方法である。本原理はこれらのステップを実行する装置も提供する。
【0008】
本原理による方法は、後述するように、
3Dモデルを表現するビットストリームを生成又はデコードするための方法であって、
前記3Dモデルを表現するオクトツリーに属するセルの複数のサブセルの各々について表面平滑度を決定するステップと、
前記サブセルの前記表面平滑度に応じて、前記セルの前記サブセルの処理順序を決定するステップと
を有し、前記表面平滑度を決定するステップが、前記セルのうちの特定のサブセルについて、
前記特定のサブセルと前記セルの隣接セルとに応じて、複数の三角形を形成する処理であって、前記三角形の各々は、前記特定のサブセルを代表する1つの点と前記隣接するセルの2つのセルを代表する2つの点とにより規定される、処理と、
前記三角形各々の面積を決定する処理と、
前記複数の三角形の前記面積に応じて、前記特定のサブセルの前記表面平滑度を決定する処理と
を行う、方法である。本原理はこれらのステップを実行する装置も提供する。
【0009】
本原理は、上記の方法によりビットストリームを生成又はデコードするため命令を記憶した記憶媒体も提供し、記憶媒体はコンピュータにより読み取ることが可能である。
【0010】
本原理は、上記の方法により生成されたビットストリームを記憶した記憶媒体も提供し、記憶媒体はコンピュータにより読み取ることが可能である。
【0011】
<実施の形態の詳細な説明>
3Dモデル圧縮は、対象空間のオクトツリー分割(octree-based partitioning)に基づいて実行されてもよい。オクトツリー方式の場合、先ず、3Dモデルの全ての点の周辺に境界ボックス(bounding box)が形成される。全ての3D点の境界ボックスは、開始時点における単独セル又はシングルセル等と言及される。(1)非エンプティセル(non-empty cell)の各々が、1つの頂点しか含まない程度に充分小さくなるまで、或いは(2)非エンプティセルの各々が、或る頂点の位置で充分正確に再構築できる程度に充分小さくなるまで、セルは8つのチャイルドセルに再帰的に分割される(「セル」は「親セル」又は「ペアレントセル」に対応し、「チャイルドセル」は「子セル」に対応する。「チャイルドセル」は「サブセル」と言及される)。エンプティセルは頂点を含んでいないセルであり、非エンプティセルは頂点を含んでいるセルであってもよい。非エンプティチャイルドセルのみが更に細分割される。
【0012】
オクトツリー方式において、各セルの位置は、セルの幾何学的中心により表現される。オクトツリー構造の各レベルにおける非エンプティセルは、オリジナルの(元々の)3Dモデルの詳細度(level of detail:LOD)を示す。3Dモデルは様々なLODで再構築可能であるので、オクトツリー表現は3Dモデルの階層的な圧縮(progressive compression)を達成できる。例えば図1A及び図1Bは異なるLODで再構築されたポイントベース3Dモデルを示し、図1B図1Aの場合よりも多くの点を含む。
【0013】
オクトツリー表現では、チャイルドセルが非エンプティであるか否かを示すために1ビットフラグが使用され、例えば「1」は非エンプティを示し、「0」はエンプティを示す。オクトツリーセル再分割の各々に関し、チャイルドセルが或る処理順序で処理される場合、占有コード(occupancy code)として示される8ビット列が取得可能である。例えば、図9に例示されるオクトツリーの第1レベルでの占有コードは「11111111」(910)である。1ビットフラグが「1」である場合、対応するチャイルドセルは8つのチャイルドセルに更に分割可能であり、再分割されたものは別の占有コード(図9の例における第2レベルの「11000000」(920)等)で表現可能である。占有コードは処理順序に依存することに留意を要する。
【0014】
占有コードのエントロピーを減らして圧縮効率を改善するために、占有コード各々のビットが並べ替えられてもよい。並べ替えは、再生列、再順序付け、リオーダリング等と言及されてもよい。発明者等にとっての従来方法では、推定される相対確率に基づいてチャイルドセル処理順序を決定し、後方に向かって「1」ビットずつ進み、図2Aに示されているように、C0,C1,C2,C3はチャイルドセルであり、C2,C3は非エンプティセルである。親を代表するoにおける法線nにより大凡の接平面pが決定され、nbiはpまでの距離がdiである隣接セルである(i=1,2,3)。チャイルドセルの最終的な処理順序は矢印で示されている。並べ替えの前後における占有コードのヒストグラムが図2A図2Bに示されている。図2Bに示されているように、並べ替えの後、数個の値(占有コード)において高いピークが登場しており、エントロピーを低減する余地がある。
【0015】
本原理は、オクトツリーデータ構造により表現される3Dモデルを効率的に圧縮するための方法及び装置を提供する。3Dモデルの表面は、通常、非常に滑らかであることに発明者等は着目している。例えば、2つの隣接する頂点に関する法線同士のなす角度は、通常、小さい。取得した幾何学的特性に基づいて、本原理は、表面の滑らかさの評価値(表面平滑度)を求め、占有コードに属するビットを、各自の表面平滑度に基づいて並べ替える。
【0016】
図3は3Dモデルをエンコードするための方法例300を示す。方法300はステップ305から始まる。ステップ310において、3Dモデルが入力され、初期化が実行される。例えば、初期化ステップは、3Dオブジェクトを8つのサブセルに分解し、一定の処理順序を設定してもよい。第1レベルをデコードするために、同じ一定の処理順序が使用されることになる。
【0017】
方法300はレベル毎に処理を進める。ステップ320において、3Dオブジェクトは更に分割され、オクトツリーの新たなレベルを形成する。現在セルの非エンプティセル各々について、占有コードが生成される必要がある。
【0018】
ループ(1)はステップ325から始まり、現在レベルの非エンプティセル各々についてループする。ステップ330において、現在レベルの特定の非エンプティセルに関し、接続関係を推定するために、隣接セルが特定されて順序付けられる。接続情報が利用可能である場合、例えば3Dメッシュモデルが提供されている場合、このステップは省略することが可能である。特定のセルに関し、ステップ335においてループ(2)が始まり、全てのサブセルについてループする。ステップ340において、特定のセルに属する各々のサブセルについて、表面平滑度が算出可能である。ループ(2)はステップ350で終了する。ステップ360において、処理順序が、例えばサブセルの表面平滑度の昇順又は降順のような所定の順序であるように決定されてもよい。
【0019】
ステップ365において、処理順序に基づいて、現在のセルに関する占有コードが生成される。ループ(1)はステップ370で終了する。ステップ380において、3Dオブジェクトが更に分割されなければならないか否かが検査される。分割される必要がある場合、フローはステップ320に戻る。そうでなかった場合(分割される必要がなかった場合)、ステップ390において、3Dモデルについて生成された占有コードが、例えばエントロピーエンコーダを利用してエンコードされる。方法300はステップ399で終了する。
【0020】
オクトツリーの下位レベル(例えば、レベル0〜6)では、少ない点しか利用できないので、3D表現は粗い。そこで、下位レベルの各々が処理された後に(ステップ370)、平滑化のステップが実行されてもよい。平滑化については発明者等にとって従来の方法が使用されてもよく、例えば、そのような平滑化は、全ての点が、各自を或る平面に投影したものにより決定される平滑化バージョンで置換されている。
【0021】
現在レベルの全ての非エンプティセルが処理されるループ(1)において、現在レベルのセルは、オクトツリーの幅優先順(breath-first traversal)に処理されてもよい。圧縮のパフォーマンスを更に改善するため、最も大きなエラーを招くセルが早期に処理されてもよい。これは、デコードの際に信号対雑音比(SNR)を速やかに増加させるだけでなく、全体的な圧縮効率も改善することになる。発明者等にとって従来の方法では、何れのセルが最大のエラーをもたらすかを推定する際に、現在セルにつながっている隣接セルの個数が使用される。特に、隣接セルの個数が多いセルほど早期に処理される。1つのレベルでセルを処理する際に、エンコーダ及びデコーダで同じ順序が使用されるべきことに留意を要する。
【0022】
以下、隣接セルを特定して順序付けるステップ(330)及び表面平滑度を算出するステップ(340)を更に説明する。
【0023】
隣接セルを特定して順序付けるステップについて
3Dメッシュモデルの場合、エッジは2つの頂点の間の隣接関係を示す。エッジは辺、端、縁等と言及されてよい。ポイントベース3Dモデルの場合、「エッジ」の情報は無いので、「隣接」関係は幾何学的特徴に基づいて推定される必要がある。図4は、現在セルの接続関係を推定するために隣接セルを特定して順序付ける方法例400を示す。方法400は方法300のステップ330を実行する際に使用可能である。
【0024】
オクトツリーの各レベルにおいて、k-dツリーが、現在レベルの全ての点について形成される。ステップ410において、セルn0に関し、K個の隣接セルが特定される。例えば、n0に最も近いセルや、n0までの距離が閾値未満であるセルが、隣接セルとして特定されてもよい。Kの値は用途に応じて異なってよい。一実施形態では、K=4又は5である。
【0025】
接続情報を特定するため、K個の隣接セルが2D平面(二次元平面)に投影される。ステップ420において、投影方向(projection direction)dirが選択され、ステップ430において、セルn0及びK個の隣接セルが投影方向dirに従って2D平面に投影される。
【0026】
図5に示されているように、投影方向を選択するため、ベクトル「vX」、「vY」、「vZ」のように座標軸(X軸、Y軸、Z軸)が設定され、セルn0及び隣接セルni(i=1,...,K)を結ぶラインが「v0i」のように設定されている。先ず、座標軸(座標軸方向の単位ベクトル)と「v0i」との間のドット積の絶対値が算出される。ドット積は、点乗積、内積、スカラー積等と言及されてもよい。各々の軸に関し、ドット積の最大値が検出され、X軸についてはVX、Y軸についてはVY、Z軸についてはVZのように示される。数学的には次式のような計算を行うことが可能である:
【数1】
VX、VY、VZの最小値に対応する軸が、投影方向dirとして選択される。そのような投影方向は、点が投影面において分散されていることを保証し、数値演算のロバスト性(安定性)を保証する。投影方向はセルについてローカルに決定されるので、投影方向はセル毎に異なってよいことに留意を要する。
【0027】
投影方向を決定した後に、現在セルn0及びその隣接セルni(i=1,...,K)が2D平面に投影される。ステップ440において、投影される隣接セルは、セルn0を中心として時計回り又は反時計回りの順に並べられる。次に、ステップ450において、現在セルn0についての1リング隣接関係が設定され、ステップ460において接続関係が特定される。
【0028】
少なくとも隣接セルの特定及び順序付けは本原理による特徴である。パフォーマンスを改善するため、あるレベルで進行するセルの再分割により、隣接セルは更に緻密な表現により更新可能である。一実施形態において、同じレベルの隣接セルが再分割される場合、新たに生成されるチャイルドセルは、隣接関係を更新するために使用可能である。別の実施形態において、隣接セルが未だ再分割されていない場合、何れのサブセルが非エンプティであるかを推定するために発明者等にとって従来の方法が使用されてもよく、推定された非エンプティのサブセルが隣接関係を更新するために使用可能である。
【0029】
図6は接続関係を推定する例を示す。この例の場合、隣接セルは時計回りの順にn1,n2,n3,n4,n5のように並んでいる。同様に、以下のセルのペア(対、組)の間の接続関係を示すためにエッジが付加される:n1n2、n2n3、n3n4、n4n5、n1n0、n2n0、n3n0、n4n0、n5n0。すなわち、現在セルは、特定された隣接セルの各々に接続され、並べられた順序の中で互いに隣り合う2つの隣接セルも接続される。従って、隣接セルの順序付け及びエッジの付加の処理の後に、現在セルn0の1リング隣接関係が形成され、接続関係が特定される。すなわち、現在セル及びその隣接セルについてローカルメッシュが生成される。
【0030】
3Dメッシュモデルを入力する場合には既に存在している接続情報とは異なり、例えば上記の方法を利用して、入力された3Dポイントベースモデルから接続関係を推定する必要がある。ポイントベースモデルに関してそのように推定された接続情報は、入力された3Dモデルには存在していないので、「仮想」接続関係と言及されてもよい。
【0031】
表面平滑度を算出するステップについて
本原理において、接続情報は表面平滑度を生成するために使用され、表面平滑度はセルに属するサブセルの処理順序を決定するために使用可能である。
【0032】
一実施形態において、表面平滑度は、サブセル及び隣接セルにより決定される三角形の面積の総和又は合計として定義されてもよい。現在セルのサブセルがpjとして示され(j=1,...,8)、サブセルpjの表面平滑度は次のように決定されてもよい:
【数2】
ここで、S(△pjnxny)(x,y=1,...,K)は三角形△pjnxnyの面積を表す。すなわち、三角形△pjnxnyはサブセルpjと2つの隣接セルとを用いて形成され、2つの隣接セルは接続されている又は「仮想的に」接続されている(すなわち、並べられた順序の中で互いに隣接している)。
【0033】
別の実施形態では、表面平滑度は、サブセルと隣接セルとにより決定される角度の総和又は合計として定義されてもよい。サブセルpjに関し(j=1,...,8)、表面平滑度は次のように決定されてもよい:
【数3】
ここで、アングル∠nxpjnyはサブセルpj及び2つの接続されたセルを用いて形成され、アングル測定値(角度)θ(∠nxpjny)(ラジアン)は表面平滑度を計算するのに使用される。
【0034】
図6に示す例を3Dポイントの2D表現として使用する場合、三角形の面積を用いた表面平滑度は次のようにして算出できる:
measurearea,j=S(△pjn1n2)+S(△pjn2n3)+S(△pjn3n4)+S(△pjn4n5)+S(△pjn5n1), j=1,...,4
また、角度を用いた表面平滑度は次のようにして算出できる:
measureangle,j=2π-[θ(∠n1pjn2)+θ(∠n2pjn3)+θ(∠n3pjn4)+θ(∠n4pjn5)+θ(∠n5pjn1)]
measurearea,j及びmeasureangle,jは何れも3Dオブジェクトの表面の局所的な滑らかさ(局所的な平滑度)を示し、ステップ340で使用されてもよい。measurearea,j又はmeasureangle,jが小さくなるほど、表面は平坦で滑らかになる。3Dオブジェクトの表面は通常は滑らかであるという知識に基づくと、measurearea,j又はmeasureangle,jが小さいほど、対応するサブセルが非エンプティである可能性は高くなる。
【0035】
図7は、表面平滑度を計算するステップ340で使用されてもよい別の方法例700を示す。方法700では、表面平滑度はmeasurearea,j及びmeasureangle,jの間で適応的に選択される。一般に、表面平滑度が大きいほど、数値計算パフォーマンスのロバスト性が強い。ステップ710において、三角形及び角度を形成するためにサブセルが隣接セルに接続される。サブセルの各々についてmeasurearea,j及びmeasureangle,jが計算される。ステップ730において、Σm=1,...,8measurearea,m<α×(Σm=1,...,8(2π-measureangle,m))であるか否かが検査され、αはスケーリング因子である。一例として、α=10である。ステップ730において数式の条件が満たされる場合、measurearea,jがステップ740で選択される。そうでなかった場合、measureangle,jがステップ750で選択される。
【0036】
数学的には、この選択は次のように表現できる:
【数4】
計算を簡略化するため、何れか1つのサブセルについての評価値のみを算出してもよい。その場合、上記数式(4)は次のように書ける:
【数5】
発明者等の研究によれば、measureangle,jよりもmeasurearea,jの方が、より多く選択されやすいことが分かっている。
【0037】
セルに属する個々のサブセルについて表面平滑度が計算された後に、8つのチャイルドセルの処理順序(traversal order)が決定されてもよい。一実施形態において、処理順序は表面平滑度の昇順であるように決定されてもよい。上述したように、表面平滑度が小さい場合、対応するサブセルは非エンプティである傾向が強い。従って、サブセルを昇順に並べることは、非エンプティセルを初めの方に持ってくる傾向がある。従って、生成される占有コードにおいて値が「1」であるビットが初めの方に生じやすくなる。別の例において、処理順序は表面平滑度の降順であるように決定されてもよく、この場合、生成される占有コードにおいて値が「1」であるビットが後の方に生じやすくなる。
【0038】
より一般的な例において、処理順序は、表面平滑度に関する所定の順序として決定され、同じ所定の順序がエンコーダ及びデコーダにおいて既知であるべきである。対応するサブセルの幾何学的特徴に基づいて占有コードのビットを設定することにより、本原理は、大幅なエントロピーの削減効果をもたらし、より高い圧縮効率をもたらす。
【0039】
図8は、3Dモデルを表現するビットストリームをデコードする方法例300を示し、ビットストリームは例えば方法300を利用して生成されている。方法800はステップ805から始まり、ステップ810において初期化を実行する。例えば、初期化の処理は、第1レベルに関する1つの占有コードを読み取り、エンコーダにより決定される一定の順序であるように第1レベルの処理順序を設定し、大本の(ルートの)占有コードにおける「1」の値のビットの数にNを設定することを含む。ステップ820において、ビットストリームがデコードされ、新たなレベルについてN個の占有コードを取得し、Nの値がゼロにリセットされる。
【0040】
各々のセルに関し、サブセルは非エンプティであるか否かが、処理順序及び占有コードから決定できるように、サブセルの処理順序は決定される必要がある。
【0041】
処理順序を決定する際に、ループ(1)はステップ825から始まり、現在のレベルに属する非エンプティセル各々に対してループが実行される。現在レベルの特定の非エンプティセルに関し、ステップ830において、接続関係を推定するために隣接セルが特定され順序付けられる。エンコード方法300と同様に、接続情報が利用可能である場合、ステップ830は省略可能である。特定のセルに関し、ステップ835からループ(2)が始まり、全てのサブセルについてループが実行される。特定のセルに関するサブセルの各々について、ステップ840において表面平滑度が算出される。ループ(2)はステップ850で終了する。サブセルの表面平滑度を順序付けることにより、ステップ860において処理順序が決定される。表面平滑度がどのように順序付けられるかは、エンコードに使用されたものに合わせられるべきである。
【0042】
サブセルが非エンプティであるか否かを正確に決定するために、ビットストリームを生成するのに使用されたのと同じ方法が処理順序を決定する際にも使用されるべきことに留意を要する。すなわち、ステップ830、840、860はそれぞれステップ330、340、360に対応しているべきである。
【0043】
ステップ870において、サブセルは非エンプティであるか否かが、現在のセルの占有コード及び処理順序により決定される。占有コードに関し、「1」であるビットの数がNの値を増やす際に使用される。ループ(1)はステップ880において終了する。ステップ890において、別の占有コードがデコードされる必要があるか否かを検査する。デコードが必要とされている場合、処理はステップ820に戻る。そうでなかった場合、処理はステップ899において終了する。
【0044】
図9はNを更新する様子を説明するための一例を示す。第1レベル(レベル0)において、占有コードは「11111111」であり、Nは8に設定される。一般に、多数の点を有する実際の3Dモデルの場合、初期セル910の全てのサブセルが非エンプティであり、従って占有コードは「11111111」である。次のレベル(レベル1)において、占有コードの各々が処理され、Nが更新される。この例の場合、レベル1における最初のセル920は「11000000」であり、「1」の値のビットを2つ有し(すなわち、非エンプティチャイルドセルが2つある)、Nは2つ増やされる。レベル1における全てのセルが処理されると、Nは13になる。従って、13個の占有コードが次のレベル(レベル2)でデコード可能であり、13個の占有コードの各々がレベル1の非エンプティサブセルに対応する。
【0045】
図10は、上記の方法300によりビットストリームを生成するために使用可能なエンコーダ1000の一例を示す。エンコーダ1000の入力は、例えばポイントベース3Dモデル又は3Dメッシュモデルのような3Dモデルデータを含む。入力はメタデータを含んでもよく、例えば、表面平滑度を順序付けるために降順又は昇順が使用されているか否か(何れが使用されているか)、Kやαの値等がメタデータに含まれていてもよい。メタデータは、エンコーダ及びデコーダの双方に既知であってもよいし、或いはそれらはビットストリームに埋め込まれていてもよい。占有コード生成部1010は3Dモデルデータについて占有コードを生成する。占有コードはエントロピーエンコーダ1020により圧縮されてもよい。
【0046】
図11は、上記の方法800によりビットストリームをデコードするのに使用可能なデコーダ1100の一例を示す。エントロピーデコーダ1110は占有コードを非圧縮化するために使用される。非圧縮化は、圧縮解除又は解凍と言及されてもよい。占有コードを利用して、オクトツリー生成部1120は、何れのサブセルが非エンプティであるかを決定し、オクトツリーを再構築する。
【0047】
図12を参照すると、上記の特徴及び原理が使用されているデータ送信システム1200が示されている。データ送信システム1200は、例えば、衛星、ケーブル、電話回線又は地上放送等のような任意の様々な媒体を利用して信号を送信するヘッドエンドや送信システムであってよい。データ送信システム1200は信号をストレージに提供するために使用されてもよい。送信はインターネット又はその他の何らかのネットワークを介してなされてよい。データ送信システム1200は、例えば、ポイントベース3Dモデル又は3Dメッシュモデル等のようなビデオコンテンツ及びその他のコンテンツを生成及び配信することが可能である。
【0048】
データ送信システム1200は、処理されるデータ及びその他の情報をプロセッサ1201から受信する。一実施形態において、プロセッサ1201は3Dモデルを生成する。プロセッサ1201はメタデータを提供してもよく、例えばメタデータは、どの程度多くのオクトツリーが圧縮されるべきか、或いは表面平滑度又は定数値の何れが並べ替え順序に使用されるべきか等を示してもよい。
【0049】
データ送信システム又は装置1200は、エンコーダ1202及びエンコードされた信号を送信することが可能な送信部1204を含む。エンコーダ1202はプロセッサ1201からデータ情報を受信する。エンコーダ1202は、エンコードされた信号を生成する。エンコーダ1202のエントロピー符号化エンジンは例えば算術符号化又はハフマン符号化を行ってもよい。エンコーダ1202は例えば図10に示すようなエンコーダ1000であってもよ。
【0050】
エンコーダ1202はサブモジュールを含み、例えば様々な情報部分を受信し、それらを記憶又は送信用に形成されたフォーマットに構築するアセンブリユニットを含む。様々な情報部分は、例えば、符号化された又は符合されていないビデオ、符号化された又は符号化されていない情報要素を含んでよい。一実施形態において、エンコーダ1202は、プロセッサ1201を含み、プロセッサ1201による処理を実行する。
【0051】
送信部1204は、エンコードされた信号をエンコーダ1202から受信し、エンコードされた信号を1つ以上の出力信号で送信する。送信部1204は、例えば、エンコードされた画像及び/又はそれに関連する情報を表現する1つ以上のビットストリームを有するプログラム信号を送信するように形成されていてもよい。典型的な送信部は、例えば、誤り訂正符号化の処理、信号中でのデータのインタリーブの処理、信号中でのエネルギのランダム化(分散化)の処理、変調部1206を用いて信号を1つ以上のキャリアに変調する処理等の1つ以上の処理を実行する。送信部1204は、アンテナ(図示せず)を含んでもよいし、アンテナ(図示せず)に対するインタフェースを含んでもよい。更に、送信部1204の実現手段は変調部1206に限定されない。
【0052】
データ送信システム1200はストレージ部1208にも通信可能に結合されている。一実施形態において、ストレージ部1208は、エンコーダ1202に結合され、エンコーダ1202によりエンコードされたビットストリームを保存する。別の実施形態において、ストレージ部1208は、送信部1204に結合され、送信部1204からのビットストリームを保存する。送信部1204からのビットストリームは、例えば、送信部1204により更に処理された1つ以上のエンコードされたビットストリームを含んでもよい。ストレージ部1208は、様々な実施形態において、標準的なDVD、ブルーレイディスク、ハードドライブ、又はその他の何らかのストレージ装置の内の1つ以上であってもよい。
【0053】
図13を参照すると、上記の特徴及び本原理が使用されるデータ受信システム1300が示されている。データ受信システム1300は、ストレージ装置、衛星、ケーブル、電話回線、地上放送等のような様々な媒体を介して信号を受信するように形成されてもよい。信号はインターネット又はその他の何らかのネットワークを介して受信されてもよい。
【0054】
データ受信システム1300は、例えば、セルラ電話、コンピュータ、セットトップボックス、テレビジョン、その他の装置であってもよく、それらの装置は、エンコードされたビデオを受信し、例えば、表示(例えば、ユーザに対するディスプレイ)、処理、又は保存のために復号されたビデオ信号を提供する。従って、データ受信システム1300は、例えば、テレビジョンのスクリーン、コンピュータモニタ、コンピュータ(保存、処理、表示のための動作を行う)、その他の何らかのストレージ装置、処理装置又は表示装置に出力を提供する。
【0055】
データ受信システム1300は、データ情報を受信及び処理することが可能であり、データ情報は例えば3Dモデルを含んでもよい。データ受信システム又は装置1300は、例えば、本願の実施形態で説明された信号のようなエンコードされた信号を受信する受信部1302を含む。受信部1302は、例えば、1つ以上の3Dモデルを提供する信号、或いは図12のデータ送信システム1200から信号出力を受信してもよい。
【0056】
受信部1302は、例えば、エンコードされた画像又は3Dモデルを表現する複数のビットストリームを有するプログラム信号を受信するように形成されていてもよい。典型的な受信部は、例えば、変調されエンコードされたデータ信号を受信する機能、復調部1304を利用して1つ以上のキャリアからデータ信号を復調する機能、信号中でランダム化されたエネルギを元に復元する機能、信号中のデータをデインタリーブする機能、及び信号を誤り訂正復号化する機能のような1つ以上の機能を実行する。受信部1302はアンテナ(図示せず)を含んでもよいし、アンテナ(図示せず)に対するインタフェースを含んでいてもよい。受信部1302の実現手段は復調部1304に限定されない。
【0057】
データ受信システム1300はデコーダ1306を含む。受信部1302は受信信号をデコーダ1306に提供する。受信部1302によりデコーダ1306に提供される信号は、1つ以上のエンコードされたビットストリームを含んでもよい。デコーダ1306は、デコードされた信号を出力し、例えば、ビデオ情報又は3Dモデルを含むデコードされたビデオ信号等を出力する。デコーダ1306は例えば図11に示されているデコーダ1100であってもよい。
【0058】
データ受信システム又は装置1300は、ストレージ部1307にも通信可能に結合されている。一実施形態において、ストレージ部1307は、受信部1302に結合され、受信部1302はストレージ部1307内のビットストリームにアクセスする。別の実施形態において、ストレージ部1307はデコーダ1306に結合され、デコーダ1306はストレージ部1307内のビットストリームにアクセスする。ストレージ部1307内でアクセスされるビットストリームは、様々な実施形態において、1つ以上のエンコードされたビットストリームを含む。ストレージ部1307は、様々な実施形態において、標準的なDVD、ブルーレイディスク、ハードドライブ、又はその他の何らかのストレージ装置の内の1つ以上であってもよい。
【0059】
デコーダ1306からの出力データは、様々な実施形態において、プロセッサ1308に提供される。プロセッサ1308は、一実施形態では、3Dモデル再構築を実行するように形成されたプロセッサである。一実施形態において、デコーダ1306は、プロセッサ1308を含み、プロセッサ1308による処理を実行する。別の実施形態において、プロセッサ1308は例えばセットトップボックス又はテレビジョン等のようなダウンストリーム装置の一部である。
【0060】
本願で説明される実施形態は、例えば、方法又はプロセス、装置、ソフトウェアプログラム、データストリーム又は信号により実施されてもよい。単独の実施形態の観点からしか説明されていなかったとしても(例えば、方法としてしか説明されていなかったとしても)、説明された特徴の実現手段は他の形態で実施されてもよい(例えば、装置やプログラムで実施されてもよい)。装置は、例えば、適切なハードウェア、ソフトウェア及びファームウェアで実施されてもよい。方法は、例えば、一般に処理装置として言及されるプロセッサのような装置で実施されてもよく、処理装置は例えばコンピュータ、マイクロプロセッサ、集積回路、又はプログラム可能な論理装置を含んでもよい。プロセッサは、例えば、コンピュータ、セルラ電話、携帯用/パーソナルディジタルアシスタント(PDA)、及びその他の装置等のような通信装置(エンドユーザ間で情報の通信を促す任意の装置を含む)を含んでもよい。
【0061】
本原理に関する「一実施形態」、「実施形態」、「一実施例」、「実施例」及びその他の関連する用語は、その実施形態に関して説明されている特定の特徴、構造、特性等が、本原理による少なくとも1つの実施形態に含まれていることを意味する。従って、「一実施形態」、「実施形態」、「一実施例」、「実施例」及びその他の関連する用語は、本明細書中において必ずしも全てが同じ実施形態を指すとは限らない。
【0062】
更に、明細書及び/又は特許請求の範囲において、様々な情報部分を「決定する(determining)」旨の記載があるかもしれない。情報を決定することは、例えば、情報を推定すること、情報を算出すること、情報を予測すること、又は情報をメモリから抽出すること等の1つ以上を含んでよい。
【0063】
更に、明細書及び/又は特許請求の範囲において、様々な情報部分に「アクセスする」旨の記載があるかもしれない。情報にアクセスすることは、例えば、情報を受信すること、情報を抽出すること(例えば、メモリから抽出すること)、情報を保存すること、情報を処理すること、情報を送信すること、情報を移動させること、情報をコピー(又は複製)すること、情報を消去すること、情報を算出すること、情報を決定すること、情報を予想すること、又は情報を推定すること等の1つ以上を含んでよい。
【0064】
また、明細書及び/又は特許請求の範囲において、様々な情報部分を「受信する」旨の記載があるかもしれない。受信することは、「アクセスする」と同様に、広義であるように意図されている。情報を受信することは、例えば、情報にアクセスすること、情報を抽出すること(例えば、メモリから抽出すること)等の1つ以上を含んでもよい。更に、「受信する」ことは、典型的には、一方又は双方において、動作中に、例えば情報を保存すること、情報を処理すること、情報を送信すること、情報を移動させること、情報をコピー(又は複製)すること、情報を消去すること、情報を算出すること、情報を決定すること、情報を予想すること、又は情報を推定すること等の1つ以上を含んでよい。
【0065】
当業者に明らかであるように、実現手段は、例えば保存又は送信される情報を担うようにフォーマットされた様々な信号を生成してもよい。情報は、例えば、方法を実行するための命令、又は説明される実現手段の何れかにより形成されるデータを含んでもよい。例えば、信号は説明された実施形態のビットストリームを担うようにフォーマットされてもよい。そのような信号は、例えば、電磁波として形成されてもよいし(例えば、無線周波数スペクトルを用いて形成されてもよい)、或いはブロードキャスト信号又は放送信号として形成されてもよい。そのような信号形成のための処理(又はフォーマット処理)は、例えば、データストリームをエンコードする処理、エンコードされたデータストリームを搬送波(キャリア)で変調する処理を含んでもよい。信号が搬送する情報は、例えば、アナログ情報又はディジタル情報であってもよい。信号は、従来の様々な有線又は無線のリンクで送信されてもよい。信号はプロセッサにより読み取ることが可能な媒体に保存されてもよい。
図1A
図1B
図2A
図2B
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13