イベント
低遅延のクラウドゲームサービスを実現する「NVIDIA GRID」。GDC 2015の講演で明らかになったその仕組みとは
本稿では,GDC 2015におけるNVIDIA GRID関連セッションから,とくにクラウドゲームサービスで重要となる遅延対策の話題を中心にレポートしよう。なお,GRID Game Streaming Serviceそのものについては,体験レポート記事を掲載済みなので,そちらも合わせて参照してほしい。
NVIDIAが国内提供開始のクラウドゲームサービス「GRID Game Streaming Service」にさっそく接続してみた
ゲームパッドからサーバー側のエンコード処理まで
徹底的に低遅延を追求
そもそも,NVIDIAがなぜNVIDIA GRIDを使ったクラウドゲームサービスに力を入れているのか。その理由について,セッションを担当したNVIDIA GRIDのエンジニアリングマネージャーであるEric Young(エリック・ヤング)氏は,「NVIDIA GRIDは,据え置き型ゲーム機より3倍も高性能なPC用GPUをベースにした技術である」という点を挙げた。
Young氏に言わせれば,「据え置き型ゲーム機の性能は,過去10年間,PCに追いついたことがない」,そのレベルの映像品質を持ったゲームを,NVIDIA GRIDを利用すれば,安価なデバイスで,しかも快適にプレイできるようになるというわけだ。
性能の高さ以外にも,クラウドゲームサービスに利点があるとYoung氏は説明する。たとえば,ゲームのアップデートが容易なことや海賊版のゲームが存在しないことは,ゲーム開発者やゲームパブリッシャにとっての利点であるという。
そうはいっても,インターネットを介してプレイするクラウドゲームサービスでは,入力に対する遅延の問題が避けられない。その遅延を可能な限り抑えこんでいるのが,NVIDIA GRIDの技術的な特徴の1つであると,Young氏は強調した。
クラウド側からゲームパッドまで,あらゆるところで徹底的な遅延対策を施しているのが,NVIDIA GRIDによるクラウドゲームサービスの特徴というわけだ。
NVIDIA GRIDでは,サーバー側GPUのハードウェアでゲーム映像のエンコードを行っているわけだが,ここにも遅延を抑える工夫があるという。下に掲載したスライドにある「NVIFR」が,グラフィックスメモリ上にあるレンダーターゲットを直接キャプチャし,それをハードウェアエンコーダである「NVENC」がH.264のストリームにエンコードしていると,Young氏は説明していた。
低遅延を支えるビデオストリーミング技術
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氏が言うには,ビデオとサウンドでは遅延対策が異なるため,分けて送るほうが適切であるそうだ。
クラウドゲームサービスの問題は「ネットワークはブラックボックス」だという点にあるとVukojevic氏は説明する。パケットがロスしてしまうこともあり得るし,急に帯域幅が変化するということもあり得るからだ。
ビデオストリーミング技術には,帯域幅に合わせて映像のビットレートを動的に変化させる仕組みがあり,NVIDIA GRIDもそれを備えている。だが,急に帯域幅が変わるとビットレートの変更が間に合わず,映像がガタついたり途切れたりといった障害が起きてしまう。そこで,NVIDIA GRIDシステムでは,「クライアント側で帯域幅の変化を予測計算し,QoSのデータとしてNVIDIA GRIDに送信する」(Vukojevic氏)仕組みとなっているとのことだ。
帯域幅の予測にどのような方法を使っているのかについては,詳しい説明が行われなかった。ただ,Vukojevic氏によると,極めて高い精度で帯域幅の変化を予測できるそうで,この予測に合わせてビットレートを変化させているそうだ。
Vukojevic氏は,帯域幅の予測を行った場合と,行わない場合にる帯域幅の変化を示したグラフを例に,ビットレートの変化がどのように行われるのかを説明した。水色の線がネットワークの帯域幅で,灰色の点線は予測を行わない場合,緑の点線は帯域幅予測を行った場合のビットレートを表している。
灰色の線は予測計算をしていない場合をあらわしており,この状態で水色の線が急に落ち込むと一時的にビットレートがネットワーク帯域幅を超えてしまい,映像のガタツキが生じてしまう。だが,予測計算をもとにビットレートを変化させるNVIDIA GRIDならば,そのような障害は発生しにくいとVukojevic氏は主張しているわけだ。
ビデオストリームのパケットロスにも対策が施されており,ドロップしたフレームに応じてキーフレームを生成することで,途切れたビデオストリームを素早く復帰させる仕組みを使っているという。
Vukojevic氏が提示したスライドをもとに説明しよう。たとえば,「フレーム2」がパケットロスによってドロップした場合,クライアント側はそれを検知して,NVIDIA GRID側に「次のキーフレーム」を送出するよう,QoSのデータとしてリクエストを送る。リクエストを受けたNVIDIA GRID側では,(通信時間がゼロならばフレーム5をエンコード中のタイミングなので)「フレーム6」を新しいキーフレームとしたビデオストリームをクライアント側に送り直す。なぜ新しいキーフレームを送るのかというと,途中に欠落したフレームがあるとフレーム間の差分情報だけでは画面が構成できないからだ。
クライアント側から見ると,ドロップしたフレーム2から新しいキーフレームの1つ前に当たる「フレーム5」までの4フレーム分は,映像が止まったままになり,フレーム6が来たときには,ゲームの進行がスキップされて再開したように見えるだろう。だが,少なくともフレーム6以降は,ストリームが正常に流れるというわけだ。
フレームがスキップされた間にダメージを受けたり,大事なアイテムを取り逃したりしたら相当に腹が立ちそうに思えるが,パケットロスが起きたときにドロップしたフレームを新しいキーフレームとして再送信する仕組みでは,ゲームの進行に対する映像の遅延がどんどん蓄積されてしまう。そこでNVIDIA GRIDでは,遅延を避けてビデオストリームを迅速に復帰させることを重視し,このような設計を採用しているのだと,
一方,サウンドのパケットロス対策は,ビデオとは異なる2つの方法で実現しているそうだ。1つは,クライアント側が持つデータ修復機能を使って失われた音をある程度は復元するという仕組みで,もう1つはバッファ制御であるという。
Vukojevic氏によると,NVIDIA GRIDでは10ミリ秒の単位で圧縮したサウンドのパケットを「Adaptive Jitter Buffer」というバッファに蓄積して,そこからクライアント側にストリームとして送信しているそうだ。
クライアント側でサウンドの遅延や途切れが検出された場合,その情報をQoSとしてNVIDIA GRID側に送り返す。NVIDIA GRID側は,その情報に基づいて,Adaptive Jitter Bufferのサイズを調節する仕組みになっているという。
詳細な説明はなかったので,ある程度推測になるが,たとえば,回線状況が悪くてサウンドが途切れたり音声品質が低下するようなら,送信側と受信側の双方でバッファを増やして対応するということをしているようだ。通信状態が悪いときには,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: