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

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

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

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5955378
(24)【登録日】2016年6月24日
(45)【発行日】2016年7月20日
(54)【発明の名称】エンコード方法及びデコード方法
(51)【国際特許分類】
   G06T 17/00 20060101AFI20160707BHJP
   G06F 5/00 20060101ALI20160707BHJP
【FI】
   G06T17/00
   G06F5/00
【請求項の数】17
【全頁数】24
(21)【出願番号】特願2014-504136(P2014-504136)
(86)(22)【出願日】2011年4月12日
(65)【公表番号】特表2014-523554(P2014-523554A)
(43)【公表日】2014年9月11日
(86)【国際出願番号】CN2011000643
(87)【国際公開番号】WO2012139249
(87)【国際公開日】20121018
【審査請求日】2014年4月10日
(73)【特許権者】
【識別番号】501263810
【氏名又は名称】トムソン ライセンシング
【氏名又は名称原語表記】Thomson Licensing
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】カイ,カンイン
(72)【発明者】
【氏名】ティアン,チャン
(72)【発明者】
【氏名】メン,ウェイリャン
【審査官】 松浦 功
(56)【参考文献】
【文献】 国際公開第2010/149492(WO,A1)
【文献】 特開2008−123497(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 17/00
G06T 17/10 −17/30
G06T 11/00 −11/40
G06T 15/00 −15/87
G06F 5/00
(57)【特許請求の範囲】
【請求項1】
階層ツリーを使用してメッシュモデルのポイントをエンコードする方法であって、
当該方法はエンコーダにより実行され、当該方法は、
全体のポイント数である値をエンコードする段階と、
前記メッシュモデルのポイントの周りのバウンディングボックスを再帰的に分割する段階であって、それぞれの分割する段階が現在の親セルを予め定義された数の子セルに分割する、段階とを含み、
前記それぞれの分割する段階は、
前記現在の親セルと前記現在の親セルに含まれる全体のポイントの数とを決定する段階と、
前記現在の親セルが少なくとも最少数のポイントを含むか否かを判定する段階と、
前記現在の親セルが少なくとも前記最少数のポイントを含まない場合、前記子セルのうちの予め定義されたセルにおけるポイントの数を含むコードワードをエンコードする段階と、
前記現在の親セルが少なくとも前記最少数のポイントを含む場合、ポイント分散を判定する段階であって、前記現在の親セルの全てのポイントが現在の分割する段階による1つの子セルの中にあるか否かを判定する段階と、
示唆から開始するコードワードをエンコードする段階とを実行し、
前記現在の親セルの全てのポイントが、決定された前記ポイント分散に従う1つの子セルの中にない場合、前記示唆は、第一の値を有し、前記コードワードの残りのビットは、前記子セルのうちの予め定義されたセルにおけるポイントの数から1だけデクリメントされた数であるポイント数を示し、
前記現在の親セルの全てのポイントが、決定された前記ポイント分散に従う1つの子セルの中にある場合、前記示唆は、異なる第二の値を有し、前記コードワードの残りのビットは、前記親セルの全てのポイントを含む前記1つの子セルを識別するインデックスを示す、
方法。
【請求項2】
前記示唆が前記第一の値を有する場合、前記コードワードの残りのビットの量は、n=integer(log(m+1))又はn=log(m)に従って前記現在の親セルにおけるポイント数に依存し、nは前記コードワードの残りのビットの量であり、mは前記現在の親セルにおけるポイント数である、
請求項1記載の方法。
【請求項3】
入力ポイントをそれらの空間座標に従って1以上のクラスタにクラスタ化する初期段階を更に含み、前記ポイントのそれぞれは、複数の入力ポイントのクラスタのリファレンスポイントである、
請求項1又は2記載の方法。
【請求項4】
前記メッシュモデルは、複数の接続コンポーネントをもつ3Dメッシュモデルであり、クラスタのそれぞれのリファレンスポイントはコンポーネントを表す、
請求項3記載の方法。
【請求項5】
メッシュモデルのポイントをデコードする方法であって、当該方法はデコーダにより実行され、当該方法は、
エンコードされたデータセットから、複数のコードワードと全体のポイント数を示す期値とを含む第一のデータを少なくとも抽出する段階と、
デフォルトデータ又は前記エンコードされたデータセットから抽出されたバウンディングボックスデータに基づいて、バウンディングボックスを生成する段階と、
バウンディングボックスを複数のセルに再帰的に分割する段階であって、再帰的な分割のそれぞれが、現在の親セルを2以上の子セルに分割し、コードワードが、前記子セルのうちの1つのセルを親セルについて決定する、段階と、
前記子セルに従って前記ポイントの位置を決定する段階と、を含み、
前記複数のコードワードのそれぞれは、前記コードワードの残りのビットの意味を示す示唆を含み、前記示唆は評価され、
前記コードワードの残りのビットは、前記示唆が第一の値を有する場合には、前記現在の親セルの現在の分割からの前記子セルのうちの所定のセル内に位置するポイントの数を決定し、又は、前記示唆が第二の値を有する場合には、前記現在の親セルの現在の分割からの子セルであって前記親セルの全てのポイントを含む子セルを示すインデックスを決定する、方法。
【請求項6】
それぞれのコードワードの長さは可変であり、
当該方法は、所与のルールに従って前記コードワードの長さを計算する段階を更に含み、
前記コードワードの残りのビットの量は、n=integer(log(m+1))に従って前記現在の親セルにおけるポイント数から計算され、nは前記コードワードの残りのビットの量であり、mは前記現在の親セルにおけるポイントの数である、
請求項5記載の方法。
【請求項7】
前記メッシュモデルは、繰返される接続コンポーネントの複数のインスタンスを含む3Dメッシュモデルであり、
前記ポイントのそれぞれは、前記インスタンスのうちの1つの位置を示すリファレンスポイントであり、
当該方法は、
前記繰返される接続コンポーネントの前記複数のインスタンスを生成し、それぞれのリファレンスポイントの位置に従ってそれぞれの繰返しを発見する段階を更に含む、
請求項5又は6記載の方法。
【請求項8】
現在の親セルを分割する再帰的に分割する段階は、前記メッシュモデル及び前記バウンディングボックスが2次元的である場合には、交互に水平方向及び垂直方向の分割を実行し、前記メッシュモデル及び前記バウンディングボックスが3次元的である場合には、交互に水平方向、垂直方向及び深さ方向の分割を実行し、
前記子セルのうちの所定のセルは、水平方向の分割については上側又は下側の子セルの何れかであり、垂直方向の分割については左側又は右側の子セルの何れかであり、深さ方向の分割については前側又は後側の子セルの何れかである、
請求項1乃至4のうちの何れか1項に記載の方法。
【請求項9】
親セルを1回分割することにより得られる全ての子セルは、等しいサイズを有する、
請求項1乃至4又は8のうちの何れか1項に記載の方法。
【請求項10】
再帰的に分割する段階の停止条件として最多の反復数又は最小のセルサイズが定義される、
請求項1乃至4、8又は9のうちの何れか1項に記載の方法。
【請求項11】
現在の親セルを分割する再帰的に分割する段階は、前記メッシュモデル及び前記バウンディングボックスが2次元的である場合には、交互に水平方向及び垂直方向の分割を実行し、前記メッシュモデル及び前記バウンディングボックスが3次元的である場合には、交互に水平方向、垂直方向及び深さ方向の分割を実行し、
前記子セルのうちの所定のセルは、水平方向の分割については上側又は下側の子セルの何れかであり、垂直方向の分割については左側又は右側の子セルの何れかであり、深さ方向の分割については前側又は後側の子セルの何れかである、
請求項5又は6に記載の方法。
【請求項12】
親セルを1回分割することにより得られる全ての子セルは、等しいサイズを有する、
請求項5、6又は11に記載の方法。
【請求項13】
再帰的に分割する段階の停止条件として最多の反復数又は最小のセルサイズが定義される、
請求項5、6、11又は12に記載の方法。
【請求項14】
請求項1乃至4又は請求項8乃至10のうちの何れか1項に記載の方法を実行するように形成される処理エレメントを有する、メッシュモデルのポイントをエンコードするエンコーダ。
【請求項15】
請求項5乃至7又は請求項11乃至13のうちの何れか1項に記載の方法を実行するように形成される処理エレメントを有する、メッシュモデルのポイントをデコードするデコーダ。
【請求項16】
請求項1乃至4又は請求項8乃至10のうちの何れか1項に記載のメッシュモデルをエンコードする方法を、コンピュータに実行させる実行可能な命令を記憶したコンピュータ読み取り可能な記憶媒体。
【請求項17】
請求項5乃至7又は請求項11乃至13のうちの何れか1項に記載のメッシュモデルをデコードする方法を、コンピュータに実行させる実行可能な命令を記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メッシュモデルをエンコードする方法、対応するエンコーダ装置、エンコードされたメッシュモデル、メッシュモデルをデコードする方法及び対応するデコーダ装置に関する。
【背景技術】
【0002】
1990年初期以来、3Dメッシュを効率的に圧縮するために様々なアルゴリズムが提案されている。しかし、初期の研究は、平滑な表面と微小な三角形をもつ単一の接続された3Dモデルを圧縮することに大部分が集中している。今日の3Dエンジニアリングモデルの大部分において、多数の小〜中サイズの接続コンポーネント(connected component)があり、それぞれが平均で2〜3百までの多角形を有している。このタイプのモデルは、様々な位置、スケール及び向きで繰り返される多数の幾何学的な特徴又はコンポーネントを有することがある。係るモデルは、いわゆる多重接続される。コンポーネントは、個別に圧縮され、比較的非効率的な圧縮をもたらす。圧縮性能は、異なる接続コンポーネント間の冗長度を除くことで非常に増加される。大型の3Dエンジニアリングモデルにおける繰り返す幾何学的な特徴を自動的に発見する様々な方法が知られている。それらのそれぞれの位置は、コンポーネント当たり少なくとも1つのリファレンスポイントの3D位置により定義される。しかし、1つの問題は、それぞれのリファレンスポイントの位置をどのようにエンコードするかである。
【0003】
空間ポイントの効率的な圧縮アルゴリズムの大部分は、例えば([OG02]:O.Devillers, P.Gandoinによる“Geometric Compression for interactive transmission”,IEEE Visualization, 2000, pp.319-326におけるような)kdツリーベース、又は([PK05]:J.K.Peng, C.-C.Jay Kuoによる“Geometry-guided progressive lossless 3D mesh coding with octree(OT) decomposition”,ACM SIGGRAPH/ACM Transactions on Graphics 24(3), 609-616, 2005におけるような)八分木ベースといった空間ツリーに基づいている。
【0004】
これらのアルゴリズムは、所与の空間をセグメントに分割し、それぞれの特定のセグメントにある入力の空間ポイントの数を提供する。従って、これらのアルゴリズムは、暗黙の空間ツリーにより入力の空間ポイントを編成する。次いで、これらのアルゴリズムは、ツリー構造を横断し、入力ポイントの後の回復のために必要な情報を記録する。空間ツリーを構築するとき、それぞれの空でないセルが1つの頂点のみを含み且つポイントの位置の十分に正確な再構成を可能にするように十分に小さくなるまで、あるセルが再帰的に細分される。
【0005】
セルはノードに対応する。はじめに、全ての3Dポイントの全体のバウンディングボックスは、セル又はノードとして考えられる。ポイントの位置は対応するセルのバウンディングボックスから復元することができるので、空間ツリーに基づくアルゴリズムは、1つの解像度の圧縮アルゴリズムと同じ圧縮率で多重解像度の圧縮を達成することができる。
【発明の概要】
【発明が解決しようとする課題】
【0006】
[OG02]で使用される方法の例は、図1に示される。親セルが2つの子セルに細分されるたびに、2つの子セルのうちの1つ(例えば左又は上)におけるポイントの数がエンコードされる。親セルがp個のポイントを含む場合、子セルのうちの1つにおけるポイントの数は、算術コーダによりlog2(p+1)を使用してエンコードされる。
【0007】
それとは異なり、[PK05]は、空でないセルを8つのセルに細分し、それぞれのセルの分割後に空でない子セルのインデックスのみをエンコードする。符号化効率を改善するため、[PK05]は、空でない子セルのグループとなるように様々なTタプルの擬似確率を推定する。子セルの横断の順序は、確率の降順に従う。
【0008】
しかし、コンパクトなストレージ及び高速な伝送を可能にするため、圧縮アルゴリズムの効率をどのように高めるかが絶え間のない問題である。
【課題を解決するための手段】
【0009】
本発明は、以下の事実の認識に基づいている。空間ツリーによる空間ポイントを編成及び圧縮する効率は、それぞれの子ツリーノードがその親ツリーノードよりも少ないデータポイントを含むかに主に依存する。子ノードがその親ノードと同じデータポイントを含む場合(又はその親と同じ数のデータポイントを含む場合)、対応する分割は、効果的ではない。係る非効率的な分割は、符号化データの量を増加させ、従って圧縮効率を減少させる。より多くの分割が非効率であると、圧縮率が低くなる。
【0010】
本発明の利点は、非効率的な分割により生じる圧縮効率における減少を回避することであり、従って圧縮が改善される。
【0011】
本発明によれば、はじめにメッシュモデルの入力ポイントは、それらの空間的な位置に従ってクラスタ化される。それぞれのクラスタは、空間的に集合されたポイントのセットを含む。次いで、それぞれのクラスタは、(kdツリー又は八分木のような)空間ツリーを使用して圧縮される。それぞれの分割について、判定するステップは、2つの状態を判定する。第一に、親セルにおけるポイントの数、及び第二に、分割が効率的であるか、すなわち全ての結果として得られる子ノードが親ノードよりも少ないデータポイントを有するか。1実施の形態では、親セルが全体で所与の最少のポイント数未満である場合、分割は、従来のようにエンコードされ、すなわちコードは、子セルのうちの定義されたセルにおけるポイントの数を示す。しかし、少なくとも最少のポイント数をもつ親セルの分割は、異なってエンコードされる。
【0012】
従来のエンコードが使用されるか又はモードの示唆による符号化モードのうちの1つが使用されるかの判定において使用される最少のポイント数は、親セル当たり及び分割動作当たりの子セルの数に依存する。親セルの2つの子セルへの分割について、最少数は4である。親セルの2を超える子セルへの分割について、最小数は4よりも高い。従って、以下で与えられる全ての例について、符号化モードが決定される最少のポイント数(又は符号化モード決定の制限)は4であるが、この数は、親セルの分割により2を超える子セルが得られる場合には異なる場合がある。
【0013】
pを少なくとも4であるとして親セルが全体でpポイントを有し、且つ子セルのうちの定義されたセルにおいてp1ポイント(0<p1<p)が存在するように分割が効率的である場合、効率的な分割は、p1−1のエンコードされた値、すなわち子セルにおけるポイント数−1によりエンコードされる。
【0014】
pを少なくとも4であるとして親セルが全体でpポイントを有し、且つ分割が効率的ではない場合、全てのポイントは子セルのうちの1つのみにあり、分割は、以下のようにエンコードされる。ポイント数の代わりに、コードは、予め定義されたインデックススキームを使用して、空ではない子ノードのインデックスを示す。
【0015】
親セルが少なくとも4つのポイントを有するときに2つの符号化スキーム(すなわち効率的又は非効率的な分割)間で異なるため、ツリーノード当たりの更なるモード示唆は、結果コード又は出力データストリームに挿入される。モード示唆は、対応する分割が効果的であるか否かを示す。
【0016】
エンコードにより、空間ツリーとして考えることができる新たな種類のエンコードフォーマットが得られ、少なくとも4つのポイントをもつそれぞれのツリーノードについて、対応する分割が効率的であるか、すなわち分割された親セルの全てのポイントが1つのみの子セルにあるか否かを示す示唆を含む。それぞれの分割について、上述されたフォーマットにおける圧縮されたデータは、結果として生じる。すなわち、(親セルにおける全体のポイント数が4以下である場合)子セルのうちの1つにおけるポイント数、又は(親セルにおける全体のポイント数が少なくとも4であって且つ分割が効率的である場合)1だけデクリメントされる子セルにおけるポイント数、或いは(親セルにおける全体のポイント数が少なくとも4であって且つ分割が効率的ではない場合)空でない子ノードのみのインデックス。有利なことに、インデックスは、ポイント数が少なくとも4である場合に、エンコードされたポイント数よりも少ないビットを使用する。
【0017】
本発明に従ってエンコードフォーマットでのデータのデコードの間、空間ツリーを横断するとき、それぞれの分割について、現在の親セルにおけるポイントの数が計算又は決定され、現在の分割が効率的であるかを検出するために示唆(例えば1ビット)が分析される。
【0018】
1実施の形態では、本発明は、メッシュモデルのポイントをエンコードする方法に関し、全体のポイント数を決定し、決定された全体のポイント数をコードに挿入するステップであって、予め定義されたコードワード長が使用される、ステップと、それらの空間座標に従ってポイントを1以上のクラスタにクラスタ化するステップ、階層ツリーを使用してクラスタ化されたポイントをエンコードするステップであって、エンコードは、クラスタの周り(すなわちモデルの全てのポイントの周り)でバウンディングボックスを定義するステップを含む、ステップと、バウンディングボックスを再帰的に分割するステップであって、それぞれ分割するステップは、親セルを予め定義された数の子セル(少なくとも2つ)に分割するステップと、それぞれ分割するステップについて、現在の親セルについて含まれるポイント数を決定するステップと、親セルの全てのポイントが単一の子セル内にあるか否かを決定するステップと、決定するステップの結果を示す示唆をエンコードするステップと、を含む。
【0019】
親セルにおける全体のポイント数が4以下であると判定された場合、子セルのうちの特定の(予め定義された)セル内になるポイントの数がコードに挿入される。
【0020】
親セルにおける全体のポイント数が4を超え且つ親セルのポイントが少なくとも2つの子セルに分散されていると判定された場合、分割するステップは効果的であり、(例えば1に設定される単一ビットによる)分割が効率的であることを示す第一の示唆、及び子セルのうちの特定の(予め定義された)セル内のポイント数がコードに挿入される。
【0021】
親セルにおける全体のポイント数が4を超え且つ親セルの全てのポイントが単一の子セル内にあると判定された場合、分割するステップは非効率的であり、(例えばゼロに設定される単一ビットにより)分割の非効率さを示す第二の示唆がコードに挿入され、親セルの全てのポイントを含む単一の子セルのインデックスが決定され、インデックスはコードに挿入される。
【0022】
分割が2を超える子セルとなる場合、符号化モード判定制限は、4よりも高くなる場合があり、挿入の前にインデックスがエンコードされる。インデックスをエンコードするために使用されるビット量は、分割するステップから得られる子セルの数から導出することができる。
【0023】
1つの態様では、メッシュモデルのポイントをデコードする方法は、エンコードされたデータセットから、少なくとも、全体のポイント数を表す値と、複数のポイントのうちの位置データである第一のデータであって、複数のコードワードを定義する第一のデータとを抽出するステップであって、それぞれのコードワードがバウンディングボックスのセルへの複数の再帰的な分割のうちの1つを示し、それぞれの分割が現在の親セルを2以上の子セルに分割する、ステップと、前記値と前記第一のデータとに基づいて前記ポイントの位置を決定するステップであって、コードワードの少なくとも幾つかは、現在のセルの分割するステップが効率的であるか否かを示す示唆(1ビット)を含む、ステップとを含む。それぞれのコードワードの長さは、固定されるか又は可変であり、可変である場合、その長さ及び値は、所与のルールに従ってデコードの間に計算することができる。
【0024】
それぞれの現在の親セルについて、現在の親セルが含む全体のポイント数が決定される。1実施の形態では、全体のポイント数が前に計算されて記憶され、ストレージから読み出される。また、決定されたポイント数をエンコードするために使用されたビット数が計算され、コードワード長を決定するために後に使用される。全体のポイント数が4以下である場合、対応するコードワードが上述された示唆を有さず、子セルのうちの予め定義されたセルにおけるポイント数として解釈される。全体のポイント数が少なくとも4である場合、対応するコードワードは、前記示唆で開始し、示唆が評価される。示唆に依存して、コードワードの残りのビットは、2つの意味を有する。コードワードの残りのビットは、現在の親セルの現在の分割から得られる子セルのうちの予め定義されたセル内に位置するデクリメントされたポイント数である。コードワードの残りのビットがデクリメントされたので、実際のポイント数を取得するために1だけインクリメントされる必要がある。又は、コードワードの残りのビットは、現在の親セルの現在の分割から得られる子セルのインデックスである。インデックスは、親セルの全てのポイントを含む1つの子セルの識別子である。コードワード長が変数である場合、先に判定されたビット数(+フラグのために1ビット)は、現在のコードワード長である。第一のコードワード(すなわちモデルにおける全体のポイント数)についてのように、コードワード長が固定された場合、予め定義される。デコードの間、それぞれの頂点の位置は、所与の終了条件に応答してデコードが終了されるまで、連続して類似の子セルに再帰的に特定される。
【0025】
本発明は、マルチコンポーネントモデルにおけるコンポーネントのリファレンスポイントであって、且つモデルの頂点のクラスタを示すポイントについて使用される。原理的に、本発明は、メッシュモデルの頂点であるポイントであって且つ座標により定義される他の大きなポイントのグループについても使用することができる。
【0026】
一般に、少なくとも空ではないセル内において、親セル内のポイント数を追跡することが必要である。例えば、空ではない子セルにおけるポイント数は、次の分割後、子セルが親セルとなるまで記憶される。次いで、親セルにおけるポイント数を決定するときに、ストレージから数が読み出される。
【0027】
本発明は、エンコードする装置に更に関するものであり、複数のポイントの空間座標に従って複数のポイントを1以上のクラスタにクラスタ化するクラスタリング手段、及びクラスタ化されたポイントをエンコードするエンコード手段を備える。エンコード手段は、クラスタの周りにバウンディングボックスを定義する初期化ユニット、バウンディングボックスを再帰的に分割する再帰的分割ユニットであって、前記再帰的分割のそれぞれの分割ステップは、親セルを予め定義された数の子セルに分割する、再帰的分割ユニット、それぞれの分割するステップ及び分割されるそれぞれの現在の親セルについて、ポイント数を決定し、親セル当たりのポイントの数が少なくとも4であるかを判定するポイント分散判定ユニット、及び上述されたようにポイント数が4以下である場合にポイント数をエンコードし、ポイント数が少なくとも4である場合に、上述されたように子セル又は子セルインデックスにおけるポイントのデクリメントされた数をエンコードするエンコードユニットを備える。
【0028】
さらに、メッシュモデルをデコードするデコーダに関するものであって、エンコードされたデータセットから、少なくとも第一のデータと全体のポイント数を示す初期値を抽出する抽出手段、バウンディングボックスをセルに再帰的に分割する再帰的分割手段であって、再帰的分割のそれぞれは、現在の親セルを子セルに分割する、再帰的分割手段、及び前記子セルに従って前記ポイントの位置を決定する決定手段を備える。決定手段は、現在の親セルにおけるポイントの数を決定するユニット、現在の親セルにおける決定されたポイントの数に従って符号化モードを検出する符号化モード検出ユニット、現在の親セルにおけるポイントの数からそれぞれのコードワードの長さを導出するコードワード長検出ユニット、及び次のコードワードをデコードするデコードユニット、を備える。
【0029】
1つの態様では、本発明は、上述されたエンコードするステップを含む方法をコンピュータに実行させる実行可能な命令を記憶したコンピュータ読み取り可能な媒体に関連する。1つの態様では、本発明は、上述されたデコードするステップを含む方法をコンピュータに実行させる実行可能な命令を記憶したコンピュータ読み取り可能な媒体に関連する。
【0030】
1実施の形態では、本発明は、複数の繰返される接続コンポーネントを含むエンコードされたメッシュモデルに関し、エンコードされたメッシュモデルは、少なくとも以下のエンコードされたデータを含む。それぞれの繰返される接続コンポーネントのインスタンス、エンコードされた接続コンポーネントの全体数、前記繰返される接続コンポーネントの複数の繰返しの位置であって、ツリー構造(例えばkdツリー)としてエンコードされる位置、及びメッシュモデルのバウンディング領域を定義するデータ。バウンディング領域は、ツリー構造が参照する最初の親セルである。ツリーとしてエンコードされる位置は、上述されたエンコードを使用する。すなわち、エンコードは、ツリー構造のそれぞれのノードのコードワードを含み、少なくとも4つのポイントによるノードについて、コードワードは、現在の親セルのポイントが少なくとも2つの子セルに分散される場合に第一の値を有する示唆で開始し、現在の親セルのポイントが単一の子セルにある場合に異なる第二の値を有する示唆で開始する。コードワードの残りのビットは、子セルのうちの予め定義されたセル内に位置されるポイント数(すなわち示唆が第一の値を有する場合)−1を示すか、又は、親セルの全てのポイントを含む子セルである(示唆が第二の値を有する場合)、現在の親セルの子セルのインデックスを示す。
【0031】
本発明の有利な実施の形態は、従属の請求項、以下の説明及び図面において開示される。
【図面の簡単な説明】
【0032】
本発明の例となる実施の形態は、添付図面を参照して記載される。
図1】2Dの例におけるkdツリーの原理を示す図である。
図2】効率的及び非効率的な分割を使用したkdツリーにおけるデータポイントの編成を示す図である。
図3a】異なる次元における3D親セルの分割を示す図である。
図3b】水平、垂直及び深さの次元における3D親セルの連続する分割を示す図である。
図4a】符号化判定ステップのフローチャートである。
図4b】エンコード方法のフローチャートである。
図4c】デコード方法のフローチャートである。
図5a】メッシュモデルのエンコード方法のフローチャートである。
図5b】メッシュモデルのデコード方法のフローチャートである。
図6】コード例の詳細を示す図である。
図7】コードツリーを示す図である。
【発明を実施するための形態】
【0033】
図1は、2Dケースにおける従来のkdツリー符号化の原理を示す。2Dモデルのポイントは、バウンディングボックス10により含まれる。7つのポイントは、親セル内に位置する。kdツリーエンコードアルゴリズムは、予め定義されたビット数を使用して全体のポイントの数をエンコードすることで開始し、次いで、セルを再帰的に分割する。kdツリーエンコードアルゴリズムが親セルを子セルに分割するたびに、2つの子セルのうちの1つにおけるポイント数をエンコードする。以下の例は、(水平方向の分割後に)左側の子セルにおけるポイントの数をエンコードし、(水平方向の分割後に)上側のセルにおけるポイントの数をエンコードする。これらの取り決めは、互いに独立に変更される場合がある。親セルがp個のポイントを含む場合、子セルのうちの1つにおけるポイントの数は、算術コーダによりlog2(p+1)ビットを使用してエンコードされる。この分割は、それぞれの空のセルが唯一のポイントを含み且つポイントの位置の十分に正確な再構成を可能にするために十分に小さくなるまで再帰的に適用される。(ポイントが頂点であるか又はクラスタのリファレンスポイントであるかに関わらず)メッシュモデルの全てのポイントの位置を圧縮するため、アルゴリズムは、第一の分割ステップについて現在の親セルとして考えられる全ての位置の全体のバウンディングボックス10で開始する。
【0034】
図1の例において、第一のエンコードされた値は、32ビットを使用してエンコードされる、全体のポイント数(7)である。次いで、左側の子セルV1及び右側の子セルV2が得られるように、垂直方向の分割が適用される。次の符号化ステップでは、4である左側の子セルV1におけるポイントの数がエンコードされる。エンコードのために使用されるビット数は、親セル内のポイント数により決定され、log2(7+1)=3ビットである。従って、第二のコードワードは、数4であり、3ビットを使用してエンコードされる。親セルにおけるポイントの数及び左側の子セルV1におけるポイント数から、右側の子セルV2におけるポイント数は、7-4=3となるように計算される。従って、エンコードされる必要がない。
【0035】
次のステップでは、前のステップの子セルに水平方向の分割が適用される。現在の親セルV1である左側の子セルV1は、上側の子セルV1H1及び下側の子セルV1H1に分割される。同様に、親セルV2である右側の子セルV2は、上側の子セルV2H1と下側の子セルV2H2に分割される。エンコードは、2つのポイントを有する上側で左側の子セルV1H1を続ける。従って、数2が次にエンコードされ、log2(4+1)=2.3ビットが算術コーダで使用される(又は丸めの後に3ビット)。上述されたように、下側で左側の子セルV1H2におけるポイントの数は、エンコードされる必要がない。それは、下側で左側の子セルV1H2におけるポイントの数は、左側のセルV1及び上側で左側の子のセルV1H1におけるポイントの数から推測することができるからである。次いで、同じ手順が右側のセルV2に適用され、これにより2ビットを使用したゼロのエンコードが行われる。図1に示されるように、それぞれのポイントが個別のセルにあるまで2を超える分割ステップが必要であり、それぞれのポイントがそのセルにおいて十分に発見されるまで更に多くのステップが必要である。それぞれのステップは、ポイントの位置のエンコードの精度を増加させるが、1s又は0sの数の増大のエンコードを必要とする。必要とされる精度に依存して、更なるステップの数は多くなる場合がある。
【0036】
ポイントは、頂点又はクラスタのリファレンスポイントである場合がある。すなわち、本発明は、少なくとも頂点の位置をエンコードするか又は繰返される接続コンポーネントの位置をエンコードするため、改善されたkdツリー符号化アルゴリズムを適用する場合がある。さらに、改善されたkdツリーアルゴリズムは、1D,2D又は3D空間における任意の種類の空間的な位置をエンコードするために使用される場合がある。
【0037】
図2は、2Dメッシュモデルのバウンディングボックス20内で幾つかのポイント21〜25が位置されるkdツリーの例を示す。また、本発明は1Dモデル又は3Dモデルにも適用することができる。3Dメッシュのエンコードへの原理の適用は、以下に更に説明される。以下に記載されたステップは、図6にも示される。多くの大型のメッシュモデルの場合におけるように、ポイントの位置は、バウンディングボックス内で非常に非一様に分散される。この例では、改善されたkdツリー符号化アルゴリズムは、ポイントの位置をエンコードするために適用され、要求される精度は、クラスタが十分に発見される前に5つの最初の分割(division)又は分裂(splitting)ステップが必要とされることであることが想定される。精度は、分裂ステップの数を増加させることで増加させることができ、分裂ステップの数を減少させることで減少させることができる。さらに、この例では、効率的な分割の効率的であることの示唆は、“1”によりエンコードされること(1=効率的、0=非効率的)、子のセルのインデックスは、上側又は左側の子のセルについて“1”により再帰的にエンコードされ、下側又は右側の子セルについて“0”によりエンコードされることが慣習により定義される。なお、これらの取り決めは、本発明又はコードの効率に影響を及ぼすことなしに異なって定義される場合がある。
【0038】
第一のコードワードは、(例えば潜在的な全体のポイント数に依存して32ビットといった)予め定義されたビット数を使用して、全体のポイントの数である。さらに、13である、モデルにおける全体のポイント数が決定され、全体のポイント数が3を超えることが決定される。第一の分割ステップでは、バウンディングボックス20である親セルは、2つの矩形である左側(Q1+Q3)及び右側(Q2+Q4)に垂直方向に分割される。図6b)を参照されたい。全体のポイントの数は少なくとも4であるので、本発明に係る符号化モードビット(“効率的”ビット)が使用され、両方の結果として得られる矩形はポイントを含むので、分割は効率的である。従って、第二のコードワードは、左側の子セルにおけるポイントの数(6)から1だけデクリメントされた値5により後続される、効率的であることの示唆(1=“効率的”)である。第二のコードワードは、4ビットを使用してエンコードされる。これは、親セルにおける全体のポイント数をエンコードするために4ビットが必要とされるからである(int(log2(13))=4)。すなわち、図3の例では、コードの開始は、以下の通りである。13(全体のポイント数、32ビット)、1(効率的ビット)、5(第1世代の左側の子セルにおけるポイントの数−1、4ビット)。
【0039】
第二の分割ステップは、4つの正方形Q1,...,Q4が得られるように、矩形の水平方向の分割を行う。図6c1)及び図6c2)を参照されたい。前のステップから、2つの矩形の親セルのそれぞれが少なくとも4つのポイントを含むことが知られている。左側の矩形に関して、分割は非効率的である。これは、結果として得られる正方形の子セルQ1,Q3のうちの1つのセルが全てのポイントを含むからである。従来のkdツリー符号化は上側の子セルQ1におけるポイント数が(3ビットを使用して)エンコードされるのを必要とする一方、本発明に係る改善されたエンコードアルゴリズムは、分割が非効率的であることを示す示唆、及び全てのポイントを含む子セルのインデックスのみを使用する。
【0040】
子セルのインデックスはn=log2(m)を使用し、ここでmは親セルの結果として得られた子セルの数である。この例では2つの子セルが存在しているので、インデックスは、log2(2)=1ビットのみを使用する。別の実施の形態では、それぞれの分割ステップは、子セルのインデックスを示すためにより多くのビットが使用されるように、親セルを等しいサイズのm個の子セルに分裂させる。2のべき乗でないmよりも効果的なコードを提供する、数mが4,8,16等のような2のべき条である場合、(同じ大きさにおいて)幾つかのシンプルな分割ステップの累積として考えることができる。しかし、これらの幾つかのステップが同時に実行される場合、処理速度が増加する場合がある。例えば(達成される空間解像度に比較して)ポイントが非常にまばらに分散されるので、幾つかの非効率的な分割のシーケンスが現れる可能性が非常に高い場合、この累積は効率的である。他の場合では、n=2を選択することが良好である場合がある。
【0041】
親セルが2つの子セルに分裂される図2の例に戻り、効率的であることの示唆は、左側の矩形Q1+Q3についての以下コードワードがたった2ビット、すなわち“01”(0=非効率的の示唆である、1ビット及び1=子セルのインデックスである1ビット)を含むように、たった1ビットを有する。効率的であることの示唆(効率的/非効率的)、及び子セルのインデックス又は子セルのうちの1つにおけるポイントの数の何れかを定義する後続するビットは、単一のコードワードとして考えることができる。従って、コードワードは、可変長を有する。有利なことに、あるセルのインデックスを含むコードワードは、ポイントの量を表す値を含むコードワードよりも通常は短い。
【0042】
右側の矩形の分割は、効率的であり、従って“1”(効率的であることの示唆、1ビット)及び“3”(上側の子セルQ2におけるポイント数−1、3ビットを使用(図6のc2)に示されるように、log2(number_of_bits_in_parent_cell)=log2(7)=3))によりエンコードされる。
【0043】
以下では、フォーム“valuenumber_of_bits”の代わりの表現が使用される。例えば、3ビットによりエンコードされる5の値は、53bとして書かれる。
【0044】
次のステップでは、子セルの新たな世代が開始され、分裂の大きさが変化する。サイズr1の矩形が得られるように、正方形Q1〜Q4のそれぞれは、垂直方向に分裂される。図6のd1)〜d3)を参照されたい。Q1及びQ2のそれぞれについて、全体のポイント数は、少なくとも4であり、分割は効率的である(図6のd1)及びd2))。左側の矩形におけるポイント数は、それぞれ2及び3である。これらは、11b−13b及び11b−22bによりそれぞれエンコードされる。Q1+Q3の垂直方向の分割が非効率的である上述された事実及びその分割のインデックスから、Q3が空であることは明らかであるので、Q3はスキップされる。(右側の子セルにおける全てのポイントについて)02bによりエンコードされるように、残りのセルQ4は3のみ(すなわち4以下)を有する。図6のd3)を参照されたい。
【0045】
すなわち、図3の例では、コードの開始は、以下の通りである。1332b(全体のポイント数)−11b(効率的である示唆)−54b(左側の子セルの第一世代)−01b−11b(非効率的であることの示唆及び上側の子セルのインデックス)−11b(効率的であることの示唆)−33b(Q2におけるポイントの数)−11b−13b−11b−22b(非効率的ビット並びにQ1及びQ2の矩形の子セルにおけるポイント数)−02b(Q4の右側の矩形の子セルにおける全てのポイント)。
【0046】
次の分割ステップでは、サイズr1の(空でない)矩形のそれぞれは、図6のe1)〜e5)に示されるように、サイズsq1の正方形に水平方向に分割される。従って、上側の左側から開始して、次のコードワードは、バウンディングボックスの上側半分について22b−01b1b−02b−11bであり、(空のQ3及びQ4の空の左半分をスキップして)バウンディングボックスの下側半分について02bである。例えば最後の値02bは、Q4の右半分の水平方向の分割後に、全てのそのポイントは、下側の子セルにあることを意味する(図6のe5)を参照されたい)。これは、分割前の全体のポイントの数は、4以下であるからである。
【0047】
次の分割ステップでは、サイズsq1の(空でない)正方形のそれぞれは、図6のf1)〜f5)に示されるように、サイズr2の矩形に垂直方向に分割される。従って、上側の左側から始めて、次のコードワードは、22b−(Q1における)01b1b−02b−(Q2における)01b−(Q4における)32bである。例えば値01b1b図6のf2)参照)は、現在の親セルにおける全体のポイント数が少なくとも4となるように前に決定されていることを知って、サイズsq1の正方形の分割は非効率的であり(すなわち“0”)、サイズr2の占有された矩形のみにおいて左側にある(すなわち“1”)ことを意味する。
【0048】
次の分割ステップでは、サイズr2の(空でない)矩形のそれぞれは、図6のg1)〜g5)に示されるように、サイズsq2の正方形に水平方向に分割される。上側の左側から開始して、次のコードワードは、(Q1における)22b−01b−01b−32b−(Q2における)11b−(Q4における)02bである。なお、図6のg2)に示される分割においてのみ、効率的であることの示唆が使用されるように、親セルにおけるポイントの数は3を超える。図6では、これのケースは(p=4)又は(p>4)によりマークされる。
【0049】
次の分割ステップでは、サイズsq2の(空でない)正方形のそれぞれは、図6のh1)〜h5)に示されるように、サイズr3の矩形に垂直方向に分割される。上側の左側から開始して、次のコードワードは、12b−(Q1における)11b2b−(Q2における)12b−01b−(Q4における)12bである。
【0050】
最後に、最後の分割ステップでは、図6のi1)〜i9)に示されるように、サイズr3の(空でない)矩形のそれぞれは、サイズsq3の2つの正方形に水平方向に分割される。上側の左側から開始して、次のコードワードは、(Q1における)01b−01b−12b−12b−(Q2における)11b−12b−11b−(Q4における)11b−12bである。
【0051】
同じサイズを有する全ての子のセルは、1つの子のセルの世代として考えられる。例えば、図2では、バウンディングボックス20が第一世代(親の世代)と考えられる場合、正方形Q1,...,Q4は、第三世代に属する。サイズsq1の全ての正方形(例えばQ1の左側の上側の正方形及び右側の下側の正方形、Q2の右側の上側の正方形及び左側の下側の正方形、及びQ4の右側の下側の正方形)は、同じ子のセルの世代、すなわち第5世代に全て属する。なお、特定の世代のセルの処理のシーケンスは、取り決めを受け(更に以下を参照)、符号化効率を変更することなしに変化する場合がある。
【0052】
先のエンコードによれば、全てのポイントは、サイズsq3の正方形の精度においてバウンディングボックスにおいて発見することができる。完全なモデルについて、エンコードは、102ビットを使用する。
【0053】
<外1>
このシンプルな例、すなわち公知のkdツリーアルゴリズムを使用した従来のエンコードは、1を超えるビットを必要とする。従って、本発明は、符号化効率を増加させる。
【0054】
非効率的な分割がより多く行われると、従来の方法と比較して圧縮率の改善が高くなり、本発明が更に有利になる。非効率的な分割は2つの場合に通常生じる。1つは、空間的なデータポイントが上述された例におけるように、有意な複数の空間的な集合を示すときである。単一の空間的な集合をもつ空間的なポイントのセット(すなわち単一ポイント)についてさえ、幾つかの非効率的な分割は回避不可能である。これは、空間解像度を増加するために更なる非効率的な分割は必要とされるように、あるセルが唯一のポイントを含むが、このセルが余りに大きく、ポイントの位置を再構成することができないときに特に当てはまる。従って、ポイントの数が多くなり且つポイントのクラスタリング(すなわち空間的な集合)が更に有意であり且つターゲットとなる空間解像度が高くなると、本発明に係るエンコードにより多くのビットが節約される。言い換えれば、ポイントの空間的な分散が均質ではないとき、すなわちより非効率的な分割が生じるときに、符号化効率が増加する。これは、ポイントの数が増加するときに起こることになる。
【0055】
有利なことに、本発明は、平均又は高い複雑度の3Dメッシュモデルについてかなりのビット節約を達成する。
【0056】
本発明の更なる利点は、手続きコード及び結果として得られるコードの両者は従来の方法よりも実質的に短いことである。
本発明の更なる利点は、本発明が階層符号化の全ての階層レベルを考慮することである。
【0057】
先の例は、2次元(2D)モデルを使用する一方、3次元(3D)モデルについて同じ原理を容易に使用することができる。図3a)に示されるように、3D実現のバウンディングボックス及びセルは、キューブ又はボックス、すなわち正方形又は矩形である側面をもつ3Dオブジェクトである。異なるのは、3D実現では、親セルは水平方向及び垂直方向に分割されるだけでなく、深さのような第三の次元において分割されることである。従って、先の2Dの例で使用されたように、分割のシーケンスh−v−h−v−...(h=水平方向、v=垂直方向)又は等価な分割シーケンスv−h−v−h−...の代わりに、3Dモデルの分割シーケンスは、h−v−d−h−v−d−h−v−d−...(d=深さ)、又はh−d−v−h−d−v−...,又はv−d−h−v−d−h−...である場合がある。何れかの場合において、再帰的な分裂は、回転するやり方で全ての考慮される次元を示す(それぞれの次元当たりの新たな世代)。
【0058】
1つの実施の形態では、デコードの間にバウンディングボックスの再構成を可能にするため、例えばサイズデータ及び/又は位置データといったバウンディングボックスを定義するデータがエンコード及びデコードされる。
【0059】
図3a)は、ボックスの水平方向の分裂ssd1、第一世代の子セルの何れかの垂直方向の分裂ssd2、及び第二世代の子セルの何れかの深さ分裂ssd3から得られる、3Dボックスの例示的な後続する分割を示す。用語「分割」、「細分」及び「分裂」は本明細書において等価的に使用される。図3b)は、水平方向の分裂sd1、垂直方向の分裂sd2及び深さ分裂sd3を示す。本発明の有利な効果は、分裂の次元(2Dについてh,v及び3Dについてh,v,d)のシーケンシャルな順序とは独立である。従って、順序が異なる場合がある。
【0060】
図4a)は、例えばメッシュモデルの頂点の位置といった、ポイントのグループの位置のエンコードの間に行われる方法ステップのフローチャートである。第一の決定するステップ40では、現在の親セルと現在の親セルにおける全体のポイントの数が決定される。第一の符号化モード判定ステップ50では、現在の親セルにおける全体のポイントの数が少なくとも4であるかが判定される。現在の親セルにおける全体のポイントの数が少なくとも4ではない場合(すなわち3以下)、次のステップは、上述されたように、ポイントの数のエンコードのための第一のエンコードステップ60である。すなわち、(例えば垂直方向の細分後の左側の子セル、又は水平方向の細分後の上側の子セル、或いは3Dのケースにおいて、深さの細分後の前側の子セルといった)子セルのうちの特定の予め定義されたセルにおけるポイントの数がコードに挿入される。
【0061】
現在の親セルにおける全体のポイントの数が少なくとも4である場合、第二の符号化モード判定ステップ70が続く。第二の符号化モード判定ステップ70では、細分が有効であるかが判定される。細分が有効である場合、すなわちそれぞれのセルが少なくとも1つのポイントを有し且つ空である子セルがない場合、第二のエンコードステップ80は、子セルの特定の予め定義されたセルにおけるポイント数を決定し、1だけデクリメントし、「効率的」フラグとデクリメントされたポイント数をコードに挿入する。pポイントをもつ親セルの効率的な細分後において、それぞれの子セルはせいぜいp−1ポイントを有し、pの代わりにp−1のエンコードは細分当たりビットを節約するので、デクリメントは有利である。
【0062】
さもなければ、細分が非効率的である場合、すなわち少なくとも1つの子セルが空である場合、「非効率的」ビット及び空でない子セルのインデックスは、第三のエンコードステップ90においてコードに挿入される。例えば左側、上側又は後側の子セルについて“1”、及び右側、下側又は前側の子セルについて“0”といった、インデックスは予め定義される。細分によりk個の子セルが得られるときにlog2(k)ビットが使用される。
【0063】
第一、第二及び第二のエンコードステップのそれぞれの後、次の親セルは、以下に説明されるようにステップ40で決定される。
【0064】
なお、それぞれの次元について、(例えば、左側、上側及び前側の子セルといった)子セルのうちの特定の予め定義されたセル及び上述された子セルのインデックスは、全体のエンコード及びデコードプロセスの間に同じままである。
【0065】
一般に、少なくとも空でないセルにおいて、親セルにおけるポイントの数を追跡することが必要である。例えば、次の分割後に子セルが親セルになるまで、空でない子セルにおけるポイントの数は記憶される。次いで、この数は、親セルにおけるポイント数を決定するときにストレージから読み出される。
【0066】
図4b)は、本発明の1実施の形態に係るメッシュモデルをエンコードする方法のフローチャートを示す。この方法は、複数のポイントの空間座標に従って複数のポイントを1以上のクラスタにクラスタ化するステップ410、クラスタ化されたポイントを階層ツリーを使用してエンコードするステップ420−450を含み、エンコードするステップは、クラスタの周り(すなわちモデルの全てのポイントの周り)にバウンディングボックスを定義するステップ420、バウンディングボックスを再帰的に分割するステップ430であって、それぞれの分割するステップは、親セルを予め定義された数の子セルに分割するステップと、それぞれの分割するステップについて、分割される現在の親セルについて、ポイント数を決定するステップ440、ポイントの数が少なくとも4であるかを判定するステップ、及び、図4a)のステップ40,50,60に関して上述されたように、数が3であるか4である場合にポイントの数をエンコードするステップ、及び次いで、図4a)のステップ70,80,90に関して上述された親セルをエンコードするステップ450を含む。
【0067】
本発明の1実施の形態では、親セルにおけるポイントの数が少なくとも4であり、且つ親セルのポイントが子セルの少なくとも2つに分散されていると判定した場合、分割するステップは効率的であり、第一の示唆がコードに挿入され、子セルのうちの特定の(予め定義された)セルにおけるポイントの数がコードに挿入される。第一の示唆は、(例えば1に設定される単一ビットである)分割が効率的であること示す。さもなければ、親セルの全てのポイントが単一の子セルにあると判定した場合、分割するステップは非効率的であり、(例えばゼロに設定される単一ビットである)分割が非効率的であることを示す第二の示唆がコードに挿入される。次いで、全てのポイントを含む単一の子セルのインデックスが決定され、インデックスは、コードに挿入される。分割するステップにより2を超える子セルが得られた場合、効率的又は非効率的であることの異なる定義に従う異なる実施の形態が可能である。しかし、両者は相補的なものであって、それぞれの分割するステップは、効率的又は非効率的の何れかである。
【0068】
1実施の形態では、分割するステップは、(全ての結果として得られる子ノードが親ノードよりも少ないデータポイントを有するように)親セルのポイントが子セルのうちの少なくとも2つに分散される場合に効率的であると考えられ、全てのポイントが唯一の子セルにある場合に非効率的であると考えられる。この場合、子セルのうちの1つを除くそれぞれにおけるポイントの数は、(例えば分割により4つの子セルが得られる場合に3つの子セルにおけるポイントの数を示す3つの値といった)効率的な分割について必要とされる。
【0069】
別の実施の形態では、子セルの何れもが空である場合に分割するステップは効率的であり、少なくとも1つの子セルが空である場合に非効率的である。この場合、空の子セルのインデックス又は空でない子セルのインデックスの何れかは、取り決めに依存して、非効率的な分割のためにエンコードすることができる。
【0070】
分割するステップにより2つの子セルが得られる場合、上述された実施の形態の両者は同じ結果を導く。
【0071】
図4b)に戻り、再帰的に分割するステップ430は、原理的に2つの機能を有し、1つの機能において、全ての空でない現在の親セルを処理する。第一の親セルであるバウンディングボックスを除いて、全ての親セルは、親の世代となった前の分割ステップの子セルである。図2b)の例では、これは、例えば世代r2である現在の世代の全ての空でない子セルは上述されたように順次に処理されることを意味する。現在の親世代の全ての空でない子セルが処理されたとき、第一の停止条件SC1が満たされ、再帰的な分割ステップ430の第二の機能が実行される。第二の機能では、ステップ435で分裂の次元が変わり、これにより次の子の世代となり、空でないセルの次の世代の処理が開始する。例えば、現在の世代が図2b)においてr2である場合、次の世代はsq2である。従って、ポイントの位置は、繰返しエンコードされる。再帰的な分割は、例えば最小の子セルのサイズ(すなわち所望の空間解像度)又は最大の繰り返し回数(すなわち最大の処理時間)といった、第二の停止条件SC2が満たされたときに終了する。予め定義された最小の子セルのサイズは、エンコードプロセスのターゲットとなる空間解像度に対応する。
【0072】
同じサイズのセルは、本明細書では世代と呼ばれる。上述されたように、分裂の次元を変えるステップ435は、例えばあるセルを水平方向に分裂させて第一世代の子セルを得て、第一世代の子セルを垂直方向に分裂して第二の世代の子セルを得て、及び第二世代の子セルを深さ方向に分裂させて第三の子セルの世代を得るといった、子セルのそれぞれの世代により交互する(すなわち回転する)やり方で行われる。
【0073】
最後に、結果として得られるコードは、ステップ460でエントロピー符号化される。1実施の形態では、何れか1つの分割するステップの全ての子セルは、等しいサイズを有する。
【0074】
図4b)に示される上述された方法ステップに対応して、本発明の1実施の形態では、メッシュモデルをエンコードするエンコーダは、複数のポイントをそれらの空間座標に従って1以上のクラスタにクラスタ化し、階層ツリーを使用してクラスタ化されたポイントをエンコードするエンコード手段を備える。エンコード手段は、クラスタの周りのバウンディングボックスを定義する初期化ユニット、バウンディングボックスを再帰的に分割する再帰的分割ユニットであって、それぞれの分割ステップが親セルを予め定義された数の子セルに分割する、ユニット、それぞれの分割ステップ及び分割されるそれぞれの現在の親セルについてポイントの数を決定し、親セル当たりのポイントの数が少なくとも最少数(それぞれの親セルが2つの子セルに分裂される場合に数は4である)であるかを判定するポイント分散決定ユニット、及び図4a)のステップ40,50,60に関して上述されたように、数が最少数以下である場合にポイント数をエンコードし、図4a)のステップ70,80,90に関して上述されたように、親セルをエンコードするエンコードユニットを有する。
【0075】
図4c)は、本発明の1実施の形態における、メッシュモデルをデコードする方法を示す。この方法は、複数のコードワードと全体のポイント数を示す所期値とを含む少なくとも第一のデータをエンコードされたデータセットから抽出するステップ470、バウンディングボックスをセルに再帰的に分割するステップ475であって、再帰的な分割のそれぞれは、現在の親セルを予め定義された数(2以上)の子セルに分割するステップ、前記子セルに従って前記ポイントの位置を決定するステップ480を含み、現在の親セルにおけるポイントの数が決定され、符号化モードは、現在の親セルにおける決定されたポイント数に従って検出され、k−1の次のコードワードがデコードされる(kは分割するステップの子セルの数)。それぞれのコードワードの長さは、現在の親セルにおけるポイントの数から導出される。現在の親セルにおける決定されたポイントの数が4以下である場合、第一のデコードモードが使用される。第一のデコードモードにおいて、それぞれのコードワードは、mビットを含み、mは、一般にlog2(number_of_points_in_parent_cell)であるか、int(log2(number_of_points_in_parent_cell))に従う整数である。第一のデコードモードにおいて、コードワードの長さmは、上述されたように、子セルのうちの特定の予め定義されたセルにおけるポイントの数を示す。
【0076】
現在の親セルにおける決定されたポイントの数が少なくとも4である場合、コードワードは、コードワードの残りのビットの意味を示す示唆を含み、コードワードの残りのビットは、示唆が第一の値を有する場合に、現在の親セルの現在の分割から得られる子セルのうちの予め定義されたセルにおいて位置するポイントの数を定義するか、現在の親セルの現在の分割から得られ、且つ親セルの全てのポイントを含む子セルを示すインデックスを定義する。子セルに従って前記ポイントの位置を決定するステップ480は、符号化モードを決定し、コードワードにおける示唆を評価することを含む。従って、ポイントの位置は、繰返しデコードされる。
【0077】
図4c)に示される上述された方法ステップに対応して、本発明の1実施の形態では、メッシュモデルをデコードするデコーダは、エンコードされたデータセットから少なくとも第一のデータと全体のポイント数を示す初期値とを抽出する抽出手段、バウンディングボックスをセルに再帰的に分割する再帰的分割手段(例えば制御手段)であって、再帰型分割のそれぞれは、現在の親セルを予め定義された数(2以上)の子セルに分割する、手段、及び前記子セルに従って前記ポイントの位置を決定する決定手段を備える。決定手段は、現在の親セルにおけるポイントの数を決定するユニット(例えばカウンタ)、現在の親セルにおける決定されたポイント数に従って符号化モードを検出する符号化モード検出ユニット、及びk−1だけ次のコードワードをデコードするデコードユニット(kは分割するステップの子セルの数)を備える。コードワード長検出ユニットは(例えば計算機)、上述されたように、現在の親セルにおけるポイント数からそれぞれのコードワードの長さを導出する。
【0078】
図5a)は、本発明の1実施の形態を示し、メッシュモデルをエンコードする方法は、汎用の空間ツリーを構築するステップ110(これは次のステップに暗黙的に含まれる場合がある論理ステップである)、汎用の空間ツリーに従ってメッシュモデルを分析するステップ120、図4b)のブロック410〜450,SC1,SC2に関して上述されたように空間ツリーを横断するステップ130であって、メッシュモデルの第一のエンコードされた表現を得る、ステップ、及びメッシュモデルの第一のエンコードされた表現のエントロピー符号化を実行するステップ460であって、メッシュモデルの第二のエンコードされた表現を得る、ステップ、を含む。
【0079】
図5b)は、本発明の実施の形態を示し、エンコードされたメッシュモデルをデコードする方法は、エンコードされたメッシュモデルのエントロピー復号化を実行するステップ150であって、エントロピー復号化されたメッシュモデルを得る、ステップ、汎用の空間ツリーを復元するステップ160、エントロピー復号化されたメッシュモデルに従って空間ポイントクラスタを復元するステップ170であって、空間ポイントクラスタは、図4c)に関して上述されたように、空間ツリーの枝及び葉にマッピングされる、ステップ、メッシュモデルの空間ポイントを復元するステップ180であって、空間的な位置は、メッシュモデルのそれぞれのポイントと関連される、ステップを含む。
【0080】
また、本発明は、マルチコンポーネント又はマルチコネクト(MC)モデルにおける、すなわち多数の繰返しコンポーネントを有するメッシュモデルにおけるコンポーネントのリファレンスポイントであるポイントのために使用することもできる。以下の2つの実施の形態は、係るMCモデルについて特に有利である。係るケースでは、繰返しコンポーネントの繰り返しの様々な位置は、一度だけエンコード又はデコードされる必要がある、そのような繰り返しコンポーネントとは独立にエンコード/デコードされる。デコードの間、繰返しコンポーネントは、そのデコードされた位置のそれぞれに対してコピーされる。例えばマシンの3Dエンジニアリングモデルにおいて、数回にわたり使用されるスクリューが繰返しコンポーネントとしてエンコードされる。
【0081】
1実施の形態では、本発明は、特にMCメッシュモデルであるメッシュモデルのコンポーネントのリファレンスポイントをエンコードする方法であり、それぞれのリファレンスポイントは、あるコンポーネントを表し、ポイントのエンコードは、階層ツリーを使用し、エンコードは、エンコードされるポイントの周りのバウンディングボックスを定義するステップ、バウンディングボックスを再帰的に分割するステップであって、それぞれの分割するステップは、親セルを予め定義された数(少なくとも2、1実施の形態では、何れか1つの分割するステップの全ての子セルは等しいサイズを有する)の子セルに分割する、ステップ、それぞれの分割するステップについて、現在の親セルについて全体のポイント数及び親セルの全てのポイントが単一の子セルにあるか否かを判定するステップ、及び少なくとも4以上のポイントを含む親セルについて、上述されたように、判定の結果を示す示唆をエンコードするステップを含む。
【0082】
1実施の形態では、本発明は、エンコードされたデータセットから、特にMCメッシュモデルであるメッシュモデルの繰返しコンポーネントのリファレンスポイントをデコードする方法であり、エンコードされたデータセットから、少なくとも、全体のポイントの数を表す値と、複数のポイントの位置データであって、複数のコードワードを定義する第一のデータとを抽出するステップであって、それぞれのコードワードは、バウンディングボックスのセルへの複数の再帰的な分割のうちの1つを示し、それぞれの分割は、現在の親セルを2以上の子セルに分割する、ステップ、前記値と前記第一のデータとに基づいて前記ポイントの位置を決定するステップであって、コードワードのうちの少なくとも幾つかは現在のセルの分割ステップが効率的であるか否かを示す示唆(1ビット)を含む。さらに、デコードする方法は、それぞれのポイントを繰返しコンポーネントで置き換えるステップを含む。
【0083】
1実施の形態では、本発明は、複数の繰返される接続コンポーネントを含むエンコードされたメッシュモデルに関するものであり、エンコードされたメッシュモデルは、少なくとも以下のエンコードされたデータを含む。それぞれ繰返される接続コンポーネントのインスタンス、エンコードされた接続コンポーネントの全体の数、前記繰返される接続コンポーネントの複数の繰返しの位置、前記位置は、ツリー構造(例えばkd−ツリー)としてエンコードされる。メッシュモデルにおけるバウンディング領域。前記バウンディング領域は、ツリー構造が示す最初の親セルである。ツリーとしてエンコードされている位置は、上述されたエンコードを使用する。すなわち、エンコードは、ツリ構造のそれぞれのノードについてコードワードを含む。少なくとも4つのポイントを持つノードについて、コードワードは、現在の親セルのポイントが少なくとも2つの子セルに分散される場合に第一の値を有する示唆であって、現在の親セルのポイントが単一の子セルにある場合に異なる第二の値を有する示唆で開始し、コードワードの残りのビットは、(示唆が第一の値を有する場合に)子セルの予め定義されたセル内に位置されるポイント数−1、又は(示唆が第二の値を有する場合に)親セルの全ての値を含む子セルである現在の親セルの子セルのインデックスを示す。
【0084】
図7は、図6に関して上述されたような、後続する分割ステップのツリータイプの表現の一部を示す。ツリーのルート711において、親セルの垂直方向の分裂は、図6b)に対応してエンコードされる。上述されたように、第一の分割が垂直方向であることは、この場合において予め定義された取り決めである。ノード721,722において、結果として得られる子セルの水平方向の分裂は、図6c1)及びc2)に示されるようにエンコードされる。その子セル732(又はQ3)のうちの1つは空であるように、分割ステップのうちの1つは非効率的である。先に説明されたように、空の子セルは、分裂されておらず、暗黙的にエンコードされるだけである。次のノード731〜734では、第三世代のセルの水平方向の分裂は、図6d1)〜d3)に示されるようにエンコードされる。セルは、図2における正方形Q1〜Q4に対応する。以下のノード741〜746は、図6e1)〜e6)に対応し、更に1つの分割は非効率的であり、従って空の子セル745が得られる。ツリーの残りの部分(図示せず)は、これに応じて構築することができる。それぞれのライン710,720,730,740,750は、セルの世代を示す。本発明に係るエンコードされたメッシュモデルを表すコードは、はじめに全体のポイント数が挿入されたときに、ライン710,720,730等から得ることができる。
【0085】
一般に、第一のコードワードの長さ(全体のポイント数)は固定されている。これは、その長さは、デコードの間に導出することができないからである。上述されたように、他のコードワードの長さは可変であり、それらの長さは、デコードの間に計算することができる。さらに、通常、親セルの1つの分割ステップから得られる全ての子セルは、実質的に等しいサイズを有する。
【0086】
ポイントのエンコード/デコードは、本明細書では、それらの座標のエンコード/デコードを一般に意味する。
【0087】
以下の例示的な実施の形態は、特に有利である。
エンコード方法の1実施の形態では、コードワードの残りのビット量は、示唆がn=integer(log2(m+1))に従って第一の値を有する場合に、現在の親セルにおけるポイントの数に依存する。ここでnはコードワードの残りのビットの量であり、mは現在の親セルにおけるポイントの数である。
【0088】
1実施の形態では、エンコード方法は、入力ポイントをそれらの空間座標に従って1以上のクラスタにクラスタ化する初期ステップを更に含み、ポイントのそれぞれは、入力ポイントのクラスタのリファレンスポイントである。
【0089】
エンコード方法の1実施の形態では、メッシュモデルは、マルチコネクトコンポーネントをもつ3Dメッシュモデルであり、あるクラスタにおけるそれぞれのポイントは、あるコンポーネントを表す。エンコード方法の1実施の形態では、ある親セルの1つの分割ステップから得られた全ての子セルは、等しいサイズを有する。
【0090】
エンコード方法の1実施の形態では、再帰型分割ステップの停止条件として、最多の繰返し数又は最小のセルサイズが定義される。2Dのエンコード方法の1実施の形態では、現在の親セルを分割する再帰型分割ステップは、交互するやり方で水平方向及び垂直方向の分裂を実行し、子セルのうちの予め定義されたセルは、水平方向の分裂について上側又は下側の子セルの何れかであり、垂直方向の分裂について左側又は右側の子セルの何れかである。
【0091】
3Dのエンコード方法の1実施の形態では、現在の親セルを分割する再帰型分割ステップは、交互するやり方で水平方向、垂直方向及び深さの分裂を実行し、子セルのうちの予め定義されたセルは、水平方向の分裂について上側又は下側の子セルの何れか、垂直方向の分裂について左側又は右側の子セルの何れか、及び深さの分裂について前側又は後側の子セルの何れかである。
【0092】
1実施の形態では、それぞれのコードワードの長さが可変であり、デコード方法は、所与のルールに従ってコードワードの長さを計算するステップを更に含む。ルールに従って、コードワードの前記残りのビットの量は、n=integer(log2(m+1))又はn=log2(m+1)に従って、現在の親セルにおけるポイント数から計算される。ここでnはコードワードの残りのビットの量であり、mは現在の親セルにおけるポイント数である。
【0093】
デコード方法の1実施の形態では、メッシュモデルは、繰返される接続コンポーネントの複数のインスタンスを含む3Dメッシュモデルであり、前記ポイントのそれぞれは、前記インスタンスのうちの1つの位置を示すリファレンスポイントであり、この方法は、繰返しコンポーネントの複数のインスタンスを生成し、それぞれのリファレンスポイントの位置に従ってそれぞれの繰返しを発見する最終ステップを更に含む。
【0094】
デコード方法の1実施の形態では、ある親セルの1つの分割ステップから得られる全ての子セルは、等しいサイズを有する。
【0095】
デコード方法の1実施の形態では、最多の反復回数又は最小のセルサイズは、再帰型分割ステップの停止条件として定義される。
【0096】
2Dのデコード方法の1実施の形態では、現在の親セルを分割する再帰型分割ステップは、交互するやり方で水平方向と垂直方向の分裂を行い、子セルの予め定義されたセルは、水平方向の分裂について上側又は下側の子セルの何れかであり、垂直方向の分裂について左側又は右側の子セルの何れかである。
【0097】
3Dのデコード方法の1実施の形態では、現在の親セルを分割する再帰型分割ステップは、交互するやり方で水平方向、垂直方向及び深さの分裂を実行し、子セルのうちの予め定義されたセルは、水平方向の分裂について上側又は下側の子セルの何れかであり、垂直方向の分裂について左側又は右側の子セルの何れかであり、深さの分裂について前側又は後側の子セルの何れかである。
【0098】
1実施の形態では、エンコードされたメッシュモデルは、複数の繰返される接続コンポーネントを含み、エンコードされたメッシュモデルは、それぞれの繰返される接続コンポーネントの少なくとも1つのインスタンスのエンコードされたデータ、前記繰返される接続コンポーネントの複数の繰返しの位置であって、kdツリーとしてエンコードされた位置、メッシュモデル内のバウンディング領域であって、kdツリーが示す最初の親セルであるバウンディング領域を含む。kdツリーとしてエンコードされる位置は、kdツリーのそれぞれのノードについてコードワードを含むエンコードを使用し、コードワードは、現在の親セルのポイントが少なくとも2つの子セルに分散される場合に第一の値を有する示唆であって、現在の親セルの位置が1つの子セルにある場合に異なる第二の値を有する示唆で開始する。コードワードの残りのビットは、(示唆が第一の値を有する場合に)子セルのうちの予め定義されたセルに位置されるポイントの数、又は(示唆が第二の値を有する場合に)親セルの全てのポイントを含む子セルである、現在の親セルの子セルのインデックスを示す。
【0099】
本発明の例となる実施の形態に適用されるものとして本発明の基本的な新たな特徴が図示、説明及び指摘されたが、本発明の精神から逸脱することなしに、記載された装置及び方法において、開示された装置の形態及び詳細において、及びそれらの動作において、様々な省略及び置換え並びに変更が当業者により行われる場合があることを理解されたい。例えば、本発明は正方形の2倍のサイズを有する矩形であるバウンディングボックスに関して開示されたが、それらの分裂により正方形ではない矩形が得られるとしても、本明細書で記載された方法及び装置は何れかの矩形のバウンディングボックスに適用される場合があることを認識されたい。全ての上述された取り決めは、本発明の範囲から逸脱することなしに自由に修正することができる。先の例では、バウンディングボックスの第一の分割ステップは垂直方向であるが、水平方向である場合もある。従って、所与の数の水平方向及び垂直方向の分割ステップのシーケンシャルな順序を変更することができる。
【0100】
さらに、例において使用される暗黙的な取り決めが変更される場合がある。例えば図2b)及び先の関連する例に関して、取り決めは、ある世代(例えばQ1)の全ての現在の親セルが、それらの祖父母のセルに係わらず、毎に又は列毎にシーケンシャルに処理されるといった場合がある。別の取り決めは、世代j(例えばsq1)の全ての現在のセルが、その世代の次の祖父母のセルに入る前に、前の世代j−x(例えばQ1内)のそれぞれの祖父母のセルにおいて、行毎又は列毎にシーケンシャルに処理されるといった場合がある。さらに、別の取り決めは、上述された例において行われたように、処理における所定のポイントで2つの先の取り決めの間で切り替えるといった場合がある。
【0101】
同じ結果を達成する実質的に同じやり方で実質的に同じ機能を行うエレメントの全ての組み合わせは本発明の範囲にあることが明示的に意図される。1つの記載された実施の形態から別の記載された実施の形態へのエレメントの置換えが十分に意図される。
【0102】
本発明は例を通して単に記載され、本発明の範囲から逸脱することなしに詳細の変更を行うことができる。詳細な説明及び(必要に応じて)特許請求の範囲及び添付図面において開示されるそれぞれの特徴は、独立に又は適切な組み合わせで提供される場合がある。特徴は、必要に応じて、ハードウェア、ソフトウェア、又は両者の組み合わせで実現される場合がある。
【0103】
請求項で現れる参照符号は、例示するのみであって、請求項の範囲に限定的な影響を有するものではない。
図1
図2a)】
図2b)】
図3a)】
図3b)】
図4a)】
図4b)】
図4c)】
図5a)】
図5b)】
図6-1】
図6-2】
図7