JP2022158328A - 画像生成装置、画像生成方法および画像表示プログラム - Google Patents

画像生成装置、画像生成方法および画像表示プログラム Download PDF

Info

Publication number
JP2022158328A
JP2022158328A JP2021063122A JP2021063122A JP2022158328A JP 2022158328 A JP2022158328 A JP 2022158328A JP 2021063122 A JP2021063122 A JP 2021063122A JP 2021063122 A JP2021063122 A JP 2021063122A JP 2022158328 A JP2022158328 A JP 2022158328A
Authority
JP
Japan
Prior art keywords
image
time
unit
processing
hmd
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021063122A
Other languages
English (en)
Inventor
貴一 池田
Kiichi Ikeda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment LLC
Original Assignee
Sony Interactive Entertainment LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Interactive Entertainment LLC filed Critical Sony Interactive Entertainment LLC
Priority to JP2021063122A priority Critical patent/JP2022158328A/ja
Priority to US17/685,641 priority patent/US20220317765A1/en
Publication of JP2022158328A publication Critical patent/JP2022158328A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/212Input arrangements for video game devices characterised by their sensors, purposes or types using sensors worn by the player, e.g. for measuring heart beat or leg activity
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/25Output arrangements for video game devices
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/428Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/44Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment involving timing of operations, e.g. performing an action within a time slot
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5255Changing parameters of virtual cameras according to dedicated instructions from a player, e.g. using a secondary joystick to rotate the camera around a player's character
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/001Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes using specific devices not provided for in groups G09G3/02 - G09G3/36, e.g. using an intermediate record carrier such as a film slide; Projection systems; Display of non-alphanumerical information, solely or in combination with alphanumerical information, e.g. digital display on projected diapositive as background
    • G09G3/003Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes using specific devices not provided for in groups G09G3/02 - G09G3/36, e.g. using an intermediate record carrier such as a film slide; Projection systems; Display of non-alphanumerical information, solely or in combination with alphanumerical information, e.g. digital display on projected diapositive as background to produce spatial visual effects
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/1012Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals involving biosensors worn by the player, e.g. for measuring heart beat, limb activity
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2310/00Command of the display device
    • G09G2310/08Details of timing specific for flat panels, other than clock recovery
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0252Improving the response speed
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0261Improving the quality of display appearance in the context of movement of objects on the screen or movement of the observer relative to the screen
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Processing Or Creating Images (AREA)

Abstract

【課題】利用する画像生成システムに応じて画像の生成から表示までの遅延時間をより適切に設定して、リプロジェクション処理に適用する技術を提供する。【解決手段】本発明の画像生成装置200は、画像生成に関する処理の開始からヘッドマウントディスプレイ用画像がヘッドマウントディスプレイに表示されるまでの遅延時間を予測する時間予測部205と、予測した遅延時間に基づいて、リプロジェクション処理を実行することにより、ヘッドマウントディスプレイ用画像を生成する画像処理部208と、を備えることを特徴とする。【選択図】図3

Description

