説明

区分されたドメインの重要度サンプリングのシステム、方法、及びコンピュータプログラム製品

【課題】区分集合のサンプリング速度を最適化する。
【解決手段】区分されたドメインの重要度サンプリングのシステム、方法、及びコンピュータプログラム製品が提供される。動作中に、ドメインは、複数の集合に区分される。さらに、確率が、複数の集合のそれぞれに割り当てられる。さらに、サンプルが、複数の集合から生成され、このサンプルは、対応する集合の確率に従って生成される。

【発明の詳細な説明】
【技術分野】
【0001】
[0001]本発明は、ドメインのサンプリングに関し、より具体的には、区分されたドメイン(partitioned domain)の重要度サンプリング(importance sampling)に関する。
【背景技術】
【0002】
[0002]区分されたドメインの重要度サンプリング(確率が区分の集合ごとに既知である)は、モンテカルロ法及び準モンテカルロ法に使用される。モンテカルロ法は、結果を計算するために繰り返されるランダムサンプリングに頼る種類のアルゴリズムである。モンテカルロ法は、しばしば、物理系及び数学系をシミュレートする時に使用される。準モンテカルロ法は、モンテカルロ法に似ているが、その代わりに、決定論的サンプルが使用され、この決定論的サンプルは、改善された収束をもたらすことができる。
【0003】
[0003]非常にしばしば、関数は、コンピュータグラフィックスにおけるテクスチャ付き光源など、ある離散エネルギー密度によって少なくとも部分的に定義される。現在まで、区分された(又は離散化された)ドメインの重要度サンプリングのサンプリング速度は、完全には最適化されてこなかった。したがって、上記及び/又は他の問題に対処する必要がある。
【発明の概要】
【課題を解決するための手段】
【0004】
[0004]区分されたドメインの重要度サンプリングのシステム、方法、及びコンピュータプログラム製品を提供する。動作中に、ドメインは、複数の集合に区分される。さらに、確率が、複数の集合のそれぞれに割り当てられる。さらに、サンプルが、複数の集合から生成され、このサンプルは、対応する集合の確率に従って生成される。
【図面の簡単な説明】
【0005】
【図1】一実施形態による、区分されたドメインの重要度サンプリングの方法を示す図である。
【図2】別の実施形態による、ハフマン木を使用してサンプルを列挙する方法を示す図である。
【図3】別の実施形態による、低い期待されるトラバース深さを有するk次元木の構成及びそのようなk次元木の重要度サンプリングの方法を示す図である。
【図4】一実施形態による、確率木を示す図であり、内側ノードは、その子の確率の和を保持する。
【図5】一実施形態による、サンプルワープに使用することができる、図4に対応する決定木を示す図である。
【図6】一実施形態による、1次元サンプルワープが使用される時の図5に対応する各ノードのサンプル区間の木を示す図である。
【図7】一実施形態による、異なるプローブの統計を示す表である。
【図8】さまざまな前の実施形態のさまざまなアーキテクチャ及び/又は機能性を実施できる例示的なシステムを示す図である。
【発明を実施するための形態】
【0006】
[0013]図1に、一実施形態による、区分されたドメインの重要度サンプリングの方法100を示す。図示されているように、複数の集合を含む区分されたドメインを生成する。動作102を参照されたい。一実施形態では、区分されたドメインを、ドメインを複数の集合に区分することによって生成することができる。
【0007】
[0014]この説明の文脈では、区分されたドメインは、任意の区分されたオブジェクト又は区分されたオブジェクトのグループを指す。一実施形態では、区分されたドメインを、任意次元の区分されたドメインとすることができる。さらに、区分されたオブジェクトを、幾何オブジェクトを区分することによって作成することができる。
【0008】
[0015]この説明の文脈では、区分は、ボクセル化を含み、ここで、集合は、任意次元の空間内の格子上の値を表す立体要素(すなわち、ボクセル)に対応する。たとえば、各ボクセルを、オブジェクト又は現象のある測定可能なプロパティ、独立変数、又は属性を表す1つ又は複数の数値を関連付けられた立体の量子単位とすることができる。さらに、任意のボクセルが、1つのボクセル又はボクセルのグループを含むことができる。
【0009】
[0016]複数の集合を含む区分されたドメインが生成された後に、確率を複数の集合のそれぞれに割り当てる。動作104を参照されたい。さらに、サンプルを複数の集合の内部で生成し、サンプルは、対応する集合の確率に従って生成される。動作106を参照されたい。
【0010】
[0017]一実施形態では、サンプルを、データ木を利用して生成することができる。たとえば、一実施形態では、データ木が、ハフマン木を含むことができる。この場合に、ハフマン木を、区分されたドメイン上で構成することができる(たとえば、複数の集合のそれぞれに割り当てられた確率を利用してなど)。
【0011】
[0018]オプションとして、ハフマン木を、単一ドメインセル(domain cell)まで下にトラバースすることができる。一実施形態では、下へのトラバースを、サンプルワープ(sample warping)を利用して実行することができる。もう1つの実施形態では、アクセスされる子ノードを蓋然論的に選択するために、ハフマン木の各内側ノードでランダムサンプル又は準モンテカルロサンプルを生成することによって、下へのトラバースを実行することができる。
【0012】
[0019]もう1つの例として、データ木は、k次元木を含むことができる。この場合に、k次元木を、やはり複数の集合のそれぞれに割り当てられた確率を利用して、区分されたドメイン上で構成することができる。さらに、k次元木を、ヒューリスティック(たとえば、中央分割(mid−split)プレディクタ、エントロピプレディクタ、又はハイブリッドプレディクタなど)を利用して構成することができる。もう1つのオプションとして、k次元木を構成することは、最小の費用関数を見つけるために検索空間を縮小することを含むことができる。
【0013】
[0020]この方法で、確率が各セルに割り当てられた状態で任意次元のボクセル化されたドメインが与えられれば、任意個数のよく分布した(well−distributed)サンプルを、その確率に従ってボクセルセルの内部で引き出すことができる。ボクセルセルの内部のサンプルと全体としてのドメイン上のサンプルとの両方を、よく分布したものとすることができる。オプションとして、少ない数の期待されるトラバースステップでドメインセルを選択するために、ハフマン木を使用することができる。この場合に、ドメインセルの内部のサンプルを、適切な超一様分布列を使用して列挙することができる。
【0014】
[0021]この説明の文脈で、超一様分布列は、Nのすべての値について、その部分列x,…,xが低不一致を有するというプロパティを有するすべての列を指す。たとえば、超一様分布列は、ハルトン列又はソボル列などを含むことができる。もう1つのオプションとして、少ない数の期待される計算ステップでドメインセルを選択するために、k次元木を使用することができる。
【0015】
[0022]より例証となる情報を、これから、ユーザの望みに従って前述の枠組が実施されてもされなくてもよいさまざまなオプションのアーキテクチャ及び特徴に関して示す。次の情報が、例証のために示されるものであり、いかなる形でも限定的と解釈されてはならないことに強く留意されたい。次の特徴のいずれをも、オプションで、説明される他の特徴の除外を伴って又は伴わずに組み込むことができる。
【0016】
[0023]図2に、別の実施形態による、ハフマン木を使用してサンプルを列挙する方法200を示す。オプションとして、本方法200を、図1の機能性の文脈で実施することができる。しかし、もちろん、方法200を、任意の所望の環境で実行することができる。前述の定義をこの説明の中で適用できることにも留意されたい。
【0017】
[0024]図示されているように、ハフマン木を、集合に割り当てられた確率を使用することによって区分されたドメイン上で作成する。動作202を参照されたい。ハフマン木を作成した後に、そのハフマン木を、単一ドメイン集合まで下にトラバースする。動作204を参照されたい。
【0018】
[0025]一実施形態では、単一ドメイン集合までハフマン木を下にトラバースすることを、サンプルワープによって達成することができる。もう1つの実施形態では、単一ドメイン集合までハフマン木を下にトラバースすることを、次に訪れるべき子ノードを蓋然論的に選択するために各内側ノードでランダムサンプル又は準ランダムサンプルを引き出すことによって達成することができる。
【0019】
[0026]ハフマン木の葉レベルでドメインの1つの集合に達した後に、次の列サンプルをこの集合の内部で列挙する。動作206を参照されたい。一実施形態では、次の列サンプルは、ハルトン列サンプルを含むことができる。もう1つの実施形態では、次の列サンプルは、ソボル列サンプルを含むことができる。
【0020】
[0027]集合内部の列サンプルの列挙に関するさらなる情報は、参照によってその全体が本明細書に組み込まれている、2008年9月30日に出願した米国特許出願第12/241928号明細書、名称「COMPUTER GRAPHICS WITH ENUMERATING QMC SEQUENCES IN VOXELS」に見出すことができる。
【0021】
[0028]どちらの列を用いても、確率木の葉レベルに対応するボクセルの直接に内部の準モンテカルロ点を列挙することによって、分布プロパティを入手することができる。次の列サンプルを集合の内部で列挙した後に、十分な個数のサンプルが引き出されたかどうかを判定する。動作208を参照されたい。
【0022】
[0029]十分な個数のサンプルが引き出されてはいない場合には、十分な個数のサンプルが引き出されるまで、もう一度木をトラバースし、列サンプルを列挙する。この場合に、十分なサンプルの個数を、サンプルを列挙するシステム又はそのオペレータによって決定することができる。
【0023】
[0030]図3に、別の実施形態による、低い期待されるトラバース深さを有するk次元木の構成及びそのようなk次元木の重要度サンプリングの方法300を示す。オプションとして、本方法300を、図1〜2の機能性の文脈で実施することができる。しかし、もちろん、方法300を、任意の所望の環境で実行することができる。やはり、前述の定義をこの説明の中で適用することができる。
【0024】
[0031]動作中に、k次元木を、集合に割り当てられた確率を使用することによって、区分されたドメイン上で作成することができる。まず、ドメイン領域全体をスタックにプッシュすることができる。動作302を参照されたい。次に、スタックが空であるかどうかを判定する。動作304を参照されたい。
【0025】
[0032]スタックが空ではないと判定される場合には、ドメイン領域をスタックからポップする。動作306を参照されたい。次に、ドメイン領域が葉サイズより大きいかどうかを判定する。動作308を参照されたい。
【0026】
[0033]ドメインサイズが葉サイズより大きい場合には、ヒューリスティックを使用して分割軸及び分割面を見つける。動作310を参照されたい。この場合に、分割面は、各内側ノードで見つけることができる。
【0027】
[0034]一実施形態では、各内側ノードで分割面を見つけることは、中央分割プレディクタ、エントロピプレディクタ、又はハイブリッドプレディクタのうちの少なくとも1つから推論される費用関数の最小値を見つけることを含むことができる。一実施形態では、各内側ノードで分割面を見つけることは、たとえば、ビニング(binning)などによって検索空間を縮小させることを含むことができる。
【0028】
[0035]ヒューリスティックを使用して分割軸及び分割面を見つけた後に、内側ノードを作成し、分割軸及び分割面を保存する。動作312を参照されたい。次に、子ドメイン領域をスタックにプッシュする。動作314を参照されたい。
【0029】
[0036]動作308で、ドメイン領域が葉サイズより大きくはないと判定される場合には、葉ノードを作成する。動作316を参照されたい。次に、もう一度、スタックが空であるかどうかを判定する。
【0030】
[0037]スタックが空である場合には、k次元木をトラバースしてサンプルを入手する。動作318を参照されたい。次に、十分な個数のサンプルが入手されたかどうかを判定する。動作320を参照されたい。
【0031】
[0038]十分な個数のサンプルが引き出されてはいない場合には、十分な個数のサンプルが引き出されるまで、もう一度木をトラバースする。この場合に、十分なサンプルの個数を、サンプルを列挙するシステム又はそのオペレータによって決定することができる。
【0032】
[0039]この方法で、区分されたドメインをサンプリングするのに使用できるk次元木を生成することができる。ボクセル確率に対応するサンプルを生成するために、サンプル生成ステージにおいて少ない数の期待されるトラバースステップを有するk次元木を生成することができる。さらに、さまざまな実施形態では、異なるヒューリスティックを利用して、木を生成し、サンプリングを実行することができる。一実施形態では、エントロピに基づくヒューリスティックを利用することができる。
【0033】
[0040]さらに、もう1つの実施形態では、ボクセル内のサンプルを、準モンテカルロ列又は超一様分布列に基づいて列挙することができる。この場合に、上で述べたように、ハフマン木を利用して、ボクセルを選択することができる。その結果、ボクセル選択に関するトラバースステップの期待される個数を、できる限り少なくすることができる。
【0034】
[0041]どちらの場合でも、よく分布するサンプル点を、区分されたドメイン中に生成することができ、積分推定値のより速い収束がもたらされる。一実施形態では、そのような技法を、環境マップが光源として使用される、レンダラ(たとえば、レイトレーシングベースのレンダラなど)のイメージベースライティングの文脈で利用することができる。さらなる応用例には、ボクセルセルに基づく多次元粒子マップ、ボリュームデータ視覚化、及び全般的に多次元の区分されたドメインの積分の計算を含めることができる。
【0035】
[0042]確率又は近似確率がボクセルごとにわかっている、区分されたドメインの重要度サンプリングは、しばしば、モンテカルロ技法又は準モンテカルロ技法に使用される標準技法である。非常にしばしば、関数は、コンピュータグラフィックスにおけるテクスチャ付き(環境)光源など、ある離散エネルギー密度によって少なくとも部分的に定義される。離散ドメインの重要度サンプリングのサンプリング速度を、確率木を使用することと期待されるトラバース深さを最小化することとによって最適化することができる。さまざまな実施形態では、領域の確率に基づいて又はそれらの間の空間連結性を組み込むことによってのいずれかで、離散ドメインからサンプリングするのに、異なる技法を利用することができる。
【0036】
[0043]一実施形態では、累積分布関数(CDF)を利用して、事象の離散集合から選択することができる。たとえば、pが、i=1,…,nについて第i事象の確率を表す場合に、対応するCDFは、帰納的にi=1,…,nについてc=0及びc:=ci−1+pとして構成される。
【0037】
[0044]サンプリングは、単純である。擬似乱数
【数1】


