fc2ブログ
 

オーバーレイレンダラーを使うとGPU使用率が100%になる

Windwos10でアマレコTV4を使うとタスクマネージャ上のGPU使用率が100%なるとの問い合わせをメールでいただいたので調べてみました。

私のところでも症状が再現でき、具体的にはGPU使用率のうちLegacy Overlayが100%と非常に高くなりました。
なお、アマレコTV4の設定でEVRを使うようにすればGPU使用率は下がりますので、基本的にはアマレコTV4がどうこうではなく使用するビデオレンダラーの振る舞いとなります。

ただし、このタスクマネージャにおけるGPU使用率が実際のビデオカードの状態を反映しているとは思えないので、GPU使用率が100%だからといってビデオカードに大きな負荷がかかっているのかどうか、ビデオカードのステータスも合わせて調べてみました。

アイドル状態
idle_.png


オーバーレイレンダラーでプレビュー
ol_.png


EVRでプレビュー
evr2.png




 
 
ビデオカードタスクマネージャ
動作クロックGPU使用率GPU温度GPU 03Dオーバーレイ
アイドル139MHz0%37℃0%0%0%
オーバーレイ139MHz8%41℃100%11%100%
EVR607MHz13%42℃17%17%0%



いずれもGPU温度を見る限りほとんどビデオカードへは負担がかかっていないように思います。
また、どちらかと言えばEVRの方が動作クロックが上がっておりGPUへの負担はオーバーレイよりEVRの方が大きいと言えますが、いずれもGTX1080の能力からしたらごくごく僅かです。
このことからタスクマネージャ上のGPU使用率と実際のビデオカードのステータスとは異なる場合があることが判ります。

タスクマネージャのGPU使用率について内容を把握しておりませんが、なんとなくGPUが持つ様々なリソース(3D機能およびエンコーダーやデコーダー、オーバーレイなど)を個別に管理していて、GPU 0として代表値を表示するようになっているけど、オーバーレイレンダラーを使うとオーバーレイに関するリソース(Legacy Overlay)の使用率が100%となり、それがあたかもGPU全体が100%であるかのように表示されてしまう。と言った、あくまで表示のしかたの問題と捉えていいのではないでしょうか。

オーバーレイレンダラーを使ってタスクマネージャ上のGPU使用率が100%になったとしてもGPU温度が上昇してビデオカードのファンが激しく回りだすと言ったことは無いと思います。


アマレコTV4 ライブ機能 64bit ベータ版

アマレコTV4のライブ機能フィルターの 64bit ベータ版です。
64bit版の配信ソフト等で以下の2つのフィルターが使えるようになります。

・AmaRec Video Capture x64 Ver4.11
・AmaRec Audio Capture x64 Ver4.11

OBS Studio 64bit版での使用例
obs_201801040159535c3.png


64bit用にコンパイルし直しただけなので内容は32bit版のlive_setup300に含まれるフィルターと同じです。
現在はベータ版で、十分なテストを行っておりません。
問題が生じても自力で対処できる方のみご利用下さい。

また、インストーラーは同梱していません。
同梱されている live411_install.bat および live411_uninstall.bat を参考に手動で導入してください。
日本語が含まれるフォルダ等では使えない可能性があります。

ダウンロード



IO DATA社製 フルHDキャプチャカード GV-USB3/HD

IO DATA社からUSB3.0接続のフルHDキャプチャカード「GV-USB3/HD」(以下GV-USB3)のサンプル品を頂きましたので早速使ってみました。
なお、私はアマレコTVの作者なのでアマレコTV上でGV-USB3を使う場合の話が中心となります。

パッケージ
101パッケージ

内容物
102内容


アマレコTV4 Ver4.11の設定例 フルHD(1920x1080p) 59.94Hzの場合
201アマレコデバイス設定

デバイスは「GV-USB3」と書かれているものを選択します。
入力端子はHDMIのみなので選択肢はありません。
フォーマットの中では「fcc=YUY2」のものを選択します。なお、RGBを選択してもRGBでキャプチャできるわけではありません(YUV422でキャプチャしたものをRGBへ変換するだけのようです)。



なお、キャプチャ元となるビデオ信号(リフレッシュレート)が60Hzの場合は
202_video60hz.png

アマレコTV4のフォーマット欄でfps=60.00のものを選択します。
203アマレコデバイス設定60p

204_60hz59hz.png

60Hzのビデオ信号を59.94fpsで録画すると(59.94Hzを60fpsで録画する場合も)大きな問題とはなりませんが、約16秒毎に音ズレ補正が生じます。
この場合、約16秒毎に(-)のドロップがカウントされ、1フレーム間引かれます。



■動作確認
Intel Haswell Core i7とAMD Ryzen R7のPCで動作確認を行いました。

 PC1
Intel Haswell
PC2
AMD Ryzen
OSWindows 8.1 x64 ProfessionalWindows 10 x64 Home
CPUIntel Core i7-4770 3.40GHzAMD Ryzen 7 1800X 3.6GHz
マザーボードASRock H87 PerformanceMSI B350 TOMAHAWK
メモリDDR3 8GB(4GBx2) 1600MHzDDR4 16GB (8GBx2) 2800MHz
ビデオカードNVIDIA GeForce GTX 1050 TiNVIDIA GeForce GTX 650

