(58)【調査した分野】(Int.Cl.,DB名)
前記要請されたテクセルに対応するインデックスが、前記テクスチャキャッシュに保存されていない旨の判断に応答して、前記テクスチャ処理方法を遂行するテクスチャ処理装置外部のメモリから、前記要請されたテクセルを含む圧縮テクセルブロックを受信する段階をさらに含むことを特徴とする請求項1〜4のうちの何れか1項に記載のテクスチャ処理方法。
前記要請されたテクセルに対応するインデックスが、前記テクスチャキャッシュに保存されていない旨の判断に応答して、前記圧縮テクセルブロックを、前記テクスチャ処理方法を遂行する前記テクスチャ処理装置外部のメモリから受信して保存する第2テクスチャキャッシュから、前記要請されたテクセルを含む圧縮テクセルブロックを受信する段階をさらに含むことを特徴とする請求項1〜5のうちの何れか1項に記載のテクスチャ処理方法。
前記要請されたテクセルが、前記ピクセルシェーディングに使用されない旨の判断に応答して、前記要請に対する応答として、所定値を返す段階をさらに含むことを特徴とする請求項8に記載のテクスチャ処理方法。
前記代表値は、所定規則によって配列された、前記テクセルブロックを構成するテクセルのエンドポイント値に該当する値であることを特徴とする請求項11〜19のうちの何れか1項に記載のテクスチャ処理装置。
【発明を実施するための形態】
【0030】
以下、添付された図面を参照しながら、単なる例示のための実施形態によって、発明を詳細に説明する。下記の実施形態は、発明を具体化するためのものであるだけであり、発明の権利範囲を制限したり限定したりするものではないことは言うまでもない。詳細な説明及び実施形態から、発明が属する技術分野の専門家が容易に類推することができるものは、発明の権利範囲に属すると解釈される。
【0031】
本明細書で使用される「構成される」や「含む」というような用語は、明細書上に記載されたさまざまな構成要素、またはさまざまな段階を必ずしも全て含むものであると解釈される必要はなく、そのうちの一部の構成要素または一部の段階は含まれなくてもよく、または追加的な構成要素または段階をさらに含んでもよいと解釈されなければならない。
【0032】
また、本明細書で使用される「第1」または「第2」というような序数を含む用語は、多様な構成要素についての説明に使用することができるが、前記構成要素は、前記用語によって限定されるものではない。前記用語は、1つの構成要素を他の構成要素から区別する目的のみに使用される。
【0033】
本実施形態は、テクスチャ処理方法及びその装置に係わるものであり、以下の実施形態が属する技術分野で当業者に公知されている事項については、詳細な説明を省略する。
【0034】
図1は、一実施形態によるグラフィック処理装置を示した図面である。
図1に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということを、関連技術分野で当業者であるならば、理解することができるであろう。
【0035】
図1を参照すれば、グラフィック処理装置100は、ラスタライザ(rasterizor)110、シェーダコア(shader core)120、テクスチャ処理装置(texture processing unit)130、ピクセル処理装置(pixel processing unit)140、タイルバッファ(tile buffer)150などを含んでもよい。グラフィック処理装置100は、バス300を介して、外部のメモリ200とデータを送受信することができる。
【0036】
図1に図示されたグラフィック処理装置100は、三次元グラフィックスを処理する装置であり、タイルに基づいたレンダリング(TBR:tile based rendering)方式を使用することができる。言い替えれば、グラフィック処理装置100は、1つのフレームに該当する三次元グラフィックスを生成するために、一定サイズに分割された複数個のタイルを、ラスタライザ110、シェーダコア120、ピクセル処理装置140を通過させ、処理結果を、タイルバッファ150に保存することができる。グラフィック処理装置100は、フレームを構成する全てのタイルに対して、ラスタライザ110、シェーダコア120及びピクセル処理装置140で構成されるチャンネルを複数個利用して、並列処理を行うことができる。グラフィック処理装置100は、1つのフレームに該当する複数個のタイルが処理されれば、タイルバッファ150に保存された処理結果を、メモリ200のフレームバッファ(図示せず)で伝送することができる。
【0037】
シェーダコア120は、ピクセルシェーダ(pixel shader)を含んでもよい。シェーダコア120は、バーテックスシェーダ(vertex shader)をさらに含んでいる形態であってもよく、バーテックスシェーダとピクセルシェーダとが統合された形態の統合シェーダであってもよい。シェーダコア120が、バーテックスシェーダの機能を遂行することができる場合、オブジェクトを示すプリミティブ(primitive)を生成し、ラスタライザ110に伝達することができる。
【0038】
ラスタライザ110は、幾何変換過程を経て、バーテックスシェーダから生成されたプリミティブに対して、ラスタ化(rasterization)を行うことができる。
【0039】
シェーダコア120は、ラスタライザ110からラスタ化されたプリミティブを伝達され、ピクセルシェーディングを行うことができる。シェーダコア120は、ラスタ化を経て生成されたプリミティブのフラグメント(fragment)を含むタイルに対して、タイルを構成する全てのピクセルの色相を決定するピクセルシェーディングを行うことができる。シェーダコア120は、ピクセルシェーディング過程において、立体的であって臨場感ある三次元グラフィックスを生成するために、テクスチャを利用して生成されたピクセル値を使用することができる。
【0040】
シェーダコア120が、所望するピクセルに対応するピクセル値の伝達をテクスチャ処理装置130に要請すれば、テクスチャ処理装置130は、あらかじめ準備されたテクスチャを処理し、生成されたピクセル値を伝達する。テクスチャは、テクスチャ処理装置130の内部または外部の所定空間、またはグラフィック処理装置100外部のメモリ200に保存されている。テクスチャ処理装置130は、シェーダコア120で要請したピクセル値の生成に利用されるテクスチャが、テクスチャ処理装置130内部の所定空間にない場合、テクスチャ処理装置130外部の空間またはメモリ200から、テクスチャを持ってきて使用することができる。
【0041】
ピクセル処理装置140は、1つのタイル内の同一位置に対応するピクセルに対して、深さテストのような過程を経て、最終的に表示されるピクセル値を決定し、1つのタイルに該当する全てのピクセル値を決定することができる。
【0042】
タイルバッファ150は、ピクセル処理装置140から伝達された1つのタイルに該当する全てのピクセル値を保存することができる。1つのフレームを構成する全てのタイルに対するグラフィック処理過程が完了すれば、タイルバッファ150に保存された処理結果が、メモリ200のフレームバッファに伝達される。
【0043】
図2は、グラフィック処理装置において、三次元グラフィックスを処理する過程の一実施形態について説明する図面である。
【0044】
三次元グラフィックスを処理する過程は、大別して、幾何変換、ラスタ化、ピクセルシェーディングの3段階に分けることができ、以下、
図2を参照し、さらに詳細的な過程について説明する。
図2を参照すれば、段階11ないし段階18を介して、三次元グラフィックスを処理する過程を示している。
【0045】
段階11は、バーテックス(vertices)を生成する段階である。バーテックスは、三次元グラフィックスに含まれたオブジェクトを示すために生成される。
【0046】
段階12は、生成されたバーテックスをシェーディングする段階である。バーテックスシェーダは、段階11で生成されたバーテックスの位置を指定することにより、バーテックスに対するシェーディングを行うことができる。
【0047】
段階13は、プリミティブを生成する段階である。プリミティブは、少なくとも1つのバーテックスを利用して形成される、点、線、多角形(polygon)などを意味する。一例として、プリミティブは、バーテックスを連結して形成された三角形で示すことができる。
【0048】
段階14は、プリミティブをラスタ化する段階である。プリミティブのラスタ化は、プリミティブをフラグメントに分割することを意味する。フラグメントは、プリミティブに対してグラフィック処理を行うための基本単位でもある。プリミティブは、バーテックスに係わる情報のみを含むので、ラスタ化段階において、バーテックスとバーテックスとの間のフラグメントを生成することにより、三次元グラフィックスに対するグラフィック処理を行う。
【0049】
段階15は、ピクセルをシェーディングする段階を示す。ラスタ化によって生成された、プリミティブを構成するフラグメントは、タイルを構成するピクセルになる。当該分野で、フラグメント及びピクセルという用語は場合によって、混用して使用されてもよい。例えば、ピクセルシェーダは、フラグメントシェーダと呼ぶことができる。一般的に、プリミティブを構成するグラフィック処理の基本単位をフラグメントと呼び、以後、ピクセルシェーディングからのグラフィック処理の基本単位をピクセルと呼ぶ。ピクセルシェーディングでは、ピクセルの色を決定することができる。
【0050】
段階16は、ピクセルの色を決定するためのテクスチャリング段階を示す。テクスチャリングは、ピクセルの色を決定するとき、あらかじめ準備されたイメージ、すなわち、テクスチャを利用して、ピクセルの色を決定する過程である。実世界の多様な色相、及びパターンの様子を表現するために、それぞれのピクセルの色相を計算して決定することは、グラフィック処理に必要なデータ演算量及びグラフィック処理時間を非常に増加させるので、あらかじめ準備されたテクスチャを利用して、ピクセルの色相を決定するのである。例えば、オブジェクトの表面色相を、テクスチャという別途の二次元映像に保存し、オブジェクトの画面上の位置及び大きさなどによって、保存されたテクスチャを拡大及び縮小したり、多様な解像度を有するテクスチャを利用してテクセル値を混合したりすることにより、ピクセルの色相を決定することができる。
【0051】
さらに具体的には、ピクセルシェーディング過程において、さらに迅速な三次元グラフィックス処理のために、あらかじめ準備されたテクスチャを利用して生成されたピクセル値を使用することができる。このとき、オブジェクトの大きさに適応的に対応するように、互いに異なる解像度を有する複数個のテクスチャをあらかじめ準備しておき、それらを組み合わせてピクセル値を生成することもできる。このとき、互いに異なる解像度を有する、あらかじめ準備されたテクスチャをミップマップ(mipmap)という。例えば、あらかじめ準備された2つのミップマップの中間解像度を有するオブジェクトのピクセル値を生成するために、2つのミップマップから、オブジェクトに対応する位置のテクセル値を抽出し、それらをフィルタリングすることにより、オブジェクトを構成するピクセル値を生成することができる。
【0052】
段階17は、テスト及びミキシング(testing and mixing)段階を示す。タイル内の同一位置に対応するピクセルに対して、深さテストのような過程を経て、最終的に表示されるピクセル値を決定し、1つのタイルに該当するピクセル値を決定することができる。このような過程を経て生成された複数個のタイルをミキシングし、1つのフレームに該当する三次元グラフィックスを生成することができる。
【0053】
段階18は、段階11ないし段階17を介して生成されたフレームをフレームバッファに保存し、フレームバッファに保存されたフレームを、ディスプレイ装置を介して表示する段階を示す。
【0054】
一方、テクスチャ処理装置130内の所定空間に、多様なオブジェクトに係わる全てのテクスチャ、及び各テクスチャに対応するミップマップを保存することは物理的に容易ではない。テクスチャ保存に必要な空間を最小化し、テクスチャの伝送を効率的にするために、三次元グラフィックスレンダリングでは、一般的にテクスチャを圧縮し、テクスチャの保存または伝送を行う。
【0055】
しかし、圧縮されたテクスチャを圧縮解除するために、多くの演算量、時間、及びそれによる電力消耗が発生する。さらに、テクスチャミップマップを利用したテクスチャリングにおいて、圧縮されたテクスチャがさらに必要な場合、圧縮解除するために、さらに多くの演算量、時間、及びてそれによる電力消耗が発生する。従って、テクスチャ処理装置130は、圧縮された形態のテクスチャの圧縮解除にあたり、さらに効率的な圧縮解除方式が必要である。
【0056】
以下、テクスチャ処理装置130において、テクスチャを構成するテクセルが、所定ブロック単位に圧縮された圧縮テクセルブロックを圧縮解除する場合、圧縮解除過程を分割し、圧縮テクセルブロック全体ではない一部についてだけ圧縮解除過程を完了することにより、効率的なグラフィック処理を行うことができるテクスチャ処理方法及びその装置について説明する。
【0057】
図3は、一実施形態によるテクスチャ処理装置の構成を示したブロック図である。
【0058】
図3を参照すれば、テクスチャ処理装置130は、制御部131、圧縮解除部133、テクスチャキャッシュ135、テクセル生成部137、テクスチャフィルタ139を含んでもよい。
【0059】
制御部131は、テクスチャ処理装置130を制御するために必要な演算を行ったり、圧縮解除部133、テクスチャキャッシュ135、テクセル生成部137、テクスチャフィルタ139を制御したりし、テクスチャ処理装置130の全般的な制御を担当することができる。
【0060】
圧縮解除部133は、テクスチャ処理装置130が、テクスチャ処理装置130の外部のメモリ200から、圧縮されたテクスチャを受信する場合、圧縮解除を行うことができる。一般的なテクスチャ圧縮標準において、テクスチャは、テクスチャを構成するテクセルが、所定ブロック単位に圧縮された、少なくとも1つの圧縮テクセルブロックに圧縮されるので、圧縮解除部133は、圧縮テクセルブロックを受信することができる。
【0061】
このとき、圧縮テクセルブロックは、テクスチャを構成するテクセルが、所定ブロック単位に圧縮された状態のテクセルブロックを意味する。一方、テクセルブロックは、圧縮される前のテクスチャを構成するテクセルのうち、圧縮の対象になる所定ブロック単位のテクセルまたは圧縮テクセルブロックを完全に圧縮解除して生成されるテクセルを意味する。一方、1つのテクスチャは、少なくとも1つのテクセルブロックを含んでもよい。1つの圧縮されたテクスチャは、少なくとも1つの圧縮テクセルブロックから構成される。言い替えれば、テクスチャは、少なくとも1つの圧縮テクセルブロックに圧縮される。
【0062】
図4は、圧縮テクセルブロックの一実施形態について説明するための図面である。
【0063】
テクスチャは、ハードウェアリソースの要求、及び通信環境の要求を満足させるために、三次元グラフィックス処理過程で圧縮された形態に保存されることが一般的である。一般的な圧縮方式は、テクスチャを構成するテクセルに対して、所定ブロック単位のテクセル、すなわち、テクセルブロックに対して行われる。テクスチャを構成するテクセルが、所定ブロック単位に圧縮された圧縮テクセルブロックを生成する過程について、
図4を参照して説明する。
【0064】
一般的なテクスチャ圧縮標準は、圧縮するテクセルブロックに対して、代表値を決定し、各テクセル値を表現することができる代表値に適用する加重値(weight)を求め、それらを保存する方式を使用する。
【0065】
図4を参照すれば、2X2のテクセルブロックを圧縮し、圧縮テクセルブロックを生成する過程が図示されている。
図4から分かるように、2X2のテクセルブロックは、T0,T1,T2,T3の総4個のテクセルで構成され、説明の便宜上、それぞれのテクセル値は、8、7、6、5の値を有すると前提する。
【0066】
まず、4個のテクセル値を大きさ順に配したとき、エンドポイント(end point)値に該当する最大値及び最小値のそれぞれを代表値として決定することができる。その後、それぞれのテクセル値を表現するように、2つのエンドポイント値に適用する加重値を計算することができる。
【0067】
例えば、テクセルT0の場合、テクセル値が8であり、テクセル値のうち最大値に該当するエンドポイント値EP1と同じであるので、テクセル値のうち最小値に該当するエンドポイント値EP0に適用する加重値を0にし、テクセルT0に係わる加重値W0を計算することができる。かような方式で、テクセルT1ないしT3に係わる加重値W1ないしW3をそれぞれ計算すれば、1/3、2/3、1になる。
図4から分かるように、Tn=(EP0xWn)+(EP1x(1−Wn))でもある。
【0068】
圧縮テクセルブロックは、エンドポイント値に該当する代表値と、各テクセルに係わる加重値とを保存した形態でもある。
図4を参照すれば、2X2テクセルブロックに対する圧縮テクセルブロックが、代表値に該当するEP0及びEP1と、加重値に該当するW0、W1、W2、W3とを保存しているということが分かる。
【0069】
一方、
図4に図示された圧縮方式の逆過程に基づけば、圧縮テクセルブロックを完全に圧縮解除し、テクセルブロック全体を求めることができる。
【0070】
図5は、圧縮テクセルブロックの他の一実施形態を示した図面である。
【0071】
具体的には、
図5は、テクスチャ圧縮標準のうち1つの方式による4X4テクセルブロックの圧縮形態を示した図面である。
図5を参照すれば、8バイト(bytes)の圧縮テクセルブロックを確認することができる。
【0072】
2つの代表値に対して、それぞれ2bytesを割り当て、16個のテクセルそれぞれに係わる加重値をエンコーディングした情報に対して2ビット(bits)を割り当て、4X4テクセルブロックが総8bytesの圧縮テクセルブロックに圧縮されるということが分かる。
【0073】
再び
図3を参照すれば、圧縮解除部133は、受信した圧縮テクセルブロックから、完全に圧縮解除されたテクセルブロックを獲得せず、圧縮解除過程の一部過程のみを遂行する。言い替えれば、圧縮解除過程を、圧縮テクセルブロックから、圧縮過程に利用された圧縮パラメータを抽出する過程と、抽出された圧縮パラメータから、テクセルを生成する過程とに分割し、二元化された圧縮解除過程のうち前者のみ遂行することができる。圧縮解除過程のうち一部を、実際要請があるまで延期することにより、不要な圧縮解除演算を最小化するためである。特に、二元化された圧縮解除過程のうち、後者の場合、テクセル値を生成するために、圧縮パラメータに基づいたインターポレーション又は補間(interpolation)を行うが、インターポレーション過程上の多数の乗算及び加算の演算組み合わせによって、電力消耗及びハードウェアリソース要求量が多いので、テクスチャ処理装置130に実際要請されたテクセルについてだけ遂行されるようにし、電力消耗及びハードウェアリソース要求量を大きく低減させることができる。
【0074】
具体的には、圧縮解除部133は、圧縮テクセルブロックに基づいて、テクセルブロックを構成するテクセルの代表値、テクセルブロックを構成する各テクセルに係わる加重値、並びにテクセルブロックを構成する各テクセルに対応する、代表値及び加重値に係わるインデックス(index)を獲得することができる。代表値は、テクセルブロックを構成するテクセルの値に基づいて、任意の値として決定することができる。例えば、代表値は、テクセルブロックを構成するテクセルを、所定規則によって配したとき、エンドポイント値に該当する値でもある。各テクセルに係わる加重値は、加重値自体や、加重値をエンコーディングした情報になる。圧縮テクセルブロックに基づいて獲得する代表値及び加重値は、テクスチャ圧縮標準の種類によって異なる。言い替えれば、圧縮標準の種類によって、代表値の個数または代表値決定方式が異なり、それによって、加重値も異なる。本明細書において代表値は、1つの代表値のみを有する場合と、2以上の代表値を有する場合とを含んでもよい。
【0075】
圧縮解除部133は、圧縮テクセルブロックから、圧縮過程に利用された圧縮パラメータを抽出する過程を遂行することができる。圧縮解除部133は、テクセルブロックを構成する各テクセルを生成するために、抽出された圧縮パラメータのうちいずれを使用するかということに係わるインデックスを、各テクセルごとに生成することができる。
【0076】
テクスチャキャッシュ135は、圧縮解除部133で獲得された、代表値、加重値、並びに代表値及び加重値に係わるインデックスを保存することができる。テクスチャキャッシュ135は、圧縮過程に利用された圧縮パラメータを保存する過程を遂行することができる。テクスチャキャッシュ135に保存された値は、テクスチャ処理装置130に要請されたテクセルを生成するための圧縮解除過程を完了するのに利用される。
【0077】
制御部131は、テクスチャ処理装置130に要請されたテクセルに対応するインデックスによって、代表値及び加重値を、テクスチャキャッシュ135から読み取ることができる。制御部131は、シェーダコア120で処理するピクセルに対応するテクセルアドレスを、シェーダコア120から受信することにより、シェーダコア120で処理するピクセルのためのテクセル要請を受けることができる。テクスチャ処理装置130に要請されたテクセルを求めるために、テクセルブロックに含まれた少なくとも1つのテクセルが必要であるために、テクスチャ処理装置130に要請されたテクセルに対応するインデックスは、少なくとも一つでもある。
【0078】
テクセル生成部137は、テクスチャキャッシュ135から読み取られた、代表値及び加重値に基づいて、テクセルを生成することができる。一方、テクセル生成部137は、複数個のテクセルを並列的に処理するように、複数個のインターポレータ(interpolator)を含んでもよい。
【0079】
テクスチャフィルタ139は、テクセル生成部137で生成されたテクセル値を利用して、テクスチャフィルタリングを行うことができる。テクセル値をフィルタリング(filtering)するということは、テクセル値を混合(blending)し、ピクセルに対応するカラー値を求めることを意味する。例えば、テクスチャ処理装置130に要請されたテクセルのテクセルアドレスが含まれるテクスチャ空間上の一部領域に含まれたテクセル値の平均を求めることにより、ピクセルに対応するカラー値を求めることができる。テクスチャフィルタ139でフィルタリングされたテクセル値は、シェーダコア120の要請に対する応答として、シェーダコア120に伝送される。テクスチャフィルタ139で遂行するテクスチャフィルタリング方式は、トリリニア(tri-linear)フィルタリング方式を含んでいる多様なフィルタリング方式でもある。
【0080】
図6は、一実施形態によるテクスチャ処理装置の動作について説明するための図面である。
【0081】
図6を参照すれば、テクスチャ処理装置130は、制御部131、圧縮解除部133、テクスチャキャッシュ135、テクセル生成部137、テクスチャフィルタ139を含んでもよい。圧縮解除部133は、インデックス生成部133−1、代表値パーサ133−2、加重値パーサ133−3を含んでもよい。テクスチャキャッシュ135は、インデックスキャッシュ135−1、代表値キャッシュ135−2、加重値キャッシュ135−3を含んでもよい。
【0082】
圧縮解除部133は、圧縮テクセルブロックに基づいて、テクセルブロックを構成するテクセルの代表値、テクセルブロックを構成する各テクセルに係わる加重値、並びにテクセルブロックを構成する各テクセルに対応する、代表値及び加重値に係わるインデックスを獲得することができる。すなわち、圧縮解除部133が、代表値及び加重値を利用してテクスチャを構成するテクセルが、所定ブロック単位に圧縮された圧縮テクセルブロックを受信すれば、受信された圧縮テクセルブロックに基づいて、代表値、加重値、並びに代表値及び加重値に係わるインデックスを獲得することができる。具体的には、圧縮解除部133を構成する代表値パーサ133−2、加重値パーサ133−3及びインデックス生成部133−1について説明すれば、次の通りである。
【0083】
代表値パーサ133−2は、テクセルブロックを構成するテクセルの代表値をパージング(又は解析)することができる。テクセルブロックを構成するテクセルの代表値は、テクセルのエンドポイント値にもなり、代表値は、複数個でもある。
【0084】
加重値パーサ133−3は、テクセルブロックを構成する各テクセルに係わる加重値をパージングすることができる。各テクセルに係わる加重値は、テクセルブロックを構成する各テクセルの個数と同一である。
【0085】
代表値パーサ133−2と加重値パーサ133−3は、圧縮解除部133に受信された圧縮テクセルブロックにおいて、代表値が保存される領域、または加重値が保存される領域を把握し、代表値及び加重値を獲得することができる。
【0086】
インデックス生成部133−1は、各テクセルに対応する代表値のテクスチャキャッシュ135における保存位置と、各テクセルに対応する加重値のテクスチャキャッシュ135における保存位置と、を含む、各テクセルに対応するインデックスを生成することができる。言い替えれば、各テクセルに対応するインデックスは、各テクセルに対応する代表値の、代表値キャッシュ135−2における保存位置と、各テクセルに対応する加重値の、加重値キャッシュ135−3における保存位置と、を含んでもよい。
【0087】
テクスチャキャッシュ135は、圧縮解除部133で獲得された、代表値、加重値、並びに代表値及び加重値に係わるインデックスを保存することができる。言い替えれば、テクスチャキャッシュ135は、圧縮テクセルブロック全体に対応するテクセルの代表値、テクセルブロックを構成する各テクセルに係わる加重値、並びにテクセルブロックを構成する各テクセルに対応する、代表値及び加重値に係わるインデックスを保存することができる。
【0088】
代表値キャッシュ135−2は、テクセルブロックを構成するテクセルの代表値を保存することができる。
【0089】
加重値キャッシュ135−3は、テクセルブロックを構成する各テクセルに係わる加重値を保存することができる。
【0090】
インデックスキャッシュ135−1は、テクセルブロックを構成する各テクセルに対応するインデックスを保存することができる。このとき、インデックスは、テクセルアドレスと対応させ、インデックスキャッシュ135−1に保存されている。
【0091】
インデックスキャッシュ135−1、代表値キャッシュ135−2、及び加重値キャッシュ135−3は、それぞれ物理的に区分される別個のキャッシュでもある。また、インデックスキャッシュ135−1、代表値キャッシュ135−2、及び加重値キャッシュ135−3は、1つのテクスチャキャッシュ135を所定空間に分けて区分されるそれぞれの領域を意味することもできる。言い替えれば、テクスチャキャッシュ135の保存空間を3つの空間に分割したとき、分割されたそれぞれの空間を、インデックスキャッシュ135−1、代表値キャッシュ135−2、及び加重値キャッシュ135−3として利用することもできる。
【0092】
図7は、圧縮テクセルブロックに基づいて、代表値、加重値及びインデックスを獲得し、テクスチャキャッシュに保存する動作の一実施形態について説明するための図面である。
【0093】
説明の便宜上、4X4のテクセルブロックが圧縮された圧縮テクセルブロックであるということを前提に説明する。4X4のテクセルブロックは、テクセルT0からテクセルT15まで総16個のテクセルを含んでもよい。
【0094】
図7に図示された圧縮テクセルブロックは、2つの代表値RV0,RV1、16個の各テクセルに係わる加重値W0ないしW15を含んでいるということが分かる。かような圧縮テクセルブロックが圧縮解除部133に受信されれば、受信された圧縮テクセルブロックに基づいて、代表値、加重値及びインデックスを獲得し、獲得された値は、テクスチャキャッシュ135に保存される。
【0095】
具体的には、圧縮解除部133の代表値パーサ133−2と、加重値パーサ133−3は、
図7に図示されているように、圧縮テクセルブロックに含まれたRV0、RV1、W0ないしW15をパージングすることができる。代表値パーサ133−2は、RV0及びRV1をパージングし、テクセルブロックを構成するテクセルの代表値として処理することができる。加重値パーサ133−3は、W0ないしW15をパージングし、テクセルブロックを構成する各テクセルに係わる加重値として処理することができる。
【0096】
インデックス生成部133−1は、各テクセルに対応する代表値のテクスチャキャッシュ135における保存位置と、各テクセルに対応する加重値のテクスチャキャッシュ135における保存位置と、を含む、各テクセルに対応するインデックスを生成することができる。言い替えれば、インデックス生成部133−1は、代表値パーサ133−2がパージングした各テクセルに対応する代表値の、代表値キャッシュ135−2における保存位置と、加重値パーサ133−3がパージングした各テクセルに対応する加重値の、加重値キャッシュ135−3における保存位置と、を含む、各テクセルに対応するインデックスを生成することができる。
【0097】
図7を参照すれば、インデックス生成部133−1は、各テクセルに対応する代表値RV0及びRV1の、代表値キャッシュ135−2における保存位置であるX0と、各テクセルに対応する加重値の、加重値キャッシュ135−3における保存位置であるY0ないしY15とのうちいずれか一つを含む形態の、各テクセルに対応するインデックスを生成することができる。
【0098】
例えば、テクセルブロックを構成するテクセルT0に対応するインデックスは、代表値RV0及びRV1の、代表値キャッシュ135−2における保存位置であるX0と、テクセルT0に対応する加重値W0の、加重値キャッシュ135−3における保存位置であるY0と、を含むインデックス(X0,Y0)のように示すことができる。他の例として、テクセルブロックを構成するテクセルT1に対応するインデックスは、代表値RV0及びRV1の、代表値キャッシュ135−2における保存位置であるX0と、テクセルT1に対応する加重値W1の、加重値キャッシュ135−3における保存位置であるY1と、を含むインデックス(X0,Y1)のように示すことができる。かような方式によって、インデックス生成部133−1は、テクセルブロックを構成するテクセルT0ないしT15にそれぞれ対応するインデックス(X0,Y0)ないし(X0,Y15)を生成することができる。
【0099】
代表値パーサ133−2がパージングした各テクセルに対応する代表値は、代表値キャッシュ135−2に保存され、加重値パーサ133−3がパージングした各テクセルに対応する加重値は、加重値キャッシュ135−3に保存される。インデックス生成部133−1が生成したテクセルブロックを構成する各テクセルに対応するインデックスは、インデックスキャッシュ135−1に保存される。一方、各テクセルに対応するインデックスは、各テクセルのテクセルアドレスにマッチングされて保存される。その場合、テクスチャ処理装置130に要請されたテクセルに対応するインデックスは、要請されたテクセルのテクセルアドレスをインデックスキャッシュ135−1に伝達することにより、インデックスキャッシュ135−1から読み取ることができる。インデックスキャッシュ135−1から読み取られたインデックスによって、テクスチャ処理装置130に要請されたテクセルに対応する代表値及び加重値を、代表値キャッシュ135−2及び加重値キャッシュ135−3からそれぞれ読み取ることができる。
【0100】
再び
図6を参照すれば、制御部131は、要請されたテクセルに対応するインデックスを、インデックスキャッシュ135−1から読み取り、読み取られたインデックスによって、代表値及び加重値を、代表値キャッシュ135−2及び加重値キャッシュ135−3からそれぞれ読み取ることができる。
【0101】
制御部131は、要請されたテクセルに対応するインデックスが、テクスチャキャッシュ135に保存されていない場合、テクスチャ処理装置130外部のメモリ200に、要請されたテクセルを含む圧縮テクセルブロックを要請することができる。それによって、圧縮解除部133は、テクスチャ処理装置130外部のメモリ200から、要請されたテクセルを含む圧縮テクセルブロックを受信することができる。
【0102】
テクセル生成部137は、テクスチャキャッシュ135から読み取られた、代表値及び加重値に基づいて、テクセルを生成することができる。具体的には、テクセル生成部137は、テクスチャキャッシュ135から読み取られた、代表値及び加重値を利用したインターポレーションを行い、圧縮テクセルブロックの一部テクセルのみ生成することができる。従って、テクセル生成部137は、圧縮テクセルブロック全体ではない、テクスチャ処理装置130に要請された一部テクセルについてだけ圧縮解除過程を完了することにより、不要な圧縮解除による電力消耗を防止し、ハードウェアリソースの要求量を低めることができる。
【0103】
テクスチャフィルタ139は、テクセル生成部137で生成されたテクセルを利用して、テクスチャフィルタリングを行うことができる。テクスチャフィルタ139は、テクセル生成部137で生成されたテクセルの個数が、テクスチャフィルタリングを行うのに必要な最小個数であるとき、テクスチャフィルタリングを行うことができる。
【0104】
図8は、他の実施形態によるテクスチャ処理装置の構成を示したブロック図である。
【0105】
図8を参照すれば、テクスチャ処理装置130は、制御部131、圧縮解除部133、テクスチャキャッシュ135、テクセル生成部137、テクスチャフィルタ139だけではなく、第2テクスチャキャッシュ136をさらに含んでもよい。言い替えれば、
図8に図示されたテクスチャ処理装置130は、
図3及び
図6に図示されたテクスチャ処理装置130より、圧縮テクセルブロックを、テクスチャ処理装置130外部のメモリ200から受信して保存する第2テクスチャキャッシュ136をさらに含んでいる。
【0106】
前述の
図3及び
図6のテクスチャ処理装置130と動作がほぼ類似しているが、テクスチャ処理装置130に要請されたテクセルに対応するインデックスが、テクスチャキャッシュ135に保存されていない場合、テクスチャ処理装置130外部のメモリではない、テクスチャ処理装置130内部の第2テクスチャキャッシュ136に、要請されたテクセルに対応するインデックスを含む圧縮テクセルブロックを要請することができる。第2テクスチャキャッシュ136は、以前のテクスチャ処理動作において、テクスチャ処理装置130外部のメモリ200に要請された1以上の圧縮テクセルブロックを保存することができる。テクスチャ処理装置130外部のメモリ200に、圧縮テクセルブロックが要請されたとき、現在要請された圧縮テクセルブロックだけがテクスチャ処理装置130外部のメモリ200で検索され、第2テクスチャキャッシュ136に保存されるか、あるいはテクスチャ処理装置130外部のメモリ200に、その次に要請される圧縮テクセルブロックは、現在要請された圧縮テクセルブロックの付近でもあるという期待を有し、現在要請された圧縮テクセルブロックを含んでいる複数個の連続的な圧縮テクセルブロックがテクスチャ処理装置130外部のメモリ200から検索され、第2テクスチャキャッシュ136に保存される。
【0107】
制御部131は、要請されたテクセルに対応するインデックスが、テクスチャキャッシュ135に保存されていない場合、テクスチャ処理装置130内部の第2テクスチャキャッシュ136に、要請されたテクセルを含む圧縮テクセルブロックを要請することができる。それによって、圧縮解除部133は、テクスチャ処理装置130内部の第2テクスチャキャッシュ136から、要請されたテクセルを含む圧縮テクセルブロックを受信することができる。しかし、要請されたテクセルを含む圧縮テクセルブロックが、第2テクスチャキャッシュ136に保存されていなければ、制御部131は、テクスチャ処理装置130外部のメモリ200に、要請されたテクセルを含む圧縮テクセルブロックを要請することができる。
【0108】
圧縮解除部133は、要請されたテクセルを含む圧縮テクセルブロックを、テクスチャ処理装置130外部のメモリ200から受信せず、テクスチャ処理装置130内部の第2テクスチャキャッシュ136から受信することにより、外部のメモリ200にアクセスする回数を減らし、迅速な三次元グラフィックス処理が可能になる。
【0109】
図9は、さらに他の実施形態によるテクスチャ処理装置の構成を示したブロック図である。
【0110】
図9を参照すれば、テクスチャ処理装置130は、制御部131、圧縮解除部133、テクスチャキャッシュ135、テクセル生成部137、テクスチャフィルタ139を含んでもよい。このとき、
図9に図示されたテクスチャ処理装置130の制御部131は、有効性確認部(validity checker)132をさらに含んでもよい。
【0111】
有効性確認部132は、テクスチャ処理装置130に要請されたテクセルが、ピクセルシェーディングに使用されるか否かということを判断することができる。言い替えれば、有効性確認部132は、テクスチャ処理装置130に要請されたテクセルを生成する前に、テクスチャ処理装置130に要請されたテクセルが、実際に使用されるか否かということを、まず判断することができる。それによって、テクスチャ処理装置130に要請されたテクセルが、実際にピクセルシェーディングに使用されるものではなければ、不要な圧縮解除過程を防止することができる。
【0112】
例えば、シェーダコア120が処理するピクセルに、ゾンビピクセル(zombie pixel)がある場合、RGBA(red, green, blue and alpha(透明度))のうち一部コンポーネント(component)についてだけテクスチャ処理装置130に要請された場合、スウィズル(swizzle)動作によって、一部コンポーネント値が使用されない場合などには、不要な一部圧縮解除過程を省略することができる。ゾンビピクセルは、情報を抽出するために必要であるが、テクスチャ処理装置130によって処理される必要はないダミーピクセルである。例えば、グラフィック処理から、一般的に、2X2ピクセルまたは4X4ピクセルの集合のような付近ピクセルの集合は、ピクセル間の関係から情報を抽出するために共に処理される。しかし、いくつかの場合、情報を抽出するためにただ必要なピクセル集合での1以上のピクセルは、テクスチャ処理装置130によって処理される必要がなく、結果として、不要な圧縮解除処理を防止することができる。
【0113】
有効性確認部132を含む制御部131は、テクスチャ処理装置130に要請されたテクセルが、ピクセルシェーディングに使用されると判断されれば、要請されたテクセルに対応するインデックスによって、代表値及び加重値をテクスチャキャッシュ135から読み取ることができる。一方、有効性確認部132を含む制御部131は、テクスチャ処理装置130に要請されたテクセルが、ピクセルシェーディングに使用されないと判断されれば、要請に対する応答として、所定値をリターンし(すなわち、返し)、要請されたテクセルに係わる圧縮解除過程を省略することができる。それによって、電力消耗をさらに効果的に減らすことができる。
【0114】
図10は、一実施形態によるテクスチャ処理方法について説明するためのフローチャートである。以下、省略された内容であるとしても、以上において、テクスチャ処理装置130について記述した内容は、テクスチャ処理方法についても適用される。
【0115】
1010段階において、テクスチャ処理装置130は、圧縮テクセルブロックに基づいて、テクセルブロックを構成するテクセルの代表値、テクセルブロックを構成する各テクセルに係わる加重値、並びにテクセルブロックを構成する各テクセルに対応する、代表値及び加重値に係わるインデックスを獲得することができる。それは、圧縮解除過程のうち一部過程に該当するものであり、以後要請されたテクセルについてだけ圧縮解除を完了するための準備段階に該当する。以下、
図11を参照し、さらに詳細に説明する。
【0116】
図11は、一実施形態によるテクスチャ処理方法において、代表値、加重値及びインデックスを獲得する段階に係わる詳細フローチャートである。
【0117】
1110段階において、テクスチャ処理装置130は、圧縮テクセルブロックから、テクセルブロックを構成するテクセルの代表値、及びテクセルブロックを構成する各テクセルに係わる加重値をパージングすることができる。テクスチャ処理装置130は、圧縮テクセルブロックにおいて、代表値が保存される領域と、加重値が保存される領域とを把握し、代表値及び加重値を獲得することができる。
【0118】
1120段階において、テクスチャ処理装置130は、各テクセルに対応する代表値のテクスチャキャッシュ135における保存位置と、各テクセルに対応する加重値のテクスチャキャッシュ135における保存位置と、を含む、各テクセルに対応するインデックスを生成することができる。言い替えれば、テクスチャ処理装置130は、各テクセルに対応する代表値の、代表値キャッシュ135−2における保存位置と、各テクセルに対応する加重値の、加重値キャッシュ135−3における保存位置と、を含む、各テクセルに対応するインデックスを生成することができる。
【0119】
再び
図10を参照すれば、1020段階において、テクスチャ処理装置130は、代表値、加重値及びインデックスを、テクスチャキャッシュ135に保存することができる。言い替えれば、テクスチャ処理装置130は、テクスチャキャッシュ135に、圧縮テクセルブロック全体に対応するテクセルの代表値、テクセルブロックを構成する各テクセルに係わる加重値、並びにテクセルブロックを構成する各テクセルに対応する、代表値及び加重値に係わるインデックスを保存することができる。以下、
図12を参照し、さらに詳細に説明する。
【0120】
図12は、一実施形態によるテクスチャ処理方法において、代表値、加重値及びインデックスを保存する段階に係わる詳細フローチャートである。
【0121】
1210段階において、テクスチャ処理装置130は、テクセルブロックを構成するテクセルの代表値を、代表値キャッシュ135−2に保存することができる。テクスチャ処理装置130の代表値パーサ133−2がパージングした各テクセルに対応する代表値は、代表値キャッシュ135−2に保存される。
【0122】
1220段階において、テクスチャ処理装置130は、テクセルブロックを構成する各テクセルに係わる加重値を、加重値キャッシュ135−3に保存することができる。テクスチャ処理装置130の加重値パーサ133−3がパージングした各テクセルに対応する加重値は、加重値キャッシュ135−3に保存される
1210段階と1220段階は、順序が入れ替わってもよく、同時に並列的に処理されてもよい。
【0123】
1230段階において、テクスチャ処理装置130は、テクセルブロックを構成する各テクセルに対応するインデックスを、インデックスキャッシュ135−1に保存することができる。テクスチャ処理装置130のインデックス生成部133−1が生成したテクセルブロックを構成する各テクセルに対応するインデックスは、インデックスキャッシュ135−1に保存される。このとき、テクスチャ処理装置130のインデックスキャッシュ135−1は、各テクセルに対応するインデックスを、各テクセルのテクセルアドレスにマッチングさせて保存することができる。
【0124】
再び
図10を参照すれば、1030段階において、テクスチャ処理装置130は、テクスチャ処理装置130に要請されたテクセルに対応するインデックスによって、代表値及び加重値を、テクスチャキャッシュ135から読み取ることができる。以下、
図13ないし
図15を参照し、さらに詳細に説明する。
【0125】
図13は、一実施形態によるテクスチャ処理方法において、テクスチャ処理装置に要請されたテクセルに対応するインデックスによって、代表値及び加重値を、テクスチャキャッシュから読み取る段階に係わる詳細フローチャートである。
【0126】
1310段階において、テクスチャ処理装置130は、テクスチャ処理装置130に要請されたテクセルのインデックスが、インデックスキャッシュ135−1に保存されているか否かということを確認することができる。言い替えれば、テクスチャ処理装置130は、テクスチャ処理装置130に要請されたテクセルのインデックスについて、インデックスキャッシュ135−1において、キャッシュヒットが発生したか否かということを確認することができる。具体的には、テクスチャ処理装置130は、テクスチャ処理装置130に要請されたテクセルのテクセルアドレスを、インデックスキャッシュ135−1に伝達することにより、要請されたテクセルのテクセルアドレスにマッチングされて保存されたインデックスがインデックスキャッシュ135−1にあるか否かということを確認することができる。
【0127】
1320段階において、テクスチャ処理装置130に要請されたテクセルに対応するインデックスを、インデックスキャッシュ135−1から読み取ることができる場合、すなわち、キャッシュヒットの場合、テクスチャ処理装置130は、インデックスキャッシュ135−1から読み取られたインデックスによって、テクスチャ処理装置130に要請されたテクセルに対応する代表値及び加重値を、代表値キャッシュ135−2及び加重値キャッシュ135−3からそれぞれ読み取ることができる。
【0128】
1330段階において、テクスチャ処理装置130に要請されたテクセルに対応するインデックスを、インデックスキャッシュ135−1から読み取ることができない場合、すなわち、キャッシュミスの場合、テクスチャ処理装置130の圧縮解除部133は、要請されたテクセルを含む圧縮テクセルブロックを受信することができる。以下、
図14を参照し、さらに詳細に説明する。
【0129】
図14は、一実施形態によるテクスチャ処理方法において、テクスチャ処理装置に要請されたテクセルを含む圧縮テクセルブロックを受信する段階に係わる詳細フローチャートである。
【0130】
1410段階において、テクスチャ処理装置130は、テクスチャ処理装置130に要請されたテクセルを含む圧縮テクセルブロックを、テクスチャ処理装置130外部のメモリ200に要請した場合、テクスチャ処理装置130外部のメモリ200から、要請されたテクセルを含む圧縮テクセルブロックを受信することができる。テクスチャ処理装置130内部の空間上制約によって、圧縮されたテクスチャが、テクスチャ処理装置130外部のメモリ200に保存されている場合、これに従うことになる。
【0131】
1420段階において、テクスチャ処理装置130は、テクスチャ処理装置130に要請されたテクセルを含む圧縮テクセルブロックを、テクスチャ処理装置130内部の第2テクスチャキャッシュ136に要請した場合、第2テクスチャキャッシュ136に要請されたテクセルを含む圧縮テクセルブロックが存在するか否かということを確認する。このとき、第2テクスチャキャッシュに対して、キャッシュミスが発生すれば、1410段階によって、テクスチャ処理装置130外部のメモリ200から、要請されたテクセルを含む圧縮テクセルブロックを受信することができる。一方、第2テクスチャキャッシュ136に対して、キャッシュヒットが発生すれば、1430段階に従うことになる。
【0132】
1430段階において、テクスチャ処理装置130は、テクスチャ処理装置130に要請されたテクセルを含む圧縮テクセルブロックを、テクスチャ処理装置130内部の第2テクスチャキャッシュ136から、要請されたテクセルを含む圧縮テクセルブロックを受信することができる。テクスチャ処理装置130外部のメモリ200へのアクセス回数を減らすために、テクスチャ処理装置130内部に、圧縮テクセルブロックをテクスチャ処理装置130外部のメモリ200から受信して保存する第2テクスチャキャッシュ136がある場合、これに従うことになる。
【0133】
図15は、一実施形態によるテクスチャ処理方法において、テクスチャ処理装置に要請されたテクセルに対応するインデックスによって、代表値及び加重値を、テクスチャキャッシュから読み取る段階に係わる他の実施形態による詳細フローチャートである。
【0134】
1510段階において、テクスチャ処理装置130は、テクスチャ処理装置130に要請されたテクセルが、ピクセルシェーディングに使用されるか否かということを判断することができる。テクスチャ処理装置130は、要請されたテクセルが、ピクセルシェーディングに使用されれば、1530段階に進むことができる。一方、テクスチャ処理装置130は、要請されたテクセルが、ピクセルシェーディングに使用されなければ、1520段階に進むことができる。
【0135】
1520段階において、テクスチャ処理装置130は、テクセル要請に対する応答として、所定値をリターンすることができる。それによって、要請されたテクセルに係わる圧縮解除過程を省略することにより、電力消耗をさらに効果的に減らすことができる。
【0136】
1530段階において、テクスチャ処理装置130は、テクスチャ処理装置130に要請されたテクセルのインデックスが、インデックスキャッシュ135−1に保存されているか否かということを確認することができる。言い替えれば、テクスチャ処理装置130は、テクスチャ処理装置130に要請されたテクセルのインデックスに対して、インデックスキャッシュ135−1において、キャッシュヒットが発生したか否かということを確認することができる。具体的には、テクスチャ処理装置130は、テクスチャ処理装置130に要請されたテクセルのテクセルアドレスを、インデックスキャッシュ135−1に伝達することにより、要請されたテクセルのテクセルアドレスにマッチングされて保存されたインデックスが、インデックスキャッシュ135−1にあるか否かということを確認することができる。
【0137】
1540段階において、テクスチャ処理装置130に要請されたテクセルに対応するインデックスを、インデックスキャッシュ135−1から読み取ることができる場合、すなわち、キャッシュヒットの場合、テクスチャ処理装置130は、インデックスキャッシュ135−1から読み取られたインデックスによって、テクスチャ処理装置130に要請されたテクセルに対応する代表値及び加重値を、代表値キャッシュ135−2及び加重値キャッシュ135−3からそれぞれ読み取ることができる。
【0138】
1550段階において、テクスチャ処理装置130に要請されたテクセルに対応するインデックスを、インデックスキャッシュ135−1から読み取ることができない場合、すなわち、キャッシュミスの場合、テクスチャ処理装置130の圧縮解除部133は、要請されたテクセルを含む圧縮テクセルブロックを受信することができる。それと係わり、
図14を参照して説明した内容がそのまま適用される。
【0139】
再び
図10を参照すれば、1040段階において、テクスチャ処理装置130は、読み取られた、代表値及び加重値に基づいて、テクセルを生成することができる。テクスチャ処理装置130は、テクスチャキャッシュ135から読み取られた、代表値及び加重値を利用したインターポレーションを行い、圧縮テクセルブロックの一部テクセルのみ生成することができる。言い替えれば、テクスチャ処理装置130は、圧縮テクセルブロック全体ではない、テクスチャ処理装置130に要請された一部テクセルについてだけ圧縮解除過程を完了することができる。
【0140】
1050段階において、テクスチャ処理装置130は、生成されたテクセルを利用して、テクスチャフィルタリングを行うことができる。
【0141】
図1ないし
図15と係わって説明した動作を遂行する
図1、
図3、
図6、
図8及び
図9に開示された各構成は、ハードウェアコンポーネントによって具現されてもよい。ハードウェアコンポーネントの一例は、コントローラ、ジェネレータ、ドライバ、メモリ、比較器、ALU、加算器、マルチプライヤ、及び当該分野で公知のいなかる電子部品であってもよい。一方、前述のテクスチャ処理方法は、コンピュータで実行されるプログラムで作成されることも可能であり、コンピュータで読み取り可能な記録媒体を利用して、かようなプログラムを動作させる汎用デジタルコンピュータで具現されてもよい。かようなコンピュータで読み取り可能な記録媒体は、ROM(read only memory)、RAM(random access memory)、フラッシュメモリ、CD(compact disc)−ROMs、CD−Rs、CD+Rs、CD−RWs、CD+RWs、DVD(digital versatile disc)−ROMs、DVD−Rs、DVD+Rs、DVD−RWs、DVD+RWs、DVD−RAMs、BD−ROMs、BD−Rs、BD−RLTHs、BD−REs、マグネチックテープ、フロッピー(登録商標)ディスク、光磁気データ保存装置、光学データ保存装置、ハードディスク、ソリッドステートディスク(SSD)、そして命令語またはソフトウェア、関連データ、データファイル、及びデータ構造を保存することができ、プロセッサやコンピュータが命令語を実行するように、プロセッサやコンピュータに命令語またはソフトウェア、関連データ、データファイル、及びデータ構造を提供することができるいかなる装置でもあってもよい。
【0142】
以上、実施形態を中心に説明した。開示された実施形態が属する技術分野において、当業者であるならば、開示された実施形態が、本質的な特徴から逸脱しない範囲で変形された形態で具現化されてもよいということを理解することができるであろう。従って、開示された実施形態は、限定的な観点ではなく、説明的な観点から考慮されなければならない。実施形態による発明の範囲は、前述の説明ではなくむしろ特許請求の範囲に示されており、それと同等な範囲内にある全ての変形例は、発明の範囲に含まれるものであると解釈されなければならない。