2009/02/18

Assembled in TX?

これといって情報もないのですけど、小ネタを一つ。何やらPandoraの組み立てはアメリカで行われる模様。しかもテキサスの工場らしい。何か新鮮な響きですね。テキサス。私の中ではテリーマンか、マイケル・デルの印象しかないのですけど(笑)。多分ですけど、TI関係で工場を紹介してもらったのかもしれませんね。そうだったら、組み立て品質については合格点が出そうですね。ちなみに、ケースは中国の工場に発注しているらしい。CNCケースと同じ工場なので、CNCケースの出来が良ければ、そのままゴーサインが出せるので、MP用のケースの品質も心配する程でもないみたい。

本当はケースだけじゃなくて、組み立てまで中国に発注しようと思っていたらしいですけど(その方がコスト的にはだいぶ安いらしい)、品質的に問題があるので止めたそうです。勿論、全ての中国企業が粗悪品を造る訳ではないですが、Pandoraの製作チームみたいに、素人に毛が生えたような企業だと、相手も足元を見る場合が多く、結果的に「掴まされる」可能性が高いと判断したのかもしれません。個人的な見解ですけどね。こういった製品にしては珍しくPandoraは「アメリカ製品」になる見通しみたいです。正確には「Manufactured in China, Assembled in USA」みたいな感じですかね。多分ですけど。

2009/02/17

PowerVR SGX demo

そういえば、Pandora実機上でのPowerVR SGXのデモも公開されていました。関係ないですけど、以前書いたBeagleBoardでのデモの辺りで、BBコミュニティとPandoraコミュニティとで一悶着あったみたいですね。どうも、BB側からするとPandora(特にCraig氏)は情報がいい加減すぎると思われているみたい。確かにそういった印象は無きにしも非ず(苦笑)。

というか、BBのコミュニティに比べると、PandoraのコミュニティはFLOSSに対して認識不足であると感じる部分はありますね。まぁPandoraの成り立ちを考えれば、無理からぬ事だとは思いますけど。もともとは携帯ゲーム機でのエミュ・自家製ゲームのコミュニティですからね。最近はだいぶFLOSS系も流入してきてはいますけど(笑)。

話がだいぶ脱線しました。まぁそんな感じで微妙な感じの両プロジェクトですが、着々と成果物の融合が進んできているみたいです。このOpenGL/ESのドライバーもそうですね。もう少し時間が経てば、今度はPandora側からのエミュレーター・ゲーム系ライブラリ等での成果物がBB、ひいてはOMAP/ARM系のコミュニティ全体へ還元されると思います。早くそうなるといいですね。

余談ですが、ビデオ中に出てくるマウス(なんか豚っぽいけど)のデモに見覚えがありました。どこかで見たなぁと思っていたのですが、遙か昔にMWeston氏が製作していた自分用ゲーム機(笑)でのデモでした。同じデモかは解りませんが、だいぶスムーズな動きしてますね。Pandoraの方。楽しみだなぁ。

#YouTube
PowerVR SGX demos running on a Pandora dev board. - YouTube
http://youtu.be/xeEZq1-AH5I



More PowerVR SGX demos running on a Pandora devboard. - YouTube
http://youtu.be/wnr4HCIoFlk

2009/02/16

PandoraとUSB #05

この前書いたPandoraとUSBモデムですが、フォーラムの方でも話題になっていました。結論から言うと、「使える」という事らしいです。

使えるといっても、予想通り「D02HW」(海外ではE220)はFULL-SPEEDまでしか対応しておらず、EHCIに直接挿して使う事は出来ない模様。今回検証を行った、主要デベロッパーの一人であるDJWillis氏は、EHCIにHI-SPEED対応のセルフパワーUSBハブを挟んで使用したみたいですね。残念。

今回はOTGでの使用は行われませんでしたので、そちらでの使用が可能なのかはわかりませんでした。まぁこちらの場合、二股USBケーブルの使用が可能なのかが知りたいので、実験してくれるかわかりませんけどね。話の流れてきに、「自己責任」による使用ならば、理論上は可能というのが大半の見方らしいですが。ただ、推奨は出来ないとの事らしい。

