スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« Ubuntu版への再移植を始めた | トップページ | 再移植はできた »

デコード負荷が増えていた

今日も、Ubuntu版AG-ムービーカッターにWindows版の更新内容を適用していたのだが、AGM形式の再生負荷が現在アップしてあるβ版よりも2倍近く高い事に気がついた。なので、対処したのだが、同様の変更で、Windows版も、もっと軽くできる。

Ubuntu版の開発時には、再生性能を上げる事に注力していたのだが、Windows版の開発時には、AGM形式に新モードを追加した関係で、Ubuntu版に適用した性能向上用の細かい処理ルーチンは適用するのを端折ってしまった。

何故か、というと、動作モードが増えた関係で、細かい処理ルーチンがあるとコードの読解性が低下するため、元々Windows版にあった、より単純な処理ルーチンをベースにして開発していたからだ。

と、言うことで、作者的には、それ程の効果がある、と言うことは忘れていたのだが、現在アップしてあるβ版と、Windows版ベースに変更した現在のバイナリで再生性能を比較すると、冒頭のように、処理負荷が2倍近く違った訳だ。

なので、現在アップしてあるUbuntu版のソースコードを参照しつつ、性能を上げていったのだが、とりあえず、コードをそれほど汚くしなくても、性能劣化は1割未満には出来たので、同様の変更はWindows版にも適用しようか、と、思っている。

もっとも、Windows版の再生負荷が高い原因の半分くらいはデコードをマルチスレッドで行っているからに過ぎない。

つまり、何度か書いてきたように、マルチスレッド化すると高速にはなるのだが、処理効率が低下するため、負荷は増えてしまうのだ。

その代わり、フルHD動画なんかでは、シングルスレッドでは性能が足りない場合にも、マルチスレッドなら、性能が足りる場合も出てくる。

このため、デコードをマルチスレッドで行うか、シングルスレッドで行うかについては、設定を儲けるか、自動判定するかして、切り替え可能にしようと思っていたのだが、まだ、その辺のルーチンは出来ていないので、Ubuntu版ではシングルスレッド、Windows版ではマルチスレッドになっていた訳だ。

ちなみに、上記はDCT/DCT+モードについての話で、YV12/RGBモードについては、Windows版はUbuntu版よりも軽くなっている。

これは、Windows版の開発時にハフマン圧縮関係の処理ルーチンを軽量化したためなので、この変更を適用したUbuntu版は現在アップしてあるバイナリよりも軽くなっている。

と、言うことで、若干トラブったため、変更作業は明日も続く事になる。

= この記事に関連する公開中ソフト =

AG-ムービーカッター for Ubuntu 12.04LTS

AG-ムービーカッター for Ubuntu12.04LTS

(2013/12/07追加)

« Ubuntu版への再移植を始めた | トップページ | 再移植はできた »

トラックバック

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

この記事へのトラックバック一覧です: デコード負荷が増えていた:

« Ubuntu版への再移植を始めた | トップページ | 再移植はできた »

2018年7月
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 のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google