JP5572340B2 - データ処理装置および方法 - Google Patents

データ処理装置および方法 Download PDF

Info

Publication number
JP5572340B2
JP5572340B2 JP2009160930A JP2009160930A JP5572340B2 JP 5572340 B2 JP5572340 B2 JP 5572340B2 JP 2009160930 A JP2009160930 A JP 2009160930A JP 2009160930 A JP2009160930 A JP 2009160930A JP 5572340 B2 JP5572340 B2 JP 5572340B2
Authority
JP
Japan
Prior art keywords
node
rays
data processing
packets
grouped
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
JP2009160930A
Other languages
English (en)
Other versions
JP2010097591A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2010097591A publication Critical patent/JP2010097591A/ja
Application granted granted Critical
Publication of JP5572340B2 publication Critical patent/JP5572340B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/52Parallel processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、3Dレンダリング(Rendering)のうち、レイトレーシング(Ray Tracing)などで用いられる衝突チェック(Collision Check)のためにデータを処理する方法および装置に関する。
レイトレーシングを加速するアルゴリズムとして、最近、ハードウェアのSIMD(Single Instruction Multiple Data)特性を活用しようとする研究が最も活発である。レイトレーシングの演算複雑度はレイ数とジオメトリ(geometry)数の乗算でなされるが、SIMD演算を介して演算速度を向上させることができる。
現在、SIMD帯域幅は128ビットまで開発され、インテルやエヌビディア(NVIDIA)など多数のハードウェア製造会社のロードマップによれば、2010年には512ビットまで拡大される予定にある。
このようなハードウェアの発展と共に、レイトレーシングで高いコヒーレンス(coherency)を有するレイ、すなわち、出発地点、目標地点と進行方向が類似したレイに対する衝突チェックを一度に実行する研究の重要性も高まっている。
しかしながら、既存のSIMD加速アルゴリズムは、一次レイ(primary ray)のみを考慮している。レイトレーシングにおいて一次レイは高いコヒーレンスを見せるが、演算の大部分を占める二次レイ(secondary ray)からは急激にコヒーレンスが低下するという特性を有している。
また、レイトレーシングは、CPUの特性である分岐/再帰(branching/recursion)に適したアルゴリズムであるが、高いFLOP性能を見せるGPU、Cellなどのプロセッサは基本的にストリーミング(streaming)方式を用いるため、このような点をレイトレーシングで考慮する必要がある。
大韓民国公開特許第2008−0055327号公報 大韓民国公開特許第2008−0052328号公報 大韓民国公開特許第2008−0020198号公報 大韓民国公開特許第2008−0018501号公報
本発明は、上述した問題点を解決するために案出されたものであって、一次レイだけではなく、二次レイを含むSIMD加速方法および演算装置を提供することを目的とする。
また、本発明は、SIMDビット数の増加に伴って比例した性能向上を招来することができるように、レイのコヒーレンス程度にほぼ影響を受けないSIMD演算のためのデータ処理方法および装置を提供することを他の目的とする。
上述した目的を達成するために、本発明の一実施形態によれば、複数のレイに対する衝突チェックを実行するデータ処理装置であって、空間データ構造(Spatial data structure)内の第1ノードと関連した複数のレイに対して複数のパケットを生成する制御部[前記複数のパケットうちの少なくとも1つは、k個(ただし、kは自然数)のレイに関する情報を含む]と、前記複数のパケットが順次に提供され、前記第1ノードと関連した複数のレイそれぞれが前記第1ノードの子孫ノードのうちどのノードと関連するかを決定する処理部(Processor)とを備えるデータ処理装置が提供される。
前記処理部はSIMD方式のプロセッサとすることができる。
本発明の一実施形態では、前記データ処理装置は、前記第1ノードと関連した複数のレイそれぞれが前記第1ノードの子孫ノードのうちどのノードと関連するかが決定される場合、幅優先探索(Breadth−first search)方法により、前記第1ノードと空間データ構造内における深さ(depth)が同じである第2ノードと関連した複数のレイそれぞれが前記第2ノードの子孫ノードのうちどのノードと関連するかを決定する。
しかしながら、本発明の他の実施形態において、前記データ処理装置は、前記第1ノードと関連した複数のレイそれぞれが前記第1ノードの子孫ノードのうちどのノードと関連するかが決定される場合、深さ優先探索(Depth−first search)方法により、前記第1ノードの第1子孫ノードと関連した複数のレイそれぞれが前記第1子孫ノードの子孫ノードうちどのノードと関連するかを決定する。
一方、前記空間データ構造は、kd−treeまたはBVHなどとすることができ、この場合、前記第1ノードの子孫ノードは2つである。
本発明の一実施形態によれば、前記処理部は128ビットプロセッサであり、前記kは4である。
本発明のさらに他の一実施形態によれば、複数のレイに対する衝突チェックを実行するデータ処理装置であって、空間データ構造内の第1ノードと関連した複数のレイに対して複数のパケットを生成する制御部[前記複数のパケットのうちの少なくとも1つは、k個(ただし、kは自然数)のレイに関する情報を含む]と、前記制御部から提供される前記複数のパケットを臨時で格納する第1バッファメモリと、前記第1バッファメモリから前記複数のパケットを順次に受信し、前記第1ノードと関連した複数のレイが前記第1ノードの子孫ノードのうちどのノードと関連するかを決定する処理部とを備えるデータ処理装置が提供される。
一方、前記データ処理装置は、前記第1ノードと関連した複数のレイが前記第1ノードの子孫ノードのうちどのノードと関連するかに関する情報を含むレイデータを格納する第2バッファメモリをさらに備える。
本発明の一実施形態によれば、前記処理部は、前記第1バッファから前記複数のパケットが順次に提供され、演算ごとに前記第1ノードと関連した複数のレイのうちのk個のレイが前記第1ノードの子孫ノードのうちどのノードと関連するかを決定するSIMD方式の演算を実行する。
本発明のさらに他の一実施形態によれば、複数のレイに対する衝突チェックを実行するデータ処理方法であって、空間データ構造内の第1ノードと関連した複数のレイに対して複数のパケットを生成するステップ[前記複数のパケットのうちの少なくとも1つは、k個(ただし、kは自然数)のレイに関する情報を含む]と、前記複数のパケットを処理部に提供し、前記1ノードと関連した複数のレイそれぞれが前記第1ノードの子孫ノードのうちどのノードと関連するかを決定するステップとを含むデータ処理方法が提供される。
本発明の一実施形態によれば、前記データ処理方法は、前記空間データ構造上の第1ノードと関連した複数のレイそれぞれが前記第1ノードの子孫ノードのうちどのノードと関連するかを決定した後に、幅優先探索方法により、前記第1ノードと空間データ構造内における深さが同じである第2ノードと関連した複数のレイそれぞれが前記第2ノードの子孫ノードのうちどのノードと関連するかを決定する。
一方、前記データ処理方法は、前記空間データ構造上の第1ノードと関連した複数のレイそれぞれが前記第1ノードの子孫ノードのうちどのノードと関連するかを決定した後に、深さ優先探索方法により、前記第1ノードの第1子孫ノードと関連した複数のレイそれぞれが前記第1子孫ノードの子孫ノードのうちどのノードと関連するかを決定することもできる。
本発明のさらに他の一実施形態によれば、複数のレイに対する衝突チェックを実行するデータ処理方法であって、空間データ構造内の第1ノードと関連した複数のレイに対して複数のパケットを生成して第1バッファメモリに格納するステップ[前記複数のパケットのうちの少なくとも1つは、k個(ただし、kは自然数)のレイに関する情報を含む]と、前記第1ノードと関連した複数のレイが前記第1ノードの子孫ノードのうちどのノードと関連するかを決定するために、前記第1バッファから前記複数のパケットを順次に読み取ってSIMD方式の処理部に提供するステップと、前記SIMD方式の処理部によって追加される情報を含む複数のレイデータを第2バッファメモリに格納するステップとを含むデータ処理方法が提供される。
前記空間データ構造はkd−treeとすることができ、この場合、データ構造内の各ノードの子孫ノード数は2とすることができる。
また、前記空間データ構造はBVH(Bounding Volume Hierarchies)とすることができ、この場合も、データ構造内の各ノードの子孫ノード数は2とすることができる。
本発明に係る一実施形態によれば、レイトレーシングにおいて、SIMD加速性能が改善される。
また、本発明の他の実施形態によれば、レイトレーシングにおいてレイのコヒーレンス程度にほぼ影響を受けないと共にSIMD演算が可能であるため、SIMDビット数の増加に伴って比例した性能向上が可能である。
本発明の一実施形態に係るデータ処理装置を示すブロック図である。 本発明の一実施形態によって衝突チェックを実行する様子を示す図である。 本発明の一実施形態によって図2の3Dモデルと関連する空間データ構造の様子を示す図である。 本発明の一実施形態によって、複数のレイに対して複数のパケットを生成してデータ処理方法を実行する過程を示す図である。 本発明の一実施形態に係るデータ処理装置内において、複数のパケットが処理部で処理される様子を示す図である。 本発明の一実施形態に係るデータ処理方法を示すフローチャートである。
以下、添付の図面および添付の図面に記載された内容を参照しながら本発明の実施形態について詳細に説明するが、本発明が実施形態によって制限されたり限定されることはない。図中、同じ参照符号は同じ部材を示す。
図1は、本発明の一実施形態に係るデータ処理装置を示すブロック図である。
データ処理装置100の制御部110は、入力される複数のレイに対して複数のパケットを生成する。複数のレイは、先行過程において同じノードに関連していた複数のレイである。
また、各パケットは、k個(ただし、kは自然数)のレイ(Ray)を含む。kは、処理部130が並列的に一度に処理することができるデータの数である。
本発明の一実施形態によれば、データ処理装置100は、第1バッファメモリ120を備える。第1バッファメモリ120は複数のパケットを格納する。また、複数のパケットは、制御部110によって順次に処理部130に提供される。
レイトレーシング過程において、どのレイが3Dモデル内のどのジオメトリと衝突するかを決定するために、3Dモデルと関連した空間データ構造でツリー探索(tree traversal)を実行する。
本発明の一実施形態によれば、処理部130は、SIMD方式のプロセッサである。したがって、k個のレイデータ(すなわち、1つのパケット)に対して子孫ノードを決定することができる。
本発明の一実施形態によれば、子孫ノードが決定された複数のレイは、第2バッファメモリ140に格納される。一方、第2バッファメモリ内において、複数のレイは、子孫ノードが同じもの同士が分離されて格納されるようにできる。
本発明のさらに他の実施形態によれば、第2バッファメモリは2つ以上のメモリ構造を含み、子孫ノードが決定された複数のレイは子孫ノードが同じもの同士が同じメモリ構造に格納される。
図2は、本発明の一実施形態によって衝突チェックを実行する様子を示す図である。
3Dモデル200がレイトレーシング方法によってレンダリングされる。3Dモデル200は、メッシュ基盤(mesh−based 3D)モデルとすることもできるし、ポイント基盤(point−based 3D)モデルとすることもできる。
レイR210に対して衝突チェックが実行される。レイトレーシングにおいて、衝突チェックは、特定レイが3Dモデルのオブジェクト(object)空間200内においてどこに衝突するかを決定するものである。また、衝突チェックによって、衝突する地点で反射(Reflection)の程度、透過(Transmission)の程度、および光源の直接反射(Direct illumination)の程度も決定される。
本発明の一実施形態に係るデータ処理装置および方法は、特定レイ、例えばレイR210が3Dモデルと衝突するジオメトリ220を決定する。ジオメトリ220は、3Dモデルを構成する単位構造(unit structure)であって、メッシュ基盤(mesh−based 3D)モデルでは多角形(例えば、三角形)であり、ポイント基盤(point−based 3D)モデルではポイントである。
図3は、本発明の一実施形態によって図2の3Dモデルと関連する空間データ構造の様子を示す図である。3Dモデル200内で、図2のレイR210がどの部分と衝突するかを決定するために、3Dモデル200を2分割しながら、レイR210が分割された部分のうちどの部分に関連するかを判断する過程を繰り返す。
本発明の一実施形態によれば、空間データ構造300は、kd−treeである。
一方、本発明の他の実施形態では、空間データ構造は、BVH(Bounding Volume Hierarchies)である。BVHでは、3Dモデルを体積によって2分割し、バウンディングボックスで区画する。しかしながら、kd−treeとBVHが生成する空間データ構造300は、すべてツリー構造のような形態で表現することができる。
以下では、空間データ構造がkd−treeである実施形態のみについて説明する。しかしながら、空間データ構造の実施形態は、kd−treeだけではなくBVHも可能である。したがって、本発明は、特定の空間データ構造に関するものに限定されることはなく、本発明の思想を維持しながら多様な変形が可能である。
kd−treeを生成するために、3Dモデル200をオブジェクトのジオメトリ数によって2分割する。
境界(boundary)310を基準としてL(Left)部分とR(Right)部分に2分割する。発明の一実施形態によれば、分割されたL部分内に含まれるジオメトリの数と、分割されたR部分内に含まれるジオメトリの数は同じである。しかしながら、他の実施形態では、3Dモデル200内の空間体積(spatial volume)が同じになるように分割(この場合、生成される空間ツリー構造が不均衡なことがある)するなど多様な変形が可能である。
また、境界310によって分割されたL部分と、境界310によって分割されたR部分もそれぞれ2分割される。L部分は境界320によって分割され、R部分は境界330によって分割される。これにより、3Dモデル200が4分割された。
同様に、分割された部分それぞれを再び2分割することで、3Dモデル200が計8分割された。
空間データ構造300のノード301は、3Dモデル200全体と関連する。また、境界310によって3Dモデル200を2分割して生成されたL部分は、ノード311と関連する。さらに、境界310によって3Dモデル200を2分割して生成されたR部分は、ノード312と関連する。
図2のレイR210は、境界310を基準として左側となるL部分と衝突するため、ノード311と関連する。
また、境界310によって3Dモデル200を2分割して生成されたL部分は、境界320を基準として再び2分割され、それぞれノード321とノード322と関連する。同様に、境界310によって3Dモデル200を2分割して生成されたR部分も、境界330を基準として再び2分割され、それぞれノード331とノード332と関連する。
レイR210は、境界320を基準としてR部分に衝突するため、ノード322と関連する。
同様に、4分割された部分それぞれが、境界340、境界350、境界360、および境界370によって2分割されることで、3Dモデル200は計8分割されるが、これはそれぞれノード341、ノード342、ノード351、ノード352、ノード361、ノード362、ノード371、およびノード372と関連する。
レイR210は、境界350を基準としてL部分に衝突するため、ノード351と関連する。
図4は、本発明の他の実施形態によって、複数のレイに対して複数のパケットを生成してデータ処理方法を実行する過程を示す図である。
空間データ構造401は、図3を参照しながら説明した過程により、3D空間を2分割しながら生成された。
ノード410と関連する3D空間を2分割した場合、左側の部分Lはノード410の子孫ノード(child node)であるノード421に対応し、右側の部分Rはノード410の子孫ノードであるノード422に対応する。
本発明の一実施形態によって処理されるデータであるレイR1〜R12は、現在ノード452と関連している。レイR1〜レイR12はすべて、ノード410の子孫ノードであるノード421とノード422のうちでは、ノード421と関連した。また、ノード421の子孫ノードのうちでは、ノード432と関連した。さらに、ノード432の子孫ノードのうちでは、ノード452と関連した。
すなわち、レイR1〜R12は、空間データ構造401の深さ(depth)1ではLに、深さ2ではRに、さらに深さ3ではRに関連する。
本発明の一実施形態に係るデータ処理装置は、深さ4において、レイR1〜R12がノード452の子孫ノードのうちでノード461と関連するかノード462と関連するかを決定する。
本発明の一実施形態によれば、図1の制御部110により、レイR1〜R12は3つのパケットにグルーピングされる。例えば、R1〜R4が1つのパケット、R5〜R8が他の1つのパケット、そしてR9〜R12がさらに他の1つのパケットで生成される。
また、これらのパケットが順次に処理部130に提供され、処理部130は一度に4つのレイに対してLであるかRであるかを判断する。
表400の深さ4行(raw)は、本発明の一実施形態に係るデータ処理装置により、ノード452と関連したレイR1〜R12それぞれが、ノード461とノード462のうちのいずれのノードと関連するかを判断した結果を示している。
表400の深さ4において「L」と表記されたR1、R2、R5、R7、R9、R10、R11、およびR12は、ノード461に関連する。また、「R」と表記されたR3、R4、R6、およびR8は、ノード462に関連する。
一方、本発明の一実施形態によれば、衝突チェックは幅優先探索方式によって実行される。例えば、ノード410に関連する複数のレイに対して本発明のデータ処理方法を適用し、一部はノード421に、残りはノード422に関連する。また、ノード421に関連する一部レイに対して本発明のデータ処理方法を適用し、ノード422に関連する残りのレイに対して本発明のデータ処理方法を適用する。その次に、ノード431、ノード432、ノード441、およびノード442に対して本発明のデータ処理方法を適用する。すなわち、ツリー深さ(tree depth)が同じであるノードに対して本発明のデータ処理方法を適用した後、その次にツリー深さのノードに対して本発明のデータ処理方法を適用する。
しかしながら、本発明の他の実施形態によれば、衝突チェックは深さ優先探索方式によって実行される。この例として、ノード410に対して本発明のデータ処理方法を適用した後にノード421に対して適用し、その次はノード431に対して適用する方式である。すなわち、リーフノード(leaf node)に到達するまでは、子孫ノード方向のみに本発明のデータ処理方法を適用するのである。
図5は、本発明の一実施形態に係るデータ処理装置内において、複数のパケットが処理部で処理される様子を示す図である。
本発明の一実施形態によれば、第1バッファメモリ510内に3つのパケットが格納されている。3つのパケットは、図1の制御部110が入力される複数のレイ(例えば、R1〜R12)を4つずつグルーピングして生成されたものである。
第1バッファメモリ510に格納されたパケットは、現段階において同じノード(例えば、図4のノード452)に関連している。したがって、現在までのツリー探索過程がすべて同じである。上述して例を挙げたノード452に関連しているとすれば、R1〜R12は、今までのツリー探索過程がLRRである。したがって、制御部110が現段階で入力されたレイデータR1〜R12を任意に4つずつグルーピングして3つのパケットを生成する。
もちろん、図5に示すパケットの形態、1パケットあたりのレイの個数は変更することができ、本発明は特定の実施形態に限定されるものではない。上述したとおり、処理部520がいくつのデータを一度に処理できるのかというハードウェア的特性に応じて、1パケットあたりのレイの数k個(ただし、kは自然数)は変更することができる。
本発明の一実施形態では、処理部520が128ビットプロセッサであり、4ワイド(wide)特性(一度に4つのデータを並列処理)を有するため、4つのデータに同じ命令(instruction)を処理することができる。
処理部520がパケットに対して子孫ノード(ノード461またはノード462)を決定する場合、レイR1〜R12は第2バッファメモリ530に格納される。
本発明の他の一実施形態によれば、「LRRL」特性を有するR1、R2、R5、R7、R9、R10、R11、およびR12は、「LRRR」特性を有するR3、R4、R6、およびR8と相違するメモリに格納されるようにできる。
図6は、本発明の一実施形態に係るデータ処理方法を示すフローチャートである。
ステップS610で、複数のレイが入力される。複数のレイは現在同じノードに関連したレイであって、今までのツリー探索過程が同じレイである。例えば、図4のレイR1〜R12である。
ステップS620で、複数のレイを複数のパケットでグルーピングする。この場合、1つのパケットはk個(ただし、kは自然数)のレイで構成される。kはプロセッサのハードウェア的特性に応じて決定することができるが、例えばSIMD方式のプロセッサのうち、128ビットプロセッサ(4ワイド特性)では、kは4と決定される。
本発明の一実施形態によれば、生成された複数のパケットは、第1バッファメモリに格納される。
ステップS630で、複数のパケットが順次にプロセッサに提供され、プロセッサは各パケットに含まれたk個のレイに対して子孫ノードを決定する。
本発明の一実施形態によれば、ステップS630で子孫ノードが決定されれば、複数のレイはそれぞれの子孫ノードと関連したメモリに格納される。そして、その次の過程における子孫ノードにおいて、ステップS610〜ステップ630が繰り返される。
なお、本発明に係る映像処理方法は、コンピュータにより実現される多様な動作を実行するためのプログラム命令を含むコンピュータ読取可能な記録媒体を含む。当該記録媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含むこともでき、記録媒体およびプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知であり使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気−光媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれる。また、記録媒体は、プログラム命令、データ構造などを保存する信号を送信する搬送波を含む光または金属線、導波管などの送信媒体でもある。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コードを含む。前記したハードウェア要素は、本発明の動作を実行するために一以上のソフトウェアモジュールとして作動するように構成することができ、その逆もできる。
上述したように、本発明の好ましい実施形態を参照して説明したが、該当の技術分野において熟練した当業者にとっては、特許請求の範囲に記載された本発明の思想および領域から逸脱しない範囲内で、本発明を多様に修正および変更させることができることを理解することができるであろう。すなわち、本発明の技術的範囲は、特許請求の範囲に基づいて定められ、発明を実施するための最良の形態により制限されるものではない。
100 データ処理装置
110 制御部
120、510 第1バッファメモリ
130、520 処理部
140、530 第2バッファメモリ
200 3Dモデル
220 ジオメトリ

