超雑訳 A Fast and Stable Feature-Aware Motion Blur Filter

Share

押忍!Pocolです。
今日は,前回読んだ論文の改良版である
[Guertin 2014] Jean-Philippe Guertin, Morgan McGuire, Derek Nowrouzezahari, “A Fast and Stable Feature-Aware Motion Blur Filter”, HPG 2014, Vol.33, No.2, 2014.
を読んでみようと思います。

いつもながら,誤字・誤訳があるかと思いますので,ご指摘頂ける場合は正しい翻訳例と共に指摘して頂けるとありがたいです。

Abstract

高品質なモーションブラーは、インタラクティブグラフィックスにおいてますます重要な効果となっていますが、オフラインレンダリングの場合でも、ポストプロセスとして近似していることが多いです。最近のモーションブラーのポストプロセス([MHBO12, Sou13]など)は、インタラクティブな性能を備えた妥当な結果を生成しますが、オーバーラップする動きや、大規模・微細な動きの特徴がある場合には、気になるアーティファクトが残ってしまいます。我々は、わずかなランタイムコストを追加するだけで、よりロバストなサンプリングとフィルタリングのスキームでこれらのアーティファクトに対処します。実際に、いくつかの複雑なアニメーション・シーケンスにおいて、時間的に調和のとれた妥当なモーションブラーを、解像度\(1280 \times 720\)で2ms以下でレンダリングしました。さらに,このフィルタは,ポストプロセスのアンチエイリアシングや被写界深度とシームレスに統合できるように設計されています。

1 Introduction

モーションブラーは、リアルな画像合成に欠かせない効果であり、重要なモーションキューを提供し、視聴者の注意を喚起します。これは、高品質の映画制作用レンダリングとインタラクティブなグラフィックスを区別する数少ない効果の一つです。本研究では、モーション・ブラー・シーケンスの知覚的な手がかりを現象学的にモデル化し、シンプルで高性能なポスト・プロセスを用いて、この効果を高品質に近似させます。

 我々は、再構成フィルターとサンプリングの組み合わせに関する基礎的な研究を行ったオフラインモーションブラーのポストプロセスの研究[Coo86, ETH*09, LAC*11]に動機づけられています。これらのアプローチは、現代のゲームエンジンには重すぎますが、そのアイデアの多くは有用です。逆に、アドホックなアプローチ(例:動いているオブジェクトをブラーする)は数年前から様々な形で存在していますが、現象学的な方法論を用いてモーションブラーの後処理にどのようにアプローチするかという問題は、最近になってようやくインタラクティブレンダリングのコミュニティで支持されるようになりました。この方法論は、最初、ポストプロセスのアンチエイリアシング[Lot09]や被写界深度[Eng06]に使用され(成功し)ました。我々は、スーパーサンプリングに匹敵する、時間的にコヒーレントで、もっともらしい高品質のモーションブラーを目標としていますが、パフォーマンスバジェットは少なく、実装も簡単です。このように、我々は最近のポストプロセス[MHBO12, Sou13]を基にして、それらの制限のいくつかを解決しながら、安定した、特徴を保持した、もっともらしいモーションブラーを作り出します。

Contributions
これまでの研究では、もっともらしく、かつ効率的なブラーを適用するために、各ピクセルにおける局所的な速度分布に関する保守的な仮定に依存していました。残念ながら、これらの仮定が崩れると、気になるアーティファクトが発生します。これは、単純なシーンでも避けられないことですが、画像空間内で近くにあるオブジェクトが異なる速度で動いている場合や、(相対)運動中のオブジェクトに幾何学的特徴や異なるスケールがある場合に発生します。本研究では、これらのアーティファクトを除去し、単純なアニメーションから複雑なアニメーションまで、安定したモーションブラーを計算することができます。我々の貢献は以下の通りです。

  • 非等方性の速度分布を扱う、改良された分散駆動型の方向サンプリング方式です。
  • ボケていない物体のディテールを維持しつつ、微細なボケと大規模なボケを捉えることができるサンプル重み付け方式を採用しています。
  • タイルの境界をよりロバストに処理し、ポストプロセスのアンチエイリアシングや被写界深度との相互作用を実現します。

G-buffer上で操作し、標準的なラスタライズを用いて、単一のタイムインスタンスでキャプチャを行います。その結果、アニメーションでも安定しており、複雑な動きのシナリオにもしっかりと対応し、しかも1フレームあたり約3msで完了しました(図1)。我々のフィルタは画像のポストプロセスフィルタなので、非物理的で誇張されたモーションブラー効果を生成するために、アート主導のコンテキストで容易に使用することができます。疑似コードの詳細は付録Aに掲載しています。

※図は[Guertin 2014]より引用

2 Previous Work and Preliminaries

モーションブラーの研究は幅広く行われていますが、ここでは我々のアプローチに最も関連する最近の研究について説明し、興味のある読者にはこのトピックに関する最近の調査を紹介します[NSG11]。