は、ci−1≦ξ<cの場合に第i事象に写像される。さらに、2進検索と組み合わせて使用されるCDFを、中央分割構成と再スケーリングが不要な特殊化されたトラバースとを使用するl次元木と見なすこともできる。CDFの数値精度は、事象の増加する個数に伴ってますます不安定になる可能性がある累積和によって制限される。事象がk次元ドメイン(たとえば、格子内のボクセル)に対応する場合に、k個の新しい擬似乱数を、ボクセルの内部の層化に使用することができる。
【0038】
[0045]もう1つの実施形態では、確率木が、事象の離散集合からサンプリングするのに利用される。確率木とは、各ノードで、すべての子に確率が割り当てられる木である。言い換えると、各ノードは、すべての子について合計1になる。葉の確率は、トラバースで出会うすべての確率の積である。
【0039】
[0046]一実施形態では、トラバースステップの期待される個数に関する最適確率木を、貪欲ハフマン符号(greedy Huffman code)アルゴリズムを使用して構成することができる。このアルゴリズムは、単一の事象の確率に対応するノードから開始される。その後、最も低い確率を有する2つのノードを、連続して選択し、ノードのプールから除去する。これらのノードの親ノードを作成し、この親ノードに、2つの子の確率の和を割り当てる。
【0040】
[0047]この親ノードを、ノードのプールに挿入する。このアルゴリズムは、プールに1つのノードだけが残っている時に終了し、このノードは、木のルートノードである。オプションとして、最も低い確率を有するノードの選択を、優先順位キューを使用することによって効率的に実施することができる。一実施形態によるハフマン木構成アルゴリズムの擬似コードを、表1に示す。
【0041】
[0048]
【表1】

