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ファイルを読み込む際の入力プラグインの都合なのか・・・