GV-USB3の接続はPC背面にあるマザーボード上のUSB3.0端子を使っています。
また、GV-USB3以外のUSB3.0デバイスは接続していません。
キャプチャ元となる映像機器はノートPCのHDMI出力 1080p 59.94Hz

いずれも数時間程度使ってみましたがあっさり動作しトラブルは発生しませんでした。
・デバイスマネージャに表示されないと言ったことはありませんでした。
・動作している最中にデバイスが切断されることもありませんでした。
・PCの再起動でデバイスを見失うこともありません。

ただしPC2 Ryznのパソコンでは1時間の録画の間に数フレームの取りこぼし(GV-USB3からアマレコTV4へフレームが送られてこない)が起こることがありました。1時間録画して取りこぼしゼロの場合もありましたので、その時のPCの状態に左右されると言ったところでしょうか。
なお、PC1 Haswellでは1時間の録画テストを何度か行いましたがGV-USB3が原因と思われるフレームの取りこぼしは確認されませんでした。


フレーム取りこぼしについて

PC2 Ryzenにて録画したときのアマレコTV4のレポートファイルの一部
301ryzen_drop.png

vd=で始まる行がキャプチャカードからフレームを受け取った際の情報で、前のフレームを受け取ってからの経過時間(インターバルタイム)などが記録されています。
VT=で始まる行が録画処理に関する情報で、音ズレ補正等の情報が記録されています。

vd=00:03:13.635s( 35ms)の行は前回フレームを受け取ってから35ms後にフレームを受け取っています。59.94Hzのビデオ信号をキャプチャしているので、通常16.6ms間隔でフレームを受け取ることになりますが、この時は1フレーム取りこぼしたため16msではなく35msとなっています。
続いて、VT=00:03:13.770s( 11606f)の行は録画に関する情報ですが、先の取りこぼしを受けて音ズレしないよう1フレーム水増ししています。
こんな感じでこの録画テストでは約1時間40分録画して、9フレームの取りこぼしがありました。




■同梱のキャプチャソフトについて
GV-USB3には「HD Mix Capture」と言うキャプチャソフトが同梱されています。
GPUエンコーダーに対応していたり、webカメラの映像を合成したり、マイクの音をミキシングすることができるため実況動画を作るのに便利なキャプチャソフトとなっています。
使い勝手も良く好印象ですが、CPU負荷が高いとの指摘がされているのでそのあたりを調べてみました。


キャプチャソフトを起動してプレビューしている状態のCPU負荷(PC1 Haswell)
キャプチャソフトCPU負荷スクリーンショット
GV-USB3 HD Mix Capture
Ver 1.00
10 - 11%401gvusb3prev.png
GV-USB3 HD Mix Capture
Ver 1.00
フルスクリーン
21 - 26 %402gvusb3fullscreen.png
アマレコTV4
Ver4.11
オーバーレイレンダラー
3 %403amarec_prev.png


HD Mix Captureのプレビューは1分程度眺めていると何度かくるくるベンチDX11の動きがガクガクします(HD Mix Captureの表示フレームレートは安定しない)。
また、HD Mix Captureをフルスクリーンにすると更にCPU負荷が高くなるようです(タスクマネージャのグラフの盛り上がっている分部がフルスクリーン状態)。なんとなくフルスクリーンにすることで表示フレームレートが安定する気がしますが、やはりガクガクする様子が見て取れます。
アマレコTV4はオーバーレイレンダラーを使っているためスクリーンショットに映りませんが、表示フレームレートは安定しています。
アマレコTV4でもEVRを使うとHD Mix Captureと同様に表示フレームレートは不安定になります。



録画中のCPU負荷 1080p 59.94fps 録画時間 約60秒(PC1 Haswell)
キャプチャソフト録画処理コーデック設定CPU負荷ファイル
サイズ
約1分録画
スクリーン
ショット
GV-USB3
HD Mix Capture
Ver 1.00
CPUソフト
エンコ
最高
画質
30 %約 124 MB501gvusb3cpu.png
GPUQSV最高
画質
13 - 15 %約 224 MB502gvusb3qsv.png
GPUNVEnc最高
画質
11 - 12 %約 64 MB503gvusb3nv.png
アマレコTV4
Ver4.11
CPUAMV4DS35 %約 1940 MB504amarec_amv4ds3.png

HD Mix Captureはキャプチャソフトを起動してプレビューした状態でCPU負荷がやや高いです。
アマレコTV4+AMV4は可逆圧縮なので高画質な代わりにファイルサイズが大きくなります。

CPU負荷がやや高いけど、高画質でファイルサイズを小さくできるHD Mix Captureに対し、ファイルサイズは大きくなるけどCPU負荷が低く完璧な画質のアマレコTV4と言ったところでしょうか。



■録画時のフレーム取りこぼしについて
他のPCで実行しているくるくるベンチDX11の様子を フルHD 1080p 59.94Fpsで1分間録画して約3600フレームのうち同じ画像が何枚録画されているか確認してみました。
くるくるベンチDX11はフレームカウント値が毎フレーム更新されるため、正常であれば同じフレーム画像は一枚も録画されません。

録画時のフレーム取りこぼし(PC1 Haswell)
キャプチャソフトコーデック設定全フレーム数検出された
同じ画像数
割合
GV-USB3
HD Mix Capture
Ver 1.00
ソフトエンコ最高画質3661 Frame368 Frame約 10 %
QSV最高画質3711 Frame223 Frame約 6 %
NVEnc最高画質3649 Frame172 Frame約 4 %
アマレコVT4
Ver4.11
AMV4DS33724 Frame1 Frame約 0 %


HD Mix Captureについてはかなり厳しい結果です。
アマレコTV4は動画の1フレーム目と2フレーム目が同じ画像でした。録画開始直後はどうしても不安定になるため冒頭の重複フレームについてはしょうがないと言ったところです。

先にも書きましたが、アマレコTV4を使えばGV-USB3を使って1時間録画してもフレームの取りこぼしゼロ(ないしは数フレーム)と言った結果ですのでGV-USB3自体はしっかりしたキャプチャカードと感じますが、同梱のHD Mix Captureに関してはちょっと厳しいと感じました。



■まとめ
GV-USB3自体
・USB3.0で危惧される相性問題は私のところでは発生しなかった
・アマレコTV4にて59.94Hz、60.00Hz両方可(選択可)
・画面の端が取り込めない(欠ける)と言ったことは無い(1920x1080をきっちりキャプチャできた)
・パソコン(USB3.0)によっては1時間で数フレームの取りこぼしが起こるかもしれない

同梱のHD Mix Capture
・CPU負荷が常時やや高め
・プレビューはフレームレートが安定しない(パススルーを使えばいい)
・録画機能は取りこぼしが目立つ(同じ画像が4%~10%記録されてしまう)





テーマ : PC周辺機器     ジャンル : コンピュータ

アマレコTV4 Ver4.11 正式公開

ホームページにてアマレコTV4の最新版 Ver4.11を公開しました。
内容はエラー表示の変更のみでブログで先行公開したVer4.10と同じです。
また、オンラインヘルプの方もVer4.11に合わせて更新しています。

【Ver4.10 更新内容】
(1) 録画処理をフレームベースからタイムベースに変更
(2) ビデオソースフィルター上のオーディオキャプチャPINを使う「Embedded on Video Capture Device」を追加
(3) SKNET MonsterX3A へ対応
(4) 動作対象OSにWindows10 64bitを加えた
(5) 高度な設定に録画開始してすぐに停止した場合(録画時間が短かった場合)に録画したファイルをテンポラリフォルダへ移動するオプションを追加
(6) 設定画面の全般の保存先フォルダの履歴を保存して過去に使ったフォルダを簡単に選択できるようになった
(7) AMV4ビデオコーデック Ver4.10が必要
(8) ビデオキャプチャカードのドロップステータスがレポートファイルに反映されないのを修正
(9) カスタムフィルターのメモリーリークを修正
(10) デスクトップキャプチャフィルターのメモリーリークを修正
(11) デスクトップキャプチャでフレームの順序が狂う不具合を修正
(12) 設定画面のプレビューのアスペクト比を「指定値」にして設定画面から戻るとエラー落ちするのを修正
(13) アマレコTV4終了時にアクセスバイオレーションになる場合がある不具合を修正
(14) 録画設定に「音声遅延」を追加

【Ver4.11 更新内容】
(1) オーディオキャプチャデバイスが見つからない場合にエラー扱いにした


【オンラインヘルプ主な変更点】
設定例にMonsterX3Aを追加
設定例のGV-USB2のオーディオデバイスをEmbedded on Video Capture Deviceに変更
FAQにMonsterX3Aを追加

オーディオキャプチャデバイスの扱いが本バージョンから変わりました。
今までビデオキャプチャデバイスと同じキャプチャデバイス名を選択していたものは Embedded on Video Capture Device を選択する必要があります。
(原則、ビデオキャプチャデバイスと同じキャプチャデバイス名は選択肢として表示されません)

Intensity Pro や SC500系、XCapture-1 はビデオキャプチャデバイスとオーディオキャプチャデバイスが異なるため該当しません(今まで通り、それぞれのデバイス名を選択する)が、GV-USB2 と MonsterX3A は Embedded on Video Capture Device となります。

以上となります。


アマレコTV4 Ver4.10 ブログ先行公開 録画エンジン刷新 MonsterX3A対応など