朗報としては、E220よりも新しいUSBモデムである、Huawei E160では、USBハブを経由しないEHCI直挿しで、USBモデムとして認識は出来たそうです。実際の通信までは確認していないそうですけど。

これはかなり嬉しい情報です。Huawei E160がいけると言う事は、同じ系統であるHuaweiのイー・モバイル端末にも可能性が残されているとみて良いと思います。具体的には、「D21HW」と、最近出た「D12HW」。

ただマニュアルを読むと、D12HWの方は「Full Speed」って明記されているんだよなぁ。対して、D21HWの方は何も書かれていない。これをどう見るべきなのか迷います。微かな希望としてD12HWの方はSDカードリーダーの機能も付いている事。こういったカードリーダー系って、速度的にHi-SPEEDの方が普通だと思うのですけど、そうでもないのかな。

まぁ無難なのはD21HWの方ですけどね。こちらはLinuxでの使用報告があれば多分大丈夫でしょうし。というか、実機持っている人にHi-SPEED対応かどうか確かめてもらうのが一番確実な方法なんですけど(笑)。誰かお願いします。

#外部リンク
‘Mobile Broadband’ on the Pandora? @ Distant-Earth
http://blogs.distant-earth.com/wp/?p=51

データ通信カード D21HW | イー・モバイル
http://emobile.jp/products/hw/d21hw/

データ通信カード D12HW | イー・モバイル
http://emobile.jp/products/hw/d12hw/

2009/02/14

Bluetoothの謎 A2DP編 #03

今日もしつこくA2DP。微妙ですがZaurusよりもハードウェア的にPandoraに近いであろう、NokiaのN8xxシリーズでのA2DP状況について調べてみました。その辺を適当に書いときます。某フォーラムから引用。
--Current Status--
What works:
-Playing music with mplayer and Kagu and Mediabox through your A2DP headphones!
-Scrolling in Kagu or Mediabox does not cause skipping, usually.
What's not so great:
-CPU usage is ~50% at 320MHz! That'll go through battery life pretty fast.
-No way at all to playback music through A2DP in the default media player
-Skipping can still occur during periods of high CPU usage from other apps.
-Installing still takes a little time at the command line. No need to learn vi or mess around with root privileges though.
まずは動くかどうか。とりあえずは動くらしい。ただし再生できるアプリケーションが限定されているみたいですね。Pandora的にはMplayerで動けばOKなので、その点では大丈夫みたい。Maemoだとデフォルトのメディアプレイヤーが対応していないみたいですね。どのくらい快適なのかですが、正直あんまり快適ではなさそう。

Bluez的にはSBCエンコードをソフトウェアで処理するので非力なCPUしかないSoC系では厳しそう。現にN810でも320MHz動作時でCPU使用率が50%に達する場合もあるみたい。これは厳しい。いくらBTが省電力(2.5mW)でも送り出しにこんな消費するんじゃ意味ないですね。

適当ですがN810で50%(320MHz時)と言う事は600MHz動作時のPandoraで25%。まぁARM自体のバージョンが違うので、一概にどうとは言えませんけど。ARMの話じゃARM11とCortex A8じゃ3倍くらい違うとか言っていた気がしますし。実際はそこまで差が出るとは思えませんけど。まぁ2倍くらいとして10%台半ばくらいですかね。OSとかメモリとかも換算しなくちゃいけませんけど。

希望があるとしたら、やはりDSPの使用ですかね。後はCPUのNEON最適化も。NEONは性能的に微妙らしいですが、DSPの方は結構有望だと思います。現にNokia機でもDSPの使用は試みられているみたいです。更にSBCは最適化しやすいコーデックらしいですし。勿論、そう簡単に最適化できるものではないでしょうけど、将来的にはあり得ると思います。

どちらにしろPandoraでのA2DPは音楽鑑賞や、動画再生時のみに使用するといった使い方しか出来なさそうですね。これでエミュレーターとかも併用するにはCPU負荷がかかりすぎるかもしれません。もしDSPやNEONの最適化が可能になったとしても、他のアプリケーション(PSXエミュ等)でも、同様にDSPやNEONを使用する可能性もありますからね。残念ですけど。

