UtVideo T2 フレーム間圧縮対応 AMV4と同等の性能に
また、ベンチマークテストも公開されています。
[UtVideo] バージョン 20.0.0
映像可逆圧縮コーデックベンチマーク 2018-06
私の方でYUY2のフレーム間圧縮に絞って簡単なテストを行った結果は以下の通りです。
テスト内容は「UtVideo T2が公開」と同じです。
圧縮モード | サンプル1 圧縮しにくい | サンプル2 圧縮しやすい | |
UtVideo T2 Ver 20.0.0 | UMH2 フレーム間圧縮 K30 | 3.18 | 5.21 |
AMV4 Ver4.10 | DY3 | 3.09 | 4.95 |
性能差 | 3% | 5% |
動きが少なく圧縮しやすい映像サンプルにてAMV4より5% UtVideo T2(UMH2)フレーム間圧縮の方が良い結果となっています。
また、動きの激しい(圧縮しにくい)サンプルにおいてもUtVideo T2フレーム間圧縮の方が3%良い結果となっていることから、圧縮効果に関してはAMV4(DY3)よりUtVideo T2(UMH2)のフレーム間圧縮モードの方が優れていると言えます。
一方、処理速度については梅澤さんのベンチマーク結果を見る限り、AMV4(DY3)の方がエンコードで15%から20%程度有利、デコードは同等と言ったところでしょうか。
ということで、AMV4(DY3)とUtVideo T2(UMH2)のフレーム間圧縮はそれぞれ「わずかな差で一長一短の関係」となり、もはやAMV4の独壇場とは言えなくなりました。
びっくりぽん!!!
AMV4のサンプル動画を再生するときのDirect Showグラフ
図1.RGBサンプル動画(sample_amv4_rgb32_dr3.avi)を再生する場合の標準的なグラフ(x86)

図2.YUY2サンプル動画(sample_amv4_yuy2_dr3.avi)を再生する場合の標準的なグラフ(x86)

図3.AMV4デコーダーフィルタを使ったYUY2の再生グラフ(参考)

図2では2つ目のAVI Decompressorを使ってYUY2をRGBへ変換していたのが、AMV4デコーダーを使うとYUY2のままレンダラーへ接続できて余計な処理を省ける。
AMV4ビデオコーデック Ver4.02 不具合修正
【更新内容】
(1) 端数がある場合(横サイズが16で割り切れない場合)に画像端が乱れたりバッファオーバーランが起こる不具合を修正
(2) インストールしたユーザー以外で設定の変更ができないのを修正(要アンインストール、設定ファイル削除)
端数に関しては画像サイズの横画素数が16で割り切れない場合で、且つ、画像バッファの先頭アドレスと1ラインのバッファサイズの両方でアライメントが合ってしまう場合に異常が起こります。
アライメントに関してはSSE版が16バイト、AVX版は32バイトです。
例えば1272x720 YUY2の映像をAMV4のSSE版で処理すると画像が乱れて可逆となりません。同じ条件でもAVX版はアライメントが合わないため正常に処理できます。
「端数がある時はアライメントは合わない」と思い込んでいたため、端数があって、且つ、アライメントが合う条件の処理がすっぽり抜けていました。
その他、インストール時にずっとSHIFTキーを押しながら操作すると強制的にエラーを起こしてエラーログを表示するようにしてあります。
ダウンロード
ホームページ
メディアプレイヤークラシック(MPC)でYUY2の動画が再生できない
同じ条件でもAMV2MTやAMV3では再生できるのにAMV4だと再生できません。
これには3つの要因が関係します
(1) MPCなどのメディアプレイヤーは画像サイズに制限があり、RGBは制限が緩いのに対し、YUY2では制限がきつい(特定の画像サイズしか扱えない?)
(2) AMV2MT/AMV3はYUY2の動画をRGBへ変換してMPCへ渡せるのに対し、AMV4はYUY2の動画はYUY2でしかMPCへ渡さないようになっている。
(3) MPCはYUY2の動画をRGBへ変換してくれない(WMPなどはYUY2の動画をRGBへ変換してくれる)。
このような事情からAMV4とMPCの組み合わでYUY2の動画を扱うと特定の画像サイズしか再生できない見たいです。
平たく言うと、対応できない画像サイズのYUY2動画はRGBへ変換して再生するけど、AMV4もMPCもRGBへ変換してくれないから再生できない。
と言った感じです。
具体例をあげると
1280x720 YUY2と言った一般的なフォーマットであればAMV4+MPCでも再生できますが、
1264x720 YUY2のように横サイズが16少ない画像サイズになると再生できません。
同じ画像サイズであってもRGB(1264x720 RGB32)であればAMV4+MPCで再生可能です。
ではどうするか?
手っ取り早い解決策はAMV4の方でRGBへ変換してあげればいい(変換する機能自体は実装済み)のですが、
画質面で不利になる可能性があるのでYUVの動画はYUVでのみ出力したいところです。
そこでAMV4デコーダーフィルターとなります。
コーデックの規格であるVCMにはおそらく画像サイズと言う概念しかないのでこのようなケースではどうにもならないのですが、Direct Show Filter(デコーダーフィルター)なら画像サイズとは別に表示エリアの概念があるため、YUY2における画像サイズの制限をなんとかできるかもしれません。
例えば、上記の1264x720の例であれば、画像サイズ(全体の大きさ)を1280x720とし、
表示エリアを1264x720とすることでYUY2のまま再生可能になるのではないかと思います。
もしくは、1264x720 YUY2のままネゴシエートできるかもしれません。
と言うことで、近々AMV4 Direct Show Decoder Filterを作って試してみようと思います。
GraphEditでみる1264x720 YUY2の再生グラフ
GraphEditで1264x720 YUY2の動画がどのように再生されるかを試したのが下図です。

