(57)【要約】      （修正有）【課題】現在のフレームの与えられたピクセルの明度を決定するための、コンピュータ処理装置により実行される画像処理方法及びコンピュータ可読媒体を提供する。【解決手段】コンピュータ処理装置により、現在のフレームＦの与えられたピクセルＰ内のサンプル位置の座標を選択し、サンプル位置の座標について現在の明度を決定し、計算された明度と前のフレームの少なくとも一つのピクセルの明度を混ぜ合わせる。前のフレームの少なくとも一つのピクセルは、与えられたピクセルに関連するピクセルを含んでおり、フレームの与えられたピクセルの混ぜ合わされた明度をメモリに格納する。こうして、フレーム内のピクセルの表された明度に対して過去及び現在の相対的寄与度を動的に変えることで、エイリアシングを軽減する。【選択図】図５
2018085084.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ処理装置により実行される画像処理方法であって、現在のフレームの与えられたピクセルの明度を決定する方法であり、
該方法は、
−前記コンピュータ処理装置により、現在のフレームの前記与えられたピクセル内のサンプル位置の座標を選択すること、
−前記コンピュータ処理装置により、前記サンプル位置の座標について現在の明度を決定すること、
−前記コンピュータ処理装置により、前記計算された明度と前のフレームの少なくとも一つのピクセルの明度を混ぜ合わせること、前記前のフレームの少なくとも一つのピクセルは、前記与えられたピクセルに関連するピクセルを含んでおり、
−前記フレームの前記与えられたピクセルの前記混ぜ合わされた明度をメモリに格納すること、
から構成される。
【請求項２】
請求項１に記載の画像処理方法であって、前記サンプル位置の座標の現在の明度を決定することは、前記現在のフレーム内の前記サンプル位置の座標を占める場面素子についての明度を演算することである。
【請求項３】
請求項２に記載の画像処理方法であって、前記与えられたピクセルに関連するピクセルは、ベロシティバッファの中身によってそれに関連付けられている、ことを特徴とする。
【請求項４】
請求項３に記載の画像処理方法であって、前記ベロシティバッファは、現在と前のフレーム間の前記場面素子の移動に関する情報を格納している、ことを特徴とする。
【請求項５】
請求項３に記載の画像処理方法であって、前記ベロシティバッファは、前記前のフレーム内の前記場面素子の位置についての情報を格納している、ことを特徴とする。
【請求項６】
請求項２に記載の画像処理方法であって、前記与えられたピクセルに関連するピクセルは、前記場面素子を含む前記前のフレームのピクセルである、ことを特徴とする。
【請求項７】
請求項６に記載の画像処理方法であって、前記計算された明度と前のフレームの少なくとも一つのピクセルの明度を混ぜ合わせることは、それぞれの係数を持った前記明度の線形な組合せを計算することであり、前記それぞれの係数は、前記前のフレームの前記関連するピクセル内の座標と、前記前のフレーム内の前記場面素子の位置の間の距離に依存する相対値である、ことを特徴とする。
【請求項８】
請求項７に記載の画像処理方法であって、前記前のフレームの前記関連するピクセル内の座標は、前記前のフレームの前記関連するピクセルの中央を規定する、ことを特徴とする。
【請求項９】
請求項６に記載の画像処理方法であって、前記前のフレームの少なくとも一つのピクセルは、前記関連するピクセルを含む複数のピクセル及び該関連するピクセルに隣接した前記前のフレームの少なくとも一つの追加的なピクセルを含む、ことを特徴とする。
【請求項１０】
請求項９に記載の画像処理方法であって、前記前のフレームの少なくとも一つピクセルの明度は、前記関連するピクセルと前記少なくとも一つの追加的なピクセルを含んだ複数のピクセルについての組み合わされた明度である、ことを特徴とする。
【請求項１１】
請求項１０に記載の画像処理方法であって、該方法は、更に、前記複数のピクセルの組み合わされた明度を決定することを含む、ことを特徴とする。
【請求項１２】
請求項１１に記載の画像処理方法であって、前記複数のピクセルの前記組み合わされた明度を決定することは、前記関連するピクセルの明度と前記前のフレームの少なくとも一つの追加的なピクセル明度を、それぞれの係数に基づいて線形に組合せることを含む、ことを特徴とする。
【請求項１３】
請求項１２に記載の画像処理方法であって、前記係数は、総計が一つになるように正規化される、ことを特徴とする。
【請求項１４】
請求項１２に記載の画像処理方法であって、前記それぞれの係数は、前のフレームの前記場面素子の位置と該前のフレームのそれぞれのピクセルの中央との距離を反映している、ことを特徴とする。
【請求項１５】
請求項１２に記載の画像処理方法であって、前記それぞれの係数は、前のフレームの前記場面素子の位置と該前のフレームのそれぞれのピクセルの端部との距離を反映している、ことを特徴とする。
【請求項１６】
請求項１２に記載の画像処理方法であって、前記それぞれの係数は、前のフレームの前記場面素子の位置と該前のフレームのそれぞれのピクセル内のサンプル位置の座標との距離を反映している、ことを特徴とする。
【請求項１７】
請求項１に記載の画像処理方法であって、該方法は、更に、
現在のフレームの複数のピクセルについて、繰り返し前記選択をし、決定をし、混ぜ合わせを行い、格納し、前記複数のピクセルについて、前記格納された明度を用いて現在のフレームをレンダリングする、ことを特徴とする。
【請求項１８】
請求項３に記載の画像処理方法であって、前記関連するピクセルは、前記与えられたピクセルを含む、ことを特徴とする。
【請求項１９】
請求項３に記載の画像処理方法であって、前記関連するピクセルは、前記与えられたピクセルを含まない、ことを特徴とする。
【請求項２０】
請求項１に記載の画像処理方法であって、該方法は、更に、
前記メモリに格納されたピクセルの配列についての前記混ぜ合わされた明度から画像フレームをレンダリングする、ことを特徴とする。
【請求項２１】
請求項２０に記載の画像処理方法であって、該方法は、更に、
十分に高いレートで前記選択すること、決定すること、混ぜ合わせることを行い、少なくとも毎秒２５画像フレームを生成する、ことを特徴とする。
【請求項２２】
コンピュータ可読指令を含んだコンピュータ可読媒体であって、それら指令は、コンピュータ処理装置により実行されると、該コンピュータ処理装置に現在のフレームの与えられたピクセルについて、明度を決定する方法を実行させることが出来、
前記方法は、
−現在のフレームの前記与えられたピクセル内のサンプル位置の座標を選択すること、
−前記サンプル位置の座標について現在の明度を決定すること、
−前記計算された明度と前のフレームの少なくとも一つのピクセルの明度を混ぜ合わせること、前記前のフレームの少なくとも一つのピクセルは、前記与えられたピクセルに関連するピクセルを含んでおり、
−前記フレームの前記与えられたピクセルの前記混ぜ合わされた明度をメモリに格納すること、
から構成される。
【請求項２３】
コンピュータが実行可能な画像処理方法であって、
該方法は、
−現在のフレーム内の与えられたピクセルのサンプリング座標と関連する場面素子について、前のフレームの前記場面素子の位置と該場面素子が現れている前のフレームの前記ピクセルの座標間の距離を決定し、
−前記距離による割合で前記与えられたピクセルに対する過去と現在の明度の寄与を組みあわせる、ことを特徴とする。
【請求項２４】
請求項２３に記載の、コンピュータが実行可能な画像処理方法であって、
前記場面素子が現れている前のフレームのピクセルの座標は、前記場面素子が現れている前のフレームのピクセルの中心で規定する、ことを特徴とする。
【請求項２５】
請求項２３に記載の、コンピュータが実行可能な画像処理方法であって、
前記距離は、ユークリッド距離である、ことを特徴とする。
【請求項２６】
請求項２３に記載の、コンピュータが実行可能な画像処理方法であって、
前記距離は、マンハッタン距離である、ことを特徴とする。
【請求項２７】
コンピュータ可読指令を含むコンピュータ可読媒体であって、前記可読指令は、コンピュータが実行すると、該コンピュータに画像処理方法を実行させること出来、
前記画像処理方法は、
−現在のフレーム内の与えられたピクセルのサンプリング座標と関連する場面素子について、前のフレームの前記場面素子の位置と該場面素子が現れている前のフレーム内の前記ピクセルのサンプリング座標間の距離を決定し、
−前記距離による割合で前記与えられたピクセルに対する過去と現在の明度の寄与を組みあわせる、ことを特徴とする。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理方法に関わり、特にエイリアシングを軽減するために画像フレームのピクセルの明度を計算する方法に関する。
【背景技術】
【０００２】
エイリアシングは、場面内のオブジェクトの変形速度に比して該場面のサンプリングレート（即ち、毎秒のフレーム数）が低すぎることで生じる。これは、オブジェクトに滑らかな動きの印象を与える代わりに、ある場所にジャンプしたり、突然現れたりする形で表現されることとなる。
【０００３】
エイリアシングに対応する一つの方法は、より高いレートで場面をサンプリングすることである。しかし、これでは演算量がコンピュータの能力以上のものとなってしまうかもしれない。
【０００４】
エイリアシングに対応する別の方法は、一つのフレームから次のフレームで、各ピクセル内で僅かに異なる点（即ち、何時も各ピクセルの丁度真ん中ではなく）をサンプリングすることである。これは、滑らかな効果を得ることが出来る。しかし、これは、ゴーストの発生、ちらつきや他の好ましくない結果を生む可能性がある。
【０００５】
従って、エイリアシングを扱う効果的なアプローチが望まれている。
【発明の概要】
【０００６】
第１の観点によると、コンピュータ処理装置で実行される、現在のフレームの与えられたピクセルの明度を決定するための画像処理方法である。この方法は、コンピュータ処理装置により、現在のフレームの与えられたピクセル内のサンプル位置の座標を選択すること、コンピュータ処理装置により、前記サンプル位置の座標の現在の明度を決定すること、コンピュータ処理装置により、前のフレームの少なくとも一つのピクセルの明度と前記演算された明度を混ぜ合わせること、前記前のフレームの少なくとも一つのピクセルは、前記与えられたピクセルに関連するピクセルを含んでおり、メモリに、前記フレームの与えられたピクセルの前記混ぜ合わされた明度を格納すること、である。
【０００７】
第２の観点によると、コンピュータ処理装置可読指令を有するコンピュータ可読媒体を提供することであり、コンピュータ処理装置で実行する際に、該コンピュータ処理装置に現在のフレームの与えられたピクセルの明度を決定する方法を実行させる。該方法は、現在のフレームの与えられたピクセル内のサンプル位置の座標を選択すること、前記サンプル位置の座標の現在の明度を決定すること、前のフレームの少なくとも一つのピクセルの明度と前記演算された明度を混ぜ合わせること、前記前のフレームの少なくとも一つのピクセルは、前記与えられたピクセルに関連するピクセルを含んでおり、メモリに、前記フレームの与えられたピクセルの前記混ぜ合わされた明度を格納すること、である。
【０００８】
第３の観点によると、コンピュータに実行される以下の画像処理方法を提供することであり、該方法は、現在のフレーム内の与えられたピクセルのサンプル座標に関連した場面素子について、前のフレーム内の前記場面素子の位置と該場面素子が現れている前記前のフレーム内の前記ピクセルの座標間の距離を決定し、前記距離に依存した割合で、前記与えられたピクセルについて過去及び現在の明度の寄与を組みあわせること、である。
【０００９】
第４の観点によると、コンピュータ可読指令を有するコンピュータ可読媒体を提供することであり、それは、コンピュータによって実行されると、以下の画像処理方法を実行する。その方法は、現在のフレーム内の与えられたピクセルのサンプル座標に関連した場面素子について、前のフレーム内の前記場面素子の位置と該場面素子が現れている前記前のフレーム内の前記ピクセルの座標間の距離を決定し、前記距離に依存した割合で、前記与えられたピクセルについて過去及び現在の明度の寄与を組みあわせること、である。
【００１０】
こうして、フレーム内のピクセルの表された明度に対して過去及び現在の相対的寄与度を動的に変えることで、エイリアシングは軽減される。
【００１１】
本発明のこれらの及び他の観点は、添付した図面と併せて以下の本発明の特定の実施例の記述を参照することで、当業者にとって明らかになる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の限定されない例示的な実施例を実装したゲーム装置の構成を示すブロック図である。
【図２Ａ】図２Ａは、図１のゲーム装置によって実行されるゲームプログラムの要素を示す図であり、ゲームデータ処理機能及びゲームレンダリング処理機能を有するものである。
【図２Ｂ】図２Ｂは、本発明の実施例によるゲームデータの一例を示す図。
【図２Ｃ】図２Ｃは、３Ｄグラフィック情景をディスプレィ装置に表示するためのゲーム画面に変換する処理の一例を示す図。
【図３】図３は、例示的な実施例に基づく、画像フレームのピクセル内でサブピクセルのサンプリング位置を示す図。
【図４】図４は、例示的な実施例に基づく、連続するフレーム内で各フレームの対応するピクセルをサンプリングするために使用される、サブピクセル内での変化を示す図。
【図５】図５は、例示的な実施例に基づく、現在と過去の寄与分に基づいてレンダリングされた明度の計算を示す図。
【図６】図６は、例示的な実施例に基づく、ベロシティバッファの中身によって定義されるような場面要素の座標変化を示す図。
【図７】図７は、例示的な実施例に基づく、前のフレームの関連するピクセルの存在をその近傍の追加ピクセルと共に示す図。
【図８】図８は、例示的な実施例に基づく、場面素子の座標とその近傍の複数のピクセルのそれぞれの中央との間のユークリッド距離の演算を示す。
【図９】図９は、例示的な実施例に基づく、場面素子の座標とその近傍の複数のピクセルのそれぞれの中央との間のマンハッタン距離の演算を示す。
【００１３】
図面はある観点又は実施例の理解の助けるものであり、限定的に解釈されるべきものではない。
【発明を実施するための形態】
【００１４】
図１は、本発明の限定されない例示的な実施例を実装したゲーム装置１の構成を示すブロック図である。ある場合には、ゲーム装置１は、Ｘｂｏｘ（登録商標）、Ｐｌａｙｓｔａｔｉｏｎ（登録商標）又はＮｉｎｔｅｎｄｏ（登録商標）ゲーム筐体といった専用のゲーム筐体である。また他の場合には、ゲーム装置１は、多目的ワークステーション又はラップトップコンピュータである。更に他の場合、ゲーム装置１は、スマートフォンのようなモバイル装置であり、また更に他の場合には、ゲーム装置１は携帯型ゲーム装置である。
【００１５】
ゲーム装置１は、少なくとも一つの処理装置１０、少なくとも一つのコンピュータ可読メモリ１１，少なくとも一つの入出力モジュール１５及び少なくとも一つの電源２７を有し、更にビデオゲームを遊ぶのに使用されるゲーム装置で見受けられるさまざまな部品も含まれる。ゲーム装置１の様様な部品は、データバス、コントロールバス、パワーバスなどのような一つ以上のバスを介して互いに通信することが出来る。
【００１６】
図１に示すように、プレイヤ７は、ディスプレィ装置５のスクリーンに表示されるゲーム画像を見ながら、ゲームコントローラ３を介してゲームの局面を制御することでゲームをプレイする。従って、ゲーム装置１はゲームコントローラ３から少なくとも一つの入出力モジュール１５を介して入力を受ける。ゲーム装置１は、また、ディスプレィ装置５及び／又はオーディオ装置（例えば、スピーカ、図示せず）に少なくとも一つの入出力モジュール１５を介して出力を供給する。他の実施例では、入出力モジュール１５に接続されるのは、一つ以上のゲームコントローラ及び／又は一つ以上のディスプレィ装置５でもよい。
【００１７】
少なくとも一つの処理装置１０は、一つ以上のコアを有する中央処理ユニット（ＣＰＵ）を有する。また少なくとも一つの処理装置１０は、出力データを、ディスプレィ装置５のディスプレィの入出力モジュール１５に供給するためのビデオエンコーダ／ビデオコーデック（コーダ／デコーダ、図示せず）と接続された、少なくとも一つのグラフィック処理ユニット（ＧＰＵ）を有する。更に該少なくとも一つの処理装置１０は、オーディオ装置の入出力モジュール１５に供給される出力データを生成するためのオーディオエンコーダ／オーディオコーデック（コーダ／デコーダ、図示せず）と接続された少なくとも一つのオーディオ処理ユニットを有する。
【００１８】
少なくとも一つのコンピュータ可読メモリ１１は、ＲＡＭ（ランダムアクセスメモリ）、ＲＯＭ（リードオンリーメモリ）、フラッシュメモリ、ハードディスク駆動装置、ＤＶＤ／ＣＤ／Ｂｌｕｅｒａｙ（登録商標）及び／又は他の適切なメモリ装置、技術又は構成を有する。コンピュータ可読メモリ１１は、ゲームプログラム３３，ゲームデータ３４及びオペレーティングシステム３５などの多様な情報を格納している。
【００１９】
ゲーム装置１の電源が入ると、処理装置１０は処理装置１０を起動するブート処理を実行し、コンピュータ可読メモリ１１と通信する。特にこのブート処理ではオペレーティングシステム３５を実行する。オペレーティングシステム３５は、ゲーム装置に適した何らかの商用又は専用オペレーティングシステムである。オペレーティングシステム３５が実行されると、処理装置１０はディスプレィ装置５に表示する画像を生成し、ゲーム装置１はゲームコントローラ３を介してプレイヤ７が選択することの出来る多様なオプションや、プレイするビデオゲームを選択、及び／又は開始するオプションを表示する。プレイヤ７により選択／開始されたビデオゲームは、ゲームプログラム３３によってエンコードされている。
【００２０】
処理装置１０は該ゲームプログラム３３を実行して、エンコードされたビデオゲームに関連する多様な種類の情報処理機能を実行することが出来るように構成されている。特に、図２Ａに示すように、ゲームプログラム３３を実行することで処理装置１０は、以下に述べるゲームデータ処理機能２２及びゲームレンダリング処理機能２４を実行することとなる。
【００２１】
ゲームレンダリング処理機能２４はディスプレィ装置５に表示されるゲーム画像の生成を含むものである。ここで、ゲームデータ処理機能２２は、ゲームの進行やゲームの現在状態を表す情報を処理することを含む（例えば、ディスプレィ装置５に表示する必要のないゲームに関する情報の処理）。図２Ａでは、ゲームデータ処理機能２２及びゲームレンダリング処理機能２４は、単一のゲームプログラム３３の一部を構成している。しかし、他の実施例では、ゲームデータ処理機能２２及びゲームレンダリング処理機能２４は、別個のメモリに格納された別個のプログラムであり、分かれた、恐らく遠方の処理装置により実行される場合もある。例えば、ゲームレンダリング処理機能２２は、ＣＰＵで実行することもでき、ゲームレンダリング処理機能２４はＧＰＵで実行することも出来る。
【００２２】
ゲームプログラム３３の実行中には、処理装置１０は、オブジェクト、キャラクタのような構成物、及び／又はあるゲームの規則に従ったレベルを操作し、ある種の人工的な知的アルゴリズムの適用を行う。ゲームプログラム３３の実行中、処理装置１０は、生成、ロード、格納、読み込みを行い、また、オブジェクトやキャラクタ及び／又はレベルに関するデータを持ったゲームデータ３４に全般的なアクセスを行う。図２Ｂは、本発明の実施例に基づくゲームデータ３４の一例である。ゲームデータ３４は、前述の構成に関するデータを有しており、従って、オブジェクトデータ４２，キャラクタデータ４６及び／又はレベルデータ４４を含む。
【００２３】
オブジェクトとは、ゲーム画像のフレーム（コマ）にグラフィカルに表示することの出来るゲーム環境における何らかの素子又は素子の部分を表す。オブジェクトは、建物、車両、家具、植物、空、大地、大洋、太陽及び／又は何らかの適当な素子を３次元的に表現したものである。オブジェクトは、数字、幾何学又は数学的な表現のような、他の非グラフィカルな表現であることもある。オブジェクトデータ４２は、ゲーム画像のフレーム内でのグラフィカルな表現のような、オブジェクトの現在表現についてのデータや、数字、幾何学又は数学的な表現についてのデータを格納する。オブジェクトデータ４２としては、画像データ、位置データ、材料／テクスチャデータ、物理状態データ、可視性データ、照明データ（例えば、方向、位置、色及び／又は強度）、サウンドデータ、モーションデータ、衝突データ、環境データ、タイマーデータ及び／又は該オブジェクトに関連する他のデータなどの属性データも格納することができる。
【００２４】
キャラクタは、オブジェクトに類似するが、属性は本質的により動的であり、オブジェクトが通常持たない追加的な属性を持っている。例えば、プレイングキャラクタのある属性は、プレイヤ７により制御することが出来る。またノンプレイングキャラクタ（ＮＰＣ）のキャラクタのある属性は、ゲームプログラム３３により制御され得る。キャラクタの一例としては、人、アバター、動物及び／又は何らかの他の適当なオブジェクトなどが挙げられる。キャラクタは、数字、幾何学又は数学的な表現のような他の非視覚的表現も持つことがある。キャラクタは、キャラクタが装備する武器、又はキャラクタが着る衣服などのオブジェクトと関連することがある。キャラクタデータ４６は、ゲーム画面のフレームにおけるグラフィカルな表現、又は数字、幾何学又は数字の表現のような、キャラクタの現在表現についてのデータを格納する。キャラクタデータ４６は、画像データ、位置データ、材料／テクスチャデータ、物理状態データ、可視性データ、照明データ（例えば、方向、位置、色及び／又は強度）、サウンドデータ、モーションデータ、衝突データ、環境データ、タイマーデータ及び／又は該キャラクタに関連する他のデータなどの属性データも格納することができる。
【００２５】
レベルは、ゲーム環境内で、キャラクタが進む、オブジェクトの特別なアレンジメントに関わるものである。レベルは、キャラクタが移動する経路に関わるデータを含む。レベルは、キャラクタやオブジェクトを巻き込んだオブジェクト、ゴール、チャレンジ又はパズルをエンコードするデータも含む。レベルは、レンダリングされ、ディスプレィ装置５のような２次元ディスプレィ装置に表示され得るグラフィカルな表現をもつが、レバルはまた、数字、幾何学又は数学的な表現のような他の非限定的な表現も有する。また、レベルには多様なレベルがあり、それぞれが自分のレベルデータ４４を有している。
【００２６】
ゲームデータ３４は、オブジェクトデータ４２、レベルデータ４４及び／又はキャラクタデータ４６の表現及び／又は属性の一部である、ディスプレィ装置５に表示される際のゲームの現在の視野又はカメラアングルに関するデータ（例えば、１人称視点、３人称視点など）を含む。
【００２７】
ゲームプログラム３３を実行する際には、処理装置１０は、プレイヤ７がゲームを選択／スタートした後に、イニシャライズ段階を行い、ゲームをイニシャライズする。イニシャライズ段階は、必要なゲームのセットアップを実行し、ゲームの開始に際してゲームデータを準備するために使用される。ゲームデータ３４は、ゲームプログラム３３の処理に伴って変化（即ち、ゲームのプレイ中）する。ここで“ゲームの状態”という用語は、ここではゲームデータ３４の現在の状態又は性質、従って、多様なオブジェクトデータ４２、キャラクタデータ４６及び／又はレベルデータ４４及びそれらの対応する表現及び／又は属性を定義するために使用される。
【００２８】
イニシャライズ段階の後、ゲームプログラム３３を実行する処理装置１０は、一つ以上のゲームループを実行する。一つ以上のゲームループは、ゲームプレイ中継続的に実行され、ゲームデータ処理機能２２及びゲームレンダリング処理機能２４はルーチン的に実行されるようになる。
【００２９】
ゲームループは、ゲームデータ処理機能２２がゲームコントローラ３を介したプレイヤの入力処理を行ってゲーム状態をアップデートする際に実行され、その後ゲームレンダリング処理機能２４がアップデートされたゲーム状態に基づいて表示すべきゲーム画像を生成するように機能する。ゲームループは時間経過を追跡し、ゲームプレイの進行を制御する。プレイヤが入力する以外のパラメータが、ゲーム状態に影響を与える点は注目すべき点である。例えば、多様なタイマー（即ち、経過時間、特定のイベントからの時間、一日のバーチャル時間など）がゲーム状態に影響を与え得る。別の言い方をすると、ゲームは、プレイヤ７が入力を行わなくても進行しており、従って、プレイヤの入力が無くてもゲーム状態はアップデートされるのである。
【００３０】
一般的に、ゲームデータ処理機能２２が毎秒実行する回数は、ゲーム状態に対する毎秒のアップデート回数を規定し（以後、「アップデート／秒」と称する）、ゲームレンダリング処理機能２４が毎秒実行する回数は、毎秒のゲーム画像のレンダリングを規定する（以後、「フレーム／秒」と称する）。理論的には、ゲームデータ処理機能２２とゲームレンダリング処理機能２４は、毎秒の実行回数が同じと考えられる。特定の非限定的な例として、目標が毎秒２５フレームだとすると、ゲームデータ処理機能２２とゲームレンダリング処理機能２４は、共に４０ｍｓ毎に実行可能な能力（即ち、１ｓ／２５ＦＰＳ）が望ましい。ゲームデータ処理機能２２が実行し、その後にゲームレンダリング処理機能２４が実行する場合、ゲームデータ処理機能２２とゲームレンダリング処理機能２４は共に４０ｍｓのタイムウインド（time window）で実行される必要がある。その時のゲーム状態によって、ゲームデータ処理機能２２及び／又はゲームレンダリング処理機能２４を行う時間は変わり得るものである。もしゲームデータ処理機能２２とゲームレンダリング処理機能２４が共に４０ｍｓ以下で実行されるなら、ゲームデータ処理機能２２とゲームレンダリング処理機能２４の次のサイクルを実行する前にスリープタイマーを使用することが出来る。しかし、ゲームデータ処理機能２２とゲームレンダリング処理機能２４が与えられたサイクルを実行するのに４０ｍｓ以上掛かる場合には、一定のゲームスピードを維持するためにゲーム画像の表示をスキップするのも一つのテクニックである。
【００３１】
目標となる毎秒フレーム数が、２５フレーム／秒以上又は以下の場合（例えば、６０フレーム／秒）もあるが、人間の目がゲーム画像フレームのレンダリングにおいて何らの遅れも感じないように、ゲームデータ処理機能２２とゲームレンダリング処理機能２４は２０から２５回／秒以下とならないように実行されることが望ましい。当然、フレームレートが高くなればなるほど、画像間の時間は短くなり、ゲームループを実行するに必要な処理装置もより高性能となり、ＧＰＵのような特別な処理装置に頼ることとなる。
【００３２】
他の実施例では、ゲームデータ処理機能２２とゲームレンダリング処理機能２４は別々のゲームループで、従って独立した処理で実行されることもある。こうした場合、ゲームレンダリング処理機能２４が実行中の時であっても、ゲームデータ処理機能２２は特別のレート（即ち、特別なアップデート回数／秒）でルーチン実行することが出来、またゲームデータ処理機能２２が実行中の時であっても、ゲームレンダリング処理機能２４は特別のレート（即、特別なフレーム数／秒）でルーチン実行することが出来る。
【００３３】
ゲームデータ処理機能２２とゲームレンダリング処理機能２４をルーチン的に行う処理は、当業者の範囲における多様な技術に基づいて実行され、そうした技術は本明細書において、ゲームデータ処理機能２２とゲームレンダリング処理機能２４がどのように実行されるかの一例として述べられる。
【００３４】
ゲームデータ処理機能２２が実行されると、コントローラ３を介したプレイヤ入力（もし有れば）及びゲームデータ３４が処理される。特に、プレイヤ７がビデオゲームをプレイする際には、プレイヤ７は、いくつかの例を挙げるが、左に移動せよ、右に移動せよ、ジャンプせよ、撃て、などの多様なコマンドをゲームコントローラ３を介して入力する。プレイヤが入力すると、ゲームデータ処理機能２２はゲームデータ３４をアップデートする。別の言い方をすると、オブジェクトデータ４２、レベルデータ４４及び／又はキャラクタデータ４６がゲームコントローラ３を介したプレイヤの入力に反応してアップデートされる。なおゲームデータ処理機能２２が実行するたびにゲームコントローラ３を介したプレイヤ入力がある訳では無い。プレイヤ入力が入力されなくても、ゲームデータ３４は処理され、アップデートされる。こうしたゲームデータ３４のアップデートは、表現及び／又は属性がゲームデータ３４に対するアップデートを規定しているとき、オブジェクトデータ４２、レベルデータ４４及び／又はキャラクタデータ４６の表現及び／又は属性に応じて行われる。例えば、タイマーデータは一つ以上のタイマー（例えば、経過時間、特定のイベントからの経過時間、一日のバーチャル時間など）を規定し、それらはゲームデータ３４（例えば、オブジェクトデータ４２、レベルデータ４４及び／又はキャラクタデータ４６）のアップデートを生じさせる。他の例として、プレイヤ７によって制御されないオブジェクトが衝突すると（跳ね返ったり、合流したり、砕けたりなど）、ゲームデータ３４、例えばオブジェクトデータ４２、レベルデータ４４及び／又はキャラクタデータ４６は衝突によりアップデートされる。
【００３５】
一般的に、ゲームデータ３４（例えば、オブジェクト、レベル及び／又はキャラクタの表現及び／又は属性）はゲームの３次元（３Ｄ）グラフィック画像を規定するデータを表す。一つ以上の３Ｄグラフィックオブジェクトを含む３次元（３Ｄ）グラフィック画像を、ディスプレィ装置５に表示する２次元（２Ｄ）のラスタライズされたゲーム画像に変換する処理は、一般的にレンダリングと呼ばれる。図２Ｃに、３Ｄグラフィックシーンをディスプレィ装置５にスクリーンを介して表示するためのゲーム画像に変換する例を示す。ステップ５２で、ゲームデータ処理機能２２は、ゲームの３次元（３Ｄ）グラフィックシーンを表現するデータを処理して、複数のバーテックスデータに変換する。バーテックスデータはレンダリングパイプライン５５（グラフィックパイプラインとしても知られている）により処理するのに適している。ステップ５５では、ゲームレンダリング処理機能２４がレンダリングパイプライン５５によりバーテックスを処理する。レンダリングパイプライン５５の出力は、スクリーンを介してディスプレィ装置５に表示する一般的なピクセルである（ステップ６０）。
【００３６】
より詳細に述べると、ステップ５２で、グラフィックシーンの３Ｄグラフィックオブジェクトは、一つ以上の３Ｄグラフィック要素に細分化される。要素は、レンダリングのための幾何学的な存在（例えば、点、線、ポリゴン、表面、オブジェクト、パッチなど）を規定するために互いにグループ化され接続された一つ以上のバーテックスのグループである。各３Ｄグラフィック要素毎に、バーテックスデータがこの段階で生成される。各要素のバーテックスデータは一つ以上の属性（例えば、位置、色、法線又はテクスチャ座標系情報など）を含むものである。バーテックスデータを引き出す際に、カメラ変換（a camera transformation）（例えば、回転変換）が行われ、３Ｄグラフィックシーンの３Ｄグラフィックオブジェクトを、現在の視点又はカメラアングルに変換する。また、バーテックスデータを引き出す際に、光源データ（例えば、方向、位置、色及び／又は強度）が考慮される。この段階で引き出されたバーテックスデータは、一般的にレンダリングパイプライン５５に送られるバーテックスの順序付きリストである。順序付きリストのフォーマットは一般的にレンダリングパイプライン５５の具体的な実行に依存する。
【００３７】
ステップ５５で、ゲームレンダリング処理機能２４はバーテックスデータをレンダリングパイプライン５５により処理する。レンダリングパイプラインはよく知られており（例えば、OpenGl、DirectXなど）、レンダリングパイプライン５５の実行に用いられる特定のレンダリングパイプラインに拘わらず、レンダリングパイプライン５５の一般的な処理は、３Ｄシーンの２Ｄラスタ表現（例えば、ピクセル）を生成することである。レンダリングパイプライン５５は、一般的に、バーテックスデータの２次元（２Ｄ）スクリーン空間への投影位置を計算し、ディスプレィ５に出力するためのゲーム画像（例えば、ピクセル）を引き出すために、光、色、位置、情報、テクスチャ座標を考慮に入れた多様な処理及び／又は他の適当な処理を行なう（ステップ６０）。
【００３８】
ある場合には、ゲーム装置１はインターネットのサーバーと一つ以上のインターネット設備の間に配置される。従って、複数のプレイヤが同じオンラインゲームに参加することが出来、ゲームプログラムの機能（ゲームレンダリング機能及び／又はゲームデータ処理機能）は、少なくとも一部をサーバーにより実行することも可能である。
【００３９】
ゲームレンダリング処理機能２４の実施例では、以下に詳細に述べる画像処理方法を実行する。特に図３に示すように、画像フレームの各ピクセルがＮ個の相対サンプル位置と関連付けられている。これらの相対サンプル位置の一つは、ピクセル中心に対応しており、それは例えば、２−Ｄ座標を使用して表すことが出来る。他のＮ−１個の相対サンプル位置は、該ピクセル中心の近傍のＮ−１個のサブピクセルに対応しており、該ピクセルの「部分」と考えることが出来る。一つの実施例では、Ｎ−１＝４であり、各ピクセルに関連して５個の潜在的な相対サンプル位置が有る。例えば、位置は、「中央」、「右上」、「左上」、「右下」及び「左下」である。相対サンプル位置の数は、任意で有り、ピクセル内のそれらの配置は、規則的でも、不規則でも良い。
【００４０】
一時的なアンチエイリアシングを適用すると、連続するフレームＦ、Ｆ＋１、……Ｆ＋２に渡ってピクセルＰを表現するのに使用される明度は、以下のように計算される（図４参照）：
−連続する最初のフレーム（即ち、Ｆ）において、処理装置１０は、Ｎ個の相対サンプル位置（ピクセル中央又はＮ−１個のサブピクセルの何れかの位置）の最初の一つの位置の明度を計算する。
−連続する２番目のフレーム（即ち、Ｆ＋１）において、処理装置１０は、Ｎ個の相対サンプル位置の２番目の位置の明度を計算する。
−連続する３番目のフレーム（即ち、Ｆ＋２）において、処理装置１０は、Ｎ個の相対サンプル位置の３番目の位置の明度を計算し、こうして引き続く各フレームにおいて明度を計算し、引き続くＮ＋１番目のフレームに達し、Ｎ個の相対サンプル位置のサイクルが終了すると、最初からやり直す。
【００４１】
従って、ピクセルＰは、連続する各フレームについて、異なるサンプル位置で「サンプリング」される点に注目するべきである。勿論、多様なフレーム内で他のピクセルについても処理は行われるが、共通するフレームの全てのピクセルは、それぞれのピクセル内で同じ相対サンプル位置でサンプリングされる。
【００４２】
説明を簡略化するために、フレームＦのピクセルＰを表すのに使用される明度を、Ｔ（Ｐ；Ｆ）で表す。この「表された明度（rendered color value」」は、「現在の寄与」と「過去の寄与」の混合（例えば、正規化された一時結合）である。現在の寄与は、ピクセルＰ及びフレームＦの「現在の明度」を含むものである（Ｃ（Ｐ；Ｆで表す）。現在の明度は、現在の場面の幾何学的配置及び照明状態に基づく瞬間的な明度である。この部分については、過去の寄与は、以前のフレームＦ−１の関連するピクセル（Ｐ＃で表す）の近傍の一つ以上のピクセルの明度を以前に計算したものを含むものである。この過去の寄与は、Ｔ＿ＣＯＭＢ（Ｐ＃；Ｆ−１）で表すことが出来、例えば、メモリ１１のアキュムレーションバッファ内に格納されている。
【００４３】
関連するピクセルＰ＃はピクセルＰを含むかもしれないし、含まないかもしれず、それはフレームＦ−１とフレームＦとの間でピクセルＰの近傍で根本的な画像がどれほど変化したかによる。（変化は場面内の動きやカメラの動きの結果であり得る。）また、関連するピクセルＰ＃（及び関連するピクセルＰ＃の近傍の一つ以上のピクセル）の、サンプルが行われる相対サンプル位置は、ピクセルＰのサンプリングで使用される相対サンプル位置とは異なることを、認識すべきである。
【００４４】
こうして更に図５を参照すると、フレームＦのピクセルＰの表された明度は、以下の式で表現することが出来る。
Ｔ（Ｐ；Ｆ）＝ [W]*PAST + [1-W]*PRESENT
＝ [w]*T_COMB(P#;F-1) + [1-W]*C(P;F)
【００４５】
上の式は、この例では、線形の組合せであるが、これは必ずしも本件に必要なことではないが、後述する利点を持った二つの概念を示すものである。一つ目は、[W] と [1-W]、即ち過去と現在の相対的な寄与、の分布を決定する概念である。二つ目は、過去の寄与T_COMB(P#;F-1)を決定する概念である。この量は、フレームＦ−１のピクセルＰについて表された明度と等しくなく、またフレームＦ−１の関連するピクセルＰ＃について表された明度とも等しくないことを認識すべきである。むしろ、それは後述するように、ピクセルＰ＃と関連するピクセルＰ＃の近傍のゼロ又は一つ以上のピクセルの組合せに関連して表された明度の線形な組合せである。
【００４６】
過去と現在の相対的な寄与の決定
フレームＦ内でサンプリングされるピクセルＰの実際の座標は、Ｓ（Ｐ；Ｆ）で示される。それは、ピクセルＰについてＮ個の可能性（Ｎ個の相対サンプル位置に対応している）の内の一つであり、またフレームＦが引き続くフレーム内の何処に位置するかによる。ゲーム内の元となるオブジェクト（又は「場面素子」）上の点にも関連している。こうして同じピクセルでサンプリングされた異なる座標（それらは、２，４，５，９……個となるかもしれないが）は、同じ元となるオブジェクト上の異なる点、又は異なる元となるオブジェクト上の点と関連しているかもしれない。メモリ１１の一部であるベロシティバッファ５００（図５参照）は、元となるオブジェクトが前のフレームでも存在しているという仮定のもと、現在のフレームの多様な潜在的サンプル座標と、これらの座標に位置する元となるオブジェクト上の正確な点が前のフレームに現れる場所で、投影距離及び方向を関連付ける。他の実施例では、ベロシティバッファ５００は、現在のフレームの潜在的なサンプル座標の各セットについて、これらのサンプル座標に位置する元となるオブジェクト上の正確な点が前のフレームで現れている実際の座標を格納することも出来る。ベロシティバッファ５００の内容の演算は、少なくとも部分的にはゲームデータ３４に基づいて処理装置１０が実行する。現在のフレームに関するあるサンプル座標に位置する元となるオブジェクト上の正確な点が前のフレームで現れていた場所の、投影距離及び方向を演算ずる際には、処理装置１０は、現在と前のフレーム間の相対的なサンプル座標の変化を補正することが出来る。言い換えれば、もし場面変化が無く、カメラが動かなければ、現在のサンプリング位置からの投影距離は常に同じ点に導かれる。言い換えれば、サンプリング位置の変更は距離の変更をもたらし、前のフレームの同じ座標に向いている。
【００４７】
限定されない実施例によると、過去と現在の相対的な分布（即ち、前述の式の[Ｗ]と[１−Ｗ]）は、多様な要素に基づいてピクセル間及びフレーム間で変化する。特にフレームＦのピクセルＰを考えると、一つのキーとなる要素は、（ｉ）フレームＦ−１内で、ピクセルＰに対応する元となるオブジェクト上の点がフレームＦ内でサンプリングされた位置、と（ｉｉ）この位置を含むフレームＦ−１のピクセルの中央、間の距離である。言い方を変えれば、過去と現在の相対的な分布は「現在のサンプル座標を占める場面素子の前の位置」と該前の位置を含んだピクセルの中央との距離に依存する。この点は、図６を参照して説明する。
【００４８】
上述したように、フレームＦで現在サンプリングされたピクセルＰの座標をＳ（Ｐ；Ｆ）とする。この例では、Ｓ（Ｐ；Ｆ）はピクセルＰの左下のサブピクセルに対応している。これらの座標に場面素子があり、この場合、それはナイフの刃の先端に近い点である。この場面素子は、「前の位置」、即ち、前のフレームＦ−１内の位置を有している。特に、フレームＦ内のピクセルＰについての現在のサンプル座標を占めている場面素子の前の位置は、ＰＲＥＶ（Ｓ（Ｐ；Ｆ））で示され、ＰＲＥＶ（Ｓ（Ｐ；Ｆ））を有するピクセルは、Ｐ＃で示されている。こうしてフレームＦ−１内のピクセルＰ＃（図６参照）は、フレームＦ内のピクセルＰに「関連するピクセル」として言及される。
【００４９】
ＰＲＥＶ（Ｓ（Ｐ；Ｆ））で示される、「現在のサンプル座標を占める場面素子の前の位置」は、オブジェクトの動きについての情報（問題となる場面素子に関するオブジェクトも含めて）を格納するバッファ５００を参照することで得ることが出来る。ＰＲＥＶ（Ｓ（Ｐ；Ｆ））は、相対サンプル位置（例えば、ピクセルの中央又はサブピクセルの位置）の一つと対応しているが、かならずしもそうで無くてもよい。例えば、フレームＦの「左下」の相対サンプル位置を占めるナイフの刃の先端近くの点は、フレームＦ−１の関連するピクセルＰ＃の「右下」の相対サンプル位置を占めている。しかしながら、まさに同じ素子（ナイフの刃の先端近くの点）が関連するピクセルＰ＃の異なる点を占めているが、それは予め決められた相対サンプル位置（この非限定的な例では、５つの相対サンプル位置がある）の一つである必要は無い。
【００５０】
ＰＲＥＶ（Ｓ（Ｐ；Ｆ））と関連するピクセルＰ＃の中央との間の距離は、前述の式の[Ｗ]と[１−Ｗ]を決定する要素である。この実施例では、ＰＲＥＶ（Ｓ（Ｐ；Ｆ））が関連するピクセルＰ＃の中央に近づけば近づくほど、過去の寄与により多くの重みが与えられる。逆に、ＰＲＥＶ（Ｓ（Ｐ；Ｆ））が関連するピクセルＰ＃の中央から遠ざかれば遠ざかるほど、過去の寄与への重みが少なくなり、現在の寄与により多くの重みが与えられる。過去の寄与を性格付ける係数Ｗの値は、こうして前述の要素に依存しつつ、０．７５から０９５の間の近辺であろう。なお、他の範囲も勿論、可能である。
【００５１】
異なる言い方をすると、過去の寄与に与えられる重みの量は、現在のサンプル座標（前述のように、相対サンプル位置はフレーム間で補正される）を占める対応するオブジェクト上の点の前の位置が、どれほどピクセルの中心に近いかによって変動する。それにも関わらず、どんなにこの距離が大きくなっても、常に何らかのゼロ以外の重みを過去の寄与に与えることが望ましい。
【００５２】
過去の寄与  Ｔ＿ＣＯＭＢ（Ｐ＃；Ｆ−１）の決定
前述したように、過去の寄与Ｔ＿ＣＯＭＢ（Ｐ＃；Ｆ−１）は、ピクセルＰ＃と、関連するピクセルＰ＃の近傍のゼロ又は一つ以上のピクセルについての前に表された明度の線形な組合せである。特に、関連するピクセルＰ＃の近傍にＭ個の追加のピクセルのようなものがあってもよい。その数は、言ってみれば、例えば０から９であり、処理上の要求やＰＲＥＶ（Ｓ（Ｐ；Ｆ））によるであろう。
【００５３】
特に、ＰＲＥＶ（Ｓ（Ｐ；Ｆ））が関連するピクセルＰ＃の正に中央であり、Ｍ＝０と置いて、全ての過去の寄与を関連するピクセルＰ＃に属させ、他の前に表された明度は不要としたとき、この場合、
Ｔ＿ＣＯＭＢ（Ｐ＃；Ｆ−１）＝Ｔ（Ｐ＃；Ｆ−１）
となる。
【００５４】
一方、ＰＲＥＶ（Ｓ（Ｐ；Ｆ））が関連するピクセルＰ＃の正確に中央ではなく、Ｍ＞０であり、関連するピクセルＰ＃とＰＲＥＶ（Ｓ（Ｐ；Ｆ））の近傍の他のＭ個のピクセルの過去の明度が組み合わされてＴ＿ＣＯＭＢ（Ｐ＃；Ｆ−１）となる方法は、線形の組合せで与えられる：
2018085084.tif 000003

ここで、多様なＰ＃ｉは、関連するピクセルＰ＃以外の、その近傍のピクセルを意味し、特にＰＲＥＶ（Ｓ（Ｐ；Ｆ））の近傍のピクセルである。
【００５５】
例えば、図７のＰで、Ｐ＃１、Ｐ＃２及びＰ＃３はＰＲＥＶ（Ｓ（Ｐ；Ｆ））の近傍の、Ｐ＃以外のピクセルを意味する。
【００５６】
線形の組合せのＭ＋１個の前述の係数（ａ０、ａ１、……ａＭ）のそれぞれの値は、ＰＲＥＶ（Ｓ（Ｐ；Ｆ））と対応するピクセル（Ｐ＃、Ｐ＃１、……Ｐ＃Ｍ）の中央又は端部との間の相対距離（ｄ０、ｄ１、……ｄＭ）をベースに選択することが出来る。
【００５７】
二つの限定されない例において、相対距離は、ユークリッド距離（図８参照）又はマンハッタン距離（図９参照）に基づいて評価することが出来、演算条件に依存する。
【００５８】
ある実施例では、線形の組合せＴ＿ＣＯＭＢ（Ｐ＃；Ｆ−１）の係数（ａ０、ａ１、……ａＭ）は、常に合計して１となるように正規化される。
【００５９】
また、線形の組合せ以外の組合せを使用することが出来る。
【００６０】
変形例として、過去の寄与を決定する際に、一つより多い過去フレームに目を向けることも出来る。
【００６１】
上記した記述及び図は、いくつかの例示的な実施例を記述し、示したものであり、本発明の範囲内において変形が可能である。例えば、当業者に取って周知であろう素子については、ここでは述べていない、一方、述べられたある特性は、ある実施例では省略され、他の実施例では含まれている。当業者は、勿論、本発明がここに添付されたクレームによってのみ限定されることを理解するものである。
【図１】
2018085084.tif 000004
【図２Ａ】
2018085084.tif 000005
【図２Ｂ】
2018085084.tif 000006
【図２Ｃ】
2018085084.tif 000007
【図３】
2018085084.tif 000008
【図４】
2018085084.tif 000009
【図５】
2018085084.tif 000010
【図６】
2018085084.tif 000011
【図７】
2018085084.tif 000012
【図８】
2018085084.tif 000013
【図９】
2018085084.tif 000014