FFT3DGPUを二重に使ってみる

AvisynthのFFT3DGPUプラグインは輝度・色差を一気にフィルタするより、別々にフィルタした方が2倍以上高速です@Core i7とNVIDIA9600GTの場合

fft3dgpu,avisynth,変換,速度などについて。

FFT3DGPUを二重に使ってみる

ビデオカードをNVIDIA 9600GTに変えてから、AvisynthのGPU 3DノイズリダクションプラグインFFT3DGPUを複数回使ってもエンコ速度が落ちない事に気が付きました。

現在私がエンコする際に使用しているスクリプトは以下

MPEG2Source("movie.d2v")
mt("LanczosResize(960,last.height)",4)
mt("LanczosResize(last.width,544)",4,splitvertical=true)
return last

これで約80FPSの変換速度が出ます。
(ちなみに Core i7 920@3.5Ghz Xvidで変換)
上記にFFT3DGPUをひとつ

FFT3DGPU(sigma=2,beta=1,plane=0,bw=32,bh=32,ow=16,oh=16,bt=3,
mode=0,sharpen=0,interlaced=false,NVPerf=false,wintype=0,precision=0)

てな具合に掛けるとGPUフィルタは律速にならず
これまた約80FPSの速度で変換可能。
ちなみに
plane=0は輝度にのみノイズリダクションを掛けるオプション。
plane=1~3は(GPU版では)色差(U/V)両方にノイズリダクションを掛けるオプション。
plane=0、1で処理速度は ほぼ同じ。
  (各種パラメータの意味が知りたい方はコチラをどうぞ≫FFT3DGPU(覚書き)

( 注意:オリジナルのFFT3Dとplaneパラメータの指定が若干異なります
 オリジナルFFT3Dのplane(default = 0)
 0 - luma(Y)
 1 - chroma U
 2 - chroma V
 3 - chroma planes U and V
 4 - both luma and chroma  )

次に

FFT3DGPU(sigma=2,beta=1,plane=4,bw=32,bh=32,ow=16,oh=16,bt=3,
mode=0,sharpen=0,interlaced=false,NVPerf=false,wintype=0,precision=0)

plane=4は輝度・色差の両方一度にノイズリダクションを掛けるオプション。
この場合は変換速度は約35FPSにガクンと落ちてしまう。

しかしである

FFT3DGPU(sigma=2,beta=1,plane=1,bw=32,bh=32,ow=16,oh=16,bt=3,
mode=0,sharpen=0,interlaced=false,NVPerf=false,wintype=0,precision=0)
FFT3DGPU(sigma=2,beta=1,plane=0,bw=32,bh=32,ow=16,oh=16,bt=3,
mode=0,sharpen=0,interlaced=false,NVPerf=false,wintype=0,precision=0)

上記の様に色差、輝度を別々にノイズリダクションを掛けてやれば
変換速度は約75FPSと殆ど低下しない。
960X544サイズでノイズリダクションかけて75FPSで変換できて超満足。
9600GTバンジャーイ∩( ・ω・)∩
Core i7バンジャーイ∩( ・ω・)∩

やはりマルチスレッドCPUでエンコする場合は、重いフィルタを一つだけチョイスして使用するよりも、軽いフィルタを複数使って処理したほうが高速に変換できるっぽい。
それが例えGPUプラグインでも。

Direct Xで相性アリ

ちなみに Windows XP Home SP3のインストールCDに付属したDirectX9.0cとNVIDIA 9600GT(ドライバ182.06)の組み合わせでは

FFT3DGPU(sigma=2,beta=1,plane=0,bw=32,bh=32,ow=16,oh=16,bt=3,
mode=0,sharpen=0,interlaced=false,NVPerf=false,wintype=0,precision=0)
FFT3DGPU(sigma=2,beta=1,plane=1,bw=32,bh=32,ow=16,oh=16,bt=3,
mode=0,sharpen=0,interlaced=false,NVPerf=false,wintype=0,precision=0)

の順でフィルタを掛けないとエラーが出ましたが、DirectX9.0c最新版
DirectX End-User Runtimes (November 2008)
▲上記をインストールした所

FFT3DGPU(sigma=2,beta=1,plane=1,bw=32,bh=32,ow=16,oh=16,bt=3,
mode=0,sharpen=0,interlaced=false,NVPerf=false,wintype=0,precision=0)
FFT3DGPU(sigma=2,beta=1,plane=0,bw=32,bh=32,ow=16,oh=16,bt=3,
mode=0,sharpen=0,interlaced=false,NVPerf=false,wintype=0,precision=0)

こんな感じに色差と輝度のフィルタの順番を逆にしないとエラーが出るようになりました。

新しいDirectXで_GPU25動いた

で、DirectXを上記最新版にした所、ここまで満足に作動してくれなかった_GPU25がキチンと作動し始めました。
NVIDIA系でもDirectXを最新版にすれば動くんですね。。。DirectXは9.0cならば最新と思っていましたが、何やら色々足りないDLLがあったみたいです。≫必須DLL
以前のPC&ビデオカード(6600GT)では問題なく動いていたんですが。。。なんでだろ。

ちなみに_GPU25付属のLanczosResizeで1440≫1280≫940の二段リサイズは60FPS。
残念ながらMTプラグイン使用したLanczosResizeよりチョット遅め。
Convolution3dは70FPS。FFT3DGPUよりやや落ちるものの十分高速。
そしてオリジナルConvolution3dとやや画質が異なるものの、これまた十分使える画質。
ガッツリ圧縮掛けたい時は、FFT3DGPUと_GPU25 Convolution3dの二重掛けで行こうと思います。



次のページへ
前のページへ
FFT3DGPUを二重に使ってみる
TOPページへ

コメント(多忙中のため休止中) C[3] T[0]

人気ブログランキング
このブログを応援する・このブログに寄付する
mona:MEmMcKYAWfdX1r3XkoWBoweJTSjtDgdqRo
btc :1342ndtQDJ3NKkTw1BfP8AD4xMy8NJ4kWb


広告&サイト内おすすめページ

 

関連記事(ぜんぶ見る>> AviSynth | CUDA・GPGPU
AviSynth+x264でブルーレイ素材を(ブルーレイ形式のまま)圧縮変換する方法
Premiere ProやAviSynthでスーパーホワイト付き動画を出力してみる
Premiere Proで分割出力した動画をAviSynthで結合(音ズレ対策&その他)
AVC/H.264やTSファイルをCUDAでデコード:DG NV tools (DGIndexNV/DGDecNV)

※コメント欄の一時休止中につき、Monacoin企画も休止中です。
ドスパラ amazon
次のページへ
前のページへ

更新日 2011/10/01(2009年03月公開)このページはリンクフリーです

カテゴリ(メニュー)
このページ

Amazon

Amazon 日替わりタイムセール
サイト内検索
Special Thanks (TOP15)

Amazon
リンク集
楽天市場/ブログランキング
a8 a8