W-ZERO3による動画再生

2007/08/29W-ZERO3::Tips

・・・・・・この記事「 W-ZERO3による動画再生 」は書きかけだけど、でも勘違いしないでよねっ! べっ、別に、アナタに加筆して欲しいわけじゃ無いんだからねっ! まっ、まあ、アナタがどうしてもって言うのなら、ちょっとだけ書かせてあげてもいいけど・・・・・・

W-ZERO3[es]向けに動画なんかを作成しています。
比較的重めなリトバスのムービーをサンプルに色々試行錯誤しながらやっています。

使ったツールや方法などは徐々にまとめていきます。

W-ZERO3に適した動画形式の選択

TCPMPでは以下の動画形式に対応しています。

  • MPEG-4 (.mov, .mp4, .3gp)
  • H264 (.mp4)
  • Windows Media Video (.wmv)
  • ビデオファイル (.avi)
  • DivX圧縮ビデオファイル (.avi)
  • MPEG (.mpeg, .mpg)

このうち、ビデオファイルやMPEGデータはファイルサイズの観点からW-ZERO3での再生は困難と言えます。そうなると、MPEG-4系の圧縮動画形式が候補となりますが、このうちWMVに関しては元々が再生にパワーを要求する形式であるため、貧弱なW-ZERO3のCPUでは快適な再生は困難です。これまでの経験からDivX圧縮の動画はそれなりに快適に再生できることが分かっているため、今回はDivX及びH.264圧縮による動画を対象とします。

また、今回重点を置いているのは単に再生出来るという点ではなく、許容範囲の画質で出来る限り高い解像度での高フレームレート(30/24fps)の再生という点です。

中間報告

TCPMPベンチマークについて

一部を除いてTCPMP上で動画再生のベンチマークを行っています。TCPMPの動画再生ベンチマークでは、ドロップフレームなしで再生を行い、動画長/再生時間で結果を出力します。
TCPMPのベンチマークで100%となっていればコマ落ち無しで再生出来るように見えますが、実際には動きが多い部分には処理が重くなり、少ない部分は処理が軽くなります。ベンチマークの結果はあくまでも全体の平均ですので、実際の再生でコマ落ちが気にならない為にはだいたい110%以上のベンチマーク結果が必要となります。

H264 320x240 30fps (Video iPod向け設定) 384kbps

TCPMPベンチマーク: 66%
重すぎて使い物になりません。

DivX6.6.1 320x240 30fps 600kbps + MP3 128kbps

コマ落ち無しで再生出来ますがブロックノイズが目立つ…

DivX6.6.1 320x240 30fps 800kbps + MP3 128kbps

コマ落ち無しで再生出来ますが画質の荒さが目立つ…

DivX6.6.1 640x480 30fps 1150kbps + MP3 128kbps

TCPMPベンチマーク: 90%
一定間隔毎にコマ落ちが発生してしまう

DivX6.6.1 640x480 30fps 896kbps + MP3 128kbps

TCPMPベンチマーク: 110%
動きが激しい部分でコマ落ちが発生してしまう。520MHzにクロックアップでコマ落ちが許容範囲内になる。

DivX6.6.1 400x320 30fps 800kbps + MP3 128kbps

TCPMPベンチマーク: 110%
コマ落ち無しで再生可能だが画質の荒さが目立つ…

DivX6.6.1 640x480 24fps 800kbps + MP3 128kbps

TCPMPベンチマーク: 110%
コマ落ち無し、画質も許せる範囲。このあたりが限界か。

2007/02/10(土)W-ZERO3のアプリ

アプリケーションによってはW-ZERO3以外のプラットフォーム向けにビルドされた実行ファイルが含まれています。WindowsCEを扱ったことが無い人にはよくわからないと思われるのでまとめておきます。

プラットフォーム

  • HPC2.0
  • HPC Pro
  • HPC 2000
  • PsPC
  • PPC(PPC2000)
  • PPC2002
  • WM2003(WM2003SE)
  • WM5.0

