Generation of Stratified Samples for B-Spline Pixel Filtering

by syoyo

Stark, M., Shirley, P., Ashikhmin,
M
Generation of Stratified
Samples for B-Spline Pixel
Filtering
Journal of
Graphics Tools, v.10 no. 1 (2005),
pp. 61-70
http://www.cs.sunysb.edu/~ash/

B-spline 関数の分布に従って、層別サンプル点を生成する手法。

テーブルルックアップではなく、
解析的な生成手法を提案しています
(三次の B-Spline 関数まで)。

B-Spline をピクセルフィルタ関数に選ぶ一番の理由として、

論文では、ピクセル中心に B-Spline
カーネル関数の中心をおいたときに、
各カーネルからの重みの総和が画像面のどこでもちょうど 1
になることを挙げています。

三次 B-Spline でも、
層別サンプルのための解析式は高々 四次関数になります。

実際には、マジメに解析解を計算するよりは、
ニュートン法を用いた数値解のほうが
効率がよくまた精度よく解が求まるそうです。

見た感じでは、サンプルはなかなかきれいに分布しているようです。

計算式も簡単ですので、試してみる価値があると思います。

ここからさらに Adaptive sampling にも使えるように、

stratified な progressive
性も出せるようだとさらにうれしいのですが、
そのようなサンプリングスキームは無いものかなぁ…

論文 abstract
日本語訳

B-spline フィルタカーネルは、
ピクセルサンプリングの各種応用において
有益であることが知られています。

特に、4 ピクセル幅の 三次 B-spline
フィルタカーネルが効果的です。

分散レイトレーシングにおいて、
サンプリング密度がフィルタ値に比例するように
ピクセルフィルタが暗に評価されています。

本研究では、B-spline
密度関数に従うようにランダムなサンプルを生成する、
シンプルな手法を提案します。

誤差を減らすためには、一様サンプリングのためのジッタリングと同様に、

サンプルを層別化させることが重要になります。

1, 2, および 3 階の B-spline
カーネルに対してのこのようなことを行う、
代数的および数値的手法を提案します。

Advertisements