本発明は、画像生成技術に関する。
ゲーム機に接続されたヘッドマウントディスプレイを頭部に装着して、ヘッドマウントディスプレイに表示された画面を見ながら、コントローラなどを操作してゲームプレイすることが行われている。ヘッドマウントディスプレイを装着すると、ヘッドマウントディスプレイに表示される映像以外はユーザは見ないため、映像世界への没入感が高まり、ゲームのエンタテインメント性を一層高める効果がある。また、ヘッドマウントディスプレイに仮想現実(VR:Virtual Reality)映像を表示させ、ヘッドマウントディスプレイを装着したユーザが頭部を回転させると、360度見渡せる全周囲の仮想空間が表示される。これにより、さらに映像への没入感が高まり、ゲームなどのアプリケーションの操作性も向上する。
このようにヘッドマウントディスプレイにヘッドトラッキング機能をもたせて、ユーザの頭部の動き(姿勢)と連動して視点や視線方向を変えてVR映像を生成した場合、VR映像の生成から表示までに遅延がある。そのため、映像生成時に前提としたユーザの姿勢と、VR映像をヘッドマウントディスプレイに表示した時点でのユーザの姿勢との間でずれが発生する場合がある。その結果、ユーザは酔ったような感覚(「VR酔い(Virtual Reality Sickness)」などと呼ばれる)に陥ることがある。そこで、描画画像を映像表示時の姿勢に合ったものに補正するリプロジェクション処理が一般的に用いられている。
ヘッドマウントディスプレイを用いて画像を提供するために、性能の異なる様々な画像生成システムが開発されている。それに伴い、利用する画像生成システムに応じて画像の生成から表示までの遅延時間をより適切に設定して、リプロジェクション処理に適用する技術が求められている。
上記を鑑み、本発明の目的は、利用する画像生成システムに応じて画像の生成から表示までの遅延時間をより適切に設定して、リプロジェクション処理に適用する技術を提供することにある。
上記課題を解決するために、本発明のある態様の画像生成装置は、画像生成に関する処理の開始からHMD画像がヘッドマウントディスプレイに表示されるまでの遅延時間を予測する時間予測部と、前記予測した遅延時間に基づいて、リプロジェクション処理を実行することにより、前記HMD画像を生成する画像処理部と、を備えることを特徴とする。
なお、以上の任意の組み合わせや、本発明の構成要素や表現を方法、装置、プログラム、プログラムを記録した一時的なまたは一時的でない記憶媒体、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
本発明によれば、利用する画像生成システムに応じて画像の生成から表示までの遅延時間をより適切に設定して、リプロジェクション処理に適用することが可能となる。
ヘッドマウントディスプレイの外観図である。 画像生成システムの構成図である。 図2の画像生成装置の構成図である。 画像生成に関する処理の開始からHMD画像がHMDに表示されるまでの流れを説明するための図である。 画像生成装置における画像生成に関する処理の流れを示すフローチャートである。
(実施形態)
図1は、ヘッドマウントディスプレイ(HMD)100の外観図である。HMD100は、ユーザの頭部に装着してディスプレイに表示される静止画や動画などを鑑賞し、ヘッドフォンから出力される音声や音楽などを聴くための表示装置である。
HMD100に内蔵または外付けされたジャイロセンサや加速度センサなどによりHMD100を装着したユーザの頭部の位置情報と頭部の回転角や傾きなどの姿勢(orientation)情報を計測することができる。
HMD100には、さらに、ユーザの目を撮影するカメラが設けられてもよい。HMD100に搭載されたカメラにより、ユーザの凝視方向、瞳孔の動き、瞬きなどを検出することができる。
HMD100は、「ウェアラブルディスプレイ」の一例である。ここでは、HMD100に表示される画像の生成方法を説明する。なお、本実施の形態の画像生成方法は、狭義のHMD100に限らず、めがね、めがね型ディスプレイ、めがね型カメラ、ヘッドフォン、ヘッドセット(マイクつきヘッドフォン)、イヤホン、イヤリング、耳かけカメラ、帽子、カメラつき帽子、ヘアバンドなどを装着した場合にも適用することができる。
図2は、本実施の形態に係る画像生成システムの構成図である。画像生成システム1は、HMD100及び画像生成装置200を含む。HMD100は、一例として、映像・音声をデジタル信号で伝送する通信インタフェースの標準規格であるHDMI(登録商標)(High-Definition Multimedia Interface)や映像出力インタフェースの規格であるDisplayPortなどのインタフェースを介して画像生成装置200に接続される。
本実施形態では、HMD100と画像生成装置200の間のデータ伝送路300はHDMI伝送路またはDisplayPort伝送路である。HDMI規格またはDisplayPort規格では、画像フレームに紐付けてセカンダリデータパケットを伝送することができ、セカンダリデータパケットにフレームに関連するメタデータを含めることができる。HDMI2.1規格には動的HDR(High Dynamic Range)と呼ばれる機能があり、映像の動的メタデータ(Dynamic Metadata)を参照してシーンに応じてフレーム毎に輝度や色の深度を最適に調整した映像を生成することができる。HDMI2.1規格では動的メタデータは、シーンの最大輝度、平均輝度、最小輝度など動的HDRに必要な情報を映像に同期させて伝送することができる。HMD100と画像生成装置200の通信インタフェースは、メタデータを映像と同期させて伝送できるものであれば、HDMIやDisplayPortに限られない。
画像生成装置200は、HMD100の現在の位置・姿勢情報から、映像の生成から表示までの遅延を考慮してHMD100の予測位置・姿勢情報を生成する。画像生成装置200は、HMD100の予測位置・姿勢情報を前提としてHMD100用の画像(以下、HMD画像とする)を描画し、HMD100に伝送する。
本実施形態の画像生成装置200はゲーム機である。画像生成装置200は、さらにネットワークを介してサーバに接続されてもよい。その場合、サーバは、複数のユーザがネットワークを介して参加できるゲームなどのオンラインアプリケーションを画像生成装置200に提供してもよい。
画像生成装置200は基本的に、コンテンツのプログラムを処理し、HMD画像を生成してHMD100に送信する。コンテンツのプログラムやデータは、ゲームなどのコンテンツのアプリケーションソフトウェア、およびライセンス情報を記録したROM媒体(不図示)からメディアドライブ(不図示)によって読み出される。このROM媒体は、光ディスクや光磁気ディスク、ブルーレイディスクなどの読出専用の記録メディアである。ある態様において画像生成装置200は、HMD100を装着したユーザの頭部の位置や姿勢に基づき視点の位置や視線の方向を特定し、それに応じた視野となるようにコンテンツのHMD画像を所定のレートで生成する。
HMD100はHMD画像のデータを受信し、コンテンツの画像として表示する。HMD100に表示される映像は、予めカメラで撮影された映像の他、ゲーム映像のようなコンピュータグラフィックスによる映像や、ネットワーク経由で配信される遠隔地のライブ映像であってもよい。また、HMD100に表示される画像は、VR画像、AR(拡張現実)画像、MR画像等であってもよい。
図3は、図2の画像生成装置200の機能構成図である。同図は機能に着目したブロック図を描いており、これらの機能ブロックはハードウェアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現することができる。画像生成装置200は、位置・姿勢取得部201と、視点・視線設定部202と、描画コマンド供給部203と、時間蓄積部204と、時間予測部205と、位置・姿勢予測部206と、レンダリング部207と、画像処理部208と、HDMI送受信部209と、データ記憶部210と、を備える。
画像生成装置200の少なくとも一部の機能をHMD100に実装してもよい。あるいは、画像生成装置200の少なくとも一部の機能を、ネットワークを介して画像生成装置200に接続されたサーバに実装してもよい。
位置・姿勢取得部201は、HMD100の現在の位置・姿勢情報L1をHMD100から取得する。
視点・視線設定部202は、位置・姿勢取得部201により取得されたHMD100の位置・姿勢情報L1を用いて、ユーザの視点位置および視線方向を設定する。
描画コマンド供給部203は、HMD画像の生成を開始させるための描画コマンドを生成する。描画コマンド供給部203は、描画コマンドのフレームデータを後述のフレームIDに紐づける。
時間蓄積部204は、同一のフレームIDに紐づけられた各フレームデータに関する後述の第1及び第2タイムスタンプを蓄積して後述の描画時間を算出し、この描画時間をデータ記憶部210に蓄積する。
時間予測部205は、後述するように、データ記憶部210に蓄積された過去の描画時間及び表示処理時間に基づいて、画像生成に関する処理を開始してからHMD画像がHMD100に表示されるまでの遅延時間を予測する。
位置・姿勢予測部206は、時間予測部205により予測された遅延時間の間の位置および姿勢の変化量を予測する。位置・姿勢予測部206は、HMD100を装着したユーザの頭部の並進速度や角速度に遅延時間を乗じることで位置および姿勢の変化量を求めることができる。位置・姿勢予測部206は、現在の位置・姿勢情報L1に遅延時間の間の位置および姿勢の変化量を加算することにより遅延時間の経過後の予測位置・姿勢情報L2を生成する。
レンダリング部207は、描画コマンドに応答して、データ記憶部210から画像の生成に必要な画像データを読み出し、仮想空間のオブジェクトをレンダリングして画像を生成する。例えば、レンダリング部207は、視点・視線設定部202によって設定されたユーザの視点位置および視線方向にしたがって、HMD100を装着したユーザの視点位置から視線方向に見える仮想空間のオブジェクトをレンダリングすることにより画像を生成する。ここで、画像データは、事前に作成された動画または静止画コンテンツであってもよく、レンダリングされたコンピュータグラフィックスであってもよい。レンダリング部207は、レンダリング画像のフレームデータを後述のフレームIDに紐づける。
画像処理部208は、レンダリング画像に必要に応じた画像処理を施すことにより、HMD画像を生成し、HDMI送受信部209に与える。画像処理部208は、ポストプロセス部208aと、リプロジェクション部208bと、歪み処理部208cとを含む。画像処理部208は、HMD画像のフレームデータを後述のフレームIDに紐づける。
ポストプロセス部208aは、レンダリング部207から供給された画像に対して、被写界深度調整、トーンマッピング、アンチエイリアシングなどのポストプロセスを施し、CG画像が自然で滑らかに見えるように後処理を施す。
リプロジェクション部208bは、位置・姿勢予測部206から予測位置・姿勢情報L2を受け取り、ポストプロセスが施された画像に対してリプロジェクション処理を施す。これにより、リプロジェクション部208bは、ポストプロセスが施された画像を遅延時間に応じた視点位置・視線方向から見える画像に変換する。
歪み処理部208cは、リプロジェクション処理が施された画像に対してHMD100の光学系で生じる歪みに合わせて画像を変形(distortion)させて歪ませる処理を施すことにより、HMD画像を生成する。
HDMI送受信部209は、画像処理部208からHMD画像を受け取る。HDMI送受信部209は、HDMIにしたがってHMD画像をHMD100に伝送する。
データ記憶部210は、画像の生成に必要なデータや各種処理を実行するための各種プログラムを格納する。データ記憶部210は、後述する第1及び第2タイムスタンプをフレームIDに紐づけて記憶する。データ記憶部210は、後述する描画時間及び表示処理時間を記憶する。
ここで、HMD100の姿勢を検知し、次の描画範囲を確定し、CPUが描画コマンドを発行し、GPU(Graphics Processing Unit)がレンダリングを実行し、描画された画像がHMD100に出力されるまでには時間がかかる。描画がたとえば60fps(フレーム/秒)のフレームレートで行われているとすると、CPUが十分高速であったとしても、HMD100の回転を検知してから画像を出力するまでに1フレーム分の遅れが生じる。これはフレームレート60fpsのもとでは、16.67ミリ秒ほどであり、人間がずれを感知するには十分な時間である。さらに、画像生成装置200で描画された画像をデータ伝送路300でHMD100に伝送する際にもレイテンシが生じる。
そこで、生成された画像に対してリプロジェクション処理が行われる。リプロジェクション処理において、レンダリングした画像を遅延時間経過後に想定されるHMD100の位置と姿勢に合わせて補正することで、人間がずれを感知しにくいようにしている。
従来、この遅延時間は、ゲームなどのコンテンツの制作者側によって、そのコンテンツに合わせて個別に設定されている。一方で、HMD100を用いて画像を提供するために、性能の異なる様々な画像生成システムが開発されている。このような異なる性能の画像生成システム間では、遅延時間はHMD100及び画像生成装置200によって異なる。例えば、画像生成に関する処理の開始から画像処理部によるレンダリング画像に対する画像処理が開始されるまでの描画時間は、HMD100及び画像生成装置200毎に異なる。また、例えば、画像生成装置200において生成されたHMD画像がHMD100に表示されるまでの表示処理時間は、HMD100及び画像生成装置200の性能に依存して異なる。そのため、設定された遅延時間が特定の画像生成システムにおいて適切ではない場合がある。その結果、画像生成時に前提としたユーザの姿勢と、HMD画像をHMD100に表示した時点でのユーザの姿勢との間でずれが発生し、ユーザはVR酔いをしてしまう場合があった。
本実施形態では、画像生成装置200において画像生成に関する処理の開始からHMD画像がHMD100に表示されるまでの遅延時間が予測される。ここでの画像生成に関する処理とは、描画コマンドの生成処理、レンダリング画像の生成処理及びHMD画像の生成処理(レンダリング画像に対する画像処理)を含む。本実施形態では、画像生成システム毎に予測された遅延時間を用いてリプロジェクション処理が実行される。したがって、画像生成システムの性能に起因した、画像生成時に前提としたユーザの姿勢とHMD画像をHMD100に表示した時点でのユーザの姿勢との間のずれを抑制できる。以下、これについて詳細に説明する。
図4を用いて、画像生成に関する処理の開始からHMD画像がHMD100に表示されるまでの流れを説明する。図4中、同期タイミングVsyncはHMD100の表示パネルの垂直同期タイミングを示し、処理タイミングV’は画像生成に関する処理のスレッドが立ち上がるタイミングを示す。
処理タイミングV’になると、タイミングt1で、CPUによってフレームID1を引数にbeginFrame()を宣言するAPIがコールされ、描画コマンド供給部203が描画コマンドの生成処理を開始する。このとき、描画コマンド供給部203は、描画コマンドのフレームデータにフレームID1を紐づける。
その後、タイミングt2で、CPUによってフレームID1に紐づいたフレームデータのタイムスタンプを返すAPIがコールされる。このとき、時間予測部205は、データ記憶部210に蓄積された過去の描画時間及び表示処理時間と同期タイミングVsyncとに基づいて、遅延時間を予測する。例えば、時間予測部205は、過去の描画時間及び表示処理時間を足し合わせた時間を遅延時間として算出する。時間予測部205は、予測した遅延時間を位置・姿勢予測部206に供給する。
ここでの描画時間とは、画像生成に関する処理の開始から画像処理部208によるレンダリング画像に対する画像処理が開始されるまでの時間である。ここでの過去の描画時間は、データ記憶部210に蓄積された描画時間のうちの任意のいくつかの描画時間の平均値である。このように過去の描画時間として上記平均値を採用することにより、過去の描画時間を予測時間により細かい値まで反映させることができる。なお、初回起動時のような描画時間がデータ記憶部210に蓄積されていない状態では、時間予測部205は、例えば描画時間を0として遅延時間を予測し、それ以降は蓄積された描画時間を用いて遅延時間を予測する。
ここでの表示処理時間は、画像生成装置200において生成されたHMD画像がHMD100に表示されるまでの時間である。図4に示すように、この表示処理時間は、HMD画像の生成処理の開始時から次の同期タイミングVsyncまでの第1処理時間と、この同期タイミングVsyncからHMD画像がHMD100に表示されるまでの第2処理時間と、を含む。
第1処理時間は、例えばゲームなどのコンテンツの制作者側によって事前に設定された値としてデータ記憶部210に記憶される。第1処理時間は、コンテンツ毎に適した値に設定される。
第2処理時間は、画像生成システム1に固有の値として事前にデータ記憶部210に記憶されている。第2処理時間は、画像生成システム1において事前にその評価を行うことで得られる。本実施形態では、異なる複数の画像生成システム1全体について評価することによって得られた第2処理時間の理論値が用いられる。これに限定されず、1つの画像生成システム1毎にキャリブレーションされた第2処理時間が用いられてもよい。
タイミングt3で描画コマンドの生成処理が完了すると、描画コマンド供給部203は、フレームID1に紐づけられた描画コマンドのフレームデータをレンダリング部207に供給する。タイミングt3後の次の処理タイミングV’になると、位置・姿勢取得部201によって位置・姿勢情報L1が取得され、位置・姿勢情報L1に基づいて視点・視線設定部202によって視点位置及び視点方向が設定される。
レンダリング部207は、設定された視点位置及び視点方向に基づいて、レンダリング処理を開始する。このとき、レンダリング部207は、レンダリング画像のフレームデータに、フレームID1を紐づける。また、位置・姿勢予測部206は、予測した遅延時間及び位置・姿勢情報L1に基づいて予測位置・姿勢情報L2を生成する。
タイミングt4でレンダリング処理が完了すると、レンダリング部207は、フレームID1に紐づけられたレンダリング画像のフレームデータを画像処理部208に供給する。また、位置・姿勢予測部206は、予測位置・姿勢情報L2を画像処理部208に供給する。
タイミングt4後の次の処理タイミングV’のタイミングt5になると、画像処理部208は、レンダリング画像について、ポストプロセス、リプロジェクション処理、歪み処理等を施すためのHMD画像の生成処理(レンダリング画像に対する画像処理)を開始する。特に、リプロジェクション部208bは、予測位置・姿勢情報L2に基づいて、リプロジェクション処理を施す。このとき、画像処理部208は、HMD画像のフレームデータにフレームID1を紐づける。
タイミングt6でHMD画像の生成処理が完了すると、HDMI送受信部209は、HDMIにしたがってHMD画像をHMD100に伝送する。これにより、タイミングt7でHMD100においてHMD画像が表示されることになる。なお、タイミングt7をタイミングt5の後の同期タイミングVsyncとその次の同期タイミングVsyncとの間の中間のタイミングとしたのは、HMD100でのHMD画像の表示がある同期タイミングVsyncから部分的に完了していき、その次の同期タイミングVsyncで全て完了することを考慮したためである。
タイミングt7でHMD画像が表示されると、時間蓄積部204は、描画コマンドのフレームデータに紐づけられたフレームID1に基づいて、描画コマンドの生成開始時の第1タイムスタンプ(beginFrame()のタイムスタンプ)をデータ記憶部210に蓄積する。時間蓄積部204は、HMD画像に紐づけられたフレームID1に基づいて、画像処理部208による画像処理の開始時の第2タイムスタンプをデータ記憶部210に蓄積する。
時間蓄積部204は、第1及び第2タイムスタンプに基づいて、描画コマンドの生成処理の開始時からHMD画像の生成処理の完了時までの描画時間を算出する。時間蓄積部204は、算出した描画時間をデータ記憶部210に蓄積する。これらの蓄積された描画時間は、以降の画像生成に関する処理において使用される。
タイミングt3での描画コマンドの生成処理の完了時に戻ると、t3後の次に処理タイミングV’において、描画コマンド供給部203は、フレームID2に紐づけて描画コマンドを生成する。このとき、フレームID1は、レンダリング処理においてレンダリング画像のフレームに紐づけられて使用されている。描画コマンド供給部203は、フレームIDが少なくともバッファ分だけコンフリクトしないように、描画コマンドの生成処理において、他の画像生成に関する処理におけるレンダリング処理に使用されているフレームID1とは異なるフレームID2を使用する。
図5を用いて、本実施形態の画像生成装置における画像生成に関する処理S100を説明する。
ステップS101で、描画コマンド供給部203は、描画コマンドの生成処理を開始する。このとき、描画コマンド供給部203は、描画コマンドのフレームデータにフレームID1を紐づけ、そのフレームID1をデータ記憶部210に記憶させる。描画コマンド供給部203は、描画コマンドの生成を開始すると、予測指示を時間予測部205に供給する。
ステップS102で、時間予測部205は、データ記憶部210から読み出した過去の描画時間及び表示処理時間と同期タイミングVsyncとに基づいて、遅延時間を予測する。時間予測部205は、予測した遅延時間を位置・姿勢予測部206に供給する。
描画コマンドのフレームデータの生成が完了すると、ステップS103で、描画コマンド供給部203は、フレームID1に紐づけられた描画コマンドのフレームデータをレンダリング部207に供給する。
ステップS104で、位置・姿勢取得部201は、位置・姿勢情報L1を取得する。位置・姿勢取得部201は、取得した位置・姿勢情報L1を視点・視線設定部202及び位置・姿勢予測部206に供給する。
ステップS105で、視点・視線設定部202は、位置・姿勢情報L1に基づいて視点位置及び視点方向を設定する。視点・視線設定部202は、設定された視点位置及び視点方向を示す視点情報をレンダリング部207に供給する。
ステップS106で、レンダリング部207は、設定された視点位置及び視点方向に基づいて、レンダリング処理を実行する。このとき、レンダリング部207は、レンダリング画像のフレームデータにフレームID1を紐づける。レンダリング部207は、フレームID1に紐づけられたレンダリング画像のフレームデータを画像処理部208のポストプロセス部208aに供給する。また、位置・姿勢予測部206は、予測した遅延時間及び位置・姿勢情報L1に基づいて予測位置・姿勢情報L2を生成して画像処理部208のリプロジェクション部208bに供給する。
ステップS107で、画像処理部208のポストプロセス部208aは、レンダリング画像について、ポストプロセスを実行する。画像処理部208のポストプロセス部208aは、ポストプロセスを施した画像をリプロジェクション部208bに供給する。
ステップS108で、リプロジェクション部208bは、予測位置・姿勢情報L2に基づいて、リプロジェクション処理を実行する。予測位置・姿勢情報L2は遅延時間に基づいて生成されるため、このリプロジェクション処理が施された画像は遅延時間を反映することとなる。リプロジェクション部208bは、リプロジェクション処理を施した画像を歪み処理部208cに供給する。
ステップS109で、歪み処理部208cは、リプロジェクション処理を施した画像に歪み処理を実行する。上記ステップS107~S109の画像処理により、HMD画像が生成される。HMD画像には、フレームID1が紐づけられる。歪み処理部208cは、フレームID1に紐づけられたHMD画像をHDMI送受信部209に供給する。
ステップS110で、HDMI送受信部209は、HDMIにしたがってHMD画像をHMD100に伝送する。これにより、HMD100においてHMD画像が表示されることになる。
ステップS111で、時間蓄積部204は、各フレームデータに紐づけられたフレームID1に基づいて、第1及び第2タイムスタンプをデータ記憶部210に蓄積する。また、時間蓄積部204は、第1及び第2タイムスタンプの差分に基づいて描画時間を算出する。時間蓄積部204は、算出した描画時間をデータ記憶部210に蓄積する。
ステップS111の後、画像生成に関する処理S100は終了する。
以下、本実施形態の作用及び効果について説明する。
本実施形態では、画像生成システム1の性能に応じてより適切な遅延時間を用いてリプロジェクション処理が実行される。本構成によると、画像生成時と画像表示時のユーザの姿勢のずれを抑制できる。その結果、ユーザのVR酔いを抑制することが可能となる。
本実施形態では、時間蓄積部204は描画時間をデータ記憶部210に蓄積し、時間予測部205はその蓄積された描画時間に基づいて遅延時間を予測する。ここで、上述したように、異なる性能の画像生成システム間ではそれぞれ描画時間及び表示処理時間が異なる。本実施形態によると、その画像生成システム1の描画時間を蓄積し、またその画像生成システム1についての表示処理時間をデータ記憶部210に予め記憶しておき、これらを遅延時間の予測に利用することにより、より正確に遅延時間を予測することが可能となる。
本実施形態では、描画コマンド供給部203、レンダリング部207及び画像処理部208は各処理におけるフレームデータをフレームIDに紐づけて供給する。時間蓄積部204は、フレームIDにそれぞれ紐づけられた各フレームデータにおける第1~第3タイムスタンプをデータ記憶部210に蓄積する。ここで、例えば、図4において、フレームID2に対応する画像生成に関する処理がフレームID1に対応する画像生成に関する処理よりも前に完了する場合がある。このとき、各処理におけるフレームデータにフレームIDが紐づけられていない場合、完了した処理がどの画像生成に関する処理に対応するのかを把握できない。したがって、画像生成に関する処理における各フレームデータに同一のフレームIDを紐づけることにより、その画像生成に関する処理が完了するタイミングを明確に把握することが可能となる。
(変形例)
以下、実施形態の変形例について説明する。
本実施形態では、描画時間及び表示処理時間に基づいて遅延時間が予測されたが、これに限定されず、他の手法により遅延時間が予測されてもよい。例えば、時間予測部205は、描画時間に基づいてHMD100での表示に適した同期タイミングVsyncを求め、画像生成に関する処理の開始から求めた同期タイミングVsyncまでの時間を算出する。時間予測部205は、この算出した時間と第2処理時間を足し合わせた時間を遅延時間としてもよい。
本実施形態では、過去の描画時間はデータ記憶部210に蓄積された描画時間のうちの任意のいくつかの描画時間の平均値としたが、これに限定されない。例えば、過去の描画時間は、下記のように算出されてもよい。すなわち、時間蓄積部204は、同期タイミングVsync毎にカウント値を増分(例えばカウント値を1増分)するVsyncカウンタを備える。時間蓄積部204は、beginFrame(frameId)をコールしたタイミングで、Vsyncカウンタのカウント値をチェックする。時間蓄積部204は、beginFrame(frameId)で使用されたフレームIDと同一のフレームIDに関するHMD画像の生成処理が開始するタイミングで、再びVsyncカウンタのカウント値をチェックする。時間蓄積部204は、これらのカウント値の差分に基づいて画像生成に関する処理の開始からHMD画像の生成処理の開始までのカウント値を算出し、データ記憶部210に蓄積する。時間蓄積部204は、データ記憶部210に蓄積された過去のいくつかの描画時間において、そのカウント値の多数決を取る。時間蓄積部204は、多数決の結果として得られたカウント値に基づいて描画時間を算出し、データ記憶部210に蓄積する。具体的には、多数決の結果として得られたカウント値に同期タイミングVsyncの周期 (例えば、8.33ms(120Hz)、11.11ms(90Hz)など)を掛け合わせることにより描画時間を算出する。時間予測部205は、この描画時間を用いて遅延時間を予測する。本構成によると、不意に描画時間が延びてしまった場合に、予測時間においてその影響を受けにくくすることができる。また、過去の描画時間は、例えば、データ記憶部210に蓄積した描画時間の直近の値や中央値等であってもよい。
本実施形態では、画像生成に関する処理における各フレームデータにフレームIDが紐づけられたが、これに限定されず、各フレームデータにフレームIDが紐づけられなくてもよい。
本実施形態では、レンダリング画像に対して、予測位置・姿勢情報に基づいてリプロジェクション処理が実行されたが、これに限定されない。例えば、予測位置・姿勢情報に基づいて画像をレンダリングすることでリプロジェクション処理が実行されてもよい。
本実施形態では、HDMIにしたがってHMD画像が送信されたが、これに限定されず、無線通信によってHMD画像が送信されてもよい。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。そのような変形例を説明する。
100 ヘッドマウントディスプレイ、200 画像生成装置、201 位置・姿勢取得部、202 視点・視線設定部、203 描画コマンド供給部、204 時間蓄積部208、205 時間予測部、206 位置・姿勢予測部、207 レンダリング部、208 画像処理部、208a ポストプロセス部、208b リプロジェクション部、208c 歪み処理部、209 HDMI送受信部、210 データ記憶部。

