64bit版 AMVビデオデコーダー ベンチマーク

【ベンチマークソフト】
いつもであればコーデックのベンチマークの場合、梅澤さんのvctestを使うのですが、今回はデコーダーのみなのでvctestが使えません。なのでデコーダーだけテストするベンチマークソフトを作成しデコーダーのアーカイブに同梱してあります。

32bit版のデコーダーをテストするときは
DecBench86.exe [テストしたいコーデックでエンコードしたAVIファイル]

64bit版のデコーダーをテストするときは
DecBench64.exe [テストしたいコーデックでエンコードしたAVIファイル]


それぞれアマレコTVまたはAviUtlを使ってテストしたいコーデックでエンコードしたAVIファイルをフルパスで指定して実行すると次のような結果が表示されます。

結果
File          : C:\bin\sample_amv2mt_y2.avi
Total         : 362frame,  Total decode time 61.668ms
Codec info    : Amv2mtDecoder64 ( AMV2 MT Video Decoder x64 Ver2.20i )
Process       : x64
Buff align    : 0x00000067f97d7400 (128 Byte aligned)
Decode format : YUY2
Decode time   : Min= 0.153ms
                Max= 0.664ms
                Ave= 0.170ms (5870.168fps)

「Process」は64bitで処理した場合"x64"、32bitで処理した場合"x86"と表示されます。
「Buff align」はデコード結果を書き込むフレームバッファの先頭アドレスです。
通常128Byteの境界に合わせるので効率のいいメモリアクセスができます。
「Decode format」はデコード結果のフォーマットです。通常YUY2でデコードします。デコーダーがYUY2に対応していない場合はRGB 32bitでデコードします。それでもダメな場合はエラーとなります。
「Decode time」は1フレームあたりのデコード処理にかかった時間です。ファイル処理の時間は含まれません。

なお、"DecBench86.exe /h"でヘルプを表示します。




【簡単なテスト】
AMV2MTの「Y2:標準可逆」設定で作成したサンプル動画(sample_amv2mt_y2.avi)を同梱してあるので
DecBench86.exe フルパス\sample_amv2mt_y2.avi
DecBench64.exe フルパス\sample_amv2mt_y2.avi

として32bit版と64bit版のテストをすると次のような結果(表1)になります。
この場合、32bit版より64bit版は約25%高速であることがわかります。

表1 AMV2MT Ver2.20i 1スレッド 1コア
設定32bit64bit64bit処理性能
時間FPS時間FPS
Y20.21 ms4601 fps0.17 ms5771 fps125%
※ 「64bit処理性能」は32bitデコーダーに対する64bitデコーダーの処理性能です。125%の場合、64bit版は32bit版より25%高速です。



【実践的なテスト】
サンプル動画は画像サイズが320x240と小さいため、より実践的なテストとして 2012年9月に行った以前のテスト とできるだけ同じ条件で以下のベンチマークテストを行いました。

【測定条件】
ベンチマークはHD(1280x720)のビデオキャプチャ(実写)を想定しています。
動画ソースはマイクロソフトのサイトからダウンロードしたWMV形式のファイルをAviUtlと各コーデックを使って変換したものを使います。 (2009年の「動きの激しい動画」と同じになります)
測定はDecBench86.exeおよびDecBench64.exeを使ってYUY2にデコードした際のデコード時間(復元にかかった時間)を測定します。

動画(動きの激しい動画)
タイトルMystery of the Nile
情報1280*720、2082frames、1分26秒
備考AviUtlと各コーデックを使ってエンコード

パソコンのスペック
OSWindows7 x64 Professional SP1
CPUIntel(R) Core(TM) i5-3470S CPU @ 2.90GHz Ivy Bridge
MBASRock H77 Pro4-M (Intel H77)
MemoryDDR3 1600 8GB(4GBx2 Dual Cannel)read=23.7GB/s write=12.2GB/s
SoftwareDecBench86.exe
DecBench64.exe
備考CPUは4コア、マルチスレッドテクノロジーには対応していません。動作クロックを2.9GHz(定格)で固定し、省電力設定およびTurbo BoostはBIOSで無効化、動作クロックがテスト中に変動しないようにしています。


【結果】
表2 AMV2MT Ver2.20i 1スレッド 1コア
設定32bit64bit64bit処理性能
時間FPS時間FPS
Y10.97 ms1029 fps0.71 ms1405 fps 136%
Y22.47 ms404 fps2.13 ms 468 fps115%
Y33.32 ms 300 fps2.57 ms388 fps129%
Y45.40 ms184 fps4.48 ms222 fps120%