それと、Bluezの対応アプリケーションのリストに書いてあったのですが、XMMSとの相性が悪いそうです。やはりXMMSのデフォルトアプリ化は避けてもらいたいですね。一応、後継としてaudaciousというのがありますし。ただaudaciousって微妙に重いし、不安定なんだよなぁ。最新版はどうなのかわかりませんけどね。

#外部リンク
A2DP works, help me test it? - maemo.org - Talk
http://talk.maemo.org/showthread.php?t=13468

Questions for Nokia - maemo.org wiki
http://wiki.maemo.org/Questions_for_Nokia#Status_of_DSP_SBC_task

Huawei i-Mo HSPA modem with WiFi

寝ようと思ったらスゴいのキター! これとPandoraは最強になれる気がする。イー・モバイルは直ぐにでも買い付けに走るべきだ。

#外部リンク
Huawei i-Mo HSPA modem with WiFi - SlashGear
http://www.slashgear.com/huawei-i-mo-hspa-modem-with-wifi-1334150/#entrycontent

2009/02/12

Bluetoothの謎 A2DP編 #02

昨日に続いて、A2DPについて調べているのですが、やっぱり難しい。手元にBT機器が一つもないというのも大きいですが、思ったより日本語での情報が無さそう。というかBTって結構複雑なんですね。プロファイルいっぱいだし。とりあえずPandoraで使うであろうLinuxのBlueZの公式ウェブサイトを見てみたら、結構興味深い事がかかれていました。以下抜粋。
This release contains mostly fixes for the audio support. The SBC encoder should now produce a much better audio quality and its performance should increase noticeably on ARM and x86 platforms.
何というタイミング。どうやら例のSBCコーデックのエンコーダー性能が向上したらしい。そのおかげでARM(とx86)環境での性能が著しく上昇しているみたい。これはおいしい。でも、SBCのエンコードってソフトウェア処理なんですね。てっきりBTデバイス(ドングル等)がハードウェア処理しているのかと思ってた。よくわからん。それともBlueZだからなのかな。

SBCのエンコードがソフトウェア処理という事は、昨日チラッと書いたオプションのMP3やAACの処理もソフトウェアで対処出来るのかなぁ。だとしたら送信側(Pandora)はどうにでもなるって事ですよね。受信側(ヘッドフォン等)は最初から対応していないと駄目ですけど。そんな単純じゃない? 謎がいっぱい。

何か私が思っていたMP3対応と違うなぁ。イメージとしてはMP3やAACに対応している場合なら送受信前の再エンコードをスルー出来る機能なのかと思っていたのですけど、単に再エンコードにSBCじゃなくてMP3やAACを使用出来ますよってだけなのかなぁ。そうだとしたらあんまり嬉しくない機能だな(笑)。単にCPU負荷が上がるだけっぽい。

そりゃ低ビットレートならSBCよりもAACの方が音が良くなりそうだけどさ。結局ある程度以上(300くらい)のビットレートで飛ばす場合、それほどの差がつくとは思えないし。ってSBCの性能がどのくらいかわかりませんけど。調べた感じだとMP3とそれほど変わらないみたい。もちろんビットレートによりますけど。

それより、気になったのはA2DPで飛ばす場合、送り出し側がSBCにソフトウェア処理で再エンコードしなくちゃならないって事です。毎回この処理をするって事は、Pandoraのような非力な機体だと馬鹿にならないコストだなぁなんて思ったりして。普通に音楽鑑賞くらいならどうって事ないでしょうけど、動画だったりゲームだったり、ましてプレステのエミュを使用しながらA2DPで飛ばすなんて事をしたら、結構ヤバい気がします。もしかしたら全然違う事なのかもしれませんけど。ザウルスでの実績を調べてみた方がいいかな。多分同じパターンだろうし。内蔵しているかどうかっていうのはありますけど。

#追記
上で書いたSBC機能の向上ですがバージョン4.28に含まれているみたいです。Pandoraで使用されるであろうAngstromのパッケージを調べてみたらOMAP3用のパッケージは現在4.29みたいです。有難い。

#外部リンク
BlueZ
http://www.bluez.org/

Bluetoothの謎 A2DP編