Sampling Analysis and Reconstruction
確率的レイトレーシング法とマイクロポリゴンのラスタライズの文脈で、アーティファクトを減らすためにさまざまな(画像)フィルターを適用したのは、Cookの分布効果に関する代表的な研究[Cook86]が最初でした。最近では,多次元プライマル[HJW*08],ウェーブレット[ODR09],データドリブン[SD12]などの領域で,重要な視覚的ディテールを保持しながらノイズを除去するアプローチがとられています。Eganら[ETH*09]は,物体の動きの周波数領域において,サンプルの配置とフィルタリングの効果を具体的に分析し,確率的に分布した時空間のサンプルで動作するせん断された再構成フィルタを提案しています。Lehtinenら[LAC*11]は,光線空間におけるスパースなサンプルを用いて,ピクセルにおける時空間的なライトフィールドの異方性を再構成し,分布効果のためにフィルタリングされたピクセル値を再構成しています。後者の2つの技術は,ストキャスティック・レンダリング・エンジンにおいて,固定のサンプリング・バジェットが与えられた場合に積分誤差を最小化することを目的としています。また、低サンプリングレートに起因する目に見えるアーティファクトを低減しますが、ここでは、分散型時間サンプリングがオプションではなく、計算バジェットが分単位ではなくミリ秒単位であるようなインタラクティブなグラフィックスパイプラインに限定しています。

Stochastic Rasterization
時間領域とレンズ領域をサポートするために三角形のラスタライズを拡張する最近の研究[AMMH07]では、GPUラスタライズ、ストキャスティック・レイトレーシング、および最新のGPUマイクロポリゴンレンダラーの長所と短所のバランスをとっています[FLB:09]。ここでは,カメラの可視性とシェーディングが空間-レンズ-時間の多数のサンプルで評価されます.従来のGPUパイプラインに効率的な実装を行っても[MESL10]、これらのアプローチは現代のインタラクティブなグラフィックスアプリケーションにとってはコストがかかりすぎます。しかし,Shirleyら[SAC*11]は,このような確率的マルチサンプルレンダラからの時空間的な出力が与えられたときに,もっともらしいモーションブラーのための画像空間フィルタについて議論しています。我々は彼らのモーションブラーの現象学的分析に刺激を受け、彼らの分析を複雑なモーションシナリオをよりロバストに扱えるように拡張しました(セクション4参照)。

Interactive Heuristics
アルベドテクスチャをテクスチャマッピング(静的)ジオメトリの前にブラーするアプローチ[Lov05]や、シェーダを使ってオブジェクトジオメトリを押し出すアプローチ[TBI03]がありますが、どちらのアプローチもシルエットのぼかしを適切に処理できず、非現実的なモーションブラーになってしまいます。Max と Lerner [ML85]やPepper [Pep03]では、オブジェクトを深度でソートし、その速度に沿ってブラーをかけ、その結果を最終画像に合成していますが、この戦略は、シーンがペインターの可視性の仮定を無効にする場合には失敗します。このアプローチのピクセル単位のバリエーションは、特にサンプリングの前に画像の速度が拡張されている場合には、アーティファクトを減らすことができますが[Ros08, RMM10]、複数のオブジェクトが存在する場合には、背景の詳細や重要な動きの特徴を損なう可能性があります[Sou11, KS11]。

最近のタイルベースの単一ブラーの速度アプローチ[Len10, MHBO12, ZG12, Sou13](セクション3参照)に触発され、大規模なモーションビヘイビアを推論するために速度を拡張する一方で、適用する空間的に変化するブラーを推論するためにオリジナルの速度フィールドからサンプリングしています。しかし、高次の動き情報と特徴を考慮したサンプルの重み付けを追加して、複雑な動きに対して安定したロバストな結果を得ることで、前述の「単一速度」アプローチに見られるアーティファクトを効果的に排除しています。具体的には、次のようなことを実現しています:

  • 多数の移動物体と静止物体の相互作用
  • 時間的に変化する複雑な深度関係
  • 物体の大きさやタイルの配置に関わらず、適切なブラーを行うことができます。
  • 静止したオブジェクトや背景の特徴を保持することができます。

我々は、セクション3で詳細を説明した既存の最先端のタイルベースの妥当なモーションブラーのアプローチを構築し、セクション4では、よりロバストなマルチ速度の拡張を提示します。

3 Tile-Based Dominant Velocity Filtering Overview

我々のアプローチは、現象学的な観測と、サンプリングを考慮した再構成フィルタ[Len10, MHBO12, ZG12, Sol13]を組み合わせた最近の単一速度技法に基づいています(図2); まず,画像を,画像空間の最大のぼかし半径\(r\)に合わせて,\(r \times r\)個のタイルに分割し,各画素が最大でその(1リングの)タイル近傍の影響を受けるようにします; 次に,各タイルには1つの支配的な近傍速度が割り当てられます; 最後に、この支配的な方向に沿って重み付けされたタップでピクセルをブレンドします。

※図は[Guertin 2014]より引用

 このアプローチの注目すべき点を以下に紹介します。

  • タイルの領域の速度\({\mathbf v}_{\rm max}\)(図2b;緑)は、2つのステップで計算されます:ピクセルごとの最大速度は、タイルごとに保持され(図2a, b;緑、青)、タイルごとの最大値の1リングの最大値は\({\mathbf v}_{\rm max}\)を生成します。
  • 画素は\({\mathbf v}_{\rm max}\)に沿ってのみサンプリングされ、高いキャッシュコヒーレンスが得られますが、複雑な動きは無視されます。
  • サンプルの重みは、サンプルポイントでの速度の大きさのみを考慮する深さを意識した尺度を使用します。

