スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« やっぱり全然足りない | トップページ | マトモな人も一人いた »

特に勘違いは無さそうだが

昨日書いたように、Android版のAGMPlayerの性能が足りないので、今日は、落穂拾いのような性能改善を色々とやってみたのだが、あまり代わり映えしなかった。念のために、DCT+以外のモードだとかでも確認してみたのだが、大体は、理屈通りの結果になった。

今の所、ターゲットにしているのは、解像度が320x240の高圧縮オプションを適用したDCT+モードの動画を15FPSで再生する事なのだが、この設定でエンコードした1分の動画を待ち時間を入れずに全フレーム表示すると、1分15秒かかっている。

つまり、15秒分性能が足りないのだが、YV12モードでエンコードすると、1分かからずに表示は終わる。また、解像度を160x120に落とせば、DCT+モードの30FPSでエンコードしても、1分以内に表示は終了する。

と、いう事で、別条件でテストしてみても、別段、可笑しな結果にはならないため、特に勘違いは無さそうなのだが、DCT逆変換ルーチンの処理を半分にしてみると、画像は可笑しくなるのだが、処理は丁度1分で終わった。

なので、DCT逆変換のオーバーヘッドは30秒くらいと考えられるのだが、だとすると、残りの45秒のオーバーヘッドは何処でかかっているんだろう? という話になる訳だ。

高圧縮オプションを使うのをやめると、ハフマン圧縮の展開処理が不要になるため、処理時間は減るのだが、5秒程度だった。

このため、残りの40秒はその他の処理のオーバーヘッドという事になるのだが、今日の所は、まだ、その内訳は判っていない。

作者的には、YV12逆変換と画面表示のオーバーヘッドが大きいのなら、表示が間に合わない場合には、適時、これらの処理をスキップする事はできるので、望ましいのだが、何となく、違うような気がしている。

まあ、もう少し、色々とテストしてみれば判る話なので、明日には結果は出ているだろう。

ちなみに、Java版では、SSE2命令を使っていないがために、DCT逆変換のオーバーヘッドが大きいのだが、その分、小回りも効く。

なので、処理ルーチンをアグレッシブに変更すれば、オーバーヘッドは減らせそうな気もしてきているので、Tegra2-1GHzのPHOTONで、320x240の15FPS再生は可能になるかもしれない。

とりあえず、今のターゲットはAndroid2.2以降にしているので、マルチコアの性能は使えないのだが、今時のAndroid4.0以降のデュアル/クアッドコアをターゲットにすれば、320x240の30FPS再生くらいなら、SIMD命令やハードウェア支援がなくても、CPUだけで何とかなるかもしれない。

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

AmuseGraphics

AmuseGraphics

(2013/12/08追加)

« やっぱり全然足りない | トップページ | マトモな人も一人いた »

トラックバック

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

この記事へのトラックバック一覧です: 特に勘違いは無さそうだが:

« やっぱり全然足りない | トップページ | マトモな人も一人いた »

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