パッケージ
GeForce NOW公式サイトへ
  • NVIDIA
  • 発表日:2015/10/30
お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
低遅延のクラウドゲームサービスを実現する「NVIDIA GRID」。GDC 2015の講演で明らかになったその仕組みとは
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2015/03/27 16:49

イベント

低遅延のクラウドゲームサービスを実現する「NVIDIA GRID」。GDC 2015の講演で明らかになったその仕組みとは

画像集 No.013のサムネイル画像 / 低遅延のクラウドゲームサービスを実現する「NVIDIA GRID」。GDC 2015の講演で明らかになったその仕組みとは
 GDC 2015で連日,スポンサーセッションを開催していたNVIDIA。そのNVIDIAが,PC用GPUや「Tegra」,Android TV端末の「SHIELD」などと並んで力を入れてアピールしていたのが,日本でもサービスが開始されたクラウドゲームサービス「GRID Game Streaming Service」と,その基盤となっている技術「NVIDIA GRID」である。
 本稿では,GDC 2015におけるNVIDIA GRID関連セッションから,とくにクラウドゲームサービスで重要となる遅延対策の話題を中心にレポートしよう。なお,GRID Game Streaming Serviceそのものについては,体験レポート記事を掲載済みなので,そちらも合わせて参照してほしい。

NVIDIAが国内提供開始のクラウドゲームサービス「GRID Game Streaming Service」にさっそく接続してみた



ゲームパッドからサーバー側のエンコード処理まで

徹底的に低遅延を追求


Eric Young氏(Engineering Manager for Developer Technology on GRID,NVIDIA)
画像集 No.002のサムネイル画像 / 低遅延のクラウドゲームサービスを実現する「NVIDIA GRID」。GDC 2015の講演で明らかになったその仕組みとは
 まずは,3月5日に開催された「Cloud Gaming and NVIDIA GRID」(クラウドゲームサービスとNVIDIA GRID)というショートセッションの話題から始めよう。

 そもそも,NVIDIAがなぜNVIDIA GRIDを使ったクラウドゲームサービスに力を入れているのか。その理由について,セッションを担当したNVIDIA GRIDのエンジニアリングマネージャーであるEric Young(エリック・ヤング)氏は,「NVIDIA GRIDは,据え置き型ゲーム機より3倍も高性能なPC用GPUをベースにした技術である」という点を挙げた。
 Young氏に言わせれば,「据え置き型ゲーム機の性能は,過去10年間,PCに追いついたことがない」,そのレベルの映像品質を持ったゲームを,NVIDIA GRIDを利用すれば,安価なデバイスで,しかも快適にプレイできるようになるというわけだ。

2001年から2014年までの,GeForceと据え置き型ゲーム機の演算性能を比較したグラフ。2005年に登場したXbox 360で,一時的に上回られたことはあったが,それ以降の10年間は常にGeForceのほうが高い性能を備えていたと主張している
画像集 No.003のサムネイル画像 / 低遅延のクラウドゲームサービスを実現する「NVIDIA GRID」。GDC 2015の講演で明らかになったその仕組みとは

 性能の高さ以外にも,クラウドゲームサービスに利点があるとYoung氏は説明する。たとえば,ゲームのアップデートが容易なことや海賊版のゲームが存在しないことは,ゲーム開発者やゲームパブリッシャにとっての利点であるという。

Young氏が挙げたクラウドゲームサービスの利点。高品質だけでなく,インストール不要で即時プレイが可能なこと,ゲームのアップデートが容易なこと,海賊版が存在し得ないことといった利点があるそうだ
画像集 No.004のサムネイル画像 / 低遅延のクラウドゲームサービスを実現する「NVIDIA GRID」。GDC 2015の講演で明らかになったその仕組みとは

 そうはいっても,インターネットを介してプレイするクラウドゲームサービスでは,入力に対する遅延の問題が避けられない。その遅延を可能な限り抑えこんでいるのが,NVIDIA GRIDの技術的な特徴の1つであると,Young氏は強調した。