“TileMax”パスは、画像次元ごとに1つずつ、2つのパスで計算することができ、メモリ使用量が若干増加するものの、パフォーマンスを大幅に向上させることができます。サンプルをジッター処理してバンディングを低減し(除去はできませんが)、サンプルを重み付けして(図2c)、以下の現象的な動きの効果を再現します:

  1. シェーディングピクセルの上で遠くのピクセルやオブジェクトがブラーする
  2. 動きからのシェーディングピクセルにおける透明度
  3. 効果1と効果2の適切な深さを考慮した組み合わせである

これらの技術は、シンプルで高性能なポストプロセスを用いて妥当なモーションブラーを生成するため、すでにプロダクションゲームエンジンに採用されています。しかし、単一領域の速度を仮定し、サンプルの重み付けスキームと相まって、異なる方向に移動するオブジェクトのオーバーラップ、タイルの境界、および薄いオブジェクトを適切に処理する能力が制限され、顕著な視覚的アーティファクトが発生しています(図3, 7, 10, 12 そして 16参照)。

 我々は、これらの制限に対する新しいソリューションを特定し、説明し、評価します。我々は、単一速度アプローチやその他の先行研究[Len10, SAC*11, MHBO12, ZG12, Sou13]によって確立された根拠のある現象論的方法論に従っており、我々の技術は、質の高いシンプルで高性能な実装のために、高いキャッシュコヒーレンスと並列化可能なダイバージェンスフリーの計算を維持しています。

4 Stable and Robust Feature-Aware Motion Blur

既存の(単一速度の)アプローチにおける成果物を示すことで、我々の改善点を動機付けます。その結果、ごくわずかな追加コストで、映像品質が明らかに向上したことを実証しました。さらに、補足ビデオでは、アニメーションや、複雑なジオメトリ、奥行き、速度、テクスチャを持つシーンでの本ソリューションの安定性を示しています。

4.1 Several Influential Motion Vectors

タイルの中に様々な速度のピクセルが含まれている場合、優勢な速度の仮定は破綻し、タイル内の不正確なぼかしとタイル間のぼかしの不一致が発生します(図3および7参照)。これは例えば、回転する物体(図10参照)、タイルよりも小さな特徴を持つ物体(図12参照)、または、ビューとモーションの方向が(ほぼ)平行な場合(図7参照)に発生します。

具体的には、この仮定を利用してサンプリング領域を1次元に縮小することで、単一速度アプローチでは、\({\mathbf v}_{\rm max}\)に沿ったサンプルを、方向ではなく、速度の大きさだけで重み付けします。これにより、本来であればピクセルに寄与しないはずの(支配的な方向に沿った)サンプルが、特に高速で移動している(すなわち、大きな速度の大きさを持つ)場合には、合計に織り込まれてしまい、ぼやけたシェーディングになってしまうことがあります。

これらのアーティファクトを軽減するために、慎重に選んだ第2の方向に沿ってサンプリングを行います。さらに、この2つの方向の間で、近傍の速度の分散に応じてサンプルを分割するとともに、ブラー方向からのサンプルの速度の偏差に基づいて、局所的に適応した指標を用いてサンプルを重み付けします。この方式では、複雑な動きの詳細をよりよく再現することができ、また、(固定)1Dドメインに沿ってサンプリングすることで、キャッシュコヒーレンスを維持することができます。セクション5では、アルゴリズムの詳細を説明し、付録Aでは疑似コードを示します。

Local Velocity Sampling
ピクセルの速度が支配的な方向と大きく異なる場合は、サンプリングの際に考慮する必要があります。そのため,ピクセルの速度と支配的な速度の両方向からサンプリングを行います。これにより、ピクセルや近傍の速度が複雑なシーン(図3など)でのボケがすぐに改善されますが、1Dサブドメインごとにサンプリングレートを実質的に半分にしているため、ノイズが増えてしまいます。

※図は[Guertin 2014]より引用

ピクセルの速度が小さい場合、この方式は第2方向に配置されたサンプルをすべて効果的に「無駄」にします。このような場合には,ピクセルの速度を支配的な方向に垂直な速度に置き換え,全サンプルの半分をこの新しいベクトルに沿ってサンプリングします(残りの半分は支配的な方向に)。これは、支配的な速度が近隣の異なる方向の小さな速度を完全に覆い隠してしまうようなシナリオに役立ちます。この場合、垂直方向は、無視されている重要な方向に沿ったサンプリングの確率を最大化するための「最も良い推測」として機能します。また、この垂直方向は、ピクセルでの速度との間の角度が常に\(\pi\)よりも小さくなるように計算し、必要に応じてその方向を反転させます。もし、そのような重要な(副次的ではあるが)方向が存在しないならば、この直角方向に置かれたサンプルも(最悪の場合)「無駄」になります。この選択は、使われていないサンプルによる追加のノイズに比べて、「ミス」サンプルによる目に見えるアーティファクト(これらの垂直なサンプルは大幅に削減されます)の出現が動機となっています。図4のような複雑なシーンでは、たとえ低いサンプリングレートであっても、無駄なサンプルの数とその影響は非常に小さくなります。

※図は[Guertin 2014]より引用