Claims (9)

  1. 画像生成に関する処理の開始からHMD画像がヘッドマウントディスプレイに表示されるまでの遅延時間を予測する時間予測部と、
    前記予測した遅延時間に基づいて、リプロジェクション処理を実行することにより、前記HMD画像を生成する画像処理部と、
    を備えることを特徴とする画像生成装置。
  2. 現在の前記ヘッドマウントディスプレイの姿勢を示す姿勢情報を取得する姿勢情報取得部と、
    前記姿勢情報に基づいて画像をレンダリングして前記画像処理部に供給するレンダリング部と、
    前記画像生成に関する処理の開始から、前記画像処理部によって前記レンダリングされた画像に対する画像処理が開始されるまでの描画時間をデータ記憶部に蓄積する時間蓄積部と、をさらに備え、
    前記データ記憶部は、前記HMD画像が生成されてから前記ヘッドマウントディスプレイに表示されるまでの表示処理時間を予め記憶しており、
    前記時間予測部は、前記蓄積された描画時間及び前記表示処理時間に基づいて前記遅延時間を予測する、請求項1に記載の画像生成装置。
  3. 前記時間予測部は、前記データ記憶部に蓄積されたいくつかの前記描画時間の平均値に基づいて前記遅延時間を予測する、請求項2に記載の画像生成装置。
  4. 前記時間蓄積部は、前記ヘッドマウントディスプレイの垂直同期タイミング毎にカウント値を増分するカウンタを備え、
    前記時間蓄積部は、前記画像生成に関する処理の開始から前記レンダリングされた画像に対する画像処理の開始までの前記カウント値に基づいて算出された前記描画時間を前記データ記憶部に蓄積する、請求項2に記載の画像生成装置。
  5. 前記姿勢情報及び前記予測した遅延時間に基づいて、前記現在から前記予測した遅延時間の経過後の前記ヘッドマウントディスプレイの姿勢の予測結果を示す予測姿勢情報を生成する姿勢予測部をさらに備え、
    前記画像処理部は、前記予測姿勢情報に基づいて、前記レンダリングされた画像にリプロジェクション処理を施すことにより、前記HMD画像を生成する、請求項2から4のいずれか1項に記載の画像生成装置。
  6. 前記HMD画像の生成を開始させるための描画コマンドのフレームデータにフレームIDを紐づけて前記レンダリング部に供給する描画コマンド供給部を備え、
    前記レンダリング部は、前記描画コマンドに応答してレンダリング処理を開始し、前記レンダリングされた画像のフレームデータに前記フレームIDを紐づけて前記画像処理部に供給し、
    前記画像処理部は、前記HMD画像のフレームデータに前記フレームIDを紐づけ、
    前記時間蓄積部は、前記フレームIDにそれぞれ紐づけられた、前記描画コマンドのフレームデータにおける前記描画コマンドの生成開始時のタイムスタンプと、前記画像処理部による前記画像処理の開始時のタイムスタンプとに基づいて算出された前記描画時間を前記データ記憶部に蓄積する、請求項5に記載の画像生成装置。
  7. 前記描画コマンド供給部は、前記画像に関する処理とは別の後続の画像に関する処理において、前記画像に関する処理が実行されている前記フレームデータに紐づけられたフレームIDとは異なるフレームIDを前記描画コマンドに紐づける、請求項6に記載の画像生成装置。
  8. 画像生成に関する処理の開始からHMD画像がヘッドマウントディスプレイに表示されるまでの遅延時間を予測するステップと、
    前記予測した遅延時間に基づいて、リプロジェクション処理を実行することにより、前記HMD画像を生成するステップと、
    を含むことを特徴とする画像生成方法。
  9. プロセッサを、
    画像生成に関する処理の開始からHMD画像がヘッドマウントディスプレイに表示されるまでの遅延時間を予測する時間予測部と、
    前記予測した遅延時間に基づいて、リプロジェクション処理を実行することにより、前記HMD画像を生成する画像処理部と、
    として機能させるための画像生成プログラム。
