説明

テクスチャ処理を行うピクセルを一群にまとめること

【課題】テクスチャフィルタリングを最適化するのに特化した、汎用プロセッサよりも高速にテクスチャフィルタリングを行うテクスチャユニットを提供する。
【解決手段】画素領域または画素群を、範囲特定器、および、その群を定義する1以上のアンカー画素を用いて、一単位としてテクスチャ処理を行う。一部の実施形態では、一群にまとめられた画素の処理効率が向上する。

【発明の詳細な説明】
【技術分野】
【0001】
本願は概してグラフィック処理に係り、特にグラフィックプロセッサのテクスチャユニットに係る。
【背景技術】
【0002】
グラフィックプロセッサは、概して画像表示に関する処理タスクを取り扱う専用プロセッサである。グラフィックプロセッサは、テクスチャユニットを含む複数の専用機能ユニットを含むことができる。テクスチャユニットは、テクスチャ伸張および異方性フィルタリングを含むテクスチャ処理を行う。
【0003】
テクスチャサンプラは、テクスチャフィルタリングを最適化するのに特化した種類のテクスチャユニットであり、汎用プロセッサよりも高速にテクスチャフィルタリングを行う。
【図面の簡単な説明】
【0004】
【図1】一実施形態におけるテクスチャユニットの概略図である。
【図2】一実施形態における画素座標系を示す。
【図3】一実施形態のフローチャートを示す。
【発明を実施するための形態】
【0005】
一部の実施形態においては、テクスチャサンプラ等のテクスチャユニットを利用して数学的な計算を行うことができる。プロセッサコアとテクスチャユニットとの間の通信の効率性は、一部の実施形態では、テクスチャ処理を行う画素群の符号化を行う際にコアにかかる計算オーバヘッドを低減させることで向上させることができる。一部の実施形態では、これは、一ブロックの画素を効果的に一群にまとめ、その範囲をその群に属する1つの画素により特定させるような範囲特定器を用いて行うことができる。従って一部の実施形態では、テクスチャユーザインタフェースは、テクスチャユニットのグラフィックおよび非グラフィック両方の用途に対する利点を提供する。
【0006】
図1においては、テクスチャユニットのテクスチャユニットコア45が、テクスチャ制御ブロック(TCB)46を介してテクスチャ要求を受信する。テクスチャ制御ブロック46は、テクスチャ面へのポインタ、テクスチャ面の幅および高さ、テクスチャの必要なn個の画素のテクスチャ座標(u,v)、一般的な畳み込みまたはnxmドット積処理等が含まれるかに関わらず、実行が必要なフィルタリング処理の種類(例えばリニア、バイリニア、またはトリリニア等)およびテクスチャフィルタ結果を含むことができる。
【0007】
アドレス生成ユニットまたは段階54のアドレス生成ロジックは、任意のフィルタリング処理が利用する全てのテクセル(texel)のアドレスを算出する。関連する画素の座標uおよびvが、非正規な形式、または正規化された形式(0.0および0.1の間)で渡される。後者の場合には、面の大きさで乗算することにより非正規な形式に戻すことができる。例えばuはi.buとなり、ここでiは整数であり、buが分数である。整数部分を利用して、最近傍値を生成することができる。バイリニア補間の場合には、(i,j)(i+1,j)(i.j+1)(i+1,j+1)という4つの近傍値がある。トリリニアフィルタリング処理には、8つの近傍値がある。分数部分を利用して、近傍する画素を混合する際に利用することができる重みを計算することができる。
【0008】
テクスチャキャッシュ56は、アドレス生成段階54に連結されてよく、生成されたテクセルアドレスを利用してアクセスされるメモリ58からデータをキャッシュするのに利用される。補間部62は、テクスチャキャッシュ56に連結されてよい。一実施形態では累積ロジックおよび小さな格納バッファ64を含む累積段階66が補間部62に連結される。
【0009】
テクスチャ制御ブロック46は、セットアップ段階50を介して範囲特定復号器47への入力として利用される。復号器47は、テクスチャユニット内に、範囲特定器から(u,v)座標を計算する有限ステートマシン(FSM)48を含むことができる。復号器には加算器49がさらに設けられ、一部の実施形態では複数の加算器を設けることができる。
【0010】
テクスチャ処理を行う各画素のuおよびvの座標を個々に特定する代わりに、一部の実施形態では範囲特定器を利用することができる。範囲特定器は、正方形、矩形、三角形等の通常の幾何学形状について定義することができる。例えば、矩形領域は以下の構造等の構造を利用して特定することができる。
struct {
int u;
int v;
int dU;
int dV;
} rectangle_specifier;
【0011】
図2にこれら矩形領域を示す。本図は、xおよびy方向に初期値uおよびv、ならびに、オフセットdUおよびdVが特定されているような範囲ベースのアドレススキームを示すが、例としてアレイエレメントの矩形窓が提供されている。特に図2の例には、6x5の矩形領域が格子内に陰を付けた形で示されている。左上の隅のアスタリスクを付された部分は、u、v座標(6,5)である。矩形領域は、最初の2つの位置(5,6)がuおよびv座標であり、次の2つの位置(6,5)がそれぞれuおよびv方向のdUおよびdVオフセットであるような、{5,6,6,5}のタプルで示すことができる。
【0012】
本例では、陰を付したブロックの個々の画素について(u,v)対を計算する代わりに、アスタリスクを付した左上の隅の画素の(u,v)対のみが必要である場合がある。これにより、本例では30回の(u,v)計算を省くことができるようになる。
【0013】
加えて、一部の実施形態では、30x2x4B(または240B)対となってしまう、陰を付した矩形内のuおよびv座標の全ての対を特定する代わりに、4つのBの値のタプルのみを利用することで(4x4B=16B)、224Bを省くことができるようになる。このようにして減らされた格納領域は、戻りデータを符号化するのに利用することができるようになる。このタプルを利用することにより、一部の実施形態では、u,vの対を通信する帯域幅を節約して、代わりにテクスチャサンプラが利用することができるようになる。
【0014】
従って幾何学形状(図2の矩形等)は、1以上のアンカー画素を利用して定義することができる(図2のアスタリスクはアンカー画素の1例を示す)。アンカー画素は、既知の幾何学形状内の定義された位置にある画素である。アンカー画素およびタプルの位置に基づいて、既知の形状により定義される画素群を一群として特定することができる。別の例としては、円形の画素群のアンカー画素を円形の中心とすることができる。
【0015】
一部の実施形態では、幾何学形状の種類もタプル内に符号化することができる。この方法により、異なる状況においても最も適切な幾何学形状の動的な選択が可能となる。
【0016】
テクスチャ座標を生成するシーケンサ有限ステートマシン(FSM)52は、ハードウェア、範囲復号ロジック、またはソフトウェアとしての実装が可能である。範囲特定器からテクスチャ座標を計算する。復号器50の復号ロジックは、一部の実施形態ではアドレス生成段階44のさらなる段階であってもよい。
【0017】
座標の非正規化は、0.0および1.0の間の正規化されたuおよびv座標を、画像の大きさDIMXおよびDIMYで乗算することにより得られる。u座標はuint.ufractとなり、uintは整数であり、ufractは分数である。v座標はvint.vfractとなり、これもそれぞれ同じ法則で命名が行われている。
【0018】
範囲特定復号器47のハードウェア復号範囲ロジックは、入力として、uintおよびvintの値を受け取り、特定された範囲内の全てのアドレスを自動的に生成する。
【0019】
座標生成ロジックの複雑性は、サポートする形状の種類によって決まる。簡単な矩形特定器であれば、単一の加算器49を有する簡単な有限ステートマシンで十分である実施形態が多い。加算器49を利用して各々の大きさのアドレスを生成する。
【0020】
有限ステートマシン52は、特定された範囲内の全てのアドレスを生成する。これらのアドレスはテクスチャユニットパイプラインの残りに転送される。
【0021】
以下の擬似コードは、一部の実施形態において、FSM52が特定された範囲内の全てのアドレスを生成する様子を示す。
【0022】
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)
【0023】
加算器49とともに範囲特定器FSM48は、上述したFSM命令のシーケンスを実行して、この範囲内の各テクセル用に個々の(u,v)座標のシーケンスを生成することができ、これらがテクスチャパイプラインの残りを介して渡されて、対応するフィルタリング処理を開始、実行することができる。シーケンサFSM52は、テクスチャサンプラに、任意の一般的なmxn個のエレメントのドット積を処理させる。
【0024】
プログラム可能な係数格納装置60は、リニア補間器が必要とする係数を格納することができる。シーケンサFSM52は、mxnドット積を、2、4、8個のエレメントのドット積処理の組み合わせにそれぞれ分割するが、これらはリニア、バイリニア、またはトリリニア補間器を用いて行うことができる。そしてドット積処理を繰り返し行い、累積器66で累積することで最終的な出力を得る。
【0025】
一部の実施形態では、コアテクスチャユニットの通信の効率性の向上に加えて、テクスチャユニットハードウェアを用いる汎用計算のパフォーマンス向上を達成することもできる。例えば、テクスチャサンプラベースの畳み込みを行うときには、範囲ベースの特定器は、各画素の(u,v)対を特定するのに必要となるかなりの計算量を省くことができる。64画素のテクスチャ制御ブロックについて範囲特定器を利用する際には、テクスチャ制御ブロックの作成に192個の命令が必要となる。一方で範囲ベースの特定器を利用すると、一部の実施形態では66個の命令のみが必要となり、126個の命令の節約が可能となる。テクスチャユニットのセットアップオーバヘッドが小さくなることにより、一部のケースでは、グラフィックアルゴリズムまたは非グラフィックアプリケーションの計算がより多くなる場合がある。
【0026】
図1に示すエレメントは、場合によってソフトウェア、ハードウェア、またはファームウェアにより実装可能である。ソフトウェアを採用する実施形態では、範囲特定復号器47は、テクスチャ制御ブロック46等のコンピュータ可読媒体に格納される命令列により実装することができる。しかし、任意の光学、磁気、または半導体メモリを利用することもできる。従って命令は、テクスチャ制御ブロック46を一例とする適切なプロセッサによる実行が可能である。
【0027】
図3を参照すると、テクスチャ制御ブロック46は、一実施形態では命令列70を実行して、ソフトウェアで復号器47を実装することができる。一部の実施形態では、「矩形」等の幾何学形状を受け取ることができる(ブロック72)。そして一群の画素のアンカー画素の座標を受け取ることができる(ブロック74)。例えば、座標および形状はタプルの一部であってよい。そして画素群を一群としてテクスチャ処理を行ってよい(ブロック76)。
【0028】
ここで記載するグラフィック処理技術は、様々なハードウェアアーキテクチャでの実装が可能である。例えば、グラフィック機能はチップセットに統合することができる。または、離散グラフィックプロセッサを利用することもできる。また別の実施形態ではグラフィック機能を、マルチコアプロセッサを含む汎用プロセッサにより実装することもできる。ここではリニア補間を示したが、他の形態の補間を利用することもできる。
【0029】
明細書における「一実施形態(one embodiment)、(an embodiment)」といった言い回しは、その実施形態との関連で記載される特定の特徴、構造、または特性が、本発明に含まれる少なくとも1つの実装例に含まれることを示す。従って、「一実施形態では(in one embodiment)、(in an embodiment)」といった言い回しは、必ずしも同じ実施形態のことを示しているわけではない。さらに、特定の特徴、構造、または特性は、示される特定の実施形態以外の適切な形態で実装することもでき、このような形態全てを本発明の請求項の範囲内に含めることができる。
【0030】
本発明を限られた数の実施形態との関連で記載してきたが、当業者であればこれを元に数多くの変形例および変更例を想到するであろう。添付請求項は、これら全ての変形例および変更例を、本発明の真の精神および範囲内に含めることを意図している。

