(57)【要約】      （修正有）【課題】区分集合のサンプリング速度を最適化する。【解決手段】区分されたドメインの重要度サンプリングのシステム、方法、及びコンピュータプログラム製品が提供される。動作中に、ドメインは、複数の集合に区分される。さらに、確率が、複数の集合のそれぞれに割り当てられる。さらに、サンプルが、複数の集合から生成され、このサンプルは、対応する集合の確率に従って生成される。【選択図】図１
2010176657.tif 000002
【特許請求の範囲】
【請求項１】
ドメインを複数の集合に区分するステップと、
前記複数の集合のそれぞれに確率を割り当てるステップと、
前記複数の集合からサンプルを生成するステップであって、前記サンプルは、対応する集合の前記確率に従って生成される、ステップと
を含む方法。
【請求項２】
前記サンプルは、データ木を利用して生成される、請求項１に記載の方法。
【請求項３】
前記データ木は、ハフマン木を含む、請求項２に記載の方法。
【請求項４】
超一様分布列を使用して前記サンプルを列挙するステップをさらに含む、請求項３に記載の方法。
【請求項５】
前記ハフマン木は、前記区分されたドメイン上で構成される、請求項４に記載の方法。
【請求項６】
前記ハフマン木は、前記複数の集合のそれぞれに割り当てられた前記確率を利用して前記区分されたドメイン上で構成される、請求項５に記載の方法。
【請求項７】
前記ハフマン木を単一ドメイン集合まで下にトラバースするステップをさらに含む、請求項６に記載の方法。
【請求項８】
下にトラバースする前記ステップは、サンプルワープを利用して実行される、請求項７に記載の方法。
【請求項９】
下にトラバースする前記ステップは、アクセスすべき子ノードをその確率に従って選択するために前記ハフマン木の各内側ノードでランダムサンプル又は準モンテカルロサンプルを生成することによって実行される、請求項７に記載の方法。
【請求項１０】
十分な個数の前記サンプルが生成されるかどうかを判定するステップをさらに含む、請求項７に記載の方法。
【請求項１１】
前記超一様分布列は、ハルトン列又はソボル列のうちの１つを含む、請求項１０に記載の方法。
【請求項１２】
前記データ木は、ｋ次元木を含む、請求項２に記載の方法。
【請求項１３】
前記ｋ次元木は、前記区分されたドメイン上で構成される、請求項１２に記載の方法。
【請求項１４】
前記ｋ次元木は、前記複数の集合のそれぞれに割り当てられた前記確率を利用して前記区分されたドメイン上で構成される、請求項１３に記載の方法。
【請求項１５】
前記ｋ次元木は、ヒューリスティックを利用して構成される、請求項１４に記載の方法。
【請求項１６】
前記ヒューリスティックは、中央分割プレディクタ、エントロピプレディクタ、又はハイブリッドプレディクタのうちの１つを含む、請求項１５に記載の方法。
【請求項１７】
前記ｋ次元木を構成するステップは、最小の費用関数を見つけるために検索空間を縮小するステップを含む、請求項１５に記載の方法。
【請求項１８】
少ない数のトラバースステップでドメイン集合を選択するステップをさらに含む、請求項２に記載の方法。
【請求項１９】
ドメインを複数の集合に区分するコンピュータコードと、
前記複数の集合のそれぞれに確率を割り当てるコンピュータコードと、
前記複数の集合からサンプルを生成するコンピュータコードであって、前記サンプルは、対応する集合の前記確率に従って生成される、コンピュータコードと
を備える、コンピュータ可読媒体上で実施されるコンピュータプログラム製品。
【請求項２０】
ドメインを複数の集合に区分し、前記複数の集合のそれぞれに確率を割り当て、前記複数の集合からサンプルを生成するプロセッサであって、前記サンプルは、対応する集合の前記確率に従って生成される、プロセッサ
を備える装置。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本発明は、ドメインのサンプリングに関し、より具体的には、区分されたドメイン（ｐａｒｔｉｔｉｏｎｅｄ  ｄｏｍａｉｎ）の重要度サンプリング（ｉｍｐｏｒｔａｎｃｅ  ｓａｍｐｌｉｎｇ）に関する。
【背景技術】
【０００２】
[0002]区分されたドメインの重要度サンプリング（確率が区分の集合ごとに既知である）は、モンテカルロ法及び準モンテカルロ法に使用される。モンテカルロ法は、結果を計算するために繰り返されるランダムサンプリングに頼る種類のアルゴリズムである。モンテカルロ法は、しばしば、物理系及び数学系をシミュレートする時に使用される。準モンテカルロ法は、モンテカルロ法に似ているが、その代わりに、決定論的サンプルが使用され、この決定論的サンプルは、改善された収束をもたらすことができる。
【０００３】
[0003]非常にしばしば、関数は、コンピュータグラフィックスにおけるテクスチャ付き光源など、ある離散エネルギー密度によって少なくとも部分的に定義される。現在まで、区分された（又は離散化された）ドメインの重要度サンプリングのサンプリング速度は、完全には最適化されてこなかった。したがって、上記及び／又は他の問題に対処する必要がある。
【発明の概要】
【課題を解決するための手段】
【０００４】
[0004]区分されたドメインの重要度サンプリングのシステム、方法、及びコンピュータプログラム製品を提供する。動作中に、ドメインは、複数の集合に区分される。さらに、確率が、複数の集合のそれぞれに割り当てられる。さらに、サンプルが、複数の集合から生成され、このサンプルは、対応する集合の確率に従って生成される。
【図面の簡単な説明】
【０００５】
【図１】一実施形態による、区分されたドメインの重要度サンプリングの方法を示す図である。
【図２】別の実施形態による、ハフマン木を使用してサンプルを列挙する方法を示す図である。
【図３】別の実施形態による、低い期待されるトラバース深さを有するｋ次元木の構成及びそのようなｋ次元木の重要度サンプリングの方法を示す図である。
【図４】一実施形態による、確率木を示す図であり、内側ノードは、その子の確率の和を保持する。
【図５】一実施形態による、サンプルワープに使用することができる、図４に対応する決定木を示す図である。
【図６】一実施形態による、１次元サンプルワープが使用される時の図５に対応する各ノードのサンプル区間の木を示す図である。
【図７】一実施形態による、異なるプローブの統計を示す表である。
【図８】さまざまな前の実施形態のさまざまなアーキテクチャ及び／又は機能性を実施できる例示的なシステムを示す図である。
【発明を実施するための形態】
【０００６】
[0013]図１に、一実施形態による、区分されたドメインの重要度サンプリングの方法１００を示す。図示されているように、複数の集合を含む区分されたドメインを生成する。動作１０２を参照されたい。一実施形態では、区分されたドメインを、ドメインを複数の集合に区分することによって生成することができる。
【０００７】
[0014]この説明の文脈では、区分されたドメインは、任意の区分されたオブジェクト又は区分されたオブジェクトのグループを指す。一実施形態では、区分されたドメインを、任意次元の区分されたドメインとすることができる。さらに、区分されたオブジェクトを、幾何オブジェクトを区分することによって作成することができる。
【０００８】
[0015]この説明の文脈では、区分は、ボクセル化を含み、ここで、集合は、任意次元の空間内の格子上の値を表す立体要素（すなわち、ボクセル）に対応する。たとえば、各ボクセルを、オブジェクト又は現象のある測定可能なプロパティ、独立変数、又は属性を表す１つ又は複数の数値を関連付けられた立体の量子単位とすることができる。さらに、任意のボクセルが、１つのボクセル又はボクセルのグループを含むことができる。
【０００９】
[0016]複数の集合を含む区分されたドメインが生成された後に、確率を複数の集合のそれぞれに割り当てる。動作１０４を参照されたい。さらに、サンプルを複数の集合の内部で生成し、サンプルは、対応する集合の確率に従って生成される。動作１０６を参照されたい。
【００１０】
[0017]一実施形態では、サンプルを、データ木を利用して生成することができる。たとえば、一実施形態では、データ木が、ハフマン木を含むことができる。この場合に、ハフマン木を、区分されたドメイン上で構成することができる（たとえば、複数の集合のそれぞれに割り当てられた確率を利用してなど）。
【００１１】
[0018]オプションとして、ハフマン木を、単一ドメインセル（ｄｏｍａｉｎ  ｃｅｌｌ）まで下にトラバースすることができる。一実施形態では、下へのトラバースを、サンプルワープ（ｓａｍｐｌｅ  ｗａｒｐｉｎｇ）を利用して実行することができる。もう１つの実施形態では、アクセスされる子ノードを蓋然論的に選択するために、ハフマン木の各内側ノードでランダムサンプル又は準モンテカルロサンプルを生成することによって、下へのトラバースを実行することができる。
【００１２】
[0019]もう１つの例として、データ木は、ｋ次元木を含むことができる。この場合に、ｋ次元木を、やはり複数の集合のそれぞれに割り当てられた確率を利用して、区分されたドメイン上で構成することができる。さらに、ｋ次元木を、ヒューリスティック（たとえば、中央分割（ｍｉｄ−ｓｐｌｉｔ）プレディクタ、エントロピプレディクタ、又はハイブリッドプレディクタなど）を利用して構成することができる。もう１つのオプションとして、ｋ次元木を構成することは、最小の費用関数を見つけるために検索空間を縮小することを含むことができる。
【００１３】
[0020]この方法で、確率が各セルに割り当てられた状態で任意次元のボクセル化されたドメインが与えられれば、任意個数のよく分布した（ｗｅｌｌ−ｄｉｓｔｒｉｂｕｔｅｄ）サンプルを、その確率に従ってボクセルセルの内部で引き出すことができる。ボクセルセルの内部のサンプルと全体としてのドメイン上のサンプルとの両方を、よく分布したものとすることができる。オプションとして、少ない数の期待されるトラバースステップでドメインセルを選択するために、ハフマン木を使用することができる。この場合に、ドメインセルの内部のサンプルを、適切な超一様分布列を使用して列挙することができる。
【００１４】
[0021]この説明の文脈で、超一様分布列は、Ｎのすべての値について、その部分列ｘ１，…，ｘＮが低不一致を有するというプロパティを有するすべての列を指す。たとえば、超一様分布列は、ハルトン列又はソボル列などを含むことができる。もう１つのオプションとして、少ない数の期待される計算ステップでドメインセルを選択するために、ｋ次元木を使用することができる。
【００１５】
[0022]より例証となる情報を、これから、ユーザの望みに従って前述の枠組が実施されてもされなくてもよいさまざまなオプションのアーキテクチャ及び特徴に関して示す。次の情報が、例証のために示されるものであり、いかなる形でも限定的と解釈されてはならないことに強く留意されたい。次の特徴のいずれをも、オプションで、説明される他の特徴の除外を伴って又は伴わずに組み込むことができる。
【００１６】
[0023]図２に、別の実施形態による、ハフマン木を使用してサンプルを列挙する方法２００を示す。オプションとして、本方法２００を、図１の機能性の文脈で実施することができる。しかし、もちろん、方法２００を、任意の所望の環境で実行することができる。前述の定義をこの説明の中で適用できることにも留意されたい。
【００１７】
[0024]図示されているように、ハフマン木を、集合に割り当てられた確率を使用することによって区分されたドメイン上で作成する。動作２０２を参照されたい。ハフマン木を作成した後に、そのハフマン木を、単一ドメイン集合まで下にトラバースする。動作２０４を参照されたい。
【００１８】
[0025]一実施形態では、単一ドメイン集合までハフマン木を下にトラバースすることを、サンプルワープによって達成することができる。もう１つの実施形態では、単一ドメイン集合までハフマン木を下にトラバースすることを、次に訪れるべき子ノードを蓋然論的に選択するために各内側ノードでランダムサンプル又は準ランダムサンプルを引き出すことによって達成することができる。
【００１９】
[0026]ハフマン木の葉レベルでドメインの１つの集合に達した後に、次の列サンプルをこの集合の内部で列挙する。動作２０６を参照されたい。一実施形態では、次の列サンプルは、ハルトン列サンプルを含むことができる。もう１つの実施形態では、次の列サンプルは、ソボル列サンプルを含むことができる。
【００２０】
[0027]集合内部の列サンプルの列挙に関するさらなる情報は、参照によってその全体が本明細書に組み込まれている、２００８年９月３０日に出願した米国特許出願第１２／２４１９２８号明細書、名称「ＣＯＭＰＵＴＥＲ  ＧＲＡＰＨＩＣＳ  ＷＩＴＨ  ＥＮＵＭＥＲＡＴＩＮＧ  ＱＭＣ  ＳＥＱＵＥＮＣＥＳ  ＩＮ  ＶＯＸＥＬＳ」に見出すことができる。
【００２１】
[0028]どちらの列を用いても、確率木の葉レベルに対応するボクセルの直接に内部の準モンテカルロ点を列挙することによって、分布プロパティを入手することができる。次の列サンプルを集合の内部で列挙した後に、十分な個数のサンプルが引き出されたかどうかを判定する。動作２０８を参照されたい。
【００２２】
[0029]十分な個数のサンプルが引き出されてはいない場合には、十分な個数のサンプルが引き出されるまで、もう一度木をトラバースし、列サンプルを列挙する。この場合に、十分なサンプルの個数を、サンプルを列挙するシステム又はそのオペレータによって決定することができる。
【００２３】
[0030]図３に、別の実施形態による、低い期待されるトラバース深さを有するｋ次元木の構成及びそのようなｋ次元木の重要度サンプリングの方法３００を示す。オプションとして、本方法３００を、図１〜２の機能性の文脈で実施することができる。しかし、もちろん、方法３００を、任意の所望の環境で実行することができる。やはり、前述の定義をこの説明の中で適用することができる。
【００２４】
[0031]動作中に、ｋ次元木を、集合に割り当てられた確率を使用することによって、区分されたドメイン上で作成することができる。まず、ドメイン領域全体をスタックにプッシュすることができる。動作３０２を参照されたい。次に、スタックが空であるかどうかを判定する。動作３０４を参照されたい。
【００２５】
[0032]スタックが空ではないと判定される場合には、ドメイン領域をスタックからポップする。動作３０６を参照されたい。次に、ドメイン領域が葉サイズより大きいかどうかを判定する。動作３０８を参照されたい。
【００２６】
[0033]ドメインサイズが葉サイズより大きい場合には、ヒューリスティックを使用して分割軸及び分割面を見つける。動作３１０を参照されたい。この場合に、分割面は、各内側ノードで見つけることができる。
【００２７】
[0034]一実施形態では、各内側ノードで分割面を見つけることは、中央分割プレディクタ、エントロピプレディクタ、又はハイブリッドプレディクタのうちの少なくとも１つから推論される費用関数の最小値を見つけることを含むことができる。一実施形態では、各内側ノードで分割面を見つけることは、たとえば、ビニング（ｂｉｎｎｉｎｇ）などによって検索空間を縮小させることを含むことができる。
【００２８】
[0035]ヒューリスティックを使用して分割軸及び分割面を見つけた後に、内側ノードを作成し、分割軸及び分割面を保存する。動作３１２を参照されたい。次に、子ドメイン領域をスタックにプッシュする。動作３１４を参照されたい。
【００２９】
[0036]動作３０８で、ドメイン領域が葉サイズより大きくはないと判定される場合には、葉ノードを作成する。動作３１６を参照されたい。次に、もう一度、スタックが空であるかどうかを判定する。
【００３０】
[0037]スタックが空である場合には、ｋ次元木をトラバースしてサンプルを入手する。動作３１８を参照されたい。次に、十分な個数のサンプルが入手されたかどうかを判定する。動作３２０を参照されたい。
【００３１】
[0038]十分な個数のサンプルが引き出されてはいない場合には、十分な個数のサンプルが引き出されるまで、もう一度木をトラバースする。この場合に、十分なサンプルの個数を、サンプルを列挙するシステム又はそのオペレータによって決定することができる。
【００３２】
[0039]この方法で、区分されたドメインをサンプリングするのに使用できるｋ次元木を生成することができる。ボクセル確率に対応するサンプルを生成するために、サンプル生成ステージにおいて少ない数の期待されるトラバースステップを有するｋ次元木を生成することができる。さらに、さまざまな実施形態では、異なるヒューリスティックを利用して、木を生成し、サンプリングを実行することができる。一実施形態では、エントロピに基づくヒューリスティックを利用することができる。
【００３３】
[0040]さらに、もう１つの実施形態では、ボクセル内のサンプルを、準モンテカルロ列又は超一様分布列に基づいて列挙することができる。この場合に、上で述べたように、ハフマン木を利用して、ボクセルを選択することができる。その結果、ボクセル選択に関するトラバースステップの期待される個数を、できる限り少なくすることができる。
【００３４】
[0041]どちらの場合でも、よく分布するサンプル点を、区分されたドメイン中に生成することができ、積分推定値のより速い収束がもたらされる。一実施形態では、そのような技法を、環境マップが光源として使用される、レンダラ（たとえば、レイトレーシングベースのレンダラなど）のイメージベースライティングの文脈で利用することができる。さらなる応用例には、ボクセルセルに基づく多次元粒子マップ、ボリュームデータ視覚化、及び全般的に多次元の区分されたドメインの積分の計算を含めることができる。
【００３５】
[0042]確率又は近似確率がボクセルごとにわかっている、区分されたドメインの重要度サンプリングは、しばしば、モンテカルロ技法又は準モンテカルロ技法に使用される標準技法である。非常にしばしば、関数は、コンピュータグラフィックスにおけるテクスチャ付き（環境）光源など、ある離散エネルギー密度によって少なくとも部分的に定義される。離散ドメインの重要度サンプリングのサンプリング速度を、確率木を使用することと期待されるトラバース深さを最小化することとによって最適化することができる。さまざまな実施形態では、領域の確率に基づいて又はそれらの間の空間連結性を組み込むことによってのいずれかで、離散ドメインからサンプリングするのに、異なる技法を利用することができる。
【００３６】
[0043]一実施形態では、累積分布関数（ＣＤＦ）を利用して、事象の離散集合から選択することができる。たとえば、ｐｉが、ｉ＝１，…，ｎについて第ｉ事象の確率を表す場合に、対応するＣＤＦは、帰納的にｉ＝１，…，ｎについてｃ０＝０及びｃｉ：＝ｃｉ−１＋ｐｉとして構成される。
【００３７】
[0044]サンプリングは、単純である。擬似乱数
【数１】
2010176657.tif 000003
は、ｃｉ−１≦ξ＜ｃｉの場合に第ｉ事象に写像される。さらに、２進検索と組み合わせて使用されるＣＤＦを、中央分割構成と再スケーリングが不要な特殊化されたトラバースとを使用するｌ次元木と見なすこともできる。ＣＤＦの数値精度は、事象の増加する個数に伴ってますます不安定になる可能性がある累積和によって制限される。事象がｋ次元ドメイン（たとえば、格子内のボクセル）に対応する場合に、ｋ個の新しい擬似乱数を、ボクセルの内部の層化に使用することができる。
【００３８】
[0045]もう１つの実施形態では、確率木が、事象の離散集合からサンプリングするのに利用される。確率木とは、各ノードで、すべての子に確率が割り当てられる木である。言い換えると、各ノードは、すべての子について合計１になる。葉の確率は、トラバースで出会うすべての確率の積である。
【００３９】
[0046]一実施形態では、トラバースステップの期待される個数に関する最適確率木を、貪欲ハフマン符号（ｇｒｅｅｄｙ  Ｈｕｆｆｍａｎ  ｃｏｄｅ）アルゴリズムを使用して構成することができる。このアルゴリズムは、単一の事象の確率に対応するノードから開始される。その後、最も低い確率を有する２つのノードを、連続して選択し、ノードのプールから除去する。これらのノードの親ノードを作成し、この親ノードに、２つの子の確率の和を割り当てる。
【００４０】
[0047]この親ノードを、ノードのプールに挿入する。このアルゴリズムは、プールに１つのノードだけが残っている時に終了し、このノードは、木のルートノードである。オプションとして、最も低い確率を有するノードの選択を、優先順位キューを使用することによって効率的に実施することができる。一実施形態によるハフマン木構成アルゴリズムの擬似コードを、表１に示す。
【００４１】
[0048]
【表１】
2010176657.tif 000004
【００４２】
[0049]ハフマン符号の平均符号語長ｌ（ｐ１，…，ｐｎ）（トラバースステップの期待される個数に対応する）は、Ｈ（ｐ１，…，ｐｎ）≦ｌ（ｐ１，…，ｐｎ）≦Ｈ（ｐ１，…，ｐｎ）＋１によって制限され、ここで、
【数２】
2010176657.tif 000005
はエントロピである。
【００４３】
[0050]確率木の分岐数（ｂｒａｎｃｈｉｎｇ  ｆａｃｔｏｒ）がｂまでである（すなわち、各ノードがｂ個までの子ノードを有する）場合に、類似する結果があてはまる。ハフマンアルゴリズムは、最も低い確率を有するｂ個のノードを選択する。その結果、ｌｏｇ２がｌｏｇｂによって置換され、期待されるトラバース深さがｌｏｇ２（ｂ）という定数倍だけ減る。
【００４４】
[0051]ｋ次元木は、ｋ次元でのデータに関する空間区分木であり、ここで、すべての分割面は、軸並行にされる。オプションとして、ｋ次元木を、２進木とすることができる。この木の各ノードでは、正確に１つの次元を、一致する軸に沿った特定の位置で分割することができ、この位置を、そのノードに格納することができる。確率ｋ次元木の場合に、この位置を、左の子の確率に対応するものとすることができる。
【００４５】
[0052]一般に、ｋ次元木は、空間連結性が保存される、一般的な確率木の制限である。しかし、この空間連結性を活用することができる。ｋ次元木構成の１つの版が、中央分割木である。中央分割木を使用することによって、最長の軸が中央で分割される。表２に、一実施形態による、最長の範囲の軸に沿った最小値
【数３】
2010176657.tif 000006
及び最大値
【数４】
2010176657.tif 000007
（ｉ＝０，…，ｋ−１について
【数５】
2010176657.tif 000008
）によって定義されるｋ次元領域を分割するアルゴリズムを示す。
【００４６】
[0053]
【表２】
2010176657.tif 000009
【００４７】
[0054]中央分割ｋ次元木について、期待されるトラバース深さｌ（ｐ１，…，ｐｎ）は、ｌｏｇ２（ｎ）≦ｌ（ｐ１，…，ｐｎ）＜ｌｏｇ２（ｎ）＋１によって制限される。ｐｉ＝１／ｎ（ｉ＝１，…，ｎ）について、これらの限度が、上で説明したＨ（ｐ１，…，ｐｎ）≦ｌ（ｐ１，…，ｐｎ）≦Ｈ（ｐ１，…，ｐｎ）＋１と同等であることに留意されたい。したがって、結果の確率木は、最適に近い。区域が０の確率を有する場合には、これらの区域を木作成から除去することができ、対応する木は、より浅くなる。
【００４８】
[0055]異なる技法を実施して、重要度サンプリングに所与の確率木を使用することができる。確率木の葉がｋ次元ボクセルに対応する場合には、少なくともｋ個の擬似乱数をサンプリングに使用することができる。さらに、木を、蓋然論的な形でトラバースすることができる。言い換えると、子を、その確率に従って選択することができる。いくつかの場合に、子１つあたり１つの擬似乱数を使用するという単純な手法は、オプションではない。というのは、擬似乱数の生成が高価であり、ｄ個までの数が必要であるからであり、ここで、ｄは、木の最大葉深さを表す。
【００４９】
[0056]もう１つの手法は、完全なトラバースに１つの擬似乱数だけを使用することである。トラバースステップごとに、左右の子の確率ｐｌ及びｐｒ（ただし、ｐｌ＋ｐｒ＝１）が、トラバースすべき子を選択するのに使用される。この場合に、
【数６】
2010176657.tif 000010
は、現在のサンプルを表すことができる。ξ＜ｐｌの場合には、左の子が選択され、サンプルは、ξ’＝ξ／ｐｌに再スケーリングされる。そうでない場合には、右の子を選択することができ、サンプルをξ’＝（ξ−ｐｌ）／ｐｒに再スケーリングすることができる。
【００５０】
[0057]次のトラバースステップでは、
【数７】
2010176657.tif 000011
を擬似乱数サンプルとして使用する。この方式を使用すると、ｋ＋１次元で層化されるサンプルの１つの構成要素をトラバースに使用することができ、残りのｋ個の構成要素は、ボクセル内部のよい層化をもたらす。この場合に、ある程度の精度が、各再スケーリング事象で失われる可能性がある。
【００５１】
[0058]数値精度を高めるために、複数の擬似乱数を使用することができる（たとえば、ｋ次元木についてｋ個、次元ごとに１つなど）。次に、各ノードの分割軸によって、どの擬似乱数を再スケーリングするかを決定することができる。
【００５２】
[0059]いくつかの場合に、ボクセルサンプリングを木トラバースから分離することが、単位超立方体から完全なドメインへの写像を攪乱する場合がある。言い換えると、写像を、任意とすることができ、写像は、サンプルの空間的近接を保存しなくてもよい。環境マップのサンプリングに関して、点集合の層化プロパティは、ピクセルにはあてはまるが、環境マップ全体にはあてはまらない。
【００５３】
[0060]古典的モンテカルロサンプリングの場合に、これは、一般に問題ではない。というのは、ランダムさが同一になるからである。しかし、準モンテカルロ列について、これは、劣化した性能又はより多くのアーティファクトにつながる可能性がある。
【００５４】
[0061]ある点集合の層化プロパティを活用できるようにするために、これらのプロパティを、［０，１）ｋから重要度サンプリング方式によって表される変換されたドメインへの値の写像中に保存することができる。一般的な確率木とは対照的に、ｋ次元木は空間的連結性の諸部分を保存し、これを、サンプリング中に活用することができる。点の層化特性を保ちながら重要度サンプリングのためにｋ次元木をトラバースする、１つの一般的なアルゴリズムが、サンプルワープである。
【００５５】
[0062]サンプルワープアルゴリズムは、トラバースとスマート再スケーリングによるボクセル内の層化との両方に元々の点集合を使用する。２進ｋ次元木のサンプルワープアルゴリズムの一例を、表３に示す。
【００５６】
[0063]
【表３】
2010176657.tif 000012
【００５７】
[0064]表３に概要を示されたアルゴリズムは、葉の位置が格納されるように実施される。もう１つの実施形態では、内側ノードは、分割軸の位置だけを格納することができ、この位置は、所望の範囲に直接に変換するのに使用され得る。
【００５８】
[0065]しかし、ｋ＞１の場合に、写像が不連続になる場合があり、いくつかの有用なプロパティ（たとえば、最小距離など）が失われる場合がある。さらに、再スケーリングプロセスは、木が深い場合に、深刻なビット消失をこうむる可能性がある。一般に、このアルゴリズムは、一般的な分解能のボクセル化について良好に動作し、漸進準モンテカルロ積分に有用である。
【００５９】
[0066]いくつかの場合に、非常によい分布プロパティを、確率木の葉レベルに対応するボクセルの直接に内部の準モンテカルロ点又は超一様分布列を列挙することによって入手することができる。一実施形態では、ハルトン超一様分布列アルゴリズム又はソボル超一様分布列アルゴリズムを、この作業（これまでに説明したすべての前のサンプリング作業を含む）に利用することができる。
【００６０】
[0067]まず、ボクセルを、その確率に従って選択することができる。これは、トラバース次元で層化されたランダムサンプリングを使用することによって可能である。ボクセルを選択した後に、そのボクセルの次の準モンテカルロ点を生成する。これは、各ボクセル内部の以前に生成されたサンプルの個数を格納することを必要とする場合がある。
【００６１】
[0068]この方式の結果を、ドメイン全体にわたる非常に密な準モンテカルロサンプル集合の生成及びその後の棄却サンプリング（ｒｅｊｅｃｔｉｏｎ  ｓａｍｐｌｉｎｇ）に似た確率による領域の選択的間引きと比較することができる。このアルゴリズムは、ｋ次元木だけではなくすべての確率木で利用することができる。たとえば、このアルゴリズムをハフマン木で利用することができ、このハフマン木は、いくつかの場合に、期待されるトラバースステップの個数に関して最適とすることができる。これが可能であるのは、このアルゴリズムが木ノード領域の空間連結性に頼らないからである。したがって、次のサンプルをそこで生成すべきボクセルの選択は、理論的に可能な限り速い。
【００６２】
[0069]しかし、トラバース次元で層化するためには、サンプルの個数又はパスごとのサンプルの個数が前もってわかっていなければならない。さらに、いくつかの場合に、追加のサンプル構成要素を生成することを必要とするすべての機能を備えた準モンテカルロエスティメータにこの方式を統合することが、むずかしい可能性がある。ドメインのサンプリングが、系全体の小さい部分だけを表す可能性があるので、あるインスタンス（すなわち、準モンテカルロ列又は超一様分布列のインデックス）が、前に使用されている可能性がある。
【００６３】
[0070]異なるインスタンスが、ボクセル内部の次のサンプルを列挙するのに使用されるときには、対応するアーティファクトが現れる場合がある。さらに、追加のサンプル構成要素をその後に生成するのにどのインスタンスを使用すべきかが不明瞭である場合がある。
【００６４】
[0071]任意の部分木Ｔについて、Ｔｌを左の子部分木、Ｔｒを右の子部分木とそれぞれ定義することができる。Ｅ［Ｔ］によって表されるＴのトラバースステップの期待される個数を、再帰的にＥ［Ｔ］＝１＋ｐｌ・Ｅ［Ｔｌ］＋ｐｒ・Ｅ［Ｔｒ］と書くことができ、ここで、ｐｌ及びｐｒは、部分木の確率である。
【００６５】
[0072]バックトラッキングを介するすべての可能な分離にわたる網羅的再帰検索は、非常に穏当なドメインサイズ及び次元について可能であるときがある。動的計画法は、すべての可能な部分木の期待されるトラバース長さを格納するのにテーブルを使用することによって、解くべき最適ｋ次元木を見つけることを可能にする。葉レベルから開始して、トラバースステップの期待される個数を、すべての可能な分割面にわたって反復することと、Ｅ［Ｔｌ］及びＥ［Ｔｒ］が既に計算されているのでこれらをテーブル内でルックアップしながら、Ｅ［Ｔ］＝１＋ｐｌ・Ｅ［Ｔｌ］＋ｐｒ・Ｅ［Ｔｒ］の最小値を見つけることとによって評価することができる。
【００６６】
[0073]この技法のメモリ要件及び計算労力は、
【数８】
2010176657.tif 000013
であり、ここで、ｒｉは、次元ｉに沿った分解能である。いくつかの場合に、これは、低い分解能及び低い次元についてのみ実現可能である可能性がある。したがって、分割を、ドメインサイズ及び確率から導出された局所情報だけを使用することに基づいて決定することができる。
【００６７】
[0074]一実施形態では、両方の子が中央分割プレディクタヒューリスティックを使用して構成されると仮定することができる。値Ｅ［Ｔ］を中央分割ｋ次元木
【数９】
2010176657.tif 000014
について解析的に表すことができるので（ｍ（Ｔ）はＴの葉の個数である）、これを計算することができる。
【００６８】
[0075]これらの値を実際の期待されるトラバース深さのプレディクタとして使用すると、式１に示されているように、確率及びドメインサイズだけを使用して分割面を選択するヒューリスティックを提供することができる。
式１
【数１０】
2010176657.tif 000015
【００６９】
[0076]いくつかの場合に、式１に示されたヒューリスティックを使用することによって、中央分割ヒューリスティックよりわずかによいｋ次元木を作ることができる。もう１つのオプションとして、より単純なヒューリスティックを利用することができる。式２に、一実施形態によるもう１つのヒューリスティックの例を示す。
式２
Ｅ［Ｔ］≒１＋ｐｌ・ｍ（Ｔｌ）＋ｐｒ・ｍ（Ｔｒ）
【００７０】
[0077]もう１つの実施形態では、部分木のエントロピに基づくヒューリスティックを利用することができる。たとえば、ハフマン木が両方の子について作成される場合に、期待されるトラバース深さを、式３に示されているように推定することができ、ここで、Ｈ（Ｔｌ）及びＨ（Ｔｒ）は、それぞれ左部分木及び右部分木の葉のエントロピである。
式３
Ｅ［Ｔ］≒１＋ｐｌ・Ｈ（Ｔｌ）＋ｐｒ・Ｈ（Ｔｒ）
【００７１】
[0078]部分木内の確率の分布に依存して、期待されるトラバース深さに関する改善が、労力に値しないものになる場合がある。特に、ある領域内にほぼ均一の分布がある場合に、中央分割が最適に近い場合がある。
【００７２】
[0079]領域のエントロピは、より高価なヒューリスティックにどれほどの見込みがあるかに関する非常に強力な尺度をもたらす。判断基準を、最大エントロピ
【数１１】
2010176657.tif 000016
とＨ（Ｔ）との比較に基づいて適用することができる。たとえば、
【数１２】
2010176657.tif 000017
の場合（ｃ＜１は、ユーザによって制御されるしきい値係数である）には、より高価なエントロピプレディクタヒューリスティックを適用することができ、そうでない場合には、単純な中央分割を実行することができる。この方法で、性能が最も見込まれる場所に労力をかけることができる。もう１つの実施形態では、最適ｋ次元木を、イメージのダウンサンプリングされた版に基づいて作成することができ、より単純なヒューリスティックを、結果の木の最高レベルで使用し、その後、フル解像度入力に切り替えることができる。
【００７３】
[0080]ドメインの任意の領域の確率及びエントロピを評価するために、範囲総和テーブル（ｓｕｍｍｅｄ−ａｒｅａ  ｔａｂｌｅ、ＳＡＴ）を使用することができる。オプションとして、範囲総和テーブルを、現在のグラフィック処理ユニット（ＧＰＵ）のスキャンプリミティブを使用して、すばやく並列に構成することができる。
【００７４】
[0081]ほとんどの場合に、エントロピは、Σｉｐｉ＝１となる確率ｐｉの集合について定義される。ドメインの任意の領域について、確率を、定数係数ｓ：＝１／Σｉｐｉを使用して再正規化することができる。ＳＡＴをエントロピ値に使用することができる。というのは、
【数１３】
2010176657.tif 000018
であるからである。
【００７５】
[0082]値１／ｓ＝ΣｉｐｉとΣｉｐｉ・ｌｏｇ２ｐｌとの両方を、そのそれぞれのＳＡＴから取り出すことができる。
【００７６】
[0083]あるサンプル番号が、再スケーリングによってすべてのトラバースステップについて使用される場合には、精度損失を考慮に入れなければならない。一例として、２進木での確率中央分割を考慮することができ、ここでは、両方の子が、すべてのノードで０．５の確率を有する。１つの擬似乱数を用いるトラバースは、トラバースステップあたり正確に１ビットのビット消失につながる可能性がある。
【００７７】
[0084]たとえば、一般の環境マップは、１０２４×１０２４の解像度を有し、約２０の深さの木につながる場合がある。このシナリオでは、少なくとも２０ビットが、トラバース中に失われ、特に倍精度浮動小数点数が単一精度浮動小数点数に縮小される可能性がある。
【００７８】
[0085]類似する精度の問題を、サンプルワープアルゴリズムを使用する場合に考慮に入れなければならない。そのシナリオでは、１つのサンプル番号が、ｋ次元木の次元ごとに使用される可能性があり、トラバースから残されるビットが、サンプルを葉に置くのに使用される場合があり、葉の精度が下がる。もちろん、ボクセルから実際のドメインに写像するための位置の追加変換の場合（たとえば、経度／緯度環境マップなどに関する）には、ビット消失の精度が、より複雑になる場合がある。
【００７９】
[0086]しかし、倍精度浮動小数点は、サンプルワープアルゴリズムを成功して使用するのに十分な精度である可能性がある。期待されるトラバースステップの個数を減らすことによって、平均ビット消失を減らすことができる。
【００８０】
[0087]一実施形態で、行／列ＳＡＴを使用できることに留意されたい。行／列ＳＡＴを使用することによって、ルックアップ動作を確率／エントロピ評価ごとに節約することができる。というのは、各軸が、フルエントロピプレディクタヒューリスティック計算中にトラバースされるからである。
【００８１】
[0088]さらに、葉確率は、通常は小さく、正確な値は、これには依存されないので、浮動小数点数の高速近似ｌｏｇ２実施態様を利用することができる。
【００８２】
[0089]内側ノードを、単一「分割面」だけが格納される形で再スケーリングすることができ、次の子に関する判断は、ＣＤＦに似て、小なり比較に単純化される。各ノードの可能なサンプルの区間がわかっているので、この区間の内部の分割面を、式４に示されているように子の確率に従って計算することができ、式４では、ｓは、分割位置を表し、［Ｉ０，Ｉ１）は、現在のノードの可能なサンプルの区間を表し、ｐｌ及びｐｒは、子の（正規化されていない）確率を表す。
式４
【数１４】
2010176657.tif 000019
【００８３】
[0090]各葉は、サンプルを［０，１）に正しく再スケーリングするためにＩ０及び係数１／（Ｉ１−Ｉ０）を格納することができる。このような方法で、フルトラバースのサンプル次元あたりに単一の減算及び乗算だけが存在する。
【００８４】
[0091]もう１つのオプションとして、費用関数の単調性を、ある軸に沿って仮定することができる。そうではない場合があるが、局所最小値は、大域的な最小値より悪くはない可能性がある。中央分割から開始し、その後、費用関数が増え始めるまで左又は右へ連続して進み、見つかった最小値をとることによって、最小値検索をより早く打ち切ることを可能にすることができる。さらに、一実施形態で、ビニングを使用して、費用関数評価の回数を減らすことができる。
【００８５】
[0092]図４に、一実施形態による確率木４００を示し、内側ノードは、その子の確率の和を保持する。図５に、一実施形態による、サンプルワープに使用することができる、図４に対応する決定木５００を示す。図６に、一実施形態による、１次元サンプルワープが使用される時の図５に対応する各ノードのサンプル区間の木６００を示す。高速サンプルワープ技法について、分割面を、これらの区間の中央にセットすることができる。
【００８６】
[0093]図７に、一実施形態による、異なるプローブの統計を示す表７００を示す。オプションとして、表７００を、図１〜６の機能性及びアーキテクチャの文脈で見ることができる。しかし、もちろん、表７００を、任意の所望の環境の文脈で見ることができる。前述の定義をこの説明の中で適用できることにも留意されたい。
【００８７】
[0094]表７００は、サイズ６４×３２の異なるプローブの統計を示す。この例では、利用されるランダムイメージは、ランダム均一ピクセルから作られ、スターフィールドイメージは、背景よりはるかに明るいいくつかのランダムピクセルを含む。比較のために、表７００は、イメージベースライティングとして一連の高ダイナミックレンジイメージ用のさまざまな木構築アルゴリズムを使用する統計を示す。オプションとして、環境マップがＨＤＲビデオであり、単一のレンダリングされるイメージのシャッタ時間がビデオ内の複数のフレームにわたるときに、３次元木を使用することができる。環境光線は、照明が最も寄与する瞬間の特徴を表すはずである。
【００８８】
[0095]図８に、さまざまな前の実施形態のさまざまなアーキテクチャ及び／又は機能性を実施できる例示的なシステム８００を示す。図示されているように、システム８００は、通信バス８０２に接続される少なくとも１つのホストプロセッサ８０１を含んで提供される。システム８００は、メインメモリ８０４をも含む。制御論理（ソフトウェア）及びデータは、メインメモリ８０４に格納され、メインメモリ８０４は、ランダムアクセスメモリ（ＲＡＭ）の形をとることができる。
【００８９】
[0096]システム８００は、グラフィックスプロセッサ８０６及びディスプレイ８０８すなわちコンピュータモニタをも含む。一実施形態で、グラフィックスプロセッサ８０６は、複数のシェーダモジュール、ラスタライザモジュールなどを含むことができる。前述のモジュールのそれぞれを、単一の半導体プラットフォーム上に配置して、グラフィックス処理ユニット（ＧＰＵ）を形成することすらできる。
【００９０】
[0097]この説明では、単一の半導体プラットフォームは、唯一の一体の半導体ベースの集積回路又はチップを指すことができる。単一の半導体プラットフォームという用語は、オンチップ動作をシミュレートし、従来の中央処理装置（ＣＰＵ）及びバス実施態様の利用に対する実質的な改善を行う、高められた接続性を有するマルチチップモジュールをも指すことができることに留意されたい。もちろん、さまざまなモジュールを、ユーザの望みに従って、別々に又は半導体プラットフォームとのさまざまな組合せの形で配置することもできる。
【００９１】
[0098]システム８００は、二次ストレージ８１０をも含むことができる。二次ストレージ８１０は、たとえば、ハードディスクドライブ及び／又はフロッピディスクドライブ、磁気テープドライブ、コンパクトディスクドライブなどを表すリムーバブルストレージドライブを含む。リムーバブルストレージドライブは、周知の形でリムーバブルストレージユニットから読み取り、及び／又はこれに書き込む。
【００９２】
[0099]コンピュータプログラム又はプログラム制御論理アルゴリズムを、メインメモリ８０４及び／又は二次ストレージ８１０に格納することができる。そのようなコンピュータプログラムは、実行された時に、システム８００がさまざまな機能を実行することを可能にする。メモリ８０４、ストレージ８１０、及び／又は任意の他のストレージは、コンピュータ可読媒体の可能な例である。
【００９３】
[00100]一実施形態で、さまざまな前の図のアーキテクチャ及び／又は機能性を、ホストプロセッサ８０１、グラフィックスプロセッサ８０６、ホストプロセッサ８０１とグラフィックスプロセッサ８０６との両方の機能の少なくとも一部が可能な集積回路（図示せず）、チップセット（すなわち、関連する機能を実行するユニットとして働き、販売されるように設計された集積回路のグループなど）、及び／又はそれに関する任意の他の集積回路の文脈で実施することができる。
【００９４】
[00101]さらに、さまざまな前の図のアーキテクチャ及び／又は機能性を、汎用コンピュータシステム、回路基板システム、エンターテイメント目的専用のゲーム機システム、特定用途向けシステム、及び／又は他の所望のシステムの文脈で実施することができる。たとえば、システム８００は、デスクトップコンピュータ、ラップトップコンピュータ、及び／又は任意の他のタイプのロジックの形をとることができる。さらに、システム８００は、携帯情報端末（ＰＤＡ）デバイス、携帯電話デバイス、テレビジョンなどを含むがこれらに限定はされないさまざまな他のデバイスの形をとることができる。
【００９５】
[00102]さらに、図示されてはいないが、システム８００を、通信のためにネットワーク［たとえば、遠隔通信ネットワーク、ローカルエリアネットワーク（ＬＡＮ）、無線ネットワーク、インターネットなどの広域ネットワーク（ＷＡＮ）、ピアツーピアネットワーク、ケーブルネットワークなど］に結合することができる。
【００９６】
[00103]さまざまな実施形態を上で説明したが、これらが、限定ではなく例示のみのために提示されたことを理解されたい。したがって、好ましい実施形態の広さ及び範囲は、上で説明した例示的実施形態のいずれによっても制限されてはならず、添付の特許請求の範囲及びその同等物によってのみ定義されねばならない。
【図１】
2010176657.tif 000020
【図２】
2010176657.tif 000021
【図３】
2010176657.tif 000022
【図４】
2010176657.tif 000023
【図５】
2010176657.tif 000024
【図６】
2010176657.tif 000025
【図７】
2010176657.tif 000026
【図８】
2010176657.tif 000027
【外国語明細書】
2010176657000001.pdf