Claims (20)

  1. 複数のレイに対する衝突チェックを実行するデータ処理装置であって、
    空間データ構造内の第1ノードと関連した複数のレイに対して複数のパケットを生成する、前記複数のレイは前記生成されたパケットにグルーピングされ、生成された各パケットに複数のレイがグルーピングされる制御部と、
    前記複数のパケットを順次受け取り、前記第1ノードのどの子孫ノードが前記第1ノードと関連した、前記受け取ったパケットにグルーピングされた前記複数のレイそれぞれと関連するかを一度に決定する処理部と、
    を備えることを特徴とするデータ処理装置。
  2. 前記処理部はSIMD方式のプロセッサであることを特徴とする請求項1に記載のデータ処理装置。
  3. 前記処理部は、前記第1ノードのどの子孫ノードが前記第1ノードと関連した、前記受け取ったパケットにグルーピングされた前記複数のレイそれぞれと関連するかを一度に決定するとき、幅優先探索方法により、前記第1ノードと空間データ構造内における深さが同じである第2ノードのどの子孫ノードが前記第2ノードと関連した複数のレイそれぞれと関連するかを決定することを特徴とする請求項1に記載のデータ処理装置。
  4. 前記処理部は、前記第1ノードのどの子孫ノードが前記第1ノードと関連した、前記受け取ったパケットにグルーピングされた前記複数のレイそれぞれと関連するかを一度に決定するとき、深さ優先探索方法により、前記第1ノードのどの孫ノードが前記第1ノードの第1子孫ノードと関連した複数のレイそれぞれと関連するかを決定することを特徴とする請求項1に記載のデータ処理装置。
  5. 前記空間データ構造はkd−treeであり、前記第1ノードの子孫ノードは2つであることを特徴とする請求項1に記載のデータ処理装置。
  6. 前記空間データ構造はBVHであり、前記第1ノードの子孫ノードは2つであることを特徴とする請求項1に記載のデータ処理装置。
  7. 前記処理部は128ビットプロセッサであり、前記複数のパケットのうちの少なくとも1つは4つのレイに関する情報を含むことを特徴とする請求項1に記載のデータ処理装置。
  8. 複数のレイに対する衝突チェックを実行するデータ処理装置であって、
    空間データ構造内の第1ノードと関連した複数のレイに対して複数のパケットを生成する、前記複数のレイは前記生成されたパケットにグルーピングされ、生成された各パケットに複数のレイがグルーピングされる制御部と、
    前記制御部から提供される前記複数のパケットを臨時に格納する第1バッファメモリと、
    前記第1バッファメモリから前記複数のパケットを順次受け取り、前記第1ノードのどの子孫ノードが前記第1ノードと関連した、前記受け取ったパケットにグルーピングされた前記複数のレイと関連するかを一度に決定する処理部と、
    を備えることを特徴とするデータ処理装置。
  9. 前記第1ノードのどの子孫ノードが前記第1ノードと関連した複数のレイと関連するかに関する情報を含むレイデータを格納する第2バッファメモリをさらに備えることを特徴とする請求項8に記載のデータ処理装置。
  10. 前記処理部は、前記第1バッファから前記複数のパケットを順次受け取り、SIMD演算に基づき演算ごとに、前記第1ノードのどの子孫ノードが前記第1ノードと関連した複数のレイのうちのレイと関連するかを決定することを特徴とする請求項8に記載のデータ処理装置。
  11. 前記空間データ構造は、kd−treeまたはBVHのうちの1つであることを特徴とする請求項7に記載のデータ処理装置。
  12. 複数のレイに対する衝突チェックを実行するデータ処理方法であって、
    データ処理装置の制御部が空間データ構造内の第1ノードと関連した複数のレイに対して複数のパケットを生成する、前記複数のレイは前記生成されたパケットにグルーピングされ、生成された各パケットに複数のレイがグルーピングされるステップと、
    データ処理装置の処理部が、前記複数のパケットを処理部に順次受け取り、前記第1ノードのどの子孫ノードが前記第1ノードと関連した、前記提供されたパケットにグルーピングされた前記複数のレイそれぞれと関連するかを一度に決定するステップと、
    を含むことを特徴とするデータ処理方法。
  13. 前記処理部はSIMD方式の演算を実行することを特徴とする請求項12に記載のデータ処理方法。
  14. 前記データ処理方法は、前記第1ノードのどの子孫ノードが前記空間データ構造内の第1ノードと関連した、前記提供されたパケットにグルーピングされた前記複数のレイそれぞれ関連するかを一度に決定するステップの後に、前記処理部が、幅優先探索方法により、前記第1ノードと空間データ構造内における深さが同じである第2ノードのどの子孫ノードが前記第2ノードと関連した複数のレイそれぞれと関連するかを決定することを特徴とする請求項12に記載のデータ処理方法。
  15. 前記データ処理方法は、前記第1ノードのどの子孫ノードが前記空間データ構造内の第1ノードと関連した、前記提供されたパケットにグルーピングされた前記複数のレイそれぞれと関連するかを一度に決定するステップの後に、前記処理部が、深さ優先探索方法により、前記第1ノードのどの孫ノードが前記第1ノードの第1子孫ノードと関連した複数のレイそれぞれと関連するかを決定することを特徴とする請求項12に記載のデータ処理方法。
  16. 前記空間データ構造はkd−treeであり、前記第1ノードの子孫ノードは2つであることを特徴とする請求項12に記載のデータ処理方法。
  17. 前記空間データ構造はBVHであり、前記第1ノードの子孫ノードは2つであることを特徴とする請求項12に記載のデータ処理方法。
  18. 前記処理部は128ビットプロセッサであり、前記複数のパケットのうちの少なくとも1つは4つのレイに関する情報を含むことを特徴とする請求項12に記載のデータ処理方法。
  19. 複数のレイに対する衝突チェックを実行するデータ処理方法であって、
    データ処理装置の制御部が、空間データ構造内の第1ノードと関連した複数のレイに対して複数のパケットを生成して、前記複数のパケットを第1バッファメモリに格納する、前記複数のレイは前記生成されたパケットにグルーピングされ、生成された各パケットに複数のレイがグルーピングされるステップと、
    データ処理装置の処理部が、前記第1バッファメモリから前記複数のパケットを取り出し、前記複数のパケットをSIMD方式処理部に順次提供し、前記第1ノードのどの子孫ノードが前記第1ノードと関連した、前記取り出されたパケットにグルーピングされた複数のレイと関連するかを一度に決定するステップと、
    前記制御部が、前記SIMD方式処理部から提供された情報を含むレイデータを第2バッファメモリに格納するステップと、
    を含むことを特徴とするデータ処理方法。
  20. プロセッサに、複数のレイに対する衝突チェックを実行するデータ処理方法を実行させる命令を格納したコンピュータで読取可能な記録媒体であって、
    前記命令は、
    空間データ構造内の第1ノードと関連した複数のレイに対して複数のパケットを生成する、前記複数のレイは前記生成されたパケットにグルーピングされ、生成された各パケットに複数のレイがグルーピングされるステップを実行する命令語セットと、
    前記複数のパケットを処理部に順次提供し、前記第1ノードのどの子孫ノードが前記第1ノードと関連した、前記提供されたパケットにグルーピングされた前記複数のレイそれぞれと関連するかを一度に決定するステップを実行する命令語セットと、
    を含むことを特徴とするコンピュータで読取可能な記録媒体。