続いてBluetoothでの音楽鑑賞編です。調べた所、BTで音楽を聴くにはA2DPというプロファイルを使用しなくてはいけないみたいですね。それと、AV機器のリモコン機能を実現するためのプロファイルとしてAVRCP。とりあえず、この2つのプロファイルがあれば、機能的に問題はなさそうです。そのA2DPですが調べてみると意外とややこしい。基本的にSBCというコーデックでやり取りされるみたいですね。以下、某サイトから引用。
A2DP は GAVDP に依存しています。A2DP では、複雑性が低いサブバンド コーデック (SBC) のサポートが必須であり、オプションで MPEG-1 と 2 オーディオ、MPEG-2 と 4 の AAC および ATRAC がサポートされます。
なるほど。最低でもSBCというコーデックをサポートしていなくてはならず、オプションとしてMP3やAACでのストリーム送信もサポートするらしい。A2DP対応と謳っている商品でも実際にMP3やAACまでサポートしている商品はかなり少ないみたいですね。Sonyの商品はMP3対応というのもありましたが。

ちなみに、このMP3対応というのもBluetoothデバイスが送受信ともにMP3に対応していなくちゃいけないのか、受信側だけでいいのかまでは調べられていません。多分、両方共にサポートされていないといけないのでしょうけど。

もしそうなら、Pandoraでは基本的なSBCのサポートしかないだろうな……。多分ですが、このMP3対応みたいなやつは、パソコンのような汎用性のあるデバイス用ではなく、iPodやWalkmanのような、家電製品向けの拡張機能なんでしょうね。まぁどちらにしろ、MP3は使いませんけどね。Ogg厨だし。

さて、肝心のSBCですが、こいつが少しやっかいそう。SBC自体はデコード負荷が少ないコーデックで扱いやすいみたいですが、A2DPで音楽を聴こうとすると、BT機器間の無線部分で、必ずSBCへのエンコード・デコード作業を挟まなくてはならないという事になります(多分)。

となると、例えばPandora内でOgg Vorbisだったデータが、BT機器間ではSBCに再エンコードされて送受信され、そのSBCデータを人間の耳で受け止めるという事になってしまいます。これは残念な事実ですね。必ず再エンコードを挟まなくてはいけなくなる訳ですから。間違っているかもしれませんが(苦笑)。

となると、PandoraでA2DPを頻繁に使う場合、元データはFLACのようなロスレスか、Ogg Vorbisでもビットレートを高めに設定したファイルにしないと、多少残念な結果になるのかも知れません……。まぁ実際に使用した事がないので、何とも言えませんけどね。

それに、A2DPの使用が限定的な場合はあんまり気にする事はないかも。電車に乗っている時とか、人混みでの使用時とか。まわりがうるさいですからね。無線の利便性を考えれば十分実用的ですし。

#外部リンク
ケータイ用語の基礎知識 第259回:A2DP とは
http://k-tai.impress.co.jp/cda/article/keyword/27461.html

2009/02/11

Bluetoothの謎

最近Bluetoothについて調べているのですが、いくつかわからない所があります。もっとよく調べれば答えが出てくるのだろうけど。とりあえず気付いた点。主にPandoraで使用する場合。
#PandoraのBluetoothは何?
いい加減な推理ですが、TIのBRF6300の気がします。理由は適当(笑)。HTC DreamのBTがBRF6300だからとか、TIの製品でBTが2.0+EDRなのがこれだからとかそんなのが理由です。Pandoraのソースコードを見て理解できる人なら確実なんでしょうけどね。悲しいかな、私には無理ですからいい加減な推理しか出来ません……。

#Bluetoothの同時接続数は?
ざっと調べた所、7個というのが標準らしい。キーボード、マウス、GPS、モデム、ヘッドフォン(ヘッドセット)、ゲームコントローラー、思いつくところでこんなところですかね。まぁ同時にすべてを使うと言う事は稀でしょうから、あんまり問題はないかな。問題はPandoraのBTが、7個繋げられるかわからないという事ですが(笑)。そのうち判明するでしょう。

