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

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

▶ 日本電信電話株式会社の特許一覧

特許7184192遅延測定装置、遅延測定方法及びプログラム
<>
  • 特許-遅延測定装置、遅延測定方法及びプログラム 図1
  • 特許-遅延測定装置、遅延測定方法及びプログラム 図2
  • 特許-遅延測定装置、遅延測定方法及びプログラム 図3
  • 特許-遅延測定装置、遅延測定方法及びプログラム 図4
  • 特許-遅延測定装置、遅延測定方法及びプログラム 図5
  • 特許-遅延測定装置、遅延測定方法及びプログラム 図6
  • 特許-遅延測定装置、遅延測定方法及びプログラム 図7
  • 特許-遅延測定装置、遅延測定方法及びプログラム 図8
  • 特許-遅延測定装置、遅延測定方法及びプログラム 図9
  • 特許-遅延測定装置、遅延測定方法及びプログラム 図10
  • 特許-遅延測定装置、遅延測定方法及びプログラム 図11
  • 特許-遅延測定装置、遅延測定方法及びプログラム 図12
  • 特許-遅延測定装置、遅延測定方法及びプログラム 図13
  • 特許-遅延測定装置、遅延測定方法及びプログラム 図14
  • 特許-遅延測定装置、遅延測定方法及びプログラム 図15
  • 特許-遅延測定装置、遅延測定方法及びプログラム 図16
  • 特許-遅延測定装置、遅延測定方法及びプログラム 図17
  • 特許-遅延測定装置、遅延測定方法及びプログラム 図18
  • 特許-遅延測定装置、遅延測定方法及びプログラム 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-28
(45)【発行日】2022-12-06
(54)【発明の名称】遅延測定装置、遅延測定方法及びプログラム
(51)【国際特許分類】
   G06F 11/34 20060101AFI20221129BHJP