JP2009160930A 2008-10-15 2009-07-07 データ処理装置および方法 Expired - Fee Related JP5572340B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2008-0101171 2008-10-15
KR1020080101171A KR101610194B1 (ko) 2008-10-15 2008-10-15 영상처리를 위한 데이터 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
JP2010097591A JP2010097591A (ja) 2010-04-30
JP5572340B2 true JP5572340B2 (ja) 2014-08-13

Family

ID=41590993

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009160930A Expired - Fee Related JP5572340B2 (ja) 2008-10-15 2009-07-07 データ処理装置および方法

Country Status (4)

Country Link
US (1) US8253738B2 (ja)
EP (1) EP2178050B1 (ja)
JP (1) JP5572340B2 (ja)
KR (1) KR101610194B1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101670930B1 (ko) * 2010-05-12 2016-11-10 삼성전자주식회사 하드웨어를 이용한 케이디 트리 생성 방법 및 장치
KR101697238B1 (ko) 2010-08-26 2017-01-17 삼성전자주식회사 영상 처리 장치 및 방법
KR101705581B1 (ko) 2010-09-30 2017-02-22 삼성전자주식회사 데이터 처리 장치 및 방법
US9965821B2 (en) * 2012-03-09 2018-05-08 Nvidia Corporation Fully parallel in-place construction of 3D acceleration structures in a graphics processing unit
KR20140033256A (ko) 2012-07-11 2014-03-18 삼성전자주식회사 전송 스트림 패킷 생성 장치 및 그것의 ts 패킷 생성 방법
KR20160071774A (ko) * 2014-12-12 2016-06-22 삼성전자주식회사 영상 처리를 위한 영상 처리 장치, 방법 및 기록 매체
CN107609217B (zh) * 2017-08-09 2020-05-12 中建钢构有限公司 碰撞校核数据的处理方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0528280A (ja) * 1991-07-22 1993-02-05 Nippon Telegr & Teleph Corp <Ntt> 光線追跡方法
JP3513562B2 (ja) * 2000-04-20 2004-03-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 形状解析システム、3次元形状モデルの差分検出システム、類似形状検索システム、形状解析方法及び記憶媒体
US7952583B2 (en) * 2000-06-19 2011-05-31 Mental Images Gmbh Quasi-monte carlo light transport simulation by efficient 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
JP2005218055A (ja) * 2004-02-02 2005-08-11 Toshiba Corp 画像処理装置、画像処理方法および画像処理プログラム
US20070132754A1 (en) * 2005-12-12 2007-06-14 Intel Corporation Method and apparatus for binary image classification and segmentation
JP4858795B2 (ja) * 2006-04-19 2012-01-18 メンタル イメージズ ゲーエムベーハー 瞬時光線追跡
KR100831553B1 (ko) 2006-08-24 2008-05-21 주식회사 케이티 쿼드 트리를 이용한 3차원 광선 추적 방법 및 해쉬테이블을 이용한 전파 특성 예측 방법
KR100894136B1 (ko) 2006-08-31 2009-04-20 세종대학교산학협력단 광선 추적을 위한 비 스택 방식의 케이디 트리 탐색알고리즘을 적용한 영상검출 장치 및 방법
KR100889602B1 (ko) 2006-12-05 2009-03-20 한국전자통신연구원 광선 추적을 위한 광선-삼각형 충돌 처리 방법 및 장치
KR100843292B1 (ko) 2006-12-15 2008-07-03 연세대학교 산학협력단 룩업 테이블을 이용한 레이 트레이싱 장치 및 방법
US8072460B2 (en) * 2007-10-17 2011-12-06 Nvidia Corporation System, method, and computer program product for generating a ray tracing data structure utilizing a parallel processor architecture
US8065288B1 (en) * 2007-11-09 2011-11-22 Nvidia Corporation System, method, and computer program product for testing a query against multiple sets of objects utilizing a single instruction multiple data (SIMD) processing architecture