1つ目のAVI DecompressorがAMV4ビデオコーデックを使ってYUY2形式でデコードして
2つ目のAVI Decompressor 0001がYUY2をRGB32へ変換しています。
カラースペースコンバーターは何だろう・・・1ラインのバイト数をレンダラーの仕様と合うよう調整しているのかな
このようにWindows Media Playerなどはプレイヤー側(Direct Show Graphのインテリジェンス機能)の働きによりRGBへ変換して再生できます。ただし、明らかに無駄な処理が含まれているのも解りますね。
理想は、一つ目のAVI Decompressorと同じ働きを持つAMV4デコーダーフィルタを用意して、ビデオレンダラーと直結することです。RGB変換やカラースペースコンバーターは排除したいところですね。
AMV4ビデオコーデック Ver4.01 インストール関連修正
また、インストール時に異常が発生した場合にエラーログを表示するようにしました(異常が発生してもエラーログが表示されない可能性あり)。
AMV4ビデオコーデック Ver4.01 インストール関係の修正
(1) インストール先のフォルダーを変更できるようにしました。
(2) インストール時に異常を検出した場合にエラーログを表示するようにしました。
インストール時に次のエラーログが表示される場合(異常があってもエラーログが表示されない可能性あり)はProgram Files以外へインストールしてください。

例えば次のように”C:\amv4\”とします。