【更新内容】
(1) 録画処理をフレームベースからタイムベースに変更
(2) ビデオソースフィルター上のオーディオキャプチャPINを使う「Embedded on Video Capture Device」を追加
(3) SKNET MonsterX3A へ対応
(4) 動作対象OSにWindows10 64bitを加えた
(5) 高度な設定に録画開始してすぐに停止した場合(録画時間が短かった場合)に録画したファイルをテンポラリフォルダへ移動するオプションを追加
(6) 設定画面の全般の保存先フォルダの履歴を保存して過去に使ったフォルダを簡単に選択できるようになった
(7) AMV4ビデオコーデック Ver4.10が必要
(8) ビデオキャプチャカードのドロップステータスがレポートファイルに反映されないのを修正
(9) カスタムフィルターのメモリーリークを修正
(10) デスクトップキャプチャフィルターのメモリーリークを修正
(11) デスクトップキャプチャでフレームの順序が狂う不具合を修正
(12) 設定画面のプレビューのアスペクト比を「指定値」にして設定画面から戻るとエラー落ちするのを修正
(13) アマレコTV4終了時にアクセスバイオレーションになる場合がある不具合を修正

■録画処理については前回の記事を見てください。
■「Embedded on Video Capture Device」も前回の記事で紹介した「Video Capture Device」と同じものです。


■MonsterX3Aへの対応
MonsterX3Aを複数枚同時に運用できるようになりました(※)。また、MonsterX3Aにビデオ信号が入力されていない場合にアマレコTVが数分間応答なしになってしまうのを大幅に軽減します。ただし、MonsterX3Aの都合ですので根絶とはなりません。

複数枚挿しで使っていない方のMonsterX3Aにビデオ信号が入力されていなくても 応答なしとはなりませんが、使おうとしているMonsterX3Aにビデオ信号が入力されていないと応答なしになってしまいます。
なお、応答なしになった場合の復旧するまでの時間は全体的に短くなります。


SKNET MonsterX3A 3枚挿しの例 (Windows 10 Home 64, Ryzen 7 1800X, MSI B350 TOMAHAWK, GeForce GTX 650)
settei_20171001222708cfa.png
ビデオキャプチャデバイスで3枚のMonsterX3Aを選択可能。オーディオキャプチャデバイスはいずれも「Embedded on Video Capture Device」を選択。
アマレコTV4を3つ用意してそれぞれ異なるMonsterX3Aを選択すれば3系統同時にプレビュー&録画可能です。

※ MonsterX3A自体は複数枚差し対応を謳っていません。複数枚差しについては自己責任での運用となります。


■テンポラリフォルダへ移動する
sette_temp.png

録画を開始した直後に設定ミスなどに気が付いて、撮りなおしをすることがあるかと思います。
その場合に録画時間が短かったファイルをテンポラリホルダー(録画先フォルダに「Temp」が作成されます)へ移動します。


■保存先フォルダの履歴
sette_path.png

24時間録画するような運用で1日目はAドライブ、2日目はBドライブ、3日目はまたAドライブと毎日録画先ドライブを変更するような場合に重宝します。


■録画設定:音声遅延
settei_delay.png

録画したビデオファイルの音声を映像に対し意図的に遅らせたり、進める(映像を遅らせる)ことができます。
通常は0ミリ秒としてください。


■ダウンロード
アマレコTV4 Ver4.10


不具合などありましたら、この記事のコメント欄に書き込んでいただけると助かります。
特に問題がなければ、このバージョンを正式版としてホームページで公開する予定です。



アマレコTV4 中間報告 録画エンジンの刷新 MonsterX3A 二枚挿し

開発中のアマレコTV4の中間報告です。

■録画エンジンの刷新
現在、アマレコTV4の録画エンジン(フレームベース)をスーパーアマレココで採用した録画エンジン(タイムベース)のものへ置き換える作業を行っています。まだ、実装途中ですが良い結果が得られたので紹介します。


【テスト1】 アマレコTV4 v4.05(4.01と同等) MonsterX3A で ノートPCのHDMI出力(FHD 1080 30p)をキャプチャ

VT=10:02:33.965s(1083485f), Cap=1086163f( 0D), Drp=0, (+)372, (-)187
VT=10:02:33.999s(1083486f), Cap=1086164f( 0D), Drp=0, (+)373, (-)187
VT=10:02:51.765s(1084018f), Cap=1086695f( 0D), Drp=0, (+)373, (-)187
VT=10:02:51.799s(1084019f), Cap=1086697f( 0D), Drp=0, (+)373, (-)188
VT=10:02:51.833s(1084020f), Cap=1086698f( 0D), Drp=0, (+)373, (-)188


この結果は、私が所有する環境の中でキャプチャカードとキャプチャ元となるビデオ信号の組み合わせにおいて最も悪い結果が出るケースとなります。10時間ほど録画した際のレポートファイルの一部を抜粋したもので、簡単に内容を説明すると

・2行目 10時間2分33秒あたりで音声データが多く画像枚数が少ないと判断して1フレーム水増しした(プラスのドロップ)
・4行目 その後、10時間2分51秒あたりになると 逆に画像枚数が多くなり過ぎて音声データが少ないと判断して画像を1フレーム間引いた(マイナスのドロップ)

となっています。これは最初のフレームの水増しをやめておけば、その後の間引きを防げるので、数十秒や数分と言った長いスパンで見れば相殺できるケース(補正の必要がないケース)です。
理想としては、プラスとマイナスを相殺して、10時間録画した時点で水増し185フレーム、間引きゼロフレームとなってほしいところですね。


