IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ソニー・コンピュータエンタテインメントの特許一覧

特許7595154動画像受信装置、制御方法及びプログラム
<>
  • 特許-動画像受信装置、制御方法及びプログラム 図1
  • 特許-動画像受信装置、制御方法及びプログラム 図2
  • 特許-動画像受信装置、制御方法及びプログラム 図3
  • 特許-動画像受信装置、制御方法及びプログラム 図4
  • 特許-動画像受信装置、制御方法及びプログラム 図5
  • 特許-動画像受信装置、制御方法及びプログラム 図6
  • 特許-動画像受信装置、制御方法及びプログラム 図7
  • 特許-動画像受信装置、制御方法及びプログラム 図8
  • 特許-動画像受信装置、制御方法及びプログラム 図9
  • 特許-動画像受信装置、制御方法及びプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-27
(45)【発行日】2024-12-05
(54)【発明の名称】動画像受信装置、制御方法及びプログラム
(51)【国際特許分類】
   H04N 21/45 20110101AFI20241128BHJP
   H04N 21/472 20110101ALI20241128BHJP
   A63F 13/86 20140101ALI20241128BHJP
   A63F 13/77 20140101ALI20241128BHJP
【FI】
H04N21/45
H04N21/472
A63F13/86
A63F13/77
【請求項の数】 7
(21)【出願番号】P 2023517463
(86)(22)【出願日】2022-04-19
(86)【国際出願番号】 JP2022018209
(87)【国際公開番号】W WO2022230727
(87)【国際公開日】2022-11-03
【審査請求日】2023-11-07
(31)【優先権主張番号】P 2021077839
(32)【優先日】2021-04-30
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】谷川 正和
【審査官】鈴木 順三
(56)【参考文献】
【文献】特開2000-107453(JP,A)
【文献】特開2019-164792(JP,A)
【文献】特開2016-048898(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00 - 21/858
A63F 13/00 - 13/98
(57)【特許請求の範囲】
【請求項1】
動画像を構成するフレーム画像を表す画像データを動画像送信装置から順次受信する動画像受信装置であって、
ユーザの入力操作に応じた操作データを前記動画像送信装置に送信する操作データ送信部と、
前記動画像送信装置における前記操作データの受信から当該操作データに基づく前記フレーム画像の生成の開始までの時間を示す間隔データを前記動画像送信装置から受信する間隔データ受信部と、
前記間隔データに基づいて、次の前記操作データが送信されるタイミングを制御する送信タイミング制御部と、
を含むことを特徴とする動画像受信装置。
【請求項2】
前記操作データに基づく前記フレーム画像の生成の開始に応じて前記動画像送信装置から送信される、当該操作データに対応付けられるパケットを受信するパケット受信部、をさらに含み、
前記送信タイミング制御部は、前記パケットを受信したタイミングから次の前記操作データが送信されるまでの時間を制御する、
ことを特徴とする請求項1に記載の動画像受信装置。
【請求項3】
前記送信タイミング制御部は、前記パケットを受信したタイミングから次の前記操作データが送信されるまでの時間が第1の目標を達成するよう前記操作データが送信されるタイミングを制御する第1制御と、前記間隔データが示す時間が第2の目標を達成するよう前記操作データが送信されるタイミングを制御する第2制御と、を実行し、
前記送信タイミング制御部は、前記第1制御において前記第1の目標が達成されたことに応じて、前記第2制御を開始する、
ことを特徴とする請求項2に記載の動画像受信装置。
【請求項4】
前記送信タイミング制御部は、前記間隔データに基づいて、これから送信される前記操作データの送信周期を制御する、
ことを特徴とする請求項に記載の動画像受信装置。
【請求項5】
前記動画像は、ゲームのプレイ状況に応じて生成される動画像であって、
前記入力操作は、前記ゲームのプレイにおける入力操作である、
ことを特徴とする請求項に記載の動画像受信装置。
【請求項6】
動画像を構成するフレーム画像を表す画像データを動画像送信装置から順次受信する動画像受信装置が、ユーザの入力操作に応じた操作データを前記動画像送信装置に送信するステップと、
前記動画像送信装置における前記操作データの受信から当該操作データに基づく前記フレーム画像の生成の開始までの時間を示す間隔データを前記動画像送信装置から受信するステップと、
前記間隔データに基づいて、次の前記操作データが送信されるタイミングを制御するステップと、
を含むことを特徴とする制御方法。
【請求項7】
動画像を構成するフレーム画像を動画像送信装置から順次受信するコンピュータに、
ユーザの入力操作に応じた操作データを前記動画像送信装置に送信する手順、
前記動画像送信装置における前記操作データの受信から当該操作データに基づく前記フレーム画像の生成の開始までの時間を示す間隔データを前記動画像送信装置から受信する手順、
前記間隔データに基づいて、次の前記操作データが送信されるタイミングを制御する手順、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動画像受信装置、制御方法及びプログラムに関する。
【背景技術】
【0002】
近年注目されているクラウドゲーミングサービスの技術では、端末に対するユーザの入力操作に応じた操作データが端末からクラウドサーバに無線で送信される。そして、クラウドサーバにおいて、当該操作データに基づいて、ゲームのプレイ状況を表すフレーム画像が生成される。そして、当該フレーム画像をエンコードした画像データがクラウドサーバから端末に無線で送信され、端末において当該画像データをデコードしたフレーム画像が表示される。この一連の処理が繰り返し実行されることで、ゲームのプレイ状況を表す動画像が端末に表示される。
【0003】
また、クラウドゲーミングサービスのなかには、端末からクラウドサーバへの操作データの送信とクラウドサーバにおけるフレーム画像の生成が非同期で行われ、また、操作データの送信周期とフレーム画像の生成周期とが異なるものがある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
操作におけるユーザの違和感を低減するために、クラウドサーバにおける操作データの受信からフレーム画像の生成開始までの時間はなるべく一定であることが望ましい。
【0005】
しかし、通信環境によっては端末から送信された操作データがクラウドサーバに到達するまでの時間が変動することがある。このことは、第4世代移動通信システム(4G)や第5世代移動通信システム(5G)のような帯域変動が大きい移動通信システムを利用した無線通信においては特に顕著となる。
【0006】
そのため、クラウドサーバにおける操作データの受信からフレーム画像の生成開始までの時間が許容範囲に収まらず、ユーザに違和感が生じることがあった。
【0007】
なおこのことはクラウドゲーミングサービスが提供される状況のみならず、端末に相当する動画像受信装置から送信される操作データをクラウドサーバに相当する動画像送信装置が受信して、当該動画像送信装置がフレーム画像を生成して当該動画像受信装置に送信する状況において一般的にあてはまる。
【0008】
本発明は上記実情に鑑みてなされたものであって、その目的の一つは、動画像受信装置での操作に応じて動画像送信装置で生成される動画像が動画像受信装置で表示される状況におけるユーザの違和感を低減できる動画像受信装置、制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明に係る動画像受信装置は、動画像を構成するフレーム画像を表す画像データを動画像送信装置から順次受信する動画像受信装置であって、ユーザの入力操作に応じた操作データを前記動画像送信装置に送信する操作データ送信部と、前記動画像送信装置における前記操作データの受信から当該操作データに基づく前記フレーム画像の生成の開始までの時間を示す間隔データを前記動画像送信装置から受信する間隔データ受信部と、前記間隔データに基づいて、次の前記操作データが送信されるタイミングを制御する送信タイミング制御部と、を含む。
【0010】
本発明の一態様では、前記操作データに基づく前記フレーム画像の生成の開始に応じて前記動画像送信装置から送信される、当該操作データに対応付けられるパケットを受信するパケット受信部、をさらに含み、前記送信タイミング制御部は、前記パケットを受信したタイミングから次の前記操作データが送信されるまでの時間を制御する。
【0011】
この態様では、前記送信タイミング制御部は、前記パケットを受信したタイミングから次の前記操作データが送信されるまでの時間が第1の目標を達成するよう前記操作データが送信されるタイミングを制御する第1制御と、前記間隔データが示す時間が第2の目標を達成するよう前記操作データが送信されるタイミングを制御する第2制御と、を実行し、前記送信タイミング制御部は、前記第1制御において前記第1の目標が達成されたことに応じて、前記第2制御を開始してもよい。
【0012】
また、本発明の一態様では、前記送信タイミング制御部は、前記間隔データに基づいて、これから送信される前記操作データの送信周期を制御する。
【0013】
また、本発明の一態様では、前記動画像は、ゲームのプレイ状況に応じて生成される動画像であって、前記入力操作は、前記ゲームのプレイにおける入力操作である。
【0014】
また、本発明に係る制御方法は、動画像を構成するフレーム画像を表す画像データを動画像送信装置から順次受信する動画像受信装置が、ユーザの入力操作に応じた操作データを前記動画像送信装置に送信するステップと、前記動画像送信装置における前記操作データの受信から当該操作データに基づく前記フレーム画像の生成の開始までの時間を示す間隔データを前記動画像送信装置から受信するステップと、前記間隔データに基づいて、次の前記操作データが送信されるタイミングを制御するステップと、を含む。
【0015】
また、本発明に係るプログラムは、動画像を構成するフレーム画像を動画像送信装置から順次受信するコンピュータに、ユーザの入力操作に応じた操作データを前記動画像送信装置に送信する手順、前記動画像送信装置における前記操作データの受信から当該操作データに基づく前記フレーム画像の生成の開始までの時間を示す間隔データを前記動画像送信装置から受信する手順、前記間隔データに基づいて、次の前記操作データが送信されるタイミングを制御する手順、を実行させる。
【図面の簡単な説明】
【0016】
図1】本発明の一実施形態に係るクラウドゲーミングシステムの全体構成の一例を示す図である。
図2】本発明の一実施形態に係るクラウドサーバで発生する処理のタイミングの一例を模式的に示す図である。
図3】本発明の一実施形態に係るクラウドゲーミングシステムで発生する通信の一例を模式的に示す図である
図4】本発明の一実施形態に係るクラウドゲーミングシステムで行われるビットレート制御の一例を説明する説明図である。
図5】本発明の一実施形態に係るクラウドゲーミングシステムで行われるパッドシンク制御の一例を説明する説明図である。
図6】本発明の一実施形態に係るクラウドゲーミングシステムで実装される機能の一例を示す機能ブロック図である。
図7】本発明の一実施形態に係るクラウドサーバにおいて行われる処理の流れの一例を示すフロー図である。
図8】本発明の一実施形態に係るクラウドサーバにおいて行われる処理の流れの一例を示すフロー図である。
図9】本発明の一実施形態に係るクラウドサーバにおいて行われる処理の流れの一例を示すフロー図である。
図10】本発明の一実施形態に係るクラウドサーバにおいて行われる処理の流れの一例を示すフロー図である。
【発明を実施するための形態】
【0017】
以下、本発明の一実施形態について、図面を参照しながら説明する。
【0018】
図1は、本発明の一実施形態に係るクラウドゲーミングシステム1の全体構成の一例を示す図である。図1に示すように、本実施形態に係るクラウドゲーミングシステム1には、いずれもコンピュータを中心に構成された、クラウドサーバ10と端末12とが含まれている。
【0019】
クラウドサーバ10と端末12とは、第4世代移動通信システム(4G)や第5世代移動通信システム(5G)などの移動通信システムやインターネットなどを含むコンピュータネットワーク14に接続されている。例えば、クラウドサーバ10は、インターネットに接続されており、端末12は、4Gや5Gなどの移動通信システムに接続されている。そして、クラウドサーバ10と端末12とはコンピュータネットワーク14を介して互いに通信可能となっている。
【0020】
本実施形態に係るクラウドサーバ10は、例えば、クラウドゲーミングサービスに係るゲームのプログラムを実行するサーバコンピュータである。
【0021】
図1に示すように、クラウドサーバ10には、例えば、プロセッサ10a、記憶部10b、通信部10c、エンコーダ・デコーダ部10dが含まれている。
【0022】
プロセッサ10aは、例えばCPU等のプログラム制御デバイスであって、記憶部10bに記憶されたプログラムに従って各種の情報処理を実行する。本実施形態に係るプロセッサ10aには、当該CPUから供給されるグラフィックスコマンドやデータに基づいてフレームバッファに画像を描画するGPU(Graphics Processing Unit)も含まれている。
【0023】
記憶部10bは、例えばROMやRAM等の記憶素子やソリッドステートドライブ(SSD)などである。記憶部10bには、プロセッサ10aによって実行されるプログラムなどが記憶される。また、本実施形態に係る記憶部10bには、プロセッサ10aに含まれるGPUにより画像が描画されるフレームバッファの領域が確保されている。
【0024】
通信部10cは、例えばコンピュータネットワーク14を介して、端末12などといったコンピュータとの間でデータを授受するための通信インタフェースである。
【0025】
エンコーダ・デコーダ部10dは、例えばエンコーダとデコーダとを含む。当該エンコーダは、入力される画像をエンコードすることにより当該画像を表す画像データを生成する。また当該デコーダは、入力される画像データをデコードして、当該画像データが表す画像を出力する。
【0026】
本実施形態に係る端末12は、例えばクラウドゲーミングサービスを利用するユーザが利用する、スマートフォンやタブレット端末などのコンピュータである。なお、端末12が、通信ドングルを含んだテレビのような、通信ドングルを介してクラウドサーバ10と通信可能な電子機器であっても構わない。
【0027】
図1に示すように、端末12には、例えば、プロセッサ12a、記憶部12b、通信部12c、表示部12d、操作部12e、センサ部12f、音声出力部12g、エンコーダ・デコーダ部12hが含まれている。
【0028】
プロセッサ12aは、例えばCPU等のプログラム制御デバイスであって、記憶部12bに記憶されたプログラムに従って各種の情報処理を実行する。
【0029】
記憶部12bは、例えばROMやRAM等の記憶素子やソリッドステートドライブ(SSD)などである。記憶部12bには、プロセッサ12aによって実行されるプログラムなどが記憶される。
【0030】
通信部12cは、例えばコンピュータネットワーク14を介して、クラウドサーバ10などといったコンピュータとの間でデータを授受するための通信インタフェースである。
【0031】
表示部12dは、例えば液晶ディスプレイや有機ELディスプレイなどの表示デバイスである。
【0032】
操作部12eは、例えばプロセッサ12aに対する操作入力を行うための操作部材である。
【0033】
センサ部12fは、例えば加速度や角速度を検出可能なモーションセンサなどといったセンサである。
【0034】
音声出力部12gは、例えば音声データが表す音声等を出力するスピーカなどといった音声出力デバイスである。
【0035】
エンコーダ・デコーダ部12hは、例えばエンコーダとデコーダとを含む。当該エンコーダは、入力される画像をエンコードすることにより当該画像を表す画像データを生成する。また当該デコーダは、入力される画像データをデコードして、当該画像データが表す画像を出力する。
【0036】
なお、端末12が、タッチパネルを備えていてもよい。この場合、当該タッチパネルは、上述の表示部12dと操作部12eの両方の役割を担うこととなる。
【0037】
本実施形態では、クラウドゲーミングサービスにおけるゲームのプレイにおける入力操作をユーザが操作部12eに対して行うと、端末12は、当該入力操作に応じた操作データを生成して、当該操作データをクラウドサーバ10に送信する。以下、当該操作データをパッドデータPと呼ぶこととする。
【0038】
そして、クラウドサーバ10は、受信したパッドデータPに応じたゲーム処理を実行する。そして、クラウドサーバ10は、当該ゲーム処理の結果に基づいて、当該ゲームのプレイ状況を表すフレーム画像であるプレイ画像を生成して、当該プレイ画像をクラウドサーバ10のフレームバッファに描画する。本実施形態では、ゲーム処理及びプレイ画像の生成が繰り返し実行される。
【0039】
そして、クラウドサーバ10は、フレームバッファに描画されたプレイ画像を取得して、当該プレイ画像をエンコードすることで、当該プレイ画像を表す画像データを生成する。そして、クラウドサーバ10は、生成される画像データを端末12に送信する。そして端末12は、クラウドサーバ10から受信した画像データをデコードして、当該デコードによって生成されるプレイ画像を表示部12dに表示させる。
【0040】
以上のようにして本実施形態に係るクラウドサーバ10は、ゲームのプレイ状況に応じて生成される動画像を、当該ゲームをプレイしているユーザが利用している端末12にストリーミング配信する。
【0041】
図2は、本実施形態に係るクラウドサーバ10で発生する処理のタイミングの一例を模式的に示す図である。
【0042】
本実施形態では例えば、初期状態において、端末12が、所定の周期(例えば、4ミリ秒周期)で、当該タイミングに操作部12eが受け付けた入力操作を示すパッドデータPをクラウドサーバ10に送信する。本実施形態に係るパッドデータPには、パッドデータPの送信順序を表す順序番号が関連付けられている。
【0043】
図2には、このようにして送信されるパッドデータP(0)~P(10)のクラウドサーバ10における受信タイミングが示されている。なお、図2では、受信したパッドデータPに関連付けられている順序番号が、P(0)~P(10)における括弧内の番号として示されている。なお、コンピュータネットワーク14の通信品質によっては、クラウドサーバ10が必ずしも4ミリ秒間隔でパッドデータPを受信するとは限らない。
【0044】
クラウドサーバ10では、所定の周期(例えば、16ミリ秒周期)で、プレイ画像の生成が行われる。このとき、クラウドサーバ10は、プレイ画像の生成開始のタイミングにおいて直近に受信したパッドデータP(最新のパッドデータP)が示す入力操作に基づいて、プレイ画像を生成して、生成されるプレイ画像をフレームバッファに描画する。
【0045】
図2に示されている期間Gが、プレイ画像の生成期間を表している。図2の例では、期間G(m,n)に、順序番号がnであるパッドデータP(n)に基づいて、順序番号がmであるプレイ画像が生成されることとする。すなわち、図2では、パッドデータP(0)に基づくプレイ画像の生成期間がG(1,0)と示されている期間に相当する。また、パッドデータP(4)に基づくプレイ画像の生成期間がG(2,4)と示されている期間に相当する。また、パッドデータP(8)に基づくプレイ画像の生成期間がG(3,8)と示されている期間に相当する。
【0046】
なお、本実施形態では、端末12におけるパッドデータPの送信周期と、クラウドサーバ10におけるプレイ画像の生成周期とは異なっている。例えば、初期状態では、プレイ画像の生成周期はパッドデータPの送信周期の4倍となっている。そのため、クラウドサーバ10が受信したすべてのパッドデータPがプレイ画像の生成に用いられるわけではない。図2の例では、P(1)~P(3)、P(5)~P(7)、P(9)、P(10)と示されているパッドデータPについては、プレイ画像の生成には用いられない。
【0047】
また、本実施形態では、クラウドサーバ10は、パッドデータPに基づくプレイ画像の生成が開始されたタイミングに、プレイ画像の生成が開始されたことを示すパケットを端末12に送信する。以下、当該パケットを、ビデオシンクパケット(Video Sync Packet:VSP)と呼ぶこととする。本実施形態では、パッドデータPに基づくプレイ画像の生成が開始されたタイミングに送信されるVSPには、当該プレイ画像の順序番号(上述のm)、及び、当該パッドデータPの順序番号(上述のn)が含まれている。このように、本実施形態に係るVSPは、プレイ画像と1対1で対応付けられる。
【0048】
図2には、順序番号が1であるプレイ画像の生成が開始されるタイミングに、VSP(1,0)が送信されることが示されている。また、順序番号が2であるプレイ画像の生成が開始されるタイミングに、VSP(2,4)が送信されることが示されている。また、順序番号が3であるプレイ画像の生成が開始されるタイミングに、VSP(3,8)が送信されることが示されている。
【0049】
また、本実施形態では例えば、フレームバッファへのプレイ画像の描画が終了すると、当該プレイ画像のエンコード、及び、当該エンコードによって生成される画像データの送信が実行される。なお、本実施形態に係るクラウドサーバ10のフレームバッファはマルチバッファで構成されており、描画が終了したプレイ画像のエンコードと並行して、次のプレイ画像の描画を行えるようになっている。
【0050】
図2に示されている期間Sが、プレイ画像のエンコード及び画像データの送信が行われる期間に相当する。図2の例では、期間S(m,n)に、順序番号がnであるパッドデータPに基づいて生成された、順序番号がmであるプレイ画像のエンコード及び当該エンコードによって生成される画像データの送信が行われることとする。すなわち、図2では、順序番号が1であるプレイ画像のエンコード、及び、当該エンコードによって生成される画像データの送信が行われる期間が、S(1,0)と示されている期間に相当する。また、順序番号が2であるプレイ画像のエンコード、及び、当該エンコードによって生成される画像データの送信が行われる期間が、S(2,4)と示されている期間に相当する。
【0051】
本実施形態では、パッドデータPに基づいて生成されるプレイ画像をエンコードすることによって生成される画像データには、当該パッドデータPの順序番号(上述のn)、及び、当該プレイ画像の順序番号(上述のm)が関連付けられている。
【0052】
また、本実施形態では、クラウドサーバ10において、パッドデータPの受信タイミングから当該パッドデータPに基づくプレイ画像の生成開始タイミングまでの時間が測定される。そして、クラウドサーバ10において、測定された当該時間を示す間隔データが生成される。そして、本実施形態では、当該プレイ画像に基づいて生成される画像データには、このようにして生成された間隔データが関連付けられる。
【0053】
図3は、順序番号が4であるパッドデータP(4)の送信から当該パッドデータP(4)に基づいて生成される画像データの受信までの間にクラウドサーバ10と端末12との間で発生する通信の一例を模式的に示す図である。図3の例では、図2においてS(2,4)と示されている期間に送信される画像データがD(2,4)と示されている。
【0054】
本実施形態に係る端末12は、パッドデータPを送信したタイミングから当該パッドデータPに対応付けられるVSPを受信したタイミングまでの時間であるパケット受信時間を特定する。以下、当該パケット受信時間を、図3に示すように、PadVspRTTとも表現することとする。本実施形態に係る端末12は、例えば、クラウドサーバ10から受信するVSPに含まれるパッドデータPの順序番号に基づいて、PadVspRTTを特定する。
【0055】
また、図3に示すように、端末12におけるパッドデータPの送信から当該パッドデータPに基づいて生成される画像データの最初のセグメントの受信までの時間を、PadFirstFragRTTと呼ぶこととする。
【0056】
また、端末12におけるパッドデータPの送信から当該パッドデータPに基づいて生成される画像データの最後のセグメントの受信までの時間を、PadFrameRTTと呼ぶこととする。
【0057】
また、端末12における画像データの最初のセグメントの受信から当該画像データの最後のセグメントの受信までの時間を、TransferTimeと呼ぶこととする。以下、TransferTimeを、TTと表現することとする。
【0058】
本実施形態に係る端末12は、クラウドサーバ10から受信する画像データに基づいてTTの値を特定する。ここで例えば、端末12は、画像データに関連付けられているパッドデータPの順序番号に基づいて、PadFrameRTTの値、及び、PadFrameRTTの値を特定してもよい。そして、端末12は、PadFrameRTTの値からPadFirstFragRTTの値を引くことでTTの値を特定してもよい。
【0059】
なお、本実施形態において、1つのプレイ画像を複数のスライスに分割した上で、スライス毎にエンコードや画像データの送信が行われるスライス転送方式が採用される場合には、1フレームあたりのスライス数を考慮したTTの特定が行われるようにしてもよい。例えば、1つのスライスに係る画像データの送信が終了してから次のスライスに係る画像データの送信が開始されるまでに所定の無通信時間が発生することを踏まえたTTの特定が行われるようにしてもよい。この場合、例えば、PadFrameRTTの値からPadFirstFragRTTの値を引いた値からさらに、(1フレーム当たりのスライス数-1)に上述の無通信時間を乗じた値を引いた値が、TTの値として特定されてもよい。
【0060】
また、図3に示すように、クラウドサーバ10におけるパッドデータPの受信タイミングから当該パッドデータPに基づくプレイ画像の生成開始タイミングまでの時間を、PRecvGStartTimeと呼ぶこととする。
【0061】
本実施形態に係る端末12は、画像データに関連付けられている間隔データに基づいて、PRecvGStartTimeを特定する。
【0062】
また、図2に示すように、端末12におけるVSPを受信したタイミングから次のパッドデータPを送信したタイミングまでの時間を、DiffPadVspと呼ぶこととする。
【0063】
以下、本実施形態に係るクラウドゲーミングシステム1で行われるビットレート制御について説明する。
【0064】
クラウドゲーミングシステム1によって提供されるクラウドゲーミングサービスでは、端末12に表示される動画像はできるだけ高画質であることが望ましい。従って当該動画像を構成するプレイ画像に基づいて生成される画像データのデータサイズはできるだけ大きいことが望ましい。
【0065】
しかし本実施形態のような即時性が求められる無線通信では、操作におけるユーザの違和感を低減するために、画像データのデータサイズを小さくしてでもそれぞれのプレイ画像が滞りなく低遅延で端末12に表示されるようにすることが重要となる。
【0066】
また、4Gや5Gなどの移動通信システムは、無線通信路(電波の強度)の品質にばらつきがある、混雑によって通信リソースの割り当てが行われないことがある、移動による基地局間のハンドオーバが発生する、などの事情がある。そのため、4Gや5Gなどの移動通信システムでは、帯域変動が大きく遅延が発生しがちである。
【0067】
また、Wi-Fi(登録商標)による通信環境ではアップリンク(本実施形態における端末12からクラウドサーバ10への通信)とダウンリンク(本実施形態におけるクラウドサーバ10から端末12への通信)とで通信品質がそれほど変わらない。一方、4Gや5Gなどの通信環境ではアップリンクとダウンリンクのうち一方の通信品質が良く他方の通信品質が悪いということが起こりがちである。
【0068】
そのため、4Gや5Gのような移動通信システムを利用した動画像の送信が行われる状況においてはフレーム画像が低遅延で端末12に表示されるよう特に留意する必要がある。
【0069】
そこで、本実施形態では、図4に示されているビットレート制御を行うことで、遅延を考慮した適切なデータサイズの画像データがクラウドサーバ10において生成されるようにした。
【0070】
図4は、本実施形態に係るクラウドゲーミングシステム1で行われるビットレート制御の一例を説明する説明図である。
【0071】
図4に示すように、本実施形態に係るビットレート制御では、帯域変動追従制御とパケ詰まり低減制御という2種類の制御が行われる。
【0072】
帯域変動追従制御では、まず、通信環境が多少悪くなっても画像データの欠落が発生しないよう、ジッタに対する余裕を持たせて、送信される動画像のフレームレート(FPS)の逆数の半分に各フレームのTTの値が近づくようビットレートが制御される。例えば、送信される動画像のフレームレートが60fpsである場合には、TTが約8ミリ秒に近づくよう動画像の通信におけるビットレートが制御される。
【0073】
例えば、1/(FPS×2)を目標値とし、TTを現在値とし、ビットレートの値Rを操作量とするPID制御によって、ビットレートの値Rが決定される。
【0074】
このことは、図4に、R=PID(TT-(1/(FPS×2)))と示されている。例えば、TT-(1/(FPS×2))の値が大きいほど、Rの値は小さくなるよう制御される。また、TTの値が1/(FPS×2)の値よりも大きい場合は、Rの値は小さくなるよう制御され、TTの値が1/(FPS×2)の値よりも小さい場合は、Rの値は大きくなるよう制御される。
【0075】
また、帯域変動追従制御では、帯域変動に素早く追従するために、パケット受信時間(PadVspRTT)が急激に上昇したら、即座にビットレートのさらなる低減が実行される。
【0076】
例えば、PadVspRTTの時系列データを所定のローパスフィルタに通すことで、細かいノイズの除去が行われる。以下、このようにして細かいノイズが除去されたPadVspRTTをFilPadVspRTTと表現することとする。このことは、図4に、FilPadVspRTT=LPF(PadVspRTT)と示されている。
【0077】
そして、後述するEstBtmLatencyの値を目標値とし、FilPadVspRTTの値を現在値とし、ビットレート低減量の値Dを操作量とするPD制御によって、ビットレート低減量の値Dが決定される。ここでは帯域変動に素早く追従するために、PID制御ではなく、PD制御が行われる。
【0078】
このことは、図4に、D=PD(FilPadVspRTT-EstBtmLatency)と示されている。例えば、FilPadVspRTT-EstBtmLatencyの値が大きいほど、Dの値は大きくなるよう制御される。また、FilPadVspRTTの値がEstBtmLatencyの値よりも大きい場合は、Dの値は大きくなるよう制御される。また、FilPadVspRTTの値がEstBtmLatencyの値よりも小さい場合は、Dの値は小さくなるよう制御される。
【0079】
本実施形態では、EstBtmLatencyの値は、初期状態では所定値が設定される。そして、PadVspRTTの特定が行われる度に、最新のPadVspRTT(PadVspRTT[n])と、直前のPadVspRTT(PadVspRTT[n-1])との差の絶対値Vが特定される。そして、所与の値N、及び、所定の閾値Th1に対して、絶対値VがTh1未満である状態がN回連続して発生した際に、EstBtmLatencyの値が更新される。例えば、EstBtmLatencyの値が、絶対値VがTh1未満である状態が連続して発生したN回におけるPadVspRTTの値の平均値に更新される。このことが図4では、EstBtmLatency=Average(PadVspRTT[n]~PadVspRTT[n-N+1])と示されている。
【0080】
本実施形態ではこのようにして、帯域がある程度安定している状態におけるPadVspRTTの値がEstBtmLatencyの値として設定される。そのため、PadVspRTTの現在値と安定した状態におけるPadVspRTTの値とが乖離すればするほど、決定されるDの値は大きくなる。
【0081】
そして、本実施形態では、上述のようにして決定されるビットレートの値Rからビットレート低減量の値Dを引いた値Bが最終的なビットレートの値として特定される。ただし、決定された値Dが負である場合は、値Rの調整は行われず、値Rがそのまま値Bとして特定される。このことは、図4に、B=R-D(ただし、D<0の場合はD=0)と示されている。
【0082】
帯域変動追従制御は、所定のタイミングで実行されるようにしてもよい。例えば、帯域変動追従制御は、所定の周期(例えば、16ミリ秒周期)で実行されてもよい。また、帯域変動追従制御は、所定のイベントの発生(例えば、画像データの最後のセグメントの受信)に応じて実行されてもよい。
【0083】
また、本実施形態では、端末12において、例えば、パッドデータPの送信周期でVSPの受信の監視が行われる。そして、直近の所定時間t1におけるVSPの受信数Mが所定の閾値Th2よりも小さい場合は、帯域変動追従制御が中断される。例えば、直近100ミリ秒における受信数Mが5未満である、あるいは、直近の80ミリ秒にVSPが受信されていない、などの条件を満たした場合に、帯域変動追従制御が中断される。
【0084】
そして、上述のビットレートの値Bに所定の割合r(rは1未満)を乗じる処理である、パケ詰まり低減制御が実行される。なお、パケ詰まり低減制御で実行される処理は、値Bを小さくする処理であれば値Bに割合rを乗じる処理である必要はなく、例えば、値Bから所定値を引く処理が実行されてもよい。
【0085】
なお、本実施形態に係るパケ詰まり低減制御では、値Bが所定の下限b1に達したら、値Bはそれよりも小さくならないよう制御される。
【0086】
パケ詰まり低減制御は、所定のタイミングで実行されるようにしてもよい。例えば、パケ詰まり低減制御は、所定の周期(例えば、パッドデータPの送信周期)で実行されてもよい。また、パケ詰まり低減制御は、所定のイベントの発生(例えば、パッドデータPの送信)に応じて実行されてもよい。
【0087】
本実施形態では、直近の所定時間t1におけるVSPの受信数Mが所定の閾値Th2以上となった場合は、パケ詰まり低減制御が終了され、帯域変動追従制御が再開される。
【0088】
4Gや5Gなどの移動通信システムでは、再送やバッファリング制御が手厚く行われるため、基地局等の中継装置のバッファにデータが蓄積されやすい。例えば、4Gや5Gなどの通信環境でダウンリンクの通信が停止すると、基地局等の中継装置においてクラウドサーバ10から送信されるデータがため込まれやすい。このようにしてため込まれたデータは、ダウンリンクの通信が正常に戻ると一気に送信される。
【0089】
ため込まれたデータが排出されることによる遅延の増大や、端末12が一度に多くのデータを受信することによる端末12の受信バッファのオーバーフローの発生は、端末12における受信データの欠落の発生要因となる。本実施形態では、上述のようにしてパケ詰まり低減制御が実行されるようにすることで、通信環境の悪化によって通信不能状態となった際のコンピュータネットワーク14におけるデータの滞留量(パケ詰まり)が低減され、受信データの欠落の発生の抑制が可能となる。
【0090】
本実施形態に係るクラウドサーバ10は、送信される動画像のビットレートの値が、帯域変動追従制御によって決定される値Bや、パケ詰まり低減制御によって更新される値Bになるよう、プレイ画像のエンコードにおける圧縮率を変更する。このようにして本実施形態では、生成される画像データのデータサイズが制御される。
【0091】
以上のようにして、本実施形態によれば、遅延を考慮した適切なデータサイズの画像データがクラウドサーバ10において生成されることとなる。
【0092】
また、本実施形態では、上述のように、パケット受信時間(PadVspRTT)に基づいて、クラウドサーバ10によってこれから送信される画像データのデータサイズが制御される。このようにすることによって、急激なスループットの低下に対して即座に動画像のビットレートを低減させることができる。
【0093】
以下、本実施形態に係るクラウドゲーミングシステム1で行われるパッドシンク(Pad Sync)制御について説明する。
【0094】
クラウドゲーミングシステム1によって提供されるクラウドゲーミングサービスでは、操作におけるユーザの違和感を低減するために、クラウドサーバ10における操作データの受信からプレイ画像の生成開始までの時間はなるべく一定であることが望ましい。
【0095】
しかし通信環境によっては端末12から送信された操作データがクラウドサーバ10に到達するまでの時間が変動することがある。このことは、4Gや5Gのような帯域変動が大きい移動通信システムを利用した無線通信においては特に顕著となる。
【0096】
そのため、クラウドサーバ10における操作データの受信からプレイ画像の生成開始までの時間が許容範囲に収まらず、ユーザに違和感が生じることがあった。
【0097】
そこで、本実施形態では、図5に示されているパッドシンク制御を行うことで、端末12での操作に応じてクラウドサーバ10で生成される動画像が端末12で表示される状況におけるユーザの違和感を低減できるようにした。
【0098】
図5は、本実施形態に係るクラウドゲーミングシステム1で行われるパッドシンク制御の一例を説明する説明図である。
【0099】
図5に示すように、本実施形態に係るパッドシンク制御では、第1制御と第2制御という2種類の制御が行われる。
【0100】
第1制御では、DiffPadVsp(図2参照)を示す値が、所定値T1(例えば、パッドデータPの送信周期の1.5倍である値T1)に近づくよう、パッドデータPの送信タイミングが制御される。
【0101】
ここで例えば、値T1を目標値とし、DiffPadVspの値を現在値とし、パッドデータPの送信周期Tを操作量とするPD制御によって、パッドデータPの送信周期Tが決定される。このことは、図5に、T=PD(DiffPadVsp-T1)と示されている。例えば、(DiffPadVsp-T1)の値が大きいほど、Tの値は小さくなるよう制御される。また、DiffPadVspの値がT1の値よりも大きい場合は、Tの値は小さくなるよう制御され、DiffPadVspの値がT1の値よりも小さい場合は、Tの値は大きくなるよう制御される。
【0102】
そして、決定される送信周期Tで、パッドデータPが送信されるようにしてもよい。例えば、直近のパッドデータPの送信タイミングから、決定される送信周期Tに相当する時間が経過したタイミングに、パッドデータPが送信されるようにしてもよい。
【0103】
そして、例えば、DiffPadVspの値が安定したと判定された際に、パッドシンク制御は、第1制御から第2制御に移行される。例えば、DiffPadVspの値の変動を示す値(例えばDiffPadVspの-T1の絶対値)が所定の閾値Th3未満である状態が所定時間t2以上経過した、などといった所定の条件を満たした際に、パッドシンク制御は、第1制御から第2制御に移行される。
【0104】
第2制御では、クラウドサーバ10におけるパッドデータPの受信タイミングから当該パッドデータPに基づくプレイ画像の生成開始タイミングまでの時間(PRecvGStartTime)を示す値が、所定値T2(例えば、1ミリ秒)に近づくよう、第1制御では固定値だった値T1を可変にさせる。この場合における値T1を、T1_adjと表現することとする。
【0105】
ここで例えば、値T2を目標値とし、PRecvGStartTimeの値を現在値とし、値T1_adjを操作量とするPD制御によって、値T1_adjが決定される。このことは、図5に、T1_adj=PD(PRecvGStartTime-T2)と示されている。そして例えば、値T1_adjを目標値とし、DiffPadVspの値を現在値とし、パッドデータPの送信周期Tを操作量とするPD制御によって、パッドデータPの送信周期Tが決定される。このことは、図5に、T=PD(DiffPadVsp-T1_adj)と、示されている。まとめると、T=PD(DiffPadVsp-PD(PRecvGStartTime-T2))となる。
【0106】
そして、以上のようにして決定される送信周期Tで、パッドデータPが送信されるようにしてもよい。例えば、直近のパッドデータPの送信タイミングから、決定される送信周期Tに相当する時間が経過したタイミングに、パッドデータPが送信されるようにしてもよい。
【0107】
そして、例えば、DiffPadVspの値が不安定になったと判定された際に、パッドシンク制御は、第2制御から第1制御に移行される。例えば、DiffPadVspの値の変動を示す値(例えばDiffPadVsp-T1の絶対値)が所定の閾値Th3以上である状態が発生した、などといった所定の条件を満たした際に、パッドシンク制御は、第2制御から第1制御に移行される。
【0108】
パッドシンク制御は、所定のタイミングで実行されるようにしてもよい。例えば、パッドシンク制御は、所定の周期(例えば、16ミリ秒周期)で実行されてもよい。また、帯域変動追従制御は、所定のイベントの発生(例えば、画像データの最後のセグメントの受信)に応じて実行されてもよい。
【0109】
以上で説明したように、本実施形態では、パッドシンク制御によって、パッドデータPの送信タイミングとプレイ画像の生成タイミングとを同期させることで低遅延化が達成できる。このようにして本実施形態によれば、端末12での操作に応じてクラウドサーバ10で生成される動画像が端末12で表示される状況におけるユーザの違和感が低減される。
【0110】
また、本実施形態では、上述の第1制御と第2制御が実行されることで、PRecvGStartTimeを安定化させることができる。
【0111】
以下、以上で説明した点を中心に、本実施形態に係るクラウドゲーミングシステム1の機能及び本実施形態に係るクラウドゲーミングシステム1で実行される処理についてさらに説明する。
【0112】
図6は、本実施形態に係るクラウドゲーミングシステム1で実装される機能の一例を示す機能ブロック図である。なお、本実施形態に係るクラウドゲーミングシステム1で、図6に示す機能のすべてが実装される必要はなく、また、図6に示す機能以外の機能が実装されていても構わない。
【0113】
図6に示すように、本実施形態に係るクラウドサーバ10は、機能的には例えば、サーバ側制御データ記憶部20、操作データ受信部22、フレーム画像生成部24、VSP送信部26、エンコード処理実行部28、画像データ送信部30、サーバ側トラフィック制御部32、を含んでいる。本実施形態にクラウドサーバ10は、動画像を構成するフレーム画像を表す画像データを順次送信する動画像送信装置としての役割を担う。
【0114】
サーバ側制御データ記憶部20は、記憶部10bを主として実装される。操作データ受信部22、VSP送信部26、画像データ送信部30は、通信部10cを主として実装される。フレーム画像生成部24、サーバ側トラフィック制御部32は、プロセッサ10aを主として実装される。エンコード処理実行部28は、プロセッサ10a及びエンコーダ・デコーダ部10dを主として実装される。
【0115】
以上の機能は、コンピュータであるクラウドサーバ10にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ10aで実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してクラウドサーバ10に供給されてもよい。
【0116】
また図6に示すように、本実施形態に係る端末12は、機能的には例えば、端末側制御データ記憶部40、操作データ生成部42、操作データ送信部44、VSP受信部46、画像データ受信部48、デコード処理実行部50、フレーム画像表示制御部52、端末側トラフィック制御部54、送信タイミング制御部56、を含んでいる。本実施形態に端末12は、動画像を構成するフレーム画像を表す画像データを順次受信する動画像受信装置としての役割を担う。
【0117】
端末側制御データ記憶部40は、記憶部12bを主として実装される。操作データ生成部42は、プロセッサ10a及び操作部12eを主として実装される。操作データ送信部44、VSP受信部46、画像データ受信部48は、通信部12cを主として実装される。デコード処理実行部50は、プロセッサ10a及びエンコーダ・デコーダ部12hを主として実装される。フレーム画像表示制御部52は、プロセッサ12a及び表示部12dを主として実装される。端末側トラフィック制御部54、送信タイミング制御部56は、プロセッサ10aを主として実装される。
【0118】
以上の機能は、コンピュータである端末12にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ12aで実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介して端末12に供給されてもよい。
【0119】
サーバ側制御データ記憶部20は、本実施形態では例えば、上述のビットレートの値Bを示す制御データを記憶する。
【0120】
操作データ受信部22は、本実施形態では例えば、ユーザの入力操作に応じた操作データ(例えば上述のパッドデータP)を受信する。操作データ受信部22は、例えば、ゲームのプレイにおける入力操作に応じた操作データを受信する。
【0121】
フレーム画像生成部24は、本実施形態では例えば、操作データ受信部22が受信する操作データに基づいて、フレーム画像を生成する。フレーム画像生成部24は、例えば、パッドデータPに基づいて、ユーザによってプレイされているゲームのプレイ状況を表すプレイ画像を生成する。
【0122】
VSP送信部26は、本実施形態では例えば、操作データに基づくフレーム画像の生成の開始に応じて、当該操作データに対応付けられるパケットであるVSPを端末12に送信する。VSP送信部26は、例えば、フレーム画像の生成が開始されるタイミングに、VSPを送信する。
【0123】
エンコード処理実行部28は、本実施形態では例えば、フレーム画像生成部24が生成するフレーム画像をエンコードすることで、当該フレーム画像を表す画像データを生成する。エンコード処理実行部28は、送信される動画像のビットレートを示す値がサーバ側制御データ記憶部20に記憶されている制御データが示す値Bとなるような圧縮率を決定してもよい。そしてエンコード処理実行部28は、決定される圧縮率でフレーム画像をエンコードすることで、画像データを生成してもよい。
【0124】
また、エンコード処理実行部28は、上述の間隔データを生成してもよい。そして、エンコード処理実行部28は、生成される画像データに、生成される間隔データを関連付けてもよい。
【0125】
画像データ送信部30は、本実施形態では例えば、エンコード処理実行部28が生成する画像データを端末12に送信する。画像データ送信部30は、上述の間隔データが関連付けられた画像データを端末12に送信してもよい。
【0126】
サーバ側トラフィック制御部32は、本実施形態では例えば、画像データ送信部30によってこれから送信される画像データのデータサイズを制御する。
【0127】
上述のように、サーバ側トラフィック制御部32は、端末12が画像データの受信に要した時間を示す上述のTTの値に基づいて、画像データ送信部30によってこれから送信される画像データのデータサイズを制御してもよい。
【0128】
また、上述のように、サーバ側トラフィック制御部32は、上述のパケット受信時間(PadVspRTT)に基づいて、画像データ送信部30によってこれから送信される画像データのデータサイズを制御してもよい。
【0129】
端末側制御データ記憶部40は、本実施形態では例えば、上述のビットレートの値Bを示す制御データを記憶する。
【0130】
操作データ生成部42は、本実施形態では例えば、ユーザの入力操作に応じた上述の操作データを生成する。操作データ生成部42は、端末側制御データ記憶部40に記憶されている制御データが関連付けられた操作データを生成してもよい。
【0131】
操作データ送信部44は、本実施形態では例えば、操作データ生成部42によって生成される操作データをクラウドサーバ10に送信する。
【0132】
操作データ送信部44は、制御データが関連付けられた操作データを送信してもよい。この場合、サーバ側トラフィック制御部32は、操作データ受信部22が受信する操作データに関連付けられている制御データを取得してもよい。そして、サーバ側トラフィック制御部32は、サーバ側制御データ記憶部20に記憶されている制御データを取得した制御データに更新してもよい。
【0133】
なお、操作データ送信部44は、制御データを操作データに関連付けて送信する必要はなく、操作データとは独立に制御データをクラウドサーバ10に送信してもよい。そして、操作データ受信部22が、このようにして送信される制御データを受信してもよい。この場合、サーバ側トラフィック制御部32は、サーバ側制御データ記憶部20に記憶されている制御データを、操作データ受信部22が受信した制御データに更新してもよい。
【0134】
VSP受信部46は、本実施形態では例えば、操作データに基づくフレーム画像の生成の開始に応じてクラウドサーバ10から送信される、当該操作データに対応付けられるパケットであるVSPをクラウドサーバ10から受信する。
【0135】
画像データ受信部48は、本実施形態では例えば、クラウドサーバ10から送信される画像データを受信する。上述のように、画像データ受信部48は、間隔データが関連付けられた画像データを受信してもよい。
【0136】
デコード処理実行部50は、本実施形態では例えば、画像データ受信部48が受信する画像データをデコードすることで、当該画像データが表すフレーム画像(例えばプレイ画像)を生成する。
【0137】
フレーム画像表示制御部52は、本実施形態では例えば、デコード処理実行部50によって生成されるフレーム画像(例えばプレイ画像)を表示部12dに表示させる。
【0138】
端末側トラフィック制御部54は、本実施形態では例えば、クラウドサーバ10によってこれから送信される画像データのデータサイズを制御する。
【0139】
上述のように、端末側トラフィック制御部54は、クラウドサーバ10から送信される画像データの受信に要した時間を示す上述のTTの値に基づいて、画像データ送信部30によってこれから送信される画像データのデータサイズを制御してもよい。
【0140】
また、上述のように、端末側トラフィック制御部54は、端末12が操作データを送信したタイミングから当該操作データに対応付けられるVSPを受信したタイミングまでの時間である上述のパケット受信時間(PadVspRTT)を特定してもよい。そして、端末側トラフィック制御部54は、パケット受信時間に基づいて、画像データ送信部30によってこれから送信される画像データのデータサイズを制御してもよい。
【0141】
端末側トラフィック制御部54は、上述の帯域変動追従制御を実行してもよい。そして、端末側トラフィック制御部54は、端末側制御データ記憶部40に記憶されている制御データを、帯域変動追従制御を実行することで決定される値Bを示す制御データに更新してもよい。
【0142】
また、上述の帯域変動追従制御で説明したように、端末側トラフィック制御部54は、最新のVSPの受信におけるパケット受信時間と、最新より前の少なくとも1回のVSPの受信におけるパケット受信時間と、に基づいて、これから送信される画像データのデータサイズを制御してもよい。具体的には例えば、図4にD=PD(FilPadVspRTT-EstBtmLatency)と示されているような制御が実行されてもよい。
【0143】
また、端末側トラフィック制御部54は、上述のパケ詰まり低減制御を実行してもよい。そして、端末側トラフィック制御部54は、端末側制御データ記憶部40に記憶されている制御データを、パケ詰まり低減制御を実行することで更新される値Bを示す制御データに更新してもよい。
【0144】
また、上述のパケ詰まり低減制御で説明したように、端末側トラフィック制御部54は、所定の条件に基づいてVSPの受信の失敗が継続していると判定される場合に、画像データ送信部30によってこれから送信される画像データのデータサイズが小さくなるよう制御してもよい。例えば、上述のように、直近の所定時間t1におけるVSPの受信数Mが所定の閾値Th2よりも小さい場合に、上述のパケ詰まり低減制御が実行されるようにしてもよい。
【0145】
また、端末側トラフィック制御部54は、ビットレート制御のモードを示すビットレート制御モードフラグを保持してもよい。そして、例えば、ビットレート制御モードフラグの値が0である場合に帯域変動追従制御が実行され、ビットレート制御モードフラグの値が1である場合にパケ詰まり低減制御が実行されるようにしてもよい。
【0146】
送信タイミング制御部56は、本実施形態では例えば、操作データの送信タイミングを制御する。
【0147】
送信タイミング制御部56は、VSPを受信したタイミングから次の操作データが送信されるまでの時間を制御してもよい。例えば、送信タイミング制御部56は、VSPを受信したタイミングから次の操作データが送信されるまでの時間が第1の目標を達成するよう操作データが送信されるタイミングを制御する第1制御を実行してもよい。例えば上述の例における、DiffPadVspの値の変動を示す値が所定の閾値Th3未満である状態が所定時間t2以上経過した、などといった所定の条件を満たすことが、第1の目標に相当する。
【0148】
また、送信タイミング制御部56は、間隔データに基づいて、次の操作データが送信されるタイミングを制御してもよい。例えば、送信タイミング制御部56は、画像データ受信部48が受信する画像データに関連付けられている間隔データに基づいて、次の操作データが送信されるタイミングを制御してもよい。
【0149】
ここで例えば、送信タイミング制御部56は、間隔データが示す時間が第2の目標を達成するよう操作データが送信されるタイミングを制御する第2制御を実行してもよい。例えば上述の例における、PRecvGStartTimeの値が所定値T2(例えば、1ミリ秒)となることが、第2の目標に相当する。
【0150】
また、上述のように、送信タイミング制御部56は、第1制御において上述の第1の目標が達成されたことに応じて、第2制御を開始してもよい。
【0151】
また、上述のように、送信タイミング制御部56は、間隔データに基づいて、これから送信される操作データの送信周期Tを制御してもよい。
【0152】
また、画像データ送信部30が、間隔データが関連付けられた画像データを送信する必要はない。画像データ送信部30は、画像データとは独立に間隔データをクラウドサーバ10に送信してもよい。そして、画像データ受信部48が、このようにして送信される間隔データを受信してもよい。そして、送信タイミング制御部56が、このようにしてクラウドサーバ10から受信する間隔データに基づいて、次の操作データが送信されるタイミングを制御してもよい。
【0153】
また、送信タイミング制御部56は、パッドシンク制御のモードを示すパッドシンク制御モードフラグを保持してもよい。そして、例えば、パッドシンク制御モードフラグの値が0である場合に第1制御が実行され、パッドシンク制御モードフラグの値が1である場合に第2制御が実行されるようにしてもよい。
【0154】
送信タイミング制御部56は、例えば、上述のようにして決定される送信周期Tで送信命令を操作データ送信部44に出力してもよい。そして、操作データ送信部44は、送信命令の受付に応じて操作データをクラウドサーバ10に送信してもよい。
【0155】
以下、本実施形態に係る端末12で行われる、帯域変動追従制御における処理の流れの一例を、図7に例示するフロー図を参照しながら説明する。
【0156】
まず、端末側トラフィック制御部54が、帯域変動追従制御に係る所定の実行タイミングが到来するまで待機する(S101)。
【0157】
所定の実行タイミングが到来すると、端末側トラフィック制御部54が、画像データ受信部48が受信した最新の画像データについてのTTの値を特定する(S102)。
【0158】
そして、端末側トラフィック制御部54が、S102に示す処理で特定されたTTに基づいて、上述の値Rを特定する(S103)。
【0159】
そして、端末側トラフィック制御部54が、最新のPadVspRTTの値を特定する
(S104)。
【0160】
そして、端末側トラフィック制御部54が、最新のPadVspRTTの値と直前のPadVspRTTとの差の絶対値Vを特定する(S105)。
【0161】
そして、端末側トラフィック制御部54が、絶対値VがTh1未満である状態がN回連続して発生したか否かを確認する(S106)。
【0162】
絶対値VがTh1未満である状態がN回連続して発生したことが確認された場合は(S106:Y)、端末側トラフィック制御部54が、EstBtmLatencyの値を更新する(S107)。
【0163】
絶対値VがTh1未満である状態がN回連続して発生していないことが確認された場合
(S106:N)、又は、S107に示す処理が実行された場合は、端末側トラフィック制御部54が、FilPadVspRTTの値を特定する(S108)。
【0164】
そして、端末側トラフィック制御部54が、S108に示す処理で特定されたFilPadVspRTTの値と、EstBtmLatencyの最新の値と、に基づいて、上述の値Dを特定する(S109)。
【0165】
そして、端末側トラフィック制御部54が、S103に示す処理で特定された値Rと、S109に示す処理で特定された値Dと、に基づいて、値Bを特定する(S110)。
【0166】
そして、端末側トラフィック制御部54が、設定されている値Bが、S109に示す処理で特定された値Bとなるよう、端末側制御データ記憶部40に記憶されている制御データを更新して(S111)、S101に示す処理に戻る。
【0167】
以下、本実施形態に係る端末12で行われる、パケ詰まり低減制御における処理の流れの一例を、図8に例示するフロー図を参照しながら説明する。
【0168】
まず、端末側トラフィック制御部54が、パケ詰まり低減制御に係る所定の実行タイミングが到来するまで待機する(S201)。
【0169】
所定の実行タイミングが到来すると、端末側トラフィック制御部54が、端末側制御データ記憶部40に記憶されている制御データが示すビットレートの値Bを特定する(S202)。
【0170】
そして、端末側トラフィック制御部54は、S202に示す処理で特定された値Bが下限b1より小さいか否かを確認する(S203)。
【0171】
値Bが下限b1よりも小さいことが確認された場合は(S203:Y)、S201に示す処理に戻る。
【0172】
値Bが下限b1よりも小さくないことが確認された場合は(S203:N)、端末側トラフィック制御部54は、S202に示す処理で特定された値Bに所定の割合r(rは1未満)を乗じた値を、新たな値Bとして特定する(S204)。
【0173】
そして、端末側トラフィック制御部54は、設定されている値Bが、S204に示す処理で特定された値Bとなるよう、端末側制御データ記憶部40に記憶されている制御データを更新して(S205)、S201に示す処理に戻る。
【0174】
以下、本実施形態に係る端末12で行われる、ビットレート制御モードの切替処理の流れの一例を、図9に例示するフロー図を参照しながら説明する。
【0175】
まず、端末側トラフィック制御部54が、ビットレート制御モードの切替処理に係る所定の実行タイミングが到来するまで待機する(S301)。
【0176】
ここで例えば、所定の周期(例えば、操作データの送信周期T)で、実行タイミングが到来するようにしてもよい。また、所定のイベントの発生(例えば、操作データの送信)に応じて実行タイミングが到来するようにしてもよい。
【0177】
所定の実行タイミングが到来すると、端末側トラフィック制御部54が、直近の所定時間t1におけるVSPの受信数Mを特定する(S302)。
【0178】
そして、端末側トラフィック制御部54が、現在のビットレート制御モードフラグの値を確認する(S303)。
【0179】
確認されたビットレート制御モードフラグの値が0である場合は、端末側トラフィック制御部54が、S302に示す処理で特定された受信数Mが所定の閾値Th2よりも小さいか否かを確認する(S304)。
【0180】
受信数Mが所定の閾値Th2以上である場合は(S304:N)、S301に示す処理に戻る。
【0181】
受信数Mが所定の閾値Th2よりも小さい場合は(S304:Y)、端末側トラフィック制御部54が、保持されているビットレート制御モードフラグの値を1に変更して(S305)、S301に示す処理に戻る。
【0182】
S303に示す処理で確認された現在のビットレート制御モードフラグの値が1である場合は、端末側トラフィック制御部54が、S302に示す処理で特定された受信数Mが所定の閾値Th2以上であるか否かを確認する(S306)。
【0183】
受信数Mが所定の閾値Th2より小さい場合は(S306:N)、S301に示す処理に戻る。
【0184】
受信数Mが所定の閾値Th2以上である場合は(S306:Y)、端末側トラフィック制御部54が、保持されているビットレート制御モードフラグの値を0に変更して(S307)、S301に示す処理に戻る。
【0185】
以下、本実施形態に係る端末12で行われる、パッドシンク制御における処理の流れの一例を、図10に例示するフロー図を参照しながら説明する。
【0186】
まず、送信タイミング制御部56が、パッドシンク制御に係る所定の実行タイミングが到来するまで待機する(S401)。
【0187】
所定の実行タイミングが到来すると、送信タイミング制御部56が、最新のDiffPadVspの値を特定する(S402)。
【0188】
そして、送信タイミング制御部56が、現在のパッドシンク制御モードフラグの値を確認する(S403)。
【0189】
確認されたパッドシンク制御モードフラグの値が0である場合は、送信タイミング制御部56が、S402に示す処理で特定されたDiffPadVspの値がT1になるように、新たな送信周期Tを決定する(S404)。
【0190】
そして、送信タイミング制御部56が、最新のDiffPadVspの値と値T1との差の絶対値Vを特定する(S405)。
【0191】
そして、送信タイミング制御部56が、絶対値Vが所定の閾値Th3未満である状態が継続している時間を特定する(S406)。
【0192】
そして、送信タイミング制御部56が、S406に示す処理で特定される時間が所定時間に達したか否かを確認する(S407)。
【0193】
所定時間に達したことが確認されなかった場合は(S407:N)、S401に示す処理に戻る。
【0194】
所定時間に達したことが確認された場合は(S407:Y)、送信タイミング制御部56は、保持されているパッドシンク制御モードフラグの値を1に変更して(S408)、S401に示す処理に戻る。
【0195】
S403に示す処理で確認された現在のパッドシンク制御モードフラグの値が1である場合は、送信タイミング制御部56は、最新の画像データに関連付けられている間隔データの値を特定する(S409)。
【0196】
そして、送信タイミング制御部56が、S409に示す処理で特定された間隔データの値に基づいて、新たな送信周期Tを決定する(S410)。
【0197】
そして、送信タイミング制御部56が、最新のDiffPadVspの値と値T1との差の絶対値Vを特定する(S411)。
【0198】
そして、送信タイミング制御部56が、特定される絶対値Vが所定の閾値Th3以上であるか否かを確認する(S412)。
【0199】
絶対値Vが所定の閾値Th3以上でない場合は(S412:N)、S401に示す処理に戻る。
【0200】
絶対値Vが所定の閾値Th3以上である場合は(S412:Y)、送信タイミング制御部56は、保持されているパッドシンク制御モードフラグの値を0に変更して(S413)、S401に示す処理に戻る。
【0201】
なお、本発明は上述の実施形態に限定されるものではない。
【0202】
例えば、間隔データが、画像データに関連付けられるのではなく、VSPに関連付けられてもよい。
【0203】
また、フレーム画像生成部24が、ビットレートに応じたデータサイズのフレーム画像を生成するようにしてもよい。
【0204】
また、本発明の適用範囲は、クラウドゲーミングシステム1には限定されない。
【0205】
また、本発明の適用範囲は、4Gや5Gなどの移動通信システムを含むコンピュータネットワーク14には限定されない。本発明は、4Gや5Gなどの移動通信システムを介した無線通信ではなく、Wi-Fi(登録商標)による無線通信が行われるコンピュータネットワーク14にも適用可能である。
【0206】
また、上記の具体的な文字列や数値及び図面中の具体的な文字列や数値は例示であり、これらの文字列や数値には限定されない。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10