前述のとおり開発環境を Visual Studio 2013 に移行したわけですが、せっかくなのでざっくりとベンチマークを取って比較してみます。Ut Video Codec Suite は主要部分はほぼアセンブラ化されているためコンパイラを変えても影響はありませんが、アセンブラ化されていない ULY0/ULH0 での RGB との色空間変換と UQY2 でのほとんどの処理でどう変化するかが気になるところです。

上段がエンコード、下段がデコードの、かかった時間です。

FourCC ソース VS2013 VS2005
ULY0 crowd_run
RGB24
x86 23.1
28.9
30.1
47.9
x64 18.7
26.4
28.4
36.9
UQY2 ろんず氏に
作ってもらった
v210
x86 29.2
32.8
23.9
43.5
x64 22.0
29.9
22.8
29.2

おやー?

ULY0 の方がかなり速くなっているのは、色空間変換での fp 演算の最適化(レジスタのやりくり?)がより賢くなったから、と説明できそうです。(検証してませんが)

UQY2 の x86 でエンコードが遅くなっている一方でデコードが速くなっている理由はよく分かりません。逆アセンブルを眺めたら吐き出されるコードの印象が違うことは分かるのですが、最適化されまくった結果として何がどうなってるのかサッパリ分かりません。

遅くなってる部分が存在することは分かっても対処の方法が分からないのでこのままリリースかな…

Trackback

only 1 comment untill now

  1. 通りすがり @ 2014-12-29 13:05

    VS2013版UtVideoのリリース期待してます!

    パフォーマンス向上は録画で恩恵が大きいので嬉しいです。

Add your comment now