ホーム > AviUtlプラグイン > ResizeFilterを更新(Ver.101227)

ResizeFilterを更新(Ver.101227)

変更点
・YUY2フィルタモードの処理を修正

通常モードと同じように高速化してみたけど効果は無いかもしれません。

それとTSUKUMOやソフマップのリンクを踏んでCPU&マザーボードを購入してくれる人が現れるのを期待して、リサイズフィルタのAVX版とNL-Means LightのAVX版を少し早めに作ってみました(個別にDL数を把握したいので同梱はしません)

avxfilter.zip

一応IntelR Software Development Emulator で動作確認はしているのですが、速度的な事はわかりません(ツールの使い方がわかってないだけかも)
特にリサイズフィルタの方はあまり期待できないと思うのだけど、これで有意な差が出るようなら既存のSSE2整数のコードもAVXでそれなりの効果が期待出来るという事になると思います。

[追記 1/17]
NL-Meansの方に不具合があったので修正。
nlmeans_light_avx_110117.zip
「ガウシン重み」のチェックボックスがありませんが、SSE版で「ガウシン重み」にチェックを入れた場合と同じ動作になります。

カテゴリー: AviUtlプラグイン タグ:
  1. TAMA
    2011 年 1 月 17 日 18:27 | #1

    ごめんなさい。こっちに転載します。
    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です。

  2. admin
    2011 年 1 月 17 日 21:04 | #2

    ご報告ありがとうございます。

    一番最後にUIと日付を変更したのですが、動作テストしないままアップしていたようです。

  3. TAMA
    2011 年 1 月 17 日 21:23 | #3

    修正版アップありがとうございます。今度は動作しました。
    地デジソース47秒
    ResizeFilter(SSE2に設定)1280*720
    NL-MeansLight 37.01fps
    NL-Means_light_AVX_110117 37.21fps
    となりました。長いソ-スならもう少し差が出るかもしれませんね。
    @admin

  4. TAMA
    2011 年 1 月 17 日 22:04 | #4

    ResizeFilterのテスト終了しました
    地デジソース約47分
    x264でMP4に変換、音声なし
    1280*720にリサイズ
    ResizeFilterSSE2(輝度、色差Lanczos,半径3) 44.09FPS
    ResizeFilterAVX(輝度、色差Lanczos,半径3) 46.82FPS
    となりました。

    nlmeans_light_avxの詳細テストは明日にできればと思います。

  5. nilpo
    2011 年 1 月 18 日 00:02 | #5

    検証ありがとうございます。

    ResizeFilterでこれだけ差がでるのはちょっと信じ難いというか、ちゃんと出力されているのか心配になるぐらいです。
    NL-Meansの方は37.01fpsと44.09fpsを元に大雑把に計算すると、40fps前後の期待値になるので思ったような効果が得られていないようです。
    出力結果が同じになる事は一応確認しているのですが、何か大きなミスをしているのかもしれません。

    わざわざ長いソースでテストしていただいた後で申し訳ないのですが、テストは数十秒のソースでも十分ですよ。

  6. TAMA
    2011 年 1 月 18 日 00:49 | #6

    短くてもいいとのことですので、早速やってみました
    地デジソース約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

  7. nilpo
    2011 年 1 月 18 日 21:42 | #7

    NL-MeansLight,ResizeFilterSSE2:37.40fps
    NL-MeansLight,ResizeFilterAVX:37.60fps
    計測誤差と言ってしまってもいいぐらいの差ですが、ResizeFilterの処理が全体に占める割合が低いので5%速くなったところでこんな物だと思います。
    (実際には全く効果なしで本当に計測誤差の可能性もありますが)

    NL-MeansLightのAVX版の方は何か問題があるはずなのでソースを見直しているのですが、今のところおかしなところは見つかっていません。
    動作環境を用意してからでないと細かい部分を煮詰める事は出来ないとは思ってましたが、この段階で躓くというのは想定外でした。

    あと、テスト環境側に問題があるとすればフィルタの処理順ぐらいなので、念のためNL-Meansが同条件で処理されているかご確認ください。

  8. TAMA
    2011 年 1 月 18 日 22:18 | #8

    NL-MeansLightの順序ですが、NL-MeansLightが3番目NL-MeansLightAVXが2番目です。
    ResizeFilterが1番目です。
    尚、47分のソースでは
    ResizeFilterAVX(輝度、色差Lanczos,半径3)
     *x264をx64版に変更
    SSE 39.31FPS
    AVX 39.62FPS
    となりました。
    @nilpo

  9. TAMA
    2011 年 1 月 18 日 23:19 | #9

    すいません、NL-MeansLightが抜けてました。
    NL-MeansLight SSE 39.31FPS
    NL-MeansLight AVX 39.62FPS
    です。

  10. nilpo
    2011 年 1 月 18 日 23:58 | #10

    フィルタの処理順も問題ありませんし、やはりプログラム側の問題みたいですね。

    AVXを使うとHTの効きが悪くなってパフォーマンスが上がらない、
    もしくはx264のSIMD整数のスレッドと256bitAVXのスレッドが同じコアで動く状況が良くない、みたいな理由も考えてみたのですが
    2500と2600が同じようにAVXで速くなっているベンチ結果があるのでこれも違うような気がします。

    また何か気が付いたら修正してみますが、いろいろお手数をおかけしたのに良い結果が出せなくて申し訳ありませんでした。

  11. TAMA
    2011 年 1 月 19 日 00:02 | #11

    いえいえ、こちらこそ。お礼を申し上げます。

  1. 2010 年 12 月 28 日 13:55 | #1