スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[iRemote]動画モード改良

画像解凍用スレッドを新たに追加してみた。
これまで通信スレッドに含まれていた処理系を外に出したことで、次の通信を開始するまでの時間を短縮できることから、長い時間で見た場合のビットレートが上昇する。
これにより150KB設定でも安定してDLできるようになる、かもしれない。

また、解凍処理は負荷がまとまって発生するのか、スレッド優先度にほぼ関係なくそちらに処理がとられて描画が遅れ、結局動画がカタツクということが発生していたので、解凍系を描画フレームにあわせて間隔をあけて解凍していくことで負荷の分散をはかり、カタツキを抑えるというのもやってみている。


ケータイで3スレッドとかワタシには結構未知な領域。
同時に3スレッドが動作するってことは少なくなるようにはしてるが、、、


■追記
どうやら作戦は成功のようでカクツキはかなり抑えられた。
10fps設定の動画ではこれまで端末では20fpsで書き換えていたところを30fpsにしたことで一回の更新遅れの影響を減らすことができてるみたい。負荷分散をしない場合は30fpsが安定してでるものの、通信が完了した瞬間に限り大幅にfpsは低下し一桁にまで落ちる。これがカタツキの正体。負荷分散により30fpsが安定してでなくなるものの、全体を通せば負荷の波は小さく、20fps近辺が出続けることで描画遅れが減る。動画そのものの設定である10fpsの倍程度の描画fpsが常に出続ければ滑らかに描画することができる。(描画も設定通りにぴったり10fpsで描画しようとすると、突発的な遅れであっさり1フレーム飛ばすことになってしまう。)

バッファブロック切り替え時に誤って前ブロックの画像を一瞬描画してしまうバグもある模様。
バッファ管理方法を変更すれば解決できそう、かも。

■追記
負荷分散的なスレッド利用が有効で便利なものであることがわかったので、今度はリモートモード中でこれを使うか検討中。
それを実装すると具体的にどんな利点があるかっていうと、それはカーソル移動の瞬間的な固まりを防ぐこと。その他アニメーション関連のすべてがスムーズになります。
ただ動画モードと違って欠点もあって、それは画像更新が遅れるという点。
ゆっくりと画像を解凍していく関係で反映までに時間がかかります。
すばやさを優先するリモートモードでは結構致命的。しかし滑らかさは快適さにつながるのでそこそこ重要な点。


■追記
サーバーアプリ側に正しく終了できないことのある不具合を発見。
現在調査中。⇒修正完了

コメントの投稿

非公開コメント

Go To 物置。
プロフィール

書いてる人:つん

まったりのんびり。書いてる人の息抜きブログです。

多分連絡先↓
metal_tsun@yahoo.co.jp

カテゴリー
リンク
月別アーカイブ
バロメーター
Java歴:2005年2月から今まで。
3DCG歴:2005年8月から数年。
C歴:2006年4月から今まで。
VB歴:2007年3月からちょっと。
Delphi歴:2007年3月からちょっと。
PIC歴:2007年5月から数年。
イラスト歴:2007年12月から今まで。
DTM歴2008年2月からちょっと。
PHP歴2008年4月からちょっと。
C++歴2008年4月から今まで。
C#歴2009年1月から今まで。
Objective-C歴2009年4月から今まで。
CSS歴2012年5月から今まで。

ブログ開始日2005/10/11


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。