JP4372477B2 - 2分木を巡回する方法およびシステム - Google Patents

2分木を巡回する方法およびシステム Download PDF

Info

Publication number
JP4372477B2
JP4372477B2 JP2003281990A JP2003281990A JP4372477B2 JP 4372477 B2 JP4372477 B2 JP 4372477B2 JP 2003281990 A JP2003281990 A JP 2003281990A JP 2003281990 A JP2003281990 A JP 2003281990A JP 4372477 B2 JP4372477 B2 JP 4372477B2
Authority
JP
Japan
Prior art keywords
cell
binary tree
code
position code
ray
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003281990A
Other languages
English (en)
Other versions
JP2004164596A (ja
Inventor
ロナルド・エヌ・ペリー
サラ・エフ・フリスケン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Research Laboratories Inc
Original Assignee
Mitsubishi Electric Research Laboratories Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Research Laboratories Inc filed Critical Mitsubishi Electric Research Laboratories Inc
Publication of JP2004164596A publication Critical patent/JP2004164596A/ja
Application granted granted Critical
Publication of JP4372477B2 publication Critical patent/JP4372477B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/957Multidimensional
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Generation (AREA)

Description

本発明は、一般的には、ツリー構造(木構造)のデータ表現に関し、より具体的には、4分木、8分木、およびそれらのN次元対応の木に記憶された空間データの位置の検出に関する。
ツリー構造(木構造)のデータ表現は、広く使用されている。それらの長い歴史ならびに多くの異なる形式および使用のため、表面的には似ているように見える、または、類似の名前を持った多種類の「木」が存在するが、それらの詳細は全く異なり、全く異なって使用される。
したがって、本明細書で定義される「2分木」は、N次元空間の、セルの階層への空間分割である。N次元空間を囲むルートセルが、2個の等しいサイズの子セルに、その中間平面に沿って条件付きで分割される。次に、それぞれの子セルが同様の方法で、連続的に条件付きで分割される。
2分木のそれぞれのセルは、図形オブジェクト(例えば3次元の3角形メッシュ)の図形要素(例えば3角形)といった特定用途向けデータを備えた関連特性を有する。2分木の子セルは、それらの親セルから直接インデックス付けされる。2分木は、十分に密(populated)または疎(sparse)の状態を取り得る。十分に密の2分木では、それぞれのセルが、最も深い共通のレベルにまで分割される。疎の2分木では、選択されたセルのみが分割され、必要メモリが削減される。
図1は、本明細書で定義される一例の2分木100を示している。この一例の2分木100は、4分木、すなわち2次元2分木であるが、我々の方法は、それぞれの次元を独立に取り扱うので、本発明による方法は、8分木、すなわち3次元2分木、さらにはこれより低次元および高次元の2分木にも拡張することができる。
セルは、ルートセル101から中間セル102を介してリーフセル103まで分岐する。通常、これらセルは、特定用途向けデータおよび特性、例えば領域4分木(region quadtree)のセルタイプ、または点4分木(point quadtree)のオブジェクトインデックスと関連付けられる。子セルは、それらの親セルから直接インデックス付けされる(110)。直接インデックス付けすることは、メモリ内で子セルを順序付けることにより、または、メモリ内の子セルへのポインタによって行うことができる。
2分木100の深さは、NLEVELSである。ルートセル101のレベルは、LEVELROOT=NLEVELS−1である。可能な限り最小のセルのレベルは、ゼロである。2分木100は、正規化空間[0,1]×[0,1]上で定義される。同様に、N次元2分木は、[0,1]上で定義される。これは、制限的に見えるかもしれないが、実際には、ほとんどの空間データは、データの座標への変換を適用することにより、この正規化空間で表すことができる。
4分木および8分木は、コンピュータビジョン、ロボット工学、およびパターン認識といった多くのさまざまな分野で使用される。コンピュータグラフィックスでは、2次元画像および3次元オブジェクトを表す空間データを記憶するために、4分木および8分木が広く使用される。これについては、Samet著の「The Quadtree and Related Hierarchical Data Structures」, Computing Surveys, Vol. 16, No. 2, pp. 187-260, Jun. 1984およびMartin等著の「Quadtrees, Transforms and Image Coding」, Computer Graphics Forum, Vol. 10, No. 2, pp. 91-96, Jun. 1991を参照されたい。
図2に示すように、4分木は空間の領域を4つの等しいサイズの象限、すなわちセル、に連続的に分割する。ルートセルから開始して、セルがオブジェクト境界を含む場合(領域4分木)、または、セルが特定の個数より多くのオブジェクトを含む場合(点4分木)といった所定の条件下で、セルは、より小さなセルに再分割される。空間を分割しない方法、または、空間を均等に分割する方法と比較すると、4分木および8分木は、データの記憶に必要なメモリ量を削減することができ、データの照会および処理(例えば、衝突検出およびレンダリング)を行う実行時間を改善することができる。
2分木に記憶された情報を管理することは、一般に、点の位置検出(point location)、領域の位置検出(region location)、および近傍セル探索(neighbor search)の3つの基本オペレーションを必要とする。
点の位置検出は、所定の点200を含むリーフセル201を発見する。例えば、都市の位置といった地理データを記憶する4分木は、地理座標、すなわち経度および緯度によって分割される。点の位置検出を使用して、所定の地理座標、すなわち点200の近くの都市を発見することができる。
領域の位置検出は、最小頂点v211および最大頂点v212によって表される指定された長方形領域210を囲む最小セルまたは一組のセルを発見する。地理に関する4分木の例によると、領域の位置検出を使用して、指定された地理座標の所定の範囲内に存在するすべての都市を求めることができる。
近傍セル探索は、所定のセルに隣接する、指定された方向のセルを発見する。地理に関する4分木では、点の位置検出は、まず所定の都市を含むセルの位置を検出するための近傍セル探索と組み合わせることができ、次に所定の方向の隣の都市を発見するための近傍セル探索と組み合わせることができる。これらのオペレーションのすべてにおいて、2分木は、セルを接続するポインタに従って巡回される。
第4のオペレーションは、レイトレーシングと呼ばれ、3次元モデルをディスプレイにレンダリングするグラフィックスアプリケーションによって使用される。これについては、Foley等著の「Computer Graphics Principles and Practice」, Addison-Wesley, 1992を参照されたい。これらのアプリケーションでは、シーンを備える図形要素が、8分木のリーフセルに置かれる。レイトレーシングは、光線に沿ったリーフセルの連続的な特定を必要とする。これらリーフセルを特定する1つの方法は、点の位置検出および近傍セル探索を組み合わせることである。
従来の2分木における点の位置検出オペレーションは、ルートノードを起点とする2分木を下方に向かって分岐していくことを必要とする。分岐の決定は、点の位置のそれぞれの座標を、現在の囲みセル(enclosing cell)の中間平面の位置と比較することにより行われる。
従来の2分木における近傍セル探索は、所定のセルから、当該所定のセルおよび近傍のセルの最小の共通の先祖へ向かって上方に再帰的に分岐し、続いて、下方に向かって再帰的に分岐して近傍セルの位置を検出することを必要とする。再帰におけるそれぞれの分岐は、現在のセルおよびその親に依存した値を比較することに基づいている。通常、それらの値は、テーブルに記憶される。
従来技術の点の位置検出、領域の位置検出、および近傍セル探索は、ブール演算、すなわち比較が使用されるので、多くの時間を要する。ブール演算は、通常、現代のCPUにおける予測分岐論理によって実施される。予測分岐は、間違って予測された分岐命令において命令パイプラインを行き詰まらせることになる。これについては、Knuth著の「The Art of Computer Programming」, Volume 1, Addison-Wesley, 1998およびKnuth著の「MMIXware: A RISC Computer for the Third Millennium」, Springer-Verlag, 1999を参照されたい。
従来の木の巡回オペレーションについては、一般に、これまでの分岐の決定が、これから先の分岐の決定に何ら関与しないので、誤った予測が頻繁に発生する。これについては、Pritchard著の「Direct Access Quadtree Lookup」, Game Programming Gems 2, ed. DeLoura, Charles River Media, Hingham, MA, 2001を参照されたい。
その上、従来の近傍セル探索方法は、再帰的である。再帰は、スタックフレームを保持し、関数呼び出しを行う結果として、オーバーヘッドを増加させる。また、従来技術の近傍セル探索方法は、通常のアプリケーションにおいて高価なメモリアクセスを必要とするテーブル検索も使用する。最後に、従来技術の近傍セル探索方法は、4分木および8分木にのみ限定され、これらの方法をより高次元の2分木に拡張することは、非常に複雑なものとなる。
図3は、典型的な従来技術の点の位置検出オペレーション300を示している。このオペレーションは、所定の点301および開始セル302の位置から開始する。まず、セル302と関連した特性(C)303が、判定される(310)。真(T)ならば、セル302が、点301を含む目的のセル309である。偽(F)ならば、点301の位置のそれぞれの座標が、セル302の対応する中間平面の位置と比較される(320)。この比較320により、判定される次のセル(子セル)304へのインデックスを計算する(330)ことが可能となる。
上述したように、比較320は、ブール演算を必要とする。N次元の2分木については、2分木の巡回中に訪れるそれぞれのセルに対して、少なくともN回のこのようなブール演算が必要となる。上述したように、これらのブール演算は、命令パイプラインを行き詰まらせる確率が高く、これにより、性能を劣化させる。
Pritchardは、「Direct Access Quadtree Lookup」において、領域境界ボックスのx境界およびy境界の位置コード(locational code)を使用する4分木についての領域の位置検出オペレーションを記述している。Pritchradの4分木は、彼の子セルを親セルから直接インデックス付けすることができないので、上記定義に基づく2分木ではない。
その方法は、セルの規則的な配列からなる階層で効果を現す。この階層では、それぞれのレベルが、完全に再分割され、前のレベルの4倍の個数のセルを含む。彼の空間データの2次元表現は、大量のメモリを必要とし、3次元およびより高次元の空間データでは、さらにより多くのメモリを必要とすることになろう。したがって、その方法は、多くのアプリケーションにとって実用的ではない。
Pritchardの方法は、2つのステップを有する。まず、その方法は、領域境界ボックスの左端および右端のx境界、ならびに上端および下端のy境界の位置コードを用いて、囲みセルのレベルを決定する。次に、領域境界ボックスの左下端の頂点の位置の拡大縮小バージョンが、このレベルの規則的な配列をインデックスするために使用される。
従来、位置コードは、「線形4分木(linear quadtree)」および「線形8分木(linear octree)」と共に使用されてきた。これについては、H. Samet著の「Applications of Spatial Data Structures: Computer Graphics, Image Processing, GIS」, Addison Wesley, Reading, MA, 1990を参照されたい。線形4分木および線形8分木は、我々の定義に基づく2分木ではない。正確には、線形4分木および線形8分木は、それぞれのリーフセルが、その交互に配置された位置コードおよび他のセル特有のデータを含むリーフセルのリストからなる。一般に、線形4分木および線形8分木は、2分木よりもコンパクトである。例えば、線形4分木および線形8分木は、より高価で複雑な処理方法を犠牲にして、中間セルを表さず、直接インデックス付けするための明確なリンクを提供しない。
線形4分木および線形8分木の位置コードは、線形4分木が、基数4(または「ドントケア」の方向コード(directional code)が使用される場合には5)の位置コードを使用し、線形8分木が、基数8(または9)の位置コードを使用するように、セルの最小頂点の座標値を備えるビットを交互に配置する。これについては、H. Samet著の「Applications of Spatial Data Structures: Computer Graphics, Image Processing, GIS」, Addison-Wesley, Reading, MA, 1990を参照されたい。
コンピュータグラフィックスおよびボリュームレンダリングでは、レイトレーシング法は、空間の大きな空の領域を通る光線のトレーシングを高速化するために、8分木を利用することが多い。それらの方法は、8分木を通過する光線に沿った空でないリーフセルを決定し、次いで、これらのセル内の光線面の交差を処理する。
8分木を通じて光線をトレースする2つの基本的手法が存在する。すなわち、ボトムアップ法およびトップダウン法である。ボトムアップ法は、光線が遭遇する最初のリーフセルから開始し、次に、近傍セル発見技法を用いて、光線に沿った次のリーフセルをそれぞれ発見する。トップダウン法は、ルートセルから開始し、再帰的手順を用いて、光線と交差する子孫のリーフセルを発見する。レイトレーシング中に8分木を巡回する方法の広範囲の概要は、Havranによって、「A Summary of Octtree Ray Traversal Algorithms」, Ray Tracing News, 12(2), pp. 11-23, 1999に記述されている。
StolteおよびCaubetは、「Discrete Ray-Tracing of Huge Voxel Spaces」, Computer Graphics Forum, 14(3), pp. 383-394, 1995において、8分木に記憶されたボクセルデータ組の位置コードを使用するトップダウンレイトレーシング手法を記述している。まず、光線が8分木に入る点を含むリーフセルの位置が検出される。次に、光線面交差(ray-surface intersection)のないそれぞれのリーフセルについて、3DのDDAが、リーフセルと近傍の次のセルとの境界に遭遇するまで、可能な限り最小のリーフセルのサイズに比例した増分で、光線に沿って進んで行くために使用される。次に、再帰的スタックからセルをポップして、リーフセルおよび近傍の次のセルの共通の先祖の位置を検出し、次いで、彼らの点の位置検出方法を用いて8分木を下方に巡回することにより、近傍の次のセルが発見される。しかしながら、彼らの方法は、ブール比較を必要とし、したがって、上述した誤った予測の問題に悩むこととなる。
したがって、必要メモリを増やすことなく、ブール演算を回避し、再帰およびテーブル検索のためのメモリアクセスをなくすことによって従来技術の性能を改善するN次元2分木の巡回方法を提供することが望まれている。
本発明は、2分木、例えば4分木、8分木、およびそれらのN次元対応の木の効率的な巡回方法を提供する。本方法は、位置コードを使用し、本質的に非再帰的で、テーブル検索のためのメモリアクセスを必要としない。また、本方法は、誤って予測された比較の数も削減する。本方法は、点の位置検出の手順、領域の位置検出の手順、近傍セル探索の手順、およびレイトレーシングの手順を含む。
本発明は、単純で、効率的で、任意の次元数で機能し、かつ、本質的に非再帰的な、2分木の点の位置検出、領域の位置検出、近傍セル探索、およびレイトレーシングのための方法を提供する。本発明による方法は、予測動作に乏しいブール演算の回数を大幅に削減し、テーブル検索によって必要とされるメモリアクセスを必要としない。
図4は、1次元2分木の階層的なツリー構造(木構造)400および関連した位置コードを示している。位置コード401は、本発明による2分木巡回方法によって使用される。それぞれの位置コード401は、木の最大レベル数NLEVELS以上のビットサイズを有するデータフィールドにバイナリ形式で表現される。例えば、最大8レベルを有する2分木のそれぞれの位置コードは、8ビットによって表現することができる。
それぞれの位置コード401のビットは、右端(LSB(最下位ビット))から左端(MSB(最上位ビット))に向けてゼロから番号付けされる。位置コードのそれぞれのビットは、2分木の対応するレベルにおける分岐パターンを示す。すなわち、ビットkは、2分木のレベルkにおける分岐パターンを表す。位置コードが交互に配置される従来技術と異なり、我々は、セルのそれぞれの次元に対して別個の位置コードを使用する。例えば、2次元2分木、すなわち4分木のそれぞれのセルに対する一組の位置コードは、x位置コードおよびy位置コードの双方を備える。
セルの位置コードは、2つの方法で求めることができる。第1の方法は、セルの最小頂点のそれぞれの座標値を2LEVELROOT、例えば2=32と乗算し、次に、その積をバイナリ形式で表現する。図5は、1次元2分木400の空間分割および関連する位置コード500を示している。例えば、セル501、[0.25,0.5)は、位置コード502、バイナリ(0.25*32)=バイナリ(8)=001000を有する。
第2の方法は、ルートセルから所定のセルへの分岐パターンに従うものであり、対応するレベルの分岐パターンによってそれぞれのビットを設定する。第2の方法は、ビットLEVELROOTをゼロに設定することから開始し、次に、レベルk+1からkへの分岐の決定が、左に分岐するものである場合には、それぞれの次のビットkをゼロに設定し、右に分岐するものである場合には、1に設定する。疎な2分木については、リーフセルが、可能な限り最小のセルより大きいならば、下位ビットがゼロに設定される。
4分木、8分木、およびより高次元の2分木では、それぞれの次元の位置コードは、セルの最小頂点の対応する座標値から別々に求められるか(第1の方法)、または、ルートセルから所定のセルに到達するために使用される左−右、ボトム−トップ(バック−フロントなど)の分岐パターンから別々に求められる(第2の方法)。
これらの位置コードのいくつかの性質を用いて、本発明による2分木巡回を提供することができる。
第1に、分岐パターンから位置コードを求めることができるのと同じように、位置コードから分岐パターンを求めることができる。すなわち、位置コードのそれぞれにおける適切なビットを用いて、それぞれの中間セルの対応する子をインデックス付けすることにより、セルの位置コードを、ルートセルから目的のセルへ2分木を巡回するために使用することができる。利点として、我々の方法は、従来技術の高価なブール比較を回避する。
第2に、[0,1)の任意の点の位置を、第1の方法を使用することにより、一組の位置コードに変換することができる。
これらの性質は、以下でさらに詳述するように、本発明による点および領域の位置検出を可能にする。その上、あるセルの近傍セルの位置コードは、ビットパターンを当該セルの位置コードに対して加算および減算することにより求めることができる。この性質は、近傍セル探索中の再帰およびテーブル検索のためのメモリアクセスをなくすために使用される。
点の位置検出
図6に示すように、本発明による点の位置検出オペレーションは、領域[0,1]上で定義される2分木の[0,1)に位置する所定の点を含むリーフセルを検出する。
第1のステップは、点の位置の座標値を一組の位置コード601に変換する。これは、それぞれの値を2LEVELROOTと乗算し、その結果の積を切り捨てて整数にすることにより行われる。この整数は、バイナリ形式で表現される。
第2のステップは、開始セル602、例えばルートセルを選択する。セル602の特性603が判定される(610)。例えば、セル602がリーフセルであるかどうかが判定される。真ならば、セル602は、その点を含む目的のセル609である。
一方、偽ならば、2分木のそれぞれのレベルkにおいて、位置コード601のそれぞれからの(k−1)番目のビットが、判定される(610)適切な次の(子)セル604へのインデックスを求める(630)ために使用される。
セルのすべての子供は、このインデックスを可能とするために、連続的に順序付けられていることに留意されたい。この順序付けは、子セルまたは子セルへのポインタをメモリに連続的に記憶することにより行うことができる。インデックス付けされた子セルが子供を持たない場合には、所望のリーフセルに到達し、点の位置検出オペレーションは完了する。
従来技術の点の位置検出オペレーション300と異なり、我々の点の位置検出オペレーション600は、それぞれの分岐点において、点の位置およびそれぞれのセルの中間平面の位置との比較を必要としない。これにより、N次元2分木の巡回中、それぞれのレベルにおけるN回の比較がなくなる。
例えば、8レベルの8分木のレベル0のセルにおける点の位置を検出するのに、従来技術のオペレーションは、中間セルの適切な子供に分岐するために、付加的な24=(3*8)回の比較を必要とする。従来技術のこれら付加的な比較は、上述したように誤った予測を示す。
領域の位置検出
領域の位置検出は、所定の領域を囲む最小セルまたは一組のセルを発見する。我々の方法は、長方形の、座標軸に位置合わせされた境界ボックスを完全に囲む単一の最小セルを発見する。
我々の方法は、N次元2分木における領域の位置検出を提供する。我々の方法は、まず、最小の囲みセル(enclosing cell)のサイズを求める。次に、上述した点の位置検出方法の変形方法が、ルートセルから最小の囲みセルへ2分木を巡回するために使用される。
我々は、領域を定義する最小頂点vおよび最大頂点vの位置コード(lc)のそれぞれの対応する対の排他的論理和(XOR)を求めて、バイナリコード(bc)、すなわちbc=(lcv0 XOR lcv1)を生成することにより、最小の囲みセルのサイズ、すなわちレベルを求める。
次に、それぞれのバイナリコードは、左端(MSB(最上位ビット))から探索され、バイナリコードの組の最初の「1」のビットが発見される。この最初の「1」のビットは、位置コードの対の少なくとも1つが異なる、ルートレベルより下の最初のレベルを示す。そして、最小の囲みセルのレベルは、この「1」のビットの直前の「0」のビットのビット番号に等しい。
このレベルが求められると、次に、我々の方法は、リーフセルに遭遇するか、または、求められたサイズのセルに到達するまで、領域の頂点のあらゆるものの位置コード、例えば最小頂点の位置コード、のビットパターンに従って、ルートセルから下方に向かって2分木を巡回する。これにより、所望の囲み(目的の)セルが得られる。我々は、ここで、論理OR演算子を用いて、1つの条件または両方の条件のいずれかが、2分木の巡回を終了することを示す。
単純なシフトループから、値をビットスキャンするプロセッサ特有の単一命令に至るまで、バイナリコードの最上位の「1」のビットを特定するためのいくつかの方法が存在し、これにより、ループおよびその後の比較がなくなることに留意されたい。
第1の1次元の例として、2分木400の領域[0.31,0.65)は、左側の位置コードおよび右側の位置コードとしてそれぞれ001001および010101を有する。これらの位置コードの排他的論理和(XOR)を求めることにより、バイナリコード011100が得られる。このバイナリコードでは、左端(MSB(最上位ビット))からの最初の「1」のビットは、ビット位置4で遭遇する(ビット位置は、最右端のLSBビット(最下位ビット)から番号付けされ、0から番号付けされることを思い出していただきたい)。その結果、最小の囲みセルのレベルは5となる。すなわち、領域[0.31,0.65)の目的の囲みセルは、ルートセルである。
第2の1次元の例として、2分木400の領域[0.31,0.36)は、位置コード001001および001010を有する。XORステップによって000011が得られ、左端からの最初の「1」のビットは、ビット位置1で遭遇する。その結果、最小の囲みセルのレベルは2である。次に、目的のレベル3のリーフセル501、[0.25,0.50)に遭遇するまで、左側の位置コード001001に従ってルートセルから下方に向けて2分木400を巡回することによって、この最小の囲みセルが発見される。
近傍セル探索
近傍セル探索は、指定された方向、例えば左、上端、および左上端で所定のセルに隣接するセルを発見する。いくつかの変形形態が存在する。これらの変形形態には、共通の頂点、端、もしくは面により近傍セルを発見するもの、所定のセルと同じサイズもしくは所定のセルより大きなサイズの近傍セルを発見するもの、または、所定のセルのすべてのリーフセルの近傍セルを発見するものが含まれる。
所定のセルの近傍セルを求めるために、我々は、まず、2つの近傍のセルの位置コードのビットパターンが、当該2つのセル間のバイナリ距離だけ異なることに留意する。例えば、あるセルのすべての右近傍セルの左境界は、中間セルおよびリーフセルを含めて、そのセルの左境界から、セルのサイズだけオフセットを有する。したがって、あるセルのすべての右近傍セルのx座標に対応する位置コード、すなわちセルのx位置コードは、セルのサイズのバイナリ形式をセルのx位置コードに加算することにより求めることができる。
セルのサイズのバイナリ形式は、セルのレベル、すなわち、cellSize≡binary(2cellLevel)から求められる。したがって、あるセルの右近傍セルのx位置コードは、そのセルのx位置コードおよびcellSizeの和である。
一例として、セル501、[0.25,0.5)は、位置コード502、001000を有し、レベル3である。したがって、そのセルの右境界と接する近傍セルのx位置コードは、001000+binary(2)=001000+001000=010000となる。
あるセルの左近傍セルのx位置コードを求めることは、より複雑である。セルの左近傍セルのサイズは不明であるので、そのセルのx位置コードとそのセルの左近傍セルのx位置コードとの間の正確なバイナリオフセットも不明である。しかしながら、可能な限り最小の左近傍セルは、レベル0を有する。したがって、あるセルのx位置コードとそのセルの可能な限り最小の左近傍セルのx位置コードとの差は、binary(2)となる。すなわち、可能な限り最小の左近傍セルのx位置コードは、セルのx位置コード−binary(1)となる。
さらに、この可能な限り最小の左近傍セルの左境界は、セルのあらゆる左近傍セルの左境界と右境界との間に位置する。このセルには、中間セルおよび可能な限り最小の左近傍セルより大きなリーフセルが含まれる。したがって、この可能な限り最小の左近傍セルのx位置コードを用いてルートセルから下方に向かって2分木を巡回し、指定されたレベルの近傍セルに到達するか、または、リーフセルに遭遇すると停止することにより、セルの左近傍セルの位置を検出することができる。
一例として、セル501、[0.25,0.5)の可能な限り最小の左近傍セルは、x位置コード001000−000001=000111を有する。この位置コードを用いて、2分木400をルートセルから下方に向かって巡回し、リーフセルに到達すると停止することによって、セルの左近傍セルとして、位置コード504、000100を有するセル503、[0.125,0.25)が得られる。
N次元2分木については、リーフセルに遭遇するか、または、指定された最大の木巡回レベルに到達するまでの近傍セルへの一組のN個の位置コードの分岐パターンに従うことによって、近傍セルの位置を検出することができる。近傍セルへのN個の位置コードは、指定された方向から求められる。指定された方向は、対応するセルの境界を求める。2次元2分木では、右端の近傍セルのx位置コードが、セルの右境界から求められ、右上端の頂点近傍セルのx位置コードおよびy位置コードは、セルの上境界および右境界から求められる。
例えば、2次元2分木、すなわち4分木では、所定のセルのサイズ以上のサイズを有する右端近傍セルは、リーフセルに到達するか、または、所定のセルと同じレベルのセルに到達するかのいずれかまで、所定のセルの右境界のx位置コードおよび所定のセルのy位置コードを備える近傍セルの位置コードを用いて、ルートセルから下方に向かって巡回することにより、その位置を検出する。
第2の2次元の例として、所定のセルの左下端のリーフセルの頂点近傍セルは、リーフセルに遭遇するまで、所定のセルの可能な限り最小の左近傍セルのx位置コードおよび所定のセルの可能な限り最小の下端の近傍セルのy位置コードを用いて、ルートセルから下方に向かって、2次元2分木、すなわち4分木を巡回することにより、その位置を検出する。
所望の近傍セルの位置コードが求められた後、所望の近傍セルは、ルートセルから下方に向かって2分木を巡回することにより発見することができる。しかしながら、まず、所定のセルから、当該所定のセルおよびその近傍セルの最小の共通の先祖へ上方に向かって2分木を巡回し、次に、この最小の共通の先祖から近傍セルへ下方に向かって2分木を巡回することが、より効率的であり得る。これについては、H. Samet著の「Applications of Spatial Data Structures: Computer Graphics, Image Processing, GIS」, Addison-Wesley, Reading, MA, 1990を参照されたい。
都合が良いことに、我々の位置コードは、この最小の共通の先祖を求める効率的な手段も提供する。1次元2分木を仮定すると、近傍セルの位置コードが、上述したように、所定のセルおよび所定の方向から求められる。次に、所定のセルの位置コードが、近傍セルの位置コードとXOR操作され、不一致(difference)コードが生成される。次に、不一致コードの対応するビットが0である最初のレベルに到達するまで、2分木が、所定のセルから上方に向かって巡回される。この不一致コードの対応するビットが0である最初のレベルは、その2つの位置コードが同じである最初の分岐点を示す。我々は、これを停止レベルと呼ぶ。このように停止レベルへと上方に向かって巡回することによって到達したセルが、所定のセルおよびその近傍セルの最小の共通の先祖である。
N次元では、セルのN個の位置コードが、その近傍セルのN個の対応する位置コードとXOR操作され、N個の不一致コードが生成される。N個の不一致コードを用いて上方に向かって巡回することによって到達する最も高いレベルのセルが、最小の共通の先祖である。
第1の例として、1次元2分木400のレベル3のセル501、[0.25,0.5)とその右近傍セルとの不一致コードは、001000^010000=011000となる。2分木をレベル3から上方に向かって巡回することは、この不一致コードにおけるビット3の左側のビットを検討することを意味する。最初の0のビットは、LEVELROOTに到達する。したがって、セル501およびその右近傍セルの最小の共通の先祖は、ルートセルとなる。
第2の例として、1次元2分木400のレベル3のセル505、[0.75,1)とそのリ左近傍セルとの不一致コードは、011000^010111=001111となる。ビット3の左側のビットを検討すると、最初の0のビットは、ビット4にあり、これはレベル4のセルに対応する。したがって、セル505およびその左近傍セルの最小の共通の先祖は、このセルの親セル506となる。この親セルは、位置コード507、010000を有する。
用途に応じて、近傍セル探索のいくつかの異なる変形形態が必要とされることがある。例えば、所定のセルと少なくとも同じサイズの最小の左近傍セルの発見および所定のセルの指定された頂点に接するリーフセルの近傍セルのすべての発見が必要とされることがある。
本発明による近傍セル発見方法には、従来の方法を上回るいくつかの利点がある。第1に、我々は、それぞれの次元を独立に取り扱うので、我々の方法は、任意の次元数で機能する。これと対照的に、従来技術の方法は、2次元2分木および3次元2分木にのみ機能するテーブル検索を使用する。これらテーブルの構成は、2次元および3次元の空間の関係を視覚化できることを頼りにしていた。したがって、より高次元にこれらのテーブルを拡張することは、極めて困難であり、誤りを起こしやすく、かつ、検証するのに時間がかかる。実際、より高次元の2分木は、コンピュータビジョン、科学的可視化、および色彩科学といった分野で非常に有用であるが、これら高次元の2分木の近傍セル探索用のテーブルは知られていない。
第2に、我々の方法は、メモリアクセスを必要とする従来のテーブル検索を、ビット操作の形態の単純なレジスタベースの計算と交換する。これは、プロセッサ速度がメモリ速度を超える現代のシステムアーキテクチャにおいて有利である。高速のキャッシュメモリを有する現代のシステムでさえ、アプリケーションデータおよびテーブルデータは、多くの実際のアプリケーションで、キャッシュの獲り合いを行う。この獲り合いは、メモリからテーブルデータを頻繁に再ロードすることを強いることになり、したがって、テーブルベースの従来技術の方法の性能を劣化させている。
その上、従来技術の近傍セル探索方法およびテーブルは、限定された種類の近傍探索用に考案されてきた。従来の近傍セル探索は、面、端、および頂点の近傍セルに対して異なる方法を必要とし、「頂点近傍セルはかなり複雑である」。これについては、H. Samet著の「Applications of Spatial Data Structures: Computer Graphics, Image Processing, GIS」, Addison Wesley, Reading, MA, 1990を参照されたい。これと対照的に、我々の方法は、すべての種類の近傍セル探索に単一の手法を使用する。さらに、従来技術のテーブルは、所定のセル列挙用に特殊化されており、異なるセルのラベル付け規則に対しては、再定義を行わなければならない。異なる規則および異なるタイプの近傍セル探索用のテーブルを生成することは困難であり、誤りを起こしやすく、かつ検証するのに時間がかかる。
最後に、我々の近傍セル探索方法は、本質的に非再帰的で、必要とされるブール演算数は、従来の方法よりも少ない。これと対照的に、従来の近傍セル探索方法は、本質的に再帰的であり、再帰を解きほぐすことは簡単ではない。4分木および8分木用の非再帰的近傍セル探索方法は、Bhattacharyaによって、「Efficient Neighbor Finding Algorithms in Quadtree and Octree」, M.T. Thesis, Dept. Comp. Science and Eng., India Inst. Technology, Kanpur, 2001に記述されている。しかしながら、その方法は、セルと同じサイズまたはセルより大きなサイズの近傍セルの発見に限定される。その上、Sametの方法と同様に、その方法は、適切な近傍セルを求めるのに、テーブルベースの巡回を必要とする。したがって、その方法は、上述したのと同じ従来の近傍セル探索方法の制限に苦しむことになる。
レイトレーシング
3次元2分木、すなわち8分木に記憶された3次元図形オブジェクトのレイトレーシングは、当該2分木を通過する光線に沿ったリーフセルの順序列を求めること、それぞれの空でないリーフセルが光線面(ray-surface)と交差しているかどうかを判定すること、および光線面の交差を処理することを必要とする。
3次元のレイトレーシングは、コンピュータグラフィックスで広く使用されている。その上、電気通信、ロボット工学、およびコンピュータビジョンといった分野では、N次元2分木を通過する光線に沿ってリーフセルの順序列を求める多くのアプリケーションが存在する。
図7に示すように、本発明によると、第1のステップは、光線701が、2次元2分木に最初に入る点702を求める。第2のステップは、点702に対して我々の点の位置検出方法(上述)を用いて、リーフセル703およびその位置コードを求める。第3のステップは、光線停止条件、例えば「セル内に光線面交差が存在するか」を知るためにセル703を判定する。
判定が偽であるならば、光線701に沿った次のセル706の位置コードが、セル703の位置コード、光線701の方向、およびセル703のサイズから2つのステップで求められる。
第1のステップは、その値がセル703の最大頂点または最小頂点の対応する座標値と等しい出口点705の座標の一部を求める。この一部は、光線701がセル703を出ていく場所に依存する。例えば、光線701は、セル703の右端704でセル703を出て行くので、この一部は、出口点705のx座標からなる(ただし、x=xMAX(cell703))。この座標の一部は、次のセル706への位置コードの対応する一部を求める。次のセル706は、上述した本発明の近傍セル探索方法によってセル703の位置コードおよびサイズから次に求められる。
第2のステップは、第1のステップで求められた位置コードおよび光線701の方程式から、次のセル706への残りの位置コードを求める。最後に、次のセル706への位置コードは、上述した本発明の近傍セル探索方法によって、2分木を上方に巡回してセル703および706の共通の先祖へ向かい、かつ、2分木を下方に巡回して近傍セル706に戻るために使用される。
光線701に沿って次のセルを求めるこのプロセスは、光線701に沿ったリーフセルの順序列を求めるために、光線停止条件が満たされるまで繰り返される。
我々の方法は、レイトレーシング用のトップ−ダウン木巡回手法およびボトム−アップ木巡回手法の双方に適用することができる一方、従来技術で使用されるブール演算、再帰、および可能な限り最小のリーフセルに比例した増分で光線に沿って進める処理を回避する。
本発明について、好ましい実施の形態を例にして説明してきたが、本発明の精神および範囲内において、さまざまな他の適用および変更を行い得ることが理解されるべきである。したがって、併記の特許請求の範囲の目的は、本発明の真の精神および範囲内に入るこのようなすべての変形形態および変更形態を包含することである。
本発明による2次元2分木のデータ構造を示す図である。 本発明による2次元2分木の空間分割を示す図である。 典型的な従来技術の点の位置検出方法のフローチャートの図である。 本発明による1次元2分木の階層的なツリー構造(木構造)および関連する位置コードを示す図である。 本発明による1次元2分木の空間分割および関連する位置コードを示す図である。 本発明による点の位置検出のフローチャートの図である。 本発明による2次元2分木と交差する光線を示す図である。

Claims (24)

  1. メモリに記憶され、かつ、2分木と関連した特定用途向けデータの位置を検出するために、前記メモリに記憶された前記2分木を巡回する方法であって、前記2分木は、N次元空間の、セルの階層への空間分割を備え、それぞれのセルは、前記N次元空間を囲むルートセルから開始し、前記セルのN個の中間平面に沿って2個の子セルに連続的に、かつ、条件付きで分割され、それぞれのセルは、前記特定用途向けデータを構成する関連した特性を有し、子セルが親セルから直接インデックス付けされ、該方法は、
    位置コードの組を指定することと、
    セルを指定することと、
    前記セルの前記特性が終了条件を満たすかどうかを判定すること、そして、終了条件を満たさない場合には判定されるべき次のセルを直接インデックスするために、前記位置コードの組に対して算術オペレーションのみを適用することと、そうでなく、
    終了条件を満たす場合には、前記セルを目的のセルとして特定することと、
    前記目的のセルの前記特定用途向けデータを前記メモリから取り出すことと、
    を備えた方法。
  2. 前記位置コードを指定するステップは、
    前記N次元空間におけるN次元の点のN個の座標を求めることと、
    結果を生成するために、それぞれの座標について、該座標の値に2(ただしkは前記2分木の前記ルートセルのレベルである)を乗算することと、
    前記対応する位置コードを指定するために、前記結果をバイナリ形式に変換することと
    をさらに備えた請求項1に記載の方法。
  3. 前記位置コードの組のそれぞれは、前記N次元空間の点に対応する座標から求められ、前記セルは、前記2分木の前記ルートセルであり、前記終了条件は、前記セルがリーフセルである場合に満たされる、請求項1に記載の方法。
  4. 前記点を含むN次元長方形領域を最小頂点vおよび最大頂点vによって表すことと、
    リーフセルに到達するか、または前記2分木の終了レベルに到達すると、前記終了条件を満たすことと
    をさらに備え、
    前記終了レベルは、前記N次元長方形領域を囲む最小セルを発見するための前記最小頂点vおよび前記最大頂点vの位置コードから求められる請求項3に記載の方法。
  5. 前記終了レベルを求めることは、
    前記N次元空間のそれぞれの座標について、候補レベルを求めることと、
    前記候補レベルのうちの最大のものに対して前記終了レベルを設定することと
    を備え、
    前記候補レベルを求めることは、
    前記最小頂点の前記座標から対応する位置コードlcv0を求めることと、
    前記最大頂点の前記座標から対応する位置コードlcv1を求めることと、
    バイナリコードbc=(lcv0 XOR lcv1)を求めることと、
    前記バイナリコードbcにおいてMSB(最上位ビット)である左側から最初の1のビットを求めることと、
    前記最初の1のビットのすぐ左の0のビットのビット番号に前記候補レベルを設定することと
    をさらに備えた請求項4に記載の方法。
  6. 前記位置コードは、所定のセルおよび該所定のセルからの方向に対する算術オペレーションによって求められ、前記終了条件は、前記方向における前記所定のセルの近傍のセルを発見するために、前記2分木において、リーフセルに到達したとき、あるいは終了レベルに到達したときに満たされる請求項1に記載の方法。
  7. 前記セルは、前記2分木の前記ルートセルである、請求項6に記載の方法。
  8. 前記セルは、前記所定のセルおよび前記近傍のセルの共通の先祖である、請求項6に記載の方法。
  9. 前記算術オペレーションは、
    前記N次元空間のそれぞれの座標について、前記所定のセルに対応する位置コードlccellを求めることと、
    前記N次元空間のぞれぞれの座標について、前記近傍のセルの最小頂点に対応する座標値が、前記セルの最大頂点に対応する座標値と等しい場合には、前記所定のセルのサイズを、前記対応する位置コードlccellに加算することと、
    前記N次元空間のぞれぞれの座標について、前記近傍のセルの最大頂点に対応する座標値が、前記セルの最小頂点に対応する座標値と等しい場合には、前記対応する位置コードlccellからサイズを減算することと、
    をさらに備えた請求項6に記載の方法。
  10. 前記サイズは、前記2分木の最小セルのサイズである、請求項9に記載の方法。
  11. 前記共通の先祖を求めることは、
    前記N次元空間のそれぞれの座標について候補レベルを求めることと、
    前記候補レベルのうちの最大のものに対して停止レベルを設定することと、
    前記停止レベルに到達するまで、前記所定のセルから上方に向けて親のポインタに従うことにより、前記共通の先祖を求めることと
    を備え、
    前記候補レベルを求めることは、
    前記座標について、前記所定のセルの位置コードlccellを求めることと、
    前記座標について、前記近傍のセルの位置コードlcを求めることと、
    バイナリコードbc=(lc XOR lccell)を求めることと、
    そのビット番号が前記所定のセルのレベルである、bcにおけるビットbcellを求めることと、
    bcにおいて、bcellの左に向かって最初の0のビットbcandidateを求めることと、
    前記候補レベルを、bcandidateのビット番号として求めることと
    を備えた請求項8に記載の方法。
  12. 前記N次元の点は、任意のセルのN個の位置コードを指定するための前記2分木の前記任意のセルの最小頂点である、請求項2に記載の方法。
  13. 光線が前記2分木で選択されたセルと交差する複数の点を指定するために、前記2分木を通して前記光線をトレースすることと、
    それぞれの前記点について、位置コードの組を求めることと、
    前記位置コードの組のそれぞれについて、リーフセルである前記対応する目的のセルを特定することと、
    をさらに備えた請求項2に記載の方法。
  14. 前記選択されたセルは、前記2分木のボトム−アップ巡回のためのリーフセルである、請求項13に記載の方法。
  15. 前記目的のセルを特定することは、光線停止条件が満たされたときに終了する、請求項13に記載の方法。
  16. 前記目的のセルは、前記光線がトレースされる順序で特定される、請求項13に記載の方法。
  17. 前記セルは、前記2分木の前記ルートセルであり、位置コードの第1の組は、前記光線が前記2分木に入る入口点として求められ、次の位置コードの組のそれぞれは、前記光線が前記目的のセルから出て行く出口点から求められる、請求項13に記載の方法。
  18. 次の位置コードの組のそれぞれについて、前記セルは、前記目的のセルと、前記光線が前記目的のセルから出て行く前記出口点に隣接する近傍のセルとの共通の先祖である、請求項17に記載の方法。
  19. 前記次の位置コードの組は、前記2分木の前記選択されたセルの位置コードに対する第2の算術オペレーションによって求められる、請求項17に記載の方法。
  20. 前記次の位置コードの組を求める前記第2の算術オペレーションは、
    その値が、前記目的のセルの前記最大頂点および前記最小頂点の前記対応する座標値と等しい前記出口点の座標の一部を求めることと、
    前記一部におけるそれぞれの座標について、前記次の位置コードの組に対応する位置コードを求めることと、
    前記光線および位置コードの前記一部に対して算術オペレーションを実行することによって、前記一部にない前記次の位置コードの組の前記位置コードを求めることと
    を備え、
    前記次の位置コードの組に対応する位置コードを求めることは、
    前記目的のセルの対応する位置コードlccellを求めることと、
    前記対応する位置コードを求めるために、lccellおよび前記光線の方向に対して算術オペレーションを実行することと
    をさらに備えた請求項19に記載の方法。
  21. 前記光線の停止条件は、前記光線が、前記目的のセルに記憶された図形要素と交差したときに満たされる、請求項15に記載の方法。
  22. 前記光線の停止条件は、前記光線が、前記2分木から出ていくときに満たされる、請求項15に記載の方法。
  23. Nは、ゼロより大きな整数である、請求項1に記載の方法。
  24. メモリに記憶され、かつ、2分木と関連した特定用途向けデータの位置を検出するために、前記メモリに記憶された前記2分木を巡回するシステムであって、前記2分木は、N次元空間の、セルの階層への空間分割を備え、それぞれのセルは、前記N次元空間を囲むルートセルから開始し、前記セルのN個の中間平面に沿って2個の子セルに連続的に、かつ、条件付きで分割され、それぞれのセルは、前記特定用途向けデータを構成する関連した特性を有し、子セルが、親セルから直接インデックス付けされ、該システムは、
    位置コードの組を指定する手段と、
    セルを指定する手段と、
    前記セルの前記特性が終了条件を満たすかどうかを判定すること、そして、終了条件を満たさない場合は判定されるべき次のセルを直接インデックスするために、前記位置コードの組に対して算術オペレーションのみを適用する手段と、そうでなく、
    終了条件を満たす場合は、前記セルを目的のセルとして特定する手段と、
    前記目的のセルの前記特定用途向けデータを前記メモリから取り出す手段と、
    を備えるシステム。
JP2003281990A 2002-07-31 2003-07-29 2分木を巡回する方法およびシステム Expired - Fee Related JP4372477B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/209,302 US6868420B2 (en) 2002-07-31 2002-07-31 Method for traversing quadtrees, octrees, and N-dimensional bi-trees

Publications (2)

Publication Number Publication Date
JP2004164596A JP2004164596A (ja) 2004-06-10
JP4372477B2 true JP4372477B2 (ja) 2009-11-25

Family

ID=31187018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003281990A Expired - Fee Related JP4372477B2 (ja) 2002-07-31 2003-07-29 2分木を巡回する方法およびシステム

Country Status (2)

Country Link
US (1) US6868420B2 (ja)
JP (1) JP4372477B2 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7499053B2 (en) * 2000-06-19 2009-03-03 Mental Images Gmbh Real-time precision ray tracing
DE10239672B4 (de) * 2002-08-26 2005-08-11 Universität des Saarlandes Verfahren und Vorrichtung zur Erzeugung einer zweidimensionalen Abbildung einer dreidimensionalen Struktur
DE102004007835A1 (de) * 2004-02-17 2005-09-15 Universität des Saarlandes Vorrichtung zur Darstellung von dynamischen komplexen Szenen
CA2609283A1 (en) * 2005-06-23 2007-01-04 Mental Images Gmbh Real-time precision ray tracing
WO2007013572A1 (ja) 2005-07-29 2007-02-01 Shiseido Company, Ltd. 毛髪はり・こし改善剤および毛髪用化粧料
US7692651B2 (en) * 2005-09-22 2010-04-06 Siemens Medical Solutions Usa, Inc. Method and apparatus for providing efficient space leaping using a neighbor guided emptiness map in octree traversal for a fast ray casting algorithm
US9557887B2 (en) 2005-12-27 2017-01-31 International Business Machines Corporation Integrated multidimensional view of hierarchical objects
US8190649B2 (en) * 2006-04-25 2012-05-29 Google Inc. Ranking and clustering of geo-located objects
US20080024489A1 (en) * 2006-07-28 2008-01-31 Robert Allen Shearer Cache Utilization Optimized Ray Traversal Algorithm with Minimized Memory Bandwidth Requirements
US20080088619A1 (en) * 2006-10-17 2008-04-17 Robert Allen Shearer Branch Prediction for Acceleration Data Structure Traversal
US7852336B2 (en) * 2006-11-28 2010-12-14 International Business Machines Corporation Dynamic determination of optimal spatial index mapping to processor thread resources
US8139060B2 (en) * 2006-11-28 2012-03-20 International Business Machines Corporation Ray tracing image processing system
US7912839B1 (en) * 2007-05-31 2011-03-22 At&T Intellectual Property Ii, L.P. Method and apparatus for creating a non-uniform index structure for data
US8289324B1 (en) * 2007-12-17 2012-10-16 Nvidia Corporation System, method, and computer program product for spatial hierarchy traversal
US8502819B1 (en) 2007-12-17 2013-08-06 Nvidia Corporation System and method for performing ray tracing node traversal in image rendering
KR101420237B1 (ko) * 2008-02-25 2014-07-17 삼성전자주식회사 이웃 포인트의 탐색이 용이한 3d 영상 처리 방법
US8253730B1 (en) * 2008-08-29 2012-08-28 Adobe Systems Incorporated System and method for construction of data structures for ray tracing using bounding hierarchies
US8639725B1 (en) * 2011-01-31 2014-01-28 Google Inc. Methods for efficiently querying multiple points in an indexed quadtree
US8856184B1 (en) * 2011-01-31 2014-10-07 Google Inc. Methods and systems for encoding the maximum resolution data level for a quadtree
KR20120140104A (ko) * 2011-06-20 2012-12-28 현대자동차주식회사 메모리의 데이터 저장 방법
US9275059B1 (en) * 2011-11-07 2016-03-01 Emc Corporation Genome big data indexing
KR20140089426A (ko) * 2011-11-07 2014-07-14 톰슨 라이센싱 예측성 위치 디코딩
WO2013067674A1 (en) * 2011-11-07 2013-05-16 Thomson Licensing Predictive position encoding
TWI534760B (zh) * 2011-11-28 2016-05-21 湯姆生特許公司 空間樹結構對輸入空間點編碼之方法及編碼器,以及空間樹結構位元流之解碼方法及解碼器
US8650220B2 (en) * 2012-06-05 2014-02-11 Google Inc. System and method for storing and retrieving geospatial data
DE102012105332A1 (de) * 2012-06-19 2013-12-19 Continental Teves Ag & Co. Ohg Verfahren zur Darstellung einer Fahrzeugumgebung
US9396249B1 (en) * 2013-06-19 2016-07-19 Amazon Technologies, Inc. Methods and systems for encoding parent-child map tile relationships
US20150006528A1 (en) * 2013-06-28 2015-01-01 Iac Search & Media, Inc. Hierarchical data structure of documents
CN109341707B (zh) * 2018-12-03 2022-04-08 南开大学 未知环境下移动机器人三维地图构建方法
CN111475589B (zh) * 2019-01-22 2023-05-12 阿里巴巴集团控股有限公司 图像数据的渲染方法及装置
CN113610982B (zh) * 2021-08-10 2023-08-08 四川易方智慧科技有限公司 基于大规模模型场景的邻域查询方法
CN115906460B (zh) * 2022-11-14 2023-10-13 北京市测绘设计研究院 编码方法、装置、计算机设备和存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2080209A1 (en) 1992-01-10 1993-07-11 Eric Allen Brewer Spatially organized computer display system
US5937190A (en) * 1994-04-12 1999-08-10 Synopsys, Inc. Architecture and methods for a hardware description language source level analysis and debugging system
US6317690B1 (en) * 1999-06-28 2001-11-13 Min-Chung Gia Path planning, terrain avoidance and situation awareness system for general aviation

Also Published As

Publication number Publication date
JP2004164596A (ja) 2004-06-10
US6868420B2 (en) 2005-03-15
US20040024779A1 (en) 2004-02-05

Similar Documents

Publication Publication Date Title
JP4372477B2 (ja) 2分木を巡回する方法およびシステム
Frisken et al. Simple and efficient traversal methods for quadtrees and octrees
Samet Neighbor finding in images represented by octrees
MacDonald et al. Heuristics for ray tracing using space subdivision
Lee et al. Navigating through triangle meshes implemented as linear quadtrees
Chiang et al. Dynamic algorithms in computational geometry
De Floriani et al. Hierarchical triangulation for multiresolution surface description
US7002571B2 (en) Grid-based loose octree for spatial partitioning
Cohen et al. Proximity clouds—an acceleration technique for 3D grid traversal
US9396512B2 (en) Fully parallel construction of k-d trees, octrees, and quadtrees in a graphics processing unit
US11704537B2 (en) Octree-based convolutional neural network
US8773422B1 (en) System, method, and computer program product for grouping linearly ordered primitives
EP3232341A1 (en) Enhanced spatial index for point in polygon operations
Vörös Low-cost implementation of distance maps for path planning using matrix quadtrees and octrees
Gargantini et al. Ray tracing an octree: Numerical evaluation of the first intersection
Shaffer et al. Generalized comparison of quadtree and bintree storage requirements
Kim et al. Utilizing extended geocodes for handling massive three-dimensional point cloud data
Hu et al. Parallel BVH construction using locally density clustering
Vörös A strategy for repetitive neighbor finding in octree representations
Khamayseh et al. Use of the spatial kD-tree in computational physics applications
KR20000007169A (ko) 분할된 최소 경계 사각형을 이용한 데이터 베이스 관리 방법
Uher et al. Proposal of effective orthogonal and hexagonal hierarchical structures for disc queries
Payeur A computational technique for free space localization in 3-D multiresolution probabilistic environment models
CN117058300B (zh) 一种基于kd树加速光线与未裁剪曲面交点计算的方法
Yin et al. Incremental construction of generalized Voronoi diagrams on pointerless quadtrees

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060614

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090820

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090901

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090902

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120911

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4372477

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130911

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees