(57)【特許請求の範囲】
【請求項１】
階層ツリーを使用してメッシュモデルのポイントをエンコードする方法であって、
当該方法はエンコーダにより実行され、当該方法は、
全体のポイント数である値をエンコードする段階と、
前記メッシュモデルのポイントの周りのバウンディングボックスを再帰的に分割する段階であって、それぞれの分割する段階が現在の親セルを予め定義された数の子セルに分割する、段階とを含み、
前記それぞれの分割する段階は、
前記現在の親セルと前記現在の親セルに含まれる全体のポイントの数とを決定する段階と、
前記現在の親セルが少なくとも最少数のポイントを含むか否かを判定する段階と、
前記現在の親セルが少なくとも前記最少数のポイントを含まない場合、前記子セルのうちの予め定義されたセルにおけるポイントの数を含むコードワードをエンコードする段階と、
前記現在の親セルが少なくとも前記最少数のポイントを含む場合、ポイント分散を判定する段階であって、前記現在の親セルの全てのポイントが現在の分割する段階による１つの子セルの中にあるか否かを判定する段階と、
示唆から開始するコードワードをエンコードする段階とを実行し、
前記現在の親セルの全てのポイントが、決定された前記ポイント分散に従う１つの子セルの中にない場合、前記示唆は、第一の値を有し、前記コードワードの残りのビットは、前記子セルのうちの予め定義されたセルにおけるポイントの数から１だけデクリメントされた数であるポイント数を示し、
前記現在の親セルの全てのポイントが、決定された前記ポイント分散に従う１つの子セルの中にある場合、前記示唆は、異なる第二の値を有し、前記コードワードの残りのビットは、前記親セルの全てのポイントを含む前記１つの子セルを識別するインデックスを示す、
方法。
【請求項２】
前記示唆が前記第一の値を有する場合、前記コードワードの残りのビットの量は、ｎ＝ｉｎｔｅｇｅｒ（ｌｏｇ２（ｍ＋１））又はｎ＝ｌｏｇ２（ｍ）に従って前記現在の親セルにおけるポイント数に依存し、ｎは前記コードワードの残りのビットの量であり、ｍは前記現在の親セルにおけるポイント数である、
請求項１記載の方法。
【請求項３】
入力ポイントをそれらの空間座標に従って１以上のクラスタにクラスタ化する初期段階を更に含み、前記ポイントのそれぞれは、複数の入力ポイントのクラスタのリファレンスポイントである、
請求項１又は２記載の方法。
【請求項４】
前記メッシュモデルは、複数の接続コンポーネントをもつ３Ｄメッシュモデルであり、クラスタのそれぞれのリファレンスポイントはコンポーネントを表す、
請求項３記載の方法。
【請求項５】
メッシュモデルのポイントをデコードする方法であって、当該方法はデコーダにより実行され、当該方法は、
エンコードされたデータセットから、複数のコードワードと全体のポイント数を示す初期値とを含む第一のデータを少なくとも抽出する段階と、
デフォルトデータ又は前記エンコードされたデータセットから抽出されたバウンディングボックスデータに基づいて、バウンディングボックスを生成する段階と、
バウンディングボックスを複数のセルに再帰的に分割する段階であって、再帰的な分割のそれぞれが、現在の親セルを２以上の子セルに分割し、コードワードが、前記子セルのうちの１つのセルを親セルについて決定する、段階と、
前記子セルに従って前記ポイントの位置を決定する段階と、を含み、
前記複数のコードワードのそれぞれは、前記コードワードの残りのビットの意味を示す示唆を含み、前記示唆は評価され、
前記コードワードの残りのビットは、前記示唆が第一の値を有する場合には、前記現在の親セルの現在の分割からの前記子セルのうちの所定のセル内に位置するポイントの数を決定し、又は、前記示唆が第二の値を有する場合には、前記現在の親セルの現在の分割からの子セルであって前記親セルの全てのポイントを含む子セルを示すインデックスを決定する、方法。
【請求項６】
それぞれのコードワードの長さは可変であり、
当該方法は、所与のルールに従って前記コードワードの長さを計算する段階を更に含み、
前記コードワードの残りのビットの量は、ｎ＝ｉｎｔｅｇｅｒ（ｌｏｇ２（ｍ＋１））に従って前記現在の親セルにおけるポイント数から計算され、ｎは前記コードワードの残りのビットの量であり、ｍは前記現在の親セルにおけるポイントの数である、
請求項５記載の方法。
【請求項７】
前記メッシュモデルは、繰返される接続コンポーネントの複数のインスタンスを含む３Ｄメッシュモデルであり、
前記ポイントのそれぞれは、前記インスタンスのうちの１つの位置を示すリファレンスポイントであり、
当該方法は、
前記繰返される接続コンポーネントの前記複数のインスタンスを生成し、それぞれのリファレンスポイントの位置に従ってそれぞれの繰返しを発見する段階を更に含む、
請求項５又は６記載の方法。
【請求項８】
現在の親セルを分割する再帰的に分割する段階は、前記メッシュモデル及び前記バウンディングボックスが２次元的である場合には、交互に水平方向及び垂直方向の分割を実行し、前記メッシュモデル及び前記バウンディングボックスが３次元的である場合には、交互に水平方向、垂直方向及び深さ方向の分割を実行し、
前記子セルのうちの所定のセルは、水平方向の分割については上側又は下側の子セルの何れかであり、垂直方向の分割については左側又は右側の子セルの何れかであり、深さ方向の分割については前側又は後側の子セルの何れかである、
請求項１乃至４のうちの何れか１項に記載の方法。
【請求項９】
親セルを１回分割することにより得られる全ての子セルは、等しいサイズを有する、
請求項１乃至４又は８のうちの何れか１項に記載の方法。
【請求項１０】
再帰的に分割する段階の停止条件として最多の反復数又は最小のセルサイズが定義される、
請求項１乃至４、８又は９のうちの何れか１項に記載の方法。
【請求項１１】
現在の親セルを分割する再帰的に分割する段階は、前記メッシュモデル及び前記バウンディングボックスが２次元的である場合には、交互に水平方向及び垂直方向の分割を実行し、前記メッシュモデル及び前記バウンディングボックスが３次元的である場合には、交互に水平方向、垂直方向及び深さ方向の分割を実行し、
前記子セルのうちの所定のセルは、水平方向の分割については上側又は下側の子セルの何れかであり、垂直方向の分割については左側又は右側の子セルの何れかであり、深さ方向の分割については前側又は後側の子セルの何れかである、
請求項５又は６に記載の方法。
【請求項１２】
親セルを１回分割することにより得られる全ての子セルは、等しいサイズを有する、
請求項５、６又は１１に記載の方法。
【請求項１３】
再帰的に分割する段階の停止条件として最多の反復数又は最小のセルサイズが定義される、
請求項５、６、１１又は１２に記載の方法。
【請求項１４】
請求項１乃至４又は請求項８乃至１０のうちの何れか１項に記載の方法を実行するように形成される処理エレメントを有する、メッシュモデルのポイントをエンコードするエンコーダ。
【請求項１５】
請求項５乃至７又は請求項１１乃至１３のうちの何れか１項に記載の方法を実行するように形成される処理エレメントを有する、メッシュモデルのポイントをデコードするデコーダ。
【請求項１６】
請求項１乃至４又は請求項８乃至１０のうちの何れか１項に記載のメッシュモデルをエンコードする方法を、コンピュータに実行させる実行可能な命令を記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１７】
請求項５乃至７又は請求項１１乃至１３のうちの何れか１項に記載のメッシュモデルをデコードする方法を、コンピュータに実行させる実行可能な命令を記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メッシュモデルをエンコードする方法、対応するエンコーダ装置、エンコードされたメッシュモデル、メッシュモデルをデコードする方法及び対応するデコーダ装置に関する。
【背景技術】
【０００２】
１９９０年初期以来、３Ｄメッシュを効率的に圧縮するために様々なアルゴリズムが提案されている。しかし、初期の研究は、平滑な表面と微小な三角形をもつ単一の接続された３Ｄモデルを圧縮することに大部分が集中している。今日の３Ｄエンジニアリングモデルの大部分において、多数の小〜中サイズの接続コンポーネント（connected  component）があり、それぞれが平均で２〜３百までの多角形を有している。このタイプのモデルは、様々な位置、スケール及び向きで繰り返される多数の幾何学的な特徴又はコンポーネントを有することがある。係るモデルは、いわゆる多重接続される。コンポーネントは、個別に圧縮され、比較的非効率的な圧縮をもたらす。圧縮性能は、異なる接続コンポーネント間の冗長度を除くことで非常に増加される。大型の３Ｄエンジニアリングモデルにおける繰り返す幾何学的な特徴を自動的に発見する様々な方法が知られている。それらのそれぞれの位置は、コンポーネント当たり少なくとも１つのリファレンスポイントの３Ｄ位置により定義される。しかし、１つの問題は、それぞれのリファレンスポイントの位置をどのようにエンコードするかである。
【０００３】
空間ポイントの効率的な圧縮アルゴリズムの大部分は、例えば（[OG02]：O.Devillers,  P.Gandoinによる“Geometric  Compression  for  interactive  transmission”，IEEE  Visualization,  2000,  pp.319-326におけるような）ｋｄツリーベース、又は（[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におけるような）八分木ベースといった空間ツリーに基づいている。
【０００４】
これらのアルゴリズムは、所与の空間をセグメントに分割し、それぞれの特定のセグメントにある入力の空間ポイントの数を提供する。従って、これらのアルゴリズムは、暗黙の空間ツリーにより入力の空間ポイントを編成する。次いで、これらのアルゴリズムは、ツリー構造を横断し、入力ポイントの後の回復のために必要な情報を記録する。空間ツリーを構築するとき、それぞれの空でないセルが１つの頂点のみを含み且つポイントの位置の十分に正確な再構成を可能にするように十分に小さくなるまで、あるセルが再帰的に細分される。
【０００５】
セルはノードに対応する。はじめに、全ての３Ｄポイントの全体のバウンディングボックスは、セル又はノードとして考えられる。ポイントの位置は対応するセルのバウンディングボックスから復元することができるので、空間ツリーに基づくアルゴリズムは、１つの解像度の圧縮アルゴリズムと同じ圧縮率で多重解像度の圧縮を達成することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
[OG02]で使用される方法の例は、図１に示される。親セルが２つの子セルに細分されるたびに、２つの子セルのうちの１つ（例えば左又は上）におけるポイントの数がエンコードされる。親セルがｐ個のポイントを含む場合、子セルのうちの１つにおけるポイントの数は、算術コーダによりlog2(p+1)を使用してエンコードされる。
【０００７】
それとは異なり、[PK05]は、空でないセルを８つのセルに細分し、それぞれのセルの分割後に空でない子セルのインデックスのみをエンコードする。符号化効率を改善するため、[PK05]は、空でない子セルのグループとなるように様々なＴタプルの擬似確率を推定する。子セルの横断の順序は、確率の降順に従う。
【０００８】
しかし、コンパクトなストレージ及び高速な伝送を可能にするため、圧縮アルゴリズムの効率をどのように高めるかが絶え間のない問題である。
【課題を解決するための手段】
【０００９】
本発明は、以下の事実の認識に基づいている。空間ツリーによる空間ポイントを編成及び圧縮する効率は、それぞれの子ツリーノードがその親ツリーノードよりも少ないデータポイントを含むかに主に依存する。子ノードがその親ノードと同じデータポイントを含む場合（又はその親と同じ数のデータポイントを含む場合）、対応する分割は、効果的ではない。係る非効率的な分割は、符号化データの量を増加させ、従って圧縮効率を減少させる。より多くの分割が非効率であると、圧縮率が低くなる。
【００１０】
本発明の利点は、非効率的な分割により生じる圧縮効率における減少を回避することであり、従って圧縮が改善される。
【００１１】
本発明によれば、はじめにメッシュモデルの入力ポイントは、それらの空間的な位置に従ってクラスタ化される。それぞれのクラスタは、空間的に集合されたポイントのセットを含む。次いで、それぞれのクラスタは、（ｋｄツリー又は八分木のような）空間ツリーを使用して圧縮される。それぞれの分割について、判定するステップは、２つの状態を判定する。第一に、親セルにおけるポイントの数、及び第二に、分割が効率的であるか、すなわち全ての結果として得られる子ノードが親ノードよりも少ないデータポイントを有するか。１実施の形態では、親セルが全体で所与の最少のポイント数未満である場合、分割は、従来のようにエンコードされ、すなわちコードは、子セルのうちの定義されたセルにおけるポイントの数を示す。しかし、少なくとも最少のポイント数をもつ親セルの分割は、異なってエンコードされる。
【００１２】
従来のエンコードが使用されるか又はモードの示唆による符号化モードのうちの１つが使用されるかの判定において使用される最少のポイント数は、親セル当たり及び分割動作当たりの子セルの数に依存する。親セルの２つの子セルへの分割について、最少数は４である。親セルの２を超える子セルへの分割について、最小数は４よりも高い。従って、以下で与えられる全ての例について、符号化モードが決定される最少のポイント数（又は符号化モード決定の制限）は４であるが、この数は、親セルの分割により２を超える子セルが得られる場合には異なる場合がある。
【００１３】
ｐを少なくとも４であるとして親セルが全体でｐポイントを有し、且つ子セルのうちの定義されたセルにおいてｐ1ポイント（０＜ｐ1＜ｐ）が存在するように分割が効率的である場合、効率的な分割は、ｐ1−１のエンコードされた値、すなわち子セルにおけるポイント数−１によりエンコードされる。
【００１４】
ｐを少なくとも４であるとして親セルが全体でｐポイントを有し、且つ分割が効率的ではない場合、全てのポイントは子セルのうちの１つのみにあり、分割は、以下のようにエンコードされる。ポイント数の代わりに、コードは、予め定義されたインデックススキームを使用して、空ではない子ノードのインデックスを示す。
【００１５】
親セルが少なくとも４つのポイントを有するときに２つの符号化スキーム（すなわち効率的又は非効率的な分割）間で異なるため、ツリーノード当たりの更なるモード示唆は、結果コード又は出力データストリームに挿入される。モード示唆は、対応する分割が効果的であるか否かを示す。
【００１６】
エンコードにより、空間ツリーとして考えることができる新たな種類のエンコードフォーマットが得られ、少なくとも４つのポイントをもつそれぞれのツリーノードについて、対応する分割が効率的であるか、すなわち分割された親セルの全てのポイントが１つのみの子セルにあるか否かを示す示唆を含む。それぞれの分割について、上述されたフォーマットにおける圧縮されたデータは、結果として生じる。すなわち、（親セルにおける全体のポイント数が４以下である場合）子セルのうちの１つにおけるポイント数、又は（親セルにおける全体のポイント数が少なくとも４であって且つ分割が効率的である場合）１だけデクリメントされる子セルにおけるポイント数、或いは（親セルにおける全体のポイント数が少なくとも４であって且つ分割が効率的ではない場合）空でない子ノードのみのインデックス。有利なことに、インデックスは、ポイント数が少なくとも４である場合に、エンコードされたポイント数よりも少ないビットを使用する。
【００１７】
本発明に従ってエンコードフォーマットでのデータのデコードの間、空間ツリーを横断するとき、それぞれの分割について、現在の親セルにおけるポイントの数が計算又は決定され、現在の分割が効率的であるかを検出するために示唆（例えば１ビット）が分析される。
【００１８】
１実施の形態では、本発明は、メッシュモデルのポイントをエンコードする方法に関し、全体のポイント数を決定し、決定された全体のポイント数をコードに挿入するステップであって、予め定義されたコードワード長が使用される、ステップと、それらの空間座標に従ってポイントを１以上のクラスタにクラスタ化するステップ、階層ツリーを使用してクラスタ化されたポイントをエンコードするステップであって、エンコードは、クラスタの周り（すなわちモデルの全てのポイントの周り）でバウンディングボックスを定義するステップを含む、ステップと、バウンディングボックスを再帰的に分割するステップであって、それぞれ分割するステップは、親セルを予め定義された数の子セル（少なくとも２つ）に分割するステップと、それぞれ分割するステップについて、現在の親セルについて含まれるポイント数を決定するステップと、親セルの全てのポイントが単一の子セル内にあるか否かを決定するステップと、決定するステップの結果を示す示唆をエンコードするステップと、を含む。
【００１９】
親セルにおける全体のポイント数が４以下であると判定された場合、子セルのうちの特定の（予め定義された）セル内になるポイントの数がコードに挿入される。
【００２０】
親セルにおける全体のポイント数が４を超え且つ親セルのポイントが少なくとも２つの子セルに分散されていると判定された場合、分割するステップは効果的であり、（例えば１に設定される単一ビットによる）分割が効率的であることを示す第一の示唆、及び子セルのうちの特定の（予め定義された）セル内のポイント数がコードに挿入される。
【００２１】
親セルにおける全体のポイント数が４を超え且つ親セルの全てのポイントが単一の子セル内にあると判定された場合、分割するステップは非効率的であり、（例えばゼロに設定される単一ビットにより）分割の非効率さを示す第二の示唆がコードに挿入され、親セルの全てのポイントを含む単一の子セルのインデックスが決定され、インデックスはコードに挿入される。
【００２２】
分割が２を超える子セルとなる場合、符号化モード判定制限は、４よりも高くなる場合があり、挿入の前にインデックスがエンコードされる。インデックスをエンコードするために使用されるビット量は、分割するステップから得られる子セルの数から導出することができる。
【００２３】
１つの態様では、メッシュモデルのポイントをデコードする方法は、エンコードされたデータセットから、少なくとも、全体のポイント数を表す値と、複数のポイントのうちの位置データである第一のデータであって、複数のコードワードを定義する第一のデータとを抽出するステップであって、それぞれのコードワードがバウンディングボックスのセルへの複数の再帰的な分割のうちの１つを示し、それぞれの分割が現在の親セルを２以上の子セルに分割する、ステップと、前記値と前記第一のデータとに基づいて前記ポイントの位置を決定するステップであって、コードワードの少なくとも幾つかは、現在のセルの分割するステップが効率的であるか否かを示す示唆（１ビット）を含む、ステップとを含む。それぞれのコードワードの長さは、固定されるか又は可変であり、可変である場合、その長さ及び値は、所与のルールに従ってデコードの間に計算することができる。
【００２４】
それぞれの現在の親セルについて、現在の親セルが含む全体のポイント数が決定される。１実施の形態では、全体のポイント数が前に計算されて記憶され、ストレージから読み出される。また、決定されたポイント数をエンコードするために使用されたビット数が計算され、コードワード長を決定するために後に使用される。全体のポイント数が４以下である場合、対応するコードワードが上述された示唆を有さず、子セルのうちの予め定義されたセルにおけるポイント数として解釈される。全体のポイント数が少なくとも４である場合、対応するコードワードは、前記示唆で開始し、示唆が評価される。示唆に依存して、コードワードの残りのビットは、２つの意味を有する。コードワードの残りのビットは、現在の親セルの現在の分割から得られる子セルのうちの予め定義されたセル内に位置するデクリメントされたポイント数である。コードワードの残りのビットがデクリメントされたので、実際のポイント数を取得するために１だけインクリメントされる必要がある。又は、コードワードの残りのビットは、現在の親セルの現在の分割から得られる子セルのインデックスである。インデックスは、親セルの全てのポイントを含む１つの子セルの識別子である。コードワード長が変数である場合、先に判定されたビット数（＋フラグのために１ビット）は、現在のコードワード長である。第一のコードワード（すなわちモデルにおける全体のポイント数）についてのように、コードワード長が固定された場合、予め定義される。デコードの間、それぞれの頂点の位置は、所与の終了条件に応答してデコードが終了されるまで、連続して類似の子セルに再帰的に特定される。
【００２５】
本発明は、マルチコンポーネントモデルにおけるコンポーネントのリファレンスポイントであって、且つモデルの頂点のクラスタを示すポイントについて使用される。原理的に、本発明は、メッシュモデルの頂点であるポイントであって且つ座標により定義される他の大きなポイントのグループについても使用することができる。
【００２６】
一般に、少なくとも空ではないセル内において、親セル内のポイント数を追跡することが必要である。例えば、空ではない子セルにおけるポイント数は、次の分割後、子セルが親セルとなるまで記憶される。次いで、親セルにおけるポイント数を決定するときに、ストレージから数が読み出される。
【００２７】
本発明は、エンコードする装置に更に関するものであり、複数のポイントの空間座標に従って複数のポイントを１以上のクラスタにクラスタ化するクラスタリング手段、及びクラスタ化されたポイントをエンコードするエンコード手段を備える。エンコード手段は、クラスタの周りにバウンディングボックスを定義する初期化ユニット、バウンディングボックスを再帰的に分割する再帰的分割ユニットであって、前記再帰的分割のそれぞれの分割ステップは、親セルを予め定義された数の子セルに分割する、再帰的分割ユニット、それぞれの分割するステップ及び分割されるそれぞれの現在の親セルについて、ポイント数を決定し、親セル当たりのポイントの数が少なくとも４であるかを判定するポイント分散判定ユニット、及び上述されたようにポイント数が４以下である場合にポイント数をエンコードし、ポイント数が少なくとも４である場合に、上述されたように子セル又は子セルインデックスにおけるポイントのデクリメントされた数をエンコードするエンコードユニットを備える。
【００２８】
さらに、メッシュモデルをデコードするデコーダに関するものであって、エンコードされたデータセットから、少なくとも第一のデータと全体のポイント数を示す初期値を抽出する抽出手段、バウンディングボックスをセルに再帰的に分割する再帰的分割手段であって、再帰的分割のそれぞれは、現在の親セルを子セルに分割する、再帰的分割手段、及び前記子セルに従って前記ポイントの位置を決定する決定手段を備える。決定手段は、現在の親セルにおけるポイントの数を決定するユニット、現在の親セルにおける決定されたポイントの数に従って符号化モードを検出する符号化モード検出ユニット、現在の親セルにおけるポイントの数からそれぞれのコードワードの長さを導出するコードワード長検出ユニット、及び次のコードワードをデコードするデコードユニット、を備える。
【００２９】
１つの態様では、本発明は、上述されたエンコードするステップを含む方法をコンピュータに実行させる実行可能な命令を記憶したコンピュータ読み取り可能な媒体に関連する。１つの態様では、本発明は、上述されたデコードするステップを含む方法をコンピュータに実行させる実行可能な命令を記憶したコンピュータ読み取り可能な媒体に関連する。
【００３０】
１実施の形態では、本発明は、複数の繰返される接続コンポーネントを含むエンコードされたメッシュモデルに関し、エンコードされたメッシュモデルは、少なくとも以下のエンコードされたデータを含む。それぞれの繰返される接続コンポーネントのインスタンス、エンコードされた接続コンポーネントの全体数、前記繰返される接続コンポーネントの複数の繰返しの位置であって、ツリー構造（例えばｋｄツリー）としてエンコードされる位置、及びメッシュモデルのバウンディング領域を定義するデータ。バウンディング領域は、ツリー構造が参照する最初の親セルである。ツリーとしてエンコードされる位置は、上述されたエンコードを使用する。すなわち、エンコードは、ツリー構造のそれぞれのノードのコードワードを含み、少なくとも４つのポイントによるノードについて、コードワードは、現在の親セルのポイントが少なくとも２つの子セルに分散される場合に第一の値を有する示唆で開始し、現在の親セルのポイントが単一の子セルにある場合に異なる第二の値を有する示唆で開始する。コードワードの残りのビットは、子セルのうちの予め定義されたセル内に位置されるポイント数（すなわち示唆が第一の値を有する場合）−１を示すか、又は、親セルの全てのポイントを含む子セルである（示唆が第二の値を有する場合）、現在の親セルの子セルのインデックスを示す。
【００３１】
本発明の有利な実施の形態は、従属の請求項、以下の説明及び図面において開示される。
【図面の簡単な説明】
【００３２】
本発明の例となる実施の形態は、添付図面を参照して記載される。
【図１】２Ｄの例におけるｋｄツリーの原理を示す図である。
【図２】効率的及び非効率的な分割を使用したｋｄツリーにおけるデータポイントの編成を示す図である。
【図３ａ】異なる次元における３Ｄ親セルの分割を示す図である。
【図３ｂ】水平、垂直及び深さの次元における３Ｄ親セルの連続する分割を示す図である。
【図４ａ】符号化判定ステップのフローチャートである。
【図４ｂ】エンコード方法のフローチャートである。
【図４ｃ】デコード方法のフローチャートである。
【図５ａ】メッシュモデルのエンコード方法のフローチャートである。
【図５ｂ】メッシュモデルのデコード方法のフローチャートである。
【図６】コード例の詳細を示す図である。
【図７】コードツリーを示す図である。
【発明を実施するための形態】
【００３３】
図１は、２Ｄケースにおける従来のｋｄツリー符号化の原理を示す。２Ｄモデルのポイントは、バウンディングボックス１０により含まれる。７つのポイントは、親セル内に位置する。ｋｄツリーエンコードアルゴリズムは、予め定義されたビット数を使用して全体のポイントの数をエンコードすることで開始し、次いで、セルを再帰的に分割する。ｋｄツリーエンコードアルゴリズムが親セルを子セルに分割するたびに、２つの子セルのうちの１つにおけるポイント数をエンコードする。以下の例は、（水平方向の分割後に）左側の子セルにおけるポイントの数をエンコードし、（水平方向の分割後に）上側のセルにおけるポイントの数をエンコードする。これらの取り決めは、互いに独立に変更される場合がある。親セルがｐ個のポイントを含む場合、子セルのうちの１つにおけるポイントの数は、算術コーダによりlog2(p+1)ビットを使用してエンコードされる。この分割は、それぞれの空のセルが唯一のポイントを含み且つポイントの位置の十分に正確な再構成を可能にするために十分に小さくなるまで再帰的に適用される。（ポイントが頂点であるか又はクラスタのリファレンスポイントであるかに関わらず）メッシュモデルの全てのポイントの位置を圧縮するため、アルゴリズムは、第一の分割ステップについて現在の親セルとして考えられる全ての位置の全体のバウンディングボックス１０で開始する。
【００３４】
図１の例において、第一のエンコードされた値は、３２ビットを使用してエンコードされる、全体のポイント数（７）である。次いで、左側の子セルＶ１及び右側の子セルＶ２が得られるように、垂直方向の分割が適用される。次の符号化ステップでは、４である左側の子セルＶ１におけるポイントの数がエンコードされる。エンコードのために使用されるビット数は、親セル内のポイント数により決定され、log2(7+1)=3ビットである。従って、第二のコードワードは、数４であり、３ビットを使用してエンコードされる。親セルにおけるポイントの数及び左側の子セルＶ１におけるポイント数から、右側の子セルＶ２におけるポイント数は、7-4=3となるように計算される。従って、エンコードされる必要がない。
【００３５】
次のステップでは、前のステップの子セルに水平方向の分割が適用される。現在の親セルＶ１である左側の子セルＶ１は、上側の子セルＶ１Ｈ１及び下側の子セルＶ１Ｈ１に分割される。同様に、親セルＶ２である右側の子セルＶ２は、上側の子セルＶ２Ｈ１と下側の子セルＶ２Ｈ２に分割される。エンコードは、２つのポイントを有する上側で左側の子セルＶ１Ｈ１を続ける。従って、数２が次にエンコードされ、log2(4+1)=2.3ビットが算術コーダで使用される（又は丸めの後に３ビット）。上述されたように、下側で左側の子セルＶ１Ｈ２におけるポイントの数は、エンコードされる必要がない。それは、下側で左側の子セルＶ１Ｈ２におけるポイントの数は、左側のセルＶ１及び上側で左側の子のセルＶ１Ｈ１におけるポイントの数から推測することができるからである。次いで、同じ手順が右側のセルＶ２に適用され、これにより２ビットを使用したゼロのエンコードが行われる。図１に示されるように、それぞれのポイントが個別のセルにあるまで２を超える分割ステップが必要であり、それぞれのポイントがそのセルにおいて十分に発見されるまで更に多くのステップが必要である。それぞれのステップは、ポイントの位置のエンコードの精度を増加させるが、１ｓ又は０ｓの数の増大のエンコードを必要とする。必要とされる精度に依存して、更なるステップの数は多くなる場合がある。
【００３６】
ポイントは、頂点又はクラスタのリファレンスポイントである場合がある。すなわち、本発明は、少なくとも頂点の位置をエンコードするか又は繰返される接続コンポーネントの位置をエンコードするため、改善されたｋｄツリー符号化アルゴリズムを適用する場合がある。さらに、改善されたｋｄツリーアルゴリズムは、１Ｄ，２Ｄ又は３Ｄ空間における任意の種類の空間的な位置をエンコードするために使用される場合がある。
【００３７】
図２は、２Ｄメッシュモデルのバウンディングボックス２０内で幾つかのポイント２１〜２５が位置されるｋｄツリーの例を示す。また、本発明は１Ｄモデル又は３Ｄモデルにも適用することができる。３Ｄメッシュのエンコードへの原理の適用は、以下に更に説明される。以下に記載されたステップは、図６にも示される。多くの大型のメッシュモデルの場合におけるように、ポイントの位置は、バウンディングボックス内で非常に非一様に分散される。この例では、改善されたｋｄツリー符号化アルゴリズムは、ポイントの位置をエンコードするために適用され、要求される精度は、クラスタが十分に発見される前に５つの最初の分割（division）又は分裂（splitting）ステップが必要とされることであることが想定される。精度は、分裂ステップの数を増加させることで増加させることができ、分裂ステップの数を減少させることで減少させることができる。さらに、この例では、効率的な分割の効率的であることの示唆は、“１”によりエンコードされること（１＝効率的、０＝非効率的）、子のセルのインデックスは、上側又は左側の子のセルについて“１”により再帰的にエンコードされ、下側又は右側の子セルについて“０”によりエンコードされることが慣習により定義される。なお、これらの取り決めは、本発明又はコードの効率に影響を及ぼすことなしに異なって定義される場合がある。
【００３８】
第一のコードワードは、（例えば潜在的な全体のポイント数に依存して３２ビットといった）予め定義されたビット数を使用して、全体のポイントの数である。さらに、１３である、モデルにおける全体のポイント数が決定され、全体のポイント数が３を超えることが決定される。第一の分割ステップでは、バウンディングボックス２０である親セルは、２つの矩形である左側（Ｑ１＋Ｑ３）及び右側（Ｑ２＋Ｑ４）に垂直方向に分割される。図６ｂ）を参照されたい。全体のポイントの数は少なくとも４であるので、本発明に係る符号化モードビット（“効率的”ビット）が使用され、両方の結果として得られる矩形はポイントを含むので、分割は効率的である。従って、第二のコードワードは、左側の子セルにおけるポイントの数（６）から１だけデクリメントされた値５により後続される、効率的であることの示唆（１＝“効率的”）である。第二のコードワードは、４ビットを使用してエンコードされる。これは、親セルにおける全体のポイント数をエンコードするために４ビットが必要とされるからである（int(log2(13))=4）。すなわち、図３の例では、コードの開始は、以下の通りである。１３（全体のポイント数、３２ビット）、１（効率的ビット）、５（第１世代の左側の子セルにおけるポイントの数−１、４ビット）。
【００３９】
第二の分割ステップは、４つの正方形Ｑ１，．．．，Ｑ４が得られるように、矩形の水平方向の分割を行う。図６ｃ１）及び図６ｃ２）を参照されたい。前のステップから、２つの矩形の親セルのそれぞれが少なくとも４つのポイントを含むことが知られている。左側の矩形に関して、分割は非効率的である。これは、結果として得られる正方形の子セルＱ１，Ｑ３のうちの１つのセルが全てのポイントを含むからである。従来のｋｄツリー符号化は上側の子セルＱ１におけるポイント数が（３ビットを使用して）エンコードされるのを必要とする一方、本発明に係る改善されたエンコードアルゴリズムは、分割が非効率的であることを示す示唆、及び全てのポイントを含む子セルのインデックスのみを使用する。
【００４０】
子セルのインデックスはn=log2(m)を使用し、ここでｍは親セルの結果として得られた子セルの数である。この例では２つの子セルが存在しているので、インデックスは、log2(2)=1ビットのみを使用する。別の実施の形態では、それぞれの分割ステップは、子セルのインデックスを示すためにより多くのビットが使用されるように、親セルを等しいサイズのｍ個の子セルに分裂させる。２のべき乗でないｍよりも効果的なコードを提供する、数ｍが４，８，１６等のような２のべき条である場合、（同じ大きさにおいて）幾つかのシンプルな分割ステップの累積として考えることができる。しかし、これらの幾つかのステップが同時に実行される場合、処理速度が増加する場合がある。例えば（達成される空間解像度に比較して）ポイントが非常にまばらに分散されるので、幾つかの非効率的な分割のシーケンスが現れる可能性が非常に高い場合、この累積は効率的である。他の場合では、n=2を選択することが良好である場合がある。
【００４１】
親セルが２つの子セルに分裂される図２の例に戻り、効率的であることの示唆は、左側の矩形Ｑ１＋Ｑ３についての以下コードワードがたった２ビット、すなわち“０１”（０＝非効率的の示唆である、１ビット及び１＝子セルのインデックスである１ビット）を含むように、たった１ビットを有する。効率的であることの示唆（効率的／非効率的）、及び子セルのインデックス又は子セルのうちの１つにおけるポイントの数の何れかを定義する後続するビットは、単一のコードワードとして考えることができる。従って、コードワードは、可変長を有する。有利なことに、あるセルのインデックスを含むコードワードは、ポイントの量を表す値を含むコードワードよりも通常は短い。
【００４２】
右側の矩形の分割は、効率的であり、従って“１”（効率的であることの示唆、１ビット）及び“３”（上側の子セルＱ２におけるポイント数−１、３ビットを使用（図６のｃ２）に示されるように、log2(number_of_bits_in_parent_cell)=log2(7)=3））によりエンコードされる。
【００４３】
以下では、フォーム“valuenumber_of_bits”の代わりの表現が使用される。例えば、３ビットによりエンコードされる５の値は、５3bとして書かれる。
【００４４】
次のステップでは、子セルの新たな世代が開始され、分裂の大きさが変化する。サイズｒ１の矩形が得られるように、正方形Ｑ１〜Ｑ４のそれぞれは、垂直方向に分裂される。図６のｄ１）〜ｄ３）を参照されたい。Ｑ１及びＱ２のそれぞれについて、全体のポイント数は、少なくとも４であり、分割は効率的である（図６のｄ１）及びｄ２））。左側の矩形におけるポイント数は、それぞれ２及び３である。これらは、１1b−１3b及び１1b−２2bによりそれぞれエンコードされる。Ｑ１＋Ｑ３の垂直方向の分割が非効率的である上述された事実及びその分割のインデックスから、Ｑ３が空であることは明らかであるので、Ｑ３はスキップされる。（右側の子セルにおける全てのポイントについて）０2bによりエンコードされるように、残りのセルＱ４は３のみ（すなわち４以下）を有する。図６のｄ３）を参照されたい。
【００４５】
すなわち、図３の例では、コードの開始は、以下の通りである。１３32b（全体のポイント数）−１1b（効率的である示唆）−５4b（左側の子セルの第一世代）−０1b−１1b（非効率的であることの示唆及び上側の子セルのインデックス）−１1b（効率的であることの示唆）−３3b（Ｑ２におけるポイントの数）−１1b−１3b−１1b−２2b（非効率的ビット並びにＱ１及びＱ２の矩形の子セルにおけるポイント数）−０2b（Ｑ４の右側の矩形の子セルにおける全てのポイント）。
【００４６】
次の分割ステップでは、サイズｒ１の（空でない）矩形のそれぞれは、図６のｅ１）〜ｅ５）に示されるように、サイズｓｑ１の正方形に水平方向に分割される。従って、上側の左側から開始して、次のコードワードは、バウンディングボックスの上側半分について２2b−０1b０1b−０2b−１1bであり、（空のＱ３及びＱ４の空の左半分をスキップして）バウンディングボックスの下側半分について０2bである。例えば最後の値０2bは、Ｑ４の右半分の水平方向の分割後に、全てのそのポイントは、下側の子セルにあることを意味する（図６のｅ５）を参照されたい）。これは、分割前の全体のポイントの数は、４以下であるからである。
【００４７】
次の分割ステップでは、サイズｓｑ１の（空でない）正方形のそれぞれは、図６のｆ１）〜ｆ５）に示されるように、サイズｒ２の矩形に垂直方向に分割される。従って、上側の左側から始めて、次のコードワードは、２2b−（Ｑ１における）０1b１1b−０2b−（Ｑ２における）０1b−（Ｑ４における）３2bである。例えば値０1b１1b（図６のｆ２）参照）は、現在の親セルにおける全体のポイント数が少なくとも４となるように前に決定されていることを知って、サイズｓｑ１の正方形の分割は非効率的であり（すなわち“０”）、サイズｒ２の占有された矩形のみにおいて左側にある（すなわち“１”）ことを意味する。
【００４８】
次の分割ステップでは、サイズｒ２の（空でない）矩形のそれぞれは、図６のｇ１）〜ｇ５）に示されるように、サイズｓｑ２の正方形に水平方向に分割される。上側の左側から開始して、次のコードワードは、（Ｑ１における）２2b−０1b−０1b−３2b−（Ｑ２における）１1b−（Ｑ４における）０2bである。なお、図６のｇ２）に示される分割においてのみ、効率的であることの示唆が使用されるように、親セルにおけるポイントの数は３を超える。図６では、これのケースは（ｐ＝４）又は（ｐ＞４）によりマークされる。
【００４９】
次の分割ステップでは、サイズｓｑ２の（空でない）正方形のそれぞれは、図６のｈ１）〜ｈ５）に示されるように、サイズｒ３の矩形に垂直方向に分割される。上側の左側から開始して、次のコードワードは、１2b−（Ｑ１における）１1b１2b−（Ｑ２における）１2b−０1b−（Ｑ４における）１2bである。
【００５０】
最後に、最後の分割ステップでは、図６のｉ１）〜ｉ９）に示されるように、サイズｒ３の（空でない）矩形のそれぞれは、サイズｓｑ３の２つの正方形に水平方向に分割される。上側の左側から開始して、次のコードワードは、（Ｑ１における）０1b−０1b−１2b−１2b−（Ｑ２における）１1b−１2b−１1b−（Ｑ４における）１1b−１2bである。
【００５１】
同じサイズを有する全ての子のセルは、１つの子のセルの世代として考えられる。例えば、図２では、バウンディングボックス２０が第一世代（親の世代）と考えられる場合、正方形Ｑ１，．．．，Ｑ４は、第三世代に属する。サイズｓｑ１の全ての正方形（例えばＱ１の左側の上側の正方形及び右側の下側の正方形、Ｑ２の右側の上側の正方形及び左側の下側の正方形、及びＱ４の右側の下側の正方形）は、同じ子のセルの世代、すなわち第５世代に全て属する。なお、特定の世代のセルの処理のシーケンスは、取り決めを受け（更に以下を参照）、符号化効率を変更することなしに変化する場合がある。
【００５２】
先のエンコードによれば、全てのポイントは、サイズｓｑ３の正方形の精度においてバウンディングボックスにおいて発見することができる。完全なモデルについて、エンコードは、１０２ビットを使用する。
【００５３】
＜外１＞
0005955378.tif 000002
このシンプルな例、すなわち公知のｋｄツリーアルゴリズムを使用した従来のエンコードは、１を超えるビットを必要とする。従って、本発明は、符号化効率を増加させる。
【００５４】
非効率的な分割がより多く行われると、従来の方法と比較して圧縮率の改善が高くなり、本発明が更に有利になる。非効率的な分割は２つの場合に通常生じる。１つは、空間的なデータポイントが上述された例におけるように、有意な複数の空間的な集合を示すときである。単一の空間的な集合をもつ空間的なポイントのセット（すなわち単一ポイント）についてさえ、幾つかの非効率的な分割は回避不可能である。これは、空間解像度を増加するために更なる非効率的な分割は必要とされるように、あるセルが唯一のポイントを含むが、このセルが余りに大きく、ポイントの位置を再構成することができないときに特に当てはまる。従って、ポイントの数が多くなり且つポイントのクラスタリング（すなわち空間的な集合）が更に有意であり且つターゲットとなる空間解像度が高くなると、本発明に係るエンコードにより多くのビットが節約される。言い換えれば、ポイントの空間的な分散が均質ではないとき、すなわちより非効率的な分割が生じるときに、符号化効率が増加する。これは、ポイントの数が増加するときに起こることになる。
【００５５】
有利なことに、本発明は、平均又は高い複雑度の３Ｄメッシュモデルについてかなりのビット節約を達成する。
【００５６】
本発明の更なる利点は、手続きコード及び結果として得られるコードの両者は従来の方法よりも実質的に短いことである。  
本発明の更なる利点は、本発明が階層符号化の全ての階層レベルを考慮することである。
【００５７】
先の例は、２次元（２Ｄ）モデルを使用する一方、３次元（３Ｄ）モデルについて同じ原理を容易に使用することができる。図３ａ）に示されるように、３Ｄ実現のバウンディングボックス及びセルは、キューブ又はボックス、すなわち正方形又は矩形である側面をもつ３Ｄオブジェクトである。異なるのは、３Ｄ実現では、親セルは水平方向及び垂直方向に分割されるだけでなく、深さのような第三の次元において分割されることである。従って、先の２Ｄの例で使用されたように、分割のシーケンスｈ−ｖ−ｈ−ｖ−．．．（ｈ＝水平方向、ｖ＝垂直方向）又は等価な分割シーケンスｖ−ｈ−ｖ−ｈ−．．．の代わりに、３Ｄモデルの分割シーケンスは、ｈ−ｖ−ｄ−ｈ−ｖ−ｄ−ｈ−ｖ−ｄ−．．．（ｄ＝深さ）、又はｈ−ｄ−ｖ−ｈ−ｄ−ｖ−．．．，又はｖ−ｄ−ｈ−ｖ−ｄ−ｈ−．．．である場合がある。何れかの場合において、再帰的な分裂は、回転するやり方で全ての考慮される次元を示す（それぞれの次元当たりの新たな世代）。
【００５８】
１つの実施の形態では、デコードの間にバウンディングボックスの再構成を可能にするため、例えばサイズデータ及び／又は位置データといったバウンディングボックスを定義するデータがエンコード及びデコードされる。
【００５９】
図３ａ）は、ボックスの水平方向の分裂ｓｓｄ１、第一世代の子セルの何れかの垂直方向の分裂ｓｓｄ２、及び第二世代の子セルの何れかの深さ分裂ｓｓｄ３から得られる、３Ｄボックスの例示的な後続する分割を示す。用語「分割」、「細分」及び「分裂」は本明細書において等価的に使用される。図３ｂ）は、水平方向の分裂ｓｄ１、垂直方向の分裂ｓｄ２及び深さ分裂ｓｄ３を示す。本発明の有利な効果は、分裂の次元（２Ｄについてｈ，ｖ及び３Ｄについてｈ，ｖ，ｄ）のシーケンシャルな順序とは独立である。従って、順序が異なる場合がある。
【００６０】
図４ａ）は、例えばメッシュモデルの頂点の位置といった、ポイントのグループの位置のエンコードの間に行われる方法ステップのフローチャートである。第一の決定するステップ４０では、現在の親セルと現在の親セルにおける全体のポイントの数が決定される。第一の符号化モード判定ステップ５０では、現在の親セルにおける全体のポイントの数が少なくとも４であるかが判定される。現在の親セルにおける全体のポイントの数が少なくとも４ではない場合（すなわち３以下）、次のステップは、上述されたように、ポイントの数のエンコードのための第一のエンコードステップ６０である。すなわち、（例えば垂直方向の細分後の左側の子セル、又は水平方向の細分後の上側の子セル、或いは３Ｄのケースにおいて、深さの細分後の前側の子セルといった）子セルのうちの特定の予め定義されたセルにおけるポイントの数がコードに挿入される。
【００６１】
現在の親セルにおける全体のポイントの数が少なくとも４である場合、第二の符号化モード判定ステップ７０が続く。第二の符号化モード判定ステップ７０では、細分が有効であるかが判定される。細分が有効である場合、すなわちそれぞれのセルが少なくとも１つのポイントを有し且つ空である子セルがない場合、第二のエンコードステップ８０は、子セルの特定の予め定義されたセルにおけるポイント数を決定し、１だけデクリメントし、「効率的」フラグとデクリメントされたポイント数をコードに挿入する。ｐポイントをもつ親セルの効率的な細分後において、それぞれの子セルはせいぜいｐ−１ポイントを有し、ｐの代わりにｐ−１のエンコードは細分当たりビットを節約するので、デクリメントは有利である。
【００６２】
さもなければ、細分が非効率的である場合、すなわち少なくとも１つの子セルが空である場合、「非効率的」ビット及び空でない子セルのインデックスは、第三のエンコードステップ９０においてコードに挿入される。例えば左側、上側又は後側の子セルについて“１”、及び右側、下側又は前側の子セルについて“０”といった、インデックスは予め定義される。細分によりｋ個の子セルが得られるときにlog2(k)ビットが使用される。
【００６３】
第一、第二及び第二のエンコードステップのそれぞれの後、次の親セルは、以下に説明されるようにステップ４０で決定される。
【００６４】
なお、それぞれの次元について、（例えば、左側、上側及び前側の子セルといった）子セルのうちの特定の予め定義されたセル及び上述された子セルのインデックスは、全体のエンコード及びデコードプロセスの間に同じままである。
【００６５】
一般に、少なくとも空でないセルにおいて、親セルにおけるポイントの数を追跡することが必要である。例えば、次の分割後に子セルが親セルになるまで、空でない子セルにおけるポイントの数は記憶される。次いで、この数は、親セルにおけるポイント数を決定するときにストレージから読み出される。
【００６６】
図４ｂ）は、本発明の１実施の形態に係るメッシュモデルをエンコードする方法のフローチャートを示す。この方法は、複数のポイントの空間座標に従って複数のポイントを１以上のクラスタにクラスタ化するステップ４１０、クラスタ化されたポイントを階層ツリーを使用してエンコードするステップ４２０−４５０を含み、エンコードするステップは、クラスタの周り（すなわちモデルの全てのポイントの周り）にバウンディングボックスを定義するステップ４２０、バウンディングボックスを再帰的に分割するステップ４３０であって、それぞれの分割するステップは、親セルを予め定義された数の子セルに分割するステップと、それぞれの分割するステップについて、分割される現在の親セルについて、ポイント数を決定するステップ４４０、ポイントの数が少なくとも４であるかを判定するステップ、及び、図４ａ）のステップ４０，５０，６０に関して上述されたように、数が３であるか４である場合にポイントの数をエンコードするステップ、及び次いで、図４ａ）のステップ７０，８０，９０に関して上述された親セルをエンコードするステップ４５０を含む。
【００６７】
本発明の１実施の形態では、親セルにおけるポイントの数が少なくとも４であり、且つ親セルのポイントが子セルの少なくとも２つに分散されていると判定した場合、分割するステップは効率的であり、第一の示唆がコードに挿入され、子セルのうちの特定の（予め定義された）セルにおけるポイントの数がコードに挿入される。第一の示唆は、（例えば１に設定される単一ビットである）分割が効率的であること示す。さもなければ、親セルの全てのポイントが単一の子セルにあると判定した場合、分割するステップは非効率的であり、（例えばゼロに設定される単一ビットである）分割が非効率的であることを示す第二の示唆がコードに挿入される。次いで、全てのポイントを含む単一の子セルのインデックスが決定され、インデックスは、コードに挿入される。分割するステップにより２を超える子セルが得られた場合、効率的又は非効率的であることの異なる定義に従う異なる実施の形態が可能である。しかし、両者は相補的なものであって、それぞれの分割するステップは、効率的又は非効率的の何れかである。
【００６８】
１実施の形態では、分割するステップは、（全ての結果として得られる子ノードが親ノードよりも少ないデータポイントを有するように）親セルのポイントが子セルのうちの少なくとも２つに分散される場合に効率的であると考えられ、全てのポイントが唯一の子セルにある場合に非効率的であると考えられる。この場合、子セルのうちの１つを除くそれぞれにおけるポイントの数は、（例えば分割により４つの子セルが得られる場合に３つの子セルにおけるポイントの数を示す３つの値といった）効率的な分割について必要とされる。
【００６９】
別の実施の形態では、子セルの何れもが空である場合に分割するステップは効率的であり、少なくとも１つの子セルが空である場合に非効率的である。この場合、空の子セルのインデックス又は空でない子セルのインデックスの何れかは、取り決めに依存して、非効率的な分割のためにエンコードすることができる。
【００７０】
分割するステップにより２つの子セルが得られる場合、上述された実施の形態の両者は同じ結果を導く。
【００７１】
図４ｂ）に戻り、再帰的に分割するステップ４３０は、原理的に２つの機能を有し、１つの機能において、全ての空でない現在の親セルを処理する。第一の親セルであるバウンディングボックスを除いて、全ての親セルは、親の世代となった前の分割ステップの子セルである。図２ｂ）の例では、これは、例えば世代ｒ２である現在の世代の全ての空でない子セルは上述されたように順次に処理されることを意味する。現在の親世代の全ての空でない子セルが処理されたとき、第一の停止条件ＳＣ１が満たされ、再帰的な分割ステップ４３０の第二の機能が実行される。第二の機能では、ステップ４３５で分裂の次元が変わり、これにより次の子の世代となり、空でないセルの次の世代の処理が開始する。例えば、現在の世代が図２ｂ）においてｒ２である場合、次の世代はｓｑ２である。従って、ポイントの位置は、繰返しエンコードされる。再帰的な分割は、例えば最小の子セルのサイズ（すなわち所望の空間解像度）又は最大の繰り返し回数（すなわち最大の処理時間）といった、第二の停止条件ＳＣ２が満たされたときに終了する。予め定義された最小の子セルのサイズは、エンコードプロセスのターゲットとなる空間解像度に対応する。
【００７２】
同じサイズのセルは、本明細書では世代と呼ばれる。上述されたように、分裂の次元を変えるステップ４３５は、例えばあるセルを水平方向に分裂させて第一世代の子セルを得て、第一世代の子セルを垂直方向に分裂して第二の世代の子セルを得て、及び第二世代の子セルを深さ方向に分裂させて第三の子セルの世代を得るといった、子セルのそれぞれの世代により交互する（すなわち回転する）やり方で行われる。
【００７３】
最後に、結果として得られるコードは、ステップ４６０でエントロピー符号化される。１実施の形態では、何れか１つの分割するステップの全ての子セルは、等しいサイズを有する。
【００７４】
図４ｂ）に示される上述された方法ステップに対応して、本発明の１実施の形態では、メッシュモデルをエンコードするエンコーダは、複数のポイントをそれらの空間座標に従って１以上のクラスタにクラスタ化し、階層ツリーを使用してクラスタ化されたポイントをエンコードするエンコード手段を備える。エンコード手段は、クラスタの周りのバウンディングボックスを定義する初期化ユニット、バウンディングボックスを再帰的に分割する再帰的分割ユニットであって、それぞれの分割ステップが親セルを予め定義された数の子セルに分割する、ユニット、それぞれの分割ステップ及び分割されるそれぞれの現在の親セルについてポイントの数を決定し、親セル当たりのポイントの数が少なくとも最少数（それぞれの親セルが２つの子セルに分裂される場合に数は４である）であるかを判定するポイント分散決定ユニット、及び図４ａ）のステップ４０，５０，６０に関して上述されたように、数が最少数以下である場合にポイント数をエンコードし、図４ａ）のステップ７０，８０，９０に関して上述されたように、親セルをエンコードするエンコードユニットを有する。
【００７５】
図４ｃ）は、本発明の１実施の形態における、メッシュモデルをデコードする方法を示す。この方法は、複数のコードワードと全体のポイント数を示す所期値とを含む少なくとも第一のデータをエンコードされたデータセットから抽出するステップ４７０、バウンディングボックスをセルに再帰的に分割するステップ４７５であって、再帰的な分割のそれぞれは、現在の親セルを予め定義された数（２以上）の子セルに分割するステップ、前記子セルに従って前記ポイントの位置を決定するステップ４８０を含み、現在の親セルにおけるポイントの数が決定され、符号化モードは、現在の親セルにおける決定されたポイント数に従って検出され、ｋ−１の次のコードワードがデコードされる（ｋは分割するステップの子セルの数）。それぞれのコードワードの長さは、現在の親セルにおけるポイントの数から導出される。現在の親セルにおける決定されたポイントの数が４以下である場合、第一のデコードモードが使用される。第一のデコードモードにおいて、それぞれのコードワードは、ｍビットを含み、ｍは、一般にlog2(number_of_points_in_parent_cell)であるか、int(log2(number_of_points_in_parent_cell))に従う整数である。第一のデコードモードにおいて、コードワードの長さｍは、上述されたように、子セルのうちの特定の予め定義されたセルにおけるポイントの数を示す。
【００７６】
現在の親セルにおける決定されたポイントの数が少なくとも４である場合、コードワードは、コードワードの残りのビットの意味を示す示唆を含み、コードワードの残りのビットは、示唆が第一の値を有する場合に、現在の親セルの現在の分割から得られる子セルのうちの予め定義されたセルにおいて位置するポイントの数を定義するか、現在の親セルの現在の分割から得られ、且つ親セルの全てのポイントを含む子セルを示すインデックスを定義する。子セルに従って前記ポイントの位置を決定するステップ４８０は、符号化モードを決定し、コードワードにおける示唆を評価することを含む。従って、ポイントの位置は、繰返しデコードされる。
【００７７】
図４ｃ）に示される上述された方法ステップに対応して、本発明の１実施の形態では、メッシュモデルをデコードするデコーダは、エンコードされたデータセットから少なくとも第一のデータと全体のポイント数を示す初期値とを抽出する抽出手段、バウンディングボックスをセルに再帰的に分割する再帰的分割手段（例えば制御手段）であって、再帰型分割のそれぞれは、現在の親セルを予め定義された数（２以上）の子セルに分割する、手段、及び前記子セルに従って前記ポイントの位置を決定する決定手段を備える。決定手段は、現在の親セルにおけるポイントの数を決定するユニット（例えばカウンタ）、現在の親セルにおける決定されたポイント数に従って符号化モードを検出する符号化モード検出ユニット、及びｋ−１だけ次のコードワードをデコードするデコードユニット（ｋは分割するステップの子セルの数）を備える。コードワード長検出ユニットは（例えば計算機）、上述されたように、現在の親セルにおけるポイント数からそれぞれのコードワードの長さを導出する。
【００７８】
図５ａ）は、本発明の１実施の形態を示し、メッシュモデルをエンコードする方法は、汎用の空間ツリーを構築するステップ１１０（これは次のステップに暗黙的に含まれる場合がある論理ステップである）、汎用の空間ツリーに従ってメッシュモデルを分析するステップ１２０、図４ｂ）のブロック４１０〜４５０，ＳＣ１，ＳＣ２に関して上述されたように空間ツリーを横断するステップ１３０であって、メッシュモデルの第一のエンコードされた表現を得る、ステップ、及びメッシュモデルの第一のエンコードされた表現のエントロピー符号化を実行するステップ４６０であって、メッシュモデルの第二のエンコードされた表現を得る、ステップ、を含む。
【００７９】
図５ｂ）は、本発明の実施の形態を示し、エンコードされたメッシュモデルをデコードする方法は、エンコードされたメッシュモデルのエントロピー復号化を実行するステップ１５０であって、エントロピー復号化されたメッシュモデルを得る、ステップ、汎用の空間ツリーを復元するステップ１６０、エントロピー復号化されたメッシュモデルに従って空間ポイントクラスタを復元するステップ１７０であって、空間ポイントクラスタは、図４ｃ）に関して上述されたように、空間ツリーの枝及び葉にマッピングされる、ステップ、メッシュモデルの空間ポイントを復元するステップ１８０であって、空間的な位置は、メッシュモデルのそれぞれのポイントと関連される、ステップを含む。
【００８０】
また、本発明は、マルチコンポーネント又はマルチコネクト（MC）モデルにおける、すなわち多数の繰返しコンポーネントを有するメッシュモデルにおけるコンポーネントのリファレンスポイントであるポイントのために使用することもできる。以下の２つの実施の形態は、係るＭＣモデルについて特に有利である。係るケースでは、繰返しコンポーネントの繰り返しの様々な位置は、一度だけエンコード又はデコードされる必要がある、そのような繰り返しコンポーネントとは独立にエンコード／デコードされる。デコードの間、繰返しコンポーネントは、そのデコードされた位置のそれぞれに対してコピーされる。例えばマシンの３Ｄエンジニアリングモデルにおいて、数回にわたり使用されるスクリューが繰返しコンポーネントとしてエンコードされる。
【００８１】
１実施の形態では、本発明は、特にＭＣメッシュモデルであるメッシュモデルのコンポーネントのリファレンスポイントをエンコードする方法であり、それぞれのリファレンスポイントは、あるコンポーネントを表し、ポイントのエンコードは、階層ツリーを使用し、エンコードは、エンコードされるポイントの周りのバウンディングボックスを定義するステップ、バウンディングボックスを再帰的に分割するステップであって、それぞれの分割するステップは、親セルを予め定義された数（少なくとも２、１実施の形態では、何れか１つの分割するステップの全ての子セルは等しいサイズを有する）の子セルに分割する、ステップ、それぞれの分割するステップについて、現在の親セルについて全体のポイント数及び親セルの全てのポイントが単一の子セルにあるか否かを判定するステップ、及び少なくとも４以上のポイントを含む親セルについて、上述されたように、判定の結果を示す示唆をエンコードするステップを含む。
【００８２】
１実施の形態では、本発明は、エンコードされたデータセットから、特にＭＣメッシュモデルであるメッシュモデルの繰返しコンポーネントのリファレンスポイントをデコードする方法であり、エンコードされたデータセットから、少なくとも、全体のポイントの数を表す値と、複数のポイントの位置データであって、複数のコードワードを定義する第一のデータとを抽出するステップであって、それぞれのコードワードは、バウンディングボックスのセルへの複数の再帰的な分割のうちの１つを示し、それぞれの分割は、現在の親セルを２以上の子セルに分割する、ステップ、前記値と前記第一のデータとに基づいて前記ポイントの位置を決定するステップであって、コードワードのうちの少なくとも幾つかは現在のセルの分割ステップが効率的であるか否かを示す示唆（１ビット）を含む。さらに、デコードする方法は、それぞれのポイントを繰返しコンポーネントで置き換えるステップを含む。
【００８３】
１実施の形態では、本発明は、複数の繰返される接続コンポーネントを含むエンコードされたメッシュモデルに関するものであり、エンコードされたメッシュモデルは、少なくとも以下のエンコードされたデータを含む。それぞれ繰返される接続コンポーネントのインスタンス、エンコードされた接続コンポーネントの全体の数、前記繰返される接続コンポーネントの複数の繰返しの位置、前記位置は、ツリー構造（例えばｋｄ−ツリー）としてエンコードされる。メッシュモデルにおけるバウンディング領域。前記バウンディング領域は、ツリー構造が示す最初の親セルである。ツリーとしてエンコードされている位置は、上述されたエンコードを使用する。すなわち、エンコードは、ツリ構造のそれぞれのノードについてコードワードを含む。少なくとも４つのポイントを持つノードについて、コードワードは、現在の親セルのポイントが少なくとも２つの子セルに分散される場合に第一の値を有する示唆であって、現在の親セルのポイントが単一の子セルにある場合に異なる第二の値を有する示唆で開始し、コードワードの残りのビットは、（示唆が第一の値を有する場合に）子セルの予め定義されたセル内に位置されるポイント数−１、又は（示唆が第二の値を有する場合に）親セルの全ての値を含む子セルである現在の親セルの子セルのインデックスを示す。
【００８４】
図７は、図６に関して上述されたような、後続する分割ステップのツリータイプの表現の一部を示す。ツリーのルート７１１において、親セルの垂直方向の分裂は、図６ｂ）に対応してエンコードされる。上述されたように、第一の分割が垂直方向であることは、この場合において予め定義された取り決めである。ノード７２１，７２２において、結果として得られる子セルの水平方向の分裂は、図６ｃ１）及びｃ２）に示されるようにエンコードされる。その子セル７３２（又はＱ３）のうちの１つは空であるように、分割ステップのうちの１つは非効率的である。先に説明されたように、空の子セルは、分裂されておらず、暗黙的にエンコードされるだけである。次のノード７３１〜７３４では、第三世代のセルの水平方向の分裂は、図６ｄ１）〜ｄ３）に示されるようにエンコードされる。セルは、図２における正方形Ｑ１〜Ｑ４に対応する。以下のノード７４１〜７４６は、図６ｅ１）〜ｅ６）に対応し、更に１つの分割は非効率的であり、従って空の子セル７４５が得られる。ツリーの残りの部分（図示せず）は、これに応じて構築することができる。それぞれのライン７１０，７２０，７３０，７４０，７５０は、セルの世代を示す。本発明に係るエンコードされたメッシュモデルを表すコードは、はじめに全体のポイント数が挿入されたときに、ライン７１０，７２０，７３０等から得ることができる。
【００８５】
一般に、第一のコードワードの長さ（全体のポイント数）は固定されている。これは、その長さは、デコードの間に導出することができないからである。上述されたように、他のコードワードの長さは可変であり、それらの長さは、デコードの間に計算することができる。さらに、通常、親セルの１つの分割ステップから得られる全ての子セルは、実質的に等しいサイズを有する。
【００８６】
ポイントのエンコード／デコードは、本明細書では、それらの座標のエンコード／デコードを一般に意味する。
【００８７】
以下の例示的な実施の形態は、特に有利である。  
エンコード方法の１実施の形態では、コードワードの残りのビット量は、示唆がn=integer(log2(m+1))に従って第一の値を有する場合に、現在の親セルにおけるポイントの数に依存する。ここでｎはコードワードの残りのビットの量であり、ｍは現在の親セルにおけるポイントの数である。
【００８８】
１実施の形態では、エンコード方法は、入力ポイントをそれらの空間座標に従って１以上のクラスタにクラスタ化する初期ステップを更に含み、ポイントのそれぞれは、入力ポイントのクラスタのリファレンスポイントである。
【００８９】
エンコード方法の１実施の形態では、メッシュモデルは、マルチコネクトコンポーネントをもつ３Ｄメッシュモデルであり、あるクラスタにおけるそれぞれのポイントは、あるコンポーネントを表す。エンコード方法の１実施の形態では、ある親セルの１つの分割ステップから得られた全ての子セルは、等しいサイズを有する。
【００９０】
エンコード方法の１実施の形態では、再帰型分割ステップの停止条件として、最多の繰返し数又は最小のセルサイズが定義される。２Ｄのエンコード方法の１実施の形態では、現在の親セルを分割する再帰型分割ステップは、交互するやり方で水平方向及び垂直方向の分裂を実行し、子セルのうちの予め定義されたセルは、水平方向の分裂について上側又は下側の子セルの何れかであり、垂直方向の分裂について左側又は右側の子セルの何れかである。
【００９１】
３Ｄのエンコード方法の１実施の形態では、現在の親セルを分割する再帰型分割ステップは、交互するやり方で水平方向、垂直方向及び深さの分裂を実行し、子セルのうちの予め定義されたセルは、水平方向の分裂について上側又は下側の子セルの何れか、垂直方向の分裂について左側又は右側の子セルの何れか、及び深さの分裂について前側又は後側の子セルの何れかである。
【００９２】
１実施の形態では、それぞれのコードワードの長さが可変であり、デコード方法は、所与のルールに従ってコードワードの長さを計算するステップを更に含む。ルールに従って、コードワードの前記残りのビットの量は、n=integer(log2(m+1))又はn=log2(m+1)に従って、現在の親セルにおけるポイント数から計算される。ここでｎはコードワードの残りのビットの量であり、ｍは現在の親セルにおけるポイント数である。
【００９３】
デコード方法の１実施の形態では、メッシュモデルは、繰返される接続コンポーネントの複数のインスタンスを含む３Ｄメッシュモデルであり、前記ポイントのそれぞれは、前記インスタンスのうちの１つの位置を示すリファレンスポイントであり、この方法は、繰返しコンポーネントの複数のインスタンスを生成し、それぞれのリファレンスポイントの位置に従ってそれぞれの繰返しを発見する最終ステップを更に含む。
【００９４】
デコード方法の１実施の形態では、ある親セルの１つの分割ステップから得られる全ての子セルは、等しいサイズを有する。
【００９５】
デコード方法の１実施の形態では、最多の反復回数又は最小のセルサイズは、再帰型分割ステップの停止条件として定義される。
【００９６】
２Ｄのデコード方法の１実施の形態では、現在の親セルを分割する再帰型分割ステップは、交互するやり方で水平方向と垂直方向の分裂を行い、子セルの予め定義されたセルは、水平方向の分裂について上側又は下側の子セルの何れかであり、垂直方向の分裂について左側又は右側の子セルの何れかである。
【００９７】
３Ｄのデコード方法の１実施の形態では、現在の親セルを分割する再帰型分割ステップは、交互するやり方で水平方向、垂直方向及び深さの分裂を実行し、子セルのうちの予め定義されたセルは、水平方向の分裂について上側又は下側の子セルの何れかであり、垂直方向の分裂について左側又は右側の子セルの何れかであり、深さの分裂について前側又は後側の子セルの何れかである。
【００９８】
１実施の形態では、エンコードされたメッシュモデルは、複数の繰返される接続コンポーネントを含み、エンコードされたメッシュモデルは、それぞれの繰返される接続コンポーネントの少なくとも１つのインスタンスのエンコードされたデータ、前記繰返される接続コンポーネントの複数の繰返しの位置であって、ｋｄツリーとしてエンコードされた位置、メッシュモデル内のバウンディング領域であって、ｋｄツリーが示す最初の親セルであるバウンディング領域を含む。ｋｄツリーとしてエンコードされる位置は、ｋｄツリーのそれぞれのノードについてコードワードを含むエンコードを使用し、コードワードは、現在の親セルのポイントが少なくとも２つの子セルに分散される場合に第一の値を有する示唆であって、現在の親セルの位置が１つの子セルにある場合に異なる第二の値を有する示唆で開始する。コードワードの残りのビットは、（示唆が第一の値を有する場合に）子セルのうちの予め定義されたセルに位置されるポイントの数、又は（示唆が第二の値を有する場合に）親セルの全てのポイントを含む子セルである、現在の親セルの子セルのインデックスを示す。
【００９９】
本発明の例となる実施の形態に適用されるものとして本発明の基本的な新たな特徴が図示、説明及び指摘されたが、本発明の精神から逸脱することなしに、記載された装置及び方法において、開示された装置の形態及び詳細において、及びそれらの動作において、様々な省略及び置換え並びに変更が当業者により行われる場合があることを理解されたい。例えば、本発明は正方形の２倍のサイズを有する矩形であるバウンディングボックスに関して開示されたが、それらの分裂により正方形ではない矩形が得られるとしても、本明細書で記載された方法及び装置は何れかの矩形のバウンディングボックスに適用される場合があることを認識されたい。全ての上述された取り決めは、本発明の範囲から逸脱することなしに自由に修正することができる。先の例では、バウンディングボックスの第一の分割ステップは垂直方向であるが、水平方向である場合もある。従って、所与の数の水平方向及び垂直方向の分割ステップのシーケンシャルな順序を変更することができる。
【０１００】
さらに、例において使用される暗黙的な取り決めが変更される場合がある。例えば図２ｂ）及び先の関連する例に関して、取り決めは、ある世代（例えばＱ１）の全ての現在の親セルが、それらの祖父母のセルに係わらず、毎に又は列毎にシーケンシャルに処理されるといった場合がある。別の取り決めは、世代ｊ（例えばｓｑ１）の全ての現在のセルが、その世代の次の祖父母のセルに入る前に、前の世代ｊ−ｘ（例えばＱ１内）のそれぞれの祖父母のセルにおいて、行毎又は列毎にシーケンシャルに処理されるといった場合がある。さらに、別の取り決めは、上述された例において行われたように、処理における所定のポイントで２つの先の取り決めの間で切り替えるといった場合がある。
【０１０１】
同じ結果を達成する実質的に同じやり方で実質的に同じ機能を行うエレメントの全ての組み合わせは本発明の範囲にあることが明示的に意図される。１つの記載された実施の形態から別の記載された実施の形態へのエレメントの置換えが十分に意図される。
【０１０２】
本発明は例を通して単に記載され、本発明の範囲から逸脱することなしに詳細の変更を行うことができる。詳細な説明及び（必要に応じて）特許請求の範囲及び添付図面において開示されるそれぞれの特徴は、独立に又は適切な組み合わせで提供される場合がある。特徴は、必要に応じて、ハードウェア、ソフトウェア、又は両者の組み合わせで実現される場合がある。
【０１０３】
請求項で現れる参照符号は、例示するのみであって、請求項の範囲に限定的な影響を有するものではない。
【図１】
0005955378.tif 000003
【図２ａ）】
0005955378.tif 000004
【図２ｂ）】
0005955378.tif 000005
【図３ａ）】
0005955378.tif 000006
【図３ｂ）】
0005955378.tif 000007
【図４ａ）】
0005955378.tif 000008
【図４ｂ）】
0005955378.tif 000009
【図４ｃ）】
0005955378.tif 000010
【図５ａ）】
0005955378.tif 000011
【図５ｂ）】
0005955378.tif 000012
【図６−１】
0005955378.tif 000013
【図６−２】
0005955378.tif 000014
【図７】
0005955378.tif 000015