インストール先は”C:\amv4\”でなくても構いませんが、半角スペースや日本語が含まれていたり、文字数が9文字以上のフォルダへインストールできないパソコンがあるようなので、ご注意ください。
インストールが終わったら設定画面を表示できるか確認します。 設定画面が表示されたらインストールOKです。
インストール時に上記のエラーメッセージ(エラーログ)が表示される場合はブログのコメント欄へログ内容を投稿して頂けると、program filesへインストールできない原因の特定に役立ちますので、ご協力を頂けると幸いです。
ダウンロード
ホームページ
2014.6.30追記
Program Filesへインストールできないけどエラーログが表示されない場合
amv401a_error_log.zip
下記のVer4.02を使ってください。
2014.7.1追記
ショートパスに全角チルダ”~”が含まれている場合に半角チルダへ変換する処理を追加しました。
これでProgram Filesへインストールできるかもしれません。
まだテスト版なので異常がなくてもエラーログが表示されます。
これでうまくいくようなら、エラーログを表示しないようにした正式版を一般公開します。
うまくいく、うまくいかない教えていただけると助かります。
これは関係なかったようです
2014.7.6追記
Ver4.02からインストール中にキーボードのSHIFTキーを押しながらインストール操作をすることで、強制的にエラーを起こしてエラーログを表示します。
エラーが一切でないのに、AMV4ビデオコーデックの設定画面が表示できない。とか、インストールそのものがキャンセルされてしまう場合は、SHIFTキーを押しっぱなしにしてエラーが出るか確認して見てください。
amv402.zip
AMV2MTとAMV4の違い まとめ
AMV4ビデオコーデックと同じRGB、YUY2に対応したAMV2MTとAMV4の違いを表にまとめました。
AMV2MT Ver2.20i | AMV4 Ver4.00 | AMV4補足 | |
対応OS | Windows | Windows7 SP1 Windows8.1各64bit版のみ | 新しいOSのみ対応 32bit版のOSでは 動作確認を行っていません |
CPU拡張命令 | SSE2 | SSE4.1 AVX2.0 | SSE4.1必須 AVX2が使える場合は 自動的にAVX2を使います |
対応プロセス | 32bitアプリのみ | 32bitアプリ 64bitアプリ | 64bitOS完全対応 |
マルチスレッド | 1から8 | シングルスレッドのみ | シングルスレッドで 十分リアルタイム処理が可能 |
圧縮モード | 高速可逆 標準可逆 標準(非可逆) 高圧縮(非可逆) | 標準可逆 高圧縮可逆 | 可逆のみ |
圧縮効果 | 低め | 高め | 可逆圧縮でもAMV2MTの |
処理速度 | 速い | 全体的にもっと速くなる | AMV2MTと比べ SSE4版:やや速くなる AVX2版:大幅に速くなる デコード処理は最大で約3.4倍高速 |
最少画像サイズ | 80x40 | 96x48 | |
画像サイズ | 横8、縦4の倍数 | 横2、縦2の倍数 | |
RGB・YUY2変換 色サンプリング | 左右の平均値 | 左側の画素 | |
入力 フォーマット | RGB32 RGB24 RGB16(R5G6B5) YUY2 UYVY HDYC | RGB32 RGB24 YUY2 UYVY | RGB16とHDYCを廃止 |
圧縮 フォーマット | RGB24 YUV444 YUY2 | RGB24 YUY2 | YUV444を廃止 |
出力 フォーマット | RGB32 RGB24 YUY2 | RGB32 YUY2 | RGB24を廃止 |
FourCC | ‘AMM2’ | ‘AMV4’ | |
ハーフサイズ | ○ | × | |
プロファイル | ○ | × | |
インターレース画像 | ○ | × | |
ライセンスキー | 共通 | 共通 | AMV2、AMV2MT、AMV3、AMV4 で共通 |
もっと詳しい違いについては次の記事を見てください。
AMV4ビデオコーデック 内部仕様でみるAMV4とAMV2MTの違い
AMV4ビデオコーデック オンラインヘルプ
オンラインヘルプ
AMV2MT/AMV3からの主な変更点、および追加点は次のようになります。
(1) 対応するOSとインストーラについて
インストーラは32bitOS用と64bitOS用があります(コーデック毎ではなく、OS毎に用意しました)。
64bitOS用のインストーラには32bitコーデックと64bitコーデックの両方が含まれています。
なお、32bitOS用のインストーラを用意してありますが、動作確認ができないため動作対象外です。
オンラインヘルプ:インストール
インストーラがマルチユーザに対応しました。
インストールするユーザとコーデックを利用するユーザが異なっていても利用できます。
AMV2、AMV2MT、AMV3とは異なるコーデックですので、すでにインストールされているコーデックをアンインストールする必要はありません。
それぞれ個別にインストール、アンインストールできます。
(2) 仕様について
最少画像サイズは96x48です。(AMV2MTは80x40)
画像サイズは横2、縦2の倍数である必要があります。(AMV2MTは横8、縦4)
横を16の倍数としたときもっとも効率よく動作します。
RGBをYUY2へ変換する場合のカラー情報は左側の画素をサンプリングします。(AMV2MTは左右の平均値)
Intensity Proなどで使うカラーフォーマットのHDYCは動作確認が取れないため非対応としました。(一応実装はしてあります。)
(3) 動作確認用サンプル動画
動作確認用のサンプル動画とバッチファイルが同梱されています。
オンラインヘルプ:動作確認
(4) AVX2版とSSE4版について
AVX2版とSSE4版のどちらを使うかは自動で選択されます。
どちらが選択されたかは設定画面のタイトルで確認できます。
オンラインヘルプ:CPU確認
AVX2が使えるパソコンでどうしてもSSE4版を使いたい場合はメニューで設定します。
オンラインヘルプ:CPU設定
(5) ライセンスについて
AMV2、AMV2MT、AMV3用のライセンスを購入している場合は同じライセンスキーがAMV4でも使えます。
新たにライセンスを購入する必要はありません。AMV4の設定画面で登録作業をしてください。
設定ファイルは32bit版と64bit版で共通なのでどちらか一方で登録すればOKです。
オンラインヘルプ:ライセンス登録
ビデオコーデック・ベンチマーク2014夏
今回はほとんどのコーデックに更新が無いため特筆すべき点がAMV4ビデオコーデック以外ありません。テストは公平に行いますが、記事はAMV4ビデオコーデック中心となることをご了承ください。
おそらく集約命令(Gather命令)が実用化されることで他のコーデックの性能も上がってくると思うので、それまではこんな状態が続くと思います。
1.テスト内容と条件
ベンチマークはHD(1280*720)のビデオキャプチャおよびPC画面のキャプチャを想定しています。
適当なサンプル動画(未圧縮YUY2および未圧縮RGB32)を用意して、Ut Videoの作者である梅澤さんが公開しているVC Testを使って処理速度と、圧縮効果を測定します。
1.1.テスト内容
次のPCを使い、3つのサンプル動画それぞれのテストと、マルチスレッドによる処理速度のテストを行います。
1.2.PCスペック
OS | Windows8.1 x64 Professional |
CPU | Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz Haswell |
MB | ASRock H87 Performance (Intel H87) |
Memory | DDR3 1600 16GB(8GBx2 Dual Cannel)read=25.4GB/s write=14.8GB/s |
Software | Video Codec Test 2.0.0 |
備考 | CPUは4コア、8スレッド、HTT対応、AVX2対応。動作クロックを3.4GHz(定格)で固定し、省電力設定およびTurbo BoostはBIOSで無効化、動作クロックがテスト中に変動しないようにしています。 |
※ メモリーのread,writeはCrystalMark 0.9.114によるものです。
1.3.サンプル動画
タイトル | Mystery of the Nile |
情報 | 1280*720、2082frames、1分26秒、3,837,598,360Byte ![]() |
備考 | AviUtlを使ってYUY2未圧縮に変換。 動きが激しくて、画質も悪いため圧縮しにくい不利な条件のそろった動画によるテスト。 いつものベンチマークで使っている動画と同じものです。 |
タイトル | The LEGOR Movie - Official Main Trailer [HD] |
情報 | 1280*720、4321frames、3分00秒、7,964,559,144Byte ![]() |
備考 | youtubeから720p版をダウンロードしてAviUtlでYUY2未圧縮に変換 動きが少なく、画質もいいため圧縮しやすい有利な条件のテスト。 また、上下に黒帯が付いているので、黒帯部分で高い圧縮効果が得られるコーデックに有利となります。 |
タイトル | Street Fighter IV |
情報 | 1280*720、15820frames、4分23秒、58,319,119,660Byte ![]() |
備考 | ゲームのベンチマークソフトを1280x720、60fpsに設定して実行。 アマレコTVのウインドウキャプチャを使ってAMV2MT:R2の可逆圧縮で録画。 Virtual Dubを使ってRGB32未圧縮に変換。 PC画面を録画することを想定したRGB可逆圧縮のテストです。 参考動画 |
1.4.コーデック
コーデック名 | bit | 内容 | 設定 |
AMV2MT Video Codec Ver 2.20i | 32 | YUY2のテストでは「Y2標準可逆」を使用 RGB32のテストでは「R2標準可逆」を使用 ライセンス登録済(ロゴなし) | ![]() |
NEW AMV4 Video Codec Ver 4.00 | 64 | AVX2版を使用 ライセンス登録済(ロゴなし) YUY2のテストでは「DY2:標準可逆(速度)」 及び「DY3:高圧縮可逆(圧縮)」を使用 RGB32のテストでは「DR2:標準可逆(速度)」 及び「DR3:高圧縮可逆(圧縮)」を使用 | ![]() |
Huffyuv Ver 2.1.1 | 32 | Predict median(best) RGB32のテストではアルファチャネルが含まれます。 | ![]() |
NEW UT Video Codec Suite Ver14.2.0 | 64 | 「圧縮率優先」および 「デコード速度優先」の2パターンをテスト YUY2のテストでは「ULY2」を使用 RGB32のテストでは「ULRG」を使用 | ![]() |
Lagarith Lossless Video Codec Ver 1.3.27 | 64 | YUY2のテストでは「YUY2」を使用 RGB32のテストでは「RGB」を使用 | ![]() |
Alparysoft Lossless Video Ver 2.0 | 32 | lossless compression enable prediction realtime ロゴあり | ![]() |
CorePNG Ver 0.8.2 | 32 | 1-Fastest | ![]() |
NEW MLC Codec Ver 1.2 | 64 | Muximum speed Use Multithreading off | ![]() |
FastCodec Ver 1.0beta | 32 | Absolutely lossless | ![]() |
MSU Lossless Video Capture Ver 0.6.0 | 32 | Absolutely lossless Maximize speed RGB32には対応していない | ![]() |
※ bitはvctest-x86でテストしたものを「32」、vctest-x64でテストしたものを「64」としています。 両方用意されているコーデックでは64bit版を優先してテストします。
※ 規定の手順でWindows8にインストールできないコーデックを除外しました(Huffyuvだけは手動でインストールしてテストしています)。
2.結果
2.1.動きの激しい比較的低画質な実写映像
※ fpsは1秒間に何フレーム処理できるかを示し、数値が高いほど優れています。
※ compression ratio(圧縮効果)は未圧縮のデータに対し何分の1に圧縮できるかを示し。数値が大きいほど優れています。
圧縮効果の面でMLCが4.3と非常に優れています。
AMVビデオコーデックにとってはあからさまに不利な条件でのテストなので、圧縮効果の面で最下位。
処理は速いけど圧縮効果が低いコーデックと言った位置づけになります。
一方、AMV4のDY3は不利な条件でもそこそこの圧縮効果を発揮しています。
また、AMV4のデコード処理は大幅に高速化されていて、AMV2MT:Y2の527fpsに対しAMV4:DY2(AVX版)のデコード速度は1802fps(3.4倍)です。
そのほかでは、UT Video速度優先のエンコード処理がHuffyuvに肉薄しています。この部分は過去のベンチマークをみると徐々に差を詰めてきています。
2.2.動きの少ない高画質なCG映像
処理速度を見ると、大半のコーデックにおいてサンプル動画1のテストよりエンコード処理が早くなっている事が解ります。
多くのコーデックにおいて圧縮し易い映像では処理が早くなる傾向があるようです。
それに対しAMVビデオコーデックはサンプル1とサンプル2を比較してもエンコード処理の差はわずかとなっています。
AMVのエンコードには条件分岐処理が存在しないため映像の内容による処理時間の変動が起きにくい特徴があります。
次に圧縮効果の面をみると、MSUが18.1と突出しています。
そのほかは圧縮効果が5.0前後の集団と、10.0前後の集団(MLC、Lagarith、AMV4DY3)の2つに分かれます。
5.0前後の集団は映像の内容によらず5.0辺りから圧縮効果が伸び悩み、好条件であってもなかなか高い圧縮効果が得られません。
一方、10.0前後の集団は映像の内容によってはもっと高い圧縮効果が狙えます。
AMV4のDY3は二次圧縮を適用したことで、動きが少なかったり、単調な画像(グラデーションやべた塗りなど)、黒帯があるなどの条件において高い圧縮効果が狙えます。
| AMV2MT Y2 | AMV4 DY2 | AMV4 DY3 | 備考 |
Mystery of the Nile | 2.09 | 2.52 | 3.09 | WMV |
The Discoverers (IMAX) 720p | 4.13 | 4.16 | 4.95 | WMV |
The Book Thief Trailer | 4.32 | 4.95 | 7.37 | H264 |
RoboCop TRAILER 1 | 4.17 | 4.92 | 7.54 | H264 |
The LEGOR Movie | 5.35 | 5.93 | 9.44 | H264 黒帯あり |
Transformers 4 | 5.38 | 6.32 | 10.33 | H264 黒帯あり |
Veronica Mars | 7.09 | 7.72 | 13.66 | H264 黒帯あり |
2.3.ノイズが一切ないゲーム画面のキャプチャ
Huffyuvはアルファチャネルも処理しているため不利な結果となっています。
MSUはRGB24でないと使えないようです。
2.4.マルチスレッドによるテスト
最後に各コーデックをマルチスレッドに設定した場合の処理速度を観察します。
AMV4はSSE4.1版とAVX2.0版をテストしています。
カッコ内の数値はスレッド数(フレーム分割数)で、1となっているのはシングルスレッドで処理しています。
mは「マルチスレッドを使う」と言う項目が用意されているだけでスレッド数が不明のコーデックです。
テストにはサンプル動画1を使います。
Lagarithはマルチスレッドオプションを有効にすることで1.5倍程度fpsが向上しています。
MLCはマルチスレッドを有効にすることで約2倍fpsが向上。シングルスレッドでは720p 60fpsの録画は処理が間に合わず無理ですがマルチスレッドに設定することで可能性が出てきます。
UT Videoは分割数を増やす毎にfpsが上がっていくのがわかります。
4コア8スレッドのCPUによるテストなので、4分割あたりで頭打ちされるかと思いましたが、ハイパースレッドテクノロジーも有効に働くようです。
fpsが最も高くなるのはAMV2MTを8スレッドに設定した場合で2000fpsを超えます。
AMV4のAVX2版はSSE4版に対しエンコードで約1.4倍、デコードで約1.8倍の性能。128bitのSSEレジスタから256bitのAVXレジスタへ対応した効果が得られています。
AMV4は動画エンコード支援機能QSVを凌ぐ超低負荷
一方、AMV4ビデオコーデックも極まった処理速度によりCPUの負荷を大幅に軽減できますので、どちらがよりCPU負荷が低いのか実際に録画中の様子を観察して比較してみました。
また、QSVと同様にCPU負荷を軽減できるNVIDIAのNVEncについてもテストしています。
1.テスト概要
できるだけ同じ条件で観察したいので一つのキャプチャソフトでQSVとAMV4の両方が使えるものを探しましたが、見つかりませんでした。
なので、QSVに関してはOBS(Open Broadcaster Software)とキャプチャカードに付属するVideoKeeper2を使い、AMV4はアマレコTVを使うことにします。画像サイズやフレームレートを揃え、ドロップフレームが生じない条件でテストしましたが、やはりキャプチャソフトによる違いが無いとは言い切れないためその点はご容赦ください。
1.1.テスト方法
各キャプチャソフト(配信ソフト)にて録画を行い、その時のタスクマネージャのグラフ(CPU使用率)を観察します。
ビデオキャプチャにはマイコンソフト社のSC-512N1-L/DVIを使いPS4版のBATTLE FIELD 4のキャンペーンモードのオープニングシーン(※)を録画します。
※ この動画の冒頭1分50秒と同じ内容
下図はOBSを使ってソフトウエア・エンコーダのx264にてローカル録画した時のグラフになります。
キャプチャ条件はHDMI 1920x1080 60p YUY2です。