最終的には、シェーディングピクセル\({\mathbf p}\)のタイル\({\mathbf t}\)におけるピクセル(\({\mathbf v}({\mathbf p})\))と垂直方向に優勢な速度(\({\mathbf v}_{\rm max}({\mathbf t})\))のアイデアを組み合わせます: 中心方向に沿っていくつかのサンプルを配置します(下記参照)。ピクセルの速度がユーザーの最小閾値ガンマを超えて減少すると,正規化された\({\mathbf v}({\mathbf p})\)と\({\mathbf v}^{\perp}_{\rm max}({\mathbf t})\)の方向を補間します(図5参照)。

\begin{eqnarray}
{\mathbf v}_{\rm c}({\mathbf p}) = {\rm lerp} \left( {\mathbf v}({\mathbf p}), {\mathbf v}_{\rm max}^{\perp}, (||{\mathbf v}({\mathbf p}|| – 0.5) / \gamma \right) \tag{1}
\end{eqnarray}

\({\mathbf v}_{\rm max}\)と\({\mathbf v}_c\)の両方に沿ってサンプリングすることで、それぞれのサンプルが有効にブラーに寄与し、複雑なモーションをよりよく捉えることができます。この方法は、ピクセルの速度が低くても(静止している物体の場合はゼロでも)、ロバスト性を維持します(図3および7参照)。

 \({\mathbf v}_{\rm c}\)に沿って配置するサンプルの数とその重み(\({\mathbf v}_{\rm c}\)と\({\mathbf v}_{\rm max}\)の両方に沿って)は、最終的な外観と品質に大きな影響を与えます。ここでは、各方向へのサンプルの割り当て、および重み付けの問題を個別に取り上げます: 最初に、各方向のサンプル分布を詳しく説明し、その後、各方向の寄与をより正確に評価する方法を紹介します。我々の最終的なサンプリング方式は,複雑なシーンにも強く,アニメーションにも安定しています。

※図は[Guertin 2014]より引用

Tile Variance for Sample Assignment
まず、サンプルの分割と\({\mathbf v}_{\rm c}\)および\({\mathbf v}_{\rm max}\)への割り当てについて説明します。標準的な単一速度アプローチ[Len10, MHBO12, ZG 12, Sou13]のように、優勢速度の仮定が成り立つ場合には、\({\mathbf v}_{\rm max}\)からのみサンプリングする必要があります。しかし、この仮定が完全に成り立つことは稀であり、より複雑な動作をノイズを抑えながら同時に撮影するためには、2つの方向への理想的なサンプルの割り当てを見つけたいと考えています。これはすなわち、「無駄な」サンプル数を最小限に抑えることにつながります。これを実現するために,我々は単純な分散推定指標を提案します。

各タイルでは,まず,あるタイルの最大速度と隣のタイルの最大速度との間の角度変化を,次のように計算します。

\begin{eqnarray}
{\mathcal v}({\mathbf t}) = 1 – \frac{1}{|{\mathcal N}|} \sum_{{\bar {\mathbf t}} \in {\mathcal N}} {\rm abs} [ {\mathbf v}_{\rm max}({\mathbf t}) \cdot {\mathbf v}_{\rm max}({\bar {\mathbf t}}) ] \tag{2}
\end{eqnarray}

ここで、\({\mathcal N}\)は\({\mathbf t}\)の周辺(およびそれを含む)の(1リングの)近傍タイルセットです。絶対値は、反対符号の積が自分自身をキャンセルするのを防ぎます。隣接するタイルの速度が\({\mathbf v}_{\rm max}\)と異なる場合、分散\(0 \leq {\mathcal v} \leq 1\)が大きくなります。このように、\({\mathcal v}({\mathbf t})\)を使って\({\mathbf v}_{\rm c}\)と\({\mathbf v}_{\rm max}\)に割り当てるサンプル数を\({\mathbf v}_{\rm c}\)には\({\mathcal v} \times N\)、\({\mathbf v}_{\rm max}\)には\((1-{\mathcal v}) \times N\)で決定することができます(図6)。

※図は[Guertin 2014]より引用

この手法は実際にはうまく機能しており,複雑な動きの近くでは視覚的なアーティファクトを軽減し,動きが単純な場合には\({\mathbf v}_{\rm c}\)に沿ってより少ないサンプルを分配するように戻ります。しかし,\({\mathcal v}\)を計算(および保存)するために(解像度を下げた)レンダリングパス(およびテクスチャ)を追加する必要があり,(パフォーマンスへの影響は無視できるものの)パイプラインの統合には理想的ではありません。分散ベースのサンプル割り当ては結果の質を向上させますが、保守的に\({\mathbf v}_{\rm c}\)と\({\mathbf v}_{\rm max}\)の間でサンプルを均等に分けた場合(つまり、それぞれに\(N/2\)個のサンプルを割り当てた場合)、ほぼ同等の結果が得られます(図7参照)。

 しかし、各サンプルの重み付けは、最終的な結果の質と、複雑なモーションブラーを適切かつ一貫して再構成する能力の両方に大きな役割を果たしていることに注意してください。ここでは,新しい重み付けスキームを詳細に説明し,従来の単一速度アプローチで使用されていたスキームと比較します。

Feature-Aware Sample Weights
単一速度アプローチでは、2つの指標を組み合わせて重みを計算します:

  • サンプリングされた位置と\({\mathbf p}\)の間の深度差
  • サンプルポイントと\({\mathbf p}\)での速度の大きさ

これは、\({\mathbf v}_{\rm max}\)(さらには\({\mathbf v}_{\rm c}\))とは異なる方向に動く物体にサンプルが落ちることを考慮していません。その代わり、サンプルの重みを計算する際に、サンプルの速度方向を追加で考慮します。これにより、元の方式を複雑にすることなく、より細かい動きに対応した方式を実現しています。具体的には、ブラー方向とサンプルされた速度方向の間の内積を考慮します。セクション3の3つの現象的なモーションブラー効果を思い出しながら、各成分に対応する重みを以下のように修正します:

  1. また、サンプリング方向に沿って\({\mathbf p}\)にブラーする遠方の物体の寄与は、サンプルの速度とサンプリング方向(前述のように\({\mathbf v}_{\rm max}\)または\({\mathbf v}_{\rm c}\)のいずれか)との間の内積によって(追加的に)重み付けされます。ここで、重みは遠方のサンプルから\({\mathbf p}\)にブラーする色を考慮しており、そのため、サンプルの速度\({\mathbf v}_{\rm s}\)がブラーの方向と異なる場合に調整することができます。
  2. \({\mathbf p}\)の周囲へのブラーによる透明度は、その速度(実際には\({\mathbf v}_{\rm c}\))と支配的なブラー方向\({\mathbf v}_{\rm max}\)の内積によって(追加的に)重み付けされます。ここでは、全体の重みが\({\mathbf p}\)のピクセル/オブジェクトの背後にある背景の可視性をモデル化しており、そのため、\({\mathbf v}_{\rm c}\)が\({\mathbf v}_{\rm max}\)と異なる場合、寄与度は適切に減少します。
  3. 単一速度アプローチでは、上記の2つのブラー効果の組み合わせをモデル化し、オブジェクトエッジの不連続性を考慮した補正項が含まれています。この重みに、上記の2つの内積の最大値を(追加で)乗じます。

これらの単純な変更(付録Aの疑似コードを参照)により、特に多くのモーション方向が存在する場合、タイル内およびタイル間の品質が大幅に向上します(図7)。

※図は[Guertin 2014]より引用

4.2 Tile Boundary Discontinuities

単一速度アプローチのタイルベースの性質と、単純な優勢速度への依存とが相まって、ブラー方向がタイル間で大きく異なる場合、タイル境界の不連続性が目立ってしまうことがよくあります(図10参照)。これは、\({\mathbf v}_{\rm max}\)が隣接するタイル間で大きく異なり、オリジナルのアプローチでは\({\mathbf v}_{\rm max}\)に沿ってのみサンプリングされるため、隣接するタイルが全く異なる方向にブラーされる場合に発生します。我々のサンプリングと重み付けのアプローチ(セクション4.1)は、すでにこのアーティファクトを軽減するのに役立っていますが、依然として\({\mathbf v}_{\rm max}\)からサンプリングしているため(排他的ではなく、異なる重みを使用しています)、\({\mathbf v}_{\rm max}\)の急激な変化に(多少は)敏感なままです(図9と10を参照)。

 一見直感的ですが、タイルのエッジに沿って近隣の速度を線形補間すると、正しくない結果になることに注意する必要があります。実際、補間自体が定義されていないだけでなく(例えば、2つの反平行な速度を補間するには特別な注意が必要です)、さらに重要なことは、2つのオブジェクトが異なる動きの方向で互いにブラーしても、それらの方向の平均に沿ってブラーすることと同じではないということです。後者の場合、気になる「波」のようなアーティファクトが発生し、タイルの境界をマスクするのではなく、誇張してしまうことが多いです。

 このアーティファクトをさらに軽減するために、タイルのエッジ付近のピクセルに対するNeighborMaxの最大近傍速度テクスチャ検索を確率的にオフセットしました。これにより、バンディングと、タイルの境界付近(\({\mathbf v}_{\rm max}\)バッファのエッジなど)の画像のノイズがトレードされます。そのため,隣接するタイルの\({\mathbf v}_{\rm max}\)に沿ってサンプリングする確率は,タイルの境界までのピクセルの距離が長くなるにつれて低下します(図9).ここでは,制御可能な(ただし固定の)傾き\(\tau\)を持つ単純な線形フォールオフを使用しています。

※図は[Guertin 2014]より引用

※図は[Guertin 2014]より引用

※図は[Guertin 2014]より引用

4.3 Preserving Thin Features

単一速度フィルタリングは,ピクセルに最も近い(ジッターされた)中点サンプルを無視し,代わりに,相対的な深さや速度の情報を考慮せずに(残りのサンプルと同様に),\({\mathbf p}\)の速度の大きさによって\({\mathbf p}\)の色を明示的に重み付けします。これは、最終的なブラーに関係なく、ピクセルの元の色をある程度維持するように設計されていますが、特徴が薄いシーンや、局所的な深さ/速度の変化が大きいシーンには強くありません。このセンターウェイトを過小評価すると、薄いオブジェクトが消えてしまったり、「ゴースト」が発生したりします(図12参照)。さらに、この重みは正規化されていないため、\(N\)が大きくなるとその効果は小さくなります。このようなアーティファクトは、目障りで非現実的であり、重みが\(N\)に依存しているため、制御が困難です。

 その代わりに、このセンターウェイトを\(w_p = || {\mathbf v}_{\rm c} ||^{-1} \times N/ \kappa\)とし、\(\kappa\)はその重要性を偏らせるためのユーザーパラメータとします。すべての結果において\(\kappa=40\)を使用しています(すべてのパラメータ設定についてはセクション5を参照)。\(w_p\)の第2項は、擬似的なエネルギー保存のための正規化として機能し、(これまでの単一速度アプローチとは異なり)サンプリングレート\(N\)の変化に対して\(w_p\)をロバストにしています。最後に,\({\mathbf p}\)に最も近い中点のサンプルを省略せず,他のサンプルと同様に扱い,修正した特徴考慮型サンプリングスキーム(セクション4.1)を適用しています。このように、中間点での相対的な速度変化も考慮しているため、薄い特徴や異なるサンプリングレートにも負けない、もっともらしいモーションブラーが得られます(図12参照)。

※図は[Guertin 2014]より引用

4.4 Neighbor Blurring

我々のアプローチも、これまでの単一速度アプローチも、支配的な近傍速度\({\mathbf v}_{\rm max}\)の効率的な近似に依存しています。我々はMcGuireら[MHBO12]のスキームに修正を加え、\({\mathbf v}_{\rm max}\)の推定値がその真の値から逸脱したときに生じる余計なブラーアーティファクトを減らすことで、ロバスト性を高めています。具体的には、[MHBO12]のNeighborMaxパスは、8つの隣接するタイルを使用して保守的に最大速度を計算します(セクション3および図2b参照)が、これは潜在的に中央のタイルに影響を与える実際の最大速度の過大評価を引き起こす可能性があります。

 代わりに、\({\mathbf v}_{\rm max}\)の計算において、対角線上のタイルを考慮するのは、その最大ブラー方向が実際に現在のタイルに影響を与える場合のみとします。例えば、中央のタイルの左上にあるタイルが、中央を向いていない最大速度を持つ場合、\({\mathbf v}_{\rm max}\)計算では考慮しません(図11)。その理由は、軸上のタイルでのわずかな速度偏差は、中央のタイルに重なるブラーになりますが、コーナー(軸外)のタイルではより大きな偏差が必要になるからです。この修正の影響は、レートの状況から実際には軽微ですが、それでも最悪のケースの推定値を改善しています。

※図は[Guertin 2014]より引用

4.5 Stochastic Noise and Post-Process Anti-Aliasing

各サンプルを配置する方向(\({\mathbf v}_{\rm max}\)または\({\mathbf v}_{\rm c}\))の選択、およびサンプルの重み付けについては説明しましたが(セクション4.1)、1次元領域のどこにサンプルを配置するかについては説明していません。数値積分アプローチはサンプルの分布に敏感であり、1次元領域に均一なサンプルを配置した場合、我々の技術と単一速度技術の両方の品質がこの選択によって大きく影響される可能性があります。McGuireら[MHBO12]は、等間隔の一様なサンプルを使用し、ハッシュ化されたノイズテクスチャを使用して各ピクセルでパターンをジッタリングしています。このジッター付き一様分布は,最近,線形ライトを用いた1次元シャドウイング問題の文脈で分析され[RAMN12],低ディスクレパンシーや層化サンプリングよりも分散を低減できることが証明されました。

我々はこの戦略をモーションブラー積分用に変更し、決定論的Haltonシーケンス[WHL97]を使用して、大きな最大ジッター値\(\eta\)(ピクセル単位)でピクセルごとのサンプルセットをジッターすることで、結果の質を向上させています(他の低ディスクレパンシーセットを使用することもできます)。さらに、先に述べたように、\({\mathbf p}\)に最も近い中央のサンプルを無視せず、その相対的な深さと局所的な速度を重み付けの際に適切に考慮しています。最後に、サンプリングレートに応じてジッター値を減少させます。これにより、\(\eta\)に\(\phi/N\)を乗じることで、バンディングを発生させることなく、高いNでのノイズを減少させることができます。ここで \(\phi\) はユーザーが決定する定数で、「ベースライン」のジッターレベルに影響を与えます。

Noise Patterns and Post-Process Anti-Aliasing
確率的積分によって生成されたノイズパターンは、FXAAなどの後処理である画面空間のアンチエイリアシング手法の入力として適しています。具体的には,ピクセル単位のジッターにより,ノイズが残っていても,アンチエイリアシングの輝度エッジ検出器のトリガーとなる高周波パターンとして表示されます(図13,右上)。その後、ポストプロセスのアンチエイリアス処理によって、これらのピクセルがブラーされ(図13、左下)、フィルタリングされていない画像(図13、左上)よりもはるかに滑らかな結果が得られます。確率的\({\mathbf v}_{\rm max}\)ブレンディング(セクション4.2)は、この効果と互換性があります。

 また、エッジ検出器の輝度入力に最大輝度のピクセルサイズのチェッカーボードを入力することで、後処理のアンチエイリアシングによるノイズの平滑化効果を最大限に引き出すことができます。これにより、アンチエイリアシングフィルターは、すべてのモーションブラーピクセルのエッジを検出し、残留するモーションブラーサンプリングノイズを抑制することができる(図13右下)。この方式は、例えば動きのある方向にのみブラーするなど、改良の余地はありますが、最新のレンダリングパイプライン(ポストプロセスによるアンチエイリアシングが一般的)を活用して、ごくわずかなパフォーマンスコストで実現できるという大きなメリットがあります。

※図は[Guertin 2014]より引用

5 Implementation and Result

すべての結果は、Intel Core i7-3770KとNVIDIA GTX780を使用し、\(1280 \times 720\)(ただしティーポットのシーンは\(1920 \times 1080\))でライブキャプチャーしています。読者には、微細なディテールを確認するために、(高解像度の)結果をデジタルズームすることをお勧めします。パフォーマンスの結果を表1に示します。すべてのシーンで同じパラメータ設定を使用しています:\(\{N, r, \tau, \kappa, \eta, \gamma, \phi \} = \{ 35, 40, 1, 40, 0.95, 1.5, 27\}\)。TileMax、NeighborMax[MHBO12]、TileVariance(セクション4.1)のすべての中間テクスチャは、UINT8フォーマットで保存され、最近傍補間を使用してサンプリングされますが、TileVarianceだけは、残留するタイル境界のアーティファクトを除去するためにバイリニア補間が必要でした。

 ゲームエンジンなどで一般的に使用されている整数型バッファをストレージとして使用する場合、ピクセルごとの速度を適切に量子化してエンコードすることが重要であることを指摘しています。具体的には,McGuireらの実装で使用されているエンコーディング\(V[x, y] = {\mathbf v}({\mathbf p}_{x, y}) / 2r + 0.5\)では,\(x\)および\(y\)の速度成分が別々に\(\pm r\)にクランプされているため,大きな速度が4つの可能な値のうちの1つにしかならないという制限があります:\((\pm r, \pm r)\)。代わりに、\(\epsilon = 10^{-5}\)と\(E\)を秒単位の露光時間として、\([-r, r]\)の範囲に従って正規化するという、論文と同様の計算を行いました。

\begin{eqnarray}
{\rm V}[{\rm x}, {\rm y}] = \frac{{\mathbf v}({\mathbf p}_{x, y})}{2r} \times \frac{ {\rm max}({\rm min}( |{\mathbf v}({\mathbf p}_{x,y})| \times E, r), 0.5) }{ |{\mathbf v}({\mathbf p}_{x, y})| + \epsilon } + 0.5
\end{eqnarray}

 McGuireらが使用した連続深度比較関数(zCompare)を以下のように修正し、深度を意識した前景と背景のぼかしをより効果的にサポートしています:ハードコードされたシーン深度の深度遷移間隔を使用する代わりに、相対的な深度間隔を使用します。

\begin{eqnarray}
{\rm zCompare} [z_a, z_b] = {\rm min} \left( {\rm max} \left( 0, 1 – \frac{(z_a – z_b)}{{\rm min}(z_a, z_b)} \right), 1 \right)
\end{eqnarray}

ここで,\(z_a\)と\(z_b\)は両方とも深度値です。例えば、10と20のZ単位の物体を比較すると、1000と2000のZ単位の物体と同じような結果が得られるというように、シーンに依存しない方法で値を扱うことができます。これにより、任意のシーン・スケーリングに対するロバスト性を維持しながら、画面上の速度範囲の減少を補い、遠くにあるオブジェクト間をスムーズにブレンドすることができます。

 すでにいくつかのゲームエンジンで採用されているMcGuireらの単一速度実装をSousa[Sou13]が支持したことをきっかけに,McGuireらが提供したオープンソース実装を最適化し,Haltonジッタリングスキームと速度エンコーディングの両方を適用したバージョンとの比較を行いました。\({\mathbf v}_{\rm max}\)と\({\mathbf v}_{\rm c}\)の間でサンプルを分配するための分散ベースの\(\mathcal v\)メトリックは,50/50のサンプル分配などに比べてわずかに改善された結果が得られましたが,インタラクティブなアニメーション中に\(\mathcal v\)を使用することによる知覚的なメリットは見られませんでしたので,すべての結果でこの機能を無効にしました(図7を除く)。

Post-Process Depth of Field
先に、最近のゲームエンジンでよく使われているポストプロセスであるFXAAとの連携について説明しました。また、ポストプロセスの効果として被写界深度(DoF)もよく使われますが、DoFとモーションブラーのポストプロセスの組み合わせについてはあまり検討されていません。我々は、ShaderX5にあるGilhamのポストプロセスDoFアプローチを実装し[Eng06]、我々のモーションブラーフィルターとの相互作用について簡単に説明します。具体的には、2つのフィルターを適用する正しい順序はすぐにはわかりません。それは、3つの異なる色の車輪が、それぞれ異なる並進運動をしており、3つの異なる深さにあり、真ん中の緑色の車輪に焦点が当てられているというものです(図14参照)。

この違いは微妙であり、我々の実験は包括的なものではありませんが、モーションブラーの後にDoFを適用すると、ぼやけた領域のエッジが少なくなり、焦点の合った領域の特徴がより鮮明になるという(やや直感に反する)結果が得られました。モーションブラーの後にDoFを適用することで、ノイズアーティファクトをさらにぼかすことができるという利点もあります。

※図は[Guertin 2014]より引用

6 Limitations and Future Work

私たちのアプローチは多くの制限に対応していますが、今後の研究のためにいくつかの興味深い道筋が残っています。

6.1 Noise

この手法で最も多く見られるアーティファクトはノイズです。ほとんどの場合、私たちはバンディングとノイズの交換を明示的に選択しました。ここでは、本研究の範囲外ではありますが、検討に値するいくつかの可能な解決策を紹介します。

Single-velocity Fallback
図13のように,単一のコヒーレントな速度に支配された画像では,従来の手法と比較して,同等の画質を得るために約2倍のサンプル数を使用しています。この挙動を修正するには,シーン内の速度分布に応じてサンプリング方向を動的に調整するなどの方法が考えられますが,今後の課題です。タイルの分散の実験(セクション4.1)は、分散が十分に低く、2方向ではなく1方向でしかサンプリングできない状況について、アルゴリズムに情報を提供するために再利用できます。しかし、このような適応的なサンプリングは、特に中央のサンプルウェイトに予期せぬ影響を与える可能性があります:半分のサンプルが無駄になると、合計の重さは実質的に半分になりますが、それらのサンプルが無駄にならないように動的に調整されると、中央のサンプルの相対的な重みは半分になります。そのため,どのような適応方式であっても,中央の重みを調整して,全体の重みの変動を補う必要があります。

Adaptive Sampling Rate
同様に,タイルやピクセルでの速度の大きさに応じて累積サンプル数を調整すれば,動きが比較的小さい場合には合計のコストが減り,より大きな動きをオーバーサンプリングできるようになります。これにより、現在の実装では速度が大きい領域でノイズが多くなるのに対し、画像全体でノイズの量が均一になる可能性があります。ここで、パフォーマンスの観点からは、同じGPUワープ内での分岐を防ぐことが重要になります。

Filtering
ポストプロセスFXAAフィルタリングについては、セクション4.5で簡単に説明していますが、モーションブラー用に最初から設計されたポストプロセスAAフィルタ、例えば([Sou08]のように)動きの方向に再ブラーリングするフィルタを使えば、各パスのサンプリングレートを低減できる可能性があります。

6.2 Other Limitations

Acceleration to/from Rest
あまり一般的ではありませんが、カメラの露光時間が非常に長くなると、目障りな視覚的アーティファクトが現れることがあります。これは、加速中の物体が初期位置を超えてぼやけてしまうというものです。

Velocity Interpolation
モーション中のトランジションをスムーズにするために、速度を補間しています。ゆっくりとした切り替えの場合、動きとは全く関係のない方向にブラーが入るため、視覚的に気になることがあります。

Non-linear Motion
過去の研究と同様、直線的な動きを想定しています。この仮定は多くの場合有効ですが、極端な回転運動や複雑な変形(例:図15)、特に露光時間が長い場合は、アーティファクトが発生することがあります。

※図は[Guertin 2014]より引用

6.3 Future Work

Time Component
先に述べたように、我々のアルゴリズムは、フレーム間で安定しているものの、時間的な次元を明示的に扱っていません。これは、前のフレームのデータを使用して現在のフレームのノイズを減らすなど、複数の利点がありますが、予測可能な直線的なモーションパスに従わない高度なアニメーションを扱う場合には、いくつかの複雑な問題が発生します。また、時間成分を明示することで、加速度を考慮したフィルタリングが可能になり、このような状況では、ぼかし過ぎを修正することができます。

Shadows
スクリーン空間の後処理として、私たちのアルゴリズムは、シャドウイング技術やシーン内のオブジェクトとの相互作用の影響を受けません。興味深い未解決の問題は、ブロッカーや光源の動きに応じて、ぼかした影を適切に組み込むことです。

Simultaneous DoF
モーションブラーと被写界深度を1つのアルゴリズムに統合することは、新しいアイデアではなく、例えば[MESL10]などで検討されています。本研究では、被写界深度とモーションブラーの相互作用について簡単に調べていますが、両方の効果を単一のアルゴリズムに組み合わせることは試みていません。

7 Conclusion

私たちは、複雑な物体間の動きや微細なディテールを持つシーンに強い、高性能なポストプロセスモーションブラーフィルターを発表しました。このようなシーンにおいて、我々のアプローチを実証したところ、画像とアニメーションの両方で明らかな品質の向上が見られ(補足ビデオを参照)、しかも最先端の技術に比べてごくわずかなコストで実現できました。我々のアプローチは、時間的に一貫性があり、統合が容易で、一般的に使用されている他のポストプロセス効果と容易に互換性があります。

※図は[Guertin 2014]より引用

Acknowledements

和訳省略。

A Pseudocode

sOffsetはタイル参照をジッターし(ただし、対角線上のタイルになることはない)、rmixはベクトルのlerpの後に正規化を行います、normは正規化されたベクトルを返し、\(\lfloor \cdot \rfloor\)は整数成分を返す、&はビット積を表します。特に指定のない限り、McGuireら[MHBO12]の表記法/関数を使用しています。この関数は,フィルタリングされた色と,(オプションである)FXAAポストプロセスのための輝度の4つの値を返します.

※図は[Guertin 2014]より引用

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください