(57)【要約】【課題】  少ない消費電力で演算負荷の高いフレーム発生しても高品質な画像を生成できる画像生成プログラム、情報記憶媒体及び画像生成システムの提供。【解決手段】 各フレームの画像の描画バッファへの描画終了タイミングを検出し、検出された描画終了タイミングに基づき各フレームが所定のフレーム更新時間内に描画されたかいなか判断し、描画されていないと判断した場合には、前記プロセッサの動作周波数を上げるように設定変更を行い、操作部からの入力データに基づき、設定された動作周波数で前記プロセッサが動作して、仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画するプログラムである。【選択図】      図２
2010160804.tif 000002
【特許請求の範囲】
【請求項１】
動作周波数を動的に変更可能な少なくとも１つ以上のプロセッサを用いて画像生成を行う画像生成プログラムであって、
各フレームの画像の描画バッファへの描画終了タイミングを検出する描画終了タイミング検出部と、
検出された描画終了タイミングに基づき各フレームが所定のフレーム更新時間内に描画されたかいなか判断し、描画されていないと判断した場合には、前記プロセッサの動作周波数を上げるように設定変更を行う動作周波数設定変更処理部と、
操作部からの入力データに基づき、設定された動作周波数で前記プロセッサが動作して、仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する画像生成部と、
してコンピュータを機能させることを特徴とする画像生成プログラム。
【請求項２】
請求項１において、
動作周波数設定変更処理部は、
検出された描画終了タイミングに基づき各フレームが所定のフレーム更新時間内に描画されたかいなか判断し、描画されていると判断した場合には、前記プロセッサの動作周波数を下げるように設定変更を行うことを特徴とするプログラム。
【請求項３】
請求項２において、
動作周波数設定変更処理部は、
各フレームが所定の回数連続して所定のフレーム更新時間内に描画されたかいなかを判断し、判断結果に基づき画像生成部の動作周波数を下げるための設定を行うことを特徴とするプログラム。
【請求項４】
請求項２乃至３のいずれかにおいて、
動作周波数設定変更処理部は、
動作周波数を下げる時の変化率は動作周波数を上げる時の変化率よりも小さくなるように動作周波数の設定を行うことを特徴とするプログラム。
【請求項５】
動作周波数を動的に変更可能な少なくとも１つ以上のプロセッサを用いて画像生成を行う画像生成プログラムであって、
各フレームでの予測処理負荷を演算する予測処理負荷演算処理部と、
前記予測処理負荷に基づき各フレームの画像生成に必要な動作周波数の設定の変更が必要かいなか判断し、必要であると判断した場合には、前記予測処理負荷に基づき前記プロセッサの動作周波数の設定を変更する動作周波数変更処理部と、
操作部からの入力データに基づき、設定された動作周波数で前記プロセッサが動作して、仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する画像生成部と、
してコンピュータを機能させることを特徴とするプログラム。
【請求項６】
請求項５において、
前記予測処理負荷演算処理部は、
各フレームにおける表示物の数、オブジェクトに使用されているプリミティブ数、各フレームにおいてシミュレーション演算の対象となるオブジェクト数、各フレームで発生す
るゲームイベントの内容、各フレームにおけるプレーヤ移動体の位置を示す情報の少なくとも１つの情報に基づき、各フレームの予測処理負荷を演算する事を特徴とするプログラム。
【請求項７】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至６のいずれかのプログラムが記憶されていることを特徴とする情報記憶媒体。
【請求項８】
動作周波数を動的に変更可能な少なくとも１つ以上のプロセッサを用いて画像生成を行う画像生成システムであって、
各フレームの画像の描画バッファへの描画終了タイミングを検出する描画終了タイミング検出部と、
検出された描画終了タイミングに基づき各フレームが所定のフレーム更新時間内に描画されたかいなか判断し、描画されていないと判断した場合には、前記プロセッサの動作周波数を上げるように設定変更を行う動作周波数設定変更処理部と、
操作部からの入力データに基づき、設定された動作周波数で前記プロセッサが動作して、仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する画像生成部と、
を含むことを特徴とする画像生成システム。
【請求項９】
動作周波数を動的に変更可能な少なくとも１つ以上のプロセッサを用いて画像生成を行う画像生成システムであって、
各フレームでの予測処理負荷を演算する予測処理負荷演算処理部と、
前記予測処理負荷に基づき各フレームの画像生成に必要な動作周波数の設定の変更が必要かいなか判断し、必要であると判断した場合には、前記予測処理負荷に基づき前記プロセッサの動作周波数の設定を変更する動作周波数変更処理部と、
操作部からの入力データに基づき、設定された動作周波数で前記プロセッサが動作して、仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する画像生成部と、
を含むことを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、仮想的な３次元空間であるオブジェクト空間内において所与の視点（仮想カメラ）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。競争ゲーム（カーゲーム）を楽しむことができる画像生成システムを例にとれば、プレーヤは、操作部（ステアリング、シフトレバー、アクセルペダル、ブレーキペダル等）を用いて移動オブジェクト（自プレーヤ移動オブジェクト、自車）を操作し、他のプレーヤ（コンピュータプレーヤ又は他の人間プレーヤ）が操作する移動オブジェクト（他プレーヤ移動オブジェクト、他車）と競争することでゲームを楽しむ。
【０００３】
さて、このような画像生成システムでは、１フレーム周期に全てのオブジェクトの描画処理を完了しなければならないという課題がある。
【０００４】
しかしながら、例えば、表示オブジェクトが多い場合や処理負荷が重いゲームイベントが発生した場合等、１フレーム周期に描画処理を完了させることが間に合わなくなる場合があった。このような場合、２フレームに一回画像を更新することもおこなわれているが、シミュレーション時間と表示タイミングずれが生じて不自然な画像が表示されてしまうおそれがあった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２１４８６８号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、少ない消費電力で演算負荷の高いフレーム発生しても高品質な画像を生成できる画像生成プログラム、情報記憶媒体及び画像生成システムを提供することにある
【課題を解決するための手段】
【０００７】
（１）本発明は、動作周波数を動的に変更可能な少なくとも１つ以上のプロセッサを用いて画像生成を行う画像生成システムであって、
各フレームの画像の描画バッファへの描画終了タイミングを検出する描画終了タイミング検出部と、
検出された描画終了タイミングに基づき各フレームが所定のフレーム更新時間内に描画されたかいなか判断し、描画されていないと判断した場合には、前記プロセッサの動作周波数を上げるように設定変更を行う動作周波数設定変更処理部と、
操作部からの入力データに基づき、設定された動作周波数で前記プロセッサが動作して、仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する画像生成部と、を含むことを特徴とする。
【０００８】
また本発明に係るプログラムは、コンピュータにより実行可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記各処理部としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能（使用可能）な情報記憶媒体であって、上記処理部としてコンピュータを機
能させるためのプログラムを含むことを特徴としている。また本発明にかかる画像生成方法は、上記各処理部の処理を行うステップを含むことを特徴とする。
【０００９】
動作周波数を動的に変更可能な少なくとも１つ以上のプロセッサとは、アプリケーションプログラム（例えばゲームプログラム等の画像生成プログラム等）の実行時にプログラムからの命令により動的に動作周波数が変更可能なプロセッサである。ここでアプリケーションプログラム（例えばゲームプログラム等の画像生成プログラム等）の実行が物理的に複数のプロセッサ（例えばＣＰＵとＤＳＰ等）で実行される構成でもよい。
【００１０】
各フレームの画像の描画バッファへの描画終了の検出は、例えば描画用プログラムの最後（描画処理の最後の命令の後）に描画終了を通知するための描画終了通知命令を設定して置くき、当該描画終了通知命令の実行を検出すること等により実現することができる。
【００１１】
所定のフレームの更新時間とは第ｎのフレームの画像が表示されてから第ｎ＋１のフレームの画像が表示されるまでの時間であり、全フレームにおいて一定間隔のフレーム更新周期を有している。例えば１／６０秒毎に画像が更新されるシステムにおいては、１／６０秒がフレーム更新時間となる。
【００１２】
仮想３次元空間内に存在する事物の時間的な変化とは、例えばオブジェクトの位置や移動距離、速度、加速度、各速度、モーション等の時間的な変化や、また例えば、ラップタイムや時間の積算で演算される量（例えばダメージ量）の時間的な変化や仮想３次元空間内に存在する事物に影響を与えるパラメータ（時間の関数）等である。
【００１３】
シミュレーション演算とは、例えば運動方程式やエネルギー保存の法則やその他の現実世界の物理法則を用いて、現実世界の物理現象をシミュレーションするための物理値（仮想３次元空間内のオブジェクトの位置、速度、角速度、加速度、角加速度、移動距離、回転）の演算処理や単位時間応じたモーション補完処理やシミュレーション時間の積算処理やパラメータやラップタイムや時間の積算で演算される量（例えばダメージ量）の演算処理等である。
【００１４】
本発明によれば、１フレーム分の画像生成処理（１フレーム分の画像が描画されるまでの処理であり、シミュレーション演算等のゲーム処理を含む）が所定のフレーム更新時間内に終わらない場合には、画像生成処理を行うプロセッサの動作周波数を上げる設定をおこなう。
【００１５】
１フレーム分の画像生成処理が所定のフレーム更新時間内に終わらない場合とは、そのフレームの処理負荷が高く所定のフレーム更新時間内に描画バッファへの描画が終了せずに処理落ち（当該フレームの画像が表示おち）が発生する可能性が高い。
【００１６】
しかし本発明では、画像生成を行うプロセッサの動作周波数を上げることにより処理時間を短くすることができるため、処理落ち（当該フレームの画像が表示おち）の発生を防止し高品質な画像を提供することができる。
【００１７】
なお複数のプロセッサを含む構成においては複数のプロセッサの動作周波数をすべて変更する場合でもよいし、複数のプロセッサの一部の動作周波数をすべて変更する場合でもよい。
【００１８】
（２）また本発明の画像生成システム、プログラム、情報記憶媒体及び画像生成方法は、
動作周波数設定変更処理部は、
検出された描画終了タイミングに基づき各フレームが所定のフレーム更新時間内に描画されたかいなか判断し、描画されていると判断した場合には、前記プロセッサの動作周波数を下げるように設定変更を行うことを特徴とする。
【００１９】
１フレーム分の画像生成処理が所定のフレーム更新時間内に終わる場合には、そのフレームの処理負荷が低く、もっと低い動作周波数で画像生成処理をおこなっても所定のフレーム更新時間内に描画バッファへの描画終了する。
【００２０】
このような場合本発明によれば動作周波数を下げることができるので、常に必要とされる最大値にしておく場合に比べ、消費電力を少なくすることができる。
【００２１】
（３）また本発明の画像生成システム、プログラム、情報記憶媒体及び画像生成方法は、
動作周波数設定変更処理部は、
各フレームが所定の回数連続して所定のフレーム更新時間内に描画されたかいなかを判断し、判断結果に基づき画像生成部の動作周波数を下げるための設定を行うことを特徴とする。
【００２２】
動作周波数を下げる場合には１フレーム分の画像生成処理（１フレーム分の画像が描画されるまでの処理であり、シミュレーション演算等のゲーム処理を含む）が所定のフレーム更新時間内に終わる状態が所定期間の間続いてから動作周波数を下げるので、周波数の変化を穏やかにすることができる。
【００２３】
（４）また本発明の画像生成システム、プログラム、情報記憶媒体及び画像生成方法は、
動作周波数設定変更処理部は、
動作周波数を下げる時の変化率は動作周波数を上げる時の変化率よりも小さくなるように動作周波数の設定を行うことを特徴とする。
【００２４】
（５）本発明は、動作周波数を動的に変更可能な少なくとも１つ以上のプロセッサを用いて画像生成を行う画像生成システムであって、
各フレームでの予測処理負荷を演算する予測処理負荷演算処理部と、
前記予測処理負荷に基づき各フレームの画像生成に必要な動作周波数の設定の変更が必要かいなか判断し、必要であると判断した場合には、前記予測処理負荷に基づき前記プロセッサの動作周波数の設定を変更する動作周波数変更処理部と、
操作部からの入力データに基づき、設定された動作周波数で前記プロセッサが動作して、仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する画像生成部と、を含むことを特徴とする。
【００２５】
各フレームの予測処理負荷とは、各フレームの画像が描画されるまでの処理（シミュレーション処理と画像生成処理を含む）負荷であり、例えばゲームの画像を生成する場合であれば、各フレームにおける表示物の数（画面内に表示されるもの）、使用するポリゴン数（表示されない物も含む）、シミュレーション演算の対象となる移動体又はオブジェクトの数（出走台数）、ゲームイベントの内容、プレーヤ移動体の位置等に応じて各フレームの画像が描画されるまでの処理負荷が異なってくる。
【００２６】
仮想３次元空間内に存在する事物の時間的な変化とは、例えばオブジェクトの位置や移動距離、速度、加速度、各速度、モーション等の時間的な変化や、また例えば、ラップタ
イムや時間の積算で演算される量（例えばダメージ量）の時間的な変化や仮想３次元空間内に存在する事物に影響を与えるパラメータ（時間の関数）等である。
【００２７】
シミュレーション演算とは、例えば運動方程式やエネルギー保存の法則やその他の現実世界の物理法則を用いて、現実世界の物理現象をシミュレーションするための物理値（仮想３次元空間内のオブジェクトの位置、速度、角速度、加速度、角加速度、移動距離、回転）の演算処理や単位時間応じたモーション補完処理やシミュレーション時間の積算処理ややパラメータやラップタイムや時間の積算で演算される量（例えばダメージ量）の演算処理等である。
【００２８】
本発明によればリアルタイムに各フレームの処理負荷を予測して前記予測処理負荷に基づき前記プロセッサの動作周波数の設定を変更することは可能である。したがって各フレームの予測処理負荷が高い場合には各フレームの動作周波数を高く設定し、各フレームの予測処理負荷が高くない場合には各フレームの動作周波数を低く設定することにより、処理負荷に見合った必要十分な動作周波数で処理を行うことができるため、処理落ちすることなく効率よく省電力化を計る事ができる。
【００２９】
なお複数のプロセッサを含む構成においては複数のプロセッサの動作周波数をすべて変更する場合でもよいし、複数のプロセッサの一部の動作周波数をすべて変更する場合でもよい。
【００３０】
（６）また本発明の画像生成システム、プログラム、情報記憶媒体及び画像生成方法は、
前記予測処理負荷演算処理部は、
各フレームにおける表示物の数、オブジェクトに使用されているプリミティブ数、各フレームにおいてシミュレーション演算の対象となるオブジェクト数、各フレームで発生するゲームイベントの内容、各フレームにおけるプレーヤ移動体の位置を示す情報の少なくとも１つの情報に基づき、各フレームの予測処理負荷を演算する事を特徴とする。
【００３１】
各フレームにおける表示物の数とは、画像生成の結果表示対象となるオブジェクトの数である。各フレームにおける表示物の数が増えれば画像生成にかかる処理負荷等が増大する可能性が高い。
【００３２】
ここにおいて各フレームにおける表示物の数はＬＯＤを加味して判断することが好ましい。すなわちＬＯＤはオブジェクトの詳細度を示す物であり、詳細度が高いと処理負荷が高くなるため、表示物の数とそれぞれのＬＯＤを所定のアルゴリズムで乗算した値を表示物の数として使用する場合も本発明の範囲内である。
【００３３】
またオブジェクトに使用されているプリミティブ数とは、表示されるか否か似関わらず、仮想３次元空間内に存在するオブジェクトに使用されているプリミティブ数（ポリゴン数、頂点数等）である。オブジェクトに使用されているプリミティブ数が増加すると、透視投影変換等の３次元演算やレンダリング演算処理負荷等が増加する可能性が高い。
【００３４】
また各フレームにおいてシミュレーション演算の対象となるオブジェクト数とは、例えば移動体オブジェクト等である。各フレームにおいてシミュレーション演算の対象となるオブジェクト数が増えるとオブジェクトの位置演算負荷等が増加する可能性が高い。
【００３５】
各フレームで発生するゲームイベントの内容とは、例えば爆発とか、衝突とかのゲーム上発生するイベントである。各フレームにおいてかかるゲーム上のイベントが発生すると、シミュレーション演算負荷や画像処理演算負荷等が増加する可能性が高い。
【００３６】
各フレームにおけるプレーヤ移動体の位置を示す情報とは位置を示す座標値でもよいし、プレーヤ移動体の位置するエリアやブロックやステージ等をしめす情報でもよい。プレーヤ移動体の位置によって、画像の背景や移動等のシミュレーション演算の内容が変わってくるので処理負荷も変わってくる。
【図面の簡単な説明】
【００３７】
【図１】本実施の形態の画像生成システム（例えばゲームシステム）の機能ブロック図の一例を示す。
【図２】本実施の形態の処理の流れの一例について説明するためのフローチャート図である。
【図３】予測処理負荷に基づき動作周波数を変更する処理の流れの他一例について説明するためのフローチャート図である。
【発明を実施するための形態】
【００３８】
以下、本発明の好適な実施形態について図面を用いて説明する。
【００３９】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を何ら限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００４０】
１．  第１の実施の形態
図１に、第１の実施の形態の画像生成システム（例えばゲームシステム）の機能ブロック図の一例を示す。
【００４１】
なお同図において本実施形態は、少なくとも処理部１００とクロック供給処理部１５０を含めばよく（或いは処理部１００と記憶部１７０、或いは処理部１００と記憶部１７０と情報記憶媒体１８０を含めばよく）、それ以外のブロック（例えば操作部１６０、表示部１９０、音出力部１９２、携帯型情報記憶装置１９４、通信部１９６）については、任意の構成要素とすることができる。
【００４２】
ここで処理部１００は、基準クロック１５６に基づき動作し、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、又は音処理などの各種の処理を行うものであり、その機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）、或いはＡＳＩＣ（ゲートアレイ等）などのハードウェアや、所与のプログラム（ゲームプログラム）により実現できる。
【００４３】
クロック供給処理部１５０は、クロック生成部１５２と生成クロック制御情報設定レジスタ１５４を含み、処理部１００を実現するための各種プロセッサに、設定された動作周波数の基準クロックを供給する処理を行う。
【００４４】
生成クロック制御情報設定レジスタ１５４には、動作周波数を制御するための情報（動作周波数自体でもよいし、動作周波数に対応した分周情報等でもよい）が記憶され、ゲーム実行中に動作周波数設定処理部１２０によって動的に変更可能に構成されている。
【００４５】
クロック生成部１５２は、生成クロック制御情報設定レジスタ１５４に設定された内容基づき、設定された動作周波数の基準クロック１５６を発生させ、処理部１００に供給する処理を行うもので、その機能はクロック発信器、分周回路、プログラマブルタイマ等のハードウエアで実現できる。
【００４６】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、筐体などのハードウェアにより実現できる。
【００４７】
記憶部１７０は、メインメモリ（主記憶部等）１７２やフレームバッファ（描画バッファ等）１７４等を含み、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００４８】
情報記憶媒体（コンピュータにより使用可能な記憶媒体）１８０は、プログラムやデー
タなどの情報を格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納される情報に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体１８０には、本発明（本実施形態）の手段（特に処理部１００に含まれるブロック）を実行するための情報（プログラム或いはデータ）が格納される。
【００４９】
なお、情報記憶媒体１８０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部１７０に転送されることになる。また情報記憶媒体１８０に記憶される情報は、本発明の処理を行うためのプログラム、画像データ、音データ、表示物の形状データ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも１つを含むものである。
【００５０】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。なお表示部のフレーム更新レートはホストからも指示によって変更可能に構成されている。
【００５１】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００５２】
携帯型情報記憶装置１９４は、プレーヤの個人データやセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００５３】
通信部１９６は、外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００５４】
なお本発明（本実施形態）の手段を実行するためのプログラム或いはデータは、ホスト装置（サーバ）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０に配信するようにしてもよい。このようなホスト装置（サーバ）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００５５】
処理部１００は、ゲーム処理部１１０、動作周波数設定処理部１２０、画像生成部１３０、音生成部１４０を含む。
【００５６】
ここでゲーム処理部１１０は、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ面）の位置や回転角度（Ｘ、Ｙ又はＺ軸回りの回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバ処理などの種々のゲーム処理を、操作部１６０からの操作データや、携帯型情報記憶装置１９４からの個人データ、保存データや、ゲームプログラムなどに基づいて行う。
【００５７】
動作周波数設定処理部１２０は、生成クロック制御情報設定レジスタ１５４に対し、ゲーム処理部１１０や画像生成部１３９の処理を実行するプロセッサの動作周波数の設定や設定変更処理を行うもので、各フレームの画像の描画バッファへの描画終了タイミングを検出する描画終了タイミング検出部と、検出された描画終了タイミングに基づき各フレームが所定のフレーム更新時間内に描画されたかいなか判断し、描画されていないと判断した場合には、前記プロセッサの動作周波数を上げるように設定変更を行う動作周波数設定変更処理部として機能する。
【００５８】
また動作周波数設定処理部１２０は、検出された描画終了タイミングに基づき各フレームが所定のフレーム更新時間内に描画されたかいなか判断し、描画されていると判断した場合には、前記プロセッサの動作周波数を下げるように設定変更を行うようにしてもよい。
【００５９】
また動作周波数設定処理部１２０は、各フレームが所定の回数連続して所定のフレーム更新時間内に描画されたかいなかを判断し、判断結果に基づき画像生成部の動作周波数を下げるための設定を行うようにしてもよい。
【００６０】
また動作周波数設定処理部１２０は、動作周波数を下げる時の変化率は動作周波数を上げる時の変化率よりも小さくなるように動作周波数の設定を行うようにしてもよい。
【００６１】
また動作周波数設定処理部１２０は、各フレームでの予測処理負荷を演算する予測処理負荷演算処理部と、前記予測処理負荷に基づき各フレームの画像生成に必要な動作周波数の設定の変更が必要かいなか判断し、必要であると判断した場合には、前記予測処理負荷に基づき前記プロセッサの動作周波数の設定を変更する動作周波数変更処理部として機能するようにしてもよい。
【００６２】
画像生成部１３０は、ゲーム処理部１１０からの指示等にしたがって各種の画像処理を行い、例えばオブジェクト空間内で仮想カメラ（視点）から見える画像を生成して、表示部１９０に出力する。
【００６３】
画像生成部１３０は、前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する処理を行う。
【００６４】
音生成部１４０は、ゲーム処理部１１０からの指示等にしたがって各種の音処理を行い、ＢＧＭ、効果音、又は音声などの音を生成し、音出力部１９２に出力する。
【００６５】
なお、ゲーム処理部１１０、仮想オブジェクト配置処理部１２０、画像生成部１３０、音生成部１５０の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００６６】
画像生成部１３０は、ジオメトリ処理部（３次元演算部）１３２、描画部（レンダリング部）１４０を含む。
【００６７】
ここで、ジオメトリ処理部１３２は、座標変換、クリッピング処理、透視変換、或いは光源計算などの種々のジオメトリ処理（３次元演算）を行う。そして、本実施形態では、ジオメトリ処理後（透視変換後）のオブジェクトデータ（オブジェクトの頂点座標、頂点テクスチャ座標、或いは輝度データ等）は、記憶部１７０の主記憶部１７２に格納されて、保存される。
【００６８】
描画部１４０は、ジオメトリ処理後（透視変換後）のオブジェクトデータと、記憶部１７０に記憶されるテクスチャとに基づいて、オブジェクトを描画バッファ１７４に描画する。これにより、オブジェクトが移動するオブジェクト空間において、仮想カメラ（視点）から見える画像が描画（生成）されるようになる。
【００６９】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００７０】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末を用いて生成してもよい。
【００７１】
まず第１の実施の形態について説明する。
【００７２】
第１の実施の形態は、各フレームが規定のフレーム更新時間内に描画されたか否かにかんするフレーム更新状態を検出し、検出結果に基づき各フレームが規定のフレーム更新時間内に描画されていないと判断した場合には、前記プロセッサの動作周波数を上げるための設定を行い、設定された動作周波数で前記プロセッサが動作して、仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する処理を行う。
【００７３】
各フレームの更新時間とは第ｎのフレームの画像が表示されてから第ｎ＋１のフレームの画像が表示されるまでの時間であり、本実施の形態では規定のフレーム更新時間（例えば１／６０秒）毎に次のフレームに更新するように構成されている。
【００７４】
各フレームの画像の描画バッファへの描画終了の検出は、例えば描画用プログラムの最後（描画処理の最後の命令の後）に描画終了を通知するための描画終了通知命令を設定して置くき、当該描画終了通知命令の実行を検出すること等により実現することができる。従って、規定のフレーム更新時間内に描画終了通知を受けとったか否かにもとづいて各フレームが規定のフレーム更新時間内に描画されたか否かにかんするフレーム更新状態を判断するようにしてもよい。
【００７５】
図２は、本実施の形態の処理の流れの一例について説明するためのフローチャート図である。
【００７６】
まずＦ＝初期周波数、Ｔｕｐ＝０に初期化する（ステップＳ１０）。ここで、ＦはＣＰＵの動作周波数であり、Ｔｕｐは周波数を増減させた後各フレームが所定の回数連続して規定のフレーム更新時間内に描画されたかいなかを判断するためのカウンタであり、周波数の変化を穏やかにするために使用される。
【００７７】
次に各フレーム毎に以下の処理を繰り返す。
【００７８】
１フレーム分のゲーム処理（１フレーム分の画像が描画されるまでの処理）を行う（ステップＳ２０）。例えば操作部からの入力データに基づき、設定された動作周波数で前記プロセッサが動作して、仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する処理を行う。
【００７９】
そして規定フレーム更新周期に達したら描画バッファの画像を表示部に出力する（ステップＳ３０、Ｓ４０）。
【００８０】
ここで１フレーム分のゲームの処理（１フレーム分の画像が描画されるまでの処理）が１画面更新時間（所定のフレーム更新時間）内に終わったか否か判断し、終わらない場合には以下のステップＳ６０〜Ｓ８０の処理を行う。
【００８１】
まずＦ＝Ｆ＋ｄＦ、Ｔｕｐ＝１０をセットする（ステップＳ６０）。ここでｄＦは、周波数変化単位である。
【００８２】
次にＦ＞ＦmaxであればＦ＝Ｆmaxをセットする（ステップＳ７０、Ｓ８０）。
また１フレーム分のゲームの処理（１フレーム分の画像が描画されるまでの処理）が１画面更新時間（規定のフレーム更新時間）内に終わった場合には以下のステップＳ９０〜Ｓ１２０の処理を行う。
【００８３】
まずＴup＝０か否か判断し、Ｔup＝０であればＦ＝Ｆ−ｄＦ、Ｔｕｐ＝１０をセットする（ステップＳ９０、Ｓ１００）。ここでｄＦは、周波数変化単位である。
【００８４】
次にＦ＜ＦmimであればＦ＝Ｆmimをセットする（ステップＳ１１０、Ｓ１２０）。
【００８５】
またＴup＝０でなければＴｕｐ＝Ｔｕｐ−１をセットし、動作周波数の設定の変更は行わない（ステップＳ９０、Ｓ１３０）。
【００８６】
そしてＦをプロセッサ（ＣＰＵやＤＳＰ等のプロセッサ）の動作周波数として設定する処理を行い、ステップＳ２０に戻って次のフレームの処理を行う（ステップＳ１３０）。
【００８７】
このようにすることにより、１フレーム分のゲームの処理（１フレーム分の画像が描画されるまでの処理）が１画面更新時間（所定のフレーム更新時間）内に終わらない場合には、直ちにゲーム処理（１フレーム分の画像が描画されるまでの処理）を行うプロセッサの動作周波数を上げる設定をおこなう。
【００８８】
そして、１フレーム分のゲームの処理（１フレーム分の画像が描画されるまでの処理）が１画面更新時間（規定のフレーム更新時間）内に終わる場合には、ゲーム処理（１フレーム分の画像が描画されるまでの処理）を行うプロセッサの動作周波数を下げるための設定を行う。ここで、画像生成部の動作周波数を下げる場合には、各フレームが所定の回数連続して規定のフレーム更新時間内に描画された場合に動作周波数を下げるための設定を行う。
【００８９】
このように動作周波数を上げる場合には直ちに上げることにより、描画が規定時間内に終わらない等の状況を早急に解消できる。また動作周波数を下げる場合には１フレーム分のゲームの処理（１フレーム分の画像が描画されるまでの処理）が１画面更新時間（規定のフレーム更新時間）内に終わる状態が所定期間続いてから動作周波数を下げるので、周波数の変化を穏やかにすることができる。
【００９０】
また上記処理では、所定の単位ｄＦ毎に動作周波数の設定を増減させる場合について説明したが、これに限られない。
【００９１】
例えば動作周波数を下げる時の動作周波数の変化率は動作周波数を上げる時の動作周波数の変化率よりも小さくなるように動作周波数の設定を行うようにしてもよい。例えばス
テップＳ１００で動作周波数を下げる時の周波数変化単位であるｄＦをステップＳ６０で動作周波数を上げる時の周波数変化単位であるｄＦをより小さく設定するようにしてもよい。
【００９２】
次に第２の実施の形態について説明する。
【００９３】
第２の実施の形態は、各フレームでの予測処理負荷を演算し、前記予測処理負荷に基づき各フレームの画像生成に必要な動作周波数の変更が必要であるかいなか判断し、必要であると判断した場合には、前記予測処理負荷に基づき前記プロセッサの動作周波数の設定を変更し、操作部からの入力データに基づき変更後の動作周波数で前記プロセッサが動作して、仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する処理を行う。
【００９４】
ここで各フレームでの予測処理負荷は、各フレームにおける表示物の数（ＬＯＤを加味する）、オブジェクトに使用されているプリミティブ数、各フレームにおいてシミュレーション演算の対象となるオブジェクト数、各フレームで発生するゲームイベントの内容、各フレームにおけるプレーヤ移動体の位置を示す情報の少なくとも１つの情報に基づき演算するようにしてもよい。
【００９５】
図３は、予測処理負荷に基づき動作周波数を変更する処理の流れの他一例について説明するためのフローチャート図である。
【００９６】
第２の実施の形態では各フレーム毎に以下の処理を繰り返す。
【００９７】
まず操作部からの入力情報を取得する（ステップＳ２１０）。
【００９８】
次のフレームでの予測処理負荷を演算する（ステップＳ２２０）。
【００９９】
そして予測処理負荷に基づき各フレームの画像生成に必要な動作周波数の変更が必要であるかいなか判断し、必要であると判断した場合には、前記予測処理負荷に基づき前記プロセッサの動作周波数の設定を変更する（ステップＳ２３０，Ｓ２４０）。
【０１００】
操作部からの入力データに基づき、変更後の動作周波数で前記プロセッサが動作して、仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する処理を行う（ステップＳ２５０）。
【０１０１】
このように予測処理負荷に応じてリアルタイムに各フレームの処理負荷を予測して前記予測処理負荷に基づき前記プロセッサの動作周波数の設定を変更することは可能である。したがって各フレームの予測処理負荷が高い場合には各フレームの動作周波数を高く設定し、各フレームの予測処理負荷が高くない場合には各フレームの動作周波数を低く設定することにより、処理負荷に見合った必要十分な動作周波数で処理を行うことができるため、処理落ちすることなく効率よく省電力化を計る事ができる。
【０１０２】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１０３】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の
一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１０４】
また、本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０１０５】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々のゲームシステムに適用できる。
【符号の説明】
【０１０６】
１００  処理部
１１０  ゲーム処理部
１１２  シミュレーション演算部
１２０  動作周波数設定処理部
１３０  画像生成部
１３２  ジオメトリ処理部
１３４  描画部
１４０  音生成部
１５０  クロック供給処理部
１５２  クロック生成部
１５４  生成クロック制御情報レジスタ
１６０  操作部
１７０  記憶部
１７２  メインメモリ
１７４  フレームバッファ
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  携帯型情報記憶装置
１９６  通信部
【図１】
2010160804.tif 000003
【図２】
2010160804.tif 000004
【図３】
2010160804.tif 000005
【手続補正書】
【提出日】平成22年3月11日(2010.3.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
動作周波数を動的に変更可能な少なくとも１つ以上のプロセッサを用いて画像生成を行う画像生成プログラムであって、
各フレームでの予測処理負荷を演算する予測処理負荷演算処理部と、
前記予測処理負荷に基づき各フレームの画像生成に必要な動作周波数の設定の変更が必要かいなか判断し、必要であると判断した場合には、前記予測処理負荷に基づき前記プロセッサの動作周波数の設定を変更する動作周波数変更処理部と、
操作部からの入力データに基づき、設定された動作周波数で前記プロセッサが動作して、仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する画像生成部と、
してコンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記予測処理負荷演算処理部は、
各フレームにおける表示物の数、オブジェクトに使用されているプリミティブ数、各フレームにおいてシミュレーション演算の対象となるオブジェクト数、各フレームで発生するゲームイベントの内容、各フレームにおけるプレーヤ移動体の位置を示す情報の少なくとも１つの情報に基づき、各フレームの予測処理負荷を演算する事を特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記動作周波数設定変更処理部は、
動作周波数を下げるように設定変更を行う時の変化率は動作周波数を上げるように設定変更を行う時の変化率よりも小さくなるように動作周波数の設定を行うことを特徴とするプログラム。
【請求項４】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至３のプログラムが記憶されていることを特徴とする情報記憶媒体。
【請求項５】
動作周波数を動的に変更可能な少なくとも１つ以上のプロセッサを用いて画像生成を行う画像生成システムであって、
各フレームでの予測処理負荷を演算する予測処理負荷演算処理部と、
前記予測処理負荷に基づき各フレームの画像生成に必要な動作周波数の設定の変更が必要かいなか判断し、必要であると判断した場合には、前記予測処理負荷に基づき前記プロセッサの動作周波数の設定を変更する動作周波数変更処理部と、
操作部からの入力データに基づき、設定された動作周波数で前記プロセッサが動作して、仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する画像生成部と、
を含むことを特徴とする画像生成システム。