表3 AMV3 Ver3.00i 1スレッド 1コア
設定32bit64bit64bit処理性能
時間FPS時間FPS
S00.19 ms5258 fps0.26 ms3764 fps75%
S10.64 ms1562 fps0.49 ms2003 fps128%
S2 1.72 ms 579 fps 1.51 ms 660 fps113%
S32.37 ms420 fps1.93 ms517 fps123%
S44.53 ms220 fps3.69 ms270 fps122%

以前のベンチマークテストと同じ条件かどうか
使用したPCは同じだけど、テストに使ったベンチマークソフトが違うため心配ですが、 2012年9月に行った以前のテスト の「表3 シングルスレッドによるAMVビデオコーデックの結果(1スレッド、1コア)」 と比較して32bit版の結果がおおむね6%の差異なので同じようなテストができているとみていいかと思います。
ただし、AMV3のS0設定だけ30%以上違う結果となっているのでその部分は参考になりません。
(S0については、明らかにおかしいので何度かテストしましたが結果は変わらないので勘違いではない)


AMVビデオデコーダー 32bit版と64bit版の比較
最少でもAMV3 S2設定で約13% 64bit版は高速という結果になりました。
関連記事


コメントの投稿

No title

ベンチマークの結果ですが・・やはりというか64bit版の方が遅いです
これでは64bit化は意味がないような気がします

x64アプリを使い始めて2年目ですが大概x86版(Wow64)の方が早いです
これはCPUの性能とハード構成的な問題かと思います

私の環境ではx64アプリはCPUのキャッシュ不足からパフォーマンスが落ちるのと
corei5等では余力があればクロックブーストのように状況次第でパフォーマンス向上が原因かと

結果x64のアプリ全体が遅くがっかりしてますx64が早いというのは妄想でした。
今後よっぽどCPUキャッシュを積んだ製品でも出てこないとだめですね。
又はx64に最適化されたハード構成でない限りx64アプリは遅いと思われます。

Re: No title

> ベンチマークの結果ですが・・やはりというか64bit版の方が遅いです
> これでは64bit化は意味がないような気がします
>
> x64アプリを使い始めて2年目ですが大概x86版(Wow64)の方が早いです
> これはCPUの性能とハード構成的な問題かと思います
>
> 私の環境ではx64アプリはCPUのキャッシュ不足からパフォーマンスが落ちるのと
> corei5等では余力があればクロックブーストのように状況次第でパフォーマンス向上が原因かと
>
> 結果x64のアプリ全体が遅くがっかりしてますx64が早いというのは妄想でした。
> 今後よっぽどCPUキャッシュを積んだ製品でも出てこないとだめですね。
> 又はx64に最適化されたハード構成でない限りx64アプリは遅いと思われます。

興味深い内容だけど、AMVビデオコーデック32bit版と
64bit版デコーダーについての話なのでしょうか?
それとも一般的なアプリケーションについての話なのかな?

AMVビデオコーデックについては私のところでは64bit版デコーダーのほうが
いい結果が出ているのでK1969nさんとは食い違ってしまいますね。

一般的なアプリケーションについても64bit版のパフォーマンスが32bit版より
低いという認識はないので(そもそも体感できるものなのだろうか)、
このあたりは、なんとなくK1969nさん固有の話のような気がします。

とりあえず動作クロックについてはブーストを切って、省電力もOFFにして
動作クロックが固定になっていることを確認してからテストしてみてください。

あとは、テスト条件とテスト結果を記載すれば説得力が増すかと思います。

No title

返信ありがとうございます。
こちらの環境のせいだとは思いますが以下がベンチ結果です
OS:win7x64
CPU:Intel(R) Core(TM) i5-2430M CPU @ 2.40GHz
memory:8Gbyte
GPU:AMD HD6630M(1Gbyte)

----------------------------------------
File : C:\Tools\Movie\Encoder\amv3dec64ver300i\sample_amv2mt_y2.avi
Total : 362frame, Total decode time 57.087ms
Codec info : Amv2mtCodec ( AMV2 MT Codec Ver2.20i )
Process : x86
Buff align : 0x00000000004af180 (128 Byte aligned)
Decode format : YUY2
Decode time : Min= 0.105ms
Max= 0.532ms
Ave= 0.158ms (6341.175fps)
----------------------------------------
File : C:\Tools\Movie\Encoder\amv3dec64ver300i\sample_amv2mt_y2.avi
Total : 362frame, Total decode time 100.030ms
Codec info : Amv2mtDecoder64 ( AMV2 MT Video Decoder x64 Ver2.20i )
Process : x64
Buff align : 0x0000000000432900 (128 Byte aligned)
Decode format : YUY2
Decode time : Min= 0.155ms
Max= 1.150ms
Ave= 0.276ms (3618.897fps)
-------------------------------------

