社長が訊く「WiiU GamePad」篇公開〜低遅延の秘密は「部分的な画像ブロック転送」

ネットでの激戦から、予約騒動も一段落付いたWiiU

Wii U プレミアムセット kuro【メーカー生産終了】 Wii U ベーシックセット【メーカー生産終了】 モンスターハンター3 (トライ)G HD Ver. Wii U プレミアムセット【メーカー生産終了】

店頭でもモンハンパックは早々に受付終了、その後プレミアムも徐々に終了してきて、今はベーシックあたりが予約受付残っている、という感じでしょうか?場所にもよるでしょうけど。

さてそんなWiiUですが、現在任天堂恒例の社長が訊くシリーズが公開中。先日はハード本体の分解写真まで公開してしまい、インプレスとかをうならせるようなことをやってのけました。

Wii U|社長が訊く『Wii U』|本体篇 Nintendo

CPUとGPUが一つに載っているMCMとか冷却関連とか、自作PCとかに詳しい人からするといろいろ興味を惹く内容でしたね。そして今日、今度はWiiUの要である通称タブコン、GamePadの社長が訊くが公開されました。

Wii U|社長が訊く『Wii U』|Wii U GamePad 篇 Nintendo

注目の「低遅延映像転送」の秘密は?

個人的に特に興味があったのは、岩田社長が「遅延がない」と繰り返して言っている高速映像転送について。元々E3で発表があった時から、この部分が他社に対する差別化要素だと思っていました。既存の技術を使ってWiFi&トランスコードとかではどうしても数秒レベルの遅延が出てしまいますからね。専用のハードなどを積んでくるのだろう、と。

現状HDにも対応するような高速無線映像転送というと、WirelessHDやWHDIという技術が存在。
WirelessHDとは 「WiHD」 (Wireless High Definition): - IT用語辞典バイナリ
WHDIとは (Wireless Home Digital Interface): - IT用語辞典バイナリ

ただ、これらは現状レシーバーセットなどえ1万〜2万などで売られており、いくら大量生産するにしてもコストが高すぎるのでは?と思っていました。かといって、WiiUだけのために新規規格を起こすのもそれはそれでコスト掛かりそう、と思っており、どういった手段に出るかが気になっていたんですよね。

これについて、今回のインタビューでいくつかの要素が明らかになりました。それは「マクロブロック単位での符号化」「複数のマクロブロックをまとめたパケット単位での転送」「フレーム間差分あり」というところです。

部分ブロックの転送で即時デコード、エラー耐性も

まず、マクロブロックでの転送については以下の部分。

伊藤
一般的に、ひとつの画面は
16×16のマクロブロック(※14)ごとに圧縮できるんですけど、
Wii Uの場合はデータをどんどん圧縮して、
無線で送れるパケットサイズ(※15)がたまった瞬間に、
Wii U GamePadに送り出すようになっています。
※14
マクロブロック=ひとつのフレームを分割した小さな単位。一般的には16×16ピクセル
※15
パケットサイズ=大きなデータを通信するときに、データを分割して通信することをパケット通信と呼ぶ。分割されたデータのことをパケットといい、パケットの大きさがパケットサイズ。|

16x16のマクロブロックは、MPEGJPEGで使われている非常に一般的なものです。これにさらに周波数変換・量子化を行ってデータ量を削減、さらに時間方向、空間方向の予測を加えて圧縮率を高めていきます。まず1画面を表示することに付いても、WiiUは1フレーム分をためるのを待つのではなく、どんどんいくつかのマクロブロック単位で投げてしまうようですね。これは、MPEG4やH.264でもサポートしている方式です(スライスとかVOPとか)
How to Use ffmpegXメモ was here (2005/04~2006/08): ピクチャとスライスとマクロブロック

MPEGだとIフレームとかでは1枚のフレーム内でも上下左右のMBから予測を行うイントラ符号化というのがあるのですが、1フレームを複数に分割するほど、この予測が「途切れる」ところが発生し圧縮効率が落ちてきます。これを許容しても遅延を小さくすることを選択した感じですね。

他にも、エラーが起きたときに付いてのエラーコンシールメントにも触れられています。これはパケットが抜け落ちたりエラーで復号できなかったりしたらどうするか?というところですね。MPEGとかでもデコーダ実装依存なところですが、シンプルな形だと単純に「前フレームのをそのままコピー」というものでしょうか。この辺りを工夫してないとなにやら緑のブロックが表示されたりするんですよね。WiiUがどの程度エラーコンシールメント処理をしているのか楽しみでもあります。独自の転送形式なら、送信データに復元用の情報も冗長につけている可能性もありますね。

フレーム間予測もあり?

そして、MPEGでの遅延の最大の原因が『フレーム間」予測なのですが、WiiUもフレーム間予測自体は用いているようです。以下の話のくだりとかからの印象です。

岩本
しかも、拡大縮小方向に大きさが変わっていくので、
入り組んで、追尾しにくい動きをするんです・・・。
岩田
一般的に動画圧縮の技術では、
直前の画像から、中の物体がどのように動いたか、
ということを検知してデータを圧縮するようになっているので、
物体の動きが追尾できなくなると、
うまく圧縮ができなくなるんですね。

MPEGでの圧縮も、大半はこのフレーム間の動き予測による効果が大きく、これがエンコーダの性能の差につながってきます。動きの予測では時間的に前のフレームからだけ予測するPスライス、時間的に後のフレームからも予測するBスライスがあります。Bの方がシンプルな動きのものだと劇的にデータが減るのですが、時間的に後のフレームも必要となるため、結果的に遅延が大きくなります。WiiUでは「遅延が無い」と言っていることを考えると、使っているのは予測なしのIスライス、前方予測のみのPスライスだけではないかと思われます。Pについても、参照画像は直前の1枚とかな気がしますね。2枚以上前を使ったら、原理上遅延が1/60秒以下には抑えられなくなるでしょうから。こうなると、かなり画像圧縮効率は落ちます。SD映像ならH.264で普通1Mbpsもあれば相当綺麗にエンコードできますが、HalfHDでI,Pのみだとあてずっぽうで10Mとか20Mbpsとか行っちゃいそうな気もしますね。気になる人はエンコーダで試してみてもおもしろいかもしれません。

MPEGチップのカスタマイズ版?

以上のように、MPEGでの一般的な要素と照らし合わせると、WiiU GamePadで使われている技術は既存のH.264MPEG-4とかのカスタマイズ版ではないか?と思われます。独自技術を用いているとしても、大きな枠組は変わらないのではないかという印象です。実際、今回の開発でファームウェアまで担当したメガチップスというところは、各種映像監視システムなどを開発しています。

映像監視システム機器 | 製品・サービス | 株式会社メガチップス

こうした中で培われたノウハウを、WiiU GamePadに応用したのでは、という感想です。エンコードやデコードに工夫を加え、その工夫をハードやソフトで実装したのでは、と個人的には予想してみます。おそらく、技術的にはインテルのワイヤレスディスプレイに近いのではないでしょうか?

インテル® ワイヤレス・ディスプレイ (インテル® WiDi) でノートブック PC をテレビに接続
PCの画面を無線でテレビに!WiDiってなんだ?|デジ・ステーション|J-Net21[中小企業ビジネス支援サイト]

これは無線通信自体はWiFiをそのまま使い、映像を送る側&受け手側で独自の圧縮・復号を行うというもの。WiiU GamePadも似たようなことをしている印象があります。ニンテンドーダイレクトで強調されていたGPGPUも、もしかしたらこの符号化で使われているのかもしれません。PCなどではGPGPUを使ったエンコード高速化とかメジャーですしね。

まとめ〜リーズナブルかつ低遅延を実現、差別化部分を生かしたアピールが課題か

以上、個人的に動画圧縮技術と照らし合わせてこのインタビューの内容を紐解いてみました。単なる個人の予想なので、てんで筋違いな予想になっているかもしれませんので、その辺はご了承ください。

当初想定していたWirelessHDやWHDIという、「HDMIそのものを置き換えるレベルの大容量高速低遅延通信」と比べると、予想が正しいならかなりリーズナブルな形で低遅延映像転送を実現している印象です。低遅延を実現しながら、既存の圧縮技術で転送量もほどほどに抑える。GamePadの解像度がFullHDでないのもこの転送量を抑えるためではないでしょうか。転送量小さいほどエラー耐性や安定性などをあげることも出来るでしょうし。

こうした専用ハードとソフトの組み合わせにより、技術的にはソニーのリモートプレイ、マイクロソフトのSmart Glassとは一線を画す低遅延プレイを実現でき、さらに簡単にはマネが出来ないものになっていると思います。両社が次世代機で同様の専用チップなどをつければ話は別ですが、とりあえずPS3と360で両社が打ち出してきたものとはレベルが違うものになっていることでしょう。

あとは、この「低遅延」というところがどの程度「分かりやすく」消費者に伝えることができるか。マリオが遅延なく跳ねる、これはたしかに技術的にすごいのかもしれませんが、3DSとかの携帯機で単体動作させてしまえばできることでもあります。3DSやVitaでは表現出来ないレベルのグラフィックスを手元で表示できる、というメリットも有るでしょうが、雑誌記事やWebのデモではその凄さは分かりません。また、マリオとかのかわいい系、トゥーン系では実演でも分かりづらい気もします。「映像のすごい携帯ゲーム機」ぐらいにしか映らないようだと、消費者へのアピールもいまいちなところがあると思うので、やはり「低遅延高品質映像でしか出来ないアプリケーション」を明確な形で魅せつける、キラーコンテンツの提示を任天堂には期待したいですね。