(57)【要約】【課題】高解像度映像をインタラクティブに描画する。【解決手段】視線ベクトルと画像内のオブジェクトとの交点の３次元座標を計算する手段１０３と、３次元動きベクトルを得る手段１０４と、交点の３次元座標におけるカラー値を得る手段１０５と、オブジェクトごとに異なる交点のオブジェクトＩＤを割り当てる手段１０６と、交点の２次元座標および交点の２次元動きベクトルを得る手段１０７と、交点の２次元座標および交点の２次元動きベクトルと交点のカラー値と交点のオブジェクトＩＤとをフレーム単位にまとめて低解像度データとして記憶する手段１０８と、手段１０８に記憶されている現在のフレームのデータと手段１０８に記憶されている現在のフレームとは時間的に異なる複数フレームのデータとを重ね合わせて中解像度データを得る手段１０９と、中解像度データをフィルタリングして高解像度データを得る手段１１０と、を具備する。【選択図】図１
2007066012.tif 000002
【特許請求の範囲】
【請求項１】
座標変換に関するデータ、カメラに関するデータ、ジオメトリに関するデータ、光源に関するデータ、テクスチャに関するデータを含むＣＧデータを記憶しているＣＧデータ記憶手段と、
前記ＣＧデータの座標系を視点から見た座標系であるカメラ座標系に座標変換する座標変換手段と、
前記座標変換されたＣＧデータを用いて、表示される画像面のピクセルからサンプリングしたサンプリング点を通る視線ベクトルと、前記画像内のオブジェクトと、の交点の３次元座標を計算する交点座標計算手段と、
前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標における３次元動きベクトルを計算する交点動きベクトル計算手段と、
前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標におけるカラー値を計算する交点カラー計算手段と、
前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標における、オブジェクトごとに異なる、交点のオブジェクトＩＤを割り当てる交点オブジェクトＩＤ割り当て手段と、
前記座標変換されたＣＧデータを用いて、前記計算された交点の３次元座標と、前記計算された交点の３次元動きベクトルと、を投影面に投影して、交点の２次元座標および交点の２次元動きベクトルを計算する交点投影手段と、
前記計算された、交点の２次元座標および交点の２次元動きベクトルと、前記計算された、交点のカラー値と、前記割り当てられた、交点のオブジェクトＩＤとを、フレーム単位にひとまとめにして低解像度映像データとして記憶する第１解像度映像列記憶手段と、
前記第１解像度映像列記憶手段に記憶されている現在のフレームの低解像度映像データと、前記第１解像度映像列記憶手段に記憶されている現在のフレームとは時間的に異なる複数フレームの低解像度映像データと、を重ね合わせて、中解像度映像データを計算する中解像度映像計算手段と、
前記計算された中解像度映像データをフィルタリングして、高解像度映像データを計算する高解像度映像計算手段と、
前記計算された高解像度映像データをフレーム単位で記憶する高解像度映像記憶手段と、
前記高解像度映像データを提示する提示手段と、を具備することを特徴とする映像描画装置。
【請求項２】
前記中解像度映像計算手段は、前記第１解像度映像列記憶手段に記憶されている現在のフレームの低解像度映像データと、前記第１解像度映像列記憶手段に記憶されている現在のフレームよりも時間的に後の複数フレームの低解像度映像データと、を重ね合わせて中解像度映像データを計算することを特徴とする請求項１に記載の映像描画装置。
【請求項３】
前記中解像度映像計算手段は、前記第１解像度映像列記憶手段に記憶されている現在のフレームの低解像度映像データと、前記第１解像度映像列記憶手段に記憶されている現在のフレームよりも時間的に前の複数フレームの低解像度映像データと、を重ね合わせて中解像度映像データを計算することを特徴とする請求項１に記載の映像描画装置。
【請求項４】
前記中解像度映像計算手段は、前記第１解像度映像列記憶手段に記憶されている現在のフレームの低解像度映像データと、前記第１解像度映像列記憶手段に記憶されている現在のフレームよりも時間的に後の複数フレームの低解像度映像データと、前記第１解像度映像列記憶手段に記憶されている現在のフレームよりも時間的に前の複数フレームの低解像度映像データと、を重ね合わせて中解像度映像データを計算することを特徴とする請求項１に記載の映像描画装置。
【請求項５】
前記中解像度映像計算手段は、
前記第１解像度映像列記憶手段に記憶されている現在のフレームの低解像度映像データに含まれている交点の２次元座標および交点の２次元動きベクトルを取得する第１取得手段と、
前記第１解像度映像列記憶手段に記憶されている現在のフレームとは時間的に異なる各フレームの低解像度映像データに含まれている交点の２次元座標および交点の２次元動きベクトルを取得する第２取得手段と、
前記第２取得手段で取得された２次元動きベクトルの中から、現在のフレームに戻る動きを示すものを選択する選択手段と、
前記選択された２次元動きベクトルに対応する低解像度映像データと、前記現在のフレームの低解像度映像データと、を加算する加算手段と、を具備することを特徴とする請求項１から請求項４のいずれか１項に記載の映像描画装置。
【請求項６】
前記高解像度映像計算手段は、
前記提示される高解像度映像データに応じて複数のピクセルを選択するピクセル選択手段と、
前記ピクセルごとに、前記計算された中解像度映像データに含まれている交点の中から、ピクセルを中心としたある大きさの領域に含まれている複数の第１交点を選択する第１交点選択手段と、
前記選択された第１交点のうち、現在とは異なるフレームに含まれていた第２交点を選択する第２交点選択手段と、
前記選択された第２交点ごとに、各第２交点を中心とした、前記オブジェクトに応じて決まる大きさの領域に、現在のフレームに含まれている第３交点を選択する第３交点選択手段と、
前記第２交点のオブジェクトＩＤと、前記第３交点のオブジェクトＩＤとを比較する比較手段と、
前記比較手段により、前記第２交点のオブジェクトＩＤと、前記第３交点のオブジェクトＩＤとが異なる場合には、該第２交点を中解像度映像データから除外する除外手段と、
前記中解像度映像データに含まれている交点の中で除外されなかった交点に基づいて、前記複数のピクセルのカラー値を計算する計算手段と、を具備することを特徴とする請求項１から請求項５のいずれか１項に記載の映像描画装置。
【請求項７】
３次元データ処理部と２次元データ処理部とを具備する映像描画装置において、
前記３次元データ処理部は、
座標変換に関するデータ、カメラに関するデータ、ジオメトリに関するデータ、光源に関するデータ、テクスチャに関するデータを含むＣＧデータを記憶しているＣＧデータ記憶手段と、
前記ＣＧデータの座標系を視点から見た座標系であるカメラ座標系に座標変換する座標変換手段と、
前記座標変換されたＣＧデータを用いて、表示される画像面のピクセルからサンプリングしたサンプリング点を通る視線ベクトルと、前記画像内のオブジェクトと、の交点の３次元座標を計算する交点座標計算手段と、
前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標における３次元動きベクトルを計算する交点動きベクトル計算手段と、
前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標におけるカラー値を計算する交点カラー計算手段と、
前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標における、オブジェクトごとに異なる、交点のオブジェクトＩＤを割り当てる交点オブジェクトＩＤ割り当て手段と、
前記座標変換されたＣＧデータを用いて、前記計算された交点の３次元座標と、前記計算された交点の３次元動きベクトルと、を投影面に投影して、交点の２次元座標および交点の２次元動きベクトルを計算する交点投影手段と、
前記計算された、交点の２次元座標および交点の２次元動きベクトルと、前記計算された、交点のカラー値と、前記割り当てられた、交点のオブジェクトＩＤとを、フレーム単位にひとまとめにして低解像度映像データとして記憶する第１解像度映像列記憶手段と、を具備し、
前記２次元データ処理部は、
前記計算された、交点の２次元座標および交点の２次元動きベクトルと、前記計算された、交点のカラー値と、前記割り当てられた、交点のオブジェクトＩＤとを、フレーム単位にひとまとめにして低解像度映像データとして記憶する第１解像度映像列記憶手段と、
前記第１解像度映像列記憶手段に記憶されている現在のフレームの低解像度映像データと、前記第１解像度映像列記憶手段に記憶されている現在のフレームとは時間的に異なる複数フレームの低解像度映像データとを重ね合わせて、中解像度映像データを計算する中解像度映像計算手段と、
前記計算された中解像度映像データをフィルタリングして、高解像度映像データを計算する高解像度映像計算手段と、
前記計算された高解像度映像データをフレーム単位で記憶する高解像度映像記憶手段と、
前記高解像度映像データを提示する提示手段と、を具備することを特徴とする映像描画装置。
【請求項８】
前記３次元データ処理部と前期２次元データ処理部の間を流れるデータ量を測定する測定手段と、
前記測定されたデータ量に応じて、前記交点座標計算手段にて計算される、交点の数を制御する制御手段をさらに具備することを特徴とする請求項７に記載の映像描画装置。
【請求項９】
前記低解像度映像列記憶部のバンド幅を測定する測定手段と、
前記バンド幅に応じて、前記交点座標計算手段にて計算される、交点の数を制御する制御手段をさらに具備することを特徴とする請求項１から請求項７のいずれか１項に記載の映像描画装置。
【請求項１０】
現在のフレームにおいて描画している映像に求められるインタラクティブ性の高さを評価するインタラクティブ評価手段と、
前記インタラクティブ性の高さに応じて、前記交点座標計算手段にて計算される、交点の数を制御する制御手段と、をさらに具備することを特徴とする請求項１から請求項７のいずれか１項に記載の映像描画装置。
【請求項１１】
現在のフレームにおける消費電力を測定する測定手段と、
前記測定された消費電力に応じて、前記交点座標計算手段にて計算される、交点の数を制御する制御手段と、をさらに具備することを特徴とする請求項１から請求項７のいずれか１項に記載の映像描画装置。
【請求項１２】
視点から見た座標系であるカメラ座標系に座標変換されたＣＧデータを用いて、表示される画像面のピクセルからサンプリングしたサンプリング点を通る視線ベクトルと、前記画像内のオブジェクトと、の交点の３次元座標および該交点の３次元座標における３次元動きベクトルを投影面に投影して得る交点の２次元座標および交点の２次元動きベクトルと、前記交点の３次元座標における交点のカラー値と、前記交点の３次元座標における、オブジェクトごとに異なる、交点のオブジェクトＩＤを割り当てられた、交点のオブジェクトＩＤとを、フレーム単位にひとまとめにして低解像度映像データとして記憶している第１解像度映像列記憶手段と、
前記第１解像度映像列記憶手段に記憶されている、現在のフレームの低解像度映像データと、前記第１解像度映像列記憶手段に記憶されている、現在のフレームとは時間的に異なる複数フレームの低解像度映像データと、を重ね合わせて、中解像度映像データを計算する中解像度映像計算手段と、
前記計算された中解像度映像データをフィルタリングして、高解像度映像データを計算する高解像度映像計算手段と、
前記計算された高解像度映像データをフレーム単位で記憶する高解像度映像記憶手段と、
前記高解像度映像データを提示する提示手段と、を具備することを特徴とする映像描画装置。
【請求項１３】
請求項７に記載の３次元データ処理部を複数個有し、各該３次元データ処理部は、他の３次元データ処理部とは異なるフレームについて処理を行い、
請求項７に記載の単一の２次元データ処理部を有し、該２次元データ処理部は、各前記３次元データ処理部からの低解像度映像データを受け付けることを特徴とする映像描画装置。
【請求項１４】
請求項７に記載の３次元データ処理部を複数個有し、各前記３次元データ処理部は、同一のフレームの映像を任意の形状で分割した複数の領域である複数の映像ブロックのうち、他の３次元データ処理部とは異なる映像ブロックについて処理を行い、
前記各３次元データ処理部から映像ブロックごとの低解像度映像データを受け取り、該低解像度映像データをフレームごとに結合して、フレーム単位にひとまとめにして低解像度映像データを取得する低解像度映像ブロック結合手段を有し、
請求項７に記載の単一の２次元データ処理部を有し、該２次元データ処理部は、前記低解像度映像ブロック結合手段からの低解像度映像データを受け付けることを特徴とする映像描画装置。
【請求項１５】
請求項７に記載の３次元データ処理部を有し、
請求項７に記載の２次元データ処理部を複数個有し、各該２次元データ処理部は、他の２次元データ処理部とは異なるフレームについて処理を行うことを特徴とする映像描画装置。
【請求項１６】
請求項７に記載の単一の３次元データ処理部と、
前記計算された低解像度映像データを、同一のフレームの映像を任意の形状で分割した複数の領域である複数の映像ブロックに分割する低解像度映像ブロック分割手段と、
請求項７に記載の２次元データ処理部を複数個有し、各該２次元データ処理部は、他の２次元データ処理部とは異なる映像ブロックについて処理を行い、
各前記２次元データ処理部にて計算された高解像度映像データの各映像ブロックを結合する高解像度映像ブロック結合手段と、を具備することを特徴とする映像描画装置。
【請求項１７】
請求項７に記載の３次元データ処理部を複数個有し、各該３次元データ処理部は、他の３次元データ処理部とは異なるフレームについて処理を行い、
請求項７に記載の２次元データ処理部を複数個有し、各該２次元データ処理部は、各前記３次元データ処理部と１対１に接続して、各前記３次元データ処理部からのフレームごとの低解像度映像データを受け付けることを特徴とする映像描画装置。
【請求項１８】
請求項７に記載の３次元データ処理部を複数個有し、各該３次元データ処理部は、同一のフレームの映像を任意の形状で分割した複数の領域である複数の映像ブロックのうち、他の３次元データ処理部とは異なる映像ブロックについて処理を行い、
請求項７に記載の２次元データ処理部を複数個有し、各該２次元データ処理部は、各前記３次元データ処理部と１対１に接続して、各前記３次元データ処理部からの映像ブロックごとの低解像度映像データを受け付け、
各前記２次元データ処理部にて計算された高解像度映像データの各映像ブロックを結合する高解像度映像ブロック結合部を有することを特徴とする映像描画装置。
【請求項１９】
請求項７に記載の３次元データ処理部を複数個有し、各該３次元データ処理部は、他の３次元データ処理部とは異なるフレームについて処理を行い、
請求項７に記載の２次元データ処理部を複数個有し、各該２次元データ処理部は、それぞれ前記複数の３次元データ処理部のうちからある３次元データ処理部を選択し、該選択された３次元データ処理部からフレームごとの低解像度映像データを受け付けることを特徴とする映像描画装置。
【請求項２０】
請求項７に記載の３次元データ処理部を複数個有し、各該３次元データ処理部は、同一のフレームの映像を任意の形状で分割した複数の領域である複数の映像ブロックのうち、他の３次元データ処理部とは異なる映像ブロックについて処理を行い、
前記各３次元データ処理部から映像ブロックごとの低解像度映像データを受け取り、各フレームを任意の大きさの映像ブロックに分割した低解像度映像データを再構成する低解像度映像ブロック分配手段と、
請求項７に記載の２次元データ処理部を複数個有し、各該２次元データ処理部は、各２次元データ処理部の負荷に応じた大きさの映像ブロックの低解像度映像データを受け付け、
各前記２次元データ処理部にて計算された高解像度映像データの各映像ブロックを結合する高解像度映像ブロック結合手段と、を具備することを特徴とする映像描画装置。
【請求項２１】
座標変換に関するデータ、カメラに関するデータ、ジオメトリに関するデータ、光源に関するデータ、テクスチャに関するデータを含むＣＧデータを記憶しているＣＧデータ記憶手段を用意し、
前記ＣＧデータの座標系を視点から見た座標系であるカメラ座標系に座標変換し、
前記座標変換されたＣＧデータを用いて、表示される画像面のピクセルからサンプリングしたサンプリング点を通る視線ベクトルと、前記画像内のオブジェクトと、の交点の３次元座標を計算し、
前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標における３次元動きベクトルを計算し、
前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標におけるカラー値を計算し、
前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標における、オブジェクトごとに異なる、交点のオブジェクトＩＤを割り当て、
前記座標変換されたＣＧデータを用いて、前記計算された交点の３次元座標と、前記計算された交点の３次元動きベクトルと、を投影面に投影して、交点の２次元座標および交点の２次元動きベクトルを計算し、
前記計算された、交点の２次元座標および交点の２次元動きベクトルと、前記計算された、交点のカラー値と、前記割り当てられた、交点のオブジェクトＩＤとを、フレーム単位にひとまとめにして低解像度映像データとして記憶する第１解像度映像列記憶手段を用意し、
前記第１解像度映像列記憶手段に記憶されている現在のフレームの低解像度映像データと、前記第１解像度映像列記憶手段に記憶されている現在のフレームとは時間的に異なる複数フレームの低解像度映像データと、を重ね合わせて、中解像度映像データを計算し、
前記計算された中解像度映像データをフィルタリングして、高解像度映像データを計算し、
前記計算された高解像度映像データをフレーム単位で記憶する高解像度映像記憶手段を用意し、
前記高解像度映像データを提示することを特徴とする映像描画方法。
【請求項２２】
コンピュータを、
座標変換に関するデータ、カメラに関するデータ、ジオメトリに関するデータ、光源に関するデータ、テクスチャに関するデータを含むＣＧデータを記憶しているＣＧデータ記憶手段と、
前記ＣＧデータの座標系を視点から見た座標系であるカメラ座標系に座標変換する座標変換手段と、
前記座標変換されたＣＧデータを用いて、表示される画像面のピクセルからサンプリングしたサンプリング点を通る視線ベクトルと、前記画像内のオブジェクトと、の交点の３次元座標を計算する交点座標計算手段と、
前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標における３次元動きベクトルを計算する交点動きベクトル計算手段と、
前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標におけるカラー値を計算する交点カラー計算手段と、
前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標における、オブジェクトごとに異なる、交点のオブジェクトＩＤを割り当てる交点オブジェクトＩＤ割り当て手段と、
前記座標変換されたＣＧデータを用いて、前記計算された交点の３次元座標と、前記計算された交点の３次元動きベクトルと、を投影面に投影して、交点の２次元座標および交点の２次元動きベクトルを計算する交点投影手段と、
前記計算された、交点の２次元座標および交点の２次元動きベクトルと、前記計算された、交点のカラー値と、前記割り当てられた、交点のオブジェクトＩＤとを、フレーム単位にひとまとめにして低解像度映像データとして記憶する第１解像度映像列記憶手段と、
前記第１解像度映像列記憶手段に記憶されている現在のフレームの低解像度映像データと、前記第１解像度映像列記憶手段に記憶されている現在のフレームとは時間的に異なる複数フレームの低解像度映像データと、を重ね合わせて、中解像度映像データを計算する中解像度映像計算手段と、
前記計算された中解像度映像データをフィルタリングして、高解像度映像データを計算する高解像度映像計算手段と、
前記計算された高解像度映像データをフレーム単位で記憶する高解像度映像記憶手段と、
前記高解像度映像データを提示する提示手段として機能させるための映像描画プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像を描画するための映像描画装置、方法およびプログラムに関する。
【背景技術】
【０００２】
コンピュータグラフィックス（ＣＧ）の描画において、グローバルイルミネーションと呼ばれる技術が使われている。グローバルイルミネーションとは、シーン中のオブジェクトを描画する際に、そのオブジェクトの周囲にある他のオブジェクトからの間接光の影響を考慮して照明計算を行う技術である。
【０００３】
従来の照明計算ではオブジェクトに当たった光が反射して別のオブジェクトを照らす効果を再現することができないため、光が直接当たらない部分には環境光と呼ばれる一様な光が当たっているものとみなして照明計算を行う。これに対して、グローバルイルミネーションでは、現実世界と同様の照り返し効果や集光効果などを表現することができるため、より写実的な映像を描画することが可能になる。
【０００４】
グローバルイルミネーションにおける間接光の計算手法には、ラジオシティやフォトンマップ、パストレーシングなどいくつかの種類があるが、これらはすべて画像のピクセルを通る視線（レイ）とオブジェクトの交差判定に基づいている。したがって、基本的に計算時間は画像の解像度に比例する。
【０００５】
そのため、画像のすべてのピクセルにおいてレイとオブジェクトの交差判定を行うのではなく、適当な間隔で配置した低解像度のサンプリング点でのみ交差判定を行い、後でそれらをフィルタリングして高解像度化することによって計算時間を短縮し、インタラクティブにグローバルイルミネーション映像を描画する試みが以前よりなされている。
【０００６】
これらの試みでは、サンプリング点を均等な間隔で配置するのではなく、時間的に大きく変化する箇所に集中的に配置させるようにしたり、オブジェクトの輪郭線がボケないようにフィルタリングのタップ位置（どの点とどの点とをフィルタリングするかを示す）を変えるなどの工夫がなされている（例えば、非特許文献１参照）。
【０００７】
一方、コンピュータビジョンの研究分野では、低解像度の動画像から高解像度の動画像を復元する研究が以前より行われている。これらの研究は、１フレームの画像のみを利用するものと、複数フレームの画像を利用するものとの大きく２種類に分かれる。前者は得られる情報に限りがあるため復元精度はあまり高くないが、計算を比較的安定に行えるという特徴をもつ。これに対して後者は複数フレームの情報を利用するため理論的な復元精度は高いが、複数フレーム間のサブピクセルレベルでのマッチングを計算しなければならず、この計算を安定して行うことは難しい（例えば、非特許文献２参照）。
【非特許文献１】K. Bala, B. Walter, and D. P. Greenberg, "Combining Edges and Points for Interactive High-Quality Rendering", SIGGRAPH2003.
【非特許文献２】Sung Cheol Park, Min Kyu Park, and Moon Gi Kang, "Super-Resolution Image Reconstruction: A Technical Overview", IEEE SIGNAL PROCESSING MAGAZINE, May 2003.
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記のように、従来の映像描画装置では、グローバルイルミネーション映像を描画する際に低解像度のサンプリング点でのみレイとオブジェクトの交差判定を行い、後でそれらをフィルタリングして高解像度化することにより、計算時間の短縮をはかっている。
【０００９】
しかし、高解像度化の計算において１フレームのサンプリング点しか利用していないため、高解像度映像の品質を高くするためには１フレームあたりのサンプリング点の数をある程度多くしなければならず、計算時間の短縮と高品質を両立することが難しい。
【００１０】
一方、コンピュータビジョンの分野では複数フレームを利用した高解像度化技術が以前より研究されてきており、この技術をグローバルイルミネーションの計算に応用することが考えられるが、そのために必要となる複数フレーム間のサブピクセルマッチングを安定して計算することができない。
【００１１】
特に、オブジェクトの模様（テクスチャ）が等質である場合や、オブジェクトの輝度が時間変化する場合にマッチングに間違いが生じることが多い。上記の非特許文献２には、統計的な誤差モデルに基づいて反復計算することによってマッチング誤差の影響を小さくする手法などが記載されているが、計算量が大きく、インタラクティブな用途にはあまり適さない。
【００１２】
この発明は、上述した事情を考慮してなされたものであり、高品質な高解像度グローバルイルミネーション映像をインタラクティブに描画する映像描画装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述の課題を解決するため、本発明の映像描画装置は、座標変換に関するデータ、カメラに関するデータ、ジオメトリに関するデータ、光源に関するデータ、テクスチャに関するデータを含むＣＧデータを記憶しているＣＧデータ記憶手段と、前記ＣＧデータの座標系を視点から見た座標系であるカメラ座標系に座標変換する座標変換手段と、前記座標変換されたＣＧデータを用いて、表示される画像面のピクセルからサンプリングしたサンプリング点を通る視線ベクトルと、前記画像内のオブジェクトと、の交点の３次元座標を計算する交点座標計算手段と、前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標における３次元動きベクトルを計算する交点動きベクトル計算手段と、前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標におけるカラー値を計算する交点カラー計算手段と、前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標における、オブジェクトごとに異なる、交点のオブジェクトＩＤを割り当てる交点オブジェクトＩＤ割り当て手段と、前記座標変換されたＣＧデータを用いて、前記計算された交点の３次元座標と、前記計算された交点の３次元動きベクトルと、を投影面に投影して、交点の２次元座標および交点の２次元動きベクトルを計算する交点投影手段と、前記計算された、交点の２次元座標および交点の２次元動きベクトルと、前記計算された、交点のカラー値と、前記割り当てられた、交点のオブジェクトＩＤとを、フレーム単位にひとまとめにして低解像度映像データとして記憶する第１解像度映像列記憶手段と、前記第１解像度映像列記憶手段に記憶されている現在のフレームの低解像度映像データと、前記第１解像度映像列記憶手段に記憶されている現在のフレームとは時間的に異なる複数フレームの低解像度映像データと、を重ね合わせて、中解像度映像データを計算する中解像度映像計算手段と、前記計算された中解像度映像データをフィルタリングして、高解像度映像データを計算する高解像度映像計算手段と、前記計算された高解像度映像データをフレーム単位で記憶する高解像度映像記憶手段と、前記高解像度映像データを提示する提示手段と、を具備することを特徴とする。
【００１４】
本発明の映像描画方法は、座標変換に関するデータ、カメラに関するデータ、ジオメトリに関するデータ、光源に関するデータ、テクスチャに関するデータを含むＣＧデータを記憶しているＣＧデータ記憶手段を用意し、前記ＣＧデータの座標系を視点から見た座標系であるカメラ座標系に座標変換し、前記座標変換されたＣＧデータを用いて、表示される画像面のピクセルからサンプリングしたサンプリング点を通る視線ベクトルと、前記画像内のオブジェクトと、の交点の３次元座標を計算し、前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標における３次元動きベクトルを計算し、前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標におけるカラー値を計算し、前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標における、オブジェクトごとに異なる、交点のオブジェクトＩＤを割り当て、前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標と、前記計算された交点の３次元動きベクトルと、を投影面に投影して、交点の２次元座標および交点の２次元動きベクトルを計算し、前記計算された、交点の２次元座標および交点の２次元動きベクトルと、前記計算された、交点のカラー値と、前記割り当てられた、交点のオブジェクトＩＤとを、フレーム単位にひとまとめにして低解像度映像データとして記憶する第１解像度映像列記憶手段を用意し、前記第１解像度映像列記憶手段に記憶されている現在のフレームの低解像度映像データと、前記第１解像度映像列記憶手段に記憶されている現在のフレームとは時間的に異なる複数フレームの低解像度映像データと、を重ね合わせて、中解像度映像データを計算し、前記計算された中解像度映像データをフィルタリングして、高解像度映像データを計算し、前記計算された高解像度映像データをフレーム単位で記憶する高解像度映像記憶手段を用意し、前記高解像度映像データを提示することを特徴とする。
【００１５】
本発明の映像描画プログラムは、コンピュータを、
座標変換に関するデータ、カメラに関するデータ、ジオメトリに関するデータ、光源に関するデータ、テクスチャに関するデータを含むＣＧデータを記憶しているＣＧデータ記憶手段と、前記ＣＧデータの座標系を視点から見た座標系であるカメラ座標系に座標変換する座標変換手段と、前記座標変換されたＣＧデータを用いて、表示される画像面のピクセルからサンプリングしたサンプリング点を通る視線ベクトルと、前記画像内のオブジェクトと、の交点の３次元座標を計算する交点座標計算手段と、前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標における３次元動きベクトルを計算する交点動きベクトル計算手段と、前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標におけるカラー値を計算する交点カラー計算手段と、前記座標変換されたＣＧデータを用いて、前記計算された、交点の３次元座標における、オブジェクトごとに異なる、交点のオブジェクトＩＤを割り当てる交点オブジェクトＩＤ割り当て手段と、前記座標変換されたＣＧデータを用いて、前記計算された交点の３次元座標と、前記計算された交点の３次元動きベクトルと、を投影面に投影して、交点の２次元座標および交点の２次元動きベクトルを計算する交点投影手段と、前記計算された、交点の２次元座標および交点の２次元動きベクトルと、前記計算された、交点のカラー値と、前記割り当てられた、交点のオブジェクトＩＤとを、フレーム単位にひとまとめにして低解像度映像データとして記憶する第１解像度映像列記憶手段と、前記第１解像度映像列記憶手段に記憶されている現在のフレームの低解像度映像データと、前記第１解像度映像列記憶手段に記憶されている現在のフレームとは時間的に異なる複数フレームの低解像度映像データと、を重ね合わせて、中解像度映像データを計算する中解像度映像計算手段と、前記計算された中解像度映像データをフィルタリングして、高解像度映像データを計算する高解像度映像計算手段と、前記計算された高解像度映像データをフレーム単位で記憶する高解像度映像記憶手段と、前記高解像度映像データを提示する提示手段として機能させるためのものである。
【発明の効果】
【００１６】
本発明の映像描画装置、方法およびプログラムによれば、高品質な高解像度グローバルイルミネーション映像をインタラクティブに描画することができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照しながら本発明の実施形態に係る映像描画装置、方法およびプログラムについて詳細に説明する。  
（第１の実施形態）後のフレームの重ね合わせ  
本発明の第１の実施形態に係る映像描画装置について図１を参照して説明する。  
本実施形態の映像描画装置は、図１に示すように、ＣＧデータ記憶部１０１、座標変換部１０２、交点座標計算部１０３、交点動きベクトル計算部１０４、交点カラー計算部１０５、交点オブジェクトＩＤ割り当て部１０６、交点投影部１０７、第１解像度映像列記憶部１０８、第２解像度映像計算部１０９、第３解像度映像計算部１１０、高解像度映像記憶部１１１、提示部１１２、制御部１１３を備えている。図１以下、提示部１１２は、映像描画装置に含まれていないが、含めても良い。
【００１８】
ＣＧデータ記憶部１０１は、座標変換に関するデータおよびカメラ（図示せず）に関するデータおよびジオメトリ（幾何）に関するデータおよび光源に関するデータおよびテクスチャに関するデータなどから構成されるＣＧデータを記憶している。  
座標変換部１０２は、ＣＧデータ記憶部１０１から取得したＣＧデータに座標変換を行い、視点から見た座標系（カメラ座標系）に変換する。  
交点座標計算部１０３は、座標変換部１０２にて計算された座標変換後のＣＧデータを用いて、レイとオブジェクトの交点の３次元座標を計算する。
【００１９】
交点動きベクトル計算部１０４は、座標変換部１０２にて計算された座標変換後のＣＧデータを用いて、交点座標計算部１０３にて計算された交点の３次元座標における３次元動きベクトルを計算する。交点動きベクトル計算部１０４は、交点の３次元動きベクトルをオブジェクトのポリゴン面を構成する頂点から補間して計算する。  
交点カラー計算部１０５は、座標変換部１０２にて計算された座標変換後のＣＧデータを用いて、交点座標計算部１０３にて計算された３次元座標における交点のカラー値を計算する。交点カラー計算部１０５は、３次元座標における交点のカラー値をオブジェクトのポリゴン面を構成する頂点から補間して計算する。  
交点オブジェクトＩＤ割り当て部１０６は、座標変換部１０２にて計算された座標変換後のＣＧデータを用いて、交点座標計算部１０３にて計算された交点の３次元座標における、オブジェクトごとに異なるオブジェクトＩＤを割り当てる。
【００２０】
交点投影部１０７は、座標変換部１０２にて計算された座標変換後のＣＧデータを用いて、交点座標計算部１０３にて計算された交点の３次元座標と、交点動きベクトル計算部１０４にて計算された交点の３次元動きベクトルを投影面に投影することにより、交点の２次元座標および交点の２次元動きベクトルを計算する。  
第１解像度映像列記憶部１０８は、交点投影部１０７にて計算された交点の２次元座標および交点の２次元動きベクトルと、交点カラー計算部１０５にて計算された交点のカラー値と、交点オブジェクトＩＤ割り当て部１０６にて割り当てられた交点のオブジェクトＩＤとを、フレーム単位にひとまとめにして低解像度映像データとして記憶する。  
第２解像度映像計算部１０９は、第１解像度映像列記憶部１０８から取得した現在のフレームの低解像度映像データに対して、異なる複数のフレームの低解像度映像データを重ね合わせることにより、中解像度映像データを計算する。  
第３解像度映像計算部１１０は、第２解像度映像計算部１０９にて計算された中解像度映像データをフィルタリングすることにより、高解像度映像データを計算する。  
高解像度映像記憶部１１１は、第３解像度映像計算部１１０にて計算された高解像度映像データをフレーム単位で記憶して保持する。高解像度映像データは各ピクセルのカラー値を保持する一般的な画像データである。図１に示したように、高解像度映像データは第３解像度映像計算部１１０によって高解像度映像記憶部１１１に書き込まれた後、提示部１１２が高解像度映像データを取得してユーザに提示される。  
提示部１１２は、高解像度映像記憶部１１１から取得した高解像度映像データをユーザに提示する。提示部１１２は、高解像度映像データをユーザに提示することのできるディスプレイなどで構成される。  
また、本実施形態では、すべてのブロックが単一の制御部１１３によって制御されるものとする。
【００２１】
以下、図１の映像描画装置の各ブロックの詳細な動作およびブロック間を流れるデータの構造について図２から図１７までを参照して説明していく。
【００２２】
［ＣＧデータ記憶部１０１］  
ＣＧデータ記憶部１０１に保持されているＣＧデータの例について図２を参照して説明する。図２に示すように、ＣＧデータは、座標変換データ、カメラデータ、ジオメトリデータ、光源データ、テクスチャデータを含んでいる。
【００２３】
座標変換データは、ワールド行列、ビュー行列、射影行列、ビューポートスケーリング行列などの座標変換に関するデータである。  
カメラデータは、ビューボリューム（視錐台）などのカメラに関するデータである。  
ジオメトリデータは、オブジェクトのポリゴン面を構成する頂点の３次元座標、頂点のインデックス値、頂点の３次元動きベクトル、頂点のカラー値、頂点のテクスチャ座標、頂点の法線ベクトル、頂点のオブジェクトＩＤなどのジオメトリ（幾何）に関するデータである。  
光源データは、光源の種類、光源の３次元座標、光源のカラー値などの光源に関するデータである。  
テクスチャデータは、テクスチャ画像のデータである。
【００２４】
ＣＧデータのうち、図３に示す、頂点の３次元座標、頂点の３次元動きベクトル、頂点の法線ベクトル、光源の３次元座標は、それぞれ固有のローカル座標系、あるいは共通のワールド座標系、あるいはカメラ位置を原点とするカメラ座標系のいずれかの座標系において定義されており、座標変換部１０２にてカメラ座標系へと座標変換されてから後段のブロックへ送られる。  
図３に示されていない上記以外のＣＧデータは座標変換部１０２では何も処理されずに後段のブロックへ送られる。
【００２５】
ところで、一般に、頂点座標および光源座標の値は、３次元座標ＸＹＺあるいは同次座標ＸＹＺＷで表されるが、本明細書ではこれらをまとめて３次元座標と表記する。  
なお、頂点の３次元動きベクトルとは、現在のフレームにおけるその頂点の３次元座標と、異なるフレームにおける頂点の３次元座標と、を結ぶベクトルであり、頂点の時間的な動きを表すものである。図４に示すように、本実施形態では、現在のフレームにおける各頂点に対して、現在のフレームよりも時間的に前の複数フレームにおける位置へと戻る動きを表す複数のベクトルが属性としてあらかじめ割り当てられており、これらの複数のベクトルがＣＧデータ記憶部１０１に保持されている。
【００２６】
また、図５に示すように、頂点のオブジェクトＩＤとは、その頂点が属するポリゴン面を含むオブジェクトを一意に識別するためのＩＤであり、各頂点にあらかじめ割り当てられてＣＧデータ記憶部１０１に保持されている。例えば、図５に示すように、オブジェクトａの各頂点のオブジェクトＩＤは、「ａ」である。
【００２７】
また、図１ではＣＧデータ記憶部１０１と第１解像度映像列記憶部１０８と高解像度映像記憶部１１１を異なるブロックとして表記しているが、これらは単一のメモリ上にまとめて構成してもよいし、容量やアクセス速度の異なる複数のメモリ上に分割して構成してもよい。また、ＣＧデータ記憶部１０１に保持されているＣＧデータは図２の形式に限定されず、所望のＣＧを描画するために必要となるあらゆるデータを含んでもよい。
【００２８】
［座標変換部１０２］  
座標変換部１０２の処理フローについて図６を参照して説明する。  
最初のステップＳ６０１では、ＣＧデータ記憶部１０１に保持されているＣＧデータを取得する。
【００２９】
ステップＳ６０２では、ステップＳ６０１にて取得したＣＧデータのうち、図３に示されている頂点の３次元座標、頂点の３次元動きベクトル、頂点の法線ベクトル、光源の３次元座標に対して、同様にＣＧデータに含まれているワールド行列およびビュー行列を乗算することにより、座標系をカメラ座標系に変換する。  
行列の乗算手法は変換対象のＣＧデータがどの座標系において定義されているかによって決まる。ローカル座標系において定義されている場合にはワールド行列とビュー行列の両方をこの順番に乗算し、ワールド座標系において定義されている場合にはビュー行列のみを乗算する。最初からカメラ座標系において定義されている場合には、ステップＳ６０２では何も行わない。
【００３０】
ステップＳ６０３では、ステップＳ６０２にて座標変換されたＣＧデータと、それ以外のＣＧデータ（座標変換の対象でないＣＧデータ）を、交点座標計算部１０３、交点動きベクトル計算部１０４、交点カラー計算部１０５、交点オブジェクトＩＤ割り当て部１０６、交点投影部１０７へ出力する。
【００３１】
［交点座標計算部１０３］  
交点座標計算部１０３の処理フローについて図７を参照して説明する。  
最初のステップＳ７０１では、座標変換部１０２から送られてきたＣＧデータに含まれているビューボリュームおよび頂点の３次元座標を取得する。
【００３２】
ステップＳ７０２では、ステップＳ７０１にて取得したビューボリュームの前方クリップ面を、最終的に提示部１１２に提示する高解像度映像と同じ解像度をもつ画像面と見立て、その画像面のピクセルの中から適当な数を低解像度（第１解像度）サンプリング点として選択する。  
上記したように、非特許文献１などにおいてサンプリング点の選択手法に関する工夫がすでに提案されている。本発明の実施形態においても、これら従来手法と同様な手法を用いてサンプリング点を選択するものとする。そのため、サンプリング点の選択手法の詳細な説明は省略する。
【００３３】
ステップＳ７０３では、ステップＳ７０２にて選択されたサンプリング点を通る視線ベクトル（レイ）と、オブジェクトを構成するポリゴン面の交点の３次元座標を、ステップＳ７０１にて取得した頂点の３次元座標を参照して計算する。  
この計算は非常に処理量が大きいことがよく知られており、高速化のための様々な工夫がすでに提案されている。本発明の実施形態においても、これら従来手法と同様な手法を用いて計算を行うものとする。そのため、計算手法の詳細な説明は省略する。
【００３４】
ステップＳ７０４では、ステップＳ７０３にて計算されたレイとオブジェクトの交点の３次元座標の中から、最も視点の近くに位置するものを選択する。
【００３５】
ステップＳ７０５では、ステップＳ７０４にて選択されたレイとオブジェクトの交点の３次元座標と、その交点が属するポリゴン面の頂点に割り当てられているインデックス値を、交点動きベクトル計算部１０４、交点カラー計算部１０５、交点オブジェクトＩＤ割り当て部１０６、交点投影部１０７へ出力する。
【００３６】
［交点動きベクトル計算部１０４］  
交点動きベクトル計算部１０４の処理フローについて図８を参照して説明する。  
最初のステップＳ８０１では、座標変換部１０２から送られてきたＣＧデータに含まれている頂点の３次元座標および頂点の３次元動きベクトルを取得する。
【００３７】
ステップＳ８０２では、交点座標計算部１０３から送られてきたとレイとオブジェクトの交点の３次元座標と、その交点が属するポリゴン面の頂点を指し示すインデックス値を取得する。
【００３８】
ステップＳ８０３では、ステップＳ８０２にて取得した頂点のインデックス値を用いて、ステップＳ８０１にて取得した、頂点の３次元座標および頂点の３次元動きベクトルの中から、レイとオブジェクトの交点が属するポリゴン面を構成しているものを選択する。
【００３９】
ステップＳ８０４では、ステップＳ８０２にて取得したレイとオブジェクトの交点の３次元座標と、ステップＳ８０３にて選択された頂点の３次元座標を用いて、ステップＳ８０３にて選択された頂点の３次元動きベクトルを補間することにより、交点の３次元動きベクトルを計算する。
【００４０】
ステップＳ８０５では、ステップＳ８０４にて計算された交点の３次元動きベクトルを、交点投影部１０７へ出力する。
【００４１】
［交点カラー計算部１０５］  
交点カラー計算部１０５の処理フローについて図９を参照して説明する。  
最初のステップＳ９０１では、座標変換部１０２から送られてきたＣＧデータに含まれている頂点の３次元座標、頂点のカラー値、頂点のテクスチャ座標、頂点の法線ベクトルと、光源の種類、光源の３次元座標、光源のカラー値と、テクスチャデータを取得する。
【００４２】
ステップＳ９０２では、交点座標計算部１０３から送られてきたとレイとオブジェクトとの交点の３次元座標と、その交点が属するポリゴン面の頂点を指し示すインデックス値を取得する。
【００４３】
ステップＳ９０３では、ステップＳ９０２にて取得した頂点のインデックス値を用いて、ステップＳ９０１にて取得した頂点の３次元座標、頂点のカラー値、頂点のテクスチャ座標、頂点の法線ベクトルの中から、レイとオブジェクトの交点が属するポリゴン面を構成しているものを選択する。
【００４４】
ステップＳ９０４では、ステップＳ９０１にて取得した光源の種類、光源の３次元座標、光源のカラー値、テクスチャデータと、ステップＳ９０２にて取得したレイとオブジェクトの交点の３次元座標と、ステップＳ９０３にて選択された頂点の３次元座標、頂点のカラー値、頂点のテクスチャ座標、頂点の法線ベクトルを用いて、交点のカラー値を計算する。交点のカラー値の計算については後に図１０を参照して詳細に説明する。
【００４５】
ステップＳ９０５では、ステップＳ９０４にて計算された交点のカラー値を第１解像度映像列記憶部１０８へ出力する。
【００４６】
次に、ステップＳ９０４の交点のカラー値の計算についての典型的な処理フローの一例について図１０を参照して説明する。  
最初のステップＳ１００１では、交点が属するポリゴン面の頂点のテクスチャ座標を補間することにより、交点のテクスチャ座標を計算する。  
ステップＳ１００２では、交点が属するポリゴン面の頂点のカラー値を補間することにより、交点の初期カラー値を計算する。  
ステップＳ１００３では、交点が属するポリゴン面の頂点の法線ベクトルを補間することにより、交点の法線ベクトルを計算する。  
ステップＳ１００４では、ステップＳ１００１にて計算されたテクスチャ座標におけるテクスチャデータを参照し、テクスチャのカラー値を取得する。
【００４７】
ステップＳ１００５では、ステップＳ１００２にて計算された交点のカラー値を、ステップＳ１００３にて計算された交点の法線ベクトルと、ステップＳ１００４にて取得したテクスチャのカラー値と、光源からの光の影響を考慮して変化させる。この際、頂点が属するポリゴン面の周囲にある他のポリゴン面からの間接光の影響を加味することにより、グローバルイルミネーション効果を実現する。  
グローバルイルミネーションにおける間接光の計算手法にはいくつかの種類があり、様々な工夫がすでに提案されている。本発明の実施形態においても、これら従来手法と同様な手法を用いて計算を行うものとする。そのため、間接光の計算手法の詳細な説明は省略する。また、図１０の交点のカラー値の計算手法はあくまで一例であり、本発明における計算手法はこの手法に限定されない。
【００４８】
［交点オブジェクトＩＤ割り当て部１０６］  
交点オブジェクトＩＤ割り当て部１０６の処理フローについて図１１を参照して説明する。  
最初のステップＳ１１０１では、座標変換部１０２から送られてきたＣＧデータに含まれている頂点のオブジェクトＩＤを取得する。  
ステップＳ１１０２では、交点座標計算部１０３から送られてきたとレイとオブジェクトの交点が属するポリゴン面の頂点を指し示すインデックス値を取得する。  
ステップＳ１１０３では、ステップＳ１１０２にて取得した頂点のインデックス値を用いて、ステップＳ１１０１にて取得した頂点のオブジェクトＩＤの中から、レイとオブジェクトの交点が属するポリゴン面を構成しているものを選択する。  
ステップＳ１１０４では、ステップＳ１１０３にて選択された頂点のオブジェクトＩＤを、交点のオブジェクトＩＤとして割り当てる。  
ステップＳ１１０５では、ステップＳ１１０４にて割り当てられた交点のオブジェクトＩＤを第１解像度映像列記憶部１０８へ出力する。
【００４９】
［交点投影部１０７］  
交点投影部１０７の処理フローについて図１２を参照して説明する。  
最初のステップＳ１２０１では、座標変換部１０２から送られてきたＣＧデータに含まれている射影行列およびビューポートスケーリング行列を取得する。  
ステップＳ１２０２では、交点座標計算部１０３から送られてきたレイとオブジェクトの交点の３次元座標を取得する。  
ステップＳ１２０３では、交点動きベクトル計算部１０４から送られてきたレイとオブジェクトの交点の３次元動きベクトルを取得する。  
ステップＳ１２０４では、ステップＳ１２０２にて取得した交点の３次元座標と、ステップＳ１２０３にて取得した交点の３次元動きベクトルに対して、ステップＳ１２０１にて取得した射影行列を乗算して投影面に投影することにより、交点の２次元座標および交点の２次元動きベクトルを計算する。  
ステップＳ１２０５では、ステップＳ１２０４にて計算された交点の２次元座標および交点の２次元動きベクトルに対して、ステップＳ１２０１にて取得したビューポートスケーリング行列を乗算することにより、交点の２次元座標および交点の２次元動きベクトルを画像面の適切な位置に平行移動する。  
ステップＳ１２０６では、ステップＳ１２０５にて計算された交点の２次元座標および交点の２次元動きベクトルを第１解像度映像列記憶部１０８へ出力する。なお、これらのデータは浮動小数点数あるいいは固定小数点数で出力するものとする。
【００５０】
［第１解像度映像列記憶部１０８］  
第１解像度映像列記憶部１０８にて保持されている低解像度映像データの例について図１３を参照して説明する。  
この図から分かるように、低解像度映像データは、各サンプリング点を通るレイとオブジェクトの交点の２次元座標、交点の２次元動きベクトル、交点のカラー値、交点のオブジェクトＩＤをフレーム単位にひとまとめにしたものである。図１３図で、ｎｋはフレームｋの交点数を示す。
【００５１】
図１に示したように、これら交点に関するデータは交点投影部１０７、交点カラー計算部１０５、交点オブジェクトＩＤ割り当て部１０６から送られてくる。
【００５２】
なお、第１解像度映像列記憶部１０８に保持されている低解像度映像データは図１３の形式に限定されず、所望のＣＧを描画するために必要となるあらゆるデータを含んでもよい。
【００５３】
［第２解像度映像計算部１０９］  
第２解像度映像計算部１０９の処理フローについて図１４を参照して説明する。  
最初のステップＳ１４０１では、第１解像度映像列記憶部１０８から現在のフレームの低解像度（第１解像度）映像データに含まれている交点の２次元座標および交点の２次元動きベクトルを取得する。  
ステップＳ１４０２では、図１５（ａ）および図１５（ｂ）および図１５（ｃ）に示すように、現在のフレームよりも時間的に後の複数フレームの低解像度映像データに含まれている交点の２次元座標および交点の２次元動きベクトルを取得する。
【００５４】
ステップＳ１４０３では、図１５（ｄ）および図１５（ｅ）および図１５（ｆ）に示すように、ステップＳ１４０２にて取得した現在のフレームよりも時間的に後の複数フレームの低解像度映像データに含まれている各交点に割り当てられている複数の２次元動きベクトルの中から、現在のフレームへと戻る動きを表すものを選択して加算することにより、現在のフレームよりも時間的に後の複数フレームの低解像度映像データを、現在のフレームの低解像度映像データに重ね合わせる。例えば、図１５の例では、図１５（ａ）の低解像度映像データと、図１５（ｄ）の低解像度映像データと、図１５（ｅ）の低解像度映像データとを重ね合わせて図１５（ｆ）の中解像度映像データを得る。この例では、図１５（ａ）と図１５（ｆ）とを比較して、解像度が３倍高くなったと言える。なお、本明細書では、重ね合わされた後の低解像度映像データのことを中解像度（第２解像度）映像データと表記する。
【００５５】
この際、元々現在のフレームに含まれていた低解像度映像データにはフラグ値０を割り当て、新たに現在のフレームに重ね合わされた低解像度映像データに対してはフラグ値１を割り当てる。  
ステップＳ１４０４では、ステップＳ１４０３にて計算された中解像度映像データを第３解像度映像計算部１１０へ出力する。
【００５６】
［第３解像度映像計算部１１０］  
第３解像度映像計算部１１０の処理フローについて図１６を参照して説明する。  
最初のステップＳ１６０１では、第２解像度映像計算部１０９から送られてきた中解像度（第２解像度）映像データを取得する。
【００５７】
ステップＳ１６０２では、最終的に提示部１１２に提示する高解像度映像と同じ解像度をもつカラーバッファを高解像度映像記憶部１１１に確保する。
【００５８】
ステップＳ１６０３では、図１７（ａ）および図１７（ｂ）に示すように、ステップＳ１６０１にて取得した中解像度映像データ（図１７（ａ））に含まれている交点の中から、ステップＳ１６０２にて確保した高解像度カラーバッファの各ピクセルの近傍領域に位置するものを選択する（図１７（ｂ））。  
上記したように、非特許文献１などにおいてフィルタリングのタップ位置を選択する際の工夫がすでに提案されている。本発明の実施形態においても、図１７（ａ）および図１７（ｂ）の選択手法はあくまで一例であり、従来手法と同様な手法を用いてフィルタリングに使う交点を選択してもよい。
【００５９】
ここで選択された交点は、時間的に異なる複数のフレームにおいてサンプリングされた交点を重ね合わせたものであるため、フレーム間のオブジェクトおよびカメラの動きによってオブジェクトの可視性が変化した場合に、実際には現在のフレームに映らないはずのオブジェクトに属するものが含まれている可能性がある。そこで、以降のステップではこれらの交点をフィルタリング対象から除外する処理を行う。
【００６０】
ステップＳ１６０４では、ステップＳ１６０３にて選択された交点のうち、フラグ値１が割り当てられているものを選択する（図１７の斜線の丸が対応）。  
上記したように、このフラグ値は第２解像度映像計算部１０９にて各交点に割り当てられたものであり、元々現在のフレームに含まれていた交点にはフラグ値０が、現在とは異なるフレームから現在のフレームに重ね合わされた交点にはフラグ値１が割り当てられている。
【００６１】
ステップＳ１６０５では、ステップＳ１６０４にて選択されたフラグ値１が割り当てられている各交点について、その近傍領域に位置するフラグ値０が割り当てられている交点を選択する（図１７（ｃ）、図１７（ｄ）、図１７（ｅ）、図１７（ｆ））。図１７（ｂ）に示した近傍領域や図１７（ｃ）、図１７（ｄ）、図１７（ｅ）、図１７（ｆ）に示した近傍領域の大きさはオブジェクトに依存する。
【００６２】
ステップＳ１６０６では、図１７（ｃ）、図１７（ｄ）、図１７（ｅ）、図１７（ｆ）に示すように、ステップＳ１６０４にて選択されたフラグ値１が割り当てられている交点のオブジェクトＩＤと、ステップＳ１６０５にて選択されたフラグ値０が割り当てられている近傍の交点のオブジェクトＩＤを比較する。その結果、１つでもオブジェクトＩＤが異なる場合には、フラグ値１が割り当てられている交点をフィルタリング対象から除外する（図１７（ｆ））。
【００６３】
ステップＳ１６０７では、ステップＳ１６０６にて除外されずに残った交点のカラー値に適当な重みをつけて補間することにより、ステップＳ１６０２にて確保した高解像度カラーバッファの各ピクセルのカラー値を計算する。
【００６４】
［高解像度映像記憶部１１１］  
高解像度映像記憶部１１１は高解像度映像データを記憶し、高解像度映像データは各ピクセルのカラー値を保持する一般的な画像データである。図１に示したように、高解像度映像データは第３解像度映像計算部１１０によって書き込まれた後、提示部１１２から取得されてユーザに提示される。
【００６５】
以上に示したように、本実施形態の映像描画装置によれば、ＣＧを描画する際に求まる低解像度サンプリング点の動きベクトルとオブジェクトＩＤを利用することにより、現在のフレームよりも時間的に後の複数のフレームの低解像度サンプリング点を、現在のフレームに対して高速かつ安定に重ね合わせることができる。  
これにより、１フレームあたりのサンプリング点の数を従来よりも少なくすることができ、その結果、高品質な高解像度グローバルイルミネーション映像をインタラクティブに描画することが可能になる。
【００６６】
（第２の実施形態）前のフレームの重ね合わせ  
第２の実施形態における映像描画装置の構成は、図１の第１の実施形態における構成と同じであるが、ＣＧデータ記憶部１０１に保持されているＣＧデータの内容と、第２解像度映像計算部１０９の処理内容が異なる。以下、既に説明した装置部分と同様なものは同一の番号を付してその説明を省略する。
【００６７】
［ＣＧデータ記憶部１０１］  
図１８に示すように、本実施形態では、現在のフレームにおける各頂点に対して、現在のフレームよりも時間的に後の複数フレームにおける位置へと進む動きを表す複数のベクトルが属性としてあらかじめ割り当てられており、ＣＧデータ記憶部１０１はこれらのベクトルを記憶して保持しているものとする。
【００６８】
［第２解像度映像計算部１０９］  
本実施形態における第２解像度映像計算部１０９の処理フローについて図１９を参照して説明する。  
最初のステップＳ１９０１では、第１解像度映像列記憶部１０８から現在のフレームの低解像度映像データに含まれている交点の２次元座標および交点の２次元動きベクトルを取得する。
【００６９】
ステップＳ１９０２では、図２０（ａ）および図２０（ｂ）および図２０（ｃ）に示すように、現在のフレームよりも時間的に前の複数フレームの低解像度映像データに含まれている交点の２次元座標および交点の２次元動きベクトルを取得する。
【００７０】
ステップＳ１９０３では、図２０（ｄ）および図２０（ｅ）および図２０（ｆ）に示すように、ステップＳ１９０２にて取得した現在のフレームよりも時間的に前の複数フレームの低解像度映像データに含まれている各交点に割り当てられている複数の２次元動きベクトルの中から、現在のフレームへと進む動きを表すものを選択して加算することにより、現在のフレームよりも時間的に前の複数フレームの低解像度映像データを、現在のフレームの低解像度映像データに重ね合わせる。例えば、図２０の例では、図２０（ｃ）の低解像度映像データと、図２０（ｄ）の低解像度映像データと、図２０（ｅ）の低解像度映像データとを重ね合わせて図２０（ｆ）の中解像度映像データを得る。この例では、図２０（ａ）と図２０（ｆ）とを比較して、解像度が３倍良くなったと言える。
【００７１】
この際、元々現在のフレームに含まれていた低解像度映像データにはフラグ値０を割り当て、新たに現在のフレームに重ね合わされた低解像度映像データに対してはフラグ値１を割り当てる。
【００７２】
ステップＳ１９０４では、ステップＳ１９０３にて計算された中解像度映像データを第３解像度映像計算部１１０へ出力する。
【００７３】
以上に示したように、本実施形態の映像描画装置によれば、ＣＧを描画する際に求まる低解像度サンプリング点の動きベクトルとオブジェクトＩＤを利用することにより、現在のフレームよりも時間的に前の複数のフレームの低解像度サンプリング点を、現在のフレームに対して高速かつ安定に重ね合わせることができる。  
これにより、１フレームあたりのサンプリング点の数を従来よりも少なくすることができ、その結果、高品質な高解像度グローバルイルミネーション映像をインタラクティブに描画することが可能になる。
【００７４】
（第３の実施形態）前後のフレームの重ね合わせ  
第３の実施形態における映像描画装置の構成は、図１の第１の実施形態における構成と同じであるが、ＣＧデータ記憶部１０１に保持されているＣＧデータの内容と、第２解像度映像計算部１０９の処理内容が異なる。
【００７５】
［ＣＧデータ記憶部１０１］  
図２１に示すように、本実施形態では、現在のフレームにおける各頂点に対して、現在のフレームよりも時間的に前の複数フレームにおける位置へと戻る動きを表す複数のベクトルと、現在のフレームよりも時間的に後の複数フレームにおける位置へと進む動きを表す複数のベクトルが属性としてあらかじめ割り当てられており、ＣＧデータ記憶部１０１はこれらのベクトルを記憶して保持しているものとする。
【００７６】
［第２解像度映像計算部１０９］  
本実施形態における第２解像度映像計算部１０９の処理フローについて図２２を参照して説明する。  
最初のステップＳ２２０１では、第１解像度映像列記憶部１０８から現在のフレームの低解像度映像データに含まれている交点の２次元座標および交点の２次元動きベクトルを取得する。
【００７７】
ステップＳ２２０２では、図２３（ａ）および図２３（ｂ）および図２３（ｃ）に示すように、現在のフレームよりも時間的に後の複数フレームの低解像度映像データに含まれている交点の２次元座標および交点の２次元動きベクトルと、現在のフレームよりも時間的に前の複数フレームの低解像度映像データに含まれている交点の２次元座標および交点の２次元動きベクトルを取得する。
【００７８】
ステップＳ２２０３では、図２３（ｄ）および（ｅ）および（ｆ）に示すように、ステップＳ２２０２にて取得した現在のフレームよりも時間的に後の複数フレームの低解像度映像データに含まれている各交点と、現在のフレームよりも時間的に前の複数フレームの低解像度映像データに含まれている各交点に割り当てられている複数の２次元動きベクトルの中から、現在のフレームへの動きを表すものを選択して加算することにより、現在のフレームよりも時間的に後の複数フレームの低解像度映像データと、現在のフレームよりも時間的に前の複数フレームの低解像度映像データを、現在のフレームの低解像度映像データに重ね合わせる。例えば、図２３の例では、図２３（ｂ）の低解像度映像データと、図２３（ｄ）の低解像度映像データと、図２３（ｅ）の低解像度映像データとを重ね合わせて図２０（ｆ）の中解像度映像データを得る。この例では、図２３（ｂ）と図２３（ｆ）とを比較して、解像度が３倍良くなったと言える。
【００７９】
この際、元々現在のフレームに含まれていた低解像度映像データにはフラグ値０を割り当て、新たに現在のフレームに重ね合わされた低解像度映像データに対してはフラグ値１を割り当てる。
【００８０】
ステップＳ２２０４では、ステップＳ２２０３にて計算された中解像度映像データを第３解像度映像計算部１１０へ出力する。
【００８１】
以上に示したように、本実施形態の映像描画装置によれば、ＣＧを描画する際に求まる低解像度サンプリング点の動きベクトルとオブジェクトＩＤを利用することにより、現在のフレームよりも時間的に後の複数のフレームの低解像度サンプリング点と、現在のフレームよりも時間的に前の複数のフレームの低解像度サンプリング点を、現在のフレームに対して高速かつ安定に重ね合わせることができる。  
これにより、１フレーム当たりのサンプリング点の数を従来よりも少なくすることができ、その結果、高品質な高解像度グローバルイルミネーション映像をインタラクティブに描画することが可能になる。
【００８２】
（第４の実施形態）非同期並列動作（３次元データ処理部と２次元データ処理部の並列動作）  
図２４における映像描画装置の構成を示す。この図から分かるように、本実施形態における映像描画装置は、図１の第１の実施形態および第２の実施形態および第３の実施形態における映像描画装置を、３次元データ処理部２４００と２次元データ処理部２４１０の２つに処理部に分割し、それぞれの処理部が専用に有する制御部１１３によって非同期に並列動作されることを特徴とする。
【００８３】
３次元データ処理部２４００と２次元データ処理部２４１０の間のデータのやり取りは、それぞれの処理部が専用に有する第１解像度映像列記憶部１０８を介して行われる。ただし、必ずしもそれぞれの処理部が専用に有する第１解像度映像列記億部１０８を介して行われる必要はなく、単一のものを共有するように構成してもよい。
【００８４】
本実施形態における映像描画装置によれば、３次元データ処理部２４００に含まれるブロックの処理と２次元データ処理部２４１０に含まれるブロックの処理を非同期に並列実行することができるため、第１の実施形態および第２の実施形態および第３の実施形態における映像描画装置と比較して、各ブロックの稼働率を高くすることができる。
【００８５】
その結果、高品質な高解像度グローバルイルミネーション映像をよりインタラクティブに描画することが可能になる。
【００８６】
（第５の実施形態）汎用映像処理（２次元データ処理部のみの汎用映像処理）  
図２５に第５の実施形態における映像描画装置の構成を示す。この図から分かるように、本実施形態における映像描画装置は、図２４の第４の実施形態における映像描画装置の２次元データ処理部２４１０のみを有することを特徴とする。
【００８７】
本実施形態における映像描画装置では、あらかじめ計算された複数フレームの低解像度映像データが第１解像度映像列記憶部１０８にて保持されているものとする。
【００８８】
第１の実施形態および第２の実施形態および第３の実施形態および第４の実施形態における映像描画装置では、ＣＧデータから低解像度映像データを計算することが前提となっているが、本実施形態における映像描画装置では、あらかじめＣＧデータ以外の映像ソースから何らかの手法によって計算された低解像度映像データを入力することができるようになっている。
【００８９】
本実施形態によれば、ＣＧデータに限定されず、任意の映像ソースから高品質な高解像度映像をインタラクティブに描画することが可能になる。
【００９０】
（第６の実施形態）３次元データ処理部のマルチコア化（フレームベース）  
図２６に第６の実施形態における映像描画装置の構成を示す。この図から分かるように、本実施形態における映像描画装置２６００は、図２４の第４の実施形態における映像描画装置の３次元データ処理部２４００を複数有することを特徴とする。
【００９１】
図２４の第４の実施形態における映像描画装置では、ＣＧデータ記憶部１０１から取得するＣＧデータの量、あるいは交点座標計算部１０３にて計算される交点（低解像度サンプリング点）の数、あるいは交点カラー計算部１０５における照明計算の計算量、あるいは第１解像度映像列記憶部１０８のバンド幅、あるいは最終的に提示部１１２に提示する高解像度映像の解像度、あるいは各ブロックの処理能力など、様々な要因に依存して３次元データ処理部２４００の処理量と２次元データ処理部２４１０の処理量のバランスが動的に変化する。そのため、あるフレームにおいて、３次元データ処理部２４００の処理がボトルネックとなることによってフレームレートが低下してしまうことがある。
【００９２】
そこで本実施形態における映像描画装置では、制御部１１３が、複数の３次元データ処理部２４００に対して異なるフレームの処理を割り当て、非同期に並列処理させることにより、３次元データ処理部２４００の処理がボトルネックとなることを防ぐ。
【００９３】
本実施形態によれば、例えば、ある３次元データ処理部２４００が１番目のフレームの処理を行っているときに、異なる３次元データ処理部２４００にて２番目のフレームあるいは３番目のフレームなどの異なるフレームの処理を同時に実行することが可能になる。
【００９４】
なお、制御部１１３は、複数の３次元データ処理部２４００に処理を割り当てる際、その時点で相対的に負荷の小さい３次元データ処理部２４００を選択して割り当てるように構成してもよい。
【００９５】
以上のように、本実施形態における映像描画装置によれば、第４の実施形態における映像描画装置において３次元データ処理部２４００の処理がボトルネックとなるような場合でも、高品質な高解像度グローバルイルミネーション映像をインタラクティブに描画することが可能になる。
【００９６】
（第７の実施形態）３次元データ処理部のマルチコア化（ブロックベース）  
図２７に第７の実施形態における映像描画装置２７００の構成を示す。この図から分かるように、本実施形態における映像描画装置は、図２６の第６の実施形態における映像描画装置に対して低解像度映像ブロック結合部２７０１を追加したことを特徴とする。
【００９７】
本実施形態における映像描画装置では、制御部１１３が、複数の３次元データ処理部２４００に対して同一フレームの異なる映像ブロックの処理を割り当て、非同期に並列処理させる。そして、低解像度映像ブロック結合部２７０１がその処理結果である異なる映像ブロックの低解像度映像データを結合する。
【００９８】
映像ブロックとは、図２８に示すように、あるフレームの映像を任意の矩形で分割した領域のことを表す。映像ブロックの大きさや分割手法などはすべてのフレームにおいて同じでもよいし、例えば低解像度サンプリング点の数がなるべく均等になるように、制御部１１３がフレームごとに制御するように構成してもよい。
【００９９】
これにより、例えば、ある３次元データ処理部２４００が１番目の映像ブロックの処理を行っているときに、異なる３次元データ処理部２４００によって、２番目の映像ブロックあるいは３番目の映像ブロックなどの異なる映像ブロックの処理を同時に実行することが可能になるため、３次元データ処理部２４００の処理がボトルネックとなることを防ぐことができる。
【０１００】
なお、制御部１１３は、複数の３次元データ処理部２４００に処理を割り当てる際、その時点で相対的に最も負荷の小さい３次元データ処理部２４００を選択して割り当てるように構成してもよい。
【０１０１】
以上のように、本実施形態における映像描画装置によれば、第４の実施形態における映像描画装置において３次元データ処理部２４００の処理がボトルネックとなるような場合でも、高品質な高解像度グローバルイルミネーション映像をインタラクティブに描画することが可能になる。
【０１０２】
（第８の実施形態）２次元データ処理部のマルチコア化（フレームベース）  
図２９に第８の実施形態における映像描画装置２９００の構成を示す。この図から分かるように、本実施形態における映像描画装置は、図２４の第４の実施形態における映像描画装置の２次元データ処理部２４１０を複数有することを特徴とする。
【０１０３】
上述したように、図２４の第４の実施形態における映像描画装置では、様々な要因に依存して、３次元データ処理部２４００の処理量と２次元データ処理部２４１０の処理量のバランスが動的に変化する。そのため、あるフレームにおいて、２次元データ処理部２４１０の処理がボトルネックとなることによってフレームレートが低下してしまうことがある。
【０１０４】
そこで本実施形態における映像描画装置では、制御部１１３が、複数の２次元データ処理部２４１０に対して異なるフレームの処理を割り当て、非同期に並列処理させることにより、２次元データ処理部２４１０の処理がボトルネックとなることを防ぐ。
【０１０５】
これにより、例えば、ある２次元データ処理部２４１０が１番目のフレームの処理を行っているときに、異なる２次元データ処理部２４１０によって、２番目のフレームあるいは３番目のフレームなどの異なるフレームの処理を同時に実行することが可能になる。
【０１０６】
なお、制御部１１３は、複数の２次元データ処理部２４１０に処理を割り当てる際、その時点で相対的に負荷の小さい２次元データ処理部２４１０を選択して割り当てるように構成してもよい。
【０１０７】
以上のように、本実施形態における映像描画装置によれば、第４の実施形態における映像描画装置において２次元データ処理部２４１０の処理がボトルネックとなるような場合でも、高品質な高解像度グローバルイルミネーション映像をインタラクティブに描画することが可能になる。
【０１０８】
（第９の実施形態）２次元データ処理部のマルチコア化（ブロックベース）  
図３０に第９の実施形態における映像描画装置３０００の構成を示す。この図から分かるように、本実施形態における映像描画装置は、図２９の第８の実施形態における映像描画装置に対して低解像度映像ブロック分割部３００１と高解像度映像ブロック結合部３００２を追加したことを特徴とする。
【０１０９】
本実施形態における映像描画装置では、単一の３次元データ処理部２４００から出力されたあるフレームにおける低解像度映像データを、低解像度映像ブロック分割部３００１にて分割し、複数の２次元データ処理部２４１０に対して割り当て、非同期に並列処理させる。そして、その処理結果である異なる映像ブロックの高解像度映像データを、高解像度映像ブロック結合部３００２にて結合する。
【０１１０】
これにより、例えば、ある２次元データ処理部２４１０が１番目の映像ブロックの処理を行っているとき、異なる２次元データ処理部２４１０によって、２番目の映像ブロックあるいは３番目の映像ブロックなどの異なる映像ブロックの処理を同時に実行することが可能になるため、２次元データ処理部２４１０の処理がボトルネックとなることを防ぐことができる。
【０１１１】
なお、映像ブロックの大きさや分割手法などはすべてのフレームにおいて同じでもよいし、例えば低解像度サンプリング点の数がなるべく均等になるように、制御部１１３が、低解像度映像ブロック分割部３００１をフレームごとに制御するように構成してもよい。
【０１１２】
また、制御部１１３は、複数の３次元データ処理部２４００に処理を割り当てる際、その時点で相対的に最も負荷の小さい３次元データ処理部２４００を選択して割り当てるように構成してもよい。
【０１１３】
以上のように、本実施形態における映像描画装置によれば、第４の実施形態における映像描画装置において２次元データ処理部２４１０の処理がボトルネックとなるような場合でも、高品質な高解像度グローバルイルミネーション映像をインタラクティブに描画することが可能になる。
【０１１４】
（第１０の実施形態）３次元データ処理部と２次元データ処理部のマルチコア化（フレームベース、同じ並列度）  
図３１に第１０の実施形態における映像描画装置３１００の構成を示す。この図から分かるように、本実施形態における映像描画装置は、図２４の第４の実施形態における映像描画装置の３次元データ処理部２４００および２次元データ処理部２４１０の両方を、複数有することを特徴とする。ただし、本実施形態における映像描画装置では、３次元データ処理部２４００と２次元データ処理部２４１０の数が同じであり、１対１に接続されているものとする。
【０１１５】
上述したように、図２４の第４の実施形態における映像描画装置では、様々な要因に依存して、３次元データ処理部２４００の処理量と２次元データ処理部２４１０の処理量のバランスが動的に変化する。そのため、あるフレームにおいて、３次元データ処理部２４００の処理がボトルネックとなることによってフレームレートが低下してしまうことと、逆に２次元データ処理部２４１０の処理がボトルネックとなることによってフレームレートが低下してしまうことの両方が起きることがある。
【０１１６】
そこで本実施形態における映像描画装置では、制御部１１３が、複数の３次元データ処理部２４００およびそれらと１対１に接続された複数の２次元データ処理部２４１０に対して異なるフレームの処理を割り当て、非同期に並列処理させる。
【０１１７】
これにより、例えば、１対１に接続されたある３次元データ処理部２４００と２次元データ処理部２４１０の組が１番目のフレームの処理を行っているとき、異なる３次元データ処理部２４００と２次元データ処理部２４１０の組によって、２番目のフレームあるいは３番目のフレームなどの異なるフレームの処理を同時に実行することが可能になるため、３次元データ処理部２４００の処理がボトルネックとなることを防ぐとともに、２次元データ処理部２４１０の処理がボトルネックとなることも防ぐことができる。
【０１１８】
なお、制御部１１３は、複数の３次元データ処理部２４００およびそれらと１対１に接続された複数の２次元データ処理部２４１０の組に処理を割り当てる際、その時点で相対的に負荷の小さい組を選択して割り当てるように構成してもよい。
【０１１９】
以上のように、本実施形態における映像描画装置によれば、第４の実施形態における映像描画装置において３次元データ処理部２４００および２次元データ処理部２４１０のいずれの処理がボトルネックとなるような場合でも、高品質な高解像度グローバルイルミネーション映像をインタラクティブに描画することが可能になる。
【０１２０】
（第１１の実施形態）３次元データ処理部と２次元データ処理部のマルチコア化（ブロックベース、同じ並列度）  
図３２に第１１の実施形態における映像描画装置３２００の構成を示す。この図から分かるように、本実施形態における映像描画装置は、図３１の第１０の実施形態における映像描画装置に対して高解像度映像ブロック結合部３００２を追加したことを特徴とする。
【０１２１】
本実施形態における映像描画装置では、制御部１１３が、複数の３次元データ処理部２４００およびそれらと１対１に接続された複数の２次元データ処理部２４１０に対して異なる映像ブロックの処理を割り当て、非同期に並列処理させる。そして、その処理結果である異なる映像ブロックの高解像度映像データを、高解像度映像ブロック結合部３００２にて結合する。
【０１２２】
これにより、例えば、１対１に接続されたある３次元データ処理部２４００と２次元データ処理部２４１０の組が１番目の映像ブロックの処理を行っているとき、異なる３次元データ処理部２４００と２次元データ処理部２４１０の組によって、２番目の映像ブロックあるいは３番目の映像ブロックなどの異なる映像ブロックの処理を同時に実行することが可能になるため、３次元データ処理部２４００の処理がボトルネックとなることを防ぐとともに、２次元データ処理部２４１０の処理がボトルネックとなることも防ぐことができる。
【０１２３】
なお、映像ブロックの大きさや分割手法などはすべてのフレームにおいて同じでもよいし、例えば低解像度サンプリング点の数がなるべく均等になるように、制御部１１３がフレームごとに制御するように構成してもよい。
【０１２４】
また、制御部１１３は、複数の３次元データ処理部２４００およびそれらと１対１に接続された複数の２次元データ処理部２４１０の組に処理を割り当てる際、その時点で相対的に負荷の小さい組を選択して割り当てるように構成してもよい。
【０１２５】
以上のように、本実施形態における映像描画装置によれば、第４の実施形態における映像描画装置において３次元データ処理部２４００および２次元データ処理部２４１０のいずれの処理がボトルネックとなるような場合でも、高品質な高解像度グローバルイルミネーション映像をインタラクティブに描画することが可能になる。
【０１２６】
（第１２の実施形態）３次元データ処理部と２次元データ処理部のマルチコア化（フレームベース、異なる並列度）  
図３３に第１２の実施形態における映像描画装置３３００の構成を示す。この図から分かるように、本実施形態における映像描画装置は、図２４の第４の実施形態における映像描画装置の３次元データ処理部２４００および２次元データ処理部２４１０の両方を、複数有することを特徴とする。
【０１２７】
図２４の第４の実施形態における映像描画装置とは異なり、本実施形態における映像描画装置では、３次元データ処理部２４００と２次元データ処理部２４１０の数は同じである必要はなく、これらの間はバスで接続されているものとする。
【０１２８】
本実施形態における映像描画装置では、制御部１１３が、複数の３次元データ処理部２４００に対して異なるフレームの処理を割り当てるとともに、それらの処理結果を、その時点で相対的に負荷の小さい２次元データ処理部２４１０に対して割り当てる。
【０１２９】
これにより、例えば、バスで接続されたある３次元データ処理部２４００と２次元データ処理部２４１０の組が１番目のフレームの処理を行っているとき、異なる３次元データ処理部２４００と２次元データ処理部２４１０の組によって、２番目のフレームあるいは３番目のフレームなどの異なるフレームの処理を同時に実行することが可能になるため、３次元データ処理部２４００の処理がボトルネックとなることを防ぐとともに、２次元データ処理部２４１０の処理がボトルネックとなることも防ぐことができる。
【０１３０】
また、負荷の小さい２次元データ処理部２４１０に優先的に処理が割り当てられることにより、各２次元データ処理部２４１０の稼働率が向上し、その結果、フレームレートを向上することができる。
【０１３１】
なお、制御部１１３は、複数の３次元データ処理部２４００に処理を割り当てる際、その時点で相対的に負荷の小さいものを選択して割り当てるように構成してもよい。
【０１３２】
以上のように、本実施形態における映像描画装置によれば、第４の実施形態における映像描画装置において３次元データ処理部２４００および２次元データ処理部２４１０のいずれの処理がボトルネックとなるような場合でも、高品質な高解像度グローバルイルミネーション映像をよりインタラクティブに描画することが可能になる。
【０１３３】
（第１３の実施形態）３次元データ処理部と２次元データ処理部のマルチコア化（ブロックベース、異なる並列度）  
図３４に第１３の実施形態における映像描画装置３４００の構成を示す。この図から分かるように、本実施形態における映像描画装置は、図３３の第１２の実施形態における映像描画装置に対して低解像度映像ブロック分配部３４０１を追加したことを特徴とする。図３３の第１２の実施形態における映像描画装置と同様に、本実施形態における映像描画装置では、３次元データ処理部２４００と２次元データ処理部２４１０の数は同じである必要はない。
【０１３４】
本実施形態における映像描画装置では、制御部１１３が、複数の３次元データ処理部２４００に対して異なる映像ブロックの処理を割り当て、非同期に並列処理させる。その処理結果である異なる映像ブロックの低解像度映像データは、低解像度映像ブロック分配部３４０１にて、その時点で相対的に負荷の小さい２次元データ処理部２４１０へと分配される。このとき、低解像度映像ブロック分配部３４０１は、３次元データ処理部２４００から受け取った異なる映像ブロックの低解像度映像データを一旦結合し、任意の数あるいは任意の大きさの映像ブロックに再分割してから、２次元データ処理部２４１０に分配するように構成してもよい。これにより、異なる映像ブロックの処理を同時に実行することが可能になる。
【０１３５】
また、負荷の小さい２次元データ処理部２４１０に優先的に処理が割り当てられることにより、各２次元データ処理部２４１０の稼働率が向上し、その結果、フレームレートを向上することができる。
【０１３６】
なお、制御部１１３は、複数の３次元データ処理部２４００に処理を割り当てる際、その時点で相対的に負荷の小さいものを選択して割り当てるように構成してもよい。
【０１３７】
以上のように、本実施形態における映像描画装置によれば、第４の実施形態における映像描画装置において３次元データ処理部２４００および２次元データ処理部２４１０のいずれの処理がボトルネックとなるような場合でも、高品質な高解像度グローバルイルミネーション映像をよりインタラクティブに描画することが可能になる。
【０１３８】
（第１４の実施形態）データ量依存のサンプリング点数の動的制御  
第１４の実施形態における映像描画装置の構成は、図２４の第４の実施形態における構成と同じである。本実施形態における映像描画装置の特徴は、３次元データ処理部２４００に有される第１解像度映像列記憶部１０８と、２次元データ処理部２４１０に有される第１解像度映像列記憶部１０８の間を流れるデータ量（制御部１１３が測定する）に応じて、３次元データ処理部２４００に含まれている制御部１１３が、交点座標計算部１０３にて計算される交点の数（１フレームあたりの低解像度映像データの量）を動的に制御することである。例えば、３次元データ処理部２４００と２次元データ処理部２４１０がネットワークを介して接続されている場合、このネットワーク上を他の機器から転送されたデータが流れることにより、ネットワークの混雑度が変化することがある。
【０１３９】
そこで本実施形態における映像描画装置では、３次元データ処理部２４００に有される第１解像度映像列記憶部１０８と、２次元データ処理部２４１０に有される第１解像度映像列記憶部１０８の間を流れるデータ量が相対的に多いとき、３次元データ処理部２４００に含まれている制御部１１３が、交点座標計算部１０３にて計算される交点の数を相対的に少なくすることにより、１フレームあたりの低解像度映像データの量を減らす。
【０１４０】
これにより、３次元データ処理部２４００に有される第１解像度映像列記憶部１０８と、２次元データ処理部２４１０に有される第１解像度映像列記憶部１０８の間の転送がボトルネックになることを防ぐことができるため、安定したフレームレートで高解像度グローバルイルミネーション映像を描画することが可能になる。
【０１４１】
逆に、３次元データ処理部２４００に有される第１解像度映像列記憶部１０８と、２次元データ処理部２４１０に有される第１解像度映像列記憶部１０８の間を流れるデータ量が相対的に少ないとき、３次元データ処理部２４００に含まれている制御部１１３が、交点座標計算部１０３にて計算される交点の数を相対的に多くすることにより、１フレームあたりの低解像度映像データの量を増やす。これにより、第３解像度映像計算部１１０において利用することのできる交点（サンプリング点）の数が増えるため、より高品質な高解像度グローバルイルミネーション映像をインタラクティブに描画することが可能になる。
【０１４２】
以上のように、本実施形態における映像描画装置によれば、３次元データ処理部２４００と２次元データ処理部２４１０の間を流れるデータ量が外因により変化した場合でも、フレームレートを安定に保ちながら、できるだけ高品質な高解像度グローバルイルミネーション映像を描画することが可能になる。
【０１４３】
（第１５の実施形態）バンド幅依存のサンプリング点数の動的制御  
本実施形態における映像描画装置の特徴は、図１の第１の実施形態および第２の実施形態および第３の実施形態における映像描画装置、あるいは図２４の第４の実施形態における映像描画装置が有する第１解像度映像列記憶部１０８のバンド幅（帯域幅）の広さに応じて、制御部１１３が、交点座標計算部１０３にて計算される交点の数（１フレームあたりの低解像度映像データの量）を動的に制御することである。
【０１４４】
例えば、第１解像度映像列記憶部１０８が単一の大きなメモリ上の一部に構成されており、そのメモリの残りの部分が他の機器からもアクセスされるとする。あるフレームにおいて、この他の機器からのアクセスが集中すると、メモリのバンド幅が消費されてしまい、第１解像度映像列記憶部１０８のバンド幅が狭くなることがある。
【０１４５】
そこで本実施形態における映像描画装置では、第１解像度映像列記憶部１０８のバンド幅が相対的に狭いとき、制御部１１３が、交点座標計算部１０３にて計算される交点の数を相対的に少なくすることにより、１フレームあたりの低解像度映像データの量を減らす。これにより、第１解像度映像列記憶部１０８とのデータ転送がボトルネックになることを防ぐことができるため、安定したフレームレートで高解像度グローバルイルミネーション映像を描画することが可能になる。
【０１４６】
逆に、第１解像度映像列記憶部１０８のバンド幅が相対的に広いとき、制御部１１３が、交点座標計算部１０３にて計算される交点の数を相対的に多くすることにより、１フレームあたりの低解像度映像データの量を増やす。これにより、第３解像度映像計算部１１０において利用することのできる交点（サンプリング点）の数が増えるため、より高品質な高解像度グローバルイルミネーション映像をインタラクティブに描画することが可能になる。
【０１４７】
以上のように、本実施形態における映像描画装置によれば、第１解像度映像列記憶部１０８のバンド幅が外因により変化した場合でも、フレームレートを安定に保ちながら、できるだけ高品質な高解像度グローバルイルミネーション映像を描画することが可能になる。
【０１４８】
（第１６の実施形態）インタラクティブ性依存のサンプリング点数の動的制御  
図３５に第１６の実施形態における映像描画装置の構成を示す。第１６の実施形態における映像描画装置の特徴は、現在のフレームにおいて描画している映像のインタラクティブ性の高さに応じて、制御部１１３が交点座標計算部１０３にて計算される交点の数（１フレームあたりの低解像度映像データの量）を動的に制御することである。
【０１４９】
例えば、現在のフレームにおいてユーザの入力に応じて動的に変化しなければならない映像を描画しているとき、制御部１１３が、交点座標計算部１０３にて計算される交点の数を相対的に少なくすることにより、１フレームあたりの低解像度映像データの量を減らす。これにより、後段のブロックが処理するデータ量が少なくなるため、安定したフレームレートで高解像度グローバルイルミネーション映像を描画することが可能になる。
【０１５０】
逆に、現在のフレームにおいてユーザの入力に応じて変化しない静的な映像（例えばゲームにおけるリプレイシーンの映像）を描画しているとき、制御部１１３が、交点座標計算部１０３にて計算される交点の数を相対的に多くすることにより、１フレームあたりの低解像度映像データの量を増やす。これにより、第３解像度映像計算部１１０において利用することのできる交点（サンプリング点）の数が増えるため、より高品質な高解像度グローバルイルミネーション映像を描画することが可能になる。
【０１５１】
なお、現在のフレームのインタラクティブ性の高さは、あらかじめＣＧデータ記憶部１０１に数値データとして保持されているものとする。インタラクティブ性評価部３５０１はこの数値データをＣＧデータ記憶部１０１から取得し、その値に基づいて評価値を出力する。取得したデータをそのまま評価値としてもよいし、あるいは、取得したデータと動きベクトルなどの他のＣＧデータを組み合わせて評価値を計算してもよい。
【０１５２】
制御部１１３はインタラクティブ性評価部３５０１が出力する評価値を受け取り、その値に基づいて交点座標計算部１０３にて計算される交点の数を動的に制御する。
【０１５３】
以上のように、本実施形態における映像描画装置によれば、現在のフレームにおいて描画している映像に求められるインタラクティブ性の高さに応じて、フレームレートと品質のトレードオフを動的に調整することが可能になる。
【０１５４】
（第１７の実施形態）消費電力依存のサンプリング点数の動的制御  
第１７の実施形態における映像描画装置の特徴は、図１の第１の実施形態および第２の実施形態および第３の実施形態における映像描画装置、あるいは図２４の第４の実施形態における映像描画装置に有される制御部１１３が、現在の消費電力に応じて、交点座標計算部１０３にて計算される交点の数（１フレームあたりの低解像度映像データの量）を動的に制御することである。制御部１１３が、現在の消費電力を測定する。
【０１５５】
例えば、現在のフレームにおける消費電力が相対的に高いとき、制御部１１３が、交点座標計算部１０３にて計算される交点の数を相対的に少なくすることにより、１フレームあたりの低解像度映像データの量を減らす。これにより、後段のブロックが処理するデータ量が少なくなるため、消費電力の上昇を抑えながら高解像度グローバルイルミネーション映像を描画することが可能になる。
【０１５６】
逆に、現在のフレームにおける消費電力が相対的に低いとき、制御部１１３が、交点座標計算部１０３にて計算される交点の数を相対的に多くすることにより、１フレームあたりの低解像度映像データの量を増やす。これにより、第３解像度映像計算部１１０において利用することのできる交点（サンプリング点）の数が増えるため、より高品質な高解像度グローバルイルミネーション映像を描画することが可能になる。
【０１５７】
以上のように、本実施形態における映像描画装置によれば、消費電力の上昇を抑えながら、できるだけ高品質な高解像度グローバルイルミネーション映像を描画することが可能になる。
【０１５８】
以上に示した実施形態の映像描画装置、方法およびプログラムによれば、複数フレームの低解像度サンプリング点をフィルタリングすることにより、１フレームあたりのサンプリング点の数を従来よりも少なくすることができ、その結果、高品質な高解像度グローバルイルミネーション映像をインタラクティブに描画することができる。ＣＧを描画する際に求まるサンプリング点の動きベクトルとオブジェクトＩＤを利用することにより、マッチングの計算を高速かつ安定に実現することができる。
【０１５９】
また、上述の実施形態の中で示した処理手順に示された指示は、ソフトウェアであるプログラムに基づいて実行されることが可能である。汎用の計算機システムが、このプログラムを予め記憶しておき、このプログラムを読み込むことにより、上述した実施形態のコンピュータグラフィックスデータ符号化装置および復号化装置による効果と同様な効果を得ることも可能である。上述の実施形態で記述された指示は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ±Ｒ、ＤＶＤ±ＲＷなど）、半導体メモリ、又はこれに類する記録媒体に記録される。コンピュータまたは組み込みシステムが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。コンピュータは、この記録媒体からプログラムを読み込み、このプログラムに基づいてプログラムに記述されている指示をＣＰＵで実行させれば、上述した実施形態のコンピュータグラフィックスデータ符号化装置および復号化装置と同様な動作を実現することができる。もちろん、コンピュータがプログラムを取得する場合又は読み込む場合はネットワークを通じて取得又は読み込んでもよい。  
また、記憶媒体からコンピュータや組み込みシステムにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーションシステム）や、データベース管理ソフト、ネットワーク等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行してもよい。  
さらに、本願発明における記憶媒体は、コンピュータあるいは組み込みシステムと独立した媒体に限らず、ＬＡＮやインターネット等により伝達されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。  
また、記憶媒体は１つに限られず、複数の媒体から本実施形態における処理が実行される場合も、本発明における記憶媒体に含まれ、媒体の構成は何れの構成であってもよい。
【０１６０】
なお、本願発明におけるコンピュータまたは組み込みシステムは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するためのものであって、パソコン、マイコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。  
また、本願発明の実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の実施形態における機能を実現することが可能な機器、装置を総称している。
【０１６１】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０１６２】
【図１】本発明の第１の実施形態における映像描画装置のブロック図。
【図２】図１のＣＧデータ記憶部に記憶されているＣＧデータの一例を示す図。
【図３】図１の座標変換部にて座標変換されるＣＧデータの一例を示す図。
【図４】本発明の第１の実施形態における３次元動きベクトルを示す図。
【図５】頂点のオブジェクトＩＤを示す図。
【図６】図１の座標変換部の処理の流れを示すフローチャート。
【図７】図１の交点座標計算部の処理の流れを示すフローチャート。
【図８】図１の交点動きベクトル計算部の処理の流れを示すフローチャート。
【図９】図１の交点カラー計算部の処理の流れを示すフローチャート。
【図１０】図１の交点カラー計算部が行う交点カラー計算手法を示すフローチャート。
【図１１】図１の交点オブジェクトＩＤ割り当て部の処理の流れを示すフローチャート。
【図１２】図１の交点投影部の処理の流れを示すフローチャート。
【図１３】図１の第１解像度映像列記憶部が記憶している低解像度映像データの一例を示す図。
【図１４】図１の第２解像度映像計算部の処理の流れを示すフローチャート。
【図１５】図１の第２解像度映像計算部での中解像度映像データの計算手法を説明するための図。
【図１６】図１の第３解像度映像計算部の処理の流れを示すフローチャート。
【図１７】図１の第３解像度映像計算部での高解像度映像データの計算手法の一例を示す図。
【図１８】本発明の第２の実施形態における３次元動きベクトルを示す図。
【図１９】本発明の第２の実施形態における図１の第２解像度映像計算部の処理の流れを示すフローチャート。
【図２０】本発明の第２の実施形態における図１の第２解像度映像計算部での中解像度映像データの計算手法を説明するための図。
【図２１】本発明の第３の実施形態における３次元動きベクトルを示す図。
【図２２】本発明の第３の実施形態における図１の第２解像度映像計算部の処理の流れを示すフローチャート。
【図２３】本発明の第３の実施形態における図１の第２解像度映像計算部での中解像度映像データの計算手法を説明するための図。
【図２４】本発明の第４の実施形態における映像描画装置のブロック図。
【図２５】本発明の第５の実施形態における映像描画装置のブロック図。
【図２６】本発明の第６の実施形態における映像描画装置のブロック図。
【図２７】本発明の第７の実施形態における映像描画装置のブロック図。
【図２８】映像ブロックの一例を示す図。
【図２９】本発明の第８の実施形態における映像描画装置のブロック図。
【図３０】本発明の第９の実施形態における映像描画装置のブロック図。
【図３１】本発明の第１０の実施形態における映像描画装置のブロック図。
【図３２】本発明の第１１の実施形態における映像描画装置のブロック図。
【図３３】本発明の第１２の実施形態における映像描画装置のブロック図。
【図３４】本発明の第１３の実施形態における映像描画装置のブロック図。
【図３５】本発明の第１６の実施形態における映像描画装置のブロック図。
【符号の説明】
【０１６３】
１０１…データ記憶部、１０２…座標変換部、１０３…交点座標計算部、１０４…ベクトル計算部、１０５…交点カラー計算部、１０６…交点オブジェクトＩＤ割り当て部、１０７…交点投影部、１０８…第１解像度映像列記憶部、１０９…第２解像度映像計算部、１１０…第３解像度映像計算部、１１１…高解像度映像記憶部、１１２…提示部、１１３…制御部、２４００…３次元データ処理部、２４１０…２次元データ処理部、２６００…映像描画装置、２７００…映像描画装置、２７０１…低解像度映像ブロック結合部、２９００…映像描画装置、３０００…映像描画装置、３００１…低解像度映像ブロック分割部、３００２…高解像度映像ブロック結合部、３１００…映像描画装置、３２００…映像描画装置、３３００…映像描画装置、３４００…映像描画装置、３４０１…低解像度映像ブロック分配部、３５０１…インタラクティブ性評価部。
【図１】
2007066012.tif 000003
【図２】
2007066012.tif 000004
【図３】
2007066012.tif 000005
【図４】
2007066012.tif 000006
【図５】
2007066012.tif 000007
【図６】
2007066012.tif 000008
【図７】
2007066012.tif 000009
【図８】
2007066012.tif 000010
【図９】
2007066012.tif 000011
【図１０】
2007066012.tif 000012
【図１１】
2007066012.tif 000013
【図１２】
2007066012.tif 000014
【図１３】
2007066012.tif 000015
【図１４】
2007066012.tif 000016
【図１５】
2007066012.tif 000017
【図１６】
2007066012.tif 000018
【図１７】
2007066012.tif 000019
【図１８】
2007066012.tif 000020
【図１９】
2007066012.tif 000021
【図２０】
2007066012.tif 000022
【図２１】
2007066012.tif 000023
【図２２】
2007066012.tif 000024
【図２３】
2007066012.tif 000025
【図２４】
2007066012.tif 000026
【図２５】
2007066012.tif 000027
【図２６】
2007066012.tif 000028
【図２７】
2007066012.tif 000029
【図２８】
2007066012.tif 000030
【図２９】
2007066012.tif 000031
【図３０】
2007066012.tif 000032
【図３１】
2007066012.tif 000033
【図３２】
2007066012.tif 000034
【図３３】
2007066012.tif 000035
【図３４】
2007066012.tif 000036
【図３５】
2007066012.tif 000037