スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« MBPスレにまた変なのが | トップページ | Windows版からにする »

AGMエンコーダーの性能向上

今は、Windows用AmuseGraphicsの開発フェーズなのだが、他ソフトのリリースも必要なので、中々、先には進まない。次は、TiExtender Ver1.2.1をリリースするのだが、これは、次バージョンのAmuseGraphics開発の一環でもある。

と、いう事で、昨日書いた様に、TiExtender Ver1.2.1のバイナリは完成しているので、月曜にはVectorに登録する予定なのだが、Ver1.2.0からVer1.2.1での変更点は、AGM形式でのエンコード性能の向上のみだ。

つまり、Ver1.2.1ではAGMエンコーダーの性能向上を行なったのだが、その方法は、コード変換部を別だしにした事だ。

具体的には、従来バージョンでは、映像のDCT変換等の映像処理部とハフマン圧縮等のコード変換部は同等の扱いで、1フレームのエンコードを行う場合には、両方を終わらせる必要があったのだが、新バージョンでは、とりあえず、映像処理部の処理が終われば、次フレームの処理を開始できる様にしている。

当然の事ながら、コード変換部の処理も終わらせない事には、エンコード結果はファイル出力できないのだが、これを別だしした事で、複数のコード変換処理を同時動作させる事も可能になった訳だ。

つまり、コード変換処理では順序処理が基本になるので、普通に行なっていたのでは、マルチコアCPUで処理させてもシングルスレッド処理になってしまうのだが、複数の処理を同時に動作させる格好にすれば、マルチコアCPUのCPU性能を使い切る事も可能になる訳だ。

なので、TiExtender Ver1.2.1ではVer1.2.0よりもAGM形式でのエンコード性能が向上するので、その結果として、画面収録の最大フレームレートが向上する事になる。

と、言う事なので、実際に、TiExtender Ver1.2.0とVer1.2.1を使って、フルHDの1分間の60FPS-AGM動画をAGMPlayerで再生している状況を両者で収録してみたのだが、その結果は以下の通りになった。

             ドロップフレーム数 (ビジー率) 平均フレームレート ファイルサイズ
                                      1.2.0                                     1.2.1
AGM2-YV12       0 (78%) 60.00fps 3566MB    0 (27%) 60.00fps 3803MB
AGM3-YV12   522 (92%) 52.39fps 2668MB    0 (28%) 60.00fps 3494MB

AGM2-RGB     873 (90%) 47.50fps 7040MB    0 (27%) 60.00fps 9108MB
AGM3-RGB   2001 (98%) 29.87fps 3756MB    0 (27%) 60.00fps 7313MB

AGM2-DCT         0 (79%) 60.00fps  903MB     0 (38%) 60.00fps  984MB
AGM3-DCT     140 (90%) 57.97fps  718MB     0 (37%) 60.00fps  759MB

AGM2-DCT+   153 (97%) 57.69fps  239MB     0 (59%) 60.00fps  332MB
AGM3-DCT+     13 (92%) 59.80fps  204MB     0 (59%) 60.00fps  278MB

mp4                   0 (32%) 60.00fps  200MB      0 (29%) 60.00fps  204MB

上記は、4コア8スレッドのMacBook Pro 15インチ 2016モデルでの測定結果なのだが、同じ動画をmp4変換し、QuickTime Playerで再生している状況を、今度は、外付けSSDで運用している2コア4スレッドのMac mini Late 2014で測定した場合には、以下の結果が得られた。

                                    1.2.0                                       1.2.1
AGM2-YV12     4 (84%) 59.94fps 3449MB      0 (35%) 60.00fps 3827MB
AGM3-YV12  821 (96%) 47.33fps 2525MB    65 (46%) 58.99fps 3294MB

AGM2-RGB 1207 (94%) 41.37fps 6477MB   370 (62%) 54.27fps 7891MB 
AGM3-RGB 2210 (98%) 25.90fps 3566MB 1423 (81%) 38.01fps 4702MB

AGM2-DCT    512 (99%) 52.05fps  766MB        1 (62%) 59.98fps  967MB
AGM3-DCT  1198 (98%) 41.51fps  548MB    148 (81%) 57.71fps  732MB

AGM2-DCT+ 1385 (99%) 38.67fps  190MB  1140 (99%) 42.46fps  300MB
AGM3-DCT+ 1360(100%) 39.14fps  155MB 1256(100%) 40.73fps  247MB

mp4                    0 (43%) 60.00fps  197MB       0 (43%) 60.00fps  197MB

上記の通り、性能向上は4コア8スレッドのMacBook Pro環境の方が顕著なのだが、2コア4スレッドのMac miniでも、それなりにはある事が確認できた。

ちなみに、Mac mini Late2014では、AGMPlayerではなく、mp4に変換した上で、QuickTime Playerで再生したのだが、その理由は、AGMPlayerで再生させた場合、見た目的にはあまり判らなかったのだが、キャプチャー結果の動画サイズが小さくなっていたからだ。

つまり、AGMPlayerでは、再生が間に合わない場合には、フレームの表示をスキップさせるので、キャプチャー結果の動画サイズが小さくなっていたという事は、このスキップ機能が働いてしまった事を意味していた訳だ。

これに対して、QuickTime Playerでのmp4動画再生ではハードウェア支援が働くので、TiExtenderでのエンコード用にCPU性能が取られても、再生性能が極端に劣化するという事にはならない訳だ。

その証拠として、得られたファイルのサイズは妥当な感じになったのだが、参考に載せたmp4でのエンコード結果と比較すると、編集作業を行わないのであれば、mp4でエンコードしておくのが性能的には望ましいかもしれない。

もっとも、これは、他にGPUを多用する様なソフトは動作していないからかもしれないので、状況によっては、GPU性能を消費しないAGM形式でのエンコードの方が望ましい場面もあるかもしれない。

また、上記の通り、4コア8スレッド環境ではフルHD60fps、2コア4スレッド環境でも、フルHD30fpsでなら、AGMエンコードでも、フレーム落ちは出ていない訳なので、後々、必要な部分だけを無劣化切り出ししたくなる、なんて事を想定すれば、この程度の画面サイズ/フレームレートで良いのなら、AGM形式で出力しておいた方が安心ではあるかもしれない。

なお、AGM2/3-DCT+でのキャプチャー結果を見ると、Ver1.2.1の方がVer1.2.0よりもファイルサイズが有意に大きくなっているのだが、これは、Ver1.2.1では、これらについては、画質優先の方針に切り替えたからだ。

もっとも、圧縮率は低下しているものの、前述の性能向上要因はAGM2/3-DCT+にもあるので、画質優先の為に画像処理部の負荷は増加したのだが、フレームレートについては、顕著な低下は無い感じだ。

« MBPスレにまた変なのが | トップページ | Windows版からにする »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/66009588

この記事へのトラックバック一覧です: AGMエンコーダーの性能向上:

« MBPスレにまた変なのが | トップページ | Windows版からにする »

2017年11月
      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    

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google