【0042】
[0049]ハフマン符号の平均符号語長l(p,…,p)(トラバースステップの期待される個数に対応する)は、H(p,…,p)≦l(p,…,p)≦H(p,…,p)+1によって制限され、ここで、
【数2】


はエントロピである。
【0043】
[0050]確率木の分岐数(branching factor)がbまでである(すなわち、各ノードがb個までの子ノードを有する)場合に、類似する結果があてはまる。ハフマンアルゴリズムは、最も低い確率を有するb個のノードを選択する。その結果、logがlogによって置換され、期待されるトラバース深さがlog(b)という定数倍だけ減る。
【0044】
[0051]k次元木は、k次元でのデータに関する空間区分木であり、ここで、すべての分割面は、軸並行にされる。オプションとして、k次元木を、2進木とすることができる。この木の各ノードでは、正確に1つの次元を、一致する軸に沿った特定の位置で分割することができ、この位置を、そのノードに格納することができる。確率k次元木の場合に、この位置を、左の子の確率に対応するものとすることができる。
【0045】
[0052]一般に、k次元木は、空間連結性が保存される、一般的な確率木の制限である。しかし、この空間連結性を活用することができる。k次元木構成の1つの版が、中央分割木である。中央分割木を使用することによって、最長の軸が中央で分割される。表2に、一実施形態による、最長の範囲の軸に沿った最小値
【数3】