そこで、新しい録画エンジン(タイムベース)に変えてテストした結果が次のようになります。

【テスト2】 アマレコTV4 v4.10(開発中) MonsterX3A で ノートPCのHDMI出力(FHD 1080 30p)をキャプチャ

VT=10:00:21.445s(1079525f), Cap=1116752f, Drp=0, (+)185, (-)0, GapAvg=-28ms(-29)


見事、10時間録画しても間引きフレームのないパーフェクトな結果が得られました。

繰り返しになりますが、このケースはキャプチャカードとキャプチャ元のビデオ信号の組み合わせにより、アマレコTV4にとって あからさまに都合の悪い場合の話です。同じキャプチャカードでもビデオ信号が変われば既存のアマレコTV4で10時間録画しても相殺すべきフレームは0から数フレームに収まります。

【テスト3】 ビデオ信号をHD 720pに変えた例 アマレコTV4 v4.05(4.01と同等) MonsterX3A で ノートPCのHDMI出力(HD 720 60p)をキャプチャ(録画は30p)

VT=10:01:47.782s(1082127f), Cap=1926197f( 0D), Drp=0, (+)137, (-)0


ビデオ信号が変わったためドロップの傾向も変わっていますが、同じMonsterX3Aと既存のアマレコTV4でもほとんどのケースで打倒な結果が得られていることが判ります。

このようにアマレコTV4の次のバージョンではプラスとマイナスの両方のドロップが生じるケースを改善し、そのほとんどを相殺してより理想に近い(余計なフレームの水増しと間引きが無い)録画環境を実現できます。


■SKnet社のMonsterX3Aの二枚差しに対応
MonsterX3Aを二枚挿すと画面下部のオーディオキャプチャデバイスを選択するリストで
同じデバイス名 SKNET MonsterX3 HD Capture(Path 0)が2つ出てきてしまい、上手く識別できません。
amarectv4v410video_capture_device.png

次のバージョンではオーディオキャプチャデバイス欄に(Video Capture Device)が追加されます。
(Video Capture Device)を選択すると、上のリストのビデオキャプチャデバイスで選択したデバイスに組み込まれたオーディオキャプチャデバイスを使うようになりますので、オーディオキャプチャデバイスが同じデバイス名になってしまう場合でも二枚差しでの運用が可能となります。


【注意】
・MonsterX3Aは二枚差し対応を謳っていません。二枚差しについては自己責任でチャレンジしてください。
・MonsterX3AはFull HD 1080 30p対応を謳っていません。

二枚差しおよび、FHD 30pともにSKnetのHPで公開されている現時点での最新版ドライバ(Ver1.0.6.6)にて私のところではできるようになりました(製品付属CDのドライバではできなかったと思う)が、皆さんの環境でできる保証はありません。いずれも自己責任となり、自力でやりくりすることになります。
monx3a_driver.png


スーパーアマレココ 不具合と雑記

無事公開までこぎつけたスーパーアマレココですが窓の杜に紹介記事が掲載されたこともあり、たくさんのコメントがツイッターに寄せられていて嬉しい限りです。不具合などのコメントもありましたので一部記載します。


■不具合
ツイッターで不具合を書いてくれている人がいたので確認したところ、
マルチモニター環境で、録画対象のモニター以外のモニター上で
モノクロのマウスカーソル(メモ帳などのカーソル)を動かすと映像に黒帯が入ってしまう。

ある程度不具合報告が溜まったら修正します。
それまでは、マルチモニターの場合は気を付けて使うか、ビデオ設定の「マウスカーソルを録画する」をOFFに
してください。


■スーパーアマレコTVではありません
今回はアマレココのスーパー版ですが、今回の内容はアマレコTV4へフィードバックしていきますので
アマレコTVが良いんだって方は今後のアマレコTV4をお待ちください。

・スーパーアマレココはデスクトップキャプチャに特化した、初心者向けのアプリ。
・アマレコTV4はデスクトップキャプチャ機能やオーディオミキサーを含む、多機能な上級者向けのアプリとしていきます。


■「スーパー」って・・・
1月にアマレコTV4の紹介の中で「スーパーアマレココ」とネタっぽく書きましたが、
その時点でアマレコTV4と比べ半分くらいまでCPU負荷を軽減できるかもしれない手応えがありました。
アマレコTV4のデスクトップキャプチャ機能自体、優秀な部類に入ることを自負していたので、
そこからさらに半減となればこれはもうスーパーと言いたくなります。
で、実際はCPU負荷に加えてGPU負荷まで軽減できたことからネタではなく「スーパーアマレココ」を名乗ることにしました。


アマレココ4 その6 ストIV ベンチによるキャプチャテスト

>1.テスト方法
カプコンのストリートファイターIV ベンチマークを使ってアマレココ4の性能をテストします。
くるくるベンチと異なりCPU負荷だけでなくゲームプログラムへ与える影響も分かります。

