スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« Mac版AGMPlayerに適用 | トップページ | デコードの方が苦しい不思議 »

基本、デコーダーは無変更

今は、Windows用AmuseGraphicsの開発フェーズで、まず、次バージョンに実装するAGM形式用の各種処理について検討してきた。その結果、エンコーダーは大幅な性能向上を実現したのだが、デコーダーについては、基本、無変更にする事にする。

昨日書いた様に、次バージョンのAmuseGraphicsファミリーソフトに実装する事になるAGMエンコーダーは、処理構造の変更を行う事で、主に、4コア以上のCPU環境で、現行版よりも大幅な性能向上を実現している。

ただし、上記の性能向上は、TiExtenderやAG-デスクトップレコーダーの様に、エンコード元のソースデータが十分な速度で得られる環境で使用されないと、体感できない場合もある。

具体的には、AGMPlayerの様に、ソースデータが別動画の場合、その動画のデコード速度が十分に高速でないと、いくらエンコーダー側が高速になっても、動画変換の速度は向上しない訳だ。

なので、昨日は、新バージョンのAGMエンコーダーを実装したAGMPlayerでも、動画変換速度は大して向上しなかった事から、デコーダー側の高速化も行う必要がある、と、書いた訳なのだが、少し真面目に調べてみると、そんな必要はない、という事が判った。

何故なら、エンコーダー処理をNopにして変換処理を行ってみた所、動画変換速度は2倍近く高速化されたからだ。つまり、AGMPlayerで行う動画変換が大して高速化されなかった原因は、どの道、AGMデコーダーの処理速度以上の速度は出ないから、という理由ではない、と言う事が判った訳だ。

もっとも、AGMPlayerの動画変換では、新エンコーダーを使っても、従来エンコーダーを使った場合と比べて、大して高速化されなかった、というのは測定ミスだった、という訳でもなかった。

と、言う事で、事実は小説よりも奇、という感じだったのだが、色々と調べてみた結果としては、どうも、新エンコーダーを使う場合には、スレッドの優先順位指定を行う必要がある感じだった。

何故、そんな事になるのか、というと、新エンコーダーでは、従来は一連の処理として行っていたエンコード処理を、映像部とコード化部に分離し、映像部は従来通りにマルチスレッド動作させ、コード化部については、今回、新たに、バックグランド処理の様な形で、複数フレーム用の処理をマルチスレッドで同時動作させる格好にした訳だ。

つまり、今回、エンコーダー用のスレッド数が2倍近くに増えたのだが、デコーダーの処理については従来通りなので、もし、全スレッドに均等にCPU性能が割り振られる場合には、デコーダーに割り振られるCPU性能は従来よりも低下する格好になる訳だ。

その結果として、デコード速度は低下し、エンコーダーに十分な入力が与えられない格好になる事から、エンコーダーを新バージョンに変更しても、大して高速化されなかった、みたいな感じになる訳だ。

と、言う事なので、スレッドの優先順位指定を行い、デコーダーの優先度を上げ、エンコーダーの優先度を下げてみた所、従来版に対して、それなりの性能向上が行われる事が確認出来た。

具体的には、2時間の480p30fps AGM3-DCT+動画をAGM3-DCTに変換した場合、現行版では、MacBook Pro 15インチ 2016モデルで、5分5秒かかるのだが、新バージョンでは、3分45秒で行える様になっている。

まあ、(5*60+5)/(60*3+45) = 1.355なので、性能向上率は3割5分程度しかないのだが、優先順位指定する前には、新バージョンでも4分45秒程度はかかっていた。

なので、それに比べれば十分な性能向上だし、アクティビティモニターのCPU使用率を見ていると、現行版だと、まだまだ頑張れるだろう、という感じなのだが、新版だと大体は8論理コアを使い切る感じなので、まあ、こんなモノかなあ、という感じがする訳だ。

ちなみに、優先順位指定で、デコーダーの優先度を上げるだけではなく、エンコーダーの優先度も下げているのは、mp4ソースからのエンコード時には、エンコーダーの優先度を下げないと対処できないからだ。

つまり、AV Foundationを使って実現しているmp4デコーダーについても、新版では、エンコーダーの負荷が高くなった分、処理速度が低下気味になっていたので、エンコーダーの優先度を下げる事で、処理性能の低下を防いだ訳だ。

と、言う事で、次バージョンでも、デコーダーについては、必要十分な性能がある、という事で、無変更扱いにする事にしたのだが、AGM-YV12/RGB用のデコーダーについては、少し弄るつもりではある。

これは、 AGM-DCT/DCT+については、4k60fps動画の再生も、少なくともMacBook Pro 15インチ 2016モデルでは、余裕で可能なのだが、YV12/RGBについては、フレーム落ちが気になるからだ。

« Mac版AGMPlayerに適用 | トップページ | デコードの方が苦しい不思議 »

トラックバック

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

この記事へのトラックバック一覧です: 基本、デコーダーは無変更:

« Mac版AGMPlayerに適用 | トップページ | デコードの方が苦しい不思議 »

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

広告

プライバシーポリシー

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

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

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

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