64bit版Windows7で、AviSynthは無事作動するのか?
というのが今回のお話。

Windows7 RC(x64)でも無事にAviSynthは作動する所までは2ヶ月前に確認していたのですが、じっくり使ってみると「特定のバックエンドで使用できない」、「特定のプラグインの組み合わせで変換速度が落ちるかも?」という結果になりました(^_^;

AviSynth自体が作動しない場合もアリ?

まず気が付いた事として、プレーヤーや動画編集ソフト(バックエンド側)がx64だとx86のAviSynthは読み込めないっぽい。x64WindowsでAviSynthを作動させるにはバックエンドも32bitアプリを使用しないとダメっぽいです。(ちょっと確信無し)

AviSynth単体で見ると、ウチの環境(Windows 7RC64bit)では、
1.読み込み・作動に関しては全く問題ない。
2.愛用しているプラグインは全部作動する。

3.プラグインの一部がWindows XP(x86)より低速で困る。
と云うのが現状。

ウチでは無事作動しているけど、モノによっては動かないスクリプトやプラグインが出るかもしれない。しばらくは情報が不足しそう。

MTプラグインはx64に不向き?

32bit XP時代に色々煮詰めたお気に入り設定、x64 Windows7では遅くなるかも(´Д`;)
以下、同条件でエンコした速度比較。

AVSスクリプトはこんな感じ
MPEG2Source("F:\test.d2v")
mt("""IT(fps = 24, ref = "TOP", blend = false)""",4,2)
mt("BicubicResize(720,last.height)",4)
mt("BicubicResize(last.width,540)",4,splitvertical=true)
#IT(fps = 24, ref = "TOP", blend = false) #MT使わない場合用
#BicubicResize(720,540) #MT使わない場合用
    GPU_Begin
    GPU_Convolution3d(preset="movieHQ")
    GPU_End()
FFT3DGPU (sigma=1.5,beta=1,plane=0,bw=32,bh=32,ow=16,oh=16,bt=3,mode=1, sharpen=0,interlaced=false,NVPerf=false,wintype=2,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)
#GPUフィルタ、一つでも外すとx64でもまぁ高速。
#x64で3重掛けは遅い。
return last
これを「MTあり・なし」や「GPUフィルタあり・なし」で比較。
変換後のサイズフィルタ変換速度(FPS)CPU使用率(%)

x86 XPx64Win7x86 XPx64Win7
よく使う設定1
640x400
MTでマルチスレッド化
  →bicubic
_GPU25
FFTGPUx2
平均75平均 55
遅くなった
GPUフィルタを
一つ減らすと
65FPS
50~10088~100
よく使う設定2
720x540
MTでマルチスレッド化
  →ITでテレシネ
  →bicubic
60~110
(平均78)
40~65
(平均55)
遅くなった
50~10088~100
リサイズテスト1
672x384
bicubicのみMTなし80~9065~75
少し遅くなった
35~4580~100
リサイズテスト2
960x544
MTでマルチスレッド
  →LanczosResize
平均80平均72
少し遅くなった
70~8085~100
テレシネテスト1
672x684
ITでテレシネ平均50平均50
変化無し
35~6085~100
テレシネテスト1
672x684
MTでマルチスレッド化
  →ITでテレシネ
60~110
平均78
50~80
(平均60)
遅くなった
50~10085~100
素エンコなし20~3545~55
速くなった
35~6055~75

ちなみにソースは全部実写地デジ素材(映画)
1440x1080、BonTsDeMuxで映像のみにDeMux、DGIndexで.d2v化したものを使用。
エンコードにはVirtualDub+Xvidを使用。
Core i7 920 3.5GHz(HT OFF)メモリ9GB、GPU NVIDIA9600GT
AviSynth 2.5.8使用。

う~む。
  1.素エンコならばx64版Windowsを使った方が速そう。
  2.マルチスレッド化するMTやテレシネフィルタITを使うとx64は遅い。
  3.GPUフィルタはほぼ変わらないが、x64版がやや遅い。
  4.GPUフィルタ、3重に掛けるとx64版はかなりの速度低下
  5.でもCPU使用率はx64の方が高い

64bit GPUドライバはまだこれから?

GPUフィルタに関してはx86版のドライバがかなり煮詰まっていて優秀なのだと思うけど、それ以外の結果は。。。x64版Windows7の方がCPU使用率は高いけどエンコ速度は遅いという結果に。

参考情報:Jw_cad 情報交換室-その3(リンク切れ)
http://hpcgi2.nifty.com/jw_cad/c-board.cgi?cmd=one;no=15609;id=003
Windows7も、x64ドライバも、アプリケーションの対応も、マチマチでこれから。
まぁのんびり待ちましょうってヤツですね。

Windows7(x64)とGPUプラグイン

ちなみに_GPU25を作動させるにはd3d9.dll、d3dx9_36.dllが必要。
OSに付属したDirectXには入っていません。
ダウンロードの詳細 : DirectX End-User Runtime
▲上記をインストールして_GPU25が使用可能になりました。
Windows7ってDirectX10か11だったよね・・・?と疑問を持ちつつも9.26.1590をインストールしました(^_^;
自分用のメモリンク:ASCII.jp:DirectX 10.1をベースにするWindows 7 |あなたの知らないWindows

Doom9内での情報

Doom9のフォーラム内では専用のスレッドがあり、それなりに情報交換はされているが、イマイチ欲しい情報はありませんでした。

Avisynth doesn't work with Windows 7?[Archive] - Doom9's Forum
▲上記リンクから気になるモノをいくつか抜粋

  • Windows7 βでAviSynth動いてる人いる?ウチでは動かない
  • RCでたぞ。RCで作動してるぞー
  • x64版では一部作動しないよ
  • ウチでは(まだ)正常作動してるよ
  • 7 RTM(x64)で*.d2vファイル読めないよー。

単純な読めた・読めない、作動する・しないの報告が殆ど。
先に書いた通りバックエンドにx64アプリを使っているんじゃないかと(´・ω・`)
全部にじっくり目を通すのは面倒なので流し読みですが、ひょっとするとx64版では一部作動しないかも。

エンコ目的なら、急いでx64版やWindows 7を欲しがる必要無いのかも

PCの利用が動画エンコがメインの場合は、急いで64bit版OSにしたり、Windows Vista/7にする必要は無いのかも。特に、殆どのアプリが32bit版である現在、下手にOSを64bit化するとパフォーマンスが落ちる可能性がありそうです。

私の場合、もう一つの趣味の3DCGソフトが64bit化する事で2倍の性能になりますんで32bit OSに戻るつもりはありませんが。。。

Windows7 RCをインストールしてからしばらくの間は、OSの基本的な部分を弄ったり、動かなくなったツールの代替品を探したり、ドライバ探ししたり、、、と動画エンコまで手を回さなかったけど、ようやくその辺に手が伸びて来た所。

まだスタートしたばかりなので、意外とアッサリと現在の環境向きのエンコが見つかるかもしれませんが、撮り貯めた録画ファイルをエンコしながら、その辺もゆっくり進めて参ります(´∀`)ノ