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

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

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) |
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.結果
キャプ | エンコ | プレビュー | 録画のみ | 録画+プレビュー | 最小化 | |
アマレコTV4 | RGB | RGB (DR3) | 約 9%![]() | 約 8%![]() | 約 14%![]() | 約 4%![]() |
RGB | YUV (DY3) | 約 8%![]() | 約 13%![]() | |||
アマレココ4 | RGB | RGB (DR3) | 約 2%![]() | 約 7%![]() | 約 7%![]() | 開発中 |
YUV | YUV (DY3) | 約 5%![]() | 約 5%![]() |
・プレビュー
キャプチャソフトを起動してプレビューしている状態の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については検討中です。
より滑らか~ くるくるベンチ for DX11
以前公開したDirectX7(Direct Draw7)版やアマレコTVのプレビューより、さらに滑らかな表示ができます。
Windows8+DirectX11環境によりほぼ完ぺきに1フレーム単位の表示が可能と思われます。

【使い方】
デスクトップキャプチャソフトの録画フレームレートをモニターのリフレッシュレートと同じに設定(通常60fps)し、くるくるベンチの様子を録画します。
録画した動画ファイルをAviUtlなどで1フレームずつ観察し (くるくるベンチに表示されている) フレームカウンタの重複や抜け(Drop)がないかみてください。
【ダウンロード】
くるくるベンチ for DX11 Ver1.00
次回はこのくるくるベンチを使って新アマレココのCPU負荷を紹介します。
スーパーアマレココ
アマレココはアマレコTVのデスクトップキャプチャとして統合しましたので、もうアマレココを作ることは無いと考えていましたが、アマレコTV4で使ったDesktop Duplication API(Windows8以降でデスクトップ画像を取得するOSの機能)の感触がとてもよかった一方、アマレコTVの仕組みにより、足を引っ張られる場面(Direct Showを使わなければならなかったり、プレビュー機能など)もあり、もっと極まったものを作るべくアマレココ4の制作を開始しました。
なお、既にアマレコTV4がありますので、似たものを作っても不毛なのでアマレココ4は純粋にデスクトップを録画する初心者向けのアプリケーションとし、実況動画の作成で使うオーディオミキサーやプリセット機能など色々やりたい人はアマレコTVと言った棲み分けとなります。
アプリ | 機能 | 性能、その他 |
アマレココ4 | 録画のみ | プレビューや録画中のCPU負荷が小さい 初心者向け |
アマレコTV4 | 多機能 | プレビューや録画中のCPU負荷が大きめ(※) 色々やりたい人向け |


■主な特徴
(1) GPUによるプレビュー処理(CPUやシステムメモリを経由しない)
(2) GPUによるRGB・YUV変換(ビデオメモリからシステムメモリへ画像を転送する負荷を半減)
(3) GPUによるリサイズ(ハーフサイズ専用、ビデオメモリからシステムメモリへ画像を転送する負荷を1/4へ軽減)
(4) 機能は録画、スクリーンショットのみ(オーディオミキサーなし、プリセットなし)
基本的にはビデオメモリとシステムメモリの間で画像データを転送する処理(※)に多くのCPUリソースを食われますので、アマレココ4ではGPUを活用し転送処理を改善することで録画中のCPU負荷を軽減します。
また、プレビュー処理に関しては画像データが既にビデオメモリ上にありますので、CPUやシステムメモリを使った転送処理は行いません。
※ デスクトップキャプチャ処理はビデオメモリ上の画像をシステムメモリへ転送、アマレコTVのプレビュー処理はシステムメモリ上の画像をビデオメモリへ転送して表示
次回は録画中のCPU負荷がどの程度軽減されるか紹介します。
公開は10月を予定しています。