(57)【要約】【課題】パノラマ画像の生成から表示までにレイテンシが発生し、ヘッドマウントディスプレイを装着したユーザは酔いを感じることがある。【解決手段】画像処理部７５０は、ある時刻における視点位置から視線方向に見える画像を描画する。画像記憶部７６０は、画像処理部７５０により描画された画像を過去フレームとして保持する。過去フレーム選択部７９０は、画像記憶部７６０に保持された過去フレームの中から、現在の視点位置から視線方向に見えるべき代替画像を選択する。画像提供部７７０は、画像処理部７５０により描画される現在の視点位置から視線方向に見える画像を提供する前に、代替画像を出力する。【選択図】図４
2017228044.tif 000002
【特許請求の範囲】
【請求項１】
ある時刻における視点位置から視線方向に見える画像を描画する画像生成部と、
前記画像生成部により描画された画像を過去フレームとして保持する記憶部と、
前記記憶部に保持された過去フレームの中から、現在の視点位置から視線方向に見えるべき代替画像を選択する選択部と、
前記画像生成部により描画される現在の視点位置から視線方向に見える画像を提供する前に、前記代替画像を出力する画像提供部とを含むことを特徴とする画像生成装置。
【請求項２】
前記選択部は、前記記憶部に保持された過去フレームの視点位置および視線方向の少なくとも一方と、現在の視点位置および視線方向の少なくとも一方とを比較し、視点位置の差および視線方向の角度差の少なくとも一方が最も小さい過去フレームを前記代替画像として選択することを特徴とする請求項１に記載の画像生成装置。
【請求項３】
前記視点位置の差および前記視線方向の角度差の少なくとも一方が所定の閾値以内である場合、前記選択部は、前記記憶部に保持された過去フレームの中から前記代替画像を選択し、前記視点位置の差および前記視線方向の角度差の少なくとも一方が所定の閾値を超えた場合、前記選択部は、前記代替画像を選択せず、前記画像提供部は、前記代替画像を出力することなく、前記画像生成部により描画される現在の視点位置から視線方向に見える画像を提供することを特徴とする請求項２に記載の画像生成装置。
【請求項４】
前記記憶部に保持された過去フレームの中から、前記記憶部に保持された過去フレームの視点位置および視線方向の少なくとも一方と、現在の視点位置および視線方向の少なくとも一方とを比較し、視点位置の差および視線方向の角度差の少なくとも一方が最も大きい過去フレームを前記記憶部から削除する破棄部をさらに含むことを特徴とする請求項１から３のいずれかに記載の画像生成装置。
【請求項５】
サーバとクライアントとがネットワークで接続された画像生成システムであって、
前記サーバは、
ある時刻における視点位置から視線方向に見える画像を描画する画像生成部と、
前記画像生成部により描画された画像を過去フレームとして保持する記憶部と、
前記記憶部に保持された過去フレームの中から、現在の視点位置から視線方向に見えるべき代替画像を選択する選択部と、
前記画像生成部により描画される現在の視点位置から視線方向に見える画像を提供する前に、前記代替画像をクライアントに送信する画像提供部とを含み、
前記クライアントは、
前記サーバから受信した前記代替画像を視点位置および視線方向の少なくとも一方の動き量に応じてずらす処理を行うリプロジェクション部を含むを特徴とする画像生成システム。
【請求項６】
ある時刻における視点位置から視線方向に見える画像を描画する画像生成ステップと、
前記画像生成ステップにおいて描画された画像を過去フレームとして保持する記憶ステップと、
前記保持された過去フレームの中から、現在の視点位置から視線方向に見えるべき代替画像を選択する選択ステップと、
前記画像生成ステップにおいて描画される現在の視点位置から視線方向に見える画像を提供する前に、前記代替画像を出力する画像提供ステップとを含むことを特徴とする画像生成方法。
【請求項７】
ある時刻における視点位置から視線方向に見える画像を描画する画像生成機能と、
前記画像生成機能により描画された画像を過去フレームとして保持する記憶機能と、
前記保持された過去フレームの中から、現在の視点位置から視線方向に見えるべき代替画像を選択する選択機能と、
前記画像生成機能により描画される現在の視点位置から視線方向に見える画像を提供する前に、前記代替画像を出力する画像提供機能とをコンピュータに実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像を生成する装置、システムおよび方法に関する。
【背景技術】
【０００２】
ゲーム機に接続されたヘッドマウントディスプレイ（ＨＭＤ）を頭部に装着して、ヘッドマウントディスプレイに表示された画面を見ながら、コントローラなどを操作してゲームプレイすることが行われている。ヘッドマウントディスプレイを装着すると、ヘッドマウントディスプレイに表示される映像以外はユーザは見ないため、映像世界への没入感が高まり、ゲームのエンタテインメント性を一層高める効果がある。また、ヘッドマウントディスプレイに仮想現実（Virtual Reality）の映像を表示させ、ヘッドマウントディスプレイを装着したユーザが頭部を回転させると、３６０度見渡せる全周囲の仮想空間が表示されるようにすると、さらに映像への没入感が高まり、ゲームなどのアプリケーションの操作性も向上する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
このようにヘッドマウントディスプレイにヘッドトラッキング機能をもたせて、ユーザの頭部の動きと連動して視点や視線方向を変えて仮想現実の映像を生成した場合、仮想現実の映像の生成から表示までにレイテンシがあるため、映像生成時に前提としたユーザの頭部の向きと、映像をヘッドマウントディスプレイに表示した時点でのユーザの頭部の向きとの間でずれが発生し、ユーザは酔ったような感覚に陥ることがある。また、サーバが生成した仮想現実の映像をネットワーク経由で受信してクライアントで表示する場合は、さらにネットワークの遅延が加わるため、映像の生成時と表示時の間のずれが大きくなる。
【０００４】
本発明はこうした課題に鑑みてなされたものであり、その目的は、画像の生成から表示までのレイテンシを考慮して画像を表示することのできる画像生成装置および画像生成方法を提供することにある。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明のある態様の画像生成装置は、ある時刻における視点位置から視線方向に見える画像を描画する画像生成部と、前記画像生成部により描画された画像を過去フレームとして保持する記憶部と、前記記憶部に保持された過去フレームの中から、現在の視点位置から視線方向に見えるべき代替画像を選択する選択部と、前記画像生成部により描画される現在の視点位置から視線方向に見える画像を提供する前に、前記代替画像を出力する画像提供部とを含む。
【０００６】
本発明の別の態様は、画像生成システムである。この画像生成システムは、サーバとクライアントとがネットワークで接続された画像生成システムであって、前記サーバは、ある時刻における視点位置から視線方向に見える画像を描画する画像生成部と、前記画像生成部により描画された画像を過去フレームとして保持する記憶部と、前記記憶部に保持された過去フレームの中から、現在の視点位置から視線方向に見えるべき代替画像を選択する選択部と、前記画像生成部により描画される現在の視点位置から視線方向に見える画像を提供する前に、前記代替画像をクライアントに送信する画像提供部とを含む。前記クライアントは、前記サーバから受信した前記代替画像を視点位置および視線方向の少なくとも一方の動き量に応じてずらす処理を行うリプロジェクション部を含むを特徴とする。
【０００７】
本発明のさらに別の態様は、画像生成方法である。この方法は、ある時刻における視点位置から視線方向に見える画像を描画する画像生成ステップと、前記画像生成ステップにおいて描画された画像を過去フレームとして保持する記憶ステップと、前記保持された過去フレームの中から、現在の視点位置から視線方向に見えるべき代替画像を選択する選択ステップと、前記画像生成ステップにおいて描画される現在の視点位置から視線方向に見える画像を提供する前に、前記代替画像を出力する画像提供ステップとを含む。
【０００８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によれば、画像の生成から表示までのレイテンシを考慮して画像を表示することができる。
【図面の簡単な説明】
【００１０】
【図１】ヘッドマウントディスプレイの外観図である。
【図２】ヘッドマウントディスプレイの機能構成図である。
【図３】本実施の形態に係る画像生成システムの構成図である。
【図４】本実施の形態に係る画像生成装置の機能構成図である。
【図５】ヘッドマウントディスプレイに表示される全周囲画像を説明する図である。
【図６】ヘッドマウントディスプレイに表示される全周囲画像に遅れが生じる理由を説明する図である。
【図７】図７（ａ）および図７（ｂ）は、リプロジェクションを説明する図である。
【図８】過去フレームが図４の画像記憶部に保存される様子を説明する図である。
【図９】図４の画像記憶部から選択された過去フレームが描画処理に利用される様子を説明する図である。
【図１０】図４の過去フレーム選択部による過去フレームの選択処理を説明する図である。
【図１１】図４の過去フレーム破棄部による過去フレームの破棄処理を説明する図である。
【図１２】スタンドアロンシステムの場合の図４の画像生成装置による過去フレームを利用した描画処理の手順を示すフローチャートである。
【図１３】図１２の過去フレーム選択処理の手順を示すフローチャートである。
【図１４】図１２の過去フレーム破棄処理の手順を示すフローチャートである。
【図１５】サーバクライアントシステムの場合の図４の画像生成装置による過去フレームを利用した描画処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
図１は、ヘッドマウントディスプレイ１００の外観図である。ヘッドマウントディスプレイ１００は、ユーザの頭部に装着してディスプレイに表示される静止画や動画などを鑑賞し、ヘッドホンから出力される音声や音楽などを聴くための表示装置である。
【００１２】
ヘッドマウントディスプレイ１００に内蔵または外付けされたジャイロセンサや加速度センサなどによりヘッドマウントディスプレイ１００を装着したユーザの頭部の位置情報と頭部の回転角や傾きなどの姿勢情報を計測することができる。
【００１３】
ヘッドマウントディスプレイ１００には、さらに、ユーザの目を撮影するカメラが設けられてもよい。ヘッドマウントディスプレイ１００に搭載されたカメラにより、ユーザの凝視方向、瞳孔の動き、瞬きなどを検出することができる。
【００１４】
ヘッドマウントディスプレイ１００は、「ウェアラブルディスプレイ」の一例である。ここでは、ヘッドマウントディスプレイ１００に表示される画像の生成方法を説明するが、本実施の形態の画像生成方法は、狭義のヘッドマウントディスプレイ１００に限らず、めがね、めがね型ディスプレイ、めがね型カメラ、ヘッドフォン、ヘッドセット（マイクつきヘッドフォン）、イヤホン、イヤリング、耳かけカメラ、帽子、カメラつき帽子、ヘアバンドなどを装着した場合にも適用することができる。
【００１５】
図２は、ヘッドマウントディスプレイ１００の機能構成図である。
【００１６】
制御部１０は、画像信号、センサ信号などの信号や、命令やデータを処理して出力するメインプロセッサである。入力インタフェース２０は、ユーザからの操作信号や設定信号を受け付け、制御部１０に供給する。出力インタフェース３０は、制御部１０から画像信号を受け取り、ディスプレイに表示させる。バックライト３２は、液晶ディスプレイにバックライトを供給する。
【００１７】
通信制御部４０は、ネットワークアダプタ４２またはアンテナ４４を介して、有線または無線通信により、制御部１０から入力されるデータを外部に送信する。通信制御部４０は、また、ネットワークアダプタ４２またはアンテナ４４を介して、有線または無線通信により、外部からデータを受信し、制御部１０に出力する。
【００１８】
記憶部５０は、制御部１０が処理するデータやパラメータ、操作信号などを一時的に記憶する。
【００１９】
姿勢センサ６４は、ヘッドマウントディスプレイ１００の位置、回転角や傾きなどの姿勢情報を検出する。姿勢センサ６４は、ジャイロセンサ、加速度センサ、角加速度センサなどを適宜組み合わせて実現される。３軸地磁気センサ、３軸加速度センサおよび３軸ジャイロ（角速度）センサの少なくとも１つ以上を組み合わせたモーションセンサを用いて、ユーザの頭部の前後、左右、上下の動きを検出してもよい。
【００２０】
外部入出力端子インタフェース７０は、ＵＳＢ（Universal Serial Bus）コントローラなどの周辺機器を接続するためのインタフェースである。外部メモリ７２は、フラッシュメモリなどの外部メモリである。
【００２１】
時計部８０は、制御部１０からの設定信号によって時間情報を設定し、時間データを制御部１０に供給する。
【００２２】
制御部１０は、画像やテキストデータを出力インタフェース３０に供給してディスプレイに表示させたり、通信制御部４０に供給して外部に送信させることができる。
【００２３】
図３は、本実施の形態に係る画像生成システムの構成図である。ヘッドマウントディスプレイ１００は、無線通信またはＵＳＢなどの周辺機器を接続するインタフェース３００でゲーム機やパーソナルコンピュータ、携帯端末などのクライアント２００に接続される。クライアント２００は、さらにネットワーク６００を介してサーバ４００に接続される。サーバ４００はクラウドサービスを提供することができる。サーバ４００は一台に限らず、複数台あってもよく、複数台のサーバ４００が分散処理により一つのタスクを実行してもよい。
【００２４】
サーバ４００は、ネットワーク６００を介して複数のクライアント２００に仮想現実の映像を送信することができる。複数のユーザは、それぞれのクライアント２００に接続されたヘッドマウントディスプレイ１００を装着してそれぞれの視点から仮想現実の映像を閲覧する。
【００２５】
図４は、本実施の形態に係る画像生成装置７００の機能構成図である。同図は機能に着目したブロック図を描いており、これらの機能ブロックはハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現することができる。
【００２６】
クライアント２００をサーバ４００に接続するサーバクライアントシステムの場合、画像生成装置７００はサーバ４００に実装される。クライアント２００をサーバ４００に接続せずに単体で利用するスタンドアロンシステムの場合は、画像生成装置７００はクライアント２００に実装される。サーバクライアントシステムの場合、画像生成装置７００の一部の機能構成をサーバ４００に実装し、残りの機能構成をクライアント２００に実装してもよい。サーバクライアントシステム、スタンドアロンシステムのいずれの場合にも、画像生成装置７００の少なくとも一部の機能をヘッドマウントディスプレイ１００の制御部１０に実装してもよい。
【００２７】
ズーム指示取得部７１０は、ヘッドマウントディスプレイ１００の入力インタフェース２０を介してユーザが指示するズームの倍率を取得する。ズーム指示取得部７１０が取得したズーム倍率は感度調整部７２０と画像処理部７５０に供給される。
【００２８】
位置・回転情報取得部７３０は、ヘッドマウントディスプレイ１００の姿勢センサ６４により検知される姿勢情報にもとづいて、ヘッドマウントディスプレイ１００を装着したユーザの頭部の位置と回転に関する情報を取得する。
【００２９】
位置・回転情報取得部７３０は、感度調整部７２０から指示された感度にもとづいて、ユーザの頭部の位置と回転を取得する。たとえば、ユーザが首を回すと、姿勢センサ６４によりユーザの頭部の角度の変化が検出されるが、感度調整部７２０は、角度の変化が所定の値を超えるまでは検出された角度の変化を無視するように位置・回転情報取得部７３０に指示する。
【００３０】
また、感度調整部７２０は、ズーム指示取得部７１０から取得されたズーム倍率にもとづいて頭部の角度検出の感度を調整する。ズーム倍率が大きくなるほど、頭部の角度検出の感度を下げる。ズームすると、画角が小さくなるため、頭部の角度検出感度を下げることで頭部の揺れによる表示画像の振動を抑えることができる。
【００３１】
座標変換部７４０は、位置・回転情報取得部７３０により取得されたヘッドマウントディスプレイ１００の位置および回転を用いて、トラッキング機能付きのヘッドマウントディスプレイ１００に表示すべき画像を生成するための座標変換を行う。
【００３２】
画像処理部７５０は、画像記憶部７６０から画像データを読み出し、座標変換部７４０による座標変換にしたがって、ヘッドマウントディスプレイ１００を装着したユーザの視点位置から視線方向に見える画像を、ズーム指示取得部７１０から指定されたズーム倍率で生成し、画像提供部７７０に与える。ここで、画像データは、事前に作成された動画または静止画コンテンツであってもよく、レンダリングされたコンピュータグラフィックスであってもよい。
【００３３】
画像提供部７７０は、画像処理部７５０により生成された画像データをヘッドマウントディスプレイ１００に供給する。
【００３４】
画像処理部７５０は、生成された画像を視点情報とフレーム番号とともに「過去フレーム」として画像記憶部７６０に保存する。視点情報には当該フレームを描画したときの視点位置および視線方向が含まれる。
【００３５】
視点計算部７８０は、位置・回転情報取得部７３０から取得されるヘッドマウントディスプレイ１００の位置および回転の変化量にもとづいて、頭部を動かした後の視点位置と視線方向を計算する。
【００３６】
過去フレーム選択部７９０は、視点計算部７８０により計算された新しい視点位置および／または視線方向と、画像記憶部７６０に保存された過去フレームの視点位置および／または視線方向とを比較し、視点位置の差および／または視線方向の角度差が所定の閾値以内であれば、選択ルールにしたがって画像記憶部７６０から過去フレームを選択する。過去フレーム選択部７９０は、選択された過去フレームを画像提供部７７０に与える。
【００３７】
画像提供部７７０は、画像処理部７５０により新しい視点位置および視線方向での描画結果が生成される前に、過去フレーム選択部７９０により選択された過去フレームを代替画像としてヘッドマウントディスプレイ１００に提供する。
【００３８】
過去フレーム破棄部８００は、画像記憶部７６０に保存された過去フレームのデータ量が所定の閾値を超えた場合、破棄ルールにしたがって画像記憶部７６０から過去フレームを削除する。過去フレーム破棄部８００は、視点計算部７８０により計算された新しい視点位置および／または視線方向と、画像記憶部７６０に保存された過去フレームの視点位置および／または視線方向とを比較し、視点位置の差および／または視線方向の角度差が所定の閾値を超えた場合に、破棄ルールにしたがって画像記憶部７６０から過去フレームを削除してもよい。
【００３９】
図５は、ヘッドマウントディスプレイ１００に表示される全周囲画像５００を説明する図である。全周囲画像５００に対して、ユーザが左前方を向いている場合、ヘッドマウントディスプレイ１００ａの方向で画角１５０ａの範囲にある画像５１０ａが表示され、ユーザが首を回して右前方を向いている場合、ヘッドマウントディスプレイ１００ｂの方向で画角１５０ｂの範囲にある画像５１０ｂが表示される。
【００４０】
このように頭部の動きに応じてヘッドマウントディスプレイ１００に表示される全周囲画像を見る視点位置と視線方向も変わるため、全周囲画像に対する没入感を高めることができる。
【００４１】
図６は、ヘッドマウントディスプレイ１００に表示される全周囲画像に遅れが生じる理由を説明する図である。ユーザが首を回して右前方を向いた場合、ヘッドマウントディスプレイ１００ｂの方向で画角１５０ｂの範囲にある画像５１０ｂを生成し、ヘッドマウントディスプレイ１００に表示するが、画像５１０ｂの表示の時点では、既にヘッドマウントディスプレイ１００ｂの位置と回転が符号１５０ｃで示すように変化している。そのため、本来は画角１５０ｃの範囲で見える画像をヘッドマウントディスプレイ１００ｃに表示する必要があるが、実際に生成されて表示される画像は、少し前の時点のヘッドマウントディスプレイ１００ｂの方向で画角１５０ｂの範囲で見える画像となってしまう。この時間差によるずれのため、ユーザが見ている方向とは少しずれた画像がヘッドマウントディスプレイ１００に表示され、ユーザはある種の「酔い」を感じることがある。
【００４２】
このように、ヘッドマウントディスプレイ１００の回転を検知し、次の描画範囲を確定し、ＣＰＵが描画コマンドを発行し、ＧＰＵ（Graphics Processing Unit）がレンダリングを実行し、描画された画像がヘッドマウントディスプレイ１００に出力されるまでには時間がかかる。描画がたとえば６０ｆｐｓ（フレーム／秒）のフレームレートで行われているとすると、ＣＰＵが十分高速であったとしても、ヘッドマウントディスプレイ１００の回転を検知してから画像を出力するまでに１フレーム分の遅れが生じる。これはフレームレート６０ｆｐｓのもとでは、１６．６７ミリ秒ほどであり、人間がずれを感知するには十分な時間である。
【００４３】
そこで、従来は、「タイムワープ」または「リプロジェクション」と呼ばれる処理を行うことで人間がずれを感知しにくいようにしている。以下、「リプロジェクション」について説明した後、本実施の形態の過去フレーム利用による描画遅延体感低減方法を説明する。
【００４４】
図７（ａ）および図７（ｂ）は、リプロジェクションを説明する図である。図７（ａ）は、視点９００から仮想空間を見るときの視錐台９１０を示す。図７（ａ）では視錐台９１０で規定される表示範囲に画像９２０が表示されている。しかしながらユーザが頭部を右に回転させ、視点９００が右に移動していた場合、生成された画像９２０を視錐台９１０で規定される表示範囲にそのまま描画すると、図６で説明したようにユーザはずれを感知してしまう。
【００４５】
頭部を右に移動させると、目の前の画像は右から左に、より正確に言えば左下に流れていくはずである。そこで、図７（ｂ）に示すように、生成された画像９２０を本来表示される位置よりも左下にずらした位置に表示し、その後、視錐台９１０で規定される本来の表示範囲に正しい画像を遅れて描画する。この処理をリプロジェクションと呼んでいる。リプロジェクションにより、画像が頭部の動きに瞬時に追従しないために人間が感じる違和感を抑えることができる。
【００４６】
しかし、特にサーバクライアントシステムでヘッドマウントディスプレイ１００に描画する場合、描画処理にかかる時間に通信時間がさらに加わり、遅延が大きくなるため、リプロジェクションによる遅延対策だけでは違和感を十分に低減することができなくなる。生成された画像９２０を本来表示される位置からずらした位置に表示した後、視錐台９１０で規定される本来の表示範囲に正しい画像を描画するが、この正しい画像の描画が通信トラフィックの影響でさらに遅延するからである。そこで、本実施の形態では、過去フレームを利用することによって、ユーザが体感する遅延を低減する。
【００４７】
図８および図９を参照して、過去フレームを利用した描画処理の概略を説明する。図８は、過去フレームが画像記憶部７６０に保存される様子を説明する図である。視点９００ａ、９００ｂを動かしながら仮想空間を見たときの視錐台９１０ａ、９１０ｂで規定される表示範囲に画像９２０ａ、９２０ｂが描画される。過去のＮフレーム分（Ｎは任意の自然数）の画像が画像記憶部７６０に保存される。
【００４８】
図９は、画像記憶部７６０から選択された過去フレームが描画処理に利用される様子を説明する図である。視点９００ｃが左方向に移動しているとする。新しい視点での描画結果を得るまでには時間がかかる。そこで、画像記憶部７６０に保存された画像のフレームの内、視点９００ｃに最も近い視点で過去に描画されたフレーム９２０ａを選択する。選択されたフレーム９２０ａをそのまま利用するか、必要に応じてリプロジェクション処理を施した上で、選択されたフレーム９２０ａを、視点９００ｃから仮想空間を見るときの視錐台９１０ｃで規定される表示範囲に代替画像９２０ｃとして表示する。
【００４９】
その後、移動先の視点９００ｄから仮想空間を見たときの視錐台９１０ｃの表示範囲に本来描画されるべき画像９２０ｄが生成されて表示される。視点９００ｄでの最終的な描画結果である画像９２０ｄが表示されるまでの間、過去フレーム９２０ａが代替画像９２０ｃとして表示されるため、ユーザが体感する遅延が低減される。視点９００ｄでの最終的な描画結果である画像９２０ｄは画像記憶部７６０に新たな過去フレームとして保存される。
【００５０】
図１０は、過去フレーム選択部７９０による過去フレームの選択処理を説明する図である。ここでは、選択ルールとして「現在の視点に最も近い視点で描画された過去フレームを選択する」というルールを採用した場合を説明する。
【００５１】
簡単のため、画像記憶部７６０には、過去フレームとして、第１の視点ＶｐＡで描画されたフレームＦｒＡと、第２の視点ＶｐＢで描画されたフレームＦｒＢが格納されているとする。過去フレーム選択部７９０は、現在の視点ＶｐＣから見た場合の代替画像を画像記憶部７６０に格納された過去フレームの中から選択する。現在の視点ＶｐＣを、第１の視点ＶｐＡおよび第２の視点ＶｐＢと比較すると、第２の視点ＶｐＢの方が現在の視点ＶｐＣに近い。そこで、過去フレーム選択部７９０は、現在の視点ＶｐＣに最も近い第２の視点ＶｐＢで描画されたフレームＦｒＢを現在の視点ＶｐＣにおける代替画像として選択する。
【００５２】
図１１は、過去フレーム破棄部８００による過去フレームの破棄処理を説明する図である。ここでは、破棄ルールとして「現在の視点から最も離れた視点で描画された過去フレームを破棄する」というルールを採用した場合を説明する。
【００５３】
簡単のため、画像記憶部７６０には、過去フレームとして、第１の視点ＶｐＡで描画されたフレームＦｒＡと、第２の視点ＶｐＢで描画されたフレームＦｒＢが格納されているとする。現在の視点ＶｐＣを、第１の視点ＶｐＡおよび第２の視点ＶｐＢと比較すると、第１の視点ＶｐＡの方が現在の視点ＶｐＣから離れている。そこで、過去フレーム破棄部８００は、現在の視点ＶｐＣから最も離れた第１の視点ＶｐＡで描画されたフレームＦｒＡを画像記憶部７６０から削除する。
【００５４】
図１２は、スタンドアロンシステムの場合の画像生成装置７００による過去フレームを利用した描画処理の手順を示すフローチャートである。
【００５５】
画像生成装置７００は、ヘッドマウントディスプレイ１００の表示解像度、カメラ画角などの初期設定時に決まるパラメータを取得し、視点決定用パラメータとして記憶部に保存する（Ｓ１０）。
【００５６】
画像生成装置７００の位置・回転情報取得部７３０は、ヘッドマウントディスプレイ１００を装着したユーザの頭部の動きなどのリアルタイム測定値を取得し、視点決定用パラメータとして記憶部に保存する（Ｓ１２）。
【００５７】
画像生成装置７００の視点計算部７８０は、保存されている視点決定用パラメータから描画を行うための視点位置と視線方向を計算する（Ｓ１４）。
【００５８】
過去フレーム選択部７９０は、画像記憶部７６０に保存されている過去フレームの視点位置および視点方向と、視点計算部７８０により計算された視点位置および視点方向とを比較し、視点位置の差および視線方向の角度差が所定の閾値以内であるかどうかを判定する（Ｓ１６）。
【００５９】
視点位置の差および視線方向の角度差が所定の閾値以内である場合（Ｓ１６のＹ）、過去フレーム選択部７９０は、過去フレーム選択処理を実行する（Ｓ１８）。過去フレーム選択処理の詳細は後述する。過去フレーム選択処理の実行後、ステップＳ２０に進む。
【００６０】
視点位置の差および視線方向の角度差が所定の閾値を超える場合（Ｓ１６のＮ）、ステップＳ１８の過去フレーム選択処理を実行せずに、ステップＳ２０に進む。
【００６１】
画像処理部７５０は、現在の視点位置から視線方向に見える画像を描画し、描画された画像を画像提供部７７０に提供する（Ｓ２０）。
【００６２】
過去フレーム破棄部８００は、画像記憶部７６０に保存された過去フレームのデータ量が所定の閾値を超えたかどうかを判定する（Ｓ２２）。この所定の閾値は、画像生成装置７００の記憶容量を考慮して、画像生成装置７００に保持可能なデータ量をもとに設定される。
【００６３】
画像記憶部７６０に保存された過去フレームのデータ量が所定の閾値を超えた場合（Ｓ２２のＹ）、過去フレーム破棄部８００は、過去フレーム破棄処理を実行する（Ｓ２４）。過去フレーム破棄処理の詳細は後述する。過去フレーム破棄処理の実行後、ステップＳ２６に進む。
【００６４】
画像記憶部７６０に保存された過去フレームのデータ量が所定の閾値以内である場合（Ｓ２２のＮ）、ステップＳ２４の過去フレーム破棄処理を実行せずに、ステップＳ２６に進む。
【００６５】
画像処理部７５０は、現在の視点位置から視線方向に見える画像の描画結果を過去フレームとして、視点とフレーム番号とともに画像記憶部７６０に保存する（Ｓ２６）。
【００６６】
画像提供部７７０は、現在の視点位置から視線方向に見える画像の描画結果をヘッドマウントディスプレイ１００に出力し、必要に応じてリプロジェクション処理を行う（Ｓ２８）。
【００６７】
ユーザの頭部に動きがあれば（Ｓ３０のＹ）、ステップＳ１２に戻り、それ以降の処理を繰り返す。ユーザの頭部に動きがなければ（Ｓ３０のＮ）、過去フレームを利用した描画処理を終了し、通常の描画処理に戻る。
【００６８】
図１３は、図１２のステップＳ１８の過去フレーム選択処理の手順を示すフローチャートである。
【００６９】
過去フレーム選択部７９０は、選択ルールにもとづいて、画像記憶部７６０から過去フレームを選択する（Ｓ４０）。
【００７０】
選択ルールとして、たとえば、以下のものがある。
・保存された過去フレームの内、最も新しいフレームを選択
・視点位置の差や視線方向の角度差にもとづいて現在の視点に最も近い視点で描画された過去フレームを選択
・直前に描画されたフレームと過去フレームのマッチングを行い、直前に描画されたフレームと最も近似している過去フレームを選択
・選択された回数が最も多い過去フレームを選択
【００７１】
過去フレーム選択部７９０は、選択された過去フレームを代替画像としてヘッドマウントディスプレイ１００に出力し、必要に応じてリプロジェクション処理を行う（Ｓ４２）。
【００７２】
図１４は、図１２のステップＳ２４の過去フレーム破棄処理の手順を示すフローチャートである。
【００７３】
過去フレーム破棄部８００は、破棄ルールにもとづいて、画像記憶部７６０から破棄すべき過去フレームを選択する（Ｓ５０）。
【００７４】
破棄ルールとして、たとえば、以下のものがある。
・保存された過去フレームの内、最も古いフレームを破棄
・視点位置の差や視線方向の角度差にもとづいて現在の視点から最も離れた視点で描画された過去フレームを破棄
・直前に描画されたフレームと過去フレームのマッチングを行い、直前に描画されたフレームと最も近似していない過去フレームを破棄
・選択された回数が最も少ない過去フレームを破棄
【００７５】
過去フレーム破棄部８００は、選択された過去フレームを画像記憶部７６０から削除する（Ｓ５２）。
【００７６】
上記のフローチャートでは、クライアント２００をサーバ４００に接続せずに単体で利用するスタンドアロンシステムの場合を説明した。次にクライアント２００をサーバ４００に接続したサーバクライアントシステムの場合を説明する。
【００７７】
図１５は、サーバクライアントシステムの場合の画像生成装置７００による過去フレームを利用した描画処理の手順を示すフローチャートである。
【００７８】
クライアント２００は、ヘッドマウントディスプレイ１００の表示解像度、カメラ画角などの初期設定時に決まるパラメータを取得し、サーバ４００に送信する。サーバ４００は、受信したパラメータを視点決定用パラメータとして記憶部に保存する（Ｓ６０）。
【００７９】
クライアント２００は、ヘッドマウントディスプレイ１００を装着したユーザの頭部の動きなどのリアルタイム測定値を取得し、サーバ４００に送信し、サーバ４００の位置・回転情報取得部７３０は、受信したリアルタイム測定値を視点決定用パラメータとして記憶部に保存する（Ｓ６２）。
【００８０】
サーバ４００の視点計算部７８０は、保存されている視点決定用パラメータから描画を行うための視点位置と視線方向を計算する（Ｓ６４）。
【００８１】
サーバ４００の過去フレーム選択部７９０は、画像記憶部７６０に保存されている過去フレームの視点位置および視点方向と、視点計算部７８０により計算された視点位置および視点方向とを比較し、視点位置の差および視線方向の角度差が所定の閾値以内であるかどうかを判定する（Ｓ６６）。
【００８２】
視点位置の差および視線方向の角度差が所定の閾値以内である場合（Ｓ６６のＹ）、過去フレーム選択部７９０は、過去フレーム選択処理を実行する（Ｓ６８）。過去フレーム選択処理の詳細は後述する。過去フレーム選択処理の実行後、ステップＳ７０に進む。
【００８３】
視点位置の差および視線方向の角度差が所定の閾値を超える場合（Ｓ６６のＮ）、ステップＳ６８の過去フレーム選択処理を実行せずに、ステップＳ７０に進む。
【００８４】
サーバ４００の画像処理部７５０は、現在の視点位置から視線方向に見える画像を描画し、描画された画像を画像提供部７７０に提供する（Ｓ７０）。
【００８５】
サーバ４００の過去フレーム破棄部８００は、画像記憶部７６０に保存された過去フレームのデータ量が所定の閾値を超えたかどうかを判定する（Ｓ７２）。この所定の閾値は、サーバ４００の大容量の記憶装置を考慮して、サーバ４００に保持可能なデータ量をもとに設定される。クラウドサービスの場合、記憶容量は十分に大きいため、複数のクライアントに送信した多数の過去フレームを保持することができる。
【００８６】
画像記憶部７６０に保存された過去フレームのデータ量が所定の閾値を超えた場合（Ｓ７２のＹ）、過去フレーム破棄部８００は、過去フレーム破棄処理を実行する（Ｓ７４）。過去フレーム破棄処理の詳細は後述する。過去フレーム破棄処理の実行後、ステップＳ７６に進む。
【００８７】
画像記憶部７６０に保存された過去フレームのデータ量が所定の閾値以内である場合（Ｓ７２のＮ）、ステップＳ７４の過去フレーム破棄処理を実行せずに、ステップＳ７６に進む。
【００８８】
サーバ４００の画像処理部７５０は、現在の視点位置から視線方向に見える画像の描画結果を過去フレームとして、視点とフレーム番号とともに画像記憶部７６０に保存する（Ｓ７６）。
【００８９】
サーバ４００の画像提供部７７０は、現在の視点位置から視線方向に見える画像の描画結果をクライアント２００に送信する。クライアント２００は受信した描画結果をヘッドマウントディスプレイ１００に出力し、必要に応じてリプロジェクション処理を行う（Ｓ７８）。
【００９０】
ユーザの頭部に動きがあれば（Ｓ８０のＹ）、ステップＳ６２に戻り、それ以降の処理を繰り返す。ユーザの頭部に動きがなければ（Ｓ８０のＮ）、過去フレームを利用した描画処理を終了し、通常の描画処理に戻る。
【００９１】
ステップＳ６８の過去フレーム選択処理は、図１３で説明したスタンドアロンの場合と大差はないので、図は省略して手順のみを説明する。サーバ４００の過去フレーム選択部７９０は、選択ルールにもとづいて、画像記憶部７６０から過去フレームを選択し、クライアント２００に送信する。クライアント２００は、受信した過去フレームを代替画像としてヘッドマウントディスプレイ１００に出力し、必要に応じてリプロジェクション処理を行う。
【００９２】
ステップＳ７４の過去フレーム選択処理は、図１４で説明したスタンドアロンの場合と大差はないので、図は省略して手順のみを説明する。サーバ４００の過去フレーム破棄部８００は、破棄ルールにもとづいて、画像記憶部７６０から破棄すべき過去フレームを選択する。過去フレーム破棄部８００は、選択された過去フレームを画像記憶部７６０から削除する。
【００９３】
上記の説明では、サーバ４００が一つのクライアント２００に描画結果を送信する場合を説明したが、サーバ４００が複数のクライアント２００に描画結果を送信してもよい。たとえば、ゲームアプリケーションを複数のクライアント２００において実行する場合、複数のユーザがヘッドマウントディスプレイ１００を装着しながら、異なる視点から同一の仮想空間を見ることになる。このような場合、あるクライアント２００のために描画された画像のフレームをサーバ４００が保存しておき、その過去フレームを別のクライアント２００が同じような視点から見た場合の代替画像として再利用してもよい。
【００９４】
以上述べたように、本実施の形態の画像生成装置７００によれば、ヘッドマウントディスプレイ１００を装着したユーザの頭部の移動によって視点位置や視線方向が変化した場合、過去に描画された画像のフレームの中から新しい視点位置や視線方向に合った過去フレームを再利用して代替画像として描画する。その結果、描画処理や通信による遅延があっても、代替画像が表示されるため、ユーザは遅延を知覚しにくくなり、酔いを防止することができる。
【００９５】
以下、いくつかのユースケースを説明する。第１のユースケースは、ネットワークに接続せずにユーザの手元にあるデバイスが過去フレームを利用して描画を行う形態である。ユーザの手元のデバイスに十分な記憶容量があれば、過去の描画結果を保存し、再利用することにより、描画処理にかかる遅延を隠蔽した描画出力が可能である。
【００９６】
第２のユースケースは、クラウドサーバ上で描画を実行し、クライアントに描画結果を送信する形態である。クラウドサーバはユーザの手元にあるデバイスよりも大容量の記憶装置を有するため、ユーザの手元のデバイスと比べてより多くの過去の描画結果を保持し、再利用することができる。また、クラウドサービスでは、複数のクライアントが同じ仮想空間を見ている場合、あるクライアントの描画結果を他のクライアントで利用することもできる。
【００９７】
第３のユースケースは、３６０度全周囲の動画コンテンツの再生をクラウドサーバで実行し、ユーザーの視線方向に見える領域のみを切り出して、クライアントに送信する形態である。例えば、４Ｋ解像度、８Ｋ解像度などの高解像度のコンテンツの再生には高性能ハードウェアが必要となり、クラウドサービスのようなユーザの手元にある端末よりも高性能のハードウェアを提供する環境が必要になる。
【００９８】
４Ｋ解像度、８Ｋ解像度などの高解像度のコンテンツをすべてクライアントに送信するには、非常に高帯域なネットワーク通信が必要となる。そこで、ユーザの視線方向に見える領域のみを切り出してクライアントに送信することでクラウドサービスの能力を利用しつつ、必要となるネットワーク帯域を低減することができる。しかし、再生される動画の一部の領域しか、クライアントには送信されないため、視点が移動するとリプロジェクション処理が必要となる。そこで、３６０度動画から切り出された画像のフレームをクラウドサーバに保存しておき、クライアントが３６０度動画コンテンツを再生する際の視点に合った過去フレームを選択して代替画像として再利用することで遅延を隠蔽することができる。
【００９９】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。そのような変形例を説明する。
【符号の説明】
【０１００】
１０  制御部、  ２０  入力インタフェース、  ３０  出力インタフェース、  ３２  バックライト、  ４０  通信制御部、  ４２  ネットワークアダプタ、  ４４  アンテナ、  ５０  記憶部、  ６４  姿勢センサ、  ７０  外部入出力端子インタフェース、  ７２  外部メモリ、  ８０  時計部、  １００  ヘッドマウントディスプレイ、  ２００  クライアント、  ３００  インタフェース、  ４００  サーバ、  ５００  全周囲画像、  ６００  ネットワーク、  ７００  画像生成装置、  ７１０  ズーム指示取得部、  ７２０  感度調整部、  ７３０  位置・回転情報取得部、  ７４０  座標変換部、  ７５０  画像処理部、  ７６０  画像記憶部、  ７７０  画像提供部、  ７８０  視点計算部、  ７９０  過去フレーム選択部、  ８００  過去フレーム破棄部。
【図１】
2017228044.tif 000003
【図２】
2017228044.tif 000004
【図３】
2017228044.tif 000005
【図４】
2017228044.tif 000006
【図５】
2017228044.tif 000007
【図６】
2017228044.tif 000008
【図７】
2017228044.tif 000009
【図８】
2017228044.tif 000010
【図９】
2017228044.tif 000011
【図１０】
2017228044.tif 000012
【図１１】
2017228044.tif 000013
【図１２】
2017228044.tif 000014
【図１３】
2017228044.tif 000015
【図１４】
2017228044.tif 000016
【図１５】
2017228044.tif 000017