グラフの下部にある5枚の画像はキャプチャ中のおおよその映像を示しています。グラフのこの地点ではこんな感じの映像を処理していると思ってください。
グラフの左端はプレビューも、録画も行っていないため、ほぼCPU使用率が0%となっています。
そこから録画を開始し画像1の付近では、真っ黒な画面に小さい文字でゲーム制作会社などのテロップが表示されるシーンとなります。
このシーンは単調(1枚の画像として見たとき複雑でない、べた塗りやグラデーションの面積が広いなど)かつ動きが全く無い映像なためかCPU使用率は20%強と低めです。
グラフの中盤(画像2、3付近)は普通に動きのあるシーンとなり、CPU使用率は約55%と跳ね上がります。
グラフの後半(画像4、5付近)はオープニングが終わり、プレイ中となりますが、操作を行っていないためほとんど動きのない映像が続きます。動きがほとんどない映像ではCPU使用率も30%強と低めになるようです。
このようなテストを、エンコーダを変えて行います。
2.テスト条件
OS | Windows8 x64 Professional | |
CPU | Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz Haswell | |
GPU | GeForce GTX 650 Driver 337.88 | |
MB | ASRock H87 Performance (Intel H87) | |
Memory | DDR3 1600 16GB(8GBx2 Dual Channel)read=25.4GB/s write=14.8GB/s | |
HDD | 録画用のHDD WD30EZRX 3TB | |
Software | OBS Ver0.624b 32bit版 Video keeper2 ver1.1.0.124.4 (SC512のキャプチャソフト) AmaRecTV Ver3.00e (Ver3.00cと同じ) | |
Capture Card | ||
SC-512N1-L/DVI DVI-D Driver:1.1.0.125.0, 2013.11.12 | ||
Video Source | PS4版BATTLE FIELD 4のオープニングシーンを HDMI 1080 60p YUY2でキャプチャ この動画の冒頭1分50秒と同じ内容 | |
備考 | CPUは4コア、8スレッド、HTT対応、AVX2対応。動作クロックを3.4GHz(定格)で固定し、 省電力設定およびTurbo BoostはBIOSで無効化、動作クロックがテスト中に変動しないようにしています。 |
3.各キャプチャソフトの主な設定
詳細設定は長くなるので「続きを読む」に記載します。ここでは特に重要と思われる内容のみ記載します。
3.1.OBS
QSVおよびNVEncにてローカル録画するように設定します。
ビットレートは8Mbpsとしました。
サウンドはアマレコTVとできるだけ同じ条件となるようMP3 128kbps 2chとしています。
デスクトップの音とキャプチャカードの音がミキシングされます。

