(57)【特許請求の範囲】
【請求項１】
テクスチャ処理を行う方法であって、
既知の幾何学形状の１以上のアンカー画素の座標を用い、かつ当該幾何学形状が有する全ての頂点の座標データを用いることなく、当該幾何学形状に対してテクスチャ処理を行う一群の画素を特定する段階と、
タプルを用いて、復号ロジックが認識するように前記幾何学形状を符号化する段階と、
復号ロジックが前記タプルが特定する範囲内の画素アドレスを生成する段階と、
前記幾何学形状を構成する画素領域を一単位としてテクスチャ処理を行う段階と、
を備え、
前記テクスチャ処理を行う段階は、前記画素領域に含まれる個々の画素について計算を行わずに、前記アンカー画素についてのみ計算を行うことを含む、
方法。
【請求項２】
前記幾何学形状として矩形を利用する段階を備える請求項１に記載の方法。
【請求項３】
有限ステートマシンと加算器とを用いて前記アドレスを生成する段階を備える請求項１または２に記載の方法。
【請求項４】
前記範囲内の各々の大きさの前記画素アドレスを累積する段階を備える請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記範囲におけるドット積を決定する段階を備える請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記範囲におけるプログラム可能畳み込みを決定する段階を備える請求項１から５のいずれか１項に記載の方法。
【請求項７】
コンピュータに、
既知の幾何学形状の１以上のアンカー画素の座標を用い、かつ当該幾何学形状が有する全ての頂点の座標データを用いることなく、当該幾何学形状に対して一群の画素にテクスチャ処理を行わせ、
復号ロジックが認識するタプルを用いて前記幾何学形状を符号化し、
復号ロジックを用いて前記タプルが特定する範囲内の画素アドレスを生成させ、
前記幾何学形状を構成する画素領域を一単位としてテクスチャ処理を行わせ、
前記テクスチャ処理が、前記画素領域に含まれる個々の画素について計算を行わずに、前記アンカー画素についてのみ計算を行うことを含む、
プログラム。
【請求項８】
さらに、前記幾何学形状として矩形を利用させる請求項７に記載のプログラム。
【請求項９】
さらに、有限ステートマシンと加算器とを用いて前記アドレスを生成させる請求項７または８に記載のプログラム。
【請求項１０】
さらに、前記範囲内の各々の大きさの前記画素アドレスを累積させる請求項７から９のいずれか１項に記載のプログラム。
【請求項１１】
さらに、前記範囲におけるプログラム可能畳み込みを決定させる請求項７から１０のいずれか１項に記載のプログラム。
【請求項１２】
さらに、前記範囲におけるドット積を決定させる請求項７から１１のいずれか１項に記載のプログラム。
【請求項１３】
処理実体と、
前記処理実体に連結されたメモリと、
既知の幾何学形状の１以上のアンカー画素の座標を用い、かつ当該幾何学形状が有する全ての頂点の座標データを用いることなく、当該幾何学形状に対してテクスチャ処理を行う一群の画素を特定するアドレス生成部と、
前記アドレス生成部に連結された範囲特定復号器と、
を備え、
前記範囲特定復号器は、タプルを用いて前記幾何学形状を復号し、前記タプルが特定する範囲内の画素アドレスを生成し、
前記幾何学形状を構成する画素領域を一単位としてテクスチャ処理を行い、
前記テクスチャ処理が、前記画素領域に含まれる個々の画素について計算を行わずに、前記アンカー画素についてのみ計算を行うことを含む、
装置。
【請求項１４】
前記範囲特定復号器内に有限ステートマシンをさらに備える請求項１３に記載の装置。
【請求項１５】
前記範囲特定復号器内に加算器をさらに備える請求項１３または１４に記載の装置。
【請求項１６】
前記アドレス生成部に連結されたテクスチャキャッシュと、前記テクスチャキャッシュに連結された補間部とをさらに備える請求項１３から１５のいずれか１項に記載の装置。
【請求項１７】
前記補間部に連結された累積部を備える請求項１６に記載の装置。
【請求項１８】
前記範囲特定復号器は、有限ステートマシンと加算器とを含むことで前記アドレスを生成する請求項１３に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は概してグラフィック処理に係り、特にグラフィックプロセッサのテクスチャユニットに係る。
【背景技術】
【０００２】
グラフィックプロセッサは、概して画像表示に関する処理タスクを取り扱う専用プロセッサである。グラフィックプロセッサは、テクスチャユニットを含む複数の専用機能ユニットを含むことができる。テクスチャユニットは、テクスチャ伸張および異方性フィルタリングを含むテクスチャ処理を行う。
【０００３】
テクスチャサンプラは、テクスチャフィルタリングを最適化するのに特化した種類のテクスチャユニットであり、汎用プロセッサよりも高速にテクスチャフィルタリングを行う。
【図面の簡単な説明】
【０００４】
【図１】一実施形態におけるテクスチャユニットの概略図である。
【図２】一実施形態における画素座標系を示す。
【図３】一実施形態のフローチャートを示す。
【発明を実施するための形態】
【０００５】
一部の実施形態においては、テクスチャサンプラ等のテクスチャユニットを利用して数学的な計算を行うことができる。プロセッサコアとテクスチャユニットとの間の通信の効率性は、一部の実施形態では、テクスチャ処理を行う画素群の符号化を行う際にコアにかかる計算オーバヘッドを低減させることで向上させることができる。一部の実施形態では、これは、一ブロックの画素を効果的に一群にまとめ、その範囲をその群に属する１つの画素により特定させるような範囲特定器を用いて行うことができる。従って一部の実施形態では、テクスチャユーザインタフェースは、テクスチャユニットのグラフィックおよび非グラフィック両方の用途に対する利点を提供する。
【０００６】
図１においては、テクスチャユニットのテクスチャユニットコア４５が、テクスチャ制御ブロック（ＴＣＢ）４６を介してテクスチャ要求を受信する。テクスチャ制御ブロック４６は、テクスチャ面へのポインタ、テクスチャ面の幅および高さ、テクスチャの必要なｎ個の画素のテクスチャ座標（ｕ，ｖ）、一般的な畳み込みまたはｎｘｍドット積処理等が含まれるかに関わらず、実行が必要なフィルタリング処理の種類（例えばリニア、バイリニア、またはトリリニア等）およびテクスチャフィルタ結果を含むことができる。
【０００７】
アドレス生成ユニットまたは段階５４のアドレス生成ロジックは、任意のフィルタリング処理が利用する全てのテクセル（texel）のアドレスを算出する。関連する画素の座標ｕおよびｖが、非正規な形式、または正規化された形式（０．０および０．１の間）で渡される。後者の場合には、面の大きさで乗算することにより非正規な形式に戻すことができる。例えばｕはｉ．ｂｕとなり、ここでｉは整数であり、ｂｕが分数である。整数部分を利用して、最近傍値を生成することができる。バイリニア補間の場合には、（i,j）（i+1,j）（i.j+1）（i+1,j+1）という４つの近傍値がある。トリリニアフィルタリング処理には、８つの近傍値がある。分数部分を利用して、近傍する画素を混合する際に利用することができる重みを計算することができる。
【０００８】
テクスチャキャッシュ５６は、アドレス生成段階５４に連結されてよく、生成されたテクセルアドレスを利用してアクセスされるメモリ５８からデータをキャッシュするのに利用される。補間部６２は、テクスチャキャッシュ５６に連結されてよい。一実施形態では累積ロジックおよび小さな格納バッファ６４を含む累積段階６６が補間部６２に連結される。
【０００９】
テクスチャ制御ブロック４６は、セットアップ段階５０を介して範囲特定復号器４７への入力として利用される。復号器４７は、テクスチャユニット内に、範囲特定器から（ｕ，ｖ）座標を計算する有限ステートマシン（ＦＳＭ）４８を含むことができる。復号器には加算器４９がさらに設けられ、一部の実施形態では複数の加算器を設けることができる。
【００１０】
テクスチャ処理を行う各画素のｕおよびｖの座標を個々に特定する代わりに、一部の実施形態では範囲特定器を利用することができる。範囲特定器は、正方形、矩形、三角形等の通常の幾何学形状について定義することができる。例えば、矩形領域は以下の構造等の構造を利用して特定することができる。
struct {
int u;
int v;
int dU;
int dV;
} rectangle_specifier;
【００１１】
図２にこれら矩形領域を示す。本図は、ｘおよびｙ方向に初期値ｕおよびｖ、ならびに、オフセットｄＵおよびｄＶが特定されているような範囲ベースのアドレススキームを示すが、例としてアレイエレメントの矩形窓が提供されている。特に図２の例には、６ｘ５の矩形領域が格子内に陰を付けた形で示されている。左上の隅のアスタリスクを付された部分は、ｕ、ｖ座標（６，５）である。矩形領域は、最初の２つの位置（５，６）がｕおよびｖ座標であり、次の２つの位置（６，５）がそれぞれｕおよびｖ方向のｄＵおよびｄＶオフセットであるような、｛５，６，６，５｝のタプルで示すことができる。
【００１２】
本例では、陰を付したブロックの個々の画素について（ｕ，ｖ）対を計算する代わりに、アスタリスクを付した左上の隅の画素の（ｕ，ｖ）対のみが必要である場合がある。これにより、本例では３０回の（ｕ，ｖ）計算を省くことができるようになる。
【００１３】
加えて、一部の実施形態では、３０ｘ２ｘ４B（または２４０Ｂ）対となってしまう、陰を付した矩形内のuおよびｖ座標の全ての対を特定する代わりに、４つのBの値のタプルのみを利用することで（４ｘ４B＝１６B）、２２４Bを省くことができるようになる。このようにして減らされた格納領域は、戻りデータを符号化するのに利用することができるようになる。このタプルを利用することにより、一部の実施形態では、ｕ，ｖの対を通信する帯域幅を節約して、代わりにテクスチャサンプラが利用することができるようになる。
【００１４】
従って幾何学形状（図２の矩形等）は、１以上のアンカー画素を利用して定義することができる（図２のアスタリスクはアンカー画素の１例を示す）。アンカー画素は、既知の幾何学形状内の定義された位置にある画素である。アンカー画素およびタプルの位置に基づいて、既知の形状により定義される画素群を一群として特定することができる。別の例としては、円形の画素群のアンカー画素を円形の中心とすることができる。
【００１５】
一部の実施形態では、幾何学形状の種類もタプル内に符号化することができる。この方法により、異なる状況においても最も適切な幾何学形状の動的な選択が可能となる。
【００１６】
テクスチャ座標を生成するシーケンサ有限ステートマシン（ＦＳＭ）５２は、ハードウェア、範囲復号ロジック、またはソフトウェアとしての実装が可能である。範囲特定器からテクスチャ座標を計算する。復号器５０の復号ロジックは、一部の実施形態ではアドレス生成段階４４のさらなる段階であってもよい。
【００１７】
座標の非正規化は、０．０および１．０の間の正規化されたｕおよびｖ座標を、画像の大きさＤＩＭＸおよびＤＩＭＹで乗算することにより得られる。ｕ座標はuint.ufractとなり、uintは整数であり、ufractは分数である。ｖ座標はvint.vfractとなり、これもそれぞれ同じ法則で命名が行われている。
【００１８】
範囲特定復号器４７のハードウェア復号範囲ロジックは、入力として、uintおよびvintの値を受け取り、特定された範囲内の全てのアドレスを自動的に生成する。
【００１９】
座標生成ロジックの複雑性は、サポートする形状の種類によって決まる。簡単な矩形特定器であれば、単一の加算器４９を有する簡単な有限ステートマシンで十分である実施形態が多い。加算器４９を利用して各々の大きさのアドレスを生成する。
【００２０】
有限ステートマシン５２は、特定された範囲内の全てのアドレスを生成する。これらのアドレスはテクスチャユニットパイプラインの残りに転送される。
【００２１】
以下の擬似コードは、一部の実施形態において、ＦＳＭ５２が特定された範囲内の全てのアドレスを生成する様子を示す。
【００２２】
Inputs:
integer base uint (floor(u*DIMX)), integer base vint (floor(v*DIMY)), 
u range (dU), v range (dV), 
FSM:
pair=(uint, vint)
for (i=0; i<dU; i++)
for (j=0; j<dV; j++)
pair += (1,1)
【００２３】
加算器４９とともに範囲特定器ＦＳＭ４８は、上述したＦＳＭ命令のシーケンスを実行して、この範囲内の各テクセル用に個々の（ｕ，ｖ）座標のシーケンスを生成することができ、これらがテクスチャパイプラインの残りを介して渡されて、対応するフィルタリング処理を開始、実行することができる。シーケンサＦＳＭ５２は、テクスチャサンプラに、任意の一般的なｍｘｎ個のエレメントのドット積を処理させる。
【００２４】
プログラム可能な係数格納装置６０は、リニア補間器が必要とする係数を格納することができる。シーケンサＦＳＭ５２は、ｍｘｎドット積を、２、４、８個のエレメントのドット積処理の組み合わせにそれぞれ分割するが、これらはリニア、バイリニア、またはトリリニア補間器を用いて行うことができる。そしてドット積処理を繰り返し行い、累積器６６で累積することで最終的な出力を得る。
【００２５】
一部の実施形態では、コアテクスチャユニットの通信の効率性の向上に加えて、テクスチャユニットハードウェアを用いる汎用計算のパフォーマンス向上を達成することもできる。例えば、テクスチャサンプラベースの畳み込みを行うときには、範囲ベースの特定器は、各画素の（ｕ，ｖ）対を特定するのに必要となるかなりの計算量を省くことができる。６４画素のテクスチャ制御ブロックについて範囲特定器を利用する際には、テクスチャ制御ブロックの作成に１９２個の命令が必要となる。一方で範囲ベースの特定器を利用すると、一部の実施形態では６６個の命令のみが必要となり、１２６個の命令の節約が可能となる。テクスチャユニットのセットアップオーバヘッドが小さくなることにより、一部のケースでは、グラフィックアルゴリズムまたは非グラフィックアプリケーションの計算がより多くなる場合がある。
【００２６】
図１に示すエレメントは、場合によってソフトウェア、ハードウェア、またはファームウェアにより実装可能である。ソフトウェアを採用する実施形態では、範囲特定復号器４７は、テクスチャ制御ブロック４６等のコンピュータ可読媒体に格納される命令列により実装することができる。しかし、任意の光学、磁気、または半導体メモリを利用することもできる。従って命令は、テクスチャ制御ブロック４６を一例とする適切なプロセッサによる実行が可能である。
【００２７】
図３を参照すると、テクスチャ制御ブロック４６は、一実施形態では命令列７０を実行して、ソフトウェアで復号器４７を実装することができる。一部の実施形態では、「矩形」等の幾何学形状を受け取ることができる（ブロック７２）。そして一群の画素のアンカー画素の座標を受け取ることができる（ブロック７４）。例えば、座標および形状はタプルの一部であってよい。そして画素群を一群としてテクスチャ処理を行ってよい（ブロック７６）。
【００２８】
ここで記載するグラフィック処理技術は、様々なハードウェアアーキテクチャでの実装が可能である。例えば、グラフィック機能はチップセットに統合することができる。または、離散グラフィックプロセッサを利用することもできる。また別の実施形態ではグラフィック機能を、マルチコアプロセッサを含む汎用プロセッサにより実装することもできる。ここではリニア補間を示したが、他の形態の補間を利用することもできる。
【００２９】
明細書における「一実施形態（one embodiment）、（an embodiment）」といった言い回しは、その実施形態との関連で記載される特定の特徴、構造、または特性が、本発明に含まれる少なくとも１つの実装例に含まれることを示す。従って、「一実施形態では（in one embodiment）、（in an embodiment）」といった言い回しは、必ずしも同じ実施形態のことを示しているわけではない。さらに、特定の特徴、構造、または特性は、示される特定の実施形態以外の適切な形態で実装することもでき、このような形態全てを本発明の請求項の範囲内に含めることができる。
【００３０】
本発明を限られた数の実施形態との関連で記載してきたが、当業者であればこれを元に数多くの変形例および変更例を想到するであろう。添付請求項は、これら全ての変形例および変更例を、本発明の真の精神および範囲内に含めることを意図している。
【図１】
0005517900.tif 000002
【図２】
0005517900.tif 000003
【図３】
0005517900.tif 000004