ストIVベンチを1600x900のウインドウモードで実行し、録画していない場合と、アマレココ4+AMV4(YUV:DY3)でデスクトップ全体(1920x1080)を59.94fpsで録画した場合を比較します。

ストIVベンチの設定
st4setting.png


2.PCスペック
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)
VGA NVIDIA GeForce GTX 650 1GB
録画HDD WD30EZRX 3TB
Software  AmaRecCo4 開発版
 くるくるベンチDX11 Ver1.00
備考 CPUは4コア、8スレッド、HTT対応、AVX2対応。動作クロックを3.4GHz(定格)で固定し、省電力設定およびTurbo BoostはBIOSで無効化、動作クロックがテスト中に変動しないようにしています。




3.結果

 録画CPU負荷ベンチスコア
録画なし約 10 ~ 14 %
 cpu_norec.jpg
92.37 fps
norec.png
アマレココ4
AMV4
(YUV:DY3)
1920x1080
59.94fps
約 14 ~ 17 %
cpu_amarecco4.jpg
79.64 fps
rec_amarecco4.png
 


平均FPSが約13フレーム低下となりました。
また、録画中のCPU負荷は一概に言えませんが約3 ~ 4%程度増えています。

続いて、フレームの取りこぼしについても検証してみました。


4.フレーム取りこぼし検証方法

PC1でストIVベンチを実行してアマレココ4でデスクトップ全体を録画。
そのPC1のモニター出力(ビデオカードのHDMI出力)をPC2でビデオキャプチャカード(キャプチャボード)を使って録画。
PC1のアマレココ4で録画したビデオファイルとPC2のビデオキャプチャカードで録画したビデオファイルを比較して検証。
010cmp.png

アマレココ4およびビデオキャプチャカードの双方に取りこぼしがなければ理屈の上では同じフレームが映っているので両映像を引き算したとき、ほぼ真っ黒な映像となるはずです。


5.検証動画の編集
まずAviUtlでPC2のビデオキャプチャカードで録画したファイルを読み込みます。
100aviutl_load.png


次に、PC1のアマレココ4で録画したファイルを拡張編集のLayer1へ読み込みます。
110load_amarecco.png


Y座標を一時的に下にずらして2つの映像を見えるようにします。
120move_down.png


拡張編集の操作で似たシーンになるまで動画の再生位置を(大雑把に)調整します。
130move_time.png


拡張編集の動画ファイルの画面から1フレーム単位の微調整をおこない、完全に同じフレームになるようにします。
シーンチェンジや一瞬光るエフェクトを目印に合わせるといいと思います。
140move_fit.png


最後にY座標をゼロに戻し、合成モードから「減算」を選択して完了です。
150cmp.png


2つの動画の内容がほぼ一致する場合、引き算した値もほぼゼロとなるため真っ黒な映像となります。
取りこぼしなどフレーム単位で映像に食い違いが生じると下図のように異なる部分が一瞬見えます。
160drop.png 


6.検証動画
アマレココ4のフレーム取りこぼしテスト(YouTube)



終始真っ黒となるためこの録画テストの間、アマレココ4とビデオキャプチャカードによる取りこぼしは双方とも無かったと言えます。
ちなみに取りこぼしがある場合は次のようになります。
取りこぼしがある場合の例(YouTube)


■注意事項
ビデオ信号とビデオキャプチャカードの仕様が適合している必要があります。
例えばビデオ信号(モニター出力のリフレッシュレート)が60Hzでキャプチャカードが59.94fpsだと調整が入り一致しなくなります。

ビデオキャプチャカードのビデオキャプチャソフトにアマレコTV4を使い映像のドロップがないことを確認すること。
ステータス欄で(+)や(-)のドロップがカウントされている場合は当然その部分で一致しなくなります。
録画が終わった後ドロップがゼロであることを確認してください。
同様にアマレココ4もドロップステータスを表示してゼロであることが前提となります。
長時間録画すると必ず(+)(-)の調整が入りますのでこの検証ができるはせいぜい数分です。

DirectXタイプのキャプチャソフトの場合は取りこぼしが無くても一致しない可能性があります。
これは、1秒間にモニターに出力する画像枚数と、ゲーム内でレンダリングされる画像枚数に食い違いがあるためです。
例えばゲームのFPSが70fpsで録画FPSが60の場合、70枚の画像を60枚に間引くことになりますが、その間引き方が画面表示と異なる場合があるためです。
Duplication APIの場合はゲームが70fpsでも得られる画像は60枚なので画面表示と一致するようです。

ゲーム側の処理がモニターのリフレッシュレートを下回る場合は一致しない可能性が高いです。
例えばゲームのFPSが50fpsで録画FPSが60fpsの場合、50枚の画像を60枚に水増ししますが、その水増しの仕方が画面表示とキャプチャソフトの処理で異なるためです。
Duplication APIの場合も得られる画像は50枚なので一致しない可能性が高いです。



何事もなければ明日ブログにてアマレココ4 ベータ版を先行公開します。
正式版の公開はホームページで来週を予定しています。



アマレココ4 その5 使い方(起動オプションそのた)

1.録画範囲(取り込み枠)
region.png

