ResizeFilterを更新(Ver.101227)
変更点
・YUY2フィルタモードの処理を修正
通常モードと同じように高速化してみたけど効果は無いかもしれません。
それとTSUKUMOやソフマップのリンクを踏んでCPU&マザーボードを購入してくれる人が現れるのを期待して、リサイズフィルタのAVX版とNL-Means LightのAVX版を少し早めに作ってみました(個別にDL数を把握したいので同梱はしません)
一応IntelR Software Development Emulator で動作確認はしているのですが、速度的な事はわかりません(ツールの使い方がわかってないだけかも)
特にリサイズフィルタの方はあまり期待できないと思うのだけど、これで有意な差が出るようなら既存のSSE2整数のコードもAVXでそれなりの効果が期待出来るという事になると思います。
[追記 1/17]
NL-Meansの方に不具合があったので修正。
nlmeans_light_avx_110117.zip
「ガウシン重み」のチェックボックスがありませんが、SSE版で「ガウシン重み」にチェックを入れた場合と同じ動作になります。
カテゴリー: AviUtlプラグイン



ごめんなさい。こっちに転載します。
Win7SP1 64Bit Pro
i7 2600K
M/B P8H67-V
MEM16GB
0.99i8
nlmeans_light_avxをAviUtlのフォルダに入れてAviUtlを起動すると、AviUtlが強制終了してしまいます。
ResizeFilter_AVX版は問題なく動作します。
入っているプラグインは
m2v.aui、mp4export.auf、mp4input.aui、ResizeFilter.auf、x264guiEx.auoです。
ご報告ありがとうございます。
一番最後にUIと日付を変更したのですが、動作テストしないままアップしていたようです。
修正版アップありがとうございます。今度は動作しました。
地デジソース47秒
ResizeFilter(SSE2に設定)1280*720
NL-MeansLight 37.01fps
NL-Means_light_AVX_110117 37.21fps
となりました。長いソ-スならもう少し差が出るかもしれませんね。
@admin
ResizeFilterのテスト終了しました
地デジソース約47分
x264でMP4に変換、音声なし
1280*720にリサイズ
ResizeFilterSSE2(輝度、色差Lanczos,半径3) 44.09FPS
ResizeFilterAVX(輝度、色差Lanczos,半径3) 46.82FPS
となりました。
nlmeans_light_avxの詳細テストは明日にできればと思います。
検証ありがとうございます。
ResizeFilterでこれだけ差がでるのはちょっと信じ難いというか、ちゃんと出力されているのか心配になるぐらいです。
NL-Meansの方は37.01fpsと44.09fpsを元に大雑把に計算すると、40fps前後の期待値になるので思ったような効果が得られていないようです。
出力結果が同じになる事は一応確認しているのですが、何か大きなミスをしているのかもしれません。
わざわざ長いソースでテストしていただいた後で申し訳ないのですが、テストは数十秒のソースでも十分ですよ。
短くてもいいとのことですので、早速やってみました
地デジソース約1分30秒
x264でMP4に変換、音声なし
1280*720にリサイズ
ResizeFilterSSE2(輝度、色差Lanczos,半径3)
NL-MeansLight 37.40fps
NL-Means_light_AVX_110117 37.92fps
ResizeFilterAVX(輝度、色差Lanczos,半径3)
NL-MeansLight 37.60fps
NL-Means_light_AVX_110117 36.75fps
こんな感じです。
@nilpo
NL-MeansLight,ResizeFilterSSE2:37.40fps
NL-MeansLight,ResizeFilterAVX:37.60fps
計測誤差と言ってしまってもいいぐらいの差ですが、ResizeFilterの処理が全体に占める割合が低いので5%速くなったところでこんな物だと思います。
(実際には全く効果なしで本当に計測誤差の可能性もありますが)
NL-MeansLightのAVX版の方は何か問題があるはずなのでソースを見直しているのですが、今のところおかしなところは見つかっていません。
動作環境を用意してからでないと細かい部分を煮詰める事は出来ないとは思ってましたが、この段階で躓くというのは想定外でした。
あと、テスト環境側に問題があるとすればフィルタの処理順ぐらいなので、念のためNL-Meansが同条件で処理されているかご確認ください。
NL-MeansLightの順序ですが、NL-MeansLightが3番目NL-MeansLightAVXが2番目です。
ResizeFilterが1番目です。
尚、47分のソースでは
ResizeFilterAVX(輝度、色差Lanczos,半径3)
*x264をx64版に変更
SSE 39.31FPS
AVX 39.62FPS
となりました。
@nilpo
すいません、NL-MeansLightが抜けてました。
NL-MeansLight SSE 39.31FPS
NL-MeansLight AVX 39.62FPS
です。
フィルタの処理順も問題ありませんし、やはりプログラム側の問題みたいですね。
AVXを使うとHTの効きが悪くなってパフォーマンスが上がらない、
もしくはx264のSIMD整数のスレッドと256bitAVXのスレッドが同じコアで動く状況が良くない、みたいな理由も考えてみたのですが
2500と2600が同じようにAVXで速くなっているベンチ結果があるのでこれも違うような気がします。
また何か気が付いたら修正してみますが、いろいろお手数をおかけしたのに良い結果が出せなくて申し訳ありませんでした。
いえいえ、こちらこそ。お礼を申し上げます。