先日、低周波成分保護フィルタとスムージングフィルタを組み合わせた「疑似モスキートNRフィルタ」を紹介しましたが、従来よりあった本家スムージングフィルタにSIMD命令(SSE2やSSSE3)で改良を施した「スムージングフィルタSIMD」が一週間前、BeanのAviUtlプラグイン置き場さんで公開されました。
使用してみたところ、体感できるほど処理は速くなっているのですが、実際にどの程度高速化したのか明確な数値を採るため処理ベンチマークを行ってみました。
なお、この入出力処理における基本スループット(フィルタ全OFF。ストリームコピーではない)は約336fpsです。
Memory : DDR3-1333 4GB×2(8GB)
OS : Windows7 Professional 64bit
AviUtl 0.99j
スムージングフィルタVer0.3(本家)
スムージングフィルタSIMD v0.3b(SSE2/SSSE3版同梱)
テスト結果は以下のとおりです。
【テスト結果】スムージングフィルタのみ
処理に費やした時間から速度をフレームレートとして算出。本家スムージングフィルタは約34fps程ですが、スムージングフィルタSIMDはSSE2/SSSE3版双方ともに80fpsを超える圧倒的な処理速度を見せつけました。この速度差は、本家フィルタの約2.5倍前後に達します。
また、CPUのロードアベレージも本家・SIMD版ともに殆ど同じことから、積極的にSIMD化した効果が出ているといえそうです。
スムージングフィルタ(本家) | 34.453fps |
スムージングフィルタSIMD(SSE2) | 83.682fps |
スムージングフィルタSIMD(SSSE3) | 86.207fps |
高速 → |
なお、近日リリース予定のコードネームBulldozerコアプロセッサ(FX-8150など)はSSSE3/SSE4.x/AVX命令対応となっています。
【テスト結果】スムージングフィルタ+低周波成分保護フィルタ
低周波成分保護フィルタの処理が入るため、フィルタ単体よりも速度は低下しますが、それでも本家フィルタのみで処理をした場合の2倍近くも速く、疑似モスキートNRとしてフィルタリングしてもあまり重く感じないレベルに改善されています。
スムージングフィルタ(本家) | 29.585fps |
スムージングフィルタSIMD(SSE2) | 60.150fps |
スムージングフィルタSIMD(SSSE3) | 61.924fps |
高速 → |
スムージングフィルタSIMD(BeanのAviUtlプラグイン置き場)
低周波成分保護フィルタ (スキマ産業)
初めまして、動画編集の勉強中にここにたどり着いた者です。
今回の記事についてではなく、前サイトの09/06/04について質問があるのですが、ログの方にはコメント出来ないのでここに書きました。
場違いでしたら削除をお願いします。
「◇C.YUY2ソース(BT.709)→AviUtlのBT.709色域入力→AviUtlのBT.601色域出力→YUY2(BT.601)保存」についてなのですが、これはリサイズして縦719以下にする場合は問題ないのでしょうか?(調べたところSD解像度ではBT.601を使うとあったため)
それとも、縦719以下にリサイズするにしてもソースがBT.709の場合は「◇B.YUY2ソース(BT.709)→AviUtlのBT.709色域入力→AviUtlのBT.709色域出力→YUY2(BT.709)保存」が正解なのでしょうか?
色域について調べてもいまいち理解できないところがあり、質問させていただきました。
もしよろしければお答えをお願いします。
勉強中さんはじめまして。
以前の記事にコメント欄がないのはこちらの不備ですので、ここでも結構です。
AviUtlの色域入力についてですが
・「Aviutlの入力色域は入力ソースの色域を指定」
・「AviUtlの出力色域は出力ファイル(映像)の色域を指定」
と分けて考えると良いかもしれません。
例えば入力ソースがBT.709であれば、AviUtlの入力色域もBT.709にします。このとき、出力解像度を意識する必要はまったくありません。
出力色域は、一部アプリケーションが縦720以上でBT.709、縦719以下でBT.601判定する点を考慮し──
・出力解像度が縦719以下(SD映像など)であれば「AviUtlの出力色域をBT.601」
・出力解像度が縦720以上であれば「AviUtlの出力色域をBT.709」
にセットしておくのが無難でしょうか。
勉強中さんの質問からすると、どうやら縦719以下(SDクラス)の解像度で出力されるようですので、AviUtlの設定は入力BT.709、出力BT.601で良いかと思われます。
———-
ここからは補足ですので読み飛ばしていただいて結構ですが、色域は解像度で決められているわけでないため、HD映像ソースだからBT.709、SD映像ソースだからBT.601と決めつけられない部分があります(ややこしいのですが)。
日本の地デジ放送についても解像度に関係なくBT.709であったり(HDだけでなくSD送信(*1)もBT.709)、ゲーム等の映像をPV3やPV4でキャプチャした映像は解像度に関係なくBT.601になります。
この辺りは、放送規格(ARIB)やコーデックの仕様を把握しておくことで対処できますので、勉強中さんがご自身で「どういう機器(またはコーデック)でどの映像を扱っているのか」という点さえ把握されていれば問題ないと思います。
不明な点がありましたら、遠慮無くご質問ください~。
(*1)
ARIB STD-B32 2.5版 第1部-第5章(5.2)「低解像度映像サービス6における映像符号化パラメータの制約条件」より
http://www.arib.or.jp/english/html/overview/doc/2-STD-B32v2_5.pdf
わかりやすい解答ありがとうございます。
補足にある地デジからのエンコで悩んでおりました。
動画関連でも特に色調空間(と言うか色の扱い全部)について知識不足でして、現在勉強中です。
POPさんの書く記事は全体的にわかりやすくてすごく助かっています。
今の私には少しレベルが高いことが多いですが…
それでは、重ねてですがありがとうございました。
これからの記事も楽しみにしています。