及び最大値
【数4】


(i=0,…,k−1について
【数5】


)によって定義されるk次元領域を分割するアルゴリズムを示す。
【0046】
[0053]
【表2】

【0047】
[0054]中央分割k次元木について、期待されるトラバース深さl(p,…,p)は、log(n)≦l(p,…,p)<log(n)+1によって制限される。p=1/n(i=1,…,n)について、これらの限度が、上で説明したH(p,…,p)≦l(p,…,p)≦H(p,…,p)+1と同等であることに留意されたい。したがって、結果の確率木は、最適に近い。区域が0の確率を有する場合には、これらの区域を木作成から除去することができ、対応する木は、より浅くなる。
【0048】
[0055]異なる技法を実施して、重要度サンプリングに所与の確率木を使用することができる。確率木の葉がk次元ボクセルに対応する場合には、少なくともk個の擬似乱数をサンプリングに使用することができる。さらに、木を、蓋然論的な形でトラバースすることができる。言い換えると、子を、その確率に従って選択することができる。いくつかの場合に、子1つあたり1つの擬似乱数を使用するという単純な手法は、オプションではない。というのは、擬似乱数の生成が高価であり、d個までの数が必要であるからであり、ここで、dは、木の最大葉深さを表す。
【0049】
[0056]もう1つの手法は、完全なトラバースに1つの擬似乱数だけを使用することである。トラバースステップごとに、左右の子の確率p及びp(ただし、p+p=1)が、トラバースすべき子を選択するのに使用される。この場合に、
【数6】


は、現在のサンプルを表すことができる。ξ<pの場合には、左の子が選択され、サンプルは、ξ’=ξ/pに再スケーリングされる。そうでない場合には、右の子を選択することができ、サンプルをξ’=(ξ−p)/pに再スケーリングすることができる。
【0050】
[0057]次のトラバースステップでは、
【数7】


を擬似乱数サンプルとして使用する。この方式を使用すると、k+1次元で層化されるサンプルの1つの構成要素をトラバースに使用することができ、残りのk個の構成要素は、ボクセル内部のよい層化をもたらす。この場合に、ある程度の精度が、各再スケーリング事象で失われる可能性がある。
【0051】
[0058]数値精度を高めるために、複数の擬似乱数を使用することができる(たとえば、k次元木についてk個、次元ごとに1つなど)。次に、各ノードの分割軸によって、どの擬似乱数を再スケーリングするかを決定することができる。
【0052】
[0059]いくつかの場合に、ボクセルサンプリングを木トラバースから分離することが、単位超立方体から完全なドメインへの写像を攪乱する場合がある。言い換えると、写像を、任意とすることができ、写像は、サンプルの空間的近接を保存しなくてもよい。環境マップのサンプリングに関して、点集合の層化プロパティは、ピクセルにはあてはまるが、環境マップ全体にはあてはまらない。
【0053】
[0060]古典的モンテカルロサンプリングの場合に、これは、一般に問題ではない。というのは、ランダムさが同一になるからである。しかし、準モンテカルロ列について、これは、劣化した性能又はより多くのアーティファクトにつながる可能性がある。
【0054】
[0061]ある点集合の層化プロパティを活用できるようにするために、これらのプロパティを、[0,1)から重要度サンプリング方式によって表される変換されたドメインへの値の写像中に保存することができる。一般的な確率木とは対照的に、k次元木は空間的連結性の諸部分を保存し、これを、サンプリング中に活用することができる。点の層化特性を保ちながら重要度サンプリングのためにk次元木をトラバースする、1つの一般的なアルゴリズムが、サンプルワープである。
【0055】
[0062]サンプルワープアルゴリズムは、トラバースとスマート再スケーリングによるボクセル内の層化との両方に元々の点集合を使用する。2進k次元木のサンプルワープアルゴリズムの一例を、表3に示す。
【0056】
[0063]
【表3】