W-ZERO3はWindows Mobile5.0プラットフォームですので、用意すればこれを利用するのが一番です。が、Windows Mobile 5.0プラットフォームは後方互換性をもっているのでWM2003(WM2003SE), PPC2002, PPC(PPC2000), HPC2000, HPC Pro向けにビルドされたものも(画面配置やなどの問題はありますが)大部分は動作させることが可能です。
基本的に、WM5.0>WM2003(SE)>PPC2002>PPC>HPC2000>HPC Proの順に選択すればいいでしょう。ただし、WM5.0以外のプラットフォームをターゲットとして開発されたアプリの実行にはMFCCExxx.dllが必要になる場合があります。

ターゲットCPU

上記のプラットフォームによる分類の他に、ビルドのターゲットとなるCPUのタイプが別れています。
WinCE向けのターゲットCPUタイプには以下のようなものがあります。

  • MIPS
  • SH-3/SH-4
  • ARM
    • ARMV4I
    • ARMV4T

W-ZERO3にはIntel XScale PXA270が採用されており、CPUのアーキテクチャ的にはARM系に属します。ARM系にはさらに、ARMV4IとARMV4Tに別れている場合があり、ARMV4Iは実行速度は速くなるがファイルサイズが大きくなる、ARMV4Tはファイルサイズは小さいが実行速度は遅くなるという特徴があります。

W-ZERO3の運用ポリシーにもよりますが、ARMV4Iを導入した方が幸せになれると思います。

2006/11/10(金)[es] GSFinder+をテンキーだけで利用する

W-ZERO3[es]のテンキーを活用するのGSFinder+における具体的な実装例。

W-ZERO3 Utility Plusの設定

[album:w03/soft:wu_gsf1.jpg] [album:w03/soft:wu_gsf2.jpg]

同時押し割り当てキーキーバインド機能
縦画面左ソフトキーアプリ起動
"ChgInputMode.exe" -1
入力モードを半角数字に
縦画面右ソフトキーAlt+Ctrlタップ&ホールドメニュー
単独キー1Tabフォーカス移動
単独キー2Escキャンセル
単独キー3BackSpace一つ上の階層へ
単独キー4Ctrl複数選択時のトリガ
単独キー5Shift複数選択時のトリガ
単独キー6Del削除
単独キー7Ctrl+Z元に戻す
単独キー8Ctrl+X切り取り
単独キー9Ctrl+Cコピー
単独キー0Ctrl+V貼り付け
長押し:単独キー0~90~9キーボード使用時に0~9を入力する為に必要

上記のように設定することで、テンキーだけで(スタイラスでの操作も必要なく)GSFinder+を操作することができます。
尚、削除や切り取りなどの危険な操作もワンタッチで行うことができてしまうので運用には十分注意して下さい。

2006/11/10(金)W-ZERO3[es]のテンキーを活用する

