12月
21
前述のとおり開発環境を 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 でエンコードが遅くなっている一方でデコードが速くなっている理由はよく分かりません。逆アセンブルを眺めたら吐き出されるコードの印象が違うことは分かるのですが、最適化されまくった結果として何がどうなってるのかサッパリ分かりません。
遅くなってる部分が存在することは分かっても対処の方法が分からないのでこのままリリースかな…
VS2013版UtVideoのリリース期待してます!
パフォーマンス向上は録画で恩恵が大きいので嬉しいです。