スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« なんとか再開 | トップページ | 少し寄り道をする »

何故か重いが

今日は、Ubuntu用のAG-ムービーカッターの開発作業を進め、音声部はまだなのだが、映像部については、AGM形式動画を30FPSで再生できるようにした。しかし、何故か、重い。Corei7マシンで1コア分に近いCPU使用率になっている。

まあ、再生している動画がフルHDというならまだ判るのだが、再生している動画の画面サイズは480x360なので、この程度で、1コア分に近いCPU使用率が必要、というのは、少し重すぎる気がする。

もっとも、上記は、画像の拡大処理を行っている場合で、拡大しなければ、CPU使用率はその半分くらいにはなっている。今のところ、拡大処理については、gtkmmの処理関数をそのまま使い、線形補完を適用してあるので、gtkmmの線形補完処理が重いのかもしれない。

ただ、拡大しない場合にも、まだ、重すぎるかもしれない。何故なら、同様の動画をWMV形式に再エンコードしてあるモノをVLCプレイヤーで再生すると、CPU使用率はずっと少ないからだ。ただし、今のところ、CPU使用率はシステムモニターで見ているのだが、このモニターの値というのは、何となく信用できないため、単なる測定ミスという可能性もあるかもしれない。

と、いうことで、とりあえずは、作成したラッパー関数を使って、オリジナルのコードを殆ど修正せずに、AGM形式動画の再生が行える所までは来たのだが、性能を考慮すると、まだ、何かしなければならないのかもしれない。

ただ、まだ、音声再生部分については作っていないので、性能問題については先送りにし、明日は音声出力を何とかして、音付きで再生できるようにしてみるつもりだ。

ちなみに、今日も少しトラブったのだが、その理由はMutexにあった。

WindowsのMutexでは、同一スレッドが取得しているMutexについては、再度取得することも出来るのだが、最初使っていたMutexオブジェクトではそれが出来なかった。

なので、ロック状態になり、動作しない処理があったのだが、Glib::Threads::RecMutexというオブジェクトを使うと、同一スレッドでの再取得もできるようなので、変えてみた所、動作するようになった。

ただ、Glib::Mutexのドキュメントを見てみた所、上記のように、再帰的な取得は出来ないため、再帰的な取得を行いたければ、Glib::RecMutexを使え、とあったので、そのドキュメントを見てみたのだが、既に、Deprecatedになっていて、その代わりとして、上記のThreads::RecMutexを使え、と、あった訳だ。

このため、今作成中のバイナリは、古いUbuntuでは動作しないかもしれない。作者的には、Ubuntu12.04で動作すれば問題無し、という事にするつもりなのだが。

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

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

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

(2013/12/07追加)

« なんとか再開 | トップページ | 少し寄り道をする »

トラックバック


この記事へのトラックバック一覧です: 何故か重いが:

« なんとか再開 | トップページ | 少し寄り道をする »

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

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

    ポリシーと規約 - Google