【FI】
G06F11/34 119
【請求項の数】 6
(21)【出願番号】P 2021529564
(86)(22)【出願日】2019-07-01
(86)【国際出願番号】 JP2019026092
(87)【国際公開番号】W WO2021001883
(87)【国際公開日】2021-01-07
【審査請求日】2021-11-01
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【弁理士】
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】玉置 真也
(72)【発明者】
【氏名】桑原 健
(72)【発明者】
【氏名】川上 健太
(72)【発明者】
【氏名】浦田 悠介
(72)【発明者】
【氏名】岩澤 宏紀
【審査官】坂庭 剛史
(56)【参考文献】
【文献】特開2017-215875(JP,A)
【文献】特開2016-192137(JP,A)
【文献】特開2010-191553(JP,A)
【文献】特開2004-192647(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/34
G06T 1/20
G06T 15/00
A63F 13/355
(57)【特許請求の範囲】
【請求項1】
画像のレンダリング処理を行うレンダリングサーバと通信ネットワークを介して接続される遅延測定装置であって、
前記遅延測定装置に含まれるセンサから取得されたセンサ情報と、所定の時間周期で取得されるトリガ情報とを前記レンダリングサーバに送信する送信手段と、
前記センサ情報と前記トリガ情報とに基づき前記レンダリングサーバでのレンダリング処理によって生成されたレンダリング画像を受信する受信手段と、
前記トリガ情報を前記レンダリングサーバに送信した時刻を示す第1の時刻と、前記レンダリング画像又は所定の画像が表示された時刻を示す第2の時刻との差分から所定の遅延を測定する測定手段と、
を有することを特徴とする遅延測定装置。
【請求項2】
前記レンダリング処理では、前記トリガ情報に基づいて、前記レンダリング画像に含まれる所定の部分領域が表す情報を変化させ、
前記測定手段は、
前記レンダリング画像に含まれる前記部分領域が表す情報が変化した時刻を前記第2の時刻として、前記第1の時刻と前記第2の時刻との差分から、前記表示に関する遅延を除くEnd-to-End遅延を測定する、ことを特徴とする請求項1に記載の遅延測定装置。
【請求項3】
前記レンダリングサーバは、前記レンダリング画像がエンコードされる前に、前記レンダリング画像に含まれる所定の部分領域が表す情報が変化したか否かを判定した判定結果を前記遅延測定装置に送信し、
前記測定手段は、
前記判定結果に基づく画像が表示された時刻を前記第2の時刻として、前記第1の時刻と前記第2の時刻との差分から、前記表示に関する遅延と前記エンコード及びデコードに関する遅延とを除くEnd-to-End遅延を測定する、ことを特徴とする請求項1に記載の遅延測定装置。
【請求項4】
前記レンダリングサーバは、前記トリガ情報を受信すると、応答情報を前記遅延測定装置に送信し、
前記測定手段は、
前記応答情報に基づく画像が表示された時刻を前記第2の時刻として、前記第1の時刻と前記第2の時刻との差分からネットワーク遅延を測定する、ことを特徴とする請求項1に記載の遅延測定装置。
【請求項5】
画像のレンダリング処理を行うレンダリングサーバと通信ネットワークを介して接続される遅延測定装置が、
前記遅延測定装置に含まれるセンサから取得されたセンサ情報と、所定の時間周期で取得されるトリガ情報とを前記レンダリングサーバに送信する送信手順と、
前記センサ情報と前記トリガ情報とに基づき前記レンダリングサーバでのレンダリング処理によって生成されたレンダリング画像を受信する受信手順と、
前記トリガ情報を前記レンダリングサーバに送信した時刻を示す第1の時刻と、前記レンダリング画像又は所定の画像が表示された時刻を示す第2の時刻との差分から所定の遅延を測定する測定手順と、
を実行することを特徴とする遅延測定方法。
【請求項6】
コンピュータを、請求項1乃至4の何れか一項に記載の遅延測定装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、遅延測定装置、遅延測定方法及びプログラムに関する。
【背景技術】
【0002】
近年、クラウド技術の発達や高速な通信環境の普及等により、サーバ側で画像のレンダリング処理を行って、ユーザ端末に画像を提供するサービスが増加している。このようなサービスはストリーミングサービスとも呼ばれる。ストリーミングサービスでは、GPU(Graphics Processing Unit)等を搭載した機器をユーザ側に必要とせずに、例えばスマートフォン等の汎用端末に対してVR(Virtual Reality)等の様々なアプリケーションが提供可能である。
【0003】
ここで、VR等のアプリケーションでは、ユーザ端末(例えば、HDM(Head Mounted Display)等)のセンサ情報がサーバに送信されてから、このセンサ情報に基づいたカメラ視点の画像がサーバで描画されてユーザ端末に表示されるまでの遅延(この遅延は、「Motion-to-Photon Latency」又は「Motion-to-Photon遅延」等とも呼ばれる。)がユーザ体感品質に大きく影響する。また、この遅延以外にも様々な遅延要因があり、これらの遅延を把握することが、サービスの開発や構築、保守等において重要である。
【0004】
Motion-to-Photon遅延を測定するための技術として、HMDを自動回転させる測定装置を構築し、回転制御の信号とフォトダイオードの受光量の変化量の追随レスポンスとを比較して遅延量を算出する技術が知られている(非特許文献1)。また、人間の頭部の動きを模擬する測定装置を構築し、制御信号とフォトダイオードの受光量の変化量の追随レスポンスとを比較して遅延量を算出する技術が知られている(非特許文献2及び3)。
【先行技術文献】
【非特許文献】
【0005】
【文献】Jingbo Zhao et al., "Estimating the motion-to-photon latency in head mounted displays," 2017 IEEE Virtual Reality (VR), March 18-22, 2017.
【文献】Song-Woo Choi et al., "Time Sequential Motion-to-Photon Latency Measurement System for Virtual Reality Head-Mounted Displays," Electronics 2018, 7, 171.
【文献】4Gamer.net, 「Futuremark,VRの遅延を計測するプラットフォームをGDCとMobile World Congressで公開」, Feb.2017. <URL:http://jp.gamesindustry.biz/article/1702/17022203/>
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記の従来技術では、例えば、HMDを自動回転させる測定装置を構築したり、人間の頭部の動きを模擬する測定装置を構築したりする等、Motion-to-Photon遅延の測定のために専用の測定装置を構築する必要があった。また、上記の従来技術は、サービス提供中は測定を行うことができず、更に、Motion-to-Photon遅延の測定のみであり、遅延の内訳を解析することはできなかった。
【0007】
本発明の実施の形態は、上記の点に鑑みてなされたもので、レンダリングサーバで描画された画像をユーザ端末に表示する際の様々な遅延を簡易に測定することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本発明の実施の形態では、画像のレンダリング処理を行うレンダリングサーバと通信ネットワークを介して接続される遅延測定装置であって、前記遅延測定装置に含まれるセンサから取得されたセンサ情報と、所定の時間周期で取得されるトリガ情報とを前記レンダリングサーバに送信する送信手段と、前記センサ情報と前記トリガ情報とに基づき前記レンダリングサーバでのレンダリング処理によって生成されたレンダリング画像を受信する受信手段と、前記トリガ情報を前記レンダリングサーバに送信した時刻を示す第1の時刻と、前記レンダリング画像又は所定の画像が表示された時刻を示す第2の時刻との差分から所定の遅延を測定する測定手段と、を有することを特徴とする。
【発明の効果】
【0009】
レンダリングサーバで描画された画像をユーザ端末に表示する際の様々な遅延を簡易に測定することができる。
【図面の簡単な説明】
【0010】
図1】実施例1における遅延測定システムの全体構成の一例を説明するための図である。
図2】実施例1における遅延測定システムの機能構成の一例を説明するための図である。
図3】実施例1における遅延測定処理の流れを説明するための図である。
図4】実施例1におけるレンダリング結果として得られた画像の一例を説明するための図である。
図5】実施例1における遅延測定結果の一例を説明するための図である。
図6】実施例2における遅延測定システムの機能構成の一例を説明するための図である。
図7】実施例2における遅延測定処理の流れを説明するための図である。
図8】実施例3における遅延測定システムの機能構成の一例を説明するための図である。
図9】実施例3における遅延測定処理の流れを説明するための図である。
図10】実施例4における遅延測定システムの機能構成の一例を説明するための図である。
図11】実施例4における遅延測定処理の流れを説明するための図である。
図12】実施例5における遅延測定システムの機能構成の一例を説明するための図である。
図13】実施例5における遅延測定処理の流れを説明するための図である。
図14】実施例6における遅延測定システムの機能構成の一例を説明するための図である。
図15】実施例6における遅延測定処理の流れを説明するための図である。
図16】実施例6におけるレンダリング結果として得られた画像の一例を説明するための図(その1)である。
図17】実施例6におけるレンダリング結果として得られた画像の一例を説明するための図(その2)である。
図18】実施例7における遅延測定システムの機能構成の一例を説明するための図である。
図19】コンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について説明する。本発明の実施の形態では、レンダリングサーバで描画された画像をユーザ端末に表示する際の様々な遅延を簡易に測定することができる遅延測定システム1について説明する。本発明の実施の形態では、後述するように、センサ情報(主信号、U-planeパケット)に最小限の計測用情報(トリガ情報等)を加えるだけで各種遅延の計測が可能になるため、例えば、通信ネットワークや仮想化基盤等に対しても低負荷に各種遅延の計測が可能になる。
【0012】
以降では、本発明の実施の形態における遅延測定システム1の実施例1~実施例7について説明する。なお、各実施例で同一の構成要素については同一の符号を付与し、その説明を省略するものとする。
【0013】
[実施例1]
まず、実施例1として、ユーザ端末での表示に関する遅延(以降、「端末遅延」とも表す。)を除くE2E(End-to-End)遅延を測定する場合について説明する。なお、E2E遅延とは、ユーザ端末がセンサ情報をレンダリングサーバに送信してから、レンダリングサーバで描画(レンダリング)された画像が当該ユーザ端末に表示されるまでの遅延(つまり、Motion-to-Photon遅延)のことである。
【0014】
(全体構成)
実施例1における遅延測定システム1の全体構成について、図1を参照しながら説明する。図1は、実施例1における遅延測定システム1の全体構成の一例を説明するための図である。
【0015】
図1に示すように、実施例1における遅延測定システム1には、ユーザ端末10と、レンダリングサーバ20と、モニタリングサーバ30とが含まれる。また、ユーザ端末10とレンダリングサーバ20とモニタリングサーバ30とは、例えばインターネット等の通信ネットワークNを介して通信可能に接続される。
【0016】
ユーザ端末10は、レンダリングサーバ20で描画(レンダリング)された画像を利用するアプリケーションのユーザの端末である。ユーザ端末10は各種センサ(例えば、モーションセンサ等)を備えており、これらのセンサから取得したセンサ情報をレンダリングサーバ20に送信する。ユーザ端末10としては、例えば、HMDやスマートフォン、タブレット端末、携帯型ゲーム機器等が用いられる。
【0017】
なお、レンダリングサーバ20でレンダリングされた画像を利用するアプリケーションとしては様々なものがあるが、一例としては、VR、ゲーム、3D CAD(Computer Aided Design)等が挙げられる。
【0018】
レンダリングサーバ20は、ユーザ端末10からセンサ情報を受信すると、このセンサ情報に基づくカメラ視点の画像を描画(レンダリング)するコンピュータ又はコンピュータシステムである。レンダリングサーバ20でレンダリングされた画像(より正確には、レンダリングされた画像をエンコード(圧縮)した情報)はユーザ端末10に送信され、当該ユーザ端末10に表示(より正確には、当該ユーザ端末10が備えるディスプレイ等に表示)される。
【0019】
モニタリングサーバ30は、各種遅延を測定するためのコンピュータ又はコンピュータシステムである。モニタリングサーバ30には、例えば、各種遅延の測定結果等が表示される。また、モニタリングサーバ30は、測定モードを示す情報(測定モード情報)をユーザ端末10に送信する。
【0020】
測定モードとは、どのような遅延を測定するかを示すモードのことであり、本発明の実施の形態では、例えば、「端末遅延を除くE2E遅延測定」、「ネットワーク遅延測定」、「端末遅延及びエンコード・デコード遅延を除く遅延」等がある。
【0021】
(機能構成)
実施例1における遅延測定システム1の機能構成について、図2を参照しながら説明する。図2は、実施例1における遅延測定システム1の機能構成の一例を説明するための図である。
【0022】
図2に示すように、実施例1におけるユーザ端末10には、情報送信部101と、情報受信部102と、内部センサ情報取得部103と、内部センサ104と、クロック105と、トリガ情報送出部106と、トリガ情報取得部107と、デコード部108と、フレームバッファ109と、表示部110と、フレームバッファ読み出し部111と、判定部112とが含まれる。
【0023】
クロック105は、自走クロック(又は、GPS(Global Positioning System)等から取得される他走クロック)である。トリガ情報送出部106は、クロック105のクロック信号に基づいて、周期的にトリガ情報を送出する。トリガ情報取得部107は、トリガ情報送出部106から送出されたトリガ情報を取得する(つまり、トリガ情報は周期的に取得される。)。なお、トリガ情報は「トリガ信号」等と称されてもよい。
【0024】
内部センサ情報取得部103は、内部センサ104からセンサ情報を取得する。内部センサ104とは、ユーザ端末10の向きや位置、各種ボタンの押下やジョイスティックによる操作等を検出するセンサである。したがって、センサ情報とは、例えば、ユーザ端末10の向きを示す情報やユーザ端末10の位置を示す情報、ユーザによって押下されたボタンを示す情報、ユーザによって操作されたジョイスティックの操作方向を示す情報等である。
【0025】
情報送信部101は、トリガ情報が取得されたタイミングでは、トリガ情報とタイムスタンプとをモニタリングサーバ30に送信する。また、同様に、トリガ情報が取得されたタイミングでは、情報送信部101は、センサ情報とトリガ情報とをレンダリングサーバ20に送信する。一方で、情報送信部101は、トリガ情報が取得されていないタイミングでは、トリガ情報は送信せずに、センサ情報をレンダリングサーバ20に送信する。
【0026】
情報受信部102は、レンダリングサーバ20からエンコード情報(つまり、レンダリングされた画像をエンコード(圧縮)した情報)を受信する。また、情報受信部102は、モニタリングサーバ30から測定モード情報等を受信する。ここで、後述するように、レンダリングされた画像(以降、「レンダリング画像」とも表す。)として、このレンダリング画像の一部の部分領域が2値情報のいずれかを表すように加工された画像をエンコードした情報がレンダリングサーバ20から送信される。
【0027】
デコード部108は、情報受信部102により受信されたエンコード情報をデコードする。デコード部108によりデコードされた情報(つまり、レンダリング画像)は、フレームバッファ109に格納される。
【0028】
ここで、ユーザ端末10の表示部110は少なくとも2つの画像表示レイヤを備えているものとして、2つの画像表示レイヤを第1レイヤ131及び第2レイヤ132とする。第1レイヤ131は最表面の画像表示レイヤであり、第2レイヤ132は最表面レイヤの1つ下の画像表示レイヤである。レンダリングサーバ20から受信したエンコード情報をデコードした画像は、第2レイヤ132に表示される。
【0029】
フレームバッファ109には、第1レイヤ131に表示される画像が格納される第1レイヤバッファ121と、第2レイヤ132に表示される画像が格納される第2レイヤバッファ122とが含まれる。デコード部108でデコードされた情報(つまり、レンダリングされた画像)は、第2レイヤバッファ122に格納される。
【0030】
表示部110は、フレームバッファ109から画像を読み出して、この画像を表示する。上述したように、表示部110には、第1レイヤ131と第2レイヤ132とが含まれる。
【0031】
フレームバッファ読み出し部111は、フレームバッファ109に格納されている画像(より正確には、第2レイヤバッファ122に格納されている画像)の所定の部分領域を読み出す。すなわち、フレームバッファ読み出し部111は、レンダリング画像中で、2値情報を表す部分領域を読み込む。
【0032】
判定部112は、フレームバッファ読み出し部111により読み出された部分領域に基づいて、この部分領域が表す2値情報を判定する。すなわち、例えば、2値情報が「白」又は「黒」のいずれかである場合、判定部112は、当該部分領域が黒又は白のいずれを表すかを判定する。なお、この判定結果とタイムスタンプとがモニタリングサーバ30に送信される。
【0033】
また、図2に示すように、実施例1におけるレンダリングサーバ20には、情報受信部201と、情報送信部202と、遅延測定アプリケーション203と、レンダリングアプリケーション204と、GPU205と、VRAM(Video RAM)206とが含まれる。
【0034】
情報受信部201は、ユーザ端末10からセンサ情報又はセンサ情報とトリガ情報とを受信する。
【0035】
遅延測定アプリケーション203は、遅延測定のためにレンダリングサーバ20にインストールされたアプリケーションプログラムである。実施例1では、遅延測定アプリケーション203には、振り分け部211が含まれる。振り分け部211は、センサ情報及びトリガ情報を受信した場合に、測定モードに応じた振り分けを行う。実施例1では、測定モードが「端末遅延を除くE2E遅延測定」である場合に、振り分け部211は、センサ情報及びトリガ情報をそのままレンダリングアプリケーション204に送信する。
【0036】
レンダリングアプリケーション204は、レンダリングを行うためにレンダリングサーバ20にインストールされたアプリケーションプログラムである。実施例1では、レンダリングアプリケーション204には、レンダリング指示部221と、エンコード指示部222と、VRAM読み出し部223とが含まれる。
【0037】
レンダリング指示部221は、GPU205に対してレンダリング指示を行う。このとき、レンダリング指示部221は、ユーザ端末10からセンサ情報及びトリガ情報を受信した場合には、センサ情報に基づく視点の画像中の所定の部分領域が表す2値情報を変化させる(つまり、例えば、当該部分領域が「黒」を表す場合は「白」を表すように変化させる一方で、当該部分領域が「白」を表す場合は「黒」を表すように変化させる)加工をするレンダリング指示を行う。
【0038】
エンコード指示部222は、GPU205に対してエンコード指示を行う。VRAM読み出し部223は、VRAM206からエンコード情報を読み出す。
【0039】
GPU205は、レンダリングやエンコード等の処理を行うプロセッサである。GPU205が処理を実行することで、レンダリング部231と、エンコード部233とが実現される。また、GPU205には、フレームバッファ232が含まれる。ただし、フレームバッファ232は、VRAM206と同一ハードウェアであってもよい。
【0040】
レンダリング部231は、レンダリング指示部221からのレンダリング指示に応じて、センサ情報に基づく視点の画像を描画してレンダリング画像を生成する。このレンダリング画像はフレームバッファ232に格納される。
【0041】
エンコード部233は、エンコード指示部222からのエンコード指示に応じて、フレームバッファ232に格納されているレンダリング画像をエンコードして、エンコード情報を生成する。エンコード情報はVRAM206に格納される。
【0042】
情報送信部202は、VRAM読み出し部223により読み出されたエンコード情報をユーザ端末10に送信する。
【0043】
また、図2に示すように、実施例1におけるモニタリングサーバ30には、情報受信部301と、情報送信部302と、モード指示部303と、表示部304と、保存部305とが含まれる。
【0044】
モード指示部303は、例えばユーザによる操作に応じて測定モードの指示を受け付ける。このとき、モード指示部303は、例えば、トリガ情報が送出される周期の指示を受け付けてもよい。
【0045】
情報送信部302は、モード指示部303が受け付けた測定モードの指示に応じて、この測定モードを示す情報(測定モード情報)をユーザ端末10に送信する。なお、モード指示部303によってトリガ情報が送出される周期(つまり、トリガ周期)の指示も受け付けられた場合、情報送信部302は、当該周期を示す情報(トリガ周期情報)もユーザ端末10に送信する。これにより、ユーザ端末10では、測定モード(及びトリガ情報が送出される周期)が設定される。
【0046】
情報受信部301は、ユーザ端末10からのトリガ情報とタイムスタンプ(以降では、このタイムスタンプを「第1タイムスタンプ」と表す。)とを受信する。また、情報受信部301は、ユーザ端末10からの判定結果とタイムスタンプ(以降では、このタイムスタンプを「第2タイムスタンプ」と表す。)とを受信する。これらのトリガ情報及び第1タイムスタンプと、判定結果及び第2タイムスタンプとは、保存部305に保存される。
【0047】
表示部304は、保存部305に保存されているトリガ情報、第1タイムスタンプ、判定結果及び第2タイムスタンプを用いて、遅延測定結果を表示する。遅延測定結果は、例えば、第1タイムスタンプと、判定結果毎の第2タイムスタンプ(つまり、判定結果が「黒」であった場合の第2タイムスタンプ、判定結果が「白」であった場合の第2タイムスタンプ)とをグラフとしてプロットすることで表示される。
【0048】
なお、図2に示す遅延測定システム1の機能構成は一例であって、他の構成であってもよい。例えば、モニタリングサーバ30の各機能がユーザ端末10に包含されていてもよいし、又はモニタリングサーバ30の各機能がレンダリングサーバ20に包含されていてもよい。又は、例えば、モニタリングサーバ30の各機能が、互いに異なる複数のノードに分散されていてもよい。
【0049】
(遅延測定処理の流れ)
実施例1の遅延を測定する処理(遅延測定処理)の流れについて、図3を参照しながら説明する。図3は、実施例1における遅延測定処理の流れを説明するための図である。
【0050】
モニタリングサーバ30の情報送信部302は、モード指示部303が受け付けた測定モードの指示とトリガ周期の指示とに応じて、測定モード情報とトリガ周期情報とをユーザ端末10に送信する(ステップS101)。ここで、実施例1では、測定モードとして、「端末遅延を除くE2E遅延測定」が設定されたものとする。これにより、ユーザ端末10には、測定モード「端末遅延を除くE2E遅延測定」と、トリガ情報送出部106がトリガ情報を送出する周期を示すトリガ周期とが設定される。
【0051】
ユーザ端末10のトリガ情報取得部107は、トリガ情報送出部106からトリガ周期毎に送出されるトリガ情報を取得する(ステップS102)。なお、トリガ周期は任意に設定することができるが、例えば、20[ms]~1[s]程度に設定することが考えられる。トリガ周期をTとして、例えばT=20[ms]とした場合、トリガ情報送出部106によりT=20[ms]毎にトリガ情報が送出されるため、トリガ情報取得部107は、T=20[ms]毎にトリガ情報を取得することになる。
【0052】
なお、トリガ情報としては任意の情報を用いることができるが、例えば、トリガ周期毎に「0」と「1」とが交互に含まれる情報(つまり、フラグ)とすることが考えられる。
【0053】
ユーザ端末10の内部センサ情報取得部103は、内部センサ104からセンサ情報を取得する(ステップS103)。
【0054】
上記のステップS102でトリガ情報が取得された場合、ユーザ端末10の情報送信部101は、トリガ情報と第1タイムスタンプとをモニタリングサーバ30に送信する(ステップS104)。これにより、モニタリングサーバ30では、トリガ情報と第1タイムスタンプとが対応付けて保存部305に保存される。ここで、第1タイムスタンプはトリガ情報をモニタリングサーバ30に送信した時刻等を示す情報であり、例えば、クロック105から取得可能である。
【0055】
なお、例えば、ユーザ端末10とモニタリングサーバ30との間の通信品質が安定している場合には、上記のステップS104で情報送信部101は第1タイムスタンプを送信せずに、モニタリングサーバ30でトリガ情報を受信したときに第1タイムスタンプを生成及び保存してもよい。これにより、ユーザ端末10とモニタリングサーバ30との間の通信負荷を軽減させることが可能になる。
【0056】
上記のステップS102でトリガ情報が取得されなかった場合(例えば、トリガ情報が取得された後で、かつ、トリガ周期が経過する前に、上記のステップS103でセンサ情報が取得された場合)、情報送信部101は、上記のステップS103で取得されたセンサ情報をレンダリングサーバ20に送信する(ステップS105)。
【0057】
一方で、上記のステップS102でトリガ情報が取得された場合、ユーザ端末10の情報送信部101は、上記のステップS103で取得されたセンサ情報と、上記のステップS102で取得されたトリガ情報とをレンダリングサーバ20に送信する(ステップS106)。このとき、情報送信部101は、測定モード情報もレンダリングサーバ20に送信する。なお、測定モード情報はトリガ情報に含まれていてもよい(例えば、どの測定モードであるかを示すフラグがトリガ情報に含まれていてもよい。)。
【0058】
レンダリングサーバ20の振り分け部211は、測定モードが「端末遅延を除くE2E遅延測定」である場合、情報受信部201が受信した情報(センサ情報、又は、センサ情報及びトリガ情報)をそのままレンダリングアプリケーション204に送信する。そして、レンダリングサーバ20のレンダリング指示部221は、情報受信部201が受信した情報に応じて、レンダリング指示をGPU205に行う(ステップS107)。これにより、レンダリング画像が生成され、フレームバッファ232に格納される。
【0059】
ここで、情報受信部201がセンサ情報とトリガ情報とを受信した場合(つまり、上記のステップS106が実行された場合)、レンダリング指示部221は、レンダリング指示として、このセンサ情報に基づくカメラ視点の画像の生成を指示すると共に、この画像中の所定の部分領域が表す2値情報を変化させる(つまり、例えば、当該部分領域が「黒」を表す場合は「白」を表すように変化させる一方で、当該部分領域が「白」を表す場合は「黒」を表すように変化させる)加工をする指示を行う。
【0060】
一方で、情報受信部201がセンサ情報を受信した場合(つまり、上記のステップS105が実行された場合)、レンダリング指示部221は、レンダリング指示として、このセンサ情報に基づくカメラ視点の画像の生成を指示すると共に、この画像中の所定の部分領域が表す2値情報をそのまま(つまり、例えば、当該部分領域が「黒」を表す場合は「黒」のまま、当該部分領域が「白」を表す場合は「白」のまま)とする指示を行う。
【0061】
これにより、レンダリング部231によって2値情報を表す部分領域が含まれるレンダリング画像が生成される。このとき、このレンダリング画像に含まれる部分領域は、トリガ情報を受信する度に、「白」を表す部分領域と「黒」を表す部分領域とが相互に切り替わる。ここで、上記のステップS107のレンダリング結果として得られる画像(レンダリング画像)の一例を図4に示す。図4に示すレンダリング画像1000には、予め決められた位置の部分領域1100が含まれる。トリガ情報を受信する度に、この部分領域1100が「白」又は「黒」に相互に切り替わる。なお、図4に示す例では、部分領域1100はレンダリング画像1000の右下に位置する領域としたが、これは一例であって、部分領域は、レンダリング画像中の予め決められた任意の位置にある領域でよい。ただし、部分領域は、レンダリング画像中の右下や左下等の目立たない位置にあることが好ましい。
【0062】
レンダリングサーバ20のエンコード指示部222は、フレームバッファ232に格納されているレンダリング画像のエンコードを指示する。そして、レンダリングサーバ20のエンコード部233は、フレームバッファ232に格納されているレンダリング画像をエンコードして、エンコード情報を生成する(ステップS108)。このエンコード情報は、VRAM206に格納される。
【0063】
レンダリングサーバ20の情報送信部202は、VRAM読み出し部223によりエンコード情報をフレームバッファ232から読み出して、ユーザ端末10に送信する(ステップS109)。
【0064】
ユーザ端末10のデコード部108は、情報受信部102により受信されたエンコード情報をデコードする(ステップS110)。これにより、レンダリング画像がフレームバッファ109(より正確には、第2レイヤバッファ122)に格納される。
【0065】
ユーザ端末10のフレームバッファ読み出し部111は、フレームバッファ109に格納されているレンダリング画像中の所定の部分領域(つまり、例えば「黒」又は「白」のいずれかの2値情報を表す部分領域)を読み出す(ステップS111)。これにより、レンダリング画像を全て読み出す場合と比較して、ユーザ端末10の負荷を軽減させることができる。ただし、レンダリング画像中の部分領域を読み出す場合に限られず、例えば、毎フレームのレンダリング画像を読み出すのではなく、或る所定のフレーム数毎にレンダリング画像(又は、このレンダリング画像中の部分領域)を読み出してもよい。
【0066】
ユーザ端末10の判定部112は、上記のステップS111で読み出された部分領域が表す2値情報を判定する(ステップS112)。すなわち、判定部112は、例えば、当該部分領域が「白」又は「黒」のいずれを表すかを判定する。このとき、判定部112は、例えば、クロック105から第2タイムスタンプを取得する。第2タイムスタンプはレンダリング画像が表示部110に表示された時刻(より正確には、判定部112による判定が行われた時刻)を示す情報であり、例えば、クロック105から取得される。
【0067】
ユーザ端末10の情報送信部101は、上記のステップS112の判定結果と第2タイムスタンプとをモニタリングサーバ30に送信する(ステップS113)。これにより、モニタリングサーバ30では、判定結果と第2タイムスタンプとが対応付けて保存部305に保存される。ただし、情報送信部101は、例えば、判定結果が前回の判定結果と異なった場合(つまり、前回の判定結果が「黒」で今回の判定結果が「白」である場合又は前回の判定結果が「白」で今回の判定結果が「黒」である場合等)にのみ、上記のステップS112の判定結果と第2タイムスタンプとをモニタリングサーバ30に送信してもよい。これにより、ユーザ端末10とモニタリングサーバ30との間の通信負荷を軽減させることができる。
【0068】
なお、上記のステップS113では、上記のステップS104と同様に、例えば、ユーザ端末10とモニタリングサーバ30との間の通信品質が安定している場合には、情報送信部101は第2タイムスタンプを送信せずに、モニタリングサーバ30で判定結果を受信したときに第2タイムスタンプを生成及び保存してもよい。これにより、ユーザ端末10とモニタリングサーバ30との間の通信負荷を軽減させることが可能になる。
【0069】
モニタリングサーバ30の表示部304は、保存部305に保存されている第1タイムスタンプ、判定結果及び第2タイムスタンプを用いて、遅延測定結果を表示する(ステップS114)。ここで、遅延測定結果の一例を図5に示す。図5に示す遅延測定結果では、トリガ情報に関する時刻を実線で、判定結果に関する時刻を破線で表している。トリガ情報が送出された時刻は第1タイムスタンプで表され、「白」を示す判定結果と「黒」を示す判定結果とは第2タイムスタンプで表される。これにより、端末遅延を除くE2E遅延は、トリガ情報が送出された時刻と、判定結果が変化した時刻(図5に示す例では、判定結果が「黒」から「白」に変化した時刻)との差分で測定される。したがって、モニタリングサーバ30のユーザは、端末遅延を除くE2E遅延を知ることができる。
【0070】
一方で、ユーザ端末10の表示部110は、フレームバッファ109に格納されているレンダリング画像(より正確には、第2レイヤバッファ122に格納されているレンダリング画像)を第2レイヤ132に埋め込むことで、当該レンダリング画像を表示する(ステップS115)。
【0071】
なお、本実施例では、レンダリング画像の部分領域は2値情報のいずれかを表すものとしたが、これに限られず、当該部分領域は、例えば、3値以上の情報のいずれかを表してもよい。また、2値情報を表す画像(部分領域)は黒や白に限られず、例えば、文字や模様(例えば、バーコード等のコード情報を表す模様)等であってもよい。これらのことは以降の各実施例でも同様である。
【0072】
[実施例2]
次に、実施例2として、ユーザ端末10とレンダリングサーバ20との間のネットワーク遅延を測定する場合について説明する。なお、全体構成は実施例1と同様であるため、その説明を省略する。
【0073】
(機能構成)
実施例2における遅延測定システム1の機能構成について、図6を参照しながら説明する。図6は、実施例2における遅延測定システム1の機能構成の一例を説明するための図である。なお、実施例2では、主に、実施例1との相違点について説明する。
【0074】
実施例2では、測定モードが「ネットワーク遅延測定」である場合に、レンダリングサーバ20の振り分け部211は、折り返し通信処理を行う。そして、折り返し通信処理では、情報送信部202が応答情報をユーザ端末10に送信する。
【0075】
また、実施例2では、ユーザ端末10の情報受信部102は、レンダリングサーバ20から応答情報を受信した場合、2値情報のいずれかを表す画像を第1レイヤバッファ121に格納する。そして、フレームバッファ読み出し部111は、第1レイヤバッファ121から画像を読み出す。これにより、当該画像が2値情報のいずれを表すかが判定部112により判定される。
【0076】
(遅延測定処理の流れ)
実施例2の遅延を測定する処理(遅延測定処理)の流れについて、図7を参照しながら説明する。図7は、実施例2における遅延測定処理の流れを説明するための図である。
【0077】
モニタリングサーバ30の情報送信部302は、モード指示部303が受け付けた測定モードの指示とトリガ周期の指示とに応じて、測定モード情報とトリガ周期情報とをユーザ端末10に送信する(ステップS201)。ここで、実施例2では、測定モードとして、「ネットワーク遅延測定」が設定されたものとする。これにより、ユーザ端末10には、測定モード「ネットワーク遅延測定」と、トリガ情報送出部106がトリガ情報を送出する周期を示すトリガ周期とが設定される。
【0078】
以降のステップS202~ステップS204は、図3のステップS102~ステップS104と同様であるため、その説明を省略する。
【0079】
ステップS202でトリガ情報が取得されなかった場合、情報送信部101は、ステップS203で取得されたセンサ情報をレンダリングサーバ20に送信する(ステップS205)。
【0080】
レンダリングサーバ20の振り分け部211は、測定モードが「ネットワーク遅延測定」である場合、情報受信部201が受信したセンサ情報をそのままレンダリングアプリケーション204に送信する。そして、レンダリングサーバ20のレンダリング指示部221は、レンダリング指示をGPU205に行う(ステップS206)。これにより、レンダリング部231により当該センサ情報に基づく視点の画像がレンダリング画像として生成され、フレームバッファ232に格納される。
【0081】
レンダリングサーバ20のエンコード指示部222は、フレームバッファ232に格納されているレンダリング画像のエンコードを指示する。そして、レンダリングサーバ20のエンコード部233は、フレームバッファ232に格納されているレンダリング画像をエンコードして、エンコード情報を生成する(ステップS207)。このエンコード情報は、VRAM206に格納される。
【0082】
レンダリングサーバ20の情報送信部202は、VRAM読み出し部223によりエンコード情報をフレームバッファ232から読み出して、ユーザ端末10に送信する(ステップS208)。
【0083】
ユーザ端末10のデコード部108は、情報受信部102により受信されたエンコード情報をデコードする(ステップS209)。これにより、レンダリング画像がフレームバッファ109(より正確には、第2レイヤバッファ122)に格納される。
【0084】
そして、ユーザ端末10の表示部110は、フレームバッファ109に格納されているレンダリング画像(より正確には、第2レイヤバッファ122に格納されているレンダリング画像)を第2レイヤ132に埋め込むことで、当該レンダリング画像を表示する(ステップS210)。
【0085】
一方で、ステップS202でトリガ情報が取得された場合、情報送信部101は、ステップS203で取得されたセンサ情報と、ステップS202で取得されたトリガ情報とをレンダリングサーバ20に送信する(ステップS211)。このとき、情報送信部101は、測定モード情報もレンダリングサーバ20に送信する。なお、測定モード情報はトリガ情報に含まれていてもよい(例えば、どの測定モードであるかを示すフラグがトリガ情報に含まれていてもよい。)。
【0086】
レンダリングサーバ20の振り分け部211は、測定モードが「ネットワーク遅延測定」である場合、折り返し通信処理を行うための通知を情報送信部202に行う。これにより、レンダリングサーバ20の情報送信部202は、応答情報をユーザ端末10に送信する(ステップS212)。
【0087】
ユーザ端末10の情報受信部102は、応答情報を受信すると、2値情報のいずれかを表す画像を第1レイヤバッファ121に格納する(ステップS213)。ここで、情報受信部102は、前回の2値情報と異なる値を表す画像を第1レイヤバッファ121に格納する(すなわち、情報受信部102は、当該画像が表す2値情報を変化させる。)。例えば、1つ前に第1レイヤバッファ121に格納された画像が「白」を表す画像である場合、情報受信部102は、「黒」を表す画像を第1レイヤバッファ121に格納すればよい。一方で、例えば、1つ前に第1レイヤバッファ121に格納された画像が「黒」を表す画像である場合、情報受信部102は、「白」を表す画像を第1レイヤバッファ121に格納すればよい。
【0088】
ユーザ端末10のフレームバッファ読み出し部111は、フレームバッファ109の第1レイヤバッファ121に格納されている画像(又は、この画像中の所定の部分領域)を読み出す(ステップS214)。
【0089】
ユーザ端末10の判定部112は、上記のステップS214で読み出された画像(又は部分領域)が表す2値情報を判定する(ステップS215)。すなわち、判定部112は、例えば、当該画像(又は部分領域)が「白」又は「黒」のいずれを表すかを判定する。このとき、判定部112は、例えば、クロック105から第2タイムスタンプを取得する。
【0090】
ユーザ端末10の情報送信部101は、上記のステップS215の判定結果と第2タイムスタンプとをモニタリングサーバ30に送信する(ステップS216)。これにより、モニタリングサーバ30では、判定結果と第2タイムスタンプとが対応付けて保存部305に保存される。ただし、情報送信部101は、例えば、判定結果が前回の判定結果と異なった場合(つまり、前回の判定結果が「黒」で今回の判定結果が「白」である場合又は前回の判定結果が「白」で今回の判定結果が「黒」である場合等)にのみ、上記のステップS215の判定結果と第2タイムスタンプとをモニタリングサーバ30に送信してもよい。これにより、ユーザ端末10とモニタリングサーバ30との間の通信負荷を軽減させることができる。
【0091】
モニタリングサーバ30の表示部304は、保存部305に保存されている第1タイムスタンプ、判定結果及び第2タイムスタンプを用いて、遅延測定結果を表示する(ステップS217)。ネットワーク遅延は、トリガ情報が送出された時刻(第1タイムスタンプが表す時刻)と、当該トリガ情報の送出時から判定結果が変化した時刻(第2タイムスタンプが表す時刻)との差分で測定される。
【0092】
なお、以降のステップS218~ステップS222は、上記のステップS206~ステップS210とそれぞれ同様であるため、その説明を省略する。
【0093】
[実施例3]
次に、実施例3として、端末遅延及びエンコード・デコード遅延を除く遅延(つまり、端末遅延と、エンコード及びデコードで発生する遅延とを除いたE2E遅延)を測定する場合について説明する。なお、全体構成は実施例1と同様であるため、その説明を省略する。
【0094】
(機能構成)
実施例3における遅延測定システム1の機能構成について、図8を参照しながら説明する。図8は、実施例3における遅延測定システム1の機能構成の一例を説明するための図である。なお、実施例3では、主に、実施例1及び2との相違点について説明する。
【0095】
実施例3では、レンダリングサーバ20の遅延測定アプリケーション203には、フレームバッファ読み出し部212と、判定部213とが含まれる。実施例3では、測定モードが「端末遅延及びエンコード・デコード遅延を除く遅延」である場合に、振り分け部211は、レンダリング画像中の所定の部分領域をフレームバッファ232から読み出すための指示をフレームバッファ読み出し部212に行う。これにより、フレームバッファ読み出し部212は、レンダリング画像中の所定の部分領域をフレームバッファ232から読み出す。
【0096】
そして、判定部213は、フレームバッファ読み出し部212により読み出された部分領域が表す2値情報を判定する。その後、情報送信部202により、この判定結果がユーザ端末10に送信される。これにより、ユーザ端末10では、この判定結果を表す画像(つまり、2値情報のいずれかを表す画像)が第1レイヤバッファ121に格納される。
【0097】
(遅延測定処理の流れ)
実施例3の遅延を測定する処理(遅延測定処理)の流れについて、図9を参照しながら説明する。図9は、実施例3における遅延測定処理の流れを説明するための図である。
【0098】
モニタリングサーバ30の情報送信部302は、モード指示部303が受け付けた測定モードの指示とトリガ周期の指示とに応じて、測定モード情報とトリガ周期情報とをユーザ端末10に送信する(ステップS301)。ここで、実施例3では、測定モードとして、「端末遅延及びエンコード・デコード遅延を除く遅延」が設定されたものとする。これにより、ユーザ端末10には、測定モード「端末遅延及びエンコード・デコード遅延を除く遅延」と、トリガ情報送出部106がトリガ情報を送出する周期を示すトリガ周期とが設定される。
【0099】
以降のステップS302~ステップS304は、図3のステップS102~ステップS104と同様であるため、その説明を省略する。また、ステップS302でトリガ情報が取得されなかった場合は、図7のステップS205~ステップS210と同様であるため、その説明を省略する。
【0100】
ステップS302でトリガ情報が取得された場合、情報送信部101は、ステップS303で取得されたセンサ情報と、ステップS302で取得されたトリガ情報とをレンダリングサーバ20に送信する(ステップS305)。このとき、情報送信部101は、測定モード情報もレンダリングサーバ20に送信する。なお、測定モード情報はトリガ情報に含まれていてもよい(例えば、どの測定モードであるかを示すフラグがトリガ情報に含まれていてもよい。)。
【0101】
レンダリングサーバ20の振り分け部211は、測定モードが「端末遅延及びエンコード・デコード遅延を除く遅延」である場合、情報受信部201が受信したセンサ情報及びトリガ情報をそのままレンダリングアプリケーション204に送信する。そして、レンダリングサーバ20のレンダリング指示部221は、情報受信部201が受信したセンサ情報及びトリガ情報に応じて、レンダリング指示をGPU205に行う(ステップS306)。これにより、レンダリング画像が生成され、フレームバッファ232に格納される。
【0102】
ここで、情報受信部201がセンサ情報及びトリガ情報を受信した場合、レンダリング指示部221は、レンダリング指示として、このセンサ情報に基づくカメラ視点の画像の生成を指示すると共に、この画像中の所定の部分領域が表す2値情報を変化させる(つまり、例えば、当該部分領域が「黒」を表す場合は「白」を表すように変化させる一方で、当該部分領域が「白」を表す場合は「黒」を表すように変化させる)加工をする指示を行う。
【0103】
レンダリングサーバ20のフレームバッファ読み出し部212は、フレームバッファ232に格納されているレンダリング画像中の所定の部分領域(つまり、例えば「黒」又は「白」のいずれかの2値情報を表す部分領域)を読み出す(ステップS307)。
【0104】
レンダリングサーバ20の判定部213は、上記のステップS307で読み出された部分領域が表す2値情報を判定する(ステップS308)。すなわち、判定部112は、例えば、当該部分領域が「白」又は「黒」のいずれを表すかを判定する。
【0105】
レンダリングサーバ20の情報送信部202は、上記のステップS308の判定結果をユーザ端末10に送信する(ステップS309)。
【0106】
ユーザ端末10の情報受信部102は、判定結果を受信すると、2値情報のいずれかを表す画像を第1レイヤバッファ121に格納する(ステップS310)。ここで、情報受信部102は、前回の2値情報と異なる値を表す画像を第1レイヤバッファ121に格納する(すなわち、情報受信部102は、当該画像が表す2値情報を変化させる。)。例えば、1つ前に第1レイヤバッファ121に格納された画像が「白」を表す画像である場合、情報受信部102は、「黒」を表す画像を第1レイヤバッファ121に格納すればよい。一方で、例えば、1つ前に第1レイヤバッファ121に格納された画像が「黒」を表す画像である場合、情報受信部102は、「白」を表す画像を第1レイヤバッファ121に格納すればよい。
【0107】
以降のステップS311~ステップS313は、図7のステップS214~ステップS216とそれぞれ同様であるため、その説明を省略する。
【0108】
モニタリングサーバ30の表示部304は、保存部305に保存されている第1タイムスタンプ、判定結果及び第2タイムスタンプを用いて、遅延測定結果を表示する(ステップS314)。端末遅延及びエンコード・デコード遅延を除く遅延は、トリガ情報が送出された時刻(第1タイムスタンプが表す時刻)と、当該トリガ情報の送出時から判定結果が変化した時刻(第2タイムスタンプが表す時刻)との差分で測定される。
【0109】
以降のステップS315~ステップS318は、図7のステップS207~ステップS210とそれぞれ同様であるため、その説明を省略する。
【0110】
[実施例4]
次に、実施例4として、端末遅延を測定する場合について説明する。なお、全体構成は実施例1と略同様であるが、実施例4における遅延測定システム1には、トリガ情報を示す信号を発信する信号発信装置40と、ユーザ端末10の表示部110が発する光を受光する受光ダイオード等の受光装置50と、信号発信装置40が発信した信号と受光装置50から得られた信号との差分を遅延として測定するオシロスコープ等の信号観測装置60とが含まれる。
【0111】
(機能構成)
実施例4における遅延測定システム1の機能構成について、図10を参照しながら説明する。図10は、実施例4における遅延測定システム1の機能構成の一例を説明するための図である。
【0112】
実施例4では、ユーザ端末10には、外部センサ情報取得部113が含まれる。外部センサ情報取得部113は、信号発信装置40から発信された信号を検知して、トリガ情報として取得する。この信号(以降、「第1信号」とも表す。)は信号観測装置60にも発信される。
【0113】
そして、外部センサ情報取得部113は、トリガ情報を取得すると、2値情報のいずれかを表す画像を第1レイヤバッファ121に格納する。これにより、表示部110の第1レイヤ131には当該画像が表示される。この表示によって発せられた光を受光装置50が受光することで、当該受光装置50から信号観測装置60に信号(以降、「第2信号」とも表す。)が発信される。
【0114】
(遅延測定処理の流れ)
実施例4の遅延を測定する処理(遅延測定処理)の流れについて、図11を参照しながら説明する。図11は、実施例4における遅延測定処理の流れを説明するための図である。
【0115】
ユーザ端末10の外部センサ情報取得部113は、信号発信装置40が発信した第1信号を検知(受信)して、この第1信号をトリガ情報として取得する(ステップS401)。また、このとき、信号観測装置60も第1信号を検知(受信)して、その受信時刻を記録する。
【0116】
ユーザ端末10の外部センサ情報取得部113は、トリガ情報を取得すると、2値情報のいずれかを表す画像を第1レイヤバッファ121に格納する(ステップS402)。これにより、表示部110の第1レイヤ131に当該画像が表示される。そして、受光装置50は、この表示によって発せられた光を受光することで(例えば、受光装置50をユーザ端末10のディスプレイ等に接触等させることで)、第2信号を発信する。この第2信号は、信号観測装置60により受信され、その受信時刻が記録される。
【0117】
信号観測装置60は、第2信号を受信した時刻と第1信号を受信した時刻との差を端末遅延として、遅延の測定結果を表示する(ステップS403)。これにより、端末遅延が測定及び表示される。
【0118】
なお、本実施例は、例えば、事前に端末遅延を測定する場合等に行われる。端末遅延は時々刻々変化するものではないため、例えば、ユーザ端末10の種別毎に事前に端末遅延を測定しておき、その測定結果をデータベース等に格納しておけばよい。このように測定された端末遅延は、例えば、実施例1~実施例3の測定結果等と合算して利用すること等が可能である。
【0119】
[実施例5]
次に、実施例5として、スピーカ及びマイクを用いて端末遅延を測定する場合について説明する。なお、全体構成は実施例4と略同様であるが、実施例5における遅延測定システム1には、マイク等の集音装置70が更に含まれる。
【0120】
(機能構成)
実施例5における遅延測定システム1の機能構成について、図12を参照しながら説明する。図12は、実施例5における遅延測定システム1の機能構成の一例を説明するための図である。
【0121】
実施例5では、ユーザ端末10には、スピーカ114が含まれる。スピーカ114は、外部センサ情報取得部113によりトリガ情報が取得されると、例えばビープ音等の音を出力する。なお、実施例5では、トリガ情報が取得されてから音を出力するまでのスピーカ114の遅延は既知であるか又は端末遅延と比べて無視できるほど小さいものとする。
【0122】
(遅延測定処理の流れ)
実施例5の遅延を測定する処理(遅延測定処理)の流れについて、図13を参照しながら説明する。図13は、実施例5における遅延測定処理の流れを説明するための図である。
【0123】
ユーザ端末10の外部センサ情報取得部113は、信号発信装置40が発信した第1信号を検知(受信)して、この第1信号をトリガ情報として取得する(ステップS501)。
【0124】
ユーザ端末10の外部センサ情報取得部113は、トリガ情報を取得すると、スピーカ114からビープ音を出力させると共に、2値情報のいずれかを表す画像を第1レイヤバッファ121に格納する(ステップS502)。これにより、当該ビープ音を入力した集音装置70から信号が出力され、信号観測装置60が当該信号を検知(受信)して、その受信時刻を記録する。また、表示部110の第1レイヤ131に当該画像が表示され、受光装置50が当該表示によって発せられた光を受光することで、第2信号を発信する。この第2信号は、信号観測装置60により受信され、その受信時刻が記録される。
【0125】
信号観測装置60は、第2信号を受信した時刻と、スピーカ114からの信号を受信した時刻との差を端末遅延として、遅延の測定結果を表示する(ステップS503)。これにより、端末遅延が測定及び表示される。
【0126】
なお、本実施例は、実施例4と同様に、例えば、事前に端末遅延を測定する場合等に行われる。端末遅延は時々刻々変化するものではないため、例えば、ユーザ端末10の種別毎に事前に端末遅延を測定しておき、その測定結果をデータベース等に格納しておけばよい。このように測定された端末遅延は、例えば、実施例1~実施例3の測定結果等と合算して利用すること等が可能である。
【0127】
[実施例6]
次に、実施例6として、トリガ情報を用いずに、センサ情報の全て(又は一部)にタイムスタンプを付与することで、端末遅延を除くE2E遅延を測定する場合について説明する。センサ情報の全て(又は一部)にタイムスタンプを付与することで、ユーザ端末10から送信されるデータ量は多くなるものの、センサ情報とレンダリング画像との対応付けが可能となるため、より詳細な遅延測定が可能となる。なお、全体構成は実施例1と同様であるため、その説明を省略する。
【0128】
(機能構成)
実施例6における遅延測定システム1の機能構成について、図14を参照しながら説明する。図14は、実施例6における遅延測定システム1の機能構成の一例を説明するための図である。なお、実施例6では、主に、実施例1との相違点について説明する。
【0129】
実施例6では、ユーザ端末10には、トリガ情報送出部106とトリガ情報取得部107とが含まれない一方で、タイムスタンプ付与部115が含まれる。タイムスタンプ付与部115は、内部センサ情報取得部103により取得されたセンサ情報にタイムスタンプを付与する。これにより、センサ情報の全て(又は一部)にタイムスタンプが付与される。
【0130】
(遅延測定処理の流れ)
実施例6の遅延を測定する処理(遅延測定処理)の流れについて、図15を参照しながら説明する。図15は、実施例6における遅延測定処理の流れを説明するための図である。
【0131】
モニタリングサーバ30の情報送信部302は、モード指示部303が受け付けた測定モードの指示に応じて、測定モード情報をユーザ端末10に送信する(ステップS601)。ここで、実施例6では、測定モードとして、「端末遅延を除くE2E遅延測定」が設定されたものとする。これにより、ユーザ端末10には、測定モード「端末遅延を除くE2E遅延測定」が設定される。
【0132】
ユーザ端末10の内部センサ情報取得部103は、内部センサ104からセンサ情報を取得する(ステップS602)。
【0133】
ユーザ端末10のタイムスタンプ付与部115は、上記のステップS602で取得されたセンサ情報に対してタイムスタンプを付与する(ステップS603)。なお、タイムスタンプ付与部115は、上記のステップS602で取得されたセンサ情報の全てにタイムスタンプを付与してもよいし、当該センサ情報の一部(例えば、一部の内部センサ104から取得したセンサ情報等)にのみタイムスタンプを付与してもよい。また、タイムスタンプ付与部115は、タイムスタンプに加えて、例えば、短調増加する通し番号等をセンサ情報に付与してもよい。このような通し番号がセンサ情報に付与されることで、例えば、通信ネットワークN上で破棄されたセンサ情報やレンダリング部231で破棄されたセンサ情報等を後から追跡可能となる。
【0134】
ユーザ端末10の情報送信部101は、上記のステップS602で取得されたセンサ情報と、上記のステップS603で付与されたタイムスタンプとをモニタリングサーバ30に送信する(ステップS604)。モニタリングサーバ30では、センサ情報とタイムスタンプとが対応付けて保存部305に保存される。ここで、タイムスタンプは、センサ情報がモニタリングサーバ30に送信された時刻を示す情報であり、例えば、クロック105から取得可能である。
【0135】
なお、例えば、ユーザ端末10とモニタリングサーバ30との間の通信品質が安定している場合には、上記のステップS604で情報送信部101はタイムスタンプを送信せずに、モニタリングサーバ30でセンサ情報を受信したときにタイムスタンプを生成及び保存してもよい。これにより、ユーザ端末10とモニタリングサーバ30との間の通信負荷を軽減させることが可能になる。
【0136】
ユーザ端末10の情報送信部101は、上記のステップS602で取得されたセンサ情報と、上記のステップS603で付与されたタイムスタンプとをレンダリングサーバ20に送信する(ステップS605)。このとき、情報送信部101は、測定モードの情報もレンダリングサーバ20に送信する。
【0137】
レンダリングサーバ20の振り分け部211は、測定モードが「端末遅延を除くE2E遅延測定」である場合、情報受信部201が受信したセンサ情報及びタイムスタンプをそのままレンダリングアプリケーション204に送信する。そして、レンダリングサーバ20のレンダリング指示部221は、情報受信部201が受信したセンサ情報及びタイムスタンプに応じて、レンダリング指示をGPU205に行う(ステップS606)。これにより、レンダリング画像が生成され、フレームバッファ232に格納される。
【0138】
ここで、レンダリング指示部221は、レンダリング指示として、当該センサ情報に基づくカメラ視点の画像の生成を指示すると共に、当該タイムスタンプに応じて当該画像中の所定の部分領域が表す情報を変化させる加工をする指示を行う。このような加工としては、例えば、タイムスタンプや通し番号等がそのまま部分領域に表示されるように画像加工を行う、タイムスタンプや通し番号等を表すビットパターン模様(例えば、バーコード等)が部分領域に表示されるように画像加工を行う、等が挙げられる。
【0139】
これにより、タイムスタンプ(又は通し番号等)に応じた情報を表す部分領域が含まれるレンダリング画像が生成される。ここで、上記のステップS606のレンダリングの結果として得られるレンダリング画像の一例を図16に示す。図16に示すレンダリング画像2000には、予め決められた位置の部分領域2100が含まれる。この部分領域2100には、タイムスタンプ(又は通し番号等)に応じた情報を表す画像が含まれる。図16に示す例では、人間にも視認可能な情報を表す画像として、「12345678」を表す画像が含まれている。
【0140】
また、上記のステップS606のレンダリング結果として得られるレンダリング画像の他の例を図17に示す。図17に示すレンダリング画像3000には、予め決められた位置の部分領域3100が含まれる。この部分領域3100には、タイムスタンプ(又は通し番号等)に応じた情報を表す画像が含まれる。図17に示す例では、機械的に読み取ることで取得可能な情報を表すビットパターン模様が含まれている。
【0141】
なお、図16及び図17に示す例では、部分領域はレンダリング画像の右下に位置する領域としたが、これは一例であって、部分領域は、レンダリング画像中の予め決められた任意の位置にある領域でよい。ただし、部分領域は、レンダリング画像中の右下や左下等の目立たない位置にあることが好ましい。
【0142】
以降のステップS607~ステップS609は、図3のステップS108~ステップS110とそれぞれ同様であるため、その説明を省略する。
【0143】
ユーザ端末10のフレームバッファ読み出し部111は、フレームバッファ109に格納されているレンダリング画像中の所定の部分領域を読み出す(ステップS610)。これにより、レンダリング画像を全て読み出す場合と比較して、ユーザ端末10の負荷を軽減させることができる。ただし、レンダリング画像中の部分領域を読み出す場合に限られず、例えば、毎フレームのレンダリング画像を読み出すのではなく、或る所定のフレーム数毎にレンダリング画像(又は、このレンダリング画像中の部分領域)を読み出してもよい。
【0144】
ユーザ端末10の判定部112は、上記のステップS610で読み出された部分領域が表す情報を判定する(ステップS611)。このとき、判定部112は、例えば、クロック105から第2タイムスタンプを取得する。なお、ユーザ端末10の処理負荷を軽減させるため、部分領域が表す情報の判定は、例えば、レンダリングサーバ20で行われてもよい。
【0145】
ユーザ端末10の情報送信部101は、上記のステップS611の判定結果と第2タイムスタンプとをモニタリングサーバ30に送信する(ステップS612)。これにより、モニタリングサーバ30では、判定結果と第2タイムスタンプとが対応付けて保存部305に保存される。
【0146】
なお、上記のステップS612では、上記のステップS604と同様に、例えば、ユーザ端末10とモニタリングサーバ30との間の通信品質が安定している場合には、情報送信部101は第2タイムスタンプを送信せずに、モニタリングサーバ30で判定結果を受信したときに第2タイムスタンプを生成及び保存してもよい。これにより、ユーザ端末10とモニタリングサーバ30との間の通信負荷を軽減させることが可能になる。
【0147】
モニタリングサーバ30の表示部304は、保存部305に保存されているセンサ情報及びそのタイムスタンプ、判定結果及び第2タイムスタンプを用いて、遅延測定結果を表示する(ステップS613)。実施例6では、端末遅延を除くE2E遅延は、判定結果が変化した時刻(つまり、第2タイムスタンプが表す時刻)と、センサ情報に付与されたタイムスタンプが表す時刻との差分で測定される。
【0148】
一方で、ユーザ端末10の表示部110は、フレームバッファ109に格納されているレンダリング画像(より正確には、第2レイヤバッファ122に格納されているレンダリング画像)を第2レイヤ132に埋め込むことで、当該レンダリング画像を表示する(ステップS614)。
【0149】
[実施例7]
次に、実施例7として、ユーザ端末10とレンダリングサーバ20との間に配置された複数のネットワーク機器90を用いて遅延を測定する場合について説明する。なお、実施例7では、ユーザ端末10とレンダリングサーバ20との間に複数のネットワーク機器90(例えば、ルータやゲートウェイ、スイッチ等)が設置されているものとする。また、これら複数のネットワーク機器90のうちの少なくとも1台のネットワーク機器90やレンダリングサーバ20は、仮想化基盤80上の仮想マシンで実現されているものとする。以降では、仮想化基盤80上の仮想マシンで実現されているネットワーク機器90を「ネットワーク機器85」とも表す。なお、実施例7では、ネットワーク機器90やモニタリングサーバ30は、例えば同一事業者網内にあり、時刻が同期されているものとする。
【0150】
(機能構成)
実施例7における遅延測定システム1の機能構成について、図18を参照しながら説明する。図18は、実施例7における遅延測定システムの機能構成の一例を説明するための図である。
【0151】
実施例7では、各ネットワーク機器90には、読取部901と読取部902とが含まれる。また、各ネットワーク機器85には、読取部851と読取部852とが含まれる。
【0152】
読取部901は、ユーザ端末10から送信されたトリガ情報を受信した場合に、その受信時刻をモニタリングサーバ30に送信する。一方で、読取部902は、レンダリングサーバ20からの情報(例えば、エンコード情報)を受信した場合に、その受信時刻をモニタリングサーバ30に送信する。これらの受信時刻は、モニタリングサーバ30の保存部305に保存される。
【0153】
同様に、読取部851は、ユーザ端末10から送信されたトリガ情報を受信した場合に、その受信時刻をモニタリングサーバ30に送信する。一方で、読取部852は、レンダリングサーバ20からの情報(例えば、エンコード情報)を受信した場合に、その受信時刻をモニタリングサーバ30に送信する。これらの受信時刻は、モニタリングサーバ30の保存部305に保存される。
【0154】
以上により、実施例7では、各ネットワーク機器90(ネットワーク機器85も含む)をトリガ情報やエンコード情報等が通過する時刻をモニタリングサーバ30で保持することができる。これにより、例えば、各ネットワーク機器90での通過時刻等を比較することが可能になり、遅延の測定が可能になる。
【0155】
[ハードウェア構成]
最後に、上記の各実施例におけるユーザ端末10、レンダリングサーバ20及びモニタリングサーバ30は、例えば、図19に示すようなハードウェア構成のコンピュータ4000を用いて実現可能である。図19は、コンピュータ4000のハードウェア構成の一例を示す図である。
【0156】
図19に示すコンピュータ4000には、入力装置4001と、表示装置4002と、外部I/F4003と、RAM(Random Access Memory)4004と、ROM(Read Only Memory)4005と、プロセッサ4006と、通信I/F4007と、補助記憶装置4008とを有する。これら各ハードウェアは、それぞれがバスBを介して通信可能に接続されている。
【0157】
入力装置4001は、例えばキーボードやマウス、タッチパネル等である。表示装置4002は、例えばディスプレイ等である。なお、レンダリングサーバ20には、入力装置4001及び表示装置4002の少なくとも一方が含まれていなくてもよい。
【0158】
外部I/F4003は、外部装置とのインタフェースである。外部装置には、例えば、CD(Compact Disc)やDVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等の記録媒体4003aがある。
【0159】
RAM4004は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM4005は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM4005には、例えば、OS(Operating System)に関する設定情報や、通信ネットワークNに接続するための設定情報等が格納されている。
【0160】
プロセッサ4006は、例えばCPU(Central Processing Unit)やGPU等であり、ROM4005や補助記憶装置4008等からプログラムやデータをRAM4004上に読み出して処理を実行する演算装置である。
【0161】
通信I/F4007は、通信ネットワークNに接続するためのインタフェースである。補助記憶装置4008は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置4008に格納されているプログラムやデータには、例えば、OS、当該OS上で各種機能を実現するアプリケーションプログラム、上記の各実施例を実現する1以上のプログラム等がある。
【0162】
上記の各実施例におけるユーザ端末10、レンダリングサーバ20及びモニタリングサーバ30は、図19に示すコンピュータ4000のハードウェア構成により、上述した各種処理を実現することができる。なお、レンダリングサーバ20やモニタリングサーバ30は、複数のコンピュータで実現されていてもよい。また、1台のコンピュータには、複数のプロセッサ4006や複数のメモリ(RAM4004やROM4005、補助記憶装置4008等)が含まれていてもよい。
【0163】
本発明は、具体的に開示された上記の実施の形態に限定されるものではなく、請求の範囲の記載から逸脱することなく、種々の変形や変更、組み合わせ等が可能である。
【符号の説明】
【0164】
1:遅延測定システム、10:ユーザ端末、20:レンダリングサーバ、30:モニタリングサーバ、101:情報送信部、102:情報受信部、103:内部センサ情報取得部、104:内部センサ、105:クロック、106:トリガ情報送出部、107:トリガ情報取得部、108:デコード部、109:フレームバッファ、110:表示部、111:フレームバッファ読み出し部、112:判定部、201:情報受信部、202:情報送信部、203:遅延測定アプリケーション、204:レンダリングアプリケーション、205:GPU、206:VRAM、211:振り分け部、221:レンダリング指示部、222:エンコード指示部、223:VRAM読み出し部、231:レンダリング部、232:フレームバッファ、233:エンコード部、N:通信ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19