・ウインドウキャプチャはありません。すべてデスクトップキャプチャとなります。
・ルーペ機能は廃止しました。
・録画フレームレートやマウスカーソルの設定は設定画面で行います。取り込み枠は録画範囲に関する設定のみとなります。
・同梱の CaptureSize.ini をメモ帳で編集すれば任意のキャプチャサイズをリストへ登録できます。


2.起動オプション
-rec
アマレココ4が起動してすぐに録画を開始します。また、録画を停止するとアマレココ4は終了します。

録画していないときにアマレココ4によるCPU(GPU)負荷を完全にゼロとしたい場合に次のように使います。
・デスクトップにアマレココ4のショートカットを作って、そのショートカットにOSのホットキーを割り当てる。
・ショートカットのオプションに -rec を付ける。
・ゲーム中など録画したい場面になったらショートカットのホットキーでアマレココ4を起動(と同時に録画が開始されます)。
・録画停止はアマレココ4のホットキー(デフォルトだと Alt+X )で操作します。その後アマレココ4は自動的に終了します。
※ このオプションが指定されている場合は設定画面の内容など殆どの項目で設定値が保存されません(設定の変更はできますが、次回起動時、元に戻る)。

-safe
各デバイスへアクセスする前に設定画面を表示します。
同梱の AmaRecCo4 safe.bat を実行してもセーフモードで起動します。
明らかに使えない項目を選択してしまい、起動と同時にエラー落ちするような場合に使います。
原因の特定が出来ず、改善されない場合は AmaRecCo4.ini を削除して、設定を初期化してください。


3.録音について
録音する場合のサンプリングレートは録音デバイスの設定値(OS側の設定)になります。
チャンネル数が2chを超える場合は2chへダウンミックスして録音します。
ビット深度は16bitのみ対応します。
例 スピーカーの音を録音する場合、スピーカーが96kHzならアマレココ4で作られる動画ファイルも96kHzになります。


4.録画エンジンについて
アマレコTV4の録画エンジンを採用していますので、以下の特徴がそのまま適用されます。また、音ズレ対策についてはアマレココ4に合わせたタイムベースの処理に変更しています。
アマレコTV4ではキャプチャカードから送られてくるタイムスタンプが狂っているのでタイムベースでの処理を採用できませんでしたが、アマレココ4では画像と音声を取得した時刻を完全に把握できるので、音ズレ処理をシンプルにすることができました。
基本的に時刻が正確であれば音ズレすることはありません。起こるとすれば動画の最初から最後まで一定のズレとなります。
これは録音設定の遅延で調整してください。

・書込みエラーの根絶(アマレココで起こっていたか不明だけど)
・録画処理を正常に終了できなかった場合でも再生できる(修復不要)
・ファイルサイズの上限を撤廃
・2kBを超えるセクタサイズへ対応
・無欠損分割 ファイルサイズを指定して分割して録画、AviUtlなどを使ってつなぎ目のない一つの動画に仕上げることが可能
・AviUtl+x264guiなどで再エンコードする際の音声処理に対する高速エンコード支援
・新音ズレ対策 タイムベースの音ズレ処理に変更

アマレコTV 4 新録画エンジン 
アマレコTV 4 再エンコード支援の効果
 


5.そのほか
・RGB・YUV変換はBT.601、リミテッドレンジ、色のサンプリングは左側の画素となります。
・マルチモニターの場合は録画範囲の中心点が属するモニターの映像のみが録画されます。


アマレココ4 その2 CPU負荷

開発中のアマレココ4ですがほぼ録画処理が確定したのでアマレコTV4のデスクトップキャプチャとCPU負荷を比較しました。

1.テスト方法
くるくるベンチDX11を実行し、各キャプチャソフトにてデスクトップ全体(1920x1080)を 60fpsで録画した際のCPU負荷をタスクマネージャで観察します。また、録画はRGBとYUV(YUY2)の2種類でテストします。

キャプチャソフト起動前のCPU負荷は約 1%です。
kidoumae.jpg 


画面全体(1920x1080)を範囲選択し60fpsで録画します。
kidougo.jpg




2.PCスペック
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)
VGA NVIDIA GeForce GTX 650 1GB
録画HDD WD30EZRX 3TB
Software AmaRecTV4 Ver4.01
 AmaRecCo4 開発版
 くるくるベンチDX11 Ver1.00
備考 CPUは4コア、8スレッド、HTT対応、AVX2対応。動作クロックを3.4GHz(定格)で固定し、省電力設定およびTurbo BoostはBIOSで無効化、動作クロックがテスト中に変動しないようにしています。





3.結果

 キャプエンコプレビュー録画のみ 録画+プレビュー 最小化
アマレコTV4RGB
RGB
(DR3)
約 9%
amarectv_rgb_preview.jpg
約 8%
amarectv_rgb_rec.jpg
約 14%
amarectv_rgb_rec_preview.jpg
約 4%
amarectv_yuv_tray.jpg
RGBYUV
(DY3)
約 8%
amarectv_yuv_rec.jpg
約 13%
amarectv_yuv_rec_preview.jpg
アマレココ4RGBRGB
(DR3)
約 2%
amarecco_preview.jpg
約 7%
amarecco_rgb_rec.jpg
約 7%
amarecco_rgb_rec_preview.jpg
開発中
YUVYUV
(DY3)
約 5%
amarecco_yuv_rec.jpg
約 5%
amarecco_yuv_rec_preview.jpg


