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

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

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

特開2024-122301情報処理装置、情報処理方法、及びプログラム
<>
  • 特開-情報処理装置、情報処理方法、及びプログラム 図1
  • 特開-情報処理装置、情報処理方法、及びプログラム 図2
  • 特開-情報処理装置、情報処理方法、及びプログラム 図3
  • 特開-情報処理装置、情報処理方法、及びプログラム 図4
  • 特開-情報処理装置、情報処理方法、及びプログラム 図5
  • 特開-情報処理装置、情報処理方法、及びプログラム 図6
  • 特開-情報処理装置、情報処理方法、及びプログラム 図7
  • 特開-情報処理装置、情報処理方法、及びプログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024122301
(43)【公開日】2024-09-09
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
   G06T 15/00 20110101AFI20240902BHJP
   A63F 13/50 20140101ALI20240902BHJP
   A63F 13/95 20140101ALI20240902BHJP
【FI】
G06T15/00 501
A63F13/50
A63F13/95 Z
【審査請求】有
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2023029769
(22)【出願日】2023-02-28
(71)【出願人】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100122275
【弁理士】
【氏名又は名称】竹居 信利
(72)【発明者】
【氏名】青木 幸代
【テーマコード(参考)】
5B080
【Fターム(参考)】
5B080AA13
5B080CA01
5B080DA06
5B080GA00
(57)【要約】
【課題】操作から描画までの遅延を短縮できる情報処理装置、情報処理方法、及びプログラムを提供する。
【解決手段】プロセッサを備え、画像をフレームごとに描画してバッファし、バッファしているフレームを所定のタイミングごとに出力する情報処理装置であって、このプロセッサが、指示されたタイミングまでフレームの描画処理を待機する待機処理を実行し、当該待機処理の後にフレームの描画処理の実行を開始制御する。
【選択図】図1
【特許請求の範囲】
【請求項1】
プロセッサを備え、画像をフレームごとに描画してバッファし、バッファしているフレームを所定のタイミングごとに出力する情報処理装置であって、
前記プロセッサが、
指示されたタイミングまでフレームの描画処理を待機する待機処理を実行し、
前記待機処理の後にフレームの描画処理の実行を開始制御する情報処理装置。
【請求項2】
請求項1に記載の情報処理装置であって、
この情報処理装置は、さらにグラフィックプロセッサを備えた周辺装置に接続され、
前記プロセッサによるフレームの描画処理は、前記グラフィックプロセッサに対する描画指示の生成処理を含み、
前記周辺装置のグラフィックプロセッサは、当該描画指示に従って、フレームの画像を描画してバッファし、当該バッファしている当該フレームを所定のタイミングで出力する情報処理装置。
【請求項3】
請求項2に記載の情報処理装置であって、
前記プロセッサが待機するタイミングは、生成した描画指示に従って描画されたフレームを出力するタイミングを基準として決定される情報処理装置。
【請求項4】
請求項2に記載の情報処理装置であって、
前記プロセッサが待機するタイミングは、生成した描画指示に従って描画されたフレームを対象フレームとして当該対象フレームを出力するタイミングを基準として、当該対象フレームより、指定された枚数だけ前に出力されるフレームが出力されるタイミングを利用して決定される情報処理装置。
【請求項5】
請求項3に記載の情報処理装置であって、
前記タイミングの指示は、前記基準としたタイミングで出力されるフレームから、当該フレームに先行して出力される他のフレームまでのフレーム数n(nは1以上の整数)、当該他のフレームの出力されるタイミングからの経過時間tとにより行われ、前記プロセッサは、前記待機処理において、指示されたタイミングとして、基準としたタイミングで出力されるフレームの描画処理を、当該フレームよりnフレームだけ前の他のフレームの出力タイミングから時刻tだけ経過するまで待機する情報処理装置。
【請求項6】
請求項5に記載の情報処理装置であって、
前記フレーム数nは2以上の整数であり、
前記プロセッサは、前記描画処理の待機処理中に、前記基準としたタイミングで出力されるフレームから所定のL(1≦L<n)フレームだけ前の他のフレームの出力タイミングが到来したときには、前記フレームよりnフレームだけ前の他のフレームの出力タイミングから時刻tだけ経過する以前であっても待機処理を中断して、描画処理の実行を開始制御する情報処理装置。
【請求項7】
請求項1に記載の情報処理装置であって、
前記プロセッサは、前記フレームの描画処理を待機する待機処理の開始から予め定めたタイムアウトの時間が経過したときには、その時点で待機処理を中断して、描画処理の実行を開始制御する情報処理装置。
【請求項8】
請求項2に記載の情報処理装置であって、
前記プロセッサは、所定の問い合わせタイミングごとに、前記周辺装置のグラフィックプロセッサに対して、処理の状況を問い合わせる情報処理装置。
【請求項9】
請求項1から8のいずれか一項に記載の情報処理装置であって、
前記プロセッサは、前記描画処理の待機処理中に、ユーザからの入力を受け入れ、
前記描画処理においては、当該待機処理中に受け入れた入力を用いた描画処理を行わせる情報処理装置。
【請求項10】
プロセッサと、グラフィックプロセッサとを備え、
前記プロセッサが、
指示されたタイミングまでフレームの描画処理を待機する待機処理を実行し、
前記待機処理の後にフレームの描画処理の実行を開始制御して前記グラフィックプロセッサに対する描画指示を生成させ、
前記グラフィックプロセッサは、
当該プロセッサが生成した描画指示に従って、フレームの画像を描画してバッファし、当該バッファしている当該フレームを所定のタイミングで出力する情報処理装置。
【請求項11】
プロセッサを備え、画像をフレームごとに描画してバッファし、バッファしているフレームを所定のタイミングごとに出力する情報処理装置を用い、
前記プロセッサによって
指示されたタイミングまでフレームの描画処理を待機する待機処理を実行し、
前記待機処理の後にフレームの描画処理の実行を開始制御する情報処理方法。
【請求項12】
画像をフレームごとに描画してバッファし、バッファしているフレームを所定のタイミングごとに出力する情報処理装置を、
指示されたタイミングまでフレームの描画処理を待機する待機処理を実行する手段と、
前記待機処理の後にフレームの描画処理の実行を開始制御する手段と、
として機能させるプログラム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
近年ではCPU等のプロセッサや、GPU(Graphics Processing Unit)の処理速度が向上しているため、リアルタイムにアニメーションを描画することが可能になっている。
【0003】
例えばゲーム等のアプリケーションにおいては、ユーザから入力された操作により、仮想的なゲーム空間内でのユーザキャラクタの視点を変更し、当該変更した視点から見たゲーム空間の画像を描画して出力することを、繰り返し行うことも可能である。
【0004】
またこのような場合には、表示出力する画面に相当するフレームを、出力する前に描画しておき(バッファ)、描画完了後の所定のタイミングで表示出力することが一般的となっている。
【発明の概要】
【発明が解決しようとする課題】
【0005】
こうした状況下では、図8に例示するように、将来表示する、あるフレームの描画を開始するAの時点までのユーザ入力がCPUによって受け入れられ、ここまでのユーザ入力に基づいて将来表示するフレームの描画処理が行われることとなる。このCPUの描画処理では、GPUに対して描画の指示を行い、実際のフレームの画像の描画はGPUによって行われる。GPUでは、将来の所定のタイミングB(フリップタイミング)までこのフレームを保持しておき(バッファ)、当該所定のタイミングBでディスプレイ装置などへの出力処理(画像出力)が行われることとなる。
【0006】
従ってユーザにとっては、タイミングAで行った操作に対応する表示が、タイミングBまで時間Tだけ遅延して行われることとなる。このような遅延は、例えばゲームアプリケーションなどのリアルタイムの処理を要求するアプリケーションでは好ましくない。
【0007】
本発明は上記実情に鑑みて為されたもので、このような操作から描画までの遅延を短縮できる情報処理装置、情報処理方法、及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【0008】
上記従来例の問題点を解決する本発明の一態様は、プロセッサを備え、画像をフレームごとに描画してバッファし、バッファしているフレームを所定のタイミングごとに出力する情報処理装置であって、前記プロセッサが、指示されたタイミングまでフレームの描画処理を待機する待機処理を実行し、前記待機処理の後にフレームの描画処理の実行を開始制御することとしたものである。
【発明の効果】
【0009】
本発明によると、描画処理を待機している間にユーザ入力を受け入れることで、操作から描画までの遅延を短縮できる。
【図面の簡単な説明】
【0010】
図1】本発明の実施の形態に係る情報処理システムの構成例を表すブロック図である。
図2】本発明の実施の形態に係る情報処理装置の制御部の例を表す機能ブロック図である。
図3】本発明の実施の形態に係る情報処理システムの動作例を表す説明図である。
図4】本発明の実施の形態に係る情報処理システムのもう一つの動作例を表す説明図である。
図5】本発明の実施の形態に係る情報処理システムのさらにもう一つの動作例を表す説明図である。
図6】本発明の実施の形態に係る情報処理システムの別の動作例を表す説明図である。
図7】本発明の実施の形態に係る情報処理システムのまた別の動作例を表す説明図である。
図8】従来の描画処理のタイミングの例を表す説明図である。
【発明を実施するための形態】
【0011】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理装置1は、図1に例示するように、プロセッサとしての制御部11と、記憶部12と、操作制御部13と、表示制御部14とを含み、さらに好適には通信部15を含む。
【0012】
またこの情報処理装置1の表示制御部14には、グラフィックプロセッサであるGPU21を備えた周辺装置2が接続されてもよい。なお、情報処理装置1と周辺装置2とは一体的に、情報処理システムとして構成されてもよい。
【0013】
情報処理装置1にはさらに、ゲームコントローラCや、キーボード、マウス、その他の操作装置3が有線または無線にて接続される。また周辺装置2にはディスプレイ装置Dが接続される。
【0014】
制御部11は、CPU等のプログラム制御デバイスであり、本発明のプロセッサを実現する。この制御部11は、記憶部12に格納されたプログラムに従って動作する。本実施の形態のある例では、この制御部11は、フレームの描画処理を行うにあたり、指示されたタイミングまでフレームの描画処理を待機する待機処理を実行し、当該待機処理の後にフレームの描画処理の実行を開始制御する。この制御部11の動作については後に詳しく述べる。
【0015】
記憶部12は、メモリデバイスや、ディスクデバイス等であり、制御部11によって実行されるプログラムを保持する。この記憶部12に保持されるプログラムは、コンピュータ可読かつ非一時的な記録媒体に格納されて提供されたものであってもよい。本実施の形態の記憶部12は、また、制御部11のワークメモリとしても動作する。
【0016】
操作制御部13は、ゲームコントローラ等の操作装置3から、ユーザの操作の内容を表す情報を受け入れる。操作制御部13は、当該受け入れた操作の内容を表す情報を、制御部11に出力する。
【0017】
表示制御部14は、フレームの描画処理によって生成された描画指示等の情報を、制御部11から受け入れて、周辺装置2に対して当該描画指示等の情報を出力する。
【0018】
周辺装置2のGPU21は、制御部11から入力されるフレームの描画の指示を受け入れてコマンドバッファに保持し、描画が可能となると、当該保持した描画の指示に従い、画像バッファに、フレームの画像を描画する。このGPU21は、また、当該画像バッファに描画したフレームを、所定のタイミング(例えばディスプレイ装置のVSYNCタイミングなど)ごとにディスプレイ装置に対して出力する。本実施の形態の一例では、GPU21は、一対のコマンドバッファと、一対の画像バッファとを有する(いわゆるダブルバッファ)。また、描画されるフレームには、フレームごとに固有の識別情報(フレーム番号)が関連付けられ、制御部11とGPU21とにおいて利用されてもよい。
【0019】
操作装置3の一例は、ゲームコントローラCであり、ユーザの指示操作を受け入れて、当該ユーザの操作の内容を表す情報を、情報処理装置1に対して有線または無線にて出力している。
【0020】
次に、本実施の形態の制御部11の動作例について説明する。本実施の形態の制御部11は、記憶部12に保持されたプログラムを実行することで、図2に例示するように、入力受入部41と、待機処理部42と、処理開始制御部43と、アプリケーション処理部44とを含む機能的構成を実現する。ここでアプリケーション処理部44には、描画処理部441が機能的に含まれる。
【0021】
入力受入部41は、操作制御部13を介して、操作装置3におけるユーザの操作の内容を表す、操作情報を受け入れる。この入力受入部41は、当該受け入れた操作情報を、受け入れた順にバッファして保持し、その順にアプリケーション処理部44に出力する。またこの入力受入部41は、後に説明する待機処理部42が、アプリケーション処理部44による描画処理を待機させている間(待機処理中)においても、ユーザによって行われた操作の内容を表す操作情報を受け入れる(ユーザからの入力の受け入れ)。
【0022】
待機処理部42は、指示されたタイミング(以下、このタイミングを区別のため描画開始タイミングと呼ぶ)まで、アプリケーション処理部44によるフレームの描画処理を待機させる。本実施の形態の一例では、この待機処理部42は、将来表示出力されるフレーム(便宜的に対象フレームと呼ぶ)が表示出力(以下、フリップと呼ぶ)される将来のタイミング(以下、このタイミングを区別のため基準タイミングと呼ぶ)を基準とした所定の方法により、上記描画開始タイミングを決定することとしてよい。ここで対象フレームは、待機処理部42が待機させている描画処理により、アプリケーション処理部44の描画処理部441が生成する描画指示に基づいて将来描画されるフレームとする。
【0023】
具体的に待機処理部42は、この描画処理を実行するアプリケーションから待機処理を終了する条件を指示する情報として、対象フレームFtから先行して出力される他のフレームFrまでのフレーム数n(nは1以上の整数)と、当該他のフレームFrがフリップされるタイミングからの経過時間(以下付加時間と呼ぶ)tとの入力を受け入れる。
【0024】
待機処理部42は、当該条件を指示する情報を受け入れて、指示されたタイミングが到来するまで待機する。すなわち図3に例示するように、アプリケーションが将来表示する対象フレームFtの描画を開始しようとする時点Aにおいて、待機処理部42は、待機処理を終了する条件を指示する情報として、当該対象フレームFtから先行して出力される他のフレームFrまでのフレーム数n(以下、指定フレーム数と呼ぶ。nは1以上の整数)と、当該他のフレームFrがフリップされるタイミングからの経過時間(以下付加時間と呼ぶ)tとの入力を受け入れる。ここでの例ではn=2とし、付加時間t=1ミリ秒とする。
【0025】
制御部11(図3ではCPU)の待機処理部42は、GPU21によるフレームのフリップの状態を監視し、対象フレームFtのフリップのタイミング(将来の時点B)より前にフリップされる他のフレームのうち、対象フレームFtから指定フレーム数n=2だけ前のフレームFrがフリップされるまで待機する。
【0026】
待機処理部42は、当該フレームFrがフリップされると、そのタイミングCから付加時間(ここでの例では1ミリ秒)だけさらに待機する。そして待機処理部42は、当該付加時間が経過した時点C′が到来すると、処理開始制御部43に待機処理の終了を通知する。
【0027】
処理開始制御部43は、アプリケーション処理部44の描画処理部441に対して、待機していた対象フレームFtの描画を開始するよう指示する。これにより、時点C′から描画処理が開始制御される。
【0028】
アプリケーション処理部44は、アプリケーションプログラムの処理を実行するものであり、ここでの例では、ユーザによって行われた操作の内容を表す操作情報に基づいて、フレームの描画処理等を実行するものである。
【0029】
このアプリケーション処理部44が実行するアプリケーションプログラムは、ゲームプログラムや、シミュレータなどどのようなものであってもよい。
【0030】
このアプリケーション処理部44の描画処理部441は、一つ前のフレームの描画処理が終了すると、処理開始制御部43から次のフレームの描画を開始するべき旨の指示を受け入れるまで待機する。そしてこのフレームの描画を開始するべき旨の指示を受け入れると、その時点(ここでの例では図3のC′の時点)までに入力受入部41が受け入れていたユーザによる操作情報を取得し、当該操作情報を利用して描画の処理を実行する。
【0031】
ここでの制御部11による描画の処理は、実際にはGPU21に対する描画指示の生成処理であり、この描画の処理の後、実際のGPU21によるフレームの描画が行われる。
【0032】
周辺装置2のGPU21は、CPUである制御部11から入力される描画指示をコマンドバッファに保持し、表示前または表示中でない画像バッファがあれば(空きバッファがあれば)、コマンドバッファに保持した描画指示に従い、当該空きバッファにフレームの画像を描画する(バッファする)。そして当該バッファしているフレームの画像を、所定のタイミング(例えば次のVSYNCのタイミング)でディスプレイ装置等に出力する(フリップ)。
【0033】
なお、このフリップのタイミングは、情報処理装置1の制御部11から指示されてもよいし、GPU21側で制御されてもよい。
【0034】
[動作]
本実施の形態は、基本的には以上の構成を備えており、次のように動作する。本実施の形態の一例では、情報処理システムの情報処理装置1は、ゲームアプリケーションを実行しており、ユーザの操作に応じて、ゲーム空間の描画を行うこととする。
【0035】
またこの情報処理システムは、GPU21を含む周辺装置2を備えており、このGPUは、一対のコマンドバッファと、一対の描画バッファとを用いて描画とディスプレイ装置への表示とを行う。
【0036】
情報処理装置1は、ゲームアプリケーションの実行中、次のように、フレームの描画と表示とを繰り返し実行する。すなわちこの情報処理装置1は、図3に例示したように、操作制御部13を介して、操作装置3におけるユーザの操作の内容を表す、操作情報を繰り返し受け入れている。
【0037】
また情報処理装置1は、ゲームアプリケーションの処理として、将来表示する対象フレームFtの描画を開始しようとするタイミング(時点A)において、待機処理を終了する条件を指示する情報としての、対象フレームFtから先行して出力される他のフレームFrまでの指定フレーム数n(nは1以上の整数)と、当該他のフレームFrがフリップされるタイミングからの付加時間tとを、描画のタイミングを待機する待機処理に対して指示する。
【0038】
この指示は、図3の例では、指定フレーム数n=2とし、付加時間t=1ミリ秒(1フレームの表示期間、例えばVSYNC期間より短い時間)としている。
【0039】
図3に例示したように、情報処理装置1は、アプリケーションプログラムに対して行われる各種のサービス(API:Application Program Interface)として待機処理を実行し、GPU21によるフレームのフリップの状態を監視して、対象フレームFtのフリップのタイミング(将来の時点B)より前にフリップされる他のフレームのうち、対象フレームFtから指定フレーム数n=2フレームだけ前のフレームFrがフリップされるまで待機する。
【0040】
情報処理装置1は、この待機処理において、当該フレームFrがフリップされると、そのタイミングCから付加時間(ここでの例では1ミリ秒)だけさらに待機する。そして情報処理装置1は、当該付加時間が経過した時点C′が到来すると、アプリケーションプログラムの処理に対して、待機していた対象フレームFtの描画を開始するよう指示する。
【0041】
情報処理装置1は、アプリケーションプログラムの処理に戻り、このタイミングC′までに操作制御部13を介して受け入れている、操作の内容を表す操作情報に基づいて、フレームの描画処理等を実行する。
【0042】
図3の例に示したように、このタイミングC′は、描画先のバッファ内の画像が未だ表示された状態にあるが、CPUにおける描画指示の生成と、GPU21における描画指示のコマンドバッファへのバッファは可能である。
【0043】
そこで情報処理装置1は、このタイミングC′からCPUにおける描画処理(描画指示の生成)を開始する。この処理はアプリケーションプログラムの処理として実行され、本実施の形態のここでの例では、タイミングC′までにユーザから入力されている操作情報を利用して、ゲーム空間内の画像を描画する指示を生成する。例えばゲーム空間内に配されるユーザキャラクタの動きは、このタイミングC′までにユーザから入力されている捜査情報により制御される。
【0044】
情報処理装置1は、生成した描画の指示をGPU21に出力する。GPU21は、情報処理装置1から入力される描画指示をコマンドバッファに保持し、表示前または表示中でない画像バッファが生じたタイミング(対象フレームの直前のフレームがフリップされたタイミング)以降のタイミングで、コマンドバッファに保持した描画指示に従い、空きバッファとなった画像バッファに、フレームの画像を描画する(バッファする)。そして当該バッファしているフレームの画像を、次のVSYNCのタイミングでディスプレイ装置等に出力する(B)。
【0045】
この例によると、図8に示した従来例における時点Aと時点Bとの間の時間Tに比べ、対応する時間T′は短縮されることとなり、時点Bでフリップされる画像には、ユーザが比較的最近操作した内容が反映されることとなる。このように本実施の形態によれば、操作から描画までの遅延を短縮できる。
【0046】
[フレーム描画に比較的長時間を要する場合]
なお、図3の例では、GPU21によるフレームの描画に要する時間が、フレームの画像の表示期間を十分下回る例となっているが、GPU21によるフレームの描画に要する時間が、これより長い場合には、指定フレーム数nを大きくするか、あるいは付加時間tを短くする。そしてGPU21によるフレーム描画のうち、コマンドバッファへのGPU21からの描画指示の取り込みを、描画先となる描画バッファが空きバッファとなる前に行っておく(図4)。
【0047】
この例では、描画指示の取り込み完了から、描画バッファが空きバッファとなるまでの期間はストール(何も行われない状態)となってしまうので、このストール期間ができるだけ短く(可能であれば0に)、かつ、描画バッファへの描画が、当該描画バッファに描画された対象フレームのフリップのタイミングより前に完了するよう、指定フレーム数nと付加時間tとを定めておく。このような指定フレームnと付加時間tとの設定は、例えば実験的に行うことができ、アプリケーションプログラムの開発者は、アプリケーションプログラムの処理において、例えば表示するポリゴンの数などに応じて適応的に設定するよう設計してもよい。
【0048】
[タイムアウト]
また、情報処理装置1の制御部11は、待機処理中に、基準としたタイミングで出力される対象フレームに先行してフリップされるフレームであって、対象フレームよりL(Lは1≦L<nなる整数であり、予め定めておく)だけ前にフリップされるフレームをフリップするタイミングが到来したときには、待機処理を中断して描画処理の実行を開始することとしてもよい。
【0049】
さらに別の例では、情報処理装置1の制御部11は、待機処理において、その待機処理の開始から予め定めたタイムアウトの時間が経過したときには、その時点で待機処理を中断して描画処理の実行を開始することとしてもよい。このようなケースは、フリップのタイミングが一定でなくなる場合などに生じ得る。
【0050】
[待機処理の終了条件]
ここまでの説明において、待機処理の終了の条件は、基準となる対象フレームからの相対的なフレーム数(指定フレーム数)により設定することとしていたが、本実施の形態はこれに限られない。
【0051】
例えばこの待機処理の終了の条件は、フレームの識別情報により定められてもよい。具体的な例として、終了条件は、フレームの識別情報であるフレーム番号(N)と、当該フレーム番号NのフレームFNがフリップされるタイミングからの付加時間tとによって定められてよい。この例では、アプリケーションプログラムの処理を実行する制御部11は、これらフレーム番号(N)と、付加時間tとを、描画のタイミングを待機する待機処理に対して指示する。
【0052】
待機処理を実行する制御部11は、フレーム番号(N)と、付加時間tとを受け入れて待機処理を開始し、GPU21によるフレームのフリップの状態を監視して、フレーム番号Nのフレームのフリップのタイミングまで待機する。
【0053】
情報処理装置1の制御部11は、この待機処理において、当該フレーム番号Nのフレームがフリップされると、そのタイミングから付加時間tだけさらに待機する。そして制御部11は、当該付加時間tが経過した時点が到来すると、アプリケーションプログラムの処理に対して、待機していた対象フレームの描画を開始するよう指示する。
【0054】
情報処理装置1は、アプリケーションプログラムの処理に戻り、この描画の開始が指示されるタイミングまでに操作制御部13を介して受け入れている、操作の内容を表す操作情報に基づいて、フレームの描画処理等を実行する。
【0055】
[GPUへの問い合わせ]
情報処理装置1の制御部11は、周辺装置2のGPU21に対して、所定の問い合わせタイミングごとに処理の状況を問い合わせてもよい。具体的に画像のフリップのタイミングを制御部11が制御しない場合などでは、制御部11は、GPU21に対して直近にフリップしたフレームの識別情報を問い合わせる。
【0056】
この例ではGPU21が、制御部11からの問い合わせに応答して、直近にフリップしたフレームの識別情報を、制御部11に対して出力する。制御部11は、この問い合わせの応答として受け入れた識別情報を参照して、当該識別情報により識別されるフレームが、対象フレームからの相対的な指定フレーム数により特定されるフレームに相当するとき、あるいは、当該識別情報により識別されるフレームが、フレーム番号(N)により指定されたフレームに相当するときに、当該フレームのフリップの時点から付加時間tだけ待って待機処理を終了し、描画処理の実行の開始制御を行う。
【0057】
[CPUとGPUとの並列動作]
また、制御部11による描画処理(描画指示の生成処理)と、GPU21による描画処理(描画指示の蓄積とフレームの実際の描画の処理)とは、並列して行われてもよい。この場合、制御部11の描画処理の終了前にGPU21による描画処理が開始されることとなる(図5)。図5では、対象フレームからの相対的な指定フレーム数n=1の例を示している。このように一つのフレームの表示期間の間に制御部11とGPU21とを並列的に動作させることで、パフォーマンスを低下させることなく、ユーザの操作から対応する画像の表示が行われるまでの期間を短縮できる。
【0058】
この動作は、フレーム番号(N)により待機処理の終了条件を指定する場合も同様である(図6)。図6では、フレーム番号N=2とした例を示している。
【0059】
[トリプルバッファの例]
さらにコマンドバッファや描画バッファの数は2(ダブルバッファ)とは限られず、3(トリプルバッファ)以上の数があってもよい。この場合、本実施の形態の上述の待機処理を行わないと、ダブルバッファの例よりも、ユーザの操作に対応する表示が行われるタイミングの遅延が大きくなる。
【0060】
一方、例えば対象フレームよりn=3だけ前のフレームのフリップから付加時間tだけ後の時点まで待機処理を行うと、図7(a)に例示するように、ユーザの操作に対応する表示が行われるタイミングの遅延T′は比較的短縮される。もっともこの場合、トリプルバッファの効果が低減されることとなる。
【0061】
このような例では、アプリケーションプログラムの処理において、例えばゲームのシーンに応じて、指定フレーム数nあるいはフレーム番号N、並びに付加時間tを適応的に調整することとする。これにより図7(a)の例のように、例えば指定フレーム数nを比較的小さくして、トリプルバッファとしての効果を低減させてもタイミング遅延T′を短縮するか、あるいは図7(b)に例示するように、例えば指定フレーム数nを比較的大きくして(図7(b)ではn=4としている)、タイミング遅延T′を大きくしてでも描画バッファの数を確保する(描画処理にかける時間を長くすることが可能となる)かを制御可能となる。
【0062】
前者は、例えば格闘シーンなどで操作からの表示遅延が問題となる場面で有効であり、後者は風景の描写シーンなど、操作からの表示遅延よりも表示内容の詳細さが問題となる場面で有効となる。
【0063】
[操作の受け入れの処理]
なお、ここまでの説明において、制御部11による操作情報の受け入れの処理は、描画処理と別のスレッドで処理(並列処理)してもよいし、描画処理と同じスレッドで操作情報を処理してもよい。いずれとするかは、アプリケーションプログラムにより選択させてもよいし、実行するハードウェアの条件に基づいて決定してもよい。
【符号の説明】
【0064】
1 情報処理装置、2 周辺装置、3 操作装置、11 制御部、12 記憶部、13 操作制御部、14 表示制御部、15 通信部、21 GPU、41 入力受入部、42 待機処理部、43 処理開始制御部、44 アプリケーション処理部、441 描画処理部。

図1
図2
図3
図4
図5
図6
図7
図8