#Bluetoothの消費電力は?
これはこの前ちらっと書きましたけど、使用範囲によって3つのクラスがあり、Pandoraが使用するのはクラス2(10M)。消費電力は2.5mW。ただし、これが1個辺りの消費電力なのか、全体(最大7個)の消費電力なのかまではわからなかった。常識的に考えれば、1個ごとなんだろうけど。

#Bluetooth同時使用時の速度低下?
これも調べきれませんでした。1個利用時と7個利用時だと通信速度に差が出るとは思うのですが、その差がどの程度出るのかというが微妙。ただし、以下にリンクするH11Tのデータ通信とA2DPの同時使用の記事を見る限り、それ程の速度低下は無い模様。ちなみに30kbpsくらいの低下らしい。
長くなりそうなので、とりあえず区切ります。

#追記
BTの同時使用の記事ですが、良く読んでみたら同じデバイスでの同時使用ではないみたいです。別々のBT接続での混信についての記事らしい……。んー、あんまり意味ないな(笑)。同じデバイスでの同時使用だとどうなるのか、やっぱりわからん。

#外部リンク
Bluetooth FAQ - Android Open Source Project
https://sites.google.com/a/android.com/opensource/projects/bluetooth-faq

Bluetooth+MacでもOK:かなり優れた“Bluetoothモデム”だ──イー・モバイルの「H11T」をデータ通信端末として使いこなす (4/4) - ITmedia +D モバイル
http://plusd.itmedia.co.jp/mobile/articles/0804/07/news100_4.html

2009/02/09

GP2X WIZ版Mmuhack

最近はPandoraに夢中で、あんまりGP2X関係を追っかけていないのですが、どうやらWizに動きがあったみたいです。初代GP2XでSquidge氏が開発したMmuhackをGBAエミュのgpSPやPCエンジンエミュのTemperを開発しているExophase氏がWizに移植(新規開発?)した模様。

以前GP2XでMmuhackが開発された時、あまりの性能向上により、Squidge氏はコミュニティより冗談半分で「神」の称号を与えられたりしていたのですが、今回もそれに匹敵する性能向上が見込めそうです。まだ初期段階ながら、既に以下のような性能向上が確認されている模様。ちなみにSquidge氏のコメントの引用です。55%ですか。スゴいですね。

It seems to work just like my original on the gp2x

kk = frames/sec.

Without MMU hack:
root@wiz:/mnt/sd# ./fbtest.gpe
The framebuffer device was opened successfully.
320x240, 16bpp
The framebuffer device was mapped to memory successfully.
kk = 1, time = 1199554732
kk = 101, time = 1199554733
kk = 152, time = 1199554734
kk = 153, time = 1199554735
kk = 152, time = 1199554736
kk = 152, time = 1199554737
kk = 152, time = 1199554738
kk = 153, time = 1199554739
kk = 152, time = 1199554740
kk = 152, time = 1199554741
kk = 152, time = 1199554742
kk = 152, time = 1199554743
kk = 153, time = 1199554744
kk = 152, time = 1199554745
kk = 152, time = 1199554746
kk = 152, time = 1199554747
kk = 152, time = 1199554748
kk = 153, time = 1199554749
kk = 152, time = 1199554750
kk = 152, time = 1199554751

with MMU hack

root@wiz:/mnt/sd# ./fbtestmmu.gpe
The framebuffer device was opened successfully.
320x240, 16bpp
The framebuffer device was mapped to memory successfully.
got uname location 533a8
uname backup: e1a0c00d e92dd810 e24cb004 e1a04000
uname now: e3a000a3 e12fff1e e24cb004 e1a04000
test 1: expected 0xA3, got a3
uname now: e3a000e9 e12fff1e e24cb004 e1a04000
test 2: expected 0xE9, got e9
modifying pagetable at 1d00000
hacking coarse pagetable entry mapping to 2a00000
hacking coarse pagetable entry mapping to 2a00000
[snip!]
kk = 1, time = 1199554908
kk = 186, time = 1199554909
kk = 236, time = 1199554910
kk = 236, time = 1199554911
kk = 236, time = 1199554912
kk = 236, time = 1199554913
kk = 235, time = 1199554914
kk = 236, time = 1199554915
kk = 236, time = 1199554916
kk = 236, time = 1199554917

55% improvement. Nice!

Nice work Exophase, now all we need is a kernel module