(57)【特許請求の範囲】
【請求項１】
ネットワークを介してクライアントに配信するゲームの映像を垂直同期信号にしたがって生成するグラフィックスプロセッサと、
前記グラフィックスプロセッサが生成した映像データを格納するメモリとを備え、
前記グラフィックスプロセッサは、前記メモリに所定のデータ量の映像データが格納されることを契機として、前記垂直同期信号を待つことなく当該所定のデータ量の映像データの表色系を変換することを特徴とするゲーム提供サーバ。
【請求項２】
所定の表色系の映像データを前記ネットワークを介してクライアントに配信する際に用いられる符号化データに変換する符号化部をさらに備え、
前記グラフィックスプロセッサは、前記メモリに格納された映像データを、前記符号化部が符号化可能な表色系の映像データに変更することを特徴とする請求項１に記載のゲーム提供サーバ。
【請求項３】
前記符号化部は、前記グラフィックスプロセッサが発行した同期信号の受信を契機として、符号化を開始することを特徴とする請求項２に記載のゲーム提供サーバ。
【請求項４】
前記符号化部はハードウェアで実現されており、
前記グラフィックスプロセッサと前記符号化部を実現するハードウェアとは、同一のチップ上に実装されていることを特徴とする請求項２から３のいずれかに記載のゲーム提供サーバ。
【請求項５】
前記グラフィックスプロセッサは、前記所定のデータ量の映像データのサイズを変換し、変換後の映像データの表色系を変換することを特徴とする請求項１から４のいずれかに記載のゲーム提供サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲーム提供サーバに関する。
【背景技術】
【０００２】
近年、インターネットをはじめとするネットワークの通信技術が急速に発達し、ユーザがネットワークを経由して様々なアプリケーションの提供を受ける、いわゆるクラウドサービスが提供されるようになってきた。クラウドサービスを利用することにより、ユーザ自身がアプリケーションプログラムを所持していなくても、そのアプリケーションを利用することが可能となる。
【０００３】
また、近年のコンピュータ技術の進化は著しいものがある。従来ではゲームアプリケーションのような計算コストのかかるアプリケーションは、据え置き型のゲーム機や専用の携帯ゲーム機で動作させるのが通常であり、これらのゲーム機は他の機器とは独立して動作させる、いわゆるスタンドアローンで用いるのが一般的であった。しかし、ネットワーク通信技術の発達と相まって、ゲーム等のアプリケーションをクラウドサーバ上で実行し、実行結果をネットワークを介してクライアント装置にストリーミング配信するクラウドゲーミングサービスも実現されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ゲーム等のアプリケーションは、クライアント装置においてなされたユーザの操作に応答してゲームの進行が変化するのが通常である。ユーザの操作はクライアント装置からネットワークを介してゲーム提供サーバに送信される。ゲーム提供サーバは、ユーザの操作に応答してゲームを進行させ、その結果の映像を生成する。ゲーム提供サーバが生成した映像は所定の処理を経て、ネットワークを介してクライアント装置に送信される。
【０００５】
このように、ラウドゲーミングサービスにおいては、スタンドアローンのゲーム装置でゲームを実行する場合と比較して、クライアント装置においてなされたユーザの操作がゲームの進行に反映されるまでのレイテンシ（latency；遅延時間）が大きくなる傾向にある。
【０００６】
本発明はこうした課題に鑑みてなされたものであり、その目的は、クラウドゲーミングサービスにおけるレイテンシを減少する技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様は、ゲーム提供サーバである。このゲーム提供サーバは、ネットワークを介してクライアントに配信するゲームの映像を生成するグラフィックスプロセッサと、グラフィックスプロセッサが生成した映像データを格納するメモリとを備える。ここでグラフィックスプロセッサは、メモリに所定のデータ量の映像データが格納されることを契機として、当該所定のデータ量の映像データの表色系を変換する。
【０００８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。コンピュータプログラムは、グラフィックスプロセッサを実現するハードウェア資源の基本的な制御を行なうために機器に組み込まれるファームウェアの一部として提供されてもよい。このファームウェアは、たとえば、機器内のＲＯＭ（Read Only Memory）やフラッシュメモリなどの半導体メモリに格納される。このファームウェアを提供するため、あるいはファームウェアの一部をアップデートするために、このプログラムを記録したコンピュータ読み取り可能な記録媒体が提供されてもよく、また、このプログラムが通信回線で伝送されてもよい。
【発明の効果】
【０００９】
本発明によればラウドゲーミングサービスにおけるレイテンシを減少する技術を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】一般的なクラウドゲーミングシステムと、ネットワークを介してクラウドゲーミングと接続するクライアント装置とを示す図である。
【図２】クラウドゲーミングシステムにおけるゲームの映像の流れを説明するための図である。
【図３】図２に示すゲーム提供サーバの構成における、ゲーム映像の提供の流れを模式的に示す図である。
【図４】実施の形態に係るクラウドゲーミングシステムと、ネットワークを介してクラウドゲーミングと接続するクライアント装置とを示す図である。
【図５】実施の形態に係るゲーム提供サーバの機能を実現するシステムオンチップの内部構成を模式的に示す図である。
【図６】実施の形態に係るシステムオンチップの回路構成を模式的に示す図である。
【図７】図４に示すゲーム提供サーバの構成における、ゲーム映像の提供の流れを模式的に示す図である。
【発明を実施するための形態】
【００１１】
本発明の実施の形態の概要を述べる。本発明の実施の形態に係るゲーム提供サーバは、グラフィックスプロセッサが内蔵するコンピュートシェーダが、ディスプレイ出力に依存せずにゲーム映像の拡大処理または縮小処理（以下、単に「拡縮処理」という。）および表色系の変換を実行する。また、グラフィックスプロセッサとビデオエンコーダである符号化部が同一チップに実装されており、符号化部は、ディスプレイ出力を介さずに圧縮ビデオストリームを生成する。
【００１２】
図１は、一般的なクラウドゲーミングシステム４００と、ネットワーク２００を介してクラウドゲーミングシステム４００と接続するクライアント装置３００とを示す図である。
【００１３】
クラウドゲーミングシステム４００は、少なくともゲーム提供サーバ４１０および符号化部４６０を含む。ゲーム提供サーバ４１０は、クライアント装置３００のユーザに提供するためのゲームの映像を生成する。ゲーム提供サーバ４１０がレンダリングして生成したゲームの映像は、ネットワーク２００を介してクライアント装置３００にストリーミング配信される。このため、符号化部４６０は、ゲーム提供サーバ４１０が生成したゲームの映像を、例えばＨ．２６４等の動画圧縮規格に基づいて符号化する。
【００１４】
クライアント装置３００は、ネットワーク２００を介して取得した映像を復号して表示する。このため、クライアント装置３００は、少なくともゲームの映像を復号して表示するための演算能力を持った装置であり、例えば据え置き型のゲーム機やＰＣ（Personal Computer）、携帯ゲーム機、スマートフォンやタブレット、ファブレット、電子辞書、電子書籍端末等である。クライアント装置３００は、キーボードやコントローラ等の入力インタフェース（図示せず）を介して取得したユーザの操作をネットワーク２００を介してゲーム提供サーバ４１０に送信する。
【００１５】
クラウドゲーミングシステム４００を用いてゲームを実行する場合、スタンドアローンで実行される一般的なゲームコンソールと比較すると、入力インタフェースの入力がクライアント装置３００に表示されるゲームの映像に反映されるまでのレイテンシが長くなる。クラウドゲーミングシステム４００におけるレイテンシは、ネットワーク２００のレイテンシに起因するもののほか、ゲーム映像の符号化や、その復号に起因するものが大きくなる傾向にある。
【００１６】
図２は、クラウドゲーミングシステム４００におけるゲームの映像の流れを説明するための図である。図２に示すように、ゲーム提供サーバ４１０は、グラフィックスプロセッサ４２０、メモリ４３０、および表示制御部４４０を備える。
【００１７】
グラフィックスプロセッサ４２０は、ゲーム提供サーバ４１０の図示しないＣＰＵ（Central Processing Unit）の制御の下、ゲーム提供サーバ４１０が提供するゲームの映像の生成を主に担当するプロセッサであり、いわゆるＧＰＵ（Graphics Processing Unit）と呼ばれるプロセッサである。グラフィックスプロセッサ４２０は、レンダリングして生成したゲームの映像を、フレームバッファであるメモリ４３０に格納する。
【００１８】
表示制御部４４０は一般にディスプレイコントローラと呼ばれる。表示制御部４４０は、メモリ４３０に格納されたゲームの映像を、ネットワーク２００を介して接続するクライアント装置３００の表示出力のフォーマットに適合するように変換する。より具体的に、表示制御部４４０は、メモリ４３０に格納されたゲームの映像を読み出し、クライアント装置３００のモニタの表示出力フォーマットに合わせるために、映像のスケーリングと後述する表色系の変換を実行する。
【００１９】
ゲーム提供サーバ４１０は、クライアント装置３００に提供するゲームを実行するサーバであるため、ゲーム提供サーバ４１０自身はゲームの実行画面を表示するための表示デバイスを持たない。そのため、表示制御部４４０は表示デバイスの代わりに映像キャプチャ部４５０と接続し、映像キャプチャ部４５０に対して実行画面を表示出力する。なお、表示制御部４４０は、映像キャプチャ部４５０実行画面を出力するときに、映像のスケーリングと後述する表色系の変換を実行する。
【００２０】
映像キャプチャ部４５０は、表示制御部４４０の制御の下、メモリ４３０に格納されたゲームの映像を取り込む。より具体的に、表示制御部４４０は、垂直同期信号（Vertical Synchronizing signal；VSYNC）を発生し、映像キャプチャ部４５０は、表示制御部４４０が発生した垂直同期信号を契機として、フレーム単位でゲームの映像を取り込む。
【００２１】
映像キャプチャ部４５０は、取り込んだ映像を符号化部４６０に送信する。符号化部４６０は、取得した映像を所定の動画圧縮規格に基づいて符号化し、ネットワーク２００を介してクライアント装置３００に送信する。
【００２２】
ここで、グラフィックスプロセッサ４２０は一般に、Ｒ（Red；赤色）、Ｇ（Green；緑色）およびＢ（Blue；青色）を単位とするＲＧＢ表色系を用いてゲームの映像を生成する。これに対し、符号化部４６０は、輝度および色差信号を用いるＹＵＶ表色系の映像を符号化するように構成されているのが一般的である。このため上述したように、表示制御部４４０は、グラフィックスプロセッサ４２０が生成したＲＧＢ表色系の映像を、符号化部４６０で使用可能なＹＵＶ表色系に変換する。
【００２３】
クライアント装置３００は、ネットワークを介して取得した符号化された映像を復号し、クライアント装置３００が有する表示制御部（図示せず）の制御の下、ゲームの映像を表示する。
【００２４】
図３は、図２に示すゲーム提供サーバ４１０の構成におけるゲーム映像の提供の流れを模式的に示す図であり、映像の生成、符号化、配信等の時間経過を示す図である。図３において、横軸６００は時間の流れを示す時間軸である。
【００２５】
ゲーム提供サーバ４１０が提供するゲームは、一般にビデオ同期信号である垂直同期信号に同期して映像を表示するように作られる。このようなゲームでは、グラフィックスプロセッサ４２０は、表示制御部４４０が生成する垂直同期信号を契機として、ゲーム映像のレンダリングを開始する。図３においては、表示制御部４４０は、時刻Ｖ１、Ｖ２、Ｖ３、Ｖ４に垂直同期信号を生成している。なお、時刻Ｖ５においては、クライアント装置３００の図示しない表示制御部が、クライアント装置３００でゲーム映像を表示するための垂直同期信号を生成している。図３において、時刻Ｖ１〜Ｂ１、時刻Ｖ２〜Ｂ２、時刻Ｖ３〜Ｂ３、時刻Ｖ４〜Ｂ４、および時刻Ｖ５〜Ｂ５は、映像を描画しないブランキング期間であり、いわゆる「ＶＢＬＡＮＫ」期間である。
【００２６】
ゲーム映像のレンダリングが完了し、ゲームの映像をメモリ４３０に出力し終えると、グラフィックスプロセッサ４２０は表示制御部４４０に対して、フレーム切り替えの指示を発行する。図３は、グラフィックスプロセッサ４２０が時刻Ｂ１にゲーム映像１のレンダリングを開始し、時刻Ｇ１にゲーム映像のレンダリングを終了したことを示している。同様に、グラフィックスプロセッサ４２０は時刻Ｂ２およびＢ３に、それぞれゲーム映像２およびゲーム映像３のレンダリングを開始し、時刻Ｇ２およびＧ３に、それぞれゲーム映像２およびゲーム映像３のレンダリングを終了している。
【００２７】
表示制御部４４０は、グラフィックスプロセッサ４２０が発行したフレーム切り替えの指示があった後に、メモリ４３０に格納されたゲーム映像のフレームを、映像キャプチャ部４５０への出力を開始する。図３においては、例えば、時刻Ｇ１においてグラフィックスプロセッサ４２０はゲーム映像１の生成を終えたため、表示制御部４４０に対してフレーム切り替えの指示を発行した。しかしながら、表示制御部４４０は、グラフィックスプロセッサ４２０からフレーム切替の指示を取得しても、直ちにゲームの映像を映像キャプチャ部４５０に表示出力するわけではない。
【００２８】
その代わり、表示制御部４４０は、垂直同期信号の生成を契機として、ゲームの映像を映像キャプチャ部４５０に表示出力する。このため、グラフィックスプロセッサ４２０がゲーム映像１の生成を終えた時刻Ｇ１から、表示制御部４４０が垂直同期信号を生成する時刻Ｖ２までの間、ゲーム映像１はメモリ４３０に格納されたまま処理されない。ゆえに、処理のなされない時刻Ｇ１から時刻Ｖ２までの間は、ゲーム提供サーバ４１０のスループットを下げ、レイテンシを大きくする要因となりうる。時刻Ｇ２から時刻Ｖ３までの間、および時刻Ｇ３から時刻Ｖ４までの間も同様である。
【００２９】
時刻Ｖ３において、表示制御部４４０がゲーム映像１の表示出力を完了すると、すなわち、表示制御部４４０がゲーム映像１の拡縮処理および表色系の変換処理をして、映像キャプチャ部４５０が処理後のゲーム映像１のキャプチャを完了すると、符号化部４６０は、ゲーム映像１の符号化を開始する。その後時刻Ｎ１において、符号化部４６０が配信の単位となる所定量のデータの符号化を完了したため、符号化されたゲーム映像１は、ネットワーク２００を介してクライアント装置３００に送られる。時刻Ｄ１において、クライアント装置３００は取得した符号化データの復号を開始し、時刻Ｂ５において、初めてゲーム映像のレンダリング１がクライアント装置３００のモニタに表示される。
【００３０】
時刻Ｂ２において表示制御部４４０がゲーム映像１の表示出力を開始すると同時に、グラフィックスプロセッサ４２０はゲーム映像１に続く映像であるゲーム映像２のレンダリングを開始する。また時刻Ｂ３では、グラフィックスプロセッサ４２０はゲーム映像３のレンダリングを開始し、表示制御部４４０はゲーム映像２の表示出力を開始し、符号化部４６０はゲーム映像１の符号化を開始する。このように、グラフィックスプロセッサ４２０、表示制御部４４０、および符号化部４６０は、それぞれに割りあれられたタスクを並列に実行することができ、レイテンシの減少に寄与する。しかしながら、これらのタスク開始の契機は表示制御部４４０が生成する垂直同期信号を契機とするため、各部における処理の待ち時間が発生し、レイテンシの増大の要因となっている。
【００３１】
本願の発明者は、表示制御部４４０が生成する垂直同期信号に依存せずに、ゲーム映像の表色系の変換や映像の符号化を開始することで、クラウドゲーミングシステム４００全体でレイテンシを短くしうる可能性について認識するに至った。
【００３２】
図４は、実施の形態に係るクラウドゲーミングシステム１００と、ネットワーク２００を介してクラウドゲーミングと接続するクライアント装置３００とを示す図である。図４において、ネットワーク２００およびクライアント装置３００は、図１に示すネットワーク２００およびクライアント装置３００と同じである。一方、図４に示す実施の形態に係るクラウドゲーミングシステム１００は、図１に示す一般的なクラウドゲーミングシステム４００とは異なり、ゲーム提供サーバ１１０と符号化部４６０とは一体となって構成されている。
【００３３】
図５は、実施の形態に係るゲーム提供サーバ１１０の機能を実現するシステムオンチップ（System on a Chip;SoC）１１２の内部構成を模式的に示す図である。グラフィックスプロセッサ１２０と符号化部１６０とはともにハードウェアで実現されている。図５に示すように、グラフィックスプロセッサ１２０と符号化部１６０とは、１つのチップであるシステムオンチップ１１２上に実装される。このため、グラフィックスプロセッサ１２０と符号化部１６０との間のデータのやりとりは、グラフィックスプロセッサ１２０と符号化部１６０とが異なるチップに実装されている場合と比較して高速となる。
【００３４】
なお、図５においては、説明の便宜のため、システムオンチップ１１２上にグラフィックスプロセッサ１２０と符号化部１６０との２つの機能構成のみを示し、その他の構成は省略しているが、実施際の回路構成としてはＣＰＵやバス、各種コントローラも含む。システムオンチップ１１２の回路構成の詳細については後述する。
【００３５】
実施の形態に係るグラフィックスプロセッサ１２０も、上述したグラフィックスプロセッサ４２０と同様にＧＰＵで実現されており、グラフィックスシェーディングに特化した演算器を複数搭載している。グラフィックスシェーディングに特化した演算器はシェーダとも呼ばれ、主にレンダリング対象のオブジェクトの色を計算することに用いられる。実施の形態に係るグラフィックスプロセッサ１２０は既知のプログラマブルシェーダを備えており、映像のレンダリングのみならず、他の数値演算にも利用可能である。
【００３６】
そこで実施の形態に係るグラフィックスプロセッサ１２０は、内蔵するプログラマブルシェーダを用いることで、映像データの拡縮処理を実行する。映像データの拡縮は既知の線形補間やスプライン補間を用いて実現できる。具体的には、映像データを複数の処理単位に分割し、プログラマブルシェーダを用いてパイプライン処理をすることで実現できる。
【００３７】
グラフィックスプロセッサ１２０はまた、内蔵するプログラマブルシェーダを用いて映像データの表色系を変換する。より具体的には、グラフィックスプロセッサ１２０は、内蔵するプログラマブルシェーダを用いて、ＲＧＢ表色系の映像データを、符号化部１６０が扱うことができるＹＵＶ表色系の映像データに変換する。これは既知の３行３列の変換行列の演算によって実現できる。ゆえに、実施の形態に係るグラフィックスプロセッサ１２０は、ゲームの映像を生成するゲーム映像生成部１２２と、ゲームの映像の拡縮を実行する映像拡縮部１２４と、ゲームの映像の表色系を変換する表色系変換部１２６との機能を合わせ持つ。
【００３８】
このように、実施の形態に係るグラフィックスプロセッサ１２０は、図２に示すグラフィックスプロセッサ４２０とは異なり、レンダリングして生成したゲームの映像を表示制御部４４０に渡さない。その代わりに、グラフィックスプロセッサ１２０が内蔵するプログラマブルシェーダを用いてゲームの映像の拡縮と表色系変換とを実行する。これにより、表示制御部４４０が発行する垂直同期信号に依存せず、垂直同期信号を待つことなくゲームの映像の拡縮や表色系変換を開始できる。このため、レイテンシを低減することが可能となる。
【００３９】
図６は、実施の形態に係るシステムオンチップ１１２の回路構成を模式的に示す図である。図６に示すように、実施の形態に係るシステムオンチップ１１２は、同一チップ上にＣＰＵ１０とグラフィックスプロセッサ１２０とが実装されている。グラフィックスプロセッサ１２０はバス１８を介してＣＰＵ１０と接続している。グラフィックスプロセッサ１２０はまた、バス１８を介してメモリ１３０とも接続している。以下、メモリ１３０、グラフィックスプロセッサ１２０、およびＣＰＵ１０を接続するバス１８を、ＧＰＵバス１８と呼ぶ。
【００４０】
ＣＰＵ１０は、バス２０を介してメモリ１３０と接続している。以下、ＣＰＵ１０とメモリ１３０とを接続するバス２０を、ＣＰＵバス２０と呼ぶ。このように、ＣＰＵ１０はＧＰＵバス１８とＣＰＵバス２０とに接続するため、これらのバスとはブリッジ１２を介して接続する。また、メモリ１３０はＧＰＵバス１８とＣＰＵバス２０とに接続する。このため、メモリ１３０におけるＣＰＵ１０またはグラフィックスプロセッサ１２０との間でのデータのやりとりは、メモリ制御部１４を介して実行する。
【００４１】
グラフィックスプロセッサ１２０とＣＰＵ１０は、メモリ１３０に格納されたデータを共有することができる。グラフィックスプロセッサ１２０とＣＰＵ１０との間で緊密なデータ交換ができるため、グラフィックスプロセッサ１２０とＣＰＵ１０とが異なる基板上に実装される場合と比較して、高いスループットを実現することができる。
【００４２】
メモリ１３０に格納されたデータは、Ｉ／Ｏ（Input / Output）ブリッジ２２を介して符号化部１６０に転送される。
【００４３】
グラフィックスプロセッサ１２０中のゲーム映像生成部１２２は、ネットワーク２００を介してクライアント装置３００に配信するゲームの映像を生成する。ゲーム映像生成部１２２は、生成した映像データをメモリ１３０に格納する。グラフィックスプロセッサ１２０中の映像拡縮部１２４は、メモリ１３０に所定のデータ量の映像データが格納されることを契機として、その所定のデータ量の映像データのサイズを変換する。ここで「所定のデータ量」とは、符号化部１６０が扱うデータの単位量であり、映像データの圧縮ビデオストリームを生成する単位量である。説明の便宜上、以下所定のデータ量を「スライス単位」と記載することがある。「スライス単位」は、符号化部１６０の処理能力等を勘案して定めればよいが、例えば縦１６ピクセル、横１６ピクセルのマクロブロックを複数束ねた量である。なお、ＧＰＵバス１８には表示制御部１４０も接続されており、ゲーム映像生成部１２２は、表示制御部１４０が生成する垂直同期信号にしたがってゲームの映像を生成する。
【００４４】
グラフィックスプロセッサ１２０中の表色系変換部１２６は、映像拡縮部１２４によるサイズ変換後の映像データの表色系を変換する。なお、映像拡縮部１２４によるサイズ変換が必要ない場合、表色系変換部１２６は、メモリ１３０に所定のデータ量の映像データが格納されることを契機として、その映像データの表色系を変換する。ここで表色系変換部１２６は、メモリ１３０に格納された映像データを、符号化部１６０が符号化可能な表色系の映像データに変更する。すなわち、表色系変換部１２６はメモリ１３０をそのまま作業領域として利用する。これにより、他の作業領域で表色系の変換を実行する場合と比較して、データの転送に要する時間を抑制することができ、レイテンシの低減に寄与する。符号化部１６０が符号化可能な表色系とは、例えばＹＵＶ表色系である。
【００４５】
上述したように、映像拡縮部１２４や表色系変換部１２６は、プログラマブルシェーダによって実現されている。プログラマブルシェーダの処理単位は上述したスライス単位である。ゲーム映像生成部１２２が生成する映像はスライス単位となるように分割され、スライス単位の処理結果がメモリ１３０に書き出される。スライス単位の処理結果がメモリ１３０に書き出された時点で、グラフィックスプロセッサ１２０は、符号化部１６０に対する同期信号を発効する。符号化部１６０は、グラフィックスプロセッサ１２０が発行した同期信号の受信を契機として、符号化を開始する。なお、グラフィックスプロセッサ１２０と符号化部１６０との間の同期処理は、たとえばセマフォ等の高速なものが用いられる。
【００４６】
同期命令を受け取った符号化部１６０は、グラフィックスプロセッサ１２０が生成したスライス単位の映像データを読み出して、圧縮ビデオストリームを生成する。スライス単位の圧縮ストリーム生成が完了すると、符号化部１６０は、ＣＰＵ１０に対して同期命令を生成する。符号化部１６０からＣＰＵ１０に対する同期命令は、割り込みのほか、共有メモリを介したセマフォが用いられる。ＣＰＵ１０は、スライス単位でネットワーク２００を介してクライアント装置３００に圧縮ビデオデータを送出する。
【００４７】
図７は、図４に示すゲーム提供サーバ１１０の構成における、ゲーム映像の提供の流れを模式的に示す図である。図３と同様に、図７において横軸６００は時間の流れを示す時間軸である。
【００４８】
一般に、ゲームは垂直同期信号に同期して映像を表示するように作られる。したがって、ゲーム提供サーバ１１０も、垂直同期信号に同期して映像を表示するように作られたゲームを提供する。図７においては、表示制御部１４０は、時刻Ｖ１、Ｖ２に垂直同期信号を生成している。なお、時刻Ｖ５においては、クライアント装置３００の図示しない表示制御部が、クライアント装置３００でゲーム映像を表示するための垂直同期信号を生成している。図７において時刻Ｖ１〜Ｂ１、時刻Ｖ２〜Ｂ２、および時刻Ｖ５〜Ｂ５がＶＢＬＡＮＫ期間である。
【００４９】
時刻Ｇ１において、ゲーム映像生成部１２２がゲーム映像のレンダリングが完了し、ゲーム映像をメモリ１３０に出力し終える。ゲーム映像生成部１２２がゲーム映像のレンダリングが完了すると、映像拡縮部１２４および表色系変換部１２６は、表示制御部１４０が垂直同期信号を生成するか否かに関わらず、ゲーム映像の拡縮および表色系の変換を開始する。以下、ゲーム映像の拡縮および表色系の変換を総称して「フォーマット変換」と記載する。図７においては、時刻Ｇ１とほぼ同時期に、映像拡縮部１２４または表色系変換部１２６によるフォーマット変換が開始する。
【００５０】
上述したとおり、映像拡縮部１２４または表色系変換部１２６は、符号化部１６０の処理単位であるスライス単位でフォーマット変換を開始する。したがって、符号化部１６０は、スライス単位でフォーマット変換が完了すると、すぐに符号化を開始する。このため、図７に示すように、ゲーム映像１に関するフォーマット変換が実行される時刻Ｇ１〜Ｆ１と、その符号化が実行される時刻Ｅ１〜Ｅ２はほぼ重複しており、並列的に処理される。
【００５１】
時刻Ｎ１において、スライス単位の圧縮ストリーム生成が完了したため、符号化部１６０は、ＣＰＵ１０に対して同期命令を生成する。そのため、時刻Ｎ１において、符号化されたゲーム映像１は、ネットワーク２００を介してクライアント装置３００への配信が開始される。時刻Ｄ１において、クライアント装置３００は取得した符号化データの復号を開始し、時刻Ｂ５において、初めてゲーム映像のレンダリング１がクライアント装置３００のモニタに表示される。
【００５２】
このように、実施の形態に係るゲーム提供サーバ１１０は、表示制御部１４０が生成する垂直同期信号に依存せずに、ゲーム映像のフォーマット変換や符号化を開始することができる。このため、ゲーム映像のフォーマット変換や符号化の開始が垂直同期信号を契機とする場合と比較して、各部における処理の待ち時間が発生し、レイテンシを低減することができる。
【００５３】
以上説明したように、実施の形態に係るゲーム提供サーバ１１０によれば、クラウドゲーミングサービスにおけるレイテンシを減少する技術を提供することができる。
【００５４】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【００５５】
１０  ＣＰＵ、  １２  ブリッジ、  １４  メモリ制御部、  １８  ＧＰＵバス、  ２０  ＣＰＵバス、  ２２  ブリッジ、  １００  クラウドゲーミングシステム、  １１０  ゲーム提供サーバ、  １１２  システムオンチップ、  １２０  グラフィックスプロセッサ、  １２２  ゲーム映像生成部、  １２４  映像拡縮部、  １２６  表色系変換部、  １３０  メモリ、  １４０  表示制御部、  １６０  符号化部、  ２００  ネットワーク、  ３００  クライアント装置、  ４００  クラウドゲーミングシステム、  ４１０  ゲーム提供サーバ、  ４２０  グラフィックスプロセッサ、  ４３０  メモリ、  ４４０  表示制御部、  ４５０  映像キャプチャ部、  ４６０  符号化部。
【図１】
0006055433.tif 000002
【図２】
0006055433.tif 000003
【図３】
0006055433.tif 000004
【図４】
0006055433.tif 000005
【図５】
0006055433.tif 000006
【図６】
0006055433.tif 000007
【図７】
0006055433.tif 000008