SHIELD Wireless Controller
画像集 No.005のサムネイル画像 / 低遅延のクラウドゲームサービスを実現する「NVIDIA GRID」。GDC 2015の講演で明らかになったその仕組みとは
 たとえば,NVIDIAのAndroidタブレット「SHIELD Tablet」や,北米時間3月4日に発表されたAndroid TVデバイス「SHIELD」では,ワイヤレスゲームパッドである「SHIELD Wireless Controller」との接続に,一般的なBluetoothではなく,Wi-Fi Directを用いている。これも遅延を低減させる対策の1つだという。「Wi-Fi Directをゲームパッドに採用したのは,極めて低遅延だからだ。(Bluetoothに比べて)通信の帯域幅も広いので,ゲームパッド側にサウンドを伝送することも可能となっている」(Young氏)。

 クラウド側からゲームパッドまで,あらゆるところで徹底的な遅延対策を施しているのが,NVIDIA GRIDによるクラウドゲームサービスの特徴というわけだ。

SHIELDとNVIDIA GRIDによるクラウドゲームサービスなら,遅延は「まばたき半分ほど」しかないと,NVIDIAでは主張している
画像集 No.006のサムネイル画像 / 低遅延のクラウドゲームサービスを実現する「NVIDIA GRID」。GDC 2015の講演で明らかになったその仕組みとは

入力が表示に反映されるまでの遅延全体を,据え置き型ゲーム機とNVIDIA GRIDで計測し,それを比較したとするグラフ。入力データの送信時間がゼロになっているうえ,ネットワーク部分の遅延が30msというのは,さすがに理想的な条件すぎるだろうとは思うが,逆に言えば,ネットワーク部分が高速であれば,この程度の遅延でゲーム配信が実現可能なわけだ。入力から表示まで8フレーム遅れても大丈夫なゲームなら,遅延が9フレーム+αになったところで大差ないということだろう。なお,NVIDIA Game StreamingはPing値60msまでを利用範囲としているので,最悪の場合,入力送信で30ms(2フレーム弱)の遅延が追加されると思っておけばいい
画像集 No.007のサムネイル画像 / 低遅延のクラウドゲームサービスを実現する「NVIDIA GRID」。GDC 2015の講演で明らかになったその仕組みとは

 NVIDIA GRIDでは,サーバー側GPUのハードウェアでゲーム映像のエンコードを行っているわけだが,ここにも遅延を抑える工夫があるという。下に掲載したスライドにある「NVIFR」が,グラフィックスメモリ上にあるレンダーターゲットを直接キャプチャし,それをハードウェアエンコーダである「NVENC」がH.264のストリームにエンコードしていると,Young氏は説明していた。

NVIDIA GRID側のGPUによるエンコードの仕組みを説明したブロック図。下側中央にあるNVIFRがレンダーターゲットを直接キャプチャして,NVENCでエンコードする仕組みだ
画像集 No.008のサムネイル画像 / 低遅延のクラウドゲームサービスを実現する「NVIDIA GRID」。GDC 2015の講演で明らかになったその仕組みとは


低遅延を支えるビデオストリーミング技術


 3月6日に行われたセッション「The Technology Behind NVIDIA GRID Game Streaming」(GRID Game Streamingの技術的背景)では,NVIDIA GRIDで使われているネットワーク関連技術の詳細が語られた。
 このセッションは,セキュリティやストリーミングといった各技術を担当するエンジニアが,それぞれの担当技術を説明するという形式で行われたのだが,中でもBojan Vukojevic(ボージャン・ヴコイェヴィッチ)氏が解説した,NVIDIA GRIDのストリーミング技術がなかなか興味深かったので,それについてレポートしよう。

 下に掲載したスライドは,NVIDIA GRIDとクライアント側の接続を大まかに示した図だ。クライアントとNVIDIA GRIDがゲームとストリーミングのセッションで結ばれると,NVIDIA GRIDからはビデオとサウンド(スライドではAudio)のストリームが送出される。一方,クライアントからは,入力データとともにQoS(Quality of Service,ここでは回線状態などの情報を指す)のデータがNVIDIA GRIDに送られる仕組みだ。
 ちなみに,ビデオとサウンドは独立したストリームで送られているという。Vukojevic氏が言うには,ビデオとサウンドでは遅延対策が異なるため,分けて送るほうが適切であるそうだ。

NVIDIA GRIDとクライアント側の接続イメージ図
画像集 No.009のサムネイル画像 / 低遅延のクラウドゲームサービスを実現する「NVIDIA GRID」。GDC 2015の講演で明らかになったその仕組みとは

 クラウドゲームサービスの問題は「ネットワークはブラックボックス」だという点にあるとVukojevic氏は説明する。パケットがロスしてしまうこともあり得るし,急に帯域幅が変化するということもあり得るからだ。

 ビデオストリーミング技術には,帯域幅に合わせて映像のビットレートを動的に変化させる仕組みがあり,NVIDIA GRIDもそれを備えている。だが,急に帯域幅が変わるとビットレートの変更が間に合わず,映像がガタついたり途切れたりといった障害が起きてしまう。そこで,NVIDIA GRIDシステムでは,「クライアント側で帯域幅の変化を予測計算し,QoSのデータとしてNVIDIA GRIDに送信する」(Vukojevic氏)仕組みとなっているとのことだ。
 帯域幅の予測にどのような方法を使っているのかについては,詳しい説明が行われなかった。ただ,Vukojevic氏によると,極めて高い精度で帯域幅の変化を予測できるそうで,この予測に合わせてビットレートを変化させているそうだ。

 Vukojevic氏は,帯域幅の予測を行った場合と,行わない場合にる帯域幅の変化を示したグラフを例に,ビットレートの変化がどのように行われるのかを説明した。水色の線がネットワークの帯域幅で,灰色の点線は予測を行わない場合,緑の点線は帯域幅予測を行った場合のビットレートを表している。
 灰色の線は予測計算をしていない場合をあらわしており,この状態で水色の線が急に落ち込むと一時的にビットレートがネットワーク帯域幅を超えてしまい,映像のガタツキが生じてしまう。だが,予測計算をもとにビットレートを変化させるNVIDIA GRIDならば,そのような障害は発生しにくいとVukojevic氏は主張しているわけだ。

ネットワーク帯域幅の変化と,それに応じたストリーミングデータのビットレート変動を示したグラフ。水色ので示すネットワーク帯域幅が急激に落ち込んでも,NVIDIA GRIDはそれを予測してビットレートを変動させるので,帯域幅を上回ってしまうことがないという
画像集 No.010のサムネイル画像 / 低遅延のクラウドゲームサービスを実現する「NVIDIA GRID」。GDC 2015の講演で明らかになったその仕組みとは

 ビデオストリームのパケットロスにも対策が施されており,ドロップしたフレームに応じてキーフレームを生成することで,途切れたビデオストリームを素早く復帰させる仕組みを使っているという。
 Vukojevic氏が提示したスライドをもとに説明しよう。たとえば,「フレーム2」がパケットロスによってドロップした場合,クライアント側はそれを検知して,NVIDIA GRID側に「次のキーフレーム」を送出するよう,QoSのデータとしてリクエストを送る。リクエストを受けたNVIDIA GRID側では,(通信時間がゼロならばフレーム5をエンコード中のタイミングなので)「フレーム6」を新しいキーフレームとしたビデオストリームをクライアント側に送り直す。なぜ新しいキーフレームを送るのかというと,途中に欠落したフレームがあるとフレーム間の差分情報だけでは画面が構成できないからだ。
 クライアント側から見ると,ドロップしたフレーム2から新しいキーフレームの1つ前に当たる「フレーム5」までの4フレーム分は,映像が止まったままになり,フレーム6が来たときには,ゲームの進行がスキップされて再開したように見えるだろう。だが,少なくともフレーム6以降は,ストリームが正常に流れるというわけだ。

NVIDIA GRIDにおけるビデオストリームのパケットロス対策を説明したスライド。フレームのドロップを検出すると,キーフレームを新しく生成してストリームをクライアントに送り直す。クライアント側では数フレームの間,映像が止まり,止まっていた間がスキップされて再開するように見えると思われる
画像集 No.011のサムネイル画像 / 低遅延のクラウドゲームサービスを実現する「NVIDIA GRID」。GDC 2015の講演で明らかになったその仕組みとは

 フレームがスキップされた間にダメージを受けたり,大事なアイテムを取り逃したりしたら相当に腹が立ちそうに思えるが,パケットロスが起きたときにドロップしたフレームを新しいキーフレームとして再送信する仕組みでは,ゲームの進行に対する映像の遅延がどんどん蓄積されてしまう。そこでNVIDIA GRIDでは,遅延を避けてビデオストリームを迅速に復帰させることを重視し,このような設計を採用しているのだと,Vukojevic氏は説明していた。

 一方,サウンドのパケットロス対策は,ビデオとは異なる2つの方法で実現しているそうだ。1つは,クライアント側が持つデータ修復機能を使って失われた音をある程度は復元するという仕組みで,もう1つはバッファ制御であるという。

 Vukojevic氏によると,NVIDIA GRIDでは10ミリ秒の単位で圧縮したサウンドのパケットを「Adaptive Jitter Buffer」というバッファに蓄積して,そこからクライアント側にストリームとして送信しているそうだ。
 クライアント側でサウンドの遅延や途切れが検出された場合,その情報をQoSとしてNVIDIA GRID側に送り返す。NVIDIA GRID側は,その情報に基づいて,Adaptive Jitter Bufferのサイズを調節する仕組みになっているという。

NVIDIA GRID側にはAdaptive Jitter Bufferというサウンドストリーム用のバッファがあり,これをネットワークの状況に応じて変化させることで,サウンドのパケットロスに対応しているという
画像集 No.012のサムネイル画像 / 低遅延のクラウドゲームサービスを実現する「NVIDIA GRID」。GDC 2015の講演で明らかになったその仕組みとは

 詳細な説明はなかったので,ある程度推測になるが,たとえば,回線状況が悪くてサウンドが途切れたり音声品質が低下するようなら,送信側と受信側の双方でバッファを増やして対応するということをしているようだ。通信状態が悪いときには,10ms単位で全体の遅延も追加されていくのだろう。TCP/IPにおけるウインドウ制御に近いことをやっているというイメージではないかと思う。

 セッションレポートは以上となる。今回は遅延対策を中心に関連する情報をまとめてみたわけだが,NVIDIA GRIDの技術的な詳細は,今まで明らかにされることがほとんどなかったので,その点では興味深い情報が多かったといえる。

 ソニー・コンピュータエンタテインメントが,北米で「PlayStation Now」をサービス開始するなど(関連記事),2015年はクラウドゲームサービスが本格的に離陸する年となりそうだ。「将来的にはほとんどのゲームがクラウドサービスになる」という意見もある。
 NVIDIA GRIDが実現するGRID Game Streaming Serviceは,そうしたクラウドゲーム時代の一端を体験できるサービスといえるだろう。基本サービスは無料で利用できるので,SHIELD Tabletを持っている人は試してみてはいかがだろうか。

NVIDIA GRIDによるクラウドゲーミングの説明ページ

GDC公式Webサイト

4GamerのGDC 2015関連記事一覧


  • 関連タイトル:

    GeForce NOW

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:03月27日〜03月28日