GPUプラグインとは、文字通りGPU(グラフィックボード上に搭載された画像専用の演算処理装置)を使用するプラグインで、AviSynthで各種フィルタ・プラグインを作動させる際にCPUの処理をGPUに肩代わりして貰って、その演算の負担を軽減、処理速度アップを目的とするものです。

ノイズ低減処理フィルタを中心に幾つかのGPUプラグインが発表されています。
これらはAviSynthWikiのGPUプラグイン 項目に簡潔にまとめられ、解説されています。

 

GPUプラグインは、PCの環境、グラフィックボードの種類、ドライバのバージョン等で大きく貢献してくれる事もあれば、全く使えなかったり、作動してもCPUで処理するよりも遅かったりと、なかなか一筋縄では行きません。

本日、現在のPC環境になってから初めて(既に3年以上全く試してない (^_^;))、 AviSynthのGPUプラグインをいろいろ試してみました。

今回試したGPUプラグイン

今回試したGPUプラグインは以下3種。
1.オリジナルのthejam79 氏作成のプラグンGPU
2.gpu25clone氏が修正、機能追加したプラグイン_GPU25
3.tsp, Fizick氏作成のフーリエ変換を用いた高周波成分除去プラグイン fft3dgpu

 

作動

●数年前に使用していたPC(Celeron2.5Ghz、Intel 845、RADEON 8500LE)
GPUオリジナル:非常に不安定。クラッシュすると作成したavi動画も死亡。
_GPU25:未調査(つうか、当時なかったよね?)
fft3dgpu:未調査(つうか、当時なかったよね?)。

●現在のPC(Athlon64X2 + NVIDIA nForce4 Ultra + GeForce6600GT)
GPUオリジナル:時々エラー出るも作動
     エラーは読み込み直後か、エンコ終了時に発生するのみ
     エラーが出ても作成したaviは視聴可能。
     ギリギリ使用できると判断。
_GPU25:作動せず。
fft3dgpu:作動する。デフォ設定でエラー発生なし。
     設定するパラメータによってはエラー発生、作動せず。

以前のPCではGPUが使えなかったのに、現在の環境では使えてます。
しかし修正バージョンの_GPU25は作動せず。GPUが使えない人用なのかな?

 

以下、いずれも現在の当環境(Athlon64X2 + NVIDIA nForce4 Ultra +GeForce6600GT)でのテスト結果。環境が異なると結果は大きく異なると思います。

速度

●数年前に使用していたPC(Celeron2.5Ghz、Intel 845、RADEON 8500LE)
GPUオリジナル:CPUに処理させるより若干速いが、安定性考えるとイラネ

●現在のPC(Athlon64X2 + NVIDIA nForce4 Ultra + GeForce6600GT)
GPUオリジナル:設定次第で爆速
_GPU25:作動せず
fft3dgpu:設定次第で爆速

プラグインGPUの詳細

試したのは以下の3つのフィルタ。

GPU_IT
ITよりも若干高速に作動。
GPU_LanczosResize
LanczosResizeより若干高速に作動。
GPU_Convolution3d
  1. 設定「movieHQ」で普通のConvolution3dより150%程度高速に作動。
  2. 設定「movieLQ」では普通のConvolution3dと同等の速度。
    それ以上フィルタを重くするとConvolution3dより遅くなる傾向あり。
  3. (matrix=0, ythresh=4, cthresh=4, t_ythresh=4,t_cthresh=4, influence=3)
    (0,4,4,4,4,3,0)
    など数値入力するとエラーが出てファイルが開けない。

プラグインfft3dgpuの詳細

GPU_Convolution3dと併用可能。これは嬉しいかも。

fft3dgpu()
  1. デフォルト設定だと高周波成分除去フィルタとしては非常に高速。GPU_Convolution3dと併用してもほとんど律速とならない。
  2. デフォルト設定ではluma(輝度)のみのノイズ除去。
  3. 現在色々設定を弄っているが、デフォ以外の設定では激重(デフォの30%程度の速度に)。現在色々調整中
  4. フィルタは薄目にかけないとかなりノッペリ画像&激重に。

その他

GPU使用時のクロック
▲RivaTunerでGPUの作動クロックを確認。
GPUプラグイン作動中は「Performance3D」と認識され、しっかりパワーアップ。
3時間強エンコしてもGPU温度は75度程度まで。
安定作動。

こうなると、現時点で一番の律速はクロスカラー除去に使用しているDeDot。
DeDotの使用をやめると約30%高速化する。
現在の環境では一つのフィルタでしっかりノイズ除去するより、複数のフィルタをそれぞれ軽くかける方が遥かに高速になるっぽい。これがデュアルコアの恩恵なのかも。
GPU_Convolution3d + fft3dgpu + TemporalCleaner(VDMフィルタ)でそれなりにクロスカラーも消えるので、しばらくDeDotの使用を辞めてみようかと思う。

上手く設定出来れば同画質で1.5倍のエンコ速度を手に入れるか、同じエンコ速度で約20%動画サイズを縮める事が出来そう(その分ノッペリするけど)