W-ZERO3[es]のテンキーは、半角数字入力時(_1)には仮想キーコード(0~9, #, *)を発生させます。
このため、W-ZERO3 Utility Plusを活用することで多くのソフトがスタイラスやキーボードを使用せずに、テンキーだけでの操作が可能となります。

あると便利なツール

文字キーで入力モードを選択することができますが、なかなか面倒です。
このため、起動すると指定した入力モードに切り替えてくれるソフト「ChgInputMode」を利用することで簡単に半角数字モードへ切り替えることが可能となります。

このChgInputModeの起動もW-ZERO3 Utility Plusで行うことができますので必要に応じて割り当てるといいでしょう。

一般的なキーバインドに関するTips

  • 左ソフトキーはF1、右ソフトキーはF2を発生させる
  • タップ&ホールド(右クリックメニュー): Alt+Ctrl
  • 元に戻す: Ctrl+Z
  • 切り取り: Ctrl+X
  • コピー: Ctrl+C
  • 貼り付け: Ctrl+V
  • 削除: Del
  • 戻る、1つ上の階層へ: BS
  • フォーカス移動: Tab
  • テンキー#にW-ZERO3 Utility Plusで機能を割り当てるには「同時押し:Shift+3」

戯言

以下、確証はもてませんが。

  • 入力モードが半角英数(_A)の時には「テンキー2」を一度押しで「A」、二度押しで「B」、三度押しで「C」を発生させている気がする
  • 入力モードによってカーソル中央のボタンは発生させる仮想キーコードが異なり、半角英数の場合「アクションボタン」でかな/カナ入力時には「#E5」を発生させている?
  • 「OK」ボタンの仮想キーコードは「Win+F6」
  • クリアボタンの仮想キーコードは「#08」
  • 音量Upボタンの仮想キーコードは「#21」
  • 音量Downボタンの仮想キーコードは「#22」
  • 画面回転ボタンの仮想キーコードは「App4 (A4)」

具体的な実装例

2006/06/21(水)ももらぼっ!さんのツールを試してみる

ももらぼっ!さんで公開されているツールを試してみます。

kickmail 1.30

概要

Outlook Mobileのメールはソフトを立ち上げても「受信トレイ」にフォーカスされており、
本来表示させたい「受信トレイ - 受信済みアイテム」を表示させるのに一手間かかります。
kickmailはこの煩わしさを解消してくれるソフトで、このソフトをパラメータ付きで立ち上げることで
「受信済みアイテム」にフォーカスされた状態でOutlook Mobileを開くことが出来ます。

っていうか、これぐらいデフォルトで設定できるようにしろー>M$

単体で使用するよりもSendNow, SendRと組み合わせて使用するソフトだと思います。

SendNow 1.11

概要

W-ZERO3ではメールを作成して「送信」ボタンを押しても、「送信トレイ」に入れられるだけであって、
実際に送信されたわけではありません。これは、一般的なメールソフトのデフォルトの動作であるといえますが、
W-ZERO3の場合はあくまでカテゴリは「携帯/PHS」ですので、すぐに送信して欲しいものです。
#と、いうかこのステキ仕様のおかげで何度送ったと思ったメールが「送信箱」の中に入っていたか…

SendNowはこういった煩わしさを解消してくれるソフトで、作成したメールをすぐに「送信」してくれます。

っていうか、これぐらい(ty

設定

ももらぼっ!さんで紹介されている通りなのですが
  1. W-ZERO3 UtilityPlusで\Windows\tmail.exeを対象としたプリセットを作成
  2. ボタン操作 - ソフトキー1にアプリ割り当て「SendNow /touchleft」
これだけです。
これで携帯電話的な操作感になりウッハウハですw

Tips未満

SendNow.iniを編集してさらに便利にします
私のSendNow.iniの内容は下記のようになっています
[exec]
before=
after=SendR.exe
send=kickmail.exe
このSendNow.iniでは
何らかの理由で送信箱内のメールがすべて送信できなかった場合に、再度送受信を行います。
SendRは次のセクションで。
送信箱の中のメールが全て送信できたら受信済みアイテムに戻ります(デフォルトだと受信箱なので)

SendR

概要

メールの送受信を行うソフトです。通常の携帯だと「センター問い合わせ」にあたる機能です。
kickmailやSendNowと組み合わせることで非常に便利になります。

SendR.ini 設定メモ

[setting]
account=

[exec]
before=kickmail.exe
after=kickmail.exe
noread=kickmailm.exe
この設定では送受信後に未読メールがあればそれを開く、なければ受信済みアイテムを開くとなっています。
なお、コマンドラインパラメータは指定できないようなのでkickmail.exeを
コピー&リネームし/noread オプション付加と同等となるkickmailm.exeを用意しています。

私はメールボタンにこのSendRを割り付け、送受信と未読メール閲覧をスムーズにできるようにしています。