後藤弘茂のWeekly海外ニュース

Cell B.E.のパワーを活せる
PlayStation Moveモーションコントローラ



●実質的にPS3プラットフォームの再立ち上げ

 ソニー・コンピュータエンタテインメント(SCE)は、今秋に投入する「PlayStation Moveモーションコントローラ」の概要を明らかにした。「Arc(アーク)」という名前で知られていた、PS3向けのスティック型のコントローラだ。モーションコントローラの基本的なコンセプトは、PLAYSTATION 3(PS3)の強力なプロセッシング能力を活かして、3D空間でのコントローラの絶対座標を検知する点にある。

 コントローラ内のセンサーによる、コントローラの動きと傾きの検知だけでなく、現実の3D空間でのコントローラのxyz 3次元絶対座標も特定する。絶対座標の検知は、カメラを使った画像認識のソフトウェア処理で行なう。PS3のCell B.E.のプロセッシングパフォーマンスに、強く依存した入力メソッドだ。任天堂のWiiにはできない、PS3ならではのソリューションと言えそうだ。

カメラによる絶対座標の検知とデバイス側の動き検知を組み合わせる コントローラ側には3軸の加速度センサー(accelerometer)、3軸のジャイロスコープ(gyroscope)、地磁気センサー(magnettometer)を内蔵する

 SCEは、先週、サンフランシスコで開催されたゲーム開発者向けカンファレンス「GDC(Game Developers Conference)」で、PlayStation Moveモーションコントローラを強くプッシュした。SCEはPlayStation Moveで大きな市場を見込んでおり、GDCでの技術セッションでは「バーチャルプラットフォームローンチ(実質的にプラットフォームの立ち上げ)」だと説明していた。つまり、PS3にとって仕切り直しの、「PS3プラス」的なプラットフォームがPlayStation Moveということになる。

カラーボールがついたモーションコントローラ

 SCEが重視するPlayStation Moveモーションコントローラだが、そのデバイス自体のデザインは、一般には不評だ。モーションコントローラの先端に、お世辞にも格好いいと言えない、光るカラーボールがついているためだ。製品イメージが販売に大きな影響を及ぼすゲーム機ビジネスでは、これは不利だ。

 しかし、PlayStation Moveモーションコントローラの場合、先端に大きなボールを備え、それが光り、色とりどりのブライトなカラーに変えられることが技術的に必須となっている。デザイン上の問題ではなく、技術上の必須要件であるため、どうにもならない。SCEとしては、このデザインをユーザーに許容してもらえるように、誘導して行くしかない。


●技術上どうしても外せないモーションコントローラのスフィア

 モーションコントローラの先端のボール「スフィア(sphere)」は、PlayStation Moveシステムの要であり、重要な役割を果たしている。PlayStation Eyeカメラが、カメラ画角の中でのスフィアの位置をトラックしてxy座標を、スフィアの大きさなどからz座標を割り出すためだ。カメラによる画像認識を容易にするために、スフィアには一定の大きさと輝度、そして複数コントローラの認識のためにカラーが必要となる。

モーションキャプチャと似た考え方

 球体のスフィアでトラックする仕組みは、モーションキャプチャとある程度似ている。モーションキャプチャでは、黒スーツにホワイトのボールで位置を特定する。コンシューマ向けのゲームコンソールでは、どんな環境で、どんな服装のユーザーが使うか特定できないため、自己発光のカラースフィアが安定した認識に必要となる。カメラは、特定のカラーの光点をトラックすればいいため、検知が容易になる。

 z座標、つまり、カメラからスフィアまでの距離を正確に測るため、スフィアには一定の大きさが必要になる。実際、研究段階で使っていたスフィアは、今よりずっと大きなものだった。製品版のPlayStation Moveは、10フィート(約3m)程度の距離までの認識を想定している。スフィアのサイズは、それに合わせて設定されたようだ。また、スフィアのサイズの測定を容易にするためには、スフィアが球形をしている方がいい。

 PlayStation Moveコントローラの写真を見ると、色とりどりのスフィアのモーションコントローラがある。カラーバリエーションがあるように見えるがそうではない。スフィア自体の色を変えることができる。これは、複数コントローラを認識する際に、それぞれのコントローラを識別するために、カラーを変える必要があるためだ。

8年前の2002年のGDCで紹介されたモーションコントローラのプロトタイプ 光のポイントを検出する スフィアのカラー
カラーを変えられるモーションコントローラ カメラからスフィアを検知した状態。X=25、Y=8、Z=597となっている。XとYは中央位置からの距離

 デモでは、PS3側のツールでスフィアのカラー値を設定すると、実際にモーションコントローラのスフィアのカラーが変わるところを見せていた。つまり、PS3側の認識エンジンには、始めからスフィアのカラーが入力されている。そのため、カメラからPS3に取り込んだピクセルの中から、特定のRGB値のピクセルをサーチすればスフィアを検知できる。コンピューティング処理の手間を省くための工夫だ。

 こうした工夫の結果、PlayStation Moveでは、コントローラの位置をミリメートル単位で特定できるとGDCのセッションでは説明していた。また、検知が安定しているため、ユーザーの早い動きにも充分に追従できるという。

 ちなみに、この方式の弱点は、スフィアが見えなくなった時には検知不能になることだが、それはライブラリレベルで補完するという。GDCでの発表会で流されたデモ映像では、ユーザーがクルリと体を回転させると、ゲーム内のキャラクタも追従して回転する様子が流された。コントローラ内のセンサーからのデータで補完処理を行なっていると推測される。つまり、ハードウェアだけでなく、ソフトウェア面にも仕掛けがある。

ボクシングゲームのデモではユーザーの体に隠れたスフィアの動きも検知していた 2つ目のコントローラがカメラから隠れた状態の時

●22ms内のレイテンシで認識処理を行なう

 PlayStation Moveでは、画像認識処理が必要となるため、コンピューティング側の負担は大きい。PlayStation Eyeでキャプチャした画像の中から、モーションコントローラのスフィアを検知、その大きさからカメラからの距離も測る必要があるからだ。カメラ側では、何も処理は行なわず、認識処理はすべてCPU側で行なう。

デモではレイテンシやxyz座標の検知状況が表示された

 ソフトウェアによる認識処理の第一の懸念は、レイテンシだ。画像認識では、膨大なデータのプロセッシングが必要となるため、処理に時間がかかる。しかし、PlayStation Moveでは、認識処理を平均で22ms(ミリ秒)のレイテンシに抑えている。これは、昨年後半時点でのMicrosoftのNatalのレイテンシの1/4以下だ。精度などを調節することで、4コントローラ時にも同程度のレイテンシに抑えるという。

 レイテンシが短い理由は、PS3のCell B.E.の演算パフォーマンスに余裕があるためと、入力パスを、最初からソフトウェア認識処理を行なうことを見込んで設計したためだという。

Richard Marks氏(Manager, Special Projects, Research & Development, Sony Computer Entertainment America)

 PlayStation Moveは、PS3用のUSBカメラ「PlayStation Eye」を画像認識に使う。SCEでモーションコントローラのアイデアを産み出したRichard Marks氏(Manager, Special Projects, Research & Development, Sony Computer Entertainment America)によると、PlayStation Eyeを設計する段階から、こうした使い方を想定して低レイテンシになるようにしたという。カメラ側にはプロセッサを入れず、単純にキャプチャしたデータをPS3に流し込むだけにした。

 そのため、カメラ側に無駄な処理時間がなく、Cell B.E.に最短時間でデータを渡すことができる。PlayStation Eyeは2008年から発売されているが、その時点からすでに、Cell B.E.で画像を処理または加工することを前提に設計されていた。ちなみに、PlayStation Eye自体のスペックは、640×480ピクセルで60fps、ワイド時に75度の撮影範囲となっている。