3.2.VideoKeeper2
QSVを使って録画するように設定します。
ビットレートは20Mbps。
オーディオミキサーの処理はありません。

3.3.アマレコTV
AMV4ビデオコーデックをDY3(YUY2高圧縮可逆)に設定しSSE4版とAVX2版のそれぞれで録画します。
ビットレートの設定はありませんが出来上がった動画ファイルから逆算すると約320Mbpsとなります(今回のテスト条件では秒間約40MByteなのでHDD単体でもドロップなく録画可能)。
オーディオ圧縮にLAME MP3 128kbpsを使います。
オーディオミキサーの処理はありません。

4.テスト結果
各エンコーダで録画した際のタスクマネージャのグラフに色を付けて合成したのが下図になります。

グラフの前半部は録画していない状態(プレビュー処理のみ)のCPU使用率です。OBSの前半は停止状態(プレビューもしていない)です。
プレビュー中はPCを操作しているためグラフが少し乱れていますが、アマレコTV、VideoKeeper2ともにCPU使用率は約4%から5%です。
グラフの後半は録画中のCPU使用率となります。録画中はPCを一切操作していないためグラフが安定しています。
また、いずれのエンコーダも映像の内容によるCPU使用率の変動がほとんど生じていないこともわかります。
録画中のCPU使用率は全体的に6%から10%の間にひしめき合っていて僅差となりますが、最もCPU使用率を抑えられたのはアマレコTVとAMV4(AVX2版)の組み合わせとなりました。
二番手はVideoKeeper2のQSVとなります。同じQSVを使ったOBSよりCPU使用率が少ないことがわかります。
AMV4のSSE4版は処理が遅い分CPU使用率も少し高くなります。
OBSは他と比べるとCPU負荷が若干高めという結果になりました。純粋な録画とプレビュー処理のほかに、何かしら処理を行っていると推測されます(少なくともオーディオミキサーの処理が行われています)。
また、OBSのQSVとNVEncを比較するとNVEncの方がCPU負荷を抑えられています。
最後に録画したビデオファイルの画質を比較します。
下図は録画したビデオファイルをAviUtlで読み込んだ画像です。
ゲーム側の都合によりプレイする度に完全に同じ映像がレンダリングされるわけではないようなので、類似するフレームを抜き出しての比較となります。

