2009年11月17日火曜日

AMD ImageonとPowerVR

Android端末(日本ではHT-03Aですね)とiPhone3GSがスマートフォン業界では話題になっています。
なかなか両方とも魅力的な端末ではあるのですが、アプリケーション開発者から見るとこの二つは両方とも「ネイティブアプリでアクセラレーションを使っている」という意味で同じに見えます。
今回はちょっとその話を。


スマートフォンを使う場合、まぁ、メニューなんかが待ち受け画面を占拠しています。Androidにおいては横長の待ち受け面の上にアイコンやヴィジェットが並んでおり、iPhoneにおいては最初のロックを外したらスクロールするアイコントレイが並んでいます。
ここで気づく人は気づくはずです。たとえばロックスイッチやスクロールが妙にぬるぬる動くことに。これが、「ハードウェアアクセラレーション」の力です。
iPhone以前の携帯電話において、画面を書く際に使われていたのは主にCPUと呼ばれる部品でした。CPUは日本語では「中央処理装置」とかき、プログラムを動かすことを目標とした部品です。プログラムを動かしながら、その残った力で画面を書いたりしていたので、あんまりスムースには画面を動かせませんでした。
また、プログラムで画面を書く際、「書き換える面積が少なければ少ないほど速い」という制限もありました。すると、全画面を書き換えなくちゃならない「スクロール」なんかは妙にかくかくする羽目になります。
これが、GPUが全部を処理するようになるとちょっと雰囲気が変わってきます。GPUは「グラフィック処理装置」と言って、そのほとんどは「設定に合わせて全画面を書き換える」機能を持っています。
HT-03AもiPhoneもCPUのほかにGPUを積んでいます。で、GPUの描画能力を待ち受けに限らずほとんどのところで使っています。なので、普通の携帯と普段使っていて何となく違うなぁって言う感触は、このGPUが担っているのでした。

で。
HT-03AはAMD(ATI)のImageonというGPUを積んでいます。Imageonは昔から使われている部品でHT-03Aは2380というシリーズを積んでいます。ちょっと古いですが、できることはいろいろあるいいチップです。
iPhoneはPowerVRという部品を積んでいます。PowerVRは正確には部品の名前ではなくて、部品の中に張っている回路のライセンスの名前なのですが、iPhoneにはPowerVR MBXが、iPhone3GSにはPowerVR SGXが載っています。
PowerVRと聞いてぴんとくる人がいるかもしれませんが、これ、Dreamcastで使われていたPowerVR2の後継です。そのうえ、今は結構パソコンでも使われています。たとえば、Vaio PやWilcom D4で使われているGMA500はPowerVR SGXを使っています。それどころか、最近DoCoMoの携帯電話にはどれも使われています(ただ、DoCoMoの携帯電話はメニューなどで使っている形跡がないので、せっかくのGPUが生きてません……)。

それはさておき。
Imageonにしても、PowerVRにしても使うのは結構面倒くさかったりします。OpenGL ESという共通仕様で扱えるのは確かなんですが、使い方によっては妙に性能でなかったりします。
うまく使えば3D使いまくりの凄いグラフィックになるんですけどねー。
ちなみに、3D使いまくりじゃなくてもGPUを使う傾向にあるAndroidやiPhoneは何も考えなくてもそこそこなゲームを作れます。ありがたいことです。
あ、頼まれ仕事(なので、名前が表に出ない)では、DoCoMoの携帯電話で凄い3Dグラフィックを書けます。潜在的にはふつーの携帯電話も性能いいんですよ、念のため。

0 件のコメント:

コメントを投稿