【0057】
[0064]表3に概要を示されたアルゴリズムは、葉の位置が格納されるように実施される。もう1つの実施形態では、内側ノードは、分割軸の位置だけを格納することができ、この位置は、所望の範囲に直接に変換するのに使用され得る。
【0058】
[0065]しかし、k>1の場合に、写像が不連続になる場合があり、いくつかの有用なプロパティ(たとえば、最小距離など)が失われる場合がある。さらに、再スケーリングプロセスは、木が深い場合に、深刻なビット消失をこうむる可能性がある。一般に、このアルゴリズムは、一般的な分解能のボクセル化について良好に動作し、漸進準モンテカルロ積分に有用である。
【0059】
[0066]いくつかの場合に、非常によい分布プロパティを、確率木の葉レベルに対応するボクセルの直接に内部の準モンテカルロ点又は超一様分布列を列挙することによって入手することができる。一実施形態では、ハルトン超一様分布列アルゴリズム又はソボル超一様分布列アルゴリズムを、この作業(これまでに説明したすべての前のサンプリング作業を含む)に利用することができる。
【0060】
[0067]まず、ボクセルを、その確率に従って選択することができる。これは、トラバース次元で層化されたランダムサンプリングを使用することによって可能である。ボクセルを選択した後に、そのボクセルの次の準モンテカルロ点を生成する。これは、各ボクセル内部の以前に生成されたサンプルの個数を格納することを必要とする場合がある。
【0061】
[0068]この方式の結果を、ドメイン全体にわたる非常に密な準モンテカルロサンプル集合の生成及びその後の棄却サンプリング(rejection sampling)に似た確率による領域の選択的間引きと比較することができる。このアルゴリズムは、k次元木だけではなくすべての確率木で利用することができる。たとえば、このアルゴリズムをハフマン木で利用することができ、このハフマン木は、いくつかの場合に、期待されるトラバースステップの個数に関して最適とすることができる。これが可能であるのは、このアルゴリズムが木ノード領域の空間連結性に頼らないからである。したがって、次のサンプルをそこで生成すべきボクセルの選択は、理論的に可能な限り速い。
【0062】
[0069]しかし、トラバース次元で層化するためには、サンプルの個数又はパスごとのサンプルの個数が前もってわかっていなければならない。さらに、いくつかの場合に、追加のサンプル構成要素を生成することを必要とするすべての機能を備えた準モンテカルロエスティメータにこの方式を統合することが、むずかしい可能性がある。ドメインのサンプリングが、系全体の小さい部分だけを表す可能性があるので、あるインスタンス(すなわち、準モンテカルロ列又は超一様分布列のインデックス)が、前に使用されている可能性がある。
【0063】
[0070]異なるインスタンスが、ボクセル内部の次のサンプルを列挙するのに使用されるときには、対応するアーティファクトが現れる場合がある。さらに、追加のサンプル構成要素をその後に生成するのにどのインスタンスを使用すべきかが不明瞭である場合がある。
【0064】
[0071]任意の部分木Tについて、Tを左の子部分木、Tを右の子部分木とそれぞれ定義することができる。E[T]によって表されるTのトラバースステップの期待される個数を、再帰的にE[T]=1+p・E[T]+p・E[T]と書くことができ、ここで、p及びpは、部分木の確率である。
【0065】
[0072]バックトラッキングを介するすべての可能な分離にわたる網羅的再帰検索は、非常に穏当なドメインサイズ及び次元について可能であるときがある。動的計画法は、すべての可能な部分木の期待されるトラバース長さを格納するのにテーブルを使用することによって、解くべき最適k次元木を見つけることを可能にする。葉レベルから開始して、トラバースステップの期待される個数を、すべての可能な分割面にわたって反復することと、E[T]及びE[T]が既に計算されているのでこれらをテーブル内でルックアップしながら、E[T]=1+p・E[T]+p・E[T]の最小値を見つけることとによって評価することができる。
【0066】
[0073]この技法のメモリ要件及び計算労力は、
【数8】