Also Published As

Publication number Publication date
EP2178050A2 (en) 2010-04-21
KR101610194B1 (ko) 2016-04-07
EP2178050A3 (en) 2016-08-17
US8253738B2 (en) 2012-08-28
US20100091019A1 (en) 2010-04-15
EP2178050B1 (en) 2020-03-18
KR20100042052A (ko) 2010-04-23
JP2010097591A (ja) 2010-04-30

Similar Documents

Publication Publication Date Title
JP5572340B2 (ja) データ処理装置および方法
CN108241890B (zh) 一种可重构神经网络加速方法及架构
US9355491B2 (en) Ray tracing apparatus and method
CN104823215B (zh) 子画面图形渲染系统
US9965888B2 (en) Method and apparatus for generating and traversing acceleration structure
Hou et al. Memory-scalable GPU spatial hierarchy construction
KR102080851B1 (ko) 레이 추적의 스케쥴링을 위한 장치 및 방법
GB2566127A (en) Hybrid hierarchy for ray tracing
EP3933779A1 (en) Intersection testing in a ray tracing system
Checconi et al. Massive data analytics: The graph 500 on ibm blue gene/q
US10460506B2 (en) Method and apparatus for generating acceleration structure
CN103578130B (zh) 用于光线跟踪的方法和设备
CN106022936B (zh) 适用论文合作网络的基于社团结构的影响最大化算法
CN111191778A (zh) 深度学习网络处理方法、装置与编译器
Boechat et al. Representing and scheduling procedural generation using operator graphs
KR101084980B1 (ko) 상호충돌검사 기반 병렬충돌검사 방법 및 컴퓨터 판독가능 매체
KR102651125B1 (ko) 경로 렌더링을 수행하는 방법 및 장치
Loiseau et al. FleCSPH: a parallel and distributed smoothed particle hydrodynamics framework based on FleCSI
Capozzoli et al. The success of GPU computing in applied electromagnetics
KR20230058621A (ko) 메모리-한도 스케줄링
Gissler et al. Efficient Uniform Grids for Collision Handling in Medical Simulators.
GB2577029A (en) Graphics engine resource management and allocation system
Krajecki et al. BFS traversal on multi-GPU cluster
KR102248003B1 (ko) 무선 센서 네트워크에서 퍼지 로직을 사용한 동적 싱크 재배치 방법 및 장치
EP3933781A1 (en) Intersection testing in a ray tracing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120330

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130625

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131022

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140515

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: 20140624

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140630

R150 Certificate of patent or registration of utility model

Ref document number: 5572340

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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