Re: No title

テスト結果ありがとうございます。
K1969n さんと近いi5-2520MのPCがあったのでテストしてみました。
ただ、私のほうはノートPCでターボブーストや省電力設定のOFFができません。
動作クロックが変動しながらのテスト結果となってしまいますが次のようになりました。


OS:Windows7 Home x64
Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
Memory:8GB

----------------------------------------
File : C:\Develop\AmvCodec64\bin\sample_amv2mt_y2.avi
Total : 362frame, Total decode time 219.298ms
Codec info : Amv2mtCodec ( AMV2 MT Codec Ver2.20i )
Process : x86
Buff align : 0x000000000060f200 (128 Byte aligned)
Decode format : YUY2
Decode time : Min= 0.514ms
Max= 0.792ms
Ave= 0.606ms (1650.724fps)

----------------------------------------
File : C:\Develop\AmvCodec64\bin\sample_amv2mt_y2.avi
Total : 362frame, Total decode time 181.636ms
Codec info : Amv2mtDecoder64 ( AMV2 MT Video Decoder x64 Ver2.20i )
Process : x64
Buff align : 0x00000000002e1980 (128 Byte aligned)
Decode format : YUY2
Decode time : Min= 0.385ms
Max= 0.665ms
Ave= 0.502ms (1993.000fps)


私のほうが圧倒的に遅い(動作クロックが変動しているためなのかな)のが
気になりますが、一応20%ほど64bit版デコーダの方が高速となりました。
K1969n さんの方は32bit版のほうが早い結果となっていますが、0.158msと
0.276msでは差がありすぎるので、スレッド数が異なる可能性は無いでしょうか?

AMV2MT 32bit版の設定でデコードスレッド数が2以上になっていたら
1に設定してみてください。(64bit版は1スレッドに固定です)

No title

申し訳ございません
ご指摘の通りデコーダーのスレッドが2になってました

ということで再度ベンチマークを走らせた結果
x64版の方が約25%程高い数値を出しました
これが原因だったんですね。

Re: No title

> 申し訳ございません
> ご指摘の通りデコーダーのスレッドが2になってました
>
> ということで再度ベンチマークを走らせた結果
> x64版の方が約25%程高い数値を出しました
> これが原因だったんですね。

ご報告ありがとうございます。
 
 
あまラボへようこそ
このブログでは自作ソフトの最新情報やtips、PC動画に関する話題を掲載していきます。各記事へは下にあるカテゴリからアクセスして下さい。

ファイルのダウンロードはホームページの方でお願い致します。

質問・要望・不具合報告はこちら
アマレコTV
アマミキ!
アマレココ
アマレコ・ライト
ファンタジーリモート
AMVコーデック



ホームページ
カテゴリ
最新コメント
カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
最新記事
最新トラックバック
ブログ内タグ

アマレコTV ビデオキャプチャ AMVコーデック アマレココ アマミキ! コーデック SC500 動画配信 ファンタジーリモート アマレコライト プラグイン AMV4 SC512 ライブ機能 デスクトップキャプチャ AVX2 FAQ リモートソフト 質問コーナー ニコニコ動画 DirectShow HDキャプチャ 組み換え 4K レゴ 遅延 可変再生速度 解説動画 LEGO XL2420T ベンチマーク Intensity AMV2MT 120Hz 倍速液晶 GV-USB2 アマステ 液晶モニター PS4 Pro デインターレース 32ZP2 Shadow VideoKeeper2 31024 RDT233WX-Z ffmpeg GV-USB AVX Play Alternate designs 31006 RGBキャプチャ RYZEN SD-USB2CAP4 XCAPTURE-1 DirectShowFilter キャプチャーツール Livetube シンクライアント イベント AtomでHDキャプチャ プレビュー 擬似NTSCキャプチャ IntensityPro SD-USB2CUP4 額縁遅延 MPC ハイパースレッディングテクノロジー HT インストール OBS QSV NVEnc 31021 フィギュア Kabelake SSE MonsterX3A XCapture-1 オーバーレイ 音ズレ 録画 HDMI HDCP 32ZP32 SKnet REGZA 液晶テレビ 倍速駆動 リプレイ機能 モノステ ZP3 倍速補完処理 MP3 Haswell 電源オプション LameACM 音遅延 ゲームスムーズモード MonsterXU3.0R DC-HD1 

ブログ内検索
月別アーカイブ
アマレココに関するリンク
お世話になっているソフトのリンク
RSSリンクの表示
管理画面
  • 管理画面