AMV4はYUY2の可逆なのでオリジナルの画質に忠実です。
VideoKeeper2はビットレートが高い分、OBSより若干画質はよくなっています。
OBSの3つはこの例ではほとんど差が無いように感じますが、一般的にはx264、QSV、NVEncの順に画質が良いと言われています。
OBSの3つの色味が他と違っていますが原因は不明です。OBS側の設定で何かあるのか、AviUtlでmp4ファイルを読み込む際の入力プラグインの都合なのか・・・
AMV4ビデオコーデック ベンチマーク暫定版 もはや反則AVX2編
テスト条件は前回のSSE編と同じですのでパソコンのスペック以外は以前の記事を参照してください。
AMV4ビデオコーデック ベンチマーク暫定版 SSE編
なお、AMV4ビデオコーデックについては開発途中のバージョンによるテストですので、
最終的なバージョンと異なる場合があります。
完成後にもう一度ベンチマークをやり直し結果を掲載しますのでそちらも確認してください。
【ベンチマーク条件】
パソコンのスペック以外はSSE編と同じ
AMV4ビデオコーデック ベンチマーク暫定版 SSE編
OS | Windows8 x64 Professional |
CPU | Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz Haswell |
MB | ASRock H87 Performance (Intel H87) |
Memory | DDR3 1600 16GB(8GBx2 Dual Cannel)read=25.4GB/s write=14.8GB/s |
Software | Video Codec Test 2.0.0 |
備考 | CPUは4コア、8スレッド、HTT対応、AVX2対応。動作クロックを3.4GHz(定格)で固定し、 省電力設定およびTurbo BoostはBIOSで無効化、動作クロックがテスト中に変動しないようにしています。 |
【ベンチマーク結果】
レベル | エンコード | デコード | 圧縮効果 | 備考 | |||
時間 | FPS | 時間 | FPS | ||||
AMV2MT 32bit SSE2 | Y1 | 0.60 ms | 1648 fps | 0.80 ms | 1238 fps | 1.15 | YUY2可逆 |
Y2 | 1.24 ms | 801 fps | 1.90 ms | 523 fps | 2.09 | YUY2可逆 | |
Y3 | 1.81 ms | 551 fps | 2.64 ms | 377 fps | 2.78 | YUY2非可逆 | |
Y4 | 3.73 ms | 267 fps | 4.37 ms | 228 fps | 3.67 | YUY2非可逆 二次圧縮あり |
レベル | エンコード | デコード | 圧縮効果 | 備考 | |||
時間 | FPS | 時間 | FPS | ||||
AMV4 32bit SSE4.1 | DY2 | 1.09 ms | 910 fps | 1.17 ms | 850 fps | 2.52 | YUY2可逆 |
DY3 | 1.84 ms | 541 fps | 1.84 ms | 542 fps | 3.09 | YUY2可逆 二次圧縮あり | |
AMV4 64bit SSE4.1 | DY2 | 1.11 ms | 900 fps | 1.08 ms | 925 fps | 2.52 | YUY2可逆 |
DY3 | 1.78 ms | 558 fps | 1.66 ms | 601 fps | 3.09 | YUY2可逆 二次圧縮あり |
レベル | エンコード | デコード | 圧縮効果 | 備考 | |||
時間 | FPS | 時間 | FPS | ||||
AMV4 32bit AVX2 | DY2 | 0.84 ms | 1189 fps | 0.64 ms | 1557 fps | 2.52 | YUY2可逆 |
DY3 | 1.21 ms | 825 fps | 1.17 ms | 854 fps | 3.09 | YUY2可逆 二次圧縮あり | |
AMV4 64bit AVX2 | DY2 | 0.72 ms | 1386 fps | 0.55 ms | 1790 fps | 2.52 | YUY2可逆 |
DY3 | 1.07 ms | 931 fps | 0.97 ms | 1029 fps | 3.09 | YUY2可逆 二次圧縮あり |
※ 時間、FPS:1フレーム処理するのにかかった時間、FPSは1秒間に何フレーム処理できるかを示しています。この2つは同じ情報です。FPSの数値が大きいほど優れています。
※ 圧縮効果:未圧縮に対しデータ(ファイルサイズ)を何分の1に圧縮できるかを示しています。数値が大きいほど優れています。
例 圧縮効果が2.00の場合、未圧縮で録画した場合と比べファイルサイズを半分(2分の1)に減らす能力があります。
処理速度と圧縮効果について
圧縮効果についてはSSE版とAVX2版とで同じ結果となりますので前回のSSE編を参照してください。
処理速度についてはAMV2MTとAMV4 64bit AVX2版を比較します。
Y2とDY2を比較するとDY2の方がエンコード処理で約73%、デコード処理で約242%(3.4倍)性能が向上しています。
Y3とDY3を比較するとエンコード処理で約68%、デコード処理で172%(2.7倍)の性能向上となっています。
なお、AVX2 32bit SSE版のDY3のエンコードがY3より1%程度遅い結果となっています。前回のIvy BridgeでのテストではDY3の方が約8%速い結果となっているので、Y3とDY3のSSE版はCPUの違いにより優劣が入れ替わるくらいの僅差と言えます。
まとめ
以前公開したAMV2MTデコーダーのAVX2対応デモ版で3倍速いというのを示しましたが、
「3倍高速 AVX2対応 AMVデコーダー デモ版」
「AVX2対応 AMVデコーダー デモ版の追試」
AMV4はさらにその上を行く3.4倍の性能(デコード処理)に達します。これはデモ版の時はAMV2の仕様に合わせてコーディングする必要があった(AMV2の仕様は2008年にSSEを前提に作成したのでAVX2には向かない部分が含まれる)のに対し、AMV4ではAVX2の特性に合わせ仕様の作成段階から取り組んだためです。
その結果、仕様とコーディングの両面でAVX2の性能を 相当高いレベルまで引き出せたと思います。
AMV4のAVX2版を簡単にまとめると
(1) エンコード処理の処理速度が約70%程度向上する
(2) デコード処理の処理速度が200%程度向上する
(3) 可逆圧縮の圧縮効果がDY2で最大約20%、DY3で平均約50%向上する
(4) AVX2が使えるPCでは処理速度と圧縮効果の両面で大幅に性能が向上する
※ 記事の内容は開発中のものです。公開時の仕様と異なる場合があります。
最終的な仕様については、公開時の記事を見てください。