(57)【要約】      （修正有）【課題】内部メモリと外部メモリ間の帯域幅を効果的に用いデータアクセスを減少させることができるレンダリング装置及び方法を提供する。【解決手段】レンダリング装置は、内部メモリに格納されたコンテキストを用いてレンダリングを行う。必要なコンテキストが内部メモリにない場合には、外部メモリで必要なコンテキストを内部メモリにロードする。内部メモリの空間が不足する場合には内部メモリのうち、これ以上使用されないコンテキストを削除して空間を確保し、外部メモリに位置する必要なコンテキストを内部メモリにロードする。【選択図】図１
2013175191.tif 000002
【特許請求の範囲】
【請求項１】
ターゲットコンテキストが複数のタイルのレンダリングに用いられる総使用回数を決定する使用回数決定部と、
前記ターゲットコンテキストを外部メモリから内部メモリにロードするメモリアップデート部と、
前記ロードされたターゲットコンテキストを各タイルのレンダリングに使用することによって、前記ターゲットコンテキストの残余使用回数をアップデートする使用回数アップデート部と、
を備えることを特徴とするタイルベースのイメージレンダリング装置。
【請求項２】
前記ターゲットコンテキストは、前記ターゲットコンテキストに対応するターゲットオブジェクトをレンダリングするためのテクスチャ情報、前記ターゲットオブジェクトに対するピクセルシェーダ演算に必要な情報、前記ターゲットオブジェクトに対するラスタライザのステート情報のうち少なくとも１つを含むことを特徴とする請求項１に記載のイメージレンダリング装置。
【請求項３】
前記使用回数決定部は、前記ターゲットコンテキストに対応するターゲットオブジェクトが前記各タイルのうち数個のタイルにかけて表示されるか否かに応じて前記総使用回数を決定することを特徴とする請求項１又は２に記載のイメージレンダリング装置。
【請求項４】
前記メモリアップデート部は、前記内部メモリに前記ターゲットコンテキストをロードするための空間が存在するか否かを判断し、前記空間が存在する場合に、前記ターゲットコンテキストを前記内部メモリにロードすることを特徴とする請求項１乃至３のいずれか一項に記載のイメージレンダリング装置。
【請求項５】
前記メモリアップデート部は前記空間が存在しない場合、前記内部メモリにロードされた他のコンテキストのうち、前記他のコンテキストの残余使用回数に基づいて前記内部メモリから削除されるコンテキストを選択して削除し、前記ターゲットコンテキストをロードすることを特徴とする請求項４に記載のイメージレンダリング装置。
【請求項６】
前記メモリアップデート部は、前記他のコンテキストのうち、前記残余使用回数が「０」であるコンテキストを前記削除されるコンテキストに選択することを特徴とする請求項５に記載のイメージレンダリング装置。
【請求項７】
前記メモリアップデート部は、前記他のコンテキストのうち、前記残余使用回数が最も小さいコンテキストを前記削除されるコンテキストに選択することを特徴とする請求項５に記載のイメージレンダリング装置。
【請求項８】
複数のタイルは、３次元グラフィックデータを構成するためのタイルであることを特徴とする請求項１乃至７のいずれか一項に記載のイメージレンダリング装置。
【請求項９】
ターゲットコンテキストが複数のタイルのレンダリングに用いられる総使用回数を決定するステップと、
前記ターゲットコンテキストを外部メモリから内部メモリにロードするステップと、
前記ロードされたターゲットコンテキストを各タイルのレンダリングに使用することによって前記ターゲットコンテキストの残余使用回数をアップデートするステップと、
を含むことを特徴とするタイルベースのイメージレンダリング方法。
【請求項１０】
前記ターゲットコンテキストは、前記ターゲットコンテキストに対応するターゲットオブジェクトをレンダリングするためのテクスチャ情報、前記ターゲットオブジェクトに対するピクセルシェーダ演算に必要な情報、前記ターゲットオブジェクトに対するラスタライザのステート情報のうち少なくとも１つを含むことを特徴とする請求項９に記載のイメージレンダリング方法。
【請求項１１】
前記内部メモリに前記ターゲットコンテキストをロードするための空間が存在するか否かを判断するステップをさらに含み、
前記ロードするステップは、前記空間が存在する場合に前記ターゲットコンテキストを前記内部メモリにロードすることを特徴とする請求項９又は１０に記載のイメージレンダリング方法。
【請求項１２】
前記空間が存在しない場合に、前記内部メモリにロードされた他のコンテキストのうち、前記他のコンテキストの残余使用回数に基づいて前記内部メモリから削除されるコンテキストを選択して削除するステップをさらに含み、
前記ロードするステップは、前記コンテキストの削除後に前記ターゲットコンテキストをロードすることを特徴とする請求項１１に記載のイメージレンダリング方法。
【請求項１３】
前記削除するステップは、前記他のコンテキストのうち、前記残余使用回数が「０」であるコンテキストを前記削除されるコンテキストに選択することを特徴とする請求項１２に記載のイメージレンダリング方法。
【請求項１４】
前記削除するステップは、前記他のコンテキストのうち、前記残余使用回数が最も小さいコンテキストを前記削除されるコンテキストに選択することを特徴とする請求項１２に記載のイメージレンダリング方法。
【請求項１５】
複数のタイルは、３次元グラフィックデータを構成するためのタイルであることを特徴とする請求項９乃至１４のいずれか一項に記載のイメージレンダリング方法。
【請求項１６】
請求項９乃至１５のいずれか一項に記載の方法をコンピュータで実行するためのプログラムを記録するコンピュータで読み出し可能な記録媒体。
【請求項１７】
ターゲットコンテキストが複数のタイルのレンダリングに用いられる総使用回数を決定するステップと、
前記内部メモリに前記ターゲットコンテキストをロードするための空間が存在するか否かを決定するステップと、
前記空間が存在しない場合に、前記内部メモリにロードされた他のコンテキストのうち、前記他のコンテキストの残余使用回数に基づいて前記内部メモリから削除されるコンテキストを選択して削除するステップと、
を含むことを特徴とするタイルベースのイメージレンダリング方法。
【請求項１８】
前記ターゲットコンテキストを外部メモリから内部メモリにロードするステップをさらに含み、
前記ロードするステップは、前記空間が存在する場合に前記ターゲットコンテキストを前記内部メモリにロードすることを特徴とする請求項１７に記載のイメージレンダリング方法。
【請求項１９】
前記総使用回数を決定するステップは、前記ターゲットコンテキストに対応するターゲットオブジェクトが前記各タイルのうち、数個のタイルにかけて表示されるか否かに応じて前記総使用回数を決定することを特徴とする請求項９又は１７に記載のイメージレンダリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
下記の実施形態はレンダリング装置及びその方法に関し、より詳しくは、レンダリング装置と外部メモリとの間のデータアクセスを減少させることができるレンダリング装置及び方法に関する。
【背景技術】
【０００２】
デバイスに３次元グラフィックデータを表示するアプリケーションの例として、モバイルデバイスで用いられるＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）アプリケーション、ｅ−ｂｏｏｋアプリケーション、インターネット上のショッピングモールで用いられる商品シミュレーションのためのアプリケーションなどがある。
【０００３】
上述のアプリケーションは速いレンダリングを必要とする。ある方式では、レンダリングされる画面を複数のタイルで区分し、各タイルに対してどのようなオブジェクトが表示されるかを判断してレンダリングするタイルベースのレンダリング方式を用いる。
【０００４】
タイルベースのレンダリング方式によれば、第１タイルをレンダリングするために第１コンテキストを外部メモリから内部メモリにロードし、第２タイルをレンダリングするためには再び第２コンテキストを外部メモリから内部メモリにロードする。
【０００５】
したがって、外部メモリと内部メモリとの間の帯域幅が狭い場合にはレンダリング性能が減少してしまうので、外部メモリと内部メモリとの間の帯域幅がレンダリング性能を向上させるための重要な要素である。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、内部メモリと外部メモリ間の帯域幅を効果的に用いることにある。
【０００７】
本発明の他の目的は、レンダリング装置が外部メモリに格納されたコンテキストをロードする回数を減少させることにある。
【課題を解決するための手段】
【０００８】
例示的な実施形態によれば、タイルベースのレンダリング装置において、ターゲットコンテキストが複数のタイルのレンダリングに用いられる総使用回数を決定する使用回数決定部と、前記ターゲットコンテキストを外部メモリから内部メモリにロードするメモリアップデート部と、前記ロードされたターゲットコンテキストを各タイルのレンダリングに使用することによって、前記ターゲットコンテキストの残余使用回数をアップデートする使用回数アップデート部とを備えるタイルベースのイメージレンダリング装置が提供される。
【０００９】
ここで、前記ターゲットコンテキストは、前記ターゲットコンテキストに対応するターゲットオブジェクトをレンダリングするためのテクスチャ情報、前記ターゲットオブジェクトに対するピクセルシェーダ演算に必要な情報、前記ターゲットオブジェクトに対するラスタライザのステート情報のうち少なくとも１つを含んでもよい。
【００１０】
そして、前記使用回数決定部は、前記ターゲットコンテキストに対応するターゲットオブジェクトが前記各タイルのうち数個のタイルにかけて表示されるか否かに応じて前記総使用回数を決定してもよい。
【００１１】
また、前記メモリアップデート部は、前記内部メモリに前記ターゲットコンテキストをロードするための空間が存在するか否かを判断し、前記空間が存在する場合に、前記ターゲットコンテキストを前記内部メモリにロードしてもよい。
【００１２】
ここで、前記メモリアップデート部は前記空間が存在しない場合、前記内部メモリにロードされた他のコンテキストのうち、前記他のコンテキストの残余使用回数に基づいて前記内部メモリから削除されるコンテキストを選択して削除し、前記ターゲットコンテキストをロードしてもよい。
【００１３】
また、前記メモリアップデート部は、前記他のコンテキストのうち、前記残余使用回数が「０」であるコンテキストを前記削除されるコンテキストに選択してもよい。
【００１４】
また、前記メモリアップデート部は、前記他のコンテキストのうち、前記残余使用回数が最も小さいコンテキストを前記削除されるコンテキストに選択してもよい。
【００１５】
また、複数のタイルは、３次元グラフィックデータを構成するためのタイルであってもよい。
【００１６】
本発明の他の例示的な実施形態によれば、タイルベースのイメージレンダリング方法において、ターゲットコンテキストが複数のタイルのレンダリングに用いられる総使用回数を決定するステップと、前記ターゲットコンテキストを外部メモリから内部メモリにロードするステップと、前記ロードされたターゲットコンテキストを各タイルのレンダリングに使用することによって前記ターゲットコンテキストの残余使用回数をアップデートするステップとを含む。
【００１７】
ここで、前記ターゲットコンテキストは、前記ターゲットコンテキストに対応するターゲットオブジェクトをレンダリングするためのテクスチャ情報、前記ターゲットオブジェクトに対するピクセルシェーダ演算に必要な情報、前記ターゲットオブジェクトに対するラスタライザのステート情報のうち少なくとも１つを含んでもよい。
【００１８】
また、前記総使用回数を決定するステップは、前記ターゲットコンテキストに対応するターゲットオブジェクトが前記各タイルのうち、数個のタイルにかけて表示されるか否かに応じて前記総使用回数を決定してもよい。
【００１９】
また、前記内部メモリに前記ターゲットコンテキストをロードするための空間が存在するか否かを判断するステップをさらに含み、前記ロードするステップは、前記空間が存在する場合に前記ターゲットコンテキストを前記内部メモリにロードしてもよい。
【００２０】
ここで、前記空間が存在しない場合に、前記内部メモリにロードされた他のコンテキストのうち、前記他のコンテキストの残余使用回数に基づいて前記内部メモリから削除されるコンテキストを選択して削除するステップをさらに含み、前記ロードするステップは、前記コンテキストの削除後に前記ターゲットコンテキストをロードしてもよい。
【００２１】
また、前記削除するステップは、前記他のコンテキストのうち、前記残余使用回数が「０」であるコンテキストを前記削除されるコンテキストに選択してもよい。
【００２２】
また、前記削除するステップは、前記他のコンテキストのうち、前記残余使用回数が最も小さいコンテキストを前記削除されるコンテキストに選択してもよい。
【００２３】
また、複数のタイルは、３次元グラフィックデータを構成するためのタイルであってもよい。
【００２４】
本発明のタイルベースのイメージレンダリング方法は、ターゲットコンテキストが複数のタイルのレンダリングに用いられる総使用回数を決定するステップと、前記内部メモリに前記ターゲットコンテキストをロードするための空間が存在するか否かを決定するステップと、前記空間が存在しない場合に、前記内部メモリにロードされた他のコンテキストのうち、前記他のコンテキストの残余使用回数に基づいて前記内部メモリから削除されるコンテキストを選択して削除するステップとを含む。
【００２５】
また、前記総使用回数を決定するステップは、前記ターゲットコンテキストに対応するターゲットオブジェクトが前記各タイルのうち、数個のタイルにかけて表示されるか否かに応じて前記総使用回数を決定してもよい。
【００２６】
ここで、前記ターゲットコンテキストを外部メモリから内部メモリにロードするステップをさらに含み、前記ロードするステップは、前記空間が存在する場合に前記ターゲットコンテキストを前記内部メモリにロードしてもよい。
【発明の効果】
【００２７】
例示的な実施形態によれば、内部メモリと外部メモリ間の帯域幅を効果的に用いることができる。例示的な実施形態によれば、レンダリング装置が外部メモリに格納されたコンテキストをロードする回数を減少させることができる。
【図面の簡単な説明】
【００２８】
【図１】例示的な実施形態に係るレンダリング方法を段階別に説明したフローチャートである。
【図２】例示的な実施形態に係る総使用回数の設定方法を段階別に説明したフローチャートである。
【図３】例示的な実施形態に係る総使用回数の設定方法を説明した図である。
【図４】例示的な実施形態に係るレンダリング方法を説明した図である。
【図５】例示的な実施形態に係るレンダリング装置の構造を示すブロック図である。
【図６】更なる例示的な実施形態に係るレンダリング方法を段階別に説明したフローチャートである。
【発明を実施するための形態】
【００２９】
以下、本発明の実施形態について添付の図面を参照しながら詳細に説明する。
【００３０】
図１は、例示的な実施形態に係るレンダリング方法を段階別に説明したフローチャートである。
【００３１】
ステップＳ１１０において、レンダリング装置はデータに対する総使用回数を決定する。ここで、ラスタライザ演算に必要な情報がステップＳ１１０におけるデータに用いられてもよい。一実施形態によれば、ラスタライザ演算に必要な情報は、ターゲットオブジェクトをレンダリングするためのテクスチャ情報、ターゲットオブジェクトに対するピクセルシェーダ演算に必要な情報、ターゲットオブジェクトに対するラスタライザのステート情報のうち少なくとも１つを含んでもよい。
【００３２】
ここで、ラスタライザは、テクスチャイメージ情報、タイル情報、シーンバッファ情報を含むデータ構造を用いてターゲットオブジェクトに対する演算を行う。また、ラスタライザは、ラスタライザセッティング、フラグメント演算のセッティングを含むラスタライザステートなどを用いてターゲットオブジェクトに対する演算を行う。
【００３３】
また、ターゲットオブジェクトに対するピクセルシェーダは、シェーダプログラムのポインタ、シェーダコンテキスト、シェーダプログラムのバリイング変数（ｖａｒｙｉｎｇ  ｖａｒｉａｂｌｅｓ）、ユニフォーム変数（ｕｎｉｆｏｒｍ  ｖａｒｉａｂｌｅｓ）、ピクセルシェーダ演算関数、ピクセルシェーダ演算結果であるフラグメント情報のうち少なくとも１つを含むピクセルシェーダ演算に必要な情報を用いてターゲットオブジェクトに対する演算を行う。ここで、バリイング変数は、ポジション情報及びテクスチャ座標またはカラー、法線情報、接線、従法線、ビュー情報、光情報のうち少なくとも１つを含んでもよい。
【００３４】
以下、本明細書では「データ」と「コンテキスト」という用語を併行して使用することにする。総使用回数は、データに対応するオブジェクトが数個のタイルにかけて表現されるかに応じて決定されてもよい。例えば、データに対応するオブジェクトが４個のタイルにかけて表現されれば、オブジェクトは４個のタイルに分類して表現される。したがって、４個のタイルそれぞれをレンダリングする場合に当該データが使用されなければならない。この場合、当該データに対する総使用回数は４回に決定されてもよい。
【００３５】
ステップＳ１１０で、レンダリング装置は、レンダリングを行うためのデータに対してデータの残余使用回数を決定する。ステップＳ１１０では、データに対するレンダリングがまだ行われていないため、レンダリング装置はデータの残余使用回数をデータに対する総使用回数と同一に決定してもよい。ステップＳ１２０で、レンダリング装置のレンダリングモジュールは、特定タイルをレンダリングするためにデータをリクエストする。
【００３６】
一実施形態によれば、データは外部メモリに格納されてもよい。外部メモリに格納されたデータは内部メモリにロードされ、レンダリングモジュールは内部メモリにロードされたデータを用いてレンダリングを行う。
【００３７】
ステップＳ１２１で、レンダリング装置は、内部メモリにリクエストしたデータがあるか否かを判断してもよい。もし、当該データが以前タイルをレンダリングするために使用されれば、データは内部メモリにロードされていてもよい。
【００３８】
もし、当該データが内部メモリにロードされていれば、レンダリング装置はステップＳ１２２で内部メモリにロードされたデータをレンダリングモジュールに提供する。
【００３９】
ステップＳ１２３で、レンダリングモジュールは、内部メモリにロードされたデータを用いてレンダリングを行う。データがレンダリングに使用されれば、レンダリング装置は、当該データに対する残余使用回数を「１」だけ減少させてもよい。もし、ステップＳ１２１で、内部メモリにリクエストしたデータがないと判断されれば、レンダリング装置はステップＳ１３０で、内部メモリにリクエストされたデータを格納する空間があるか否かを判断する。
【００４０】
もし、内部メモリにリクエストされたデータを格納する空間があれば、レンダリング装置はステップＳ１４０で、外部メモリに格納されたデータを内部メモリにロードする。レンダリング装置は、ステップＳ１２２及びステップＳ１２３で、ロードされたデータを用いてレンダリングを行う。もし、内部メモリにリクエストされたデータを格納する空間がなければ、レンダリング装置は、内部メモリにすでにロードされた他のデータを一部削除することで内部メモリの空間を確保することができる。
【００４１】
一実施形態によれば、レンダリング装置は、内部メモリにロードされた他のデータのうち以前に使用される可能性が低いデータを選択して削除してもよい。
【００４２】
一実施形態によれば、レンダリング装置は、各データに対して残余使用回数を設定して制御してもよい。この場合に、レンダリング装置は、残余使用回数が小さいデータを以前に使用する可能性が低いデータと判断して選択し、選択されたデータを削除してもよい。
【００４３】
ステップＳ１５０で、レンダリング装置は、リクエストされたデータの残余使用回数が、例えば「１」よりも小さいか同じであるかを判断する。もし、リクエストされたデータの残余使用回数が「１」よりも小さいか同一である場合、レンダリング装置は、リクエストされたデータが１回だけ使用されたと判断する。この場合、レンダリング装置は、ステップＳ１７０で外部メモリに格納されたデータをレンダリングモジュールに提供し、リクエストされたデータを内部メモリに格納しなくてもよい。
【００４４】
もし、データの残余使用回数が「１」より大きければ、レンダリング装置はリクエストされたデータが数回使用されるものと判断してもよい。この場合には、リクエストされたデータを内部メモリに格納することが性能向上のために有利である。レンダリング装置はステップＳ１５１で、内部メモリのデータのうち残余使用回数が最も小さいデータを選択する。
【００４５】
レンダリング装置はステップＳ１６０で、リクエストされたデータの残余使用回数と選択されたデータの残余使用回数とを比較する。もし、リクエストされたデータの残余使用回数が選択されたデータの残余使用回数よりも少なければ、レンダリング装置はステップＳ１７０で、外部メモリに格納されたデータを内部メモリに格納することなく、レンダリングモジュールに提供してもよい。
【００４６】
ステップＳ１６１で、リクエストされたデータの残余使用回数が選択されたデータの残余使用回数よりも多ければ、レンダリング装置は外部メモリでリクエストされたデータを内部メモリにロードする。
【００４７】
図２は例示的な実施形態に係る総使用回数の設定方法を段階別に説明したフローチャートであり、図３は例示的な実施形態に係る総使用回数の設定方法を説明した図である。
【００４８】
ステップＳ２１０で、レンダリング装置は、オブジェクト、タイル情報、コンテキスト情報を外部メモリで読み込む。ここで、コンテキスト情報は、オブジェクトをレンダリングするためのテクスチャ情報、ポジション情報、法線情報、レンダリングステート情報のうち少なくとも１つを含んでもよい。
【００４９】
ステップＳ２２０で、レンダリング装置は、各オブジェクトがタイルに重なった部分を算出する。一実施形態によれば、レンダリング装置は、レンダリング映像３１０を図３（ａ）に示すように複数のタイル３１１に分割する。図３（ａ）では、レンダリング映像が２５個のタイルに分割された実施形態を示す。レンダリング映像は、少なくとも１つ以上のオブジェクト３２０、３３０を含んでもよい。オブジェクト３２０、３３０は図３（ａ）に示すように、少なくとも１つ以上のタイルにかけて表示されてもよい。
【００５０】
図３（ｂ）は、各オブジェクトが各タイルに重なった部分を算出したものである。各タイルに書き込まれた数字は各タイルに重なったオブジェクトの番号を表示したものであり、タイルに書き込まれた数字が１である場合は第１オブジェクト３２０が当該タイルに表示されることを意味し、タイルに書き込まれた数字が２である場合は第２オブジェクト３３０が当該タイルに表示されることを意味する。
【００５１】
ステップＳ２３０で、レンダリング装置は、「現在のタイル」の値をオブジェクトとタイルが重なった領域の開始タイルに設定する。ステップＳ２４０で、レンダリング装置は、「現在のタイル」の値がオブジェクトとタイルが重なった領域の終了タイルであるかを判断する。もし、終了タイルであれば、レンダリング装置はステップＳ２１０で他のオブジェクトに対する演算を行う。
【００５２】
もし、終了タイルでなければ、レンダリング装置はステップＳ２５０で、現在のタイル内の当該オブジェクトのコンテキストが以前オブジェクトのコンテキストと異なるかを判断する。同一であれば、レンダリング装置は、内部メモリにロードされた以前オブジェクトのコンテキストを再び用いることができるため、この場合にはコンテキストの総使用回数を増加せずに、ステップＳ２８０で「現在のタイル」の値を増加させて他のタイルに対する演算を行う。
【００５３】
もし、以前オブジェクトのコンテキストと異なる場合、レンダリング装置は内部メモリにコンテキストをロードしなければならない。したがって、レンダリング装置はステップＳ２６０で当該コンテキストの総使用回数を「１」だけ増加させてもよい。
【００５４】
ステップＳ２７０で、レンダリング装置は各コンテキスト別の総使用回数を外部メモリに格納してもよい。ステップＳ２３０〜ステップＳ２８０における演算は、図３（ｂ）に示されたオブジェクトの番号を全て合算したものである。すなわち、図３（ｂ）で各オブジェクトが数個のタイルにかけて表現されたかを合算したものである。
【００５５】
図３（ａ）、（ｂ）を参考すると、第１オブジェクト３２０は８個のタイルにかけて表現され、第２オブジェクト３３０は１４個のタイルにかけて表現される。これを整理すれば、図３（ｃ）の通りである。
【００５６】
図４は、例示的な実施形態に係るレンダリング方法を説明した図である。第１タイルに対するレンダリング情報４１０を参考すると、第１タイルには４個のオブジェクトが表現される。各オブジェクトに対するレンダリング情報４１１、４１２、４１３、４１４を参考すると、各オブジェクトは当該オブジェクトに対応するコンテキストを用いてレンダリングしてもよい。
【００５７】
また、第２タイルに対するレンダリング情報４２０を参考すると、第２タイルには３つのオブジェクトが表現される。各オブジェクトに対するレンダリング情報４２１、４２２、４２３を参考すると、各オブジェクトは当該オブジェクトに対応するコンテキストを用いてレンダリングしてもよい。
【００５８】
第１段階で、全てのコンテキスト情報は外部メモリ４５０に格納される。各コンテキストの横に記載された数字は各コンテキストに対する残余使用回数を示す。
【００５９】
第２段階で、レンダリング装置は第１コンテキストを内部メモリ４４１にロードする。ラスタライザ４３１はロードされた第１コンテキストを第１タイルで第１オブジェクトをレンダリングするために用いてもよい。この場合に、外部メモリ４５１の第１コンテキストに対する残余使用回数は「２」に減少した。
【００６０】
第３段階で、レンダリング装置は第２コンテキストを内部メモリ４４２にロードする。ラスタライザ４３２は、ロードされた第２コンテキストを第１タイルで第２オブジェクトをレンダリングするために用いてもよい。この場合に、外部メモリ４５２の第２コンテキストに対する残余使用回数は「０」に減少した。
【００６１】
第４段階で、レンダリング装置は第３コンテキストを内部メモリ４４３にロードする。ラスタライザ４３３は、ロードされた第３コンテキストを第１タイルで第３オブジェクトをレンダリングするために用いてもよい。この場合に、外部メモリ４５３の第３コンテキストに対する残余使用回数は「８」に減少した。
【００６２】
第５段階で、レンダリング装置は第１タイルで第４オブジェクトをレンダリングする。レンダリング装置は、第４オブジェクトをレンダリングするために第４コンテキストをロードしようとするが、内部メモリ４４４にはこれ以上の空間がない。この場合、レンダリング装置は内部メモリ４４４に格納されていた第１コンテキスト、第２コンテキスト、第３コンテキストのうち少なくとも１つ以上のコンテキストを削除してもよい。
【００６３】
一実施形態によれば、レンダリング装置は各コンテキストの残余使用回数に基づいて内部メモリ４４４に格納されていたコンテキストのうち少なくとも１つ以上のコンテクスを選択し、選択されたコンテキストを削除してもよい。
【００６４】
一実施形態によれば、レンダリング装置は内部メモリ４４４に格納されていたコンテキストのうち、残余使用回数が「０」であるコンテキストを選択して削除してもよい。他の側面によれば、レンダリング装置は、内部メモリ４４４に格納されていたコンテキストのうち残余使用回数が最も小さいコンテキストを選択して削除してもよい。
【００６５】
図４では、レンダリング装置が内部メモリ４４４に格納されていたコンテキストのうち第２コンテキストを削除してもよい。第２コンテキストの残余使用回数は「０」回であり、第１コンテキスト、第２コンテキスト、第３コンテキストのうち残余使用回数が最も少ない。
【００６６】
一実施形態によれば、レンダリング装置は第２コンテキストを削除して確保された空間に第４コンテキストをロードしてもよい。ラスタライザ４４４は、ロードされた第４コンテキストを第１タイルで第４オブジェクトをレンダリングするために用いてもよい。この場合に、外部メモリ４５４の第３コンテキストに対する残余使用回数は「１６」に減少した。
【００６７】
第６段階で、ラスタライザ４３５は、内部メモリ４４５にロードされた第１コンテキスト、第３コンテキスト及び第４コンテキストを用いて第２タイルで第１オブジェクト、第３オブジェクト、第４オブジェクトをレンダリングしてもよい。この場合に、外部メモリ４５５の第１コンテキストに対する残余使用回数は「１」に、第３コンテキストに対する残余使用回数は「７」に、第４コンテキストに対する残余使用回数は「１５」に減少した。
【００６８】
第６段階で、第２タイルをレンダリングするための全てのコンテキストがすでにメモリにロードされているため、レンダリング装置は外部メモリ４５５にアクセスする必要がなく、外部メモリから内部メモリでコンテキストをロードしなくてもよい。したがって、外部メモリから内部メモリまでのバスを効率的に使用することができる。
【００６９】
図５は、例示的な実施形態に係るレンダリング装置の構造を示すブロック図である。レンダリング装置５００は、使用回数決定部５１０、メモリアップデート部５２０、使用回数アップデート部５３０、外部メモリ５４０、内部メモリ５５０及びレンダリングエンジン５６０を備える。
【００７０】
レンダリング装置はレンダリング映像をタイル単位に分割し、各タイルに対してレンダリングを行う。レンダリング装置は、オブジェクトをレンダリングするためにコンテキストを用いる。ここで、コンテキストは、ターゲットオブジェクトをレンダリングするためのテクスチャ情報、ターゲットオブジェクトに対するピクセルシェーダ演算に必要な情報、ターゲットオブジェクトに対するラスタライザのステート情報のうち少なくとも１つを含んでもよい。
【００７１】
イメージに対する複数のタイルは、３次元グラフィックデータを生成するためのタイルであってもよい。
【００７２】
使用回数決定部５１０は、ターゲットコンテキストが前記各タイルのレンダリングに用いられる総使用回数を決定する。一実施形態によれば、使用回数決定部５１０は、ターゲットコンテキストに対応するターゲットオブジェクトがレンダリング映像を分割したタイルのうち数個のタイルにかけて表示されるか否かに応じて、ターゲットコンテキストに対する総使用回数を決定する。例えば、ターゲットコンテキストに対応するターゲットオブジェクトが３つのタイルにかけて表示される場合、使用回数決定部５１０はターゲットコンテキストに対する総使用回数は３回であると決定してもよい。
【００７３】
ターゲットコンテキストは外部メモリ５４０に格納されてもよい。メモリアップデート部５２０は、外部メモリ５４０に格納されたターゲットコンテキストを内部メモリにロードし、レンダリングエンジン５６０は内部メモリにロードされたターゲットコンテキストを用いてターゲットオブジェクトをレンダリングしてもよい。
【００７４】
図５において、レンダリングエンジン５６０と内部メモリ５５０が別個のハードウェアのように示されたが、一実施形態によれば、レンダリングエンジン５６０と内部メモリ５５０は１つのハードウェアで実現されてもよい。例えば、レンダリングエンジン５６０は中央処理装置の演算部であり、内部メモリ５５０は中央処理装置内部のメモリであってもよい。したがって、レンダリングエンジン５６０と内部メモリ５５０との間の帯域幅は極めて広く、ロード速度も極めてはやいものの、外部メモリ５４０と中央処理装置間の帯域幅は相対的に狭くてロード速度も相対的に遅い場合もある。
【００７５】
一実施形態によれば、メモリアップデート部５２０は、内部メモリ５５０にターゲットコンテキストをロードするための空間が存在するか否かを判断し、空間が存在する場合にターゲットコンテキストを内部メモリ５５０にロードしてもよい。すなわち、内部メモリ５５０に他のオブジェクトをレンダリングするための異なるコンテキストがすでにロードされれば、内部メモリ５５０には十分な空間が存在しない場合がある。この場合に、メモリアップデート部５２０はターゲットコンテキストを内部メモリ５５０にロードすることができない。
【００７６】
使用回数アップデート部５３０は、内部メモリ５５０にロードされたターゲットコンテキストが各タイルのレンダリングに使用されることによって、ターゲットコンテキストの残余使用回数をアップデートする。すなわち、ターゲットコンテキストが最初に内部メモリ５５０にロードされれば、ターゲットコンテキストの残余使用回数は、ターゲットコンテキストに対する総使用回数と同一に決定される。ターゲットコンテキストが第１タイルのレンダリングに使用されれば、使用回数アップデート部５３０は、ターゲットコンテキストの残余使用回数を従来の残余使用回数よりも「１」小さい値にアップデートしてもよい。また、ターゲットコンテキストが第２タイルのレンダリングに使用されれば、使用回数アップデート部５３０は、ターゲットコンテキストの残余使用回数を再び「１」小さい値にアップデートしてもよい。使用回数アップデート部５３０は、類似の方法でターゲットコンテキストに対する残余使用回数が「０」になるまでアップデートしてもよい。
【００７７】
一実施形態によれば、メモリアップデート部５２０は、内部メモリ５５０にロードされた複数のコンテキストのうち、各コンテキストの残余使用回数に基づいて内部メモリ５５０から削除されるコンテキストを選択してもよい。
【００７８】
メモリアップデート部５２０が選択されたコンテキストを削除すると、内部メモリ５５０には、ターゲットコンテキストをロードすることのできる空間が確保され得る。この場合、メモリアップデート部５２０は確保された空間にターゲットコンテキストをロードし、レンダリングエンジン５６０はロードされたターゲットコンテキストを用いてレンダリングを行う。
【００７９】
一実施形態によれば、メモリアップデート部５２０は内部メモリ５５０に格納されたコンテキストのうち、残余使用回数が「０」のコンテキストを選択して削除してもよい。他の側面によれば、メモリアップデート部５２０は内部メモリ５５０に格納されたコンテキストのうち、残余使用回数が最も小さいコンテキストを選択して削除してもよい。
【００８０】
図６は、更なる例示的な実施形態に係るレンダリング方法を段階別に説明したフローチャートである。
【００８１】
レンダリング装置はレンダリング映像をタイル単位に分割し、各タイルに対してレンダリングを行う。レンダリング装置は、オブジェクトをレンダリングするためにコンテキストを用いる。ここで、コンテキストは、ターゲットオブジェクトをレンダリングするためのテクスチャ情報、ターゲットオブジェクトに対するピクセルシェーダ演算に必要な情報、ターゲットオブジェクトに対するラスタライザのステート情報のうち少なくとも１つを含んでもよい。ステップＳ６１０で、レンダリング装置はターゲットコンテキストが各タイルのレンダリングに用いられる総使用回数を決定する。一実施形態によれば、レンダリング装置は、ターゲットコンテキストに対応するターゲットオブジェクトがレンダリング映像を分割したタイルのうち、数個のタイルにかけて表示されるか否かに応じてターゲットコンテキストに対する総使用回数を決定してもよい。ターゲットコンテキストは外部メモリに格納されてもよい。
【００８２】
ステップＳ６２０で、レンダリング装置は、内部メモリにターゲットコンテキストをロードするための空間が存在するか否かを判断してもよい。ターゲットコンテキストをロードするための空間が存在する場合、ステップＳ６４０で、レンダリング装置はターゲットコンテキストを前記内部メモリにロードしてもよい。
【００８３】
内部メモリに他のオブジェクトをレンダリングするための他のコンテキストが既にロードされれば、内部メモリには十分な空間が存在できない場合がある。この場合に、レンダリング装置は、ターゲットコンテキストを内部メモリにロードすることができない。この場合、レンダリング装置はステップＳ６３０で、内部メモリに格納されたコンテキストのうち一部のコンテキストを選択して削除してもよい。
【００８４】
一実施形態によれば、レンダリング装置は内部メモリにロードされた複数のコンテキストのうち、各コンテキストの残余使用回数に基づいて内部メモリから削除されるコンテキストを選択してもよい。
【００８５】
一実施形態によれば、レンダリング装置は内部メモリに格納されたコンテキストのうち、残余使用回数が「０」のコンテキストを選択して削除してもよい。
【００８６】
他の側面によれば、レンダリング装置は内部メモリに格納されたコンテキストのうち、残余使用回数が最も小さいコンテキストを選択して削除してもよい。
【００８７】
レンダリング装置が選択されたコンテキストを削除すると、内部メモリにはターゲットコンテキストをロードすることのできる空間が確保され得る。この場合、レンダリング装置はステップＳ６４０で、確保された空間にターゲットコンテキストをロードしてもよい。
【００８８】
ステップＳ６５０で、レンダリング装置はロードされたターゲットコンテキストを用いてレンダリングを行う。ステップＳ６６０で、レンダリング装置は内部メモリにロードされたターゲットコンテキストが各タイルのレンダリングに用いられることによってターゲットコンテキストの残余使用回数をアップデートする。すなわち、ターゲットコンテキストが最初に内部メモリにロードされれば、ターゲットコンテキストの残余使用回数はターゲットコンテキストに対する総使用回数と同一に決定される。ターゲットコンテキストが第１タイルのレンダリングに使用されれば、レンダリング装置は、ターゲットコンテキストの残余使用回数を従来の残余使用回数よりも「１」小さい値にアップデートしてもよい。また、ターゲットコンテキストが第２タイルのレンダリングに使用されれば、レンダリング装置は、ターゲットコンテキストの残余使用回数を再び「１」小さい値にアップデートしてもよい。レンダリング装置は、類似の方法によりターゲットコンテキストに対する残余使用回数が「０」になるまでアップデートしてもよい。
【００８９】
本発明の実施形態に係る方法は、多様なコンピュータ手段によって行うことができるプログラム命令の形態で実現されても良く、かかるプログラム命令は、コンピュータ読み出し可能媒体に記録されてもよい。前記コンピュータ読み出し可能媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせたものを含んでもよい。前記媒体に記録されるプログラム命令は、本発明のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読み出し可能記録媒体の例には、ハードディスク、フロッピー（登録商標）ディスク及び磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、フロプティカルディスクのような光磁気媒体、及びＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を格納し遂行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例には、コンパイラによって作られるような機械語コードだけでなく、インタープリタなどを用いてコンピュータによって実行できる高級言語コードが含まれる。前記したハードウェア装置は、本発明の動作を行うために１つ以上のソフトウェアモジュールとして作動するように構成されてもよく、その逆も同様である。
【００９０】
以上のように本発明を限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような記載から多様な修正及び変形が可能である。
【００９１】
したがって、本発明の範囲は、説明された実施形態に限定されて定められるものではなく、特許請求の範囲及び特許請求の範囲と均等なものなどによって定められるものである。
【符号の説明】
【００９２】
５００      レンダリング装置
５１０      使用回数決定部
５２０      メモリアップデート部
５３０      使用回数アップデート部
５４０      外部メモリ
５５０      内部メモリ
５６０      レンダリングエンジン
【図１】
2013175191.tif 000003
【図２】
2013175191.tif 000004
【図３】
2013175191.tif 000005
【図４】
2013175191.tif 000006
【図５】
2013175191.tif 000007
【図６】
2013175191.tif 000008