・プレビュー
キャプチャソフトを起動してプレビューしている状態のCPU負荷です(録画は行っていません)。
GPUで処理できるアマレココ4が圧倒的に有利な結果となりました。
アマレコTV4はビデオメモリの内容を一度システムメモリへ転送したのち、再びビデオレンダラーのビデオメモリへ送り表示するためCPU負荷は高めとなります。

・録画のみ
プレビュー処理を止めて録画のみした状態のCPU負荷です。
アマレコTV4については最小化したりタスクトレイに入れることでプレビュー処理を止めることができるため、タスクトレイに格納した状態で録画しました。
また、アマレコTV4ではRGBでキャプチャしたものをAMV4のDR3設定で録画した場合と、AMV4をDY3に設定しRGBをYUV(YUY2)へ変換しながら録画した場合の2つのケースでテストしました。
アマレココ4はRGBでキャプチャしてDR3で録画した場合と、YUVでキャプチャしてDY3で録画した場合でテストしました。

RGBによる録画に関してはアマレコTV4とアマレココ4とでほぼ同じ処理構成になりますが、僅かにCPU負荷を軽減できています。
一方、YUVによる録画については、アマレコTV4はRGBでキャプチャした画像をAMV4ビデオコーデックによりCPUを使ってYUVへ変換するのに対し、アマレココ4は、キャプチャ処理自体をYUVで行う(RGB・YUV変換はGPUのピクセルシェーダーで処理します)ためAMV4ビデオコーデックによる変換処理を省けるだけでなく、ビデオメモリからシステムメモリへデスクトップ画像を転送するデータ量も半分に軽減できます。これらにより大幅なCPU負荷軽減となっています。

・録画+プレビュー
プレビューしながら録画した場合のCPU負荷です。
アマレコTV4はプレビュー処理に足を引っ張られてCPU負荷が大きめとなります。
アマレココ4は今回の結果(数値)では「録画のみ」と「録画+プレビュー」で差が見られませんが、実際は若干プレビュー処理によりCPU負荷が上昇します。

・最小化
アマレコTV4については録画もプレビューもしていない状態ですがアマレコTVの性質上、常にキャプチャ処理(ビデオメモリをシステムメモリへ転送)を行っていますので、起動前の1%からCPU負荷が上昇しています。
アマレココ4については検討中です。




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

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

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



ホームページ
カテゴリ
最新コメント
カレンダー
04 | 2023/05 | 06
- 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 ビデオキャプチャ アマレコVR AMVコーデック Oculus Quest アマレココ アマミキ! コーデック gQuest SC500 動画配信 Pico GO ファンタジーリモート 4K アマレコライト プラグイン G2 AMV4 oculus Unity SC512 ライブ機能 パススルー機能 デスクトップキャプチャ AVX2 Passthrough FAQ リモートソフト 質問コーナー ニコニコ動画 HDキャプチャ DirectShow 120Hz 背景透過 遅延 可変再生速度 レゴ 解説動画 Meta 組み換え VR LEGO XL2420T GV-USB2 2 アセット機能 液晶モニター 倍速液晶 デインターレース PS4 ベンチマーク アマステ AMV2MT Asset Intensity Pico4 MetaQuest Pro VRonVR MonsterX3A designs VideoKeeper2 AVX Alternate XCAPTURE-1 SD-USB2CAP4 GV-USB インストール RDT233WX-Z 32ZP2 31006 ffmpeg WindowsMR Rift 画像処理 31024 T2 60fps RGBキャプチャ UtVideo Shadow Play RYZEN 電源オプション HDCP Haswell HDMI 音遅延 QSV MonsterXU3.0R LameACM MP3 31021 フィギュア 音ズレ 録画 ゲームスムーズモード HT OBS MPC ハイパースレッディングテクノロジー NVEnc 液晶テレビ DirectShowFilter プレビュー 擬似NTSCキャプチャ SD-USB2CUP4 Livetube AtomでHDキャプチャ キャプチャーツール シンクライアント イベント IntensityPro DC-HD1 額縁遅延 REGZA ZP3 32ZP32 オーバーレイ リプレイ機能 モノステ 倍速駆動 倍速補完処理 キャプチャカード Robust Video Matting API APIパススルー機能 60Hz 検証 passthrough python pytorch ハンドジェスチャー パカラーススルー機能 AssetBundle 2.0 Tracking ファイルマネージャプラス SkyBox Hand AMPlayer 新プレイヤー機能 GPU使用率 LAVFilters Preferred 可逆圧縮 GV-USB3 Kabelake SSE SKnet Filter Tweaker Windows 90Hz 新アマレコVR MR VRコントローラー SteamVR VR動画 フレーム間圧縮 XCapture-1 

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