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%高速であることがわかります。
設定 | 32bit | 64bit | 64bit処理性能 | ||
時間 | FPS | 時間 | FPS | ||
Y2 | 0.21 ms | 4601 fps | 0.17 ms | 5771 fps | 125% |
【実践的なテスト】
サンプル動画は画像サイズが320x240と小さいため、より実践的なテストとして 2012年9月に行った以前のテスト とできるだけ同じ条件で以下のベンチマークテストを行いました。
【測定条件】
ベンチマークはHD(1280x720)のビデオキャプチャ(実写)を想定しています。
動画ソースはマイクロソフトのサイトからダウンロードしたWMV形式のファイルをAviUtlと各コーデックを使って変換したものを使います。 (2009年の「動きの激しい動画」と同じになります)
測定はDecBench86.exeおよびDecBench64.exeを使ってYUY2にデコードした際のデコード時間(復元にかかった時間)を測定します。
タイトル | Mystery of the Nile |
情報 | 1280*720、2082frames、1分26秒 |
備考 | AviUtlと各コーデックを使ってエンコード |
OS | Windows7 x64 Professional SP1 |
CPU | Intel(R) Core(TM) i5-3470S CPU @ 2.90GHz Ivy Bridge |
MB | ASRock H77 Pro4-M (Intel H77) |
Memory | DDR3 1600 8GB(4GBx2 Dual Cannel)read=23.7GB/s write=12.2GB/s |
Software | DecBench86.exe DecBench64.exe |
備考 | CPUは4コア、マルチスレッドテクノロジーには対応していません。動作クロックを2.9GHz(定格)で固定し、省電力設定およびTurbo BoostはBIOSで無効化、動作クロックがテスト中に変動しないようにしています。 |
【結果】
設定 | 32bit | 64bit | 64bit処理性能 | ||
時間 | FPS | 時間 | FPS | ||
Y1 | 0.97 ms | 1029 fps | 0.71 ms | 1405 fps | 136% |
Y2 | 2.47 ms | 404 fps | 2.13 ms | 468 fps | 115% |
Y3 | 3.32 ms | 300 fps | 2.57 ms | 388 fps | 129% |
Y4 | 5.40 ms | 184 fps | 4.48 ms | 222 fps | 120% |
設定 | 32bit | 64bit | 64bit処理性能 | ||
時間 | FPS | 時間 | FPS | ||
S0 | 0.19 ms | 5258 fps | 0.26 ms | 3764 fps | 75% |
S1 | 0.64 ms | 1562 fps | 0.49 ms | 2003 fps | 128% |
S2 | 1.72 ms | 579 fps | 1.51 ms | 660 fps | 113% |
S3 | 2.37 ms | 420 fps | 1.93 ms | 517 fps | 123% |
S4 | 4.53 ms | 220 fps | 3.69 ms | 270 fps | 122% |
以前のベンチマークテストと同じ条件かどうか
使用したPCは同じだけど、テストに使ったベンチマークソフトが違うため心配ですが、 2012年9月に行った以前のテスト の「表3 シングルスレッドによるAMVビデオコーデックの結果(1スレッド、1コア)」 と比較して32bit版の結果がおおむね6%の差異なので同じようなテストができているとみていいかと思います。
ただし、AMV3のS0設定だけ30%以上違う結果となっているのでその部分は参考になりません。
(S0については、明らかにおかしいので何度かテストしましたが結果は変わらないので勘違いではない)
AMVビデオデコーダー 32bit版と64bit版の比較
最少でもAMV3 S2設定で約13% 64bit版は高速という結果になりました。
- 関連記事
-
- AMVビデオコーデックFAQ
- ビデオコーデック・ベンチマーク2012夏
- ビデオコーデック・ベンチマーク2012夏(2012.9.4修正版)
- ビデオコーデック・ベンチマーク2009と2012夏の比較
- AMVビデオコーデックのこと
- 64bit版 AMVビデオデコーダー 公開
- 64bit版 AMVビデオデコーダーの仕様について
- 64bit版 AMVビデオデコーダー ベンチマーク
- 新拡張命令AVX2でコーデックの性能は上がるか?
- 3倍高速 AVX2対応 AMVデコーダー デモ版
- 64bit版AMVビデオデコーダーを使って再生した場合のDirect Showグラフ
- AVX2対応 AMVデコーダー デモ版の追試
- AVX2って何? そしてAMV4ビデオコーデック
- AMV4ビデオコーデック 概要
- AMV4ビデオコーデック 内部仕様でみるAMV4とAMV2MTの違い
trackback
コメントの投稿
No title
これでは64bit化は意味がないような気がします
x64アプリを使い始めて2年目ですが大概x86版(Wow64)の方が早いです
これはCPUの性能とハード構成的な問題かと思います
私の環境ではx64アプリはCPUのキャッシュ不足からパフォーマンスが落ちるのと
corei5等では余力があればクロックブーストのように状況次第でパフォーマンス向上が原因かと
結果x64のアプリ全体が遅くがっかりしてますx64が早いというのは妄想でした。
今後よっぽどCPUキャッシュを積んだ製品でも出てこないとだめですね。
又はx64に最適化されたハード構成でない限りx64アプリは遅いと思われます。
Re: No title
> これでは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%程高い数値を出しました
> これが原因だったんですね。
ご報告ありがとうございます。