JITよりもJNIが優秀
昨日書いたように、今日はJITコンパイラが動作するAndroid2.2以降のアプリがJNIで高速化できるか試してみたのだが、配列に入れたデータを単純操作する分には、6倍も高速化された。なので、早速、AGMPlayerのJNI化も始めた。多分、2倍は高速化できるだろう。
« 2012年10月 | トップページ | 2012年12月 »
昨日書いたように、今日はJITコンパイラが動作するAndroid2.2以降のアプリがJNIで高速化できるか試してみたのだが、配列に入れたデータを単純操作する分には、6倍も高速化された。なので、早速、AGMPlayerのJNI化も始めた。多分、2倍は高速化できるだろう。
今日は、開発中のAndroid版AGMPlayerにファイル選択機能を実装した。なので、一応、大物機能は全て入った事になり、まだ、細かい部分の手直しは必要なものの、機能的には、普通に使えるようになった。しかし、再生性能は極力上げたいので、JNIも試してみる事にした。
今は、Android版AGMPlayerを開発中なのだが、まだ、再生ファイルが決め打ちになっていたので、ファイル選択ダイアログを追加しようかと思っていたのだが、その前に、インテントに対応させた。これで、ファイルラーでAGMファイルをタップすると、再生されるようになった。
今日は、Android版のAGMPlayerにUIを追加し始めたのだが、とりあえず、シークバーと再生/停止ボタンは作った。なので、普通の動画再生アプリと同じように、再生/停止とシークは画面をタッチして行えるようになった。後は、ファイルセレクタと情報表示程度にするつもりだ。
今はAndroid版AGMPlayerを開発中で、基本ルーチンは動作しているので、AGM形式の全モードを再生可能になっている。しかし、UIがないので、マトモには使えない。このため、これから作成していくのだが、標準的なメニューやダイアログ以外の実装は面倒だ。
一昨日は、PCのハードとソフトが退化しつつある、と、書いたのだが、どうも、ネット回線も退化中のようだ。何故なら、ITmediaに、「光」は再び輝くのか NTT東西、大幅割引で顧客争奪狙う、なんて記事があったからだ。作者も、光ネクストの勧誘は拒絶しているのだが。
今は、Android版のAGMPlayerを開発中なのだが、性能の最適化でDCT+以外のモードは動作しなくなっていた。なので、再度、他モードにも対応中なのだが、他モードはファイルサイズ的に動画再生には厳しい。しかし、スライドショー再生用には使えるだろう。
今日は、時事ネタにするのだが、PC Watchに「チックタック時代に別れを告げるBroadwell ~タブレットにフォーカスしたBGA版SoCのみ、LGAは終焉へ?」、という記事があった。イマイチ理解出来ていないのだが、いよいよ、PCの暗黒時代が始まるのかもしれない。
ここの所、Android版AGMPlayerの基本性能を上げていたのだが、ソフトデコード方式なので、Tegra2-1GHzのPHOTONでは、240p再生が限界みたいだった。一応、320x240なら30FPS再生もギリギリできるようになったのだが、余裕を見て、15FPSのつもりでアプリ化し始めた。
今日もAndroid版のAGMPlayerの性能を上げていたのだが、殆ど向上しなかった。なので、性能向上については、この辺で諦める。一応、ターゲットにしていた240pでは15FPS再生で余力がある。解像度が低いので画質は一昔前並みなのだが、その分、ファイルは小さくなる。
今日もAndroid版AGMPlayerの基本性能を上げていたのだが、昨日書いたようにファイルアクセス時のメモリアロケーションをヤメてみた所、ファイルアクセスも高速になり、1分の320x240-15FPS動画の全フレーム表示が40秒で出来るようになった。まだ不満ではあるのだが。
今は、Android版のAGMPlayerを開発中なのだが、とりあえずは、先週書いたように、性能が全然足りなかったので、基本性能を上げてみている段階だ。今日は、DCT逆変換ルーチンに、これも先週書いていた、アグレッシブな変更をしてみたのだが、性能は結構上がった。
今日は週末なので、時事ネタにしようと思って、2chのWindows8関連スレッドを見てみたのだが、ネタに出来そうな話は無かった。ただ、一人だけ、マトモな人もいて、MSはSurfaceの前に、ユーティリティ付きタッチパネル液晶を出すべきだった、と書いていた。
昨日書いたように、Android版のAGMPlayerの性能が足りないので、今日は、落穂拾いのような性能改善を色々とやってみたのだが、あまり代わり映えしなかった。念のために、DCT+以外のモードだとかでも確認してみたのだが、大体は、理屈通りの結果になった。
今日はAndroid版AGMPlayerで、ファイルデータを読み出してフレーム画像を連続表示出来るようにしてみたのだが、解像度を320x240に落としても、DCT+モードのファイルを表示すると、10FPSくらいでしか表示されなかった。これはTegra2-1GHzのPHOTONでの実機確認だ。
今日はAndroid版のAGMPlayer用のプロジェクトに必要なソースファイルを入れて画面描画ルーチンなんかの単体動作確認をしてみたりしていた。昨日書いたように、まだ、やる気になっていないので、進捗は遅いのだが、0ではないので、その内、何とかなるだろう。
Java版のAGMPlayerは全モードのAGM形式動画を再生できるようになっているのだが、Androidに移植すると性能が足りないような気がしている。しかし、全然ダメ、という訳でも無いような気もするので、とりあえず、Android版を作り始めた。今週中には動いているだろう。
今日、MSのWindows部門社長のシノフスキー氏が退社した、というニュースがあった。普通に考えて、Windows8がリリースされたばかりのこの時期に、責任者が突然退社するというのは考えられない事なので驚いたのだが、追い出すタイミングは今しかなかったのかもしれない。
今日は、Windows版AG-ムービーカッターで追加したAGM形式のデコード機能をJava版に追加していたのだが、同時に性能向上用に変更した処理ルーチンも適用していたので、DCT+の実装までは進まなかった。高圧縮オプション付きデータは再生できるようになった。
今日は、昨日は時間が足りずに諦めたWindows版AG-ムービーカッターのβ版を更新した。内容は書いてきた通りで、AGM形式の再生負荷がより軽くなり、使用環境や使い方によってはAGM形式のエンコード中にクラッシュする可能性があったバグが修正された。
昨日は、Ubuntu版とWindows版を同時に更新する、と、書いていたのだが、Ubuntu版の動作確認とアップロードをしていると今日が終わってしまったため、Windows版の更新は明日以降にすることにした。Ubuntu版はUbuntu12.10でも普通に動作した。
今日はWindows版AG-ムービーカッターの更新を適用したUbuntu版で新AGMモードのデコード性能を上げていたのだが、ほぼ従来モードと遜色無い程度まで上げられた。バグもあったので、Windows版も一緒にサイレントアップデートする。
今日もUbuntu版のAG-ムービーカッターにWindows版の変更内容を適用していたのだが、大体は動作するようになった。ただ、今回追加したDCT+モードだとか高圧縮オプションのデコード性能がイマイチなので、少し最適化してみている。
今日も、Ubuntu版AG-ムービーカッターにWindows版の更新内容を適用していたのだが、AGM形式の再生負荷が現在アップしてあるβ版よりも2倍近く高い事に気がついた。なので、対処したのだが、同様の変更で、Windows版も、もっと軽くできる。
AG-ムービーカッターはUbuntu12.04用にもβ公開してあるのだが、このバイナリはVer1.2.0をUbuntuに移植したものだ。で、Windows版のVer1.2.1βを公開したので、その更新分もUbuntu版に再移植し始めたのだが、作業自体は明日には終わりそうだ。
今日は何とかAG-ムービーカッターの次バージョンのβ版をリリースしたのだが、中々リリース出来なかったのは、今回のバージョンは現行版の不具合修正バージョンでもあったからで、リリースが遅れた分、現行版よりは重大な不具合は少ない筈、と、今の所は思っている。
Ver1.2.1βでは、AGM形式のデコード/エンコード性能を向上し、新たに高圧縮オプションとDCT+モードを追加しました。また、分割並列エンコード機能を追加し、Corei7等の多コアCPU利用時のエンコード性能を向上させました。今回から64Bit版も提供しています。
次バージョンのWindows版AG-ムービーカッターのβリリースは今日しようか、とも思っていたのだが、64Bit版でだけ、たまにエンコード開始時にクラッシュする問題があり、その問題も解決する事にしたので、今日のリリースはなくなった。多分、明日にはアップする。
Windows版AG-ムービーカッターの次バージョンのβ版については、配布パッケージも出来上がり、とりあえずのリリース準備は出来ているのだが、リリースは明日以降にする。何故か、というと、何時ものように、リリース前の使い込みで不具合が見つかったからだ。
次バージョンのWindows版AG-ムービーカッターも、正式版で追加しようとしている使い勝手向上用の機能を除けば、大体は使えるようになったので、βリリースしておこうかと思っているのだが、後ろがつかえているので、ドキュメントは後回にして出しておく事になりそうだ。
昨日書いていた問題は解決に苦労した割には単純な原因だった。なので、修正も簡単に行えたので、今日は手元にあるバイナリをCore2DuoでXPを動かしているMacBook(Late 2009)と、Celeron743でWindows7を動かしているdynabookMX/33でも動作確認してみた。