【特許請求の範囲】
【請求項1】
既知の幾何学形状の1以上のアンカー画素の座標を用いて、テクスチャ処理を行う一群の画素を特定する段階を備える方法。
【請求項2】
タプルを用いて、復号ロジックが認識するように前記幾何学形状を符号化する段階を備える請求項1に記載の方法。
【請求項3】
復号ロジックが前記タプルが特定する範囲内の画素アドレスを生成する段階を備える請求項2に記載の方法。
【請求項4】
前記幾何学形状として矩形を利用する段階を備える請求項1に記載の方法。
【請求項5】
有限ステートマシンと加算器とを用いて前記アドレスを生成する段階を備える請求項3に記載の方法。
【請求項6】
前記範囲内の各々の大きさの前記画素アドレスを累積する段階を備える請求項3に記載の方法。
【請求項7】
前記幾何学形状を構成する画素領域を一単位としてテクスチャ処理を行う段階を備える請求項1に記載の方法。
【請求項8】
前記範囲におけるドット積を決定する段階を備える請求項3に記載の方法。
【請求項9】
前記範囲におけるプログラム可能畳み込みを決定する段階を備える請求項3に記載の方法。
【請求項10】
命令を格納するコンピュータ可読媒体であって、前記命令はコンピュータにより実行されると、
既知の幾何学形状の1以上のアンカー画素の座標を用いて、一群の画素にテクスチャ処理を行わせるコンピュータ可読媒体。
【請求項11】
復号ロジックが認識するタプルを用いて前記幾何学形状を符号化する命令をさらに格納する請求項10に記載の媒体。
【請求項12】
復号ロジックを用いて前記タプルが特定する範囲内の画素アドレスを生成させる命令をさらに格納する請求項11に記載の媒体。
【請求項13】
前記幾何学形状として矩形を利用させる命令をさらに格納する請求項11に記載の媒体。
【請求項14】
有限ステートマシンと加算器とを用いて前記アドレスを生成させる命令をさらに格納する請求項12に記載の媒体。
【請求項15】
前記範囲内の各々の大きさの前記画素アドレスを累積させる命令をさらに格納する請求項12に記載の媒体。
【請求項16】
前記幾何学形状を構成する画素領域を一単位としてテクスチャ処理を行わせる命令をさらに格納する請求項10に記載の媒体。
【請求項17】
前記範囲におけるプログラム可能畳み込みを決定させる命令をさらに格納する請求項12に記載の媒体。
【請求項18】
前記範囲におけるドット積を決定させる命令をさらに格納する請求項12に記載の媒体。
【請求項19】
処理実体と、
前記処理実体に連結されたメモリと、
既知の幾何学形状の1以上のアンカー画素の座標を用いて、テクスチャ処理を行う一群の画素を特定するアドレス生成部と
を備える装置。
【請求項20】
前記アドレス生成部に連結された範囲特定復号器を備える請求項19に記載の装置。
【請求項21】
前記範囲特定復号器内に有限ステートマシンをさらに備える請求項20に記載の装置。
【請求項22】
前記範囲特定復号器内に加算器をさらに備える請求項21に記載の装置。
【請求項23】
前記アドレス生成部に連結されたテクスチャキャッシュと、前記テクスチャキャッシュに連結された補間部とをさらに備える請求項19に記載の装置。
【請求項24】
前記補間部に連結された累積部を備える請求項23に記載の装置。
【請求項25】
前記範囲特定復号器は、タプルを用いて前記幾何学形状を復号する請求項20に記載の装置。
【請求項26】
前記範囲特定復号器は、前記タプルが特定する範囲内の画素アドレスを生成する請求項25に記載の装置。
【請求項27】
前記範囲特定復号器は、有限ステートマシンと加算器とを含むことで前記アドレスを生成する請求項21に記載の装置。
【請求項28】
前記幾何学形状を構成する画素領域を一単位としてテクスチャ処理を行う請求項19に記載の装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2011−134317(P2011−134317A)
【公開日】平成23年7月7日(2011.7.7)
【国際特許分類】
【外国語出願】
【出願番号】特願2010−268453(P2010−268453)
【出願日】平成22年12月1日(2010.12.1)
【出願人】(591003943)インテル・コーポレーション (1,101)
【Fターム(参考)】