●SPU 1個分のCPU占有率に抑えたPlayStation Move

 認識処理のために、PS3では、Cell B.E.のSPU(Synergistic Processor Unit)を使っている。Cell B.E.は、制御用に汎用性の高いPowerアーキテクチャCPUコア「PPU(Power Processor Unit)」を1個、演算用に汎用だがSIMD(Single Instruction, Multiple Data)演算に最適化したCPUコア「SPU(Synergistic Processor Unit)」を7個(ハードウェア的には8個)搭載している。PPUとSPUが混在する、ヘテロジニアス(Heterogeneous:異種混合)型マルチコアだ。PlayStation Moveの処理では、PPU側はほとんど使わず、SPUで認識処理を行なっている。

 SCEAのRichard Marks氏は次のように説明する。

 「1コントローラの場合は、1個のSPUの半分程度に相当する占有率。4コントローラの場合で1個のSPU程度に相当する占有率だ。コントローラ数に応じて精度などを調整して、負荷を押さえている」

 PS3では、ゲーム開発者はCell B.E.のSPUのうち実質6個のSPUを使うことができる。PlayStation Moveの導入によって、このうち1個のSPUが占有されることになる。つまり、SPUのコンピューティングパフォーマンス的には、6分の1がPlayStation Moveで使われる計算だ。全体では、PPUとオーディオ用のSPUを含めると、PS3のコンピューティングのうち8分の1がPlayStation Moveとなる。

 しかし、ファーストパーティー以外の多くのゲーム開発者は、現状でもSPUを100%使っていないケースがほとんどだ。余っているSPUを使うことで、PlayStation Moveモーションコントローラが使えるとすれば、CPU占有率的にはコストフリーとなる。

  もちろん、バスとメモリは話は別だ。ピクセルデータの取り込みでのバス帯域の消費と、ワークデータのバッファやライブラリによるメモリの消費がある。ただし、メインメモリの消費はわずか2MBと極めて小さいという。バスも、ストリームタイプのデータなので一方方向だけの転送で済むため小さく抑えられているという。

Cellのブロックダイヤグラム(PDF版はこちら)
SPEの処理(PDF版はこちら)

●PlayStation Moveに向いたCell B.E.のアーキテクチャ

 そもそも、PS3が搭載するCell B.E.は、こうした認識処理に向いている。Cell B.E.が多数搭載するSPUは、本来、ストリームタイプの処理を得意とするプロセッサコアだからだ。そして、PlayStation Moveで行なう認識処理は、ストリームタイプのデータ処理であるため、SPUには最適だ。

 例えば、ストリームプロセッシングでは、一般的なCPUが備えるキャッシュ階層は意味をなさない。PlayStation Moveのように、ピクセルを読み込んでパターンマッチングを行なう場合、ピクセルデータは再利用されることがない。膨大なピクセルは、リードモディファイライト(データの書き換え)もなく、メモリから読み出して処理した後は破棄されるだけだ。

 これを、ハードウェア制御のキャッシュで普通に処理すると、再利用されることがないデータがキャッシュをどんどん占有してしまう。その結果、再利用したいデータがキャッシュから追い出される「Cache Pollution」が起きてしまう。そうなると、キャッシュミスが頻発してキャッシュが役に立たなくなる。

 そのため、ゲーム機のCPUでは、キャッシュをバイパスするロード命令などが用意されている。しかし、SPUは、そもそもキャッシュを持たず、256KBの「Local Store(ローカルストア:LS)」と呼ばれるメモリをSPU毎に搭載している。ローカルストアは、SPE占有のローカルメモリ空間となっており、明示的にロード/ストア命令でアクセスする。

 そのため、SPUではストリームデータは明示的にローカルストアでバッファリングして処理することができる。明示的に操作できるため、決してキャッシュミスが起きないようにできる。ストリーム処理向けのプロセッサとしての構造だ。

 またSPUの実行パイプラインは、32-bit 4-way SIMD(Single Instruction, Multiple Data)で、4値のデータを同時に処理できる。SIMDに最適化されたパイプラインとなっている。これもピクセル処理のように、複数のデータ要素に同じ処理を行なう(PlayStation Moveの場合は、例えばRGBデータのマッチング処理)のに向いている。

 GDCプレスカンファレンスでは、1サイクルで16値の処理ができると説明していた。これは、カメラから取り込むデータが、8-bit RGBデータ(各色8bitsの3値)であるためだ。SPUのSIMDユニットは32bitsの4-wayで128bitsの演算幅を持っている。そのため、各色8bitsのデータ値なら、16個を1サイクルで処理できる。データをコンバインすることで、演算スループットを引き上げている。すでに説明したように、検知しなければならないRGB値は固定されているため、この方法で対応できると推定される。

 こうして技術的な背景を見ると、PlayStation Moveモーションコントローラは、PS3では必然的に産まれてきた技術であることがわかる。PS3の特性を活かすという意味では、論理に沿った入力システムだ。最大の難点は、これをPS3のローンチ時に提供することができず、PS3のライフサイクルの半ばでの立ち上げになったことだ。SCEが、この入力メソッドを普及させることができるかどうかは、まだわからない。