であり、ここで、rは、次元iに沿った分解能である。いくつかの場合に、これは、低い分解能及び低い次元についてのみ実現可能である可能性がある。したがって、分割を、ドメインサイズ及び確率から導出された局所情報だけを使用することに基づいて決定することができる。
【0067】
[0074]一実施形態では、両方の子が中央分割プレディクタヒューリスティックを使用して構成されると仮定することができる。値E[T]を中央分割k次元木
【数9】


について解析的に表すことができるので(m(T)はTの葉の個数である)、これを計算することができる。
【0068】
[0075]これらの値を実際の期待されるトラバース深さのプレディクタとして使用すると、式1に示されているように、確率及びドメインサイズだけを使用して分割面を選択するヒューリスティックを提供することができる。
式1
【数10】

【0069】
[0076]いくつかの場合に、式1に示されたヒューリスティックを使用することによって、中央分割ヒューリスティックよりわずかによいk次元木を作ることができる。もう1つのオプションとして、より単純なヒューリスティックを利用することができる。式2に、一実施形態によるもう1つのヒューリスティックの例を示す。
式2
E[T]≒1+p・m(T)+p・m(T
【0070】
[0077]もう1つの実施形態では、部分木のエントロピに基づくヒューリスティックを利用することができる。たとえば、ハフマン木が両方の子について作成される場合に、期待されるトラバース深さを、式3に示されているように推定することができ、ここで、H(T)及びH(T)は、それぞれ左部分木及び右部分木の葉のエントロピである。
式3
E[T]≒1+p・H(T)+p・H(T
【0071】
[0078]部分木内の確率の分布に依存して、期待されるトラバース深さに関する改善が、労力に値しないものになる場合がある。特に、ある領域内にほぼ均一の分布がある場合に、中央分割が最適に近い場合がある。
【0072】
[0079]領域のエントロピは、より高価なヒューリスティックにどれほどの見込みがあるかに関する非常に強力な尺度をもたらす。判断基準を、最大エントロピ
【数11】


とH(T)との比較に基づいて適用することができる。たとえば、
【数12】


の場合(c<1は、ユーザによって制御されるしきい値係数である)には、より高価なエントロピプレディクタヒューリスティックを適用することができ、そうでない場合には、単純な中央分割を実行することができる。この方法で、性能が最も見込まれる場所に労力をかけることができる。もう1つの実施形態では、最適k次元木を、イメージのダウンサンプリングされた版に基づいて作成することができ、より単純なヒューリスティックを、結果の木の最高レベルで使用し、その後、フル解像度入力に切り替えることができる。
【0073】
[0080]ドメインの任意の領域の確率及びエントロピを評価するために、範囲総和テーブル(summed−area table、SAT)を使用することができる。オプションとして、範囲総和テーブルを、現在のグラフィック処理ユニット(GPU)のスキャンプリミティブを使用して、すばやく並列に構成することができる。
【0074】
[0081]ほとんどの場合に、エントロピは、Σ=1となる確率pの集合について定義される。ドメインの任意の領域について、確率を、定数係数s:=1/Σを使用して再正規化することができる。SATをエントロピ値に使用することができる。というのは、
【数13】


であるからである。
【0075】
[0082]値1/s=ΣとΣ・logとの両方を、そのそれぞれのSATから取り出すことができる。
【0076】
[0083]あるサンプル番号が、再スケーリングによってすべてのトラバースステップについて使用される場合には、精度損失を考慮に入れなければならない。一例として、2進木での確率中央分割を考慮することができ、ここでは、両方の子が、すべてのノードで0.5の確率を有する。1つの擬似乱数を用いるトラバースは、トラバースステップあたり正確に1ビットのビット消失につながる可能性がある。
【0077】
[0084]たとえば、一般の環境マップは、1024×1024の解像度を有し、約20の深さの木につながる場合がある。このシナリオでは、少なくとも20ビットが、トラバース中に失われ、特に倍精度浮動小数点数が単一精度浮動小数点数に縮小される可能性がある。
【0078】
[0085]類似する精度の問題を、サンプルワープアルゴリズムを使用する場合に考慮に入れなければならない。そのシナリオでは、1つのサンプル番号が、k次元木の次元ごとに使用される可能性があり、トラバースから残されるビットが、サンプルを葉に置くのに使用される場合があり、葉の精度が下がる。もちろん、ボクセルから実際のドメインに写像するための位置の追加変換の場合(たとえば、経度/緯度環境マップなどに関する)には、ビット消失の精度が、より複雑になる場合がある。
【0079】
[0086]しかし、倍精度浮動小数点は、サンプルワープアルゴリズムを成功して使用するのに十分な精度である可能性がある。期待されるトラバースステップの個数を減らすことによって、平均ビット消失を減らすことができる。
【0080】
[0087]一実施形態で、行/列SATを使用できることに留意されたい。行/列SATを使用することによって、ルックアップ動作を確率/エントロピ評価ごとに節約することができる。というのは、各軸が、フルエントロピプレディクタヒューリスティック計算中にトラバースされるからである。
【0081】
[0088]さらに、葉確率は、通常は小さく、正確な値は、これには依存されないので、浮動小数点数の高速近似log実施態様を利用することができる。
【0082】
[0089]内側ノードを、単一「分割面」だけが格納される形で再スケーリングすることができ、次の子に関する判断は、CDFに似て、小なり比較に単純化される。各ノードの可能なサンプルの区間がわかっているので、この区間の内部の分割面を、式4に示されているように子の確率に従って計算することができ、式4では、sは、分割位置を表し、[I,I)は、現在のノードの可能なサンプルの区間を表し、p及びpは、子の(正規化されていない)確率を表す。
式4
【数14】

【0083】
[0090]各葉は、サンプルを[0,1)に正しく再スケーリングするためにI及び係数1/(I−I)を格納することができる。このような方法で、フルトラバースのサンプル次元あたりに単一の減算及び乗算だけが存在する。
【0084】
[0091]もう1つのオプションとして、費用関数の単調性を、ある軸に沿って仮定することができる。そうではない場合があるが、局所最小値は、大域的な最小値より悪くはない可能性がある。中央分割から開始し、その後、費用関数が増え始めるまで左又は右へ連続して進み、見つかった最小値をとることによって、最小値検索をより早く打ち切ることを可能にすることができる。さらに、一実施形態で、ビニングを使用して、費用関数評価の回数を減らすことができる。
【0085】
[0092]図4に、一実施形態による確率木400を示し、内側ノードは、その子の確率の和を保持する。図5に、一実施形態による、サンプルワープに使用することができる、図4に対応する決定木500を示す。図6に、一実施形態による、1次元サンプルワープが使用される時の図5に対応する各ノードのサンプル区間の木600を示す。高速サンプルワープ技法について、分割面を、これらの区間の中央にセットすることができる。
【0086】
[0093]図7に、一実施形態による、異なるプローブの統計を示す表700を示す。オプションとして、表700を、図1〜6の機能性及びアーキテクチャの文脈で見ることができる。しかし、もちろん、表700を、任意の所望の環境の文脈で見ることができる。前述の定義をこの説明の中で適用できることにも留意されたい。
【0087】
[0094]表700は、サイズ64×32の異なるプローブの統計を示す。この例では、利用されるランダムイメージは、ランダム均一ピクセルから作られ、スターフィールドイメージは、背景よりはるかに明るいいくつかのランダムピクセルを含む。比較のために、表700は、イメージベースライティングとして一連の高ダイナミックレンジイメージ用のさまざまな木構築アルゴリズムを使用する統計を示す。オプションとして、環境マップがHDRビデオであり、単一のレンダリングされるイメージのシャッタ時間がビデオ内の複数のフレームにわたるときに、3次元木を使用することができる。環境光線は、照明が最も寄与する瞬間の特徴を表すはずである。
【0088】
[0095]図8に、さまざまな前の実施形態のさまざまなアーキテクチャ及び/又は機能性を実施できる例示的なシステム800を示す。図示されているように、システム800は、通信バス802に接続される少なくとも1つのホストプロセッサ801を含んで提供される。システム800は、メインメモリ804をも含む。制御論理(ソフトウェア)及びデータは、メインメモリ804に格納され、メインメモリ804は、ランダムアクセスメモリ(RAM)の形をとることができる。
【0089】
[0096]システム800は、グラフィックスプロセッサ806及びディスプレイ808すなわちコンピュータモニタをも含む。一実施形態で、グラフィックスプロセッサ806は、複数のシェーダモジュール、ラスタライザモジュールなどを含むことができる。前述のモジュールのそれぞれを、単一の半導体プラットフォーム上に配置して、グラフィックス処理ユニット(GPU)を形成することすらできる。
【0090】
[0097]この説明では、単一の半導体プラットフォームは、唯一の一体の半導体ベースの集積回路又はチップを指すことができる。単一の半導体プラットフォームという用語は、オンチップ動作をシミュレートし、従来の中央処理装置(CPU)及びバス実施態様の利用に対する実質的な改善を行う、高められた接続性を有するマルチチップモジュールをも指すことができることに留意されたい。もちろん、さまざまなモジュールを、ユーザの望みに従って、別々に又は半導体プラットフォームとのさまざまな組合せの形で配置することもできる。
【0091】
[0098]システム800は、二次ストレージ810をも含むことができる。二次ストレージ810は、たとえば、ハードディスクドライブ及び/又はフロッピディスクドライブ、磁気テープドライブ、コンパクトディスクドライブなどを表すリムーバブルストレージドライブを含む。リムーバブルストレージドライブは、周知の形でリムーバブルストレージユニットから読み取り、及び/又はこれに書き込む。
【0092】
[0099]コンピュータプログラム又はプログラム制御論理アルゴリズムを、メインメモリ804及び/又は二次ストレージ810に格納することができる。そのようなコンピュータプログラムは、実行された時に、システム800がさまざまな機能を実行することを可能にする。メモリ804、ストレージ810、及び/又は任意の他のストレージは、コンピュータ可読媒体の可能な例である。
【0093】
[00100]一実施形態で、さまざまな前の図のアーキテクチャ及び/又は機能性を、ホストプロセッサ801、グラフィックスプロセッサ806、ホストプロセッサ801とグラフィックスプロセッサ806との両方の機能の少なくとも一部が可能な集積回路(図示せず)、チップセット(すなわち、関連する機能を実行するユニットとして働き、販売されるように設計された集積回路のグループなど)、及び/又はそれに関する任意の他の集積回路の文脈で実施することができる。
【0094】
[00101]さらに、さまざまな前の図のアーキテクチャ及び/又は機能性を、汎用コンピュータシステム、回路基板システム、エンターテイメント目的専用のゲーム機システム、特定用途向けシステム、及び/又は他の所望のシステムの文脈で実施することができる。たとえば、システム800は、デスクトップコンピュータ、ラップトップコンピュータ、及び/又は任意の他のタイプのロジックの形をとることができる。さらに、システム800は、携帯情報端末(PDA)デバイス、携帯電話デバイス、テレビジョンなどを含むがこれらに限定はされないさまざまな他のデバイスの形をとることができる。
【0095】
[00102]さらに、図示されてはいないが、システム800を、通信のためにネットワーク[たとえば、遠隔通信ネットワーク、ローカルエリアネットワーク(LAN)、無線ネットワーク、インターネットなどの広域ネットワーク(WAN)、ピアツーピアネットワーク、ケーブルネットワークなど]に結合することができる。
【0096】
[00103]さまざまな実施形態を上で説明したが、これらが、限定ではなく例示のみのために提示されたことを理解されたい。したがって、好ましい実施形態の広さ及び範囲は、上で説明した例示的実施形態のいずれによっても制限されてはならず、添付の特許請求の範囲及びその同等物によってのみ定義されねばならない。

【特許請求の範囲】
【請求項1】
ドメインを複数の集合に区分するステップと、
前記複数の集合のそれぞれに確率を割り当てるステップと、
前記複数の集合からサンプルを生成するステップであって、前記サンプルは、対応する集合の前記確率に従って生成される、ステップと
を含む方法。
【請求項2】
前記サンプルは、データ木を利用して生成される、請求項1に記載の方法。
【請求項3】
前記データ木は、ハフマン木を含む、請求項2に記載の方法。
【請求項4】
超一様分布列を使用して前記サンプルを列挙するステップをさらに含む、請求項3に記載の方法。
【請求項5】
前記ハフマン木は、前記区分されたドメイン上で構成される、請求項4に記載の方法。
【請求項6】
前記ハフマン木は、前記複数の集合のそれぞれに割り当てられた前記確率を利用して前記区分されたドメイン上で構成される、請求項5に記載の方法。
【請求項7】
前記ハフマン木を単一ドメイン集合まで下にトラバースするステップをさらに含む、請求項6に記載の方法。
【請求項8】
下にトラバースする前記ステップは、サンプルワープを利用して実行される、請求項7に記載の方法。
【請求項9】
下にトラバースする前記ステップは、アクセスすべき子ノードをその確率に従って選択するために前記ハフマン木の各内側ノードでランダムサンプル又は準モンテカルロサンプルを生成することによって実行される、請求項7に記載の方法。
【請求項10】
十分な個数の前記サンプルが生成されるかどうかを判定するステップをさらに含む、請求項7に記載の方法。
【請求項11】
前記超一様分布列は、ハルトン列又はソボル列のうちの1つを含む、請求項10に記載の方法。
【請求項12】
前記データ木は、k次元木を含む、請求項2に記載の方法。
【請求項13】
前記k次元木は、前記区分されたドメイン上で構成される、請求項12に記載の方法。
【請求項14】
前記k次元木は、前記複数の集合のそれぞれに割り当てられた前記確率を利用して前記区分されたドメイン上で構成される、請求項13に記載の方法。
【請求項15】
前記k次元木は、ヒューリスティックを利用して構成される、請求項14に記載の方法。
【請求項16】
前記ヒューリスティックは、中央分割プレディクタ、エントロピプレディクタ、又はハイブリッドプレディクタのうちの1つを含む、請求項15に記載の方法。
【請求項17】
前記k次元木を構成するステップは、最小の費用関数を見つけるために検索空間を縮小するステップを含む、請求項15に記載の方法。
【請求項18】
少ない数のトラバースステップでドメイン集合を選択するステップをさらに含む、請求項2に記載の方法。
【請求項19】
ドメインを複数の集合に区分するコンピュータコードと、
前記複数の集合のそれぞれに確率を割り当てるコンピュータコードと、
前記複数の集合からサンプルを生成するコンピュータコードであって、前記サンプルは、対応する集合の前記確率に従って生成される、コンピュータコードと
を備える、コンピュータ可読媒体上で実施されるコンピュータプログラム製品。
【請求項20】
ドメインを複数の集合に区分し、前記複数の集合のそれぞれに確率を割り当て、前記複数の集合からサンプルを生成するプロセッサであって、前記サンプルは、対応する集合の前記確率に従って生成される、プロセッサ
を備える装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2010−176657(P2010−176657A)
【公開日】平成22年8月12日(2010.8.12)
【国際特許分類】
【外国語出願】
【出願番号】特願2009−254313(P2009−254313)
【出願日】平成21年11月5日(2009.11.5)
【出願人】(501261300)エヌヴィディア コーポレイション (166)
【Fターム(参考)】