JP2021063122A 2021-04-01 2021-04-01 画像生成装置、画像生成方法および画像表示プログラム Pending JP2022158328A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021063122A JP2022158328A (ja) 2021-04-01 2021-04-01 画像生成装置、画像生成方法および画像表示プログラム
US17/685,641 US20220317765A1 (en) 2021-04-01 2022-03-03 Image generation apparatus, image generation method, and image displaying program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021063122A JP2022158328A (ja) 2021-04-01 2021-04-01 画像生成装置、画像生成方法および画像表示プログラム

Publications (1)

Publication Number Publication Date
JP2022158328A true JP2022158328A (ja) 2022-10-17

Family

ID=83449054

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021063122A Pending JP2022158328A (ja) 2021-04-01 2021-04-01 画像生成装置、画像生成方法および画像表示プログラム

Country Status (2)

Country Link
US (1) US20220317765A1 (ja)
JP (1) JP2022158328A (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10852815B2 (en) * 2019-04-30 2020-12-01 Valve Corporation Display system with dynamic light output adjustment for maintaining constant brightness

Also Published As

Publication number Publication date
US20220317765A1 (en) 2022-10-06

Similar Documents

Publication Publication Date Title
US11119319B2 (en) Rendering device, head-mounted display, image transmission method, and image correction method
JP5967343B2 (ja) アクティブトラッキングに基づいて表示を最適化するための表示システム及び方法
JP6845111B2 (ja) 情報処理装置および画像表示方法
WO2017221784A1 (ja) 画像生成装置、画像生成システム、および画像生成方法
US11003408B2 (en) Image generating apparatus and image generating method
WO2022099787A1 (zh) 一种头戴显示设备及其数据获取方法、装置和主机
WO2019098198A1 (ja) 画像生成装置、ヘッドマウントディスプレイ、画像生成システム、画像生成方法、およびプログラム
US20240048677A1 (en) Information processing system, information processing method, and computer program
US11100716B2 (en) Image generating apparatus and image generation method for augmented reality
JP2022158328A (ja) 画像生成装置、画像生成方法および画像表示プログラム
US12022231B2 (en) Video recording and playback systems and methods
JP7047085B2 (ja) 画像生成装置、画像生成方法、およびプログラム
US20220184492A1 (en) Timing compensation and correlation of input with frames in a video game
WO2022190572A1 (ja) 画像生成装置、プログラム、画像生成方法および画像表示システム
US20240236290A9 (en) Image generation device, program, image generation method, and image displaying system
WO2023234097A1 (ja) ヘッドマウントディスプレイおよびコンテンツ表示システム
TW202137756A (zh) 動態調整鏡頭配置的方法、頭戴式顯示器及電腦裝置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240129