(57)【特許請求の範囲】
【請求項１】
マルチモードフィルタを有するグラフィック処理システムであって、前記フィルタは、
複数のテクセル値及びフィルタモード信号を受信する１又は複数の信号入力と、
前記１又は複数の信号入力に通信可能に結合される論理回路であって、前記論理回路は、前記フィルタモード信号により選択可能な複数のモードで動作し、第１のモードの前記論理回路は、小数テクスチャアドレスを示す係数に基づく近隣テクセル値グループに渡ってバイリニア補間を実行し、第２のモードの前記論理回路は、前記係数に基づく前記近隣テクセル値グループに渡って加重平均を実行し、前記係数の各々は、前記複数のテクセル値のうちの１つに関連する重みを示す、論理回路と、
前記論理回路に通信可能に結合され、フィルタリングされたテクスチャデータを出力する１又は複数の出力信号線と、
を有し、
前記論理回路は、複数のフィルタブロックを更に有し、
前記第１のモードの各フィルタブロックは、４個のテクセル値及び１次元の小数アドレスから、１対のリニア補間値を生成し、
前記第２のモードの各フィルタブロックは、前記４個のテクセル値の対を合計し、前記対のうちの第１の対は前記係数のうちの第１の係数によりスケーリングされ、及び前記対のうちの第２の対は前記係数のうちの第２の係数によりスケーリングされる、
システム。
【請求項２】
前記論理回路は、
第１のフィルタブロックであって、前記第１のモードで、４個のテクセル値及び前記小数アドレスの第１の次元から、リニア補間値の第１の対を生成し、前記第２のモードで、テクセル値の対の和を生成し、該テクセル値の対のうちの第１の対は第１の係数によりスケーリングされ、第２の対は第２の係数によりスケーリングされる、第１のフィルタブロックと、
第２のフィルタブロックであって、前記第１のモードで、前記４個のテクセル値及び前記小数アドレスの第２の次元から、リニア補間値の第２の対を生成し、前記第２のモードで、対応する係数によりスケーリングされた前記テクセル値の第２の対の和を生成する、第２のフィルタブロックと、
アキュムレータであって、前記第１のモードで、前記１又は複数の出力信号線に前記リニア補間値の第２の対を出力し、前記第２のモードで、前記１又は複数の出力信号線に４個のテクセル値のグループに渡る加重平均を出力する、アキュムレータと、
を更に有する、請求項１に記載のシステム。
【請求項３】
前記論理回路は、
前記第１のモードで、前記４個のテクセル値及び前記小数アドレスの第１の次元から、リニア補間値の第１の対を生成する第１のフィルタブロックと、
前記第１のモードで、第１のフィルタ段の出力に結合される変換器であって、前記変換器は、フルビット幅を有するリニア補間値の前記第１の対の各々を高ビット部分と低ビット部分とに変換する、変換器と、
第２のフィルタブロックであって、
前記第１のモードで、前記小数アドレスの第２の次元及びリニア補間値の前記第１の対の前記低ビット部分に基づき、第３のリニア補間値を生成し、
前記第１のモードで、前記小数アドレスの前記第２の次元及びリニア補間値の前記第１の対の前記高ビット部分に基づき、第４のリニア補間値を生成し、
前記第３及び第４のリニア補間値を前記フルビット幅を有するバイリニア補間値に組立て、
前記１又は複数の出力信号線に前記バイリニア補間値を出力する、第２のフィルタブロックと、
を更に有する、請求項１に記載のシステム。
【請求項４】
前記論理回路は、
第１のフィルタブロックであって、前記第１のモードで、
第１のテクセル対の第１のリニア補間値であって、
前記第１のテクセル対に関連する第１のテクセル値を前記小数アドレスに対応する第１の係数で乗算し、
前記第１のテクセル対に関連する第２のテクセル値を前記第１の係数の補数で乗算し、
これらの結果を合計する、
ことによる、第１のリニア補間値と、
第２のテクセル対の第２のリニア補間値であって、
前記第２のテクセル対に関連する第３のテクセル値を前記第１の係数で乗算し、
前記第２のテクセル対に関連する第４のテクセル値を前記第１の係数の補数で乗算する、
ことによる、第２のリニア補間値と、
を生成する第１のフィルタブロックと、
前記第１のモードで第１のフィルタ段の出力に結合される変換器であって、前記変換器は、フルビット幅を有する前記第１及び第２のリニア補間値の各々を高ビット部分及び低ビット部分に変換する、変換器と、
第２のフィルタブロックであって、
前記第１のモードで、
前記第１のリニア補間値の低ビット部分を前記小数アドレスに対応する第２の係数で乗算し、
前記第２のリニア補間値の低ビット部分を第２の係数の補数で乗算し、
これらの結果を合計する、
ことにより、第３のリニア補間値を生成し、
前記第１のモードで、
前記第１のリニア補間値の高ビット部分を前記第２の係数で乗算し、
前記第２のリニア補間値の高ビット部分を前記第２の係数の補数で乗算し、
これらの結果を合計する、
ことにより、第４のリニア補間値を生成し、
前記第３及び第４のリニア補間値を、前記フルビット幅を有するバイリニア補間値に組立て、
前記１又は複数の出力信号線に前記バイリニア補間値を出力する、第２のフィルタブロックと、
を更に有する、請求項１に記載のシステム。
【請求項５】
前記論理回路は、
第１のフィルタブロックであって、前記第２のモードで、第１及び第２のテクセル値の和を生成し、前記第１のテクセル値は第１の係数によりスケーリングされ、前記第２のテクセル値は第２の係数によりスケーリングされる、第１のフィルタブロックと、
第２のフィルタブロックであって、前記第２のモードで、第３及び第４のテクセル値の和を生成し、前記第３のテクセル値は第３の係数によりスケーリングされ、前記第４のテクセル値は第３の係数によりスケーリングされる、第２のフィルタブロックと、
前記和を加算し、結果として生じた加重和を前記１又は複数の出力信号線に出力する、アキュムレータと、
を更に有する、請求項１に記載のシステム。
【請求項６】
前記論理回路は、４個のフィルタブロックを更に有し、各フィルタブロックは、同じ論理回路を有し、前記フィルタモード信号により選択可能な複数のモードで動作可能であり、
前記４個のフィルタブロックは、前記第１のモードで、前記第１のモードで受信した小数アドレスに基づき、それぞれ４個の近隣テクセル値を有する２個のテクセルグループのバイリニア補間を出力し、
前記４個のフィルタブロックは、前記第２のモードで、２個のテクセルグループに渡る加重平均を出力する、
請求項１に記載のシステム。
【請求項７】
前記論理回路は、４個のフィルタブロックを更に有し、各フィルタブロックは、同じ論理回路を有し、前記フィルタモード信号により選択可能な複数のモードで動作可能であり、
前記４個のフィルタブロックは、前記第１のモードで、前記第１のモードで受信した小数アドレスに基づき、それぞれ４個の近隣テクセル値を有する２個のテクセルグループのバイリニア補間を出力し、
前記４個のフィルタブロックは、前記第２のモードで、２個のテクセルグループのバイリニア補間を出力し、
第１のフィルタブロックは、前記２個のテクセルグループのうちの第１のテクセルグループについて第１の次元に渡りリニア補間を実行し、
第２のフィルタブロックは、前記第１のフィルタブロックからの出力を受信し、前記２個のテクセルグループのうちの前記第１のテクセルグループについて第２の次元に渡りリニア補間を実行し、
第３のフィルタブロックは、前記２個のテクセルグループのうちの第２のテクセルグループについて前記第１の次元に渡りリニア補間を実行し、
第４のフィルタブロックは、前記第３のフィルタブロックからの出力を受信し、前記２個のテクセルグループのうちの前記第２のテクセルグループについて前記第２の次元に渡りリニア補間を実行し、
前記４個のフィルタブロックは、前記第２のモードで、２個のテクセルグループに渡る加重平均を出力し、
第１のフィルタブロックは、前記２個のテクセルグループのうちの第１のテクセルグループの第１のテクセル対の加重平均を決定し、
第２のフィルタブロックは、前記２個のテクセルグループのうちの第１のテクセルグループの第２のテクセル対の加重平均を決定し、
第３のフィルタブロックは、前記２個のテクセルグループのうちの第２のテクセルグループの第１のテクセル対の加重平均を決定し、
第４のフィルタブロックは、前記２個のテクセルグループのうちの第２のテクセルグループの第２のテクセル対の加重平均を決定する、
請求項１に記載のシステム。
【請求項８】
構成可能なテクスチャフィルタを有するグラフィック処理システムであって、前記フィルタは、
複数のテクセル値及びフィルタモード信号を受信する１又は複数の信号入力と、
前記１又は複数の信号入力に結合される複数のフィルタブロックであって、各フィルタブロックは同じ論理回路を有し、
所定の小数アドレス又は所定の重み付け係数に関連する係数を受信する係数入力と、
それぞれテクセルカラー値を受信する２個のテクセルカラー入力と、
前記係数入力に結合される第１の入力と、第１のテクセルカラー入力に結合される第２の入力と、を有する第１の乗算器と、
インバータを通じて前記係数入力に結合される第１の入力と、第２のテクセルカラー入力に結合される第２の入力と、を有する第２の乗算器と、
前記第１の乗算器の出力及び前記第２の乗算器の出力に結合される加算器であって、前記第２の乗算器と前記加算器との間の結合は、前記フィルタモード信号に応答するスイッチを通じる、加算器と、を更に有する、複数のフィルタブロックと、
を有し、
前記論理回路は、
それぞれ所定の小数アドレス又は所定のテクセル重みに関連する係数を受信する２個の係数入力と、
それぞれテクセル値を受信する４個のテクセルカラー入力と、
第１の係数入力に結合される第１の入力と、第１のテクセル値入力に結合される第２の入力と、を有する第１の乗算器と、
インバータを通じて前記第１の係数入力に結合される第１の入力と、第２のテクセル値入力に結合される第２の入力と、を有する第２の乗算器と、
前記第１の乗算器の出力及び前記第２の乗算器に結合される第１の加算器であって、前記第２の乗算器と前記第１の加算器との間の結合は、前記フィルタモード信号に応答する第１のスイッチを通じる、第１の加算器と、
第２の係数入力に結合される第１の入力と、第３のテクセルカラー入力に結合される第２の入力と、を有する第３の乗算器と、
インバータを通じて前記第２の係数入力に結合される第１の入力と、第４のテクセルカラー入力に結合される第２の入力と、を有する第４の乗算器と、
前記第３の乗算器の出力及び前記第４の乗算器に結合される第２の加算器であって、前記第２の加算器と前記第４の乗算器との間の結合は、前記フィルタモード信号に応答する第２のスイッチを通じる、第２の加算器と、
前記第１及び第２の加算器の出力に結合されるアキュムレータであって、前記アキュムレータは、前記フィルタモード信号に結合され、少なくとも前記フィルタモード信号に基づき、前記加算器の出力を一緒に加算する又は通過させる、アキュムレータと、
を更に有する、
システム。
【請求項９】
グラフィカルテクスチャデータをフィルタリングする方法であって、
グラフィック処理システムのメモリに複数のテクセル値を格納するステップと、
第１のフィルタモードを示すフィルタモード信号に応答して、テクセルに関連する小数アドレスを示す係数に基づき、近隣テクセル値グループに渡りバイリニア補間を実行するステップと、
第２のフィルタモードを示すフィルタモード信号に応答して、テクセル値に関連する重みを示す係数に基づき、近隣テクセル値グループに渡り加重平均を生成するステップと、
前記バイリニア補間の結果生じたバイリニア補間値又は前記加重平均をメモリに格納するステップと、
第１のフィルタモードを示すフィルタモード信号に応答して、前記４個のテクセル値及び１次元の前記小数アドレスから、リニア補間値の対を生成するステップと、
第２のフィルタモードを示すフィルタモード信号に応答して、前記４個のテクセル値のうちの２個の和を生成するステップであって、前記テクセル値のうちの第１のテクセル値は前記係数のうちの第１の係数によりスケーリングされ、前記テクセル値のうちの第２のテクセル値は前記係数のうちの第２の係数によりスケーリングされる、ステップと、
を有する方法。
【請求項１０】
前記バイリニア補間を実行するステップは、
前記４個のテクセル値及び１次元の前記小数アドレスから、リニア補間値の第１の対を生成するステップと、
フルビット幅を有するリニア補間値の前記第１の対の各々を、高ビット部分及び低ビット部分に変換するステップと、
前記小数アドレスの第２の次元及びリニア補間値の前記第１の対の前記低ビット部分に基づき、第３のリニア補間値を生成するステップと、
前記小数アドレスの前記第２の次元及びリニア補間値の前記第１の対の前記高ビット部分に基づき、第４のリニア補間値を生成するステップと、
前記第３及び第４のリニア補間値を前記フルビット幅を有するバイリニア補間値に組立てるステップと、
を更に有する、請求項９に記載の方法。
【請求項１１】
前記バイリニア補間を実行するステップは、
第１のテクセル対の第１のリニア補間値を生成するステップであって、
前記第１のテクセル対に関連する第１のテクセル値を前記小数アドレスに対応する第１の係数で乗算し、
前記第１のテクセル対に関連する第２のテクセル値を前記第１の係数の補数で乗算し、
これらの結果を合計する、
ことによる、ステップと、
第２のテクセル対の第２のリニア補間値を生成するステップであって、
前記第２のテクセル対に関連する第３のテクセル値を前記第１の係数で乗算し、
前記第２のテクセル対に関連する第４のテクセル値を前記第１の係数の補数で乗算する、
ことによる、ステップと、
フルビット幅を有する前記第１及び第２のリニア補間値の各々を高ビット部分及び低ビット部分に変換するステップと、
第３のリニア補間値を生成するステップであって、
前記第１のリニア補間値の低ビット部分を前記小数アドレスに対応する第２の係数で乗算し、
前記第２のリニア補間値の低ビット部分を第２の係数の補数で乗算し、
これらの結果を合計する、
ことによる、ステップと、
第４のリニア補間値を生成するステップであって、
前記第１のリニア補間値の高ビット部分を前記第２の係数で乗算し、
前記第２のリニア補間値の高ビット部分を前記第２の係数の補数で乗算し、
これらの結果を合計する、
ことによる、ステップと、
前記第３及び第４のリニア補間値を、前記フルビット幅を有するバイリニア補間値に組立てるステップと、
を更に有する、請求項９に記載の方法。
【請求項１２】
前記加重平均を生成するステップは、
前記テクセル値のうちの第１及び第２のテクセル値の和を生成するステップであって、前記第１のテクセル値は第１の係数によりスケーリングされ、前記第２のテクセル値は第２の係数によりスケーリングされる、ステップと、
前記テクセル値のうちの第３及び第４のテクセル値の和を生成するステップであって、前記第３のテクセル値は第３の係数によりスケーリングされ、前記第４のテクセル値は第４の係数によりスケーリングされる、ステップと、
前記和を加算するステップと、
を更に有する、請求項９に記載の方法。
【請求項１３】
グラフィカルテクスチャデータをフィルタリングする方法であって、
グラフィック処理システムのメモリに複数のテクセル値及び係数を格納するステップと、
所定の小数アドレス又は所定のテクセル重みに関連する係数で第１のテクセル値を乗算するステップと、
バイリニアフィルタモードを示すフィルタモード信号に応答して、前記係数によりスケーリングされた前記第１のテクセル値を前記係数の補数によりスケーリングされた第２のテクセル値に加算し、加重平均フィルタモードを示す前記フィルタモード信号に応答して、前記の加算をしないで、前記係数によりスケーリングされた前記第１のテクセル値を通過させる、ステップと、
前記係数によりスケーリングされた前記第１のテクセル値をメモリに格納するステップと、
第１のテクセル値を所定の小数アドレス又は所定のテクセル重みに関連する第１の係数で乗算するステップと、
バイリニアフィルタモードを示す前記フィルタモード信号に応答して、前記第１の係数によりスケーリングされた前記第１のテクセル値と前記第１の係数の補数によりスケーリングされた第２のテクセル値を加算することにより、第１のリニア補間値を生成するステップと、
第３のテクセル値を所定の小数アドレス又は所定のテクセル重みに関連する第２の係数で乗算するステップと、
前記バイリニアフィルタモードを示す前記フィルタモード信号に応答して、前記第２の係数によりスケーリングされた前記第３のテクセル値と前記第２の係数の補数によりスケーリングされた第４のテクセル値を加算することにより、第２のリニア補間値を生成するステップと、
前記グラフィック処理システムに結合されるディスプレイスクリーンに、前記第１及び第２のリニア補間値に基づきレンダリングされるグラフィカルオブジェクトを出力するステップと、
を有する方法。
【請求項１４】
プロセッサに、
グラフィック処理システムのメモリに複数のテクセル値及び係数を格納するステップと、
第１のフィルタモードを示すフィルタモード信号に応答して、テクセルに関連する小数アドレスを示す２つの係数に基づき、近隣テクセル値グループに渡りバイリニア補間を実行するステップと、
第２のフィルタモードを示すフィルタモード信号に応答して、それぞれ近隣テクセルのうちの１つに関連する重みを示す係数に基づき、前記近隣テクセル値グループに渡り加重平均を生成するステップと、
前記バイリニア補間の結果生じたバイリニア補間値又は前記加重平均をメモリに格納するステップと、
を実行させ、
前記バイリニア補間を実行するステップは、、
前記４個のテクセル値及び１次元の前記小数アドレスから、リニア補間値の第１の対を生成するステップと、
フルビット幅を有するリニア補間値の前記第１の対の各々を、高ビット部分及び低ビット部分に変換するステップと、
前記小数アドレスの第２の次元及びリニア補間値の前記第１の対の前記低ビット部分に基づき、第３のリニア補間値を生成するステップと、
前記小数アドレスの前記第２の次元及びリニア補間値の前記第１の対の前記高ビット部分に基づき、第４のリニア補間値を生成するステップと、
前記第３及び第４のリニア補間値を前記フルビット幅を有するバイリニア補間値に組立てるステップと、
を更に有する、コンピュータプログラム。
【請求項１５】
前記加重平均を生成するステップは、
前記テクセル値のうちの第１及び第２のテクセル値の和を生成するステップであって、前記第１のテクセル値は第１の係数によりスケーリングされ、前記第２のテクセル値は第２の係数によりスケーリングされる、ステップと、
前記テクセル値のうちの第３及び第４のテクセル値の和を生成するステップであって、前記第３のテクセル値は第３の係数によりスケーリングされ、前記第４のテクセル値は第４の係数によりスケーリングされる、ステップと、
前記和を加算するステップと、
を更に有する、請求項１４に記載のコンピュータプログラム。
【請求項１６】
請求項１４又は１５に記載のコンピュータプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１７】
請求項９乃至１３のいずれか一項に記載の方法を実行する手段、
を有する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、概して、コンピュータグラフィックに関し、より詳細にはテクスチャデータのサンプリング及びフィルタリングに関する。
【背景技術】
【０００２】
特に３次元（３Ｄ）グラフィックアプリケーションのためのグラフィックレンダリングは、パーソナルコンピュータにより実行される最も処理の集中する動作のうちの１つである。グラフィックコプロセッサは、ごく最近のパーソナルコンピュータで利用可能である。図１Ａは、それぞれバスによりシステムメモリ１０３（例えば、ＤＲＡＭ、ｅＤＲＡＭ、等）に結合されるグラフィックプロセッサ１０１と中央プロセッサ１０２とを用いるシステム１００である。中央プロセッサ１０２及びグラフィックプロセッサ１０１は、単一のシリコン片に配置され（つまり、シングルチップソリューション）、又はパッケージ、ボード若しくはシステムレベルで統合されても良い。グラフィックプロセッサ１０１は、複数の並列処理サブシステム、又はスライス１０５を有する。各スライス１０５は、より大きな並列グラフィック処理能力のために任意の回数だけ複製されても良い。スライス１０５内には、「シェーダーコア」又は単に「コア」としても知られる多数の実行ユニット（ＥＵ）１１０がある。各ＥＵ１１０は、命令を実行するスカラー整数及び浮動小数点演算ユニットを含む。各ＥＵ１１０は、命令セットアーキテクチャ（ＩＳＡ）を有し、コンテキストスイッチ及びプリエンプティブマルチタスクをサポートしても良く、例えば基本的に完全なｘ８６コアであっても良い。ＥＵ１１０と共に、スライス１０５は、レベル２（Ｌ２）キャッシュ１３０（例えば、ＳＲＡＭ、ｅＤＲＡＭ、等）及びテクスチャサンプラ１２０を有する。テクスチャサンプラ１２０は、固定機能ロジック（例えば、状態機械）を有する。テクスチャサンプラ１２０は、キャッシュ１３０を介してＥＵ１１０と通信しても良い。キャッシュ１３０は、テクスチャキャッシュとして機能しても良い。テクスチャキャッシュは、プラットフォームホスティングシステム１００による表示のためにグラフィックがレンダリングされるときにテクスチャマッピングで用いられる、所定のテクスチャデータの大きなアレイを保持するテクスチャサンプラ１２０への読み出し専用メモリである。
【０００３】
シーン情報（ソースデータ）の表示可能画像への変換は、概して３Ｄグラフィックレンダリングパイプラインと称される多数の機能を必要とする。図１Ｂは、特定の動作、特にグラフィックレンダリングパイプラインのテクスチャマッピング部分を示すフロー図である。テクスチャマッピング１０１は、通常、テクスチャ信号の基本形状への画像化を伴い、例えば、頂点に基づき操作されるより粗くレンダリングされる多角形メッシュに関する詳細なピクセルレベルの外観を与える。動作１０５で、テクスチャ座標は、所与の多角形の頂点に割り当てられる。通常、テクスチャは、２次元（ｕ，ｖ）座標空間内又は３次元（ｕ，ｖ，ｓ）座標空間内の位置に基づき個々にアドレスされ得るテクセル（texel）（テクスチャ要素、texture  element）のアレイを有するデジタル画像である。（ｕ，ｖ）座標空間では、ｕは幅であり、ｖは高さであり、テクスチャの幅及び高さに基づき０から１の間でマッピングされても良い。動作１０７で、テクスチャ座標は、多角形内の各ピクセルにおいて補間される。動作１１１で、各ピクセルにおけるテクスチャカラーは、補間されたテクスチャ座標に基づきキャッシュ内にフェッチされる。動作１１３で、テクスチャは、各ピクセルにおいて特定のテクセルカラーに達するために、サンプリングされ及びフィルタリングされる。しばしば、多数のサンプルテクスチャ要素（テクセル）とソーステクスチャ画像と画像がマッピングされる多数の画素（ピクセル）との間に視差が存在する。所与の多角形に対してテクスチャが大きすぎる又は小さすぎる場合、テクスチャは、空間に適合するためにフィルタリングされる。拡大フィルタはテクスチャを拡大し（ズームイン）、縮小フィルタはより小さい領域内に適合するようにテクスチャを縮小する（ズームアウト）。テクスチャ拡大は、複数のアドレスについてサンプリングされたテクセルを繰り返すことにより、多数のピクセルに少数のテクセルをマッピングし、例えばよりぼやけた画像を提供する。テクスチャ縮小は、１より多いテクセル値を単一の値に結合することにより、多数のテクセルを少数のピクセルにマッピングする。これはエイリアシング又はギザギザのエッジを生じ、アンチエイリアシング技術は、視覚的アーティファクトを低減するために重要になってきている。次に、テクスチャフィルタリングの目的は、例えば所与のピクセルに関連する多数のテクセルの平均化を通じて、各ピクセルの周囲の領域に渡り画像の平均値を計算することである。
【０００４】
テクスチャフィルタリングは、主として、テクスチャサンプラ１２０内にある固定機能ロジックにより実行されている。このようなテクスチャサンプラは、ポイントサンプリング、バイリニアフィルタリング、トリリニアフィルタリング、及び異方性フィルタリングのような、テクスチャフィルタリングの種類に関連する固定フィルタフットプリント（形状）を有する。フィルタリング方法が次第に複雑になるにつれ、及びテクスチャデータの使用が拡張され、例えば色に加えて照明及び他の表面特性のために使用されるにつれ、固定機能フィルタを有するサンプラは非効率及び／又は不十分になってきている。したがって、ＥＵ１１０によりインスタンス化されたシェーダープログラムは、テクスチャマッピングにおいてより大きな役割を担い、例えば結果として図１Ｃに示したシステム１０６のアーキテクチャを生じる。システム１０６では、ＥＵ１１０は、アプリケーション層でフィルタフットプリント１４０を実装し、フットプリント１４０に関連する（ｕ，ｖ）空間内の複数のテクスチャ要求は、テクスチャサンプラ１２０へ送信される。次に、テクスチャサンプラ１２０は、フィルタフットプリント１４０に関連する（ｕ，ｖ）アドレスの各々についてキャッシュにテクスチャデータ１１５をフェッチする。次に、アプリケーション層で定められた命令を実行するＥＵ１１０は、テクスチャデータ１１５を累算する。したがって、フットプリント全体のテクスチャデータは、フィルタリングが固定機能ロジック１３１からＥＵ１１０へオフロードされるので、いかなるデータ縮小も有しないで、テクスチャサンプラを通過する。しかしながら、この構成では、固定機能ロジック１３１により占有されるサンプラチップ領域は、浪費される。このアーキテクチャに伴う別の問題は、キャッシュ使用効率が低下することである。カーネルから送信される複数のサンプラメッセージにより、複数のＥＵからインターリーブされたメッセージが多くのキャッシュ立ち退きを引き起こすより高い可能性がある。さらに、テクスチャデータはテクスチャサンプラ１２０により十分に処理され及び／又は低減されないので、テクスチャマッピング帯域幅は、ＥＵ１１０とテクスチャサンプラ１２０との間で通信されるより大容量のデータにより制限される可能性がある。図１Ｃに示したシステムアーキテクチャの別の欠点は、ＥＵ１１０により実行されるフィルタリングが、より多くの電力を必要とし、テクスチャサンプラ１２０内に最適化された専用に構築されたロジックで実装される場合に遅くなり得ることである。したがって、シェーダーベースのフィルタリングを利用可能にするプログラム可能性は、より大きな電力要求がバッテリ寿命を短くする、グラフィック集中アプリケーションを実行するモバイル装置にとって特に不利であり得る。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、グラフィカルテクスチャデータをフィルタリングするグラフィック処理システム及び方法を提供する。
【課題を解決するための手段】
【０００６】
一実施形態によると、マルチモードフィルタを有するグラフィック処理システムであって、前記フィルタは、複数のテクセル値及びフィルタモード信号を受信する１又は複数の信号入力と、前記１又は複数の信号入力に通信可能に結合される論理回路であって、前記論理回路は、前記フィルタモード信号により選択可能な複数のモードで動作し、第１のモードの前記論理回路は、小数テクスチャアドレスを示す係数に基づく近隣テクセル値グループに渡ってバイリニア補間を実行し、第２のモードの前記論理回路は、前記係数に基づく前記近隣テクセル値グループに渡って加重平均を実行し、前記係数の各々は、前記複数のテクセル値のうちの１つに関連する重みを示す、論理回路と、前記論理回路に通信可能に結合され、フィルタリングされたテクスチャデータを出力する１又は複数の出力信号線と、を有するシステムが提供される。
【図面の簡単な説明】
【０００７】
本願明細書に記載された素材は例を用いて説明されるが、添付の図面に限定されない。説明を簡単且つ明確にするため、図中に示された要素は、必ずしも縮尺通りに描かれていないことが理解される。例えば、幾つかの要素の寸法は、明確さのため、他の要素に比して誇張されている。更に、適切に検討されるとき、対応する又は類似の要素を示すために、参照符号は図の間で繰り返されている。以下の図面がある。
【図１Ａ】バスによりシステムメモリに結合されるグラフィックプロセッサと中央プロセッサとを用いるシステムを示すブロック図である。
【図１Ｂ】グラフィックプロセッサ内の標準的なグラフィックレンダリングパイプライン内の特定のテクスチャマッピング動作を示すフロー図である。
【図１Ｃ】テクスチャフィルタリングのためにシェーダーを用いる従来のグラフィックプロセッサアーキテクチャである。
【図１Ｄ】グラフィックプロセッサ内で用いられ得る特定のテクスチャフィルタリングアーキテクチャを比較するグラフである。
【図１Ｅ】一実施形態による、マルチモードテクスチャサンプラを用いるグラフィックプロセッサアーキテクチャである。
【図２】一実施形態による、マルチモードフレキシブルテクスチャサンプラを有するグラフィックプロセッサを含むシステムを更に示す機能ブロック図である。
【図３】実施形態に従って、マルチモードフレキシブルテクスチャフィルタリング方法が図２のようなアーキテクチャを有するシステムによりどのように実行され得るかを示す。
【図４】実施形態に従って、マルチモードフレキシブルテクスチャフィルタリング方法を示すフロー図である。
【図５Ａ】実施形態に従って、図４に示した方法の部分として実行されるテクセルクワッド（quad）の適用を通じて実装され得る種々の例示的なプログラム可能なフットプリントを示す。
【図５Ｂ】実施形態に従って、図４に示した方法を実行するとき、マルチモードフレキシブルテクスチャサンプラ内で用いられ得る複数のフットプリント及び対応する境界領域を示す。
【図５Ｃ】実施形態に従って、マルチモードフレキシブルテクスチャサンプラの最小粒度を表すテクセルクワッドを示す。
【図６Ａ】実施形態に従って、図４に示した方法として実装され得る分離テクスチャフィルタリング方法が実行されるフロー図を示す。
【図６Ｂ】実施形態に従って、分離テクスチャフィルタリング方法が図２のようなアーキテクチャを有するシステムによりどのように実行され得るかを示す。
【図６Ｃ】実施形態に従って、図６Ａに示す分離フィルタリング方法を実行する準備において投入され得るフィルタ係数テーブルを示す。
【図６Ｄ】実施形態に従って、図６Ａに示す分離フィルタリング方法を実行する準備において投入され得るフィルタ係数テーブルを示す。
【図６Ｅ】実施形態に従って、図６Ａに示す分離フィルタリング方法の実行中のフィルタ係数テーブルの部分アドレスインデックス付けを示す。
【図７Ａ】一実施形態に従って、マルチモードフィルタリング方法を示すフロー図である。
【図７Ｂ】実施形態に従って、図７Ａに示すマルチモードフィルタリング方法を実行するよう構成されるフィルタロジックユニットのブロック図である。
【図８Ａ】実施形態に従って、図７Ａに示すマルチモードフィルタリング方法の部分として実行され得るバイリニアフィルタリング方法を示すフロー図である。
【図８Ｂ】実施形態に従って、バイリニアフィルタリングモードに構成されるフィルタロジックユニットのブロック図である。
【図８Ｃ】実施形態に従って、図８Ｂに示すフィルタロジックユニットによりより具体的に実行される、図８Ａに示すバイリニアフィルタリング方法を示すフロー図である。
【図９Ａ】実施形態に従って、図７Ａに示すマルチモードフィルタリング方法の部分として実行され得るフレキシブルフィルタリング方法を示すフロー図である。
【図９Ｂ】実施形態に従って、フレキシブルフィルタリングモードに構成されるフィルタロジックユニットのブロック図である。
【図１０Ａ】実施形態に従って、バイリニアフィルタリングモードに構成されるフレキシブルフィルタブロックのブロック図である。
【図１０Ｂ】実施形態に従って、フレキシブルフィルタリングモードに構成される図９Ｂのフレキシブルフィルタブロックのブロック図である。
【図１１】実施形態に従う、例示的なシステムの説明図である。
【図１２】一実施形態に従って配置される、例示的なシステムの説明図である。
【発明を実施するための形態】
【０００８】
１又は複数の実施形態は、添付の図面を参照して説明される。特定の構成及び配置が図示され詳細に議論されるが、これは単に説明目的で行われることが理解されるべきである。関連分野の当業者は、本説明の精神及び範囲から逸脱することなく、他の構成及び配置が可能であることを認識する。関連分野の当業者には、本願明細書に記載される技術及び／又は配置が本願明細書に詳細に記載される以外の種々の他のシステム及びアプリケーション内で用いられ得ることが明らかである。
【０００９】
以下の詳細な説明では、その一部を形成し例示的な実施形態を説明する添付の図面を参照する。さらに、他の実施形態が利用されてもよく、構造的及び／又は論理的変化が請求される主題から逸脱することなく行われてもよいことが理解されるべきである。したがって、以下の詳細な説明は限定的意味と考えられるのではなく、請求される主題の範囲は特許請求の範囲及びその等価物によって定められる。
【００１０】
以下の説明では、多くの詳細事項が説明されるが、当業者には、本発明の実施がこれらの特定の詳細事項を有しないで行われ得ることが明らかである。本発明の実装を不明確にすることを回避するために、よく知られた方法及び装置は、詳細にではなく、ブロック図形式で示される。本願明細書を通じて「一実施形態」又は「ある実施形態」等のような表現は、実施形態と関連して記載された特定の特徴、構造、機能又は特性が実装の少なくとも１つの実施形態に含まれることを意味する。したがって、明細書を通じて種々の場所に現れる「一実施形態では」又は「ある実施形態では」という表現は、必ずしも全て同じ実装の実施形態を参照していない。さらに、一実施形態の文脈で記載される特定の特徴、構造、機能、又は特性は、１又は複数の実施形態において任意の適切な方法で結合されても良い。例えば、２つの実施形態に関連する特定の特徴、構造、機能又は特性が相互に排他的でない限り、第１の実施形態は第２の実施形態と結合されても良い。
【００１１】
実装及び添付の特許請求の範囲の記載で用いられるように、単数形式（「a」、「an」、「the」）は、文脈が特に明示しない限り、複数形式も含むことを意図する。また、本願明細書で用いられる用語「及び／又は」は、関連する列挙された項目のうちの１又は複数の任意の及び全ての可能な組合せを参照し包含することが理解されるだろう。
【００１２】
本説明を通じて及び請求項中で用いられるように、用語「少なくとも１つの」又は「１又は複数の」により結合される項目のリストは、列挙された項目の任意の組合せを意味し得る。例えば、表現「Ａ、Ｂ又はＣのうちの少なくとも１つ」は、Ａ；Ｂ；Ｃ；Ａ及びＢ；Ａ及びＣ；Ｂ及びＣ；又はＡ、Ｂ及びＣ；を意味し得る。
【００１３】
用語「結合される」及び「接続される」は、それらの派生語と共に、コンポーネント間の機能的又は構造的関係を記述するために本願明細書で用いられ得る。これらの用語は、互いに同義語を意味しないことが理解されるべきである。むしろ、特定の実施形態では、「接続される」は２以上の要素が物理的、光学的又は電気的に互いに直接的に接触していることを示すために用いられうる。「結合される」は、２以上の要素が（それらの間の他の仲介要素により）直接又は間接的に物理的、光学的又は電気的に互いに接触していること、及び／又は２以上の要素が協働し若しくは（例えば、因果関係におけるように）互いに相互作用することを示すために用いられうる。
【００１４】
本願明細書に提供される詳細な説明の一部は、コンピュータメモリ内のデータビットに対する動作のアルゴリズム及び象徴的表現の観点で提示される。特に断りのない限り、以下の議論から明らかなように、以下の説明を通じて、「計算」、「算出」、「決定」、「推定」、「格納」、「収集」、「表示」、「受信」、「統合」、「生成」、「更新」等の語を用いた議論は、コンピュータシステム又は同様の電子コンピューティング装置の動作及び処理を表す。コンピュータシステム又は同様の電子コンピューティング装置は、レジスタを含むコンピュータシステムの回路及びメモリ内にある物理（電子）量として表されたデータを操作し、コンピュータシステムのメモリ若しくはレジスタ又は情報記憶、送信又は表示装置等の中の物理量として同様に表される他のデータに変換する。
【００１５】
以下の説明は例えばシステムオンチップ（ＳｏＣ）アーキテクチャのようなアーキテクチャ又はグラフィックプロセッサで明示され得る種々の実装を説明するが、本願明細書に記載の技術及び／又は配置の実装は、特定のアーキテクチャ及び／又はコンピューティングシステムに限定されず、同様の目的で任意のアーキテクチャ及び／又はコンピューティングシステムにより実装されても良い。例えば、例えば複数の集積回路（ＩＣ）チップ及び／又はパッケージを用いる種々のアーキテクチャ、及び／又はセットトップボックス、スマートフォン等のような種々のコンピューティング装置及び／又は消費者電子機器（ＣＥ）装置は、本願明細書に記載の技術及び／又は配置を実装しても良い。さらに、以下の説明は、システムコンポーネントの論理実装、種類、及び相互関係、論理区分／統合の選択、等のような多くの特定の詳細事項を説明するが、請求される主題は、このような特定の詳細事項を有しないで実施できる。さらに、例えば制御構造及び完全なソフトウェア命令シーケンスのような特定の素材は、本願明細書に開示の素材を不明確にすることを回避するために詳細に示されない。
【００１６】
本願明細書に開示の素材の特定部分は、ハードウェアで、例えばグラフィックプロセッサ内の論理回路として実装される。特定の他の部分は、ハードウェア、ファームウェア、ソフトウェア又はそれらの如何なる組み合わせで実装されてもよい。本願明細書に開示の素材の少なくとも幾つかは、１又は複数のプロセッサにより読み取られ実行されてもよい機械読み取り可能な有形媒体に格納された命令として実施されてもよい。機械読み取り可能な有形媒体は、機械（例えば、コンピューティング装置）により読み取り可能な形式で情報を格納又は送信する任意の媒体及び／又はメカニズムも包含しうる。例えば、機械読み取り可能媒体は、ＲＯＭ（read  only  memory）、ＲＡＭ（random  access  memory）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置、電気的、光学的、音響的又は他の同様の非一時的有形媒体を包含しうる。
【００１７】
システム、装置、アーティクル、及び方法は、２Ｄ及び３Ｄビジュアルコンピューティングアプリケーションのための高性能且つ低電力を提供するフレキシブルフィルタリング動作の可能なマルチモードテクスチャサンプラを含み、以下に記載される。図１Ｄは、個々の電力要件及びプログラム可能性に関して、グラフィックプロセッサにより用いられ得る特定のサンプラアーキテクチャを比較するグラフである。原点付近には、例えばバイリニアテクスチャフィルタを提供する固定機能サンプラフィルタがある。高度に最適化されたフィルタ機能ロジックは、最低電力及び高効率のために非常に経済的に、このようなフィルタを実装し得る。しかしながら、このフィルタのプログラム可能性の欠如は、任意の特定用途向けフィルタに適応できない。他方の極端には、任意の特定用途向けフィルタリング動作に適応できるが最も大きな電力を消費する完全にプログラム可能なＩＳＡフィルタを実装するシェーダーがある。シェーダーから電力及びプログラム可能性が一段階下がると、サンプラ内にＩＳＡフィルタを有するサンプラがある。このようなアーキテクチャでは、サンプラは、テクスチャ動作の標準的な変換及び特定機能に加えて、シェーダーコア／ＥＵ内に現在見られる機能の一部（例えば、プログラム可能レジスタベーススカラ命令セット、整数、ロジック、フロー制御、及びメモリアクセス）を有する。サンプラ内のＩＳＡフィルタは、シェーダーコアフィルタ実装と同様の電力を要求することが予想でき、より高度なサンプラ複雑性はチップ面積の有意な増加を要求する。更なる比較として、図１Ｅに、本願明細書の実施形態によるフレキシブルフィルタを有する例示的なマルチモード（ＭＭ）サンプラの電力及びプログラム可能性属性を示す。本願明細書に記載のＭＭサンプラの実施形態は、フィルタプログラム可能性における有意な増大を提供し、実際にほぼ間違いなく、サンプラが、ＩＳＡフィルタに現在実装されている任意のテクスチャフィルタリングの大部分を実行することを可能にする。しかしながら、たとえあったとしても、固定機能サンプラに対する電力の増大は僅かである。
【００１８】
シェーダーベースフィルタに対して、本願明細書に記載のマルチモードテクスチャサンプラの実施形態は、例えば図１Ｅのグラフィックプロセッサアーキテクチャ１０７内に示すような、よりバランスのとれた異種コンピューティングを更に適用しても良い。例示的なアーキテクチャ１０７では、ＥＵ１１０は、ベクトル計算１６０、より高レベルなレンダリングアルゴリズム、及びメモリ書き込み等を実行する。テクスチャマッピングが必要なとき、テクスチャアドレス（ｕ，ｖ）は、マルチモード（ＭＭ）テクスチャサンプラ１２１へ伝達される。所与のテクスチャアドレスについて、ＭＭテクスチャサンプラ１２１は、種々のフットプリント１４１のテクスチャデータ１１５をフェッチし、ＭＭフィルタアキュムレータ１３２で処理することによりテクスチャデータ１１５を削減する。ＭＭフィルタアキュムレータ１３２は、種々のフィルタフットプリント１４１に渡る重み付けされた平均に対応する出力値を提供するのに適する。ＭＭテクスチャサンプラ１１５は、ＥＵ１１０に、各ピクセルにおけるサンプリングされたフィルタリングされたピクセルカラー（Ｒ／Ｇ／Ｂ）に対応する削減されたデータを返す。固定機能テクスチャサンプラと同様に、ＭＭテクスチャサンプラ１２１は、種々のフットプリントに適応し、及び固定機能縮小フィルタリングで用いられる場合の多いバイリニア（２ｘ２テクセル）フットプリントより有意に広いフットプリントを許容するよう構成される。ＭＭテクスチャサンプラ１２１は、低電力及びＥＵからサンプラへの通信の削減を要求し得るが、依然として、シェーダーベースフィルタを通じてのみ従来利用可能である照明／シャドウイング効果のような高度な機能を提供する。例示的な実施形態では、柔軟なフットプリントのサポートに加えて、ＭＭテクスチャサンプラ１２１は、ポイント及び／又はリニアサンプリング、及びバイリニア及び／又はトライリニアフィルタモードのような従来の固定機能モードを更にサポートする。
【００１９】
図２は、一実施形態による、マルチモードフレキシブルテクスチャサンプラ１２１を用いるグラフィックプロセッサを含むシステム２０１を更に示す機能ブロック図である。システム２０１は、ＭＭテクスチャサンプラ１２１に通信可能に結合される１又は複数のＥＵ１１０を有する。ＥＵ１１０は、例えば（ｕ，ｖ）空間における入力アドレス又は座標を、ＭＭテクスチャサンプラ１２１に提供する。２次元テクスチャアドレスが本願明細書の記載で用いられるが、本願明細書に記載の技術及びハードウェアは、当業者により更に大きな次元（例えば、３Ｄ）に適用できることに留意する。ＭＭサンプラ１２１は、データ生成器（ＤＧ）２６０として示される論理回路を有する。データ生成器（ＤＧ）２６０は、入力テクスチャアドレスに基づき及び所望のフィルタフットプリントに更に基づき、テクセルサンプリングアドレス（つまり、サブサンプル）を生成する。ＤＧ２６０により生成されるサブサンプルアドレス（ｕ’，ｖ’）は、フットプリントが定められる所定の境界領域内で１又は複数のテクセルサブサンプル位置を識別する。サブサンプリングアドレス（ｕ’，ｖ’）は、連続し、マルチスレッド（ＭＴ）ユニット２６５に渡される。ＭＴユニット２６５は、キャッシュ１３０にデータをフェッチし、キャッシュＦＩＦＯ（例えば、局所性に基づくフェッチ、遅延時間、キャッシュミス、等）に関連するオーバヘッドを取り扱う。本願明細書の実施形態では、ＭＴユニット２６５は、各サブサンプルアドレスに関連するテクセルデータＴ［ｕ’，ｖ’］２１５をキャッシュする。しかしながら、従来の固定機能サンプラは、例えばバイリニア補間アルゴリズムを通じて入力テクスチャアドレスのフィルタ係数を動的に計算するために呼び出されても良く、ＭＴユニット２６５は、各（ｕ’，ｖ’）サブサンプルアドレスに関連する所定のフィルタ（重み付け）係数２７５（つまり、Ｃ［ｕ’，ｖ’］）を更にキャッシュする。
【００２０】
フィルタ係数２７５は、ＭＭテクスチャサンプラ１２１への追加入力である。フィルタ係数２７５は、メモリ１０３に格納され、ＡＰＩ２８０を通じて例えば１又は複数の係数テーブル２７０として入力されても良い。ＡＰＩ２８０は、例えば、限定ではないがDirectX及びOpenGLのような既存のグラフィックプロセッサＡＰＩの拡張セットとして実装されても良い。ＡＰＩ２８０は、係数テーブル２７０をアプリケーション層に露出させ、所与のフィルタに適する所定値をテーブルに投入させ得る。一例として、アプリケーション層ルーチンは、係数テーブル２７０に格納される係数値を自動的に生成するために、ガウスブラー関数が実行され得るかを評価する。係数テーブル２７０に値を格納するための固定メモリ割り当ては、フットプリントが定められる所定の境界領域のサイズに、及びＭＭテクスチャサンプラのモードにも基づき、行われても良い。
【００２１】
実施形態では、ＭＭテクスチャサンプラ１２１は、複数のプログラム可能フィルタフットプリントのうちの任意のものについて、分離フィルタモード及び非分離フィルタモードの両方で選択的に動作可能である。例示的な実施形態では、非分離フィルタモードは、次のフィルタ関数を実装する。
【００２２】
【数１】
0005889990.tif 000002
ここで、Ｃｘｙは所与のサンプリングされたアドレス（ｕ’，ｖ’）のフィルタ係数であり、Ｔｘｙは所与のサンプリングされたアドレス（ｕ’，ｖ’）のテクセル（カラー）値である。重み付けは、通常、全ての所望のフットプリントを実装するために十分な特定の固定サイズになるよう予め定められる全境界領域ｍに渡り実行される。例示的な一実施形態では、ｍ＝７であり、最大８ｘ８テクセルフットプリントを定めることが可能である。このような実施形態では、係数テーブル２７０は、境界領域ｍ内の各テクセルについて１つの係数を含む。ＭＭテクスチャサンプラ１２１は、分離フィルタモードで更に動作可能である。例示的な一実施形態では、分離フィルタモードは、次のフィルタ関数を実装する。
【００２３】
【数２】
0005889990.tif 000003
ここで、所定の境界領域内で定められる所与のフィルタ幅ｗ及び高さｈについて、ＨＡ，ｘは水平フィルタ係数であり、ＶＢ，ｘは垂直フィルタ係数である。非分離係数Ｃｘｙでは、分離係数ＨＡ，ｘ及びＶＢ，ｘの値は、キャッシュフェッチのためのソースデータとして係数テーブル２７０に格納されても良い。分離及び非分離フィルタモードの両方は上述の例示的なフィルタ関数の文脈で以下に更に説明されるが、留意すべきことに、当業者は、本願明細書に記載のアーキテクチャ及び技術を別の非分離及び／又は分離フィルタ関数に適応できる。
【００２４】
実施形態では、ＡＰＩ２８０は、ＭＭテクスチャサンプラ１２１が所与の状態を維持しながら動作するモードを示すフィルタタイプＩＤ２８２を更に露出する。例えば、フィルタタイプＩＤ２８２は、フラグビット等を格納し、非分離又は分離フィルタモードを指定する。更なる実施形態では、ＡＰＩ２８０は、フィルタ形状ＩＤ２８５を更に露出しても良い。ＭＭサンプラ１２１、より具体的にはＤＧ２６０は、貢献するサブサンプルアドレス（つまり、非ゼロフィルタ係数を有する所定の境界領域内のアドレス）を効率的に生成するために、フィルタ形状ＩＤ２８５を用いても良い。分離フィルタモードの一実施形態では、フィルタ形状ＩＤ２８５は、分離フィルタの高さｈ及び幅ｗを格納する。非分離フィルタモードの一実施形態では、フィルタ形状ＩＤ２８５は、非ゼロである境界領域内のフィルタ係数を指定するビットマスクを格納する。このようなビットマスクは、例えば、係数テーブル２７０内のエントリに基づき、グラフィックプロセッサドライバにより生成されても良い。
【００２５】
図２に更に示すように、ＭＭテクスチャサンプラ１２１は、ＭＭフィルタロジック（ＦＬ）ユニット１３２を有する。ＦＬユニット１３２は、フィルタリングを実行し、フィルタモード、フィルタフットプリント、テクセル値、及びフィルタ係数値に基づき各ピクセルにおけるカラー値（例えば、Ｒ／Ｂ／Ｇ、Ｒ／Ｂ／Ｇ／Ａ、等）を返す。次に、この返された値は、出力パイプライン１９８内で用いられ、ディスプレイ１９９に出力される（又は隠されたレイヤの計算で用いられる、等）。ＭＭ  ＦＬ１３２は、分離又は非分離フィルタモードのいずれかで提供される任意のフレキシブルフットプリントに渡りフィルタリングを実行するために論理回路を有するフレキシブルフィルタブロック（ＦＦＢ）２９０を有する。ＭＭ  ＦＬ１３２は、所与のフレキシブルフィルタフットプリントに渡り加重平均を生成するために複数のフレキシブルフィルタブロック出力を累算するアキュムレータ２９８を更に有する。ＭＭ  ＦＬ１３２は、フィルタ値をＥＵ１１０に返す前に、ＦＦＢ２９０又はアキュムレータ２９８からの出力を正規化するために除算器（図示しない）を更に有しても良い。このように、ＭＭ  ＦＬ１３２は、例えばフィルタタイプＩＤ２８２及び／又はフィルタ形状ＩＤ２６５により定められるようなフットプリント内の全テクセルのカラーに対して重み付けされた累算を実行するよう構成可能である。更なる実施形態では、本願明細書のどこかに記載のように、ＭＭ  ＦＬ１３２は、ＭＭ  ＦＬ１３２のよりフレキシブルなアーキテクチャにより妨げられないレートで従来のバイリニアフィルタリングも実行するために十分に汎用化される。
【００２６】
テクスチャデータ処理技術及び例示的なシステム２０１に導入されるコンポーネントのマイクロアーキテクチャの更なる詳細な説明は、以下に議論される。
【００２７】
＜フレキシブルフィルタフットプリント＞
図３は、実施形態に従って、マルチモードフレキシブルテクスチャフィルタリング方法が図２に示すようなアーキテクチャを有するシステム２０１によりどのように実行され得るかを示す。図３の点線は、動作の実行を担う例示的なシステム２０１の特定の動作及び特定のコンポーネント間の関連を示すために、システム２０１の種々のコンポーネントの例示的な機能的区分の境界を示す。図示のように、ＭＭテクスチャサンプラ１２１の非分離又は分離フィルタリングモード２８３、２８４は、フィルタタイプＩＤ２８２によりＡＰＩ２８０を通じて指定される。フィルタ形状は、ゼロ値係数２８６のマスキングを通じて、又は高さ及び幅フィルタベクトル２８７を指定するフィルタ形状ＩＤ２８５で、更にパラメータ化されても良い。ＥＵ１１０からの各ピクセルにおけるシーディング入力テクスチャアドレス１１１を受信すると、以下に詳述するように、動作４２０で、各ピクセルにおける複数の（サブ）サンプルが生成され、シーケンス化される。動作４３０で、ＭＭテクスチャサンプラ１２１は、例えば格納された係数テーブル２７０から、生成された各サブサンプルの所定のフィルタ係数をキャッシュ１３０にフェッチする。動作４４０で、ＭＭテクスチャサンプラ１２１は、例えば格納されたテクスチャデータ１１５から、生成された各サブサンプルの所定のテクセル値２１５をキャッシュ１３０にフェッチする。動作４６５で、ＭＭテクスチャサンプラ１２１は、例えば上述のフィルタ関数のうちの１つを実施することにより、全フットプリントに渡りカラー値の加重平均を決定し、ＥＵ１１０にフィルタリングされサンプリングされたテクスチャ４７０を返す。
【００２８】
図４の環境で、例示的なマルチモードテクスチャフィルタリング方法４０１の更なる説明が記載される。例示的な実施形態によると、方法４０１は、図２に示すシステム２０１により実行される。他の実施形態によると、任意の代替ハードウェアアーキテクチャを有するテクスチャサンプラは、方法４０１を実行する。例えば、しかしながら、分離及び非分離フィルタモードの一方のみを有するテクスチャサンプラは、方法４０１の特定の特徴を実装しても良い。更に他の実施形態によると、論理回路及びアプリケーションソフトウェアの代替配置を有するグラフィックプロセッサは、方法４０１を実行しても良い。例えば、テクスチャサンプラは、図４の環境で説明した機能の一部のみをハードウェアで実装しても良く、他の機能はソフトウェアで実装される。このように、一実施形態では、方法４０１はシステム２０１により実行されるが、システム２０１は、方法４０１を実行する必要はなく、システム２０１は方法４０１の全ての動作を実行する必要がない。
【００２９】
方法４０１は、動作４０５で開始し、テクスチャサンプラは、フィルタタイプ識別子にアクセスして、非分離フィルタ状態又は分離フィルタ状態を入力すべきかを決定する。動作４１０で、非分離又は分離フィルタの一方について、テクスチャサンプラは、フィルタ形状識別子にアクセスして、フィルタフットプリントパラメータを決定する。フットプリントは、フィルタリングされたテクスチャ値に貢献する全てのテクセルを有する。図５Ａは、実施形態に従って、例示的な８ｘ８境界領域内で「プログラムされ」得る種々の例示的なフットプリントを示す。図５Ａの大きな点は、非ゼロフィルタ係数に関連し、したがって特定のフィルタリングされた値に貢献する出力テクセルサンプルを表す。一方、小さな点は、ゼロ値係数に関連する非貢献テクセルである。
【００３０】
留意すべきことに、本願明細書の実施形態は、膨大な数の任意のフットプリントの指定を可能にするので、図５Ａに示す８個の例は、排他的な例を示すものではなく、代わりに、単に多くの種類の許容可能なフィルタ形状及びサイズを示すものである。
【００３１】
例えば、フィルタフットプリント５２０−１は、従来のバイリニア補間フィルタフットプリントと同じサイズを有し、一方で、フットプリント５２０−２はガウスフィルタに有用である。フットプリント５２０−３、５２０−４及び５２０−７は、全て例示的な異方性フィルタ形状である。フットプリント５２０−５は双三次フィルタに有用であり、フットプリント５２０−８は最大８ｘ８テクセルフィルタを示す。
【００３２】
例示的な実施形態では、複数のフィルタフットプリントのうちの任意のものは、所定の境界領域内で定められても良い。特定のフットプリントは、必要に応じて、所与のサンプラ状態に関連付けられ、各サンプラ状態変化に伴いフィルタフットプリントを変化させても良い。したがって、所与のテクスチャサンプラについて可能な異なるフィルタフットプリントの数は、許容されるフィルタ状態数と共に増減可能である。図５Ｂは、実施形態に従って、それぞれマルチモードフレキシブルテクスチャサンプラの所与の状態に関連付けられ得る複数のフットプリント５１２を示す。各フットプリント５１２について、８ｘ８境界領域内に固定数のテクセル５１１がある（例えば、５１０−１、５１０−２、５１０−Ｎ）。しかしながら、この次元は実装の詳細によって変化しても良い。説明的な一実施形態では、異方性フィルタに適する第１のフィルタフットプリントはあるフィルタ状態において適用され、一方で、ガウスフィルタに適する別のフィルタフットプリントは別のフィルタ状態において適用される。
【００３３】
図４に戻ると、動作４１５で、例えばシェーダーコアからのテクスチャアドレスの形式で、テクスチャ要求を受信すると、動作４２０で、テクスチャサンプラは、フィルタフットプリントに基づき、テクセルサブサンプルアドレス（ｕ’，ｖ’）のシーケンスを生成する。フィルタフットプリントは、入力テクスチャアドレスに対するフットプリントに関連するサンプリング位置を参照することにより、入力テクスチャアドレス（ｕ，ｖ）に適用される。例示的な実施形態では、境界領域（例えば、図５Ｂの５１０−１）は、次にアドレス（ｕ’，ｖ’）を参照する出力サンプリング位置を有する入力テクスチャアドレス（ｕ，ｖ）を中心とする。実施形態では、サブサンプルアドレス（ｕ’，ｖ’）は、少なくとも１つの貢献するテクセルを含む近隣テクセルのグループに関連する所定数のサンプルの各々について生成される。近隣テクセルのこのグループは、任意の所与の入力アドレス及び任意の所与のフットプリントからの出力サンプルの生成のための最小粒度を表す。一実施形態では、この最小粒度は、テクセルクワッド、又は２ｘ２の近隣テクセルである。図５Ｃは、２ｘ２のサンプリングアドレスにより表されるテクセルＴ０、Ｔ１、Ｔ２、及びＴ３を含む例示的なテクセルクワッド５１５を示す。本願明細書の実施形態は、テクセルクワッドを極小アドレス単位として利用する。これは、相当量のサンプラ論理回路がピクセル局所性を効率的に利用するよう設計されるので、多くの点で有利である。例えば、２ｘ２アドレスシーケンスに関連する値は、メモリから単一キャッシュに効率的にフェッチできる。したがって、図５Ｂに示すようにフットプリントが１つのテクセルのみを含む場合でも、４つのサブサンプルアドレス（ｕ’，ｖ’）のシーケンスが生成される。例えば、フットプリント５２０により指定される１つの貢献するテクセルを含むテクセルクワッド５１５では、所与の入力テクスチャアドレス（ｕ，ｖ）に対して、テクセルＴ０、Ｔ１、Ｔ２、及びＴ３の各々について１つのサブサンプルアドレスが生成される。
【００３４】
図５Ａの破線のボックスは、図示のフットプリントの各々について例示的なテクセルクワッドを更に示す。例えば、フットプリント５２０−２は、結果として４つのテクセルクワッド：５１５−１、５１５−２、５１５−３、及び５１５−４の生成をもたらす。各クワッド５１５−１乃至５１５−４について、４個のサブサンプルアドレスが生成され、所与の入力テクスチャアドレス（ｕ，ｖ）に対して合計で１６個のサブサンプルである。同様に、フットプリント５２０−３は、結果として、３個のテクセルクワッドに対応する１２個のサブサンプルアドレス（ｕ’，ｖ’）の生成をもたらす。サブサンプルアドレスの生成は、単一又は複数のクロックサイクルに渡り継続しても良い。更なる実施形態では、テクスチャサンプラ内の（例えば、データ生成器の中の）論理回路は、内部で、１又は複数のアルゴリズムに従うサブサンプルアドレスを連続させて、所与のフットプリントについて生成されたテクセルクワッドの数を最小化し、及び／又はサンプリング位置の一貫性を最大化する、等する。更なる有利な実施形態では、境界領域（例えば、図５Ｂの５１０−１、５１０−２、５１０−Ｎ）は、最小粒度の複数のマルチテクセルサンプリンググループをも含むよう大きさを定められる。例えば、図５Ａに示すように、８ｘ８テクセル境界領域では、フットプリント５２０−８は境界領域を満たし、各ピクセルにおける入力テクスチャアドレス（ｕ，ｖ）に対して、６４個の出力サブサンプルアドレス（ｕ’，ｖ’）に対応する１６個のテクセルクワッドのシーケンスが生成される。
【００３５】
留意すべきことに、図５Ａに示すいずれのフットプリントも、分離又は非分離モードのテクスチャサンプルにおいて実装されても良い。分離フィルタモードでは、フットプリントは、１Ｄ空間内の２つのフットプリントの積として定められる。したがって、フィルタ形状識別子は、例えば、第１の１Ｄフットプリントに関連する１Ｄ幅ベクトル、及び第２の１Ｄフットプリントに関連する１Ｄ高さベクトルを示しても良い。次に、テクスチャサンプラは、第１のプログラム可能な数のテクセル（例えば、プログラム可能な幅ｗ）を有する第１の１Ｄフットプリント及び第２のプログラム可能な数のテクセル（例えば、プログラム可能な高さｈ）を有する第２の１Ｄフットプリントにより指定される少なくとも１つのテクセルを含む各テクセルクワッドについて４個のサブサンプルアドレスを生成する。入力テクスチャアドレス（ｕ，ｖ）を参照した所定の境界領域では、分離フィルタフットプリントにおいて指定されたサブサンプリング位置は、（ｕ’，ｖ’）としてアドレスされても良い。
【００３６】
境界領域内で各テクセルについて１つの係数Ｃｘｙが存在する非分離フィルタモードでは、非ゼロ係数値を有する少なくとも１つのテクセルを含む各テクセルクワッドについて、４個のサブサンプルアドレスが生成される。このモードでは、フィルタ係数テーブルは、フィルタに貢献する単なるサンプリング位置である非ゼロ係数値でフットプリントを指定するよう機能しても良い。このような実施形態では、全ての係数は、サブサンプルアドレスのシーケンスを生成するために読み出されても良い。更なる実施形態では、サンプリングマスクは、係数テーブルから生成されても良い。一例として、１６ビットは８ｘ８境界領域を指定しても良く、マスクの各ビットは、対応するフィルタの境界領域内の１又は少数のコヒーレントサンプリング位置（例えば、１つの２ｘ２クワッド）を示しても良い。留意すべきことに、ここで、少なくとも１つの貢献するテクセルを含む全てのマルチテクセルグループ化について全てのサブサンプルアドレス（ｕ’，ｖ’）が生成されるので、各サブサンプルアドレスの処理は、シェーダーコアとテクスチャサンプラとの間で通信される各入力テクスチャアドレスに対して、フィルタ論理回路を通じて効率的に進めることができる。
【００３７】
図４に戻り、方法４０１は継続して、フィルタ係数をキャッシュにフェッチする。実施形態では、係数値は、フィルタモードに依存する方法で、各テクセルサブサンプルアドレスについてフェッチされる。各サブサンプルアドレス（ｕ’，ｖ’）について少なくとも１つのフィルタ係数が必要だが、非分離フィルタモードでは１つのフィルタ係数Ｃｘｙのみが利用され、分離フィルタモードでは２のフィルタ係数ＨＡ，ｘ、ＶＢ，ｙが用いられる。係数の精度は、実装に伴い変化しても良い。例えば、８ビット又は１６ビットの係数は、分離又は非分離モードでサポートされても良い。例示的な一実施形態では、１つの係数（例えば、Ｃｘｙ）について、複数のレベルの（例えば、８ビットから１６ビットの間で選択可能な）精度がサポートされる。特定の分離モードの実施形態では、２つの係数テーブルからの値（１つはＨＡ，ｘの、１つはＶＢ，ｙの）は、各サブサンプルアドレスについてキャッシュされる。また、特定の非分離フィルタモードの実施形態では、係数は、入力テクスチャアドレスの無視された（例えば、丸め込まれた）任意の小数部分（βｕ，βｖ）を有する入力テクスチャアドレスの非小数部分にのみ基づいてアクセスされる。したがって、非分離フィルタは、テクセルレベルの精度を提供できる。しかしながら、特定の分離フィルタモードの実施形態では、キャッシュされた係数値は、入力テクスチャアドレスの小数部分に基づく（又はその関数である、又はそれに依存する）。このような実施形態は、テクセル未満の精度を提供する。このようなフィルタ係数の小数アドレッシング及び分離フィルタモードの他の特徴の更なる説明は、方法４０１の議論に続き、図６Ａ〜６Ｅとの関連で以下に更に提供される。
【００３８】
続けて図４を参照すると、動作４４０で、各サブサンプルアドレス（ｕ’，ｖ’）に対応するテクセルカラー値は、メモリからテクセルデータキャッシュへフェッチされる。実施形態は本態様に限定されないので、動作４４０で、従来知られている任意の技術が用いられても良い。動作４５０で、サブサンプルリングされたテクスチャデータは、各テクセルサブサンプルアドレスに関連するテクセルカラー値及び係数値に基づきフィルタリングされる。例えば、上述のフィルタ関数の式は、各サブサンプルアドレス（ｕ’，ｖ’）におけるフィルタ係数（例えば、Ｃｘｙ）を各サブサンプルアドレス（ｕ’，ｖ’）における対応するテクセルのカラー値（Ｔｘｙ）と乗算するフィルタ論理回路と共に実装されても良い。次に、結果として生じた各サブサンプルアドレスのカラー値は、アキュムレータに渡される。アキュムレータは、サンプラのフィルタリング論理回路内に実装されても良い。アキュムレータ内で、値は、全てのサブサンプルアドレス（ｕ’，ｖ’）に渡り各カラーチャネル（例えば、Ｒ／Ｂ／Ｇ）内で累算される。次に、動作４７０で、累算されたカラーは、他のピクセルに対応するフィルタリングされたカラーと一緒にパックされても良い、ピクセルのサンプリングされフィルタリングされたカラーとして、（例えば、ＥＵ１１０へ）返される。方法４０１は、通常、非分離及び分離フィルタモードの両方に適用可能であるが、方法４０１の種々の動作（例えば、４２０、４３０、及び４４０）はフィルタモードに依存する。図６Ａ〜６Ｅと関連し、分離フィルタモードに特有の追加態様を詳細に説明する。
【００３９】
図６Ａは、実施形態に従う、動作４３０の一部として実施されても良い分離テクスチャフィルタリング方法６０１を示すフロー図である。方法６０１は、動作６０５で開始し、サンプラが分離フィルタモードであることを示す。動作６１０で、水平及び垂直係数は、入力テクスチャアドレス１１１の小数部分（βｕ及びβｖ）を有する垂直及び水平係数テーブルから選択される。これらの小数アドレス部分は、図６Ｅに、入力テクスチャアドレス１１１に対する例示的なテクセルクワッド５１５について示される。図６Ｂに更に示すように、垂直係数テーブル６７１はβｖに基づきアクセスされ、水平係数テーブル６７２はβｕに基づきアクセスされる。実施形態では、係数テーブル６７１、６７２の各々は、複数の小数アドレス値の各々について係数値セットを有する。特定の小数アドレスによりインデックス付けされる各セットは、フィルタタップに対応する非ゼロ係数値を有する境界領域により許容される最大テクセル数の各々について、係数値を含む。例えば、図６Ｃ及び６Ｄに更に示すように、テーブルは小数アドレス値によりインデックス付けされ、各テーブルエントリは、２〜８個の非ゼロ係数値（フィルタタップＴａｐ０〜Ｔａｐ８）を有する。タップの上側境界は、例示的な実施形態では８ｘ８テクセルである境界領域のサイズに依存する。非ゼロ係数値の数は、その次元の貢献するテクセル数に対応する。例えば、図６Ｅを参照すると、水平テーブル６７１内では、オフセット水平係数を選択するために、エントリがβｕだけトラバースされる。小数アドレスは最も近いインデックス値に丸め込まれても良く、実装に依存して、小数アドレスインデックス付けの種々のレベルの精度がサポートされても良い。例えば、各テーブルは３２、６４、１２８、又は２５６個のエントリを有しても良い、等である。次に、対応するテーブルエントリの水平係数６２１がアクセスされる。図示の例では、８テクセル幅の境界領域に対応するこのような係数は最大８個ある。非ゼロであるこれらの係数値の数は、フットプリント幅ｗ（つまり、貢献する第１のフィルタタップの数）により定められるテクセル値に対応する。垂直テーブル６７２では、適正なオフセット垂直係数を選択するために、エントリはβｖだけトラバースされる。次に、対応するテーブルエントリの水平係数６２２がアクセスされる。図示の例では、８テクセル高の境界領域に対応するこのような係数は８個ある。非ゼロであるこれらの係数値の数は、フットプリント高さｈ（つまり、貢献する第２のフィルタタップの数）により定められるテクセル値に対応する。
【００４０】
方法６０１の説明を続けると、水平及び垂直係数を適正にオフセットするために上述の技術を用いて、係数はメモリから係数キャッシュ内へフェッチされ、動作４２０で生成された最小粒度のテクセルグループのシーケンス化が続く。この最小グループが２ｘ２近隣テクセルを含むテクセルクワッドである例示的な実施形態では、各テクセルクワッドの４個の係数（例えば２個の水平係数６２１及び２個の垂直係数６２２、図６Ｂ）は、有利なことに、メモリから１つのキャッシュラインにフェッチされる。このような係数キャッシュラインの数は、指定された分離フィルタフットプリントについて生成されたテクセルクワッドの数に渡りシーケンス化されても良い（例えば、２個のテクセルクワッドに対して２個のキャッシュライン、１６個のクワッドに対して１６個のキャッシュライン、等）。次に、上述の分離フィルタの式は、動作５２０で、合成（２Ｄ）係数を形成するために一緒に乗算された各サブサンプルアドレスのキャッシュされた垂直及び水平係数と共に実装されても良い。これは、図６Ｂの例示的な２ｘ２テクセルクワッドについて更に説明される。図６Ｂでは、水平係数Ｈ０、Ｈ１は垂直係数Ｖ０、Ｖ１で乗算され、合成係数ＨＶ０、ＨＶ１を得る。水平係数Ｈ２、Ｈ３はそれぞれ垂直係数Ｖ２、Ｖ３で乗算され、合成係数ＨＶ２、ＨＶ３を得る。ここで、方法６０１は方法４０１の動作４５０に戻ることができ、フィルタ係数のキャッシュされたラインは方法６０１から出力される合成係数である。次に、図６Ｂに更に例示されるように、方法４０１の動作４５０及び４６０が続く。合成係数６２３は、（単一のキャッシュラインに同様に格納され得る）サブサンプルアドレスの対応するクワッドのテクセルカラー値Ｔ０、Ｔ１、Ｔ２、及びＴ３で乗算される。次に、結果として生じた重み付けされたテクセルカラー値は、分離フットプリントの間シーケンス化された全てのサブサンプルアドレスに渡り累算され、動作４７０でテクスチャサンプラから出力されるフィルタリングされたカラー値を得る。
【００４１】
＜マルチモードフィルタロジックユニット＞
バイリニアフィルタリングに加えてテクセル値の加重平均のために構成可能なマルチモードフィルタロジックユニットの更なる説明は、図７Ａ〜１０に関連して以下に提供される。このようなマルチモードフィルタロジックユニットは、任意の特定のフィルタフットプリントに渡り加重平均化するために上述の複数のサンプラモードに対応する柔軟性を有し、必要に応じて効率的なバイリニア補間も実行する。明確化のために、構成可能なフィルタアーキテクチャ及びマルチモードフィルタリング方法は、図２に示したＭＭ  ＦＬユニット１３２に関連して説明される。説明されたこれらの特徴のうちの１又は複数は有利なことにＭＭ  ＦＬユニット１３２に組み込まれても良いが、留意すべきことに、これらの特徴のうちの１又は複数は、多数の代替方法でグラフィック処理システムに組み込まれても良い。このように、フィルタロジックユニットの実施形態に見られる１又は複数の特徴は、マルチモードサンプラに関連して上述した１又は複数の特徴を有しないで実装されても良い。例えば、１又は複数のマルチモードフィルタロジックの実施形態は、フレキシブルフットプリントモードを必要としない。それと同時に、フレキシブルフットプリントをサポートする１又は複数のマルチモードサンプラはマルチモードフィルタロジックを必要としない。しかしながら、マルチモードフィルタロジックユニットと共にフレキシブルフットプリントモードをサポートするマルチモードサンプラを組み込む実施形態は、当業者に明らかな相乗効果を有する。
【００４２】
実施形態では、グラフィック処理システムは、マルチモードフィルタリング方法を実装するのに適する構成可能な又は「フレキシブルな」テクスチャフィルタを有する。図７Ａは、一実施形態に従って、マルチモードフィルタリング方法７０１を示すフロー図である。方法７０１は、動作７０５で開始し、フィルタモード信号を受信する。フィルタモード信号は、少なくとも、「バイリニアフィルタ」モードと「フレキシブルフィルタ」モードとの間を区別する。バイリニアフィルタモードでは、動作７１５で、テクセルデータ（例えば、カラー値）は、バイリニアフィルタによりサブテクセル（小数）アドレスを用いて重み付けされ、動作７７０で出力されるフィルタリングされたカラーを得る。フレキシブルフィルタモードでは、動作７２５で、テクセルデータは、サブテクセル（小数）アドレスに依存しても良い又はしなくても良い所定のテクセル重み付け係数に基づき重み付けされる。例えば、上述のような非分離フィルタモードでは、フレキシブルフィルタモードにおいて動作７４５で受信された係数は、小数アドレスとは無関係である。一方で、分離フィルタモードにおいては、係数はサブテクセルに依存する。
【００４３】
動作７０９でモード信号がバイリニアフィルタモードを示すと決定するのに応答して、方法７０１は動作７１５に進み、フィルタロジックは、動作７３５で受信した４個のテクセル値に渡りバイリニア補間（つまり、「bilerp」）を実行する。単一の２ｘ２テクセルクワッドがテクスチャアドレス（例えば、図５Ａのフットプリント５２０−１のクワッド５１５−１と等価である）に基づきサブサンプリングされた例示的な実施形態では、単一のキャッシュラインは、これらの４個の近隣テクセル値を含む。バイリニア補間は、動作７４５で受信された小数テクスチャアドレスβｕ及びβｖを示す係数を用いて実行される。
【００４４】
動作７０９でモード信号がフレキシブルフィルタモードを示すと決定するのに応答して、方法７０１は動作７２５に進み、フィルタロジックは、動作７３５で受信した少なくとも４個のテクセル値に渡り加重平均を生成する。多数の２ｘ２テクセルクワッドが、テクスチャアドレス及びフットプリント（例えば、図５Ａに示したフットプリント５２０−１〜５２０−８のうちの任意のもの）に基づき、（ｕ’，ｖ’）としてサブサンプリングされた例示的な実施形態では、読み出された単一のキャッシュラインは、４個の近隣テクセル値を含んでも良い。１つのテクセルクワッドに渡る加重平均は、４個の所定の重み付け係数を用いて生成される。各係数は、クワッド内の対応するテクセルに関連する重みを示す。動作７７０でフィルタリングされたカラーを得ると、方法７０１は終了する。次に、加重平均カラーは、フィルタフットプリントにマッピングされる複数のテクセルクワッドに渡り更に平均化するためにアキュムレータ（例えば、図２のアキュムレータ２９８）に返され、及び／又は後にディスプレイスクリーンにグラフィカルオブジェクトを出力するためにシェーダーコア（例えば、図２のＥＵ１１０）に返されても良い。
【００４５】
図７Ｂは、実施形態に従って、マルチモードフィルタリング方法７０１を実行するよう構成されるフィルタロジックユニット７３２のブロック図である。有利な一実施形態では、フィルタロジックユニット７３２は、図２に示したフィルタロジックユニット１３２のように利用される。図示のように、フィルタロジックユニット７３２はフィルタモード入力線７０６に結合される。フィルタロジックユニット７３２は、テクセル値入力線７０７Ａ及び係数入力線７０８Ａに更に結合される。これらの入力線は、種々のシステム入力を明確に区別するために別個に示されるが、入力信号線のうちの１又は複数は、これらの種々のデータ信号をフィルタロジックユニット７３２に伝達するために任意の従来の方法で多重化されても良い。
【００４６】
フィルタロジックユニット７３２の論理回路は、フィルタモード信号入力７０６に結合されフィルタモード信号により選択可能な複数のモードで動作する少なくとも１対のフレキシブルフィルタブロック（ＦＦＢ）を更に有する。例示的な一実施形態では、各ＦＦＢは、バイリニア補間の一部を実行し又はテクセルクワッドに渡るフレキシブル加重平均化の一部を同様に実行するよう構成可能である。以下に詳述するように、ＦＦＢの回路は複数のフィルタリング機能のうちの所与の１つの一部のみを担い、各ＦＦＢは、有利なことに、同じ回路を有し、フィルタリングモードに関係なく完全に利用されるスケーラブルなフィルタロジックブロックを表す。このようなマイクロアーキテクチャ設計は、チップ面積を効率的に使用し、電力消費を低減する。例示的なマイクロアーキテクチャでは、フィルタリングは、２つのＦＦＢの間に分配され、１対のＦＦＢにより表される回路は、第１のモードで動作し、所与の入力アドレスに対して読み込まれた４個のテクセルに関連する小数アドレスを示す２個の入力係数に基づき、４個の近隣テクセル値のグループに渡ってバイリニア補間を実行する。同様に、１対のＦＦＢにより表される回路はまた、第２のモードで動作し、それぞれ所与のフィルタフットプリントに対して読み込まれた４個のテクセル値のうちの１つに関連する重みを示す４個の係数に基づき、４個の近隣テクセル値のグループに渡って加重平均を生成する。次に、４個のテクセルに渡る平均化は、例えば図２のアキュムレータ２９８により、フットプリントに渡って更に累算されても良い。
【００４７】
図７Ｂに示す例示的な実施形態では、フィルタロジックユニット７３２は、４個のＦＦＢ２９０、７２０、７６０及び７７０を含む。フィルタモード信号に応答して、ＦＦＢ２９０及びＦＦＢ７６０により表される回路は、第１のモードで動作して、係数入力線７０８Ａから受信した係数を用いて、テクセル値入力線７０７Ａで受信した４個の近隣テクセル値のグループに渡りバイリニア補間を実行する。ＦＦＢ２９０及び７２０により表される回路は、第２のモードで動作して、入力線７０８Ａから受信した係数を用いて、入力線７０７Ａからの４個の近隣テクセル値のグループに渡り、加重平均を生成する。この例示的な実施形態では、ＦＦＢ対はバイリニアフィルタモードにおいて段階分けされ、バイリニア補間は一方のＦＦＢにより処理される水平フェーズ及び他方のＦＦＢにより処理される垂直フェーズにシリアル化される。フレキシブルフィルタモードでは、ＦＦＢ対は段階分けされず、むしろ代わりに、各ＦＦＢは、４個のテクセルのうちの２個に渡り並列して加重平均を生成する。次に、加重平均は累算され、４分の１テクセルクワッドの加重平均を得る。このマイクロアーキテクチャでは、マルチプレクサ７００は、入力線７０８Ａで受信した係数をＦＦＢ２９０及び７２０の各々に分配する。バイリニアフィルタモードでは、係数は、小数アドレスの第１の次元（例えば、βｕ）に関連付けられる。同様にマルチプレクサ７５０は、係数入力線７０８Ｂからの小数アドレスの第２の次元（例えば、βｖ）に関連付けられた係数を分配する。βｖに基づく係数は、段階分けされたバイリニア補間フィルタリングの第２のフェーズで使用するために、ＦＦＢ７６０へ出力される。
【００４８】
実施形態では、セレクタは、２個のフレキシブルフィルタブロックを選択的に段階分けするために、１対のフィルタロジックブロックの間に結合される。セレクタは、上流フィルタブロックからの出力を下流フィルタブロック又は累算のような更なる処理を担う出力段に渡しても良い。図７Ｂに示した例示的な実施形態では、ＦＦＢ２９０からの出力は、セレクタ７３０に渡される。セレクタ７３０は、フィルタモード信号入力７０６に更に結合され、バイリニアフィルタモード信号に応答して、ＦＦＢ２９０からの出力をＦＦＢ７６０の入力に渡す。同様に、ＦＦＢ７２０からの出力はセレクタ７４０に結合され、セレクタ７４０は、セレクタ７３０と同様に、フィルタモード信号入力７０６に更に結合される。バイリニアフィルタモード信号に応答して、セレクタ７４０は、ＦＦＢ７２０からの出力をＦＦＢ７７０の入力に渡す。ＦＦＢ７６０は、出力段７８０に結合され、第１のテクセルクワッドについてマルチプレクサ７５０から受信したβｕ係数に基づく段階分けされたバイリニア補間フィルタリングの第２のフェーズの結果を出力する。同様に、ＦＦＢ７７０は、出力段７８０に、第２のテクセルクワッドについてマルチプレクサ７５０から受信したβｖ係数を有する段階分けされたバイリニア補間フィルタリングの第２のフェーズの結果を出力する。
【００４９】
代替で、フレキシブルフィルタモード信号に応答して、セレクタ７３０、７４０は、それぞれＦＦＢ２９０、７２０からの出力を出力段７８０に渡す。同様に、フレキシブルフィルタモード信号に応答して、ＦＦＢ７６０及び７７０は、テクセル値入力線７０７Ｂを通じて第２のテクセルクワッドのテクセル値を受信する。該テクセル値は、係数信号入力線７０８Ｂから受信した重み付け係数を用いて処理され、出力段７８０に渡される。出力段７８０は、フィルタモード信号入力線７０６に更に結合される。フィルタモード信号に応答して、出力段７８０は、セレクタ７３０及び／又は７４０、及び／又はＦＦＢ７２０及び／又はＦＦＢ７６０及び／又はＦＦＢ７７０から受信した信号を渡し、これらの受信した信号のいずれかを累算し、及び／又はこれらの受信した信号のうちの１又は複数を正規化し、及び／又はこれらの受信した信号のうちの複数の間を補間しても良い。出力段７８０は、出力信号線７９９に更に結合される。出力信号線７９９を介して、フレキシブルフィルタロジックユニット７３２からの結果が、外部宛先へ伝達される。
【００５０】
上述のマルチモードフィルタリング方法及びフレキシブルフィルタロジックユニット７３２のアーキテクチャと共に、方法及びアーキテクチャの態様は、図８Ａ、８Ｂ及び８Ｃのバイリニアフィルタモードと関連して及び図９Ａ、９Ｂのフレキシブルフィルタモードと関連して以下に詳述される。
【００５１】
図８Ａは、実施形態に従って、図７Ａに示すマルチモードフィルタリング方法７０１の部分として実行され得るバイリニアフィルタリング方法８０１を示すフロー図である。方法８０１は、動作８０５で開始し、バイリニアフィルタモード信号を受信する。このような信号は、トライリニアフィルタモードのために更に利用されても良い。トライリニアフィルタモードでは、バイリニアモード動作の後に、異なる詳細レベル（levels  of  detail：ＬＯＤ）に関連する手癖ｒ有漢の追加補間段階が続く。方法８０１では、動作７４５で入力として受信した係数は、所定の小数アドレスに関連するβｕ及びβｖ値である。動作８１５で、係数の補数（１−βｕ及び１−βｖ）が生成される。動作８３５で、第１のリニア補間（例えば、水平方向）は、１対のリニア補間値Ｔ０’、Ｔ１’を生成するために実行される。Ｔ０’、Ｔ１’は、動作７３５でメモリから（例えば、１つのキャッシュラインに）読み込まれたテクスチャアドレスに関連する最も近い近隣テクセルクワッドについて、１つの次元の小数アドレス及び４個のテクセル値（例えば、カラー）Ｔ０、Ｔ１、Ｔ２、Ｔ３から生成される。第１のリニア補間値Ｔ０’は、第１のテクセル対の第１のテクセル値を小数アドレスに対応する第１の係数で乗算することにより、第１のテクセル対について生成される。第１の対のうちの第２のテクセルは、第１の係数の補数を乗算される。第２のリニア補間値Ｔ１’は、第１の係数に第２の対に関連する第３のテクセル値を乗算することにより、第２のテクセル対について生成される。第２の対に関連する第４のテクセル値は、第１の係数の補数を乗算される。次に、これらのスケーリングされた値は加算される。例示的な実施形態では、以下の関数を実施することにより、βｕに基づき２個の対のうちの各々について１つの補間値Ｔ０’、Ｔ１’が生成される。
Ｔ０’＝βｕＴ０＋（１−βｕ）Ｔ１
Ｔ１’＝βｕＴ２＋（１−βｕ）Ｔ３
代替で、補間は、動作８３５で、βｖ及びテクセル値対Ｔ０，Ｔ２及びＴ１，Ｔ３に基づき実行されても良い。次に、方法８０１は動作８４５に進み、第２のリニア補間が実行され、バイリニア補間値Ｔ０”を生成する。上述の例では以下の関数を更に実装する。
Ｔ０”＝βｖＴ０’＋（１−βｖ）Ｔ１’
次に、方法８０１は終了し、フィルタリングされた結果として、バイリニア補間値Ｔ０”の出力を有する。
【００５２】
図８Ｂは、実施形態に従って、バイリニアフィルタリングモードに構成されるフィルタロジックユニット８３２のブロック図である。例示的な実施形態では、バイリニア及び／又はトライリニアフィルタモードを示すフィルタモード信号と関連する状態では、フィルタユニット８３２は図７Ｂのフィルタロジックユニット７３２である。図７Ｂに導入される参照符号は、明確化のため図８Ｂでも保持される。しかしながら、代替の実施形態では、フィルタロジックユニット８３２は、フィルタロジックユニット７３２内に示される全てのコンポーネントを有しなくても良い。
【００５３】
図８Ｂに示す例示的な実施形態では、各フレキシブルフィルタブロック２９０、７２０、７６０、７７０は、４個のテクセル値及び１つの次元の小数アドレスから、１対のリニア補間値を生成する。マルチプレクサ７００は、入力テクスチャアドレス（ｕ，ｖ）を格納する係数メモリに通信可能に結合される。１つのテクスチャアドレスに関連付けられた係数は、読み込まれ、βｕ、０としてＦＦＢ２９０へ出力される。ＦＦＢ２９０は、図２のテクセルキャッシュ２１５のようなテクセルメモリに通信可能に結合され、第１のテクスチャアドレスに関連する最も近い近隣テクセルクワッドのテクセル値Ｔ０，Ｔ１，Ｔ２，Ｔ３を読み込む。ＦＦＢ２９０は、第１のリニア補間（例えば、水平方向）を実行して、１つのリニア補間値Ｔ０’及びＴ１’を生成する。ＦＦＢ７２０は、テクセルメモリに通信可能に結合され、第２のテクスチャアドレスに関連する最も近い近隣テクセルクワッドのテクセル値Ｔ４，Ｔ５，Ｔ６，Ｔ７を読み込む。ＦＦＢ７２０は、別の第１のリニア補間を実行して、例えば上述の式を第２のテクセルクワッドに適用することにより、リニア補間値Ｔ２’、Ｔ３’の別の対を生成する。
【００５４】
ＦＦＢ２９０は、（例えば、図７Ｂに示すセレクタ７３０により）ＦＦＢ７６０に通信可能に結合される。同様に、ＦＦＢ７２０はＦＦＢ７７０に結合される。例示的な実施形態では、ＦＦＢ７６０（ＦＦＢ７７０）により実行される第２のリニア補間は、高及び低ビット部分（例えば、Ｔ０’，ｈｉｇｈ、Ｔ１’，ｈｉｇｈ、及びＴ０’，ｌｏｗ、Ｔ１’，ｌｏｗ、又はＴ２’，ｈｉｇｈ、Ｔ３’，ｈｉｇｈ、及びＴ２’，ｌｏｗ、Ｔ３’，ｌｏｗ）に分割される補間値Ｔ０’及びＴ１’（Ｔ２’、Ｔ３’）に対して実行される。第１のリニア補間フェーズからの補間値の分割は、少なくとも、ＦＦＢ２９０、７２０、７６０、７７０が同じビット幅（例えば８ビット）のロジックを全て利用できる、及びテクセル値入力の数が同じであり、各ＦＦＢ内で同じマイクロアーキテクチャを許容する、という理由で有利である。ＦＦＢ２９０及び７６０内で８ビットロジックが用いられる場合、各テクセル値Ｔ０、Ｔ１、Ｔ２、Ｔ３並びにβｕ，０は８ビット表現を有し、補間値Ｔ０’及びＴ１’は１６ビット表現を有し、Ｔ２’、Ｔ３’も同様である。変換器８４５は、ワイドビットリニア補間値を高ビット部分（Ｔ０’，ｈｉｇｈ、Ｔ１’，ｈｉｇｈ）及び低ビット部分（Ｔ０’，ｌｏｗ、Ｔ１’，ｌｏｗ）に変換し、これらのそれぞれは例えば８ビット表現である。変換器８４５の出力は、ＦＦＢ７６０の入力に通信可能に結合される。このアーキテクチャは、変換器８４６及びＦＦＢ７７０でも複製される。ＦＦＢ７６０及び７７０は、マルチプレクサ７５０に通信可能に結合される。マルチプレクサ７５０は、係数メモリに更に通信可能に結合される。係数メモリから、テクスチャアドレスに関連する第２の係数が読み込まれ、βｖ，０としてＦＦＢ７６０に出力される。同様に、係数βｖ，１はＦＦＢ７７０に出力される。次に、ＦＦＢ７６０及び７７０は、第２のリニア補間（例えば、垂直リニア補間）を実行して、それぞれバイリニア補間値Ｔ０”及びＴ１”を生成する。出力段７８０は、バイリニア補間値Ｔ０”及びＴ１”をバイリニアフィルタリング結果として出力し、又は、トライリニアモード信号に応答して、例えば２つのＬＯＤ間のバイリニア補間値をスケーリングする任意の従来技術を用いて、係数βｍに基づきＴ０”及びＴ１”の間の更なる補間を実行しても良い。
【００５５】
図８Ｃは、フィルタロジックユニット８３２により実行される第２のリニア補間方法８０２を更に示す。ＦＦＢ段７２０、７７０の第２の対は、この同じ方法を実行しても良い。方法８０２は、動作８３９で開始し、第１のＦＦＢからＴ０’及びＴ１’を受信する。次に、動作８４１で、受信したワイドビットリニア補間値は、高及び低ビット部分に変換される。動作８４３で、バイリニア補間値Ｔ０”は、（βｖ，０及び低ビット部分Ｔ０’，ｌｏｗ、Ｔ１’，ｌｏｗに基づき生成された）第３のリニア補間値と、（βｖ，０及び高ビット部分Ｔ０’，ｈｉｇｈ、Ｔ１’，ｈｉｇｈに基づき生成された）第４のリニア補間値とを結集することにより、フルビット幅（例えば、１６ビット）で生成される。例えば上述の第２のリニア補間の式を拡張すると、動作８４３で、Ｔ０”は以下の関数を実装することにより生成されても良い。
Ｔ０”＝βｖ，０Ｔ０’，ｌｏｗ＋（１−βｖ，０）Ｔ１’，ｌｏｗ＋（βｖ，０Ｔ０’，ｈｉｇｈ＋（１−βｖ，０）Ｔ１’，ｈｉｇｈ）＊２５６
ここで、マルチプレクサ２５６は、高ビットを、８個の位置だけ左にシフトする（キャリービットが用いられても良い、等）。次に、方法８０２は、動作８７１で終了し、バイリニア補間値Ｔ０”を出力する。
【００５６】
図９Ａは、実施形態に従って、図７Ａに示すマルチモードフィルタリング方法の部分として実行され得るフレキシブルフィルタリング方法を示すフロー図である。方法９０１は、動作９０５で開始し、バイリニアフィルタモード信号を受信する。方法９０１では、動作７４５で入力として受信した係数は、それぞれ、動作７３５で受信した４個のテクセル値Ｔ０、Ｔ１、Ｔ２、Ｔ３のうちの１つに関連する重みを示す。動作９３５で、例えば次式により、第２の係数によりスケーリングされる第２のテクセル値に加算される加重値を生成するために、第１のテクセル値は第１の係数によりスケーリングされる。
Ｔ０’＝ｗ０Ｔ０＋ｗ２Ｔ２
同様に、第３及び第４のテクセル値は、次式に従って重み付けされる。
Ｔ１’＝ｗ１Ｔ１＋ｗ３Ｔ３
次に、動作９４５で、これらの重み付けされたテクセル対は、累算され（加算され）、１つのテクセルクワッドについて１つの加重平均を得る。更なる実施形態では、累算値は、正規化因子により除算されても良い。次に、方法９０１は動作９７２で終了し、例えば図２のアキュムレータ２９８に、フレキシブル加重平均を出力する。
【００５７】
図９Ｂは、実施形態に従って、フレキシブルフィルタリングモードに構成されるフィルタロジックユニットのブロック図である。例示的な実施形態では、バイリニアフィルタモードを示すフィルタモード信号と関連する状態では、フィルタユニット９３２は図７Ｂのフィルタロジックユニット７３２である。図７Ｂに導入される参照符号は、明確化のため図９Ｂでも保持される。しかしながら、代替の実施形態では、フィルタロジックユニット９３２は、フィルタロジックユニット７３２内に存在する全てのコンポーネントを有しなくても良い。
【００５８】
図９Ｂに示す例示的な実施形態では、各フレキシブルフィルタブロック２９０、７２０、７６０及び７７０は、第１の係数によりスケーリングされた第１のテクセル値及び第２の係数によりスケーリングされた第２のテクセル値により、第１及び第２のテクセル値の和を生成する。マルチプレクサ７００は、係数キャッシュのような係数メモリに通信可能に結合される。係数メモリからは、１つのテクスチャアドレスに関連付けられた４個の係数ｗ０、ｗ１、ｗ２、ｗ３が読み込まれ、ｗ０、ｗ２はＦＦＢ２９０に出力され、ｗ１、ｗ３はＦＦＢ７２０に出力される。ＦＦＢ２９０は、図２のテクセルキャッシュ２１５のようなテクセルメモリに通信可能に結合され、第１のテクスチャアドレスに関連する最も近い近隣テクセルクワッドのテクセル値Ｔ０，Ｔ２を受信する。ＦＦＢ７２０は、同様に結合され、第１のテクスチャアドレスに対してテクセル値Ｔ１，Ｔ３を受信する。上述のフレキシブル重み付け関数を実施して、ＦＦＢ２９０は、第１の係数ｗ０によりスケーリングされた第１のテクセル値Ｔ０と第２の係数ｗ２によりスケーリングされた第２のテクセル値Ｔ２との和として、Ｔ０’を生成する。同様に、ＦＦＢ７２０は、第１の係数ｗ１によりスケーリングされた第１のテクセル値Ｔ１と第２の係数ｗ３によりスケーリングされた第２のテクセル値Ｔ３との和として、Ｔ１’を生成する。ＦＦＢ２９０及び７２０は、出力段７８０に通信可能に結合される。次に、出力段７８０は、アキュムレータとして動作して和、Ｔ０’及びＴ１’を加算する。加算した結果は、１つのテクセルクワッドの加重和としてフィルタロジック９３２から１又は複数の出力信号線に出力される。同様に、ＦＦＢ７６０及び７７０は、別のテクセルクワッドの加重和Ｔ２’及びＴ３’を出力しても良い。これらは、出力段７８０で、Ｔ０’及びＴ１’の和と更に累算されても良い。
【００５９】
上述の複数のフレキシブルフィルタブロックのマルチモード動作と共に、１つのフレキシブルフィルタブロックのマイクロアーキテクチャのより詳細な説明は、図１０Ａ〜１０Ｂと関連して以下に記載される。図１０Ａは、実施形態に従って、バイリニアフィルタリングモードに構成されるフィルタロジックユニット内のフレキシブルフィルタブロックのブロック図である。図１０Ｂは、実施形態に従って、フレキシブルフィルタリングモードに構成される図１０Ａのフレキシブルフィルタブロックのブロック図である。
【００６０】
図１０Ａを先ず参照すると、フレキシブルフィルタブロック（ＦＦＢ）１００１は、図７Ｂ、８Ｂ又は９Ｂに示したフィルタロジックユニットのいずれかの中で示した各ＦＦＢにより用いられる、一実施形態における例示的なマイクロアーキテクチャを示す。しかしながら、他の実施形態では、フレキシブルフィルタブロック１００１は、代替設計のフィルタロジックユニットに組み込まれても良い。ＦＦＢ１００１は、バイリニア（トライリニア）フィルタモードを示すフィルタモード信号に関連する状態にある回路を示す。ＦＦＢ１００１は、所定の小数アドレス（例えば、βｕ又はβｖ）又は所定のテクセル重み付け係数（例えば、ｗ０又はｗ１）に関連する係数を受信するために係数入力１００５を有する。バイリニアフィルタモードでは、この係数は例えばβｕである。ＦＦＢ１００１は、それぞれテクセルカラー値を受信するために、２個のテクセル値入力１０１０Ａを更に有する。第１の乗算器１０１５は、係数入力１００５に結合される第１の入力と、テクセル値入力１０１０Ａに結合される第２の入力と、を有する。第２の乗算器１０２０は、インバータ１０２５と通じて係数入力１００５に結合される第１の入力と、第２のテクセル値入力１０１０Ｂに結合される第２の入力と、を有する。加算器１０３０は、第１の乗算器１０１５の出力及び第２の乗算器１０２０の出力に結合される。乗算器１０２０と加算器１０３０との間の結合は、フィルタモード信号に応答するスイッチ１０４０を通じる。バイリニアモードでは、スイッチ１０４０は、βｕ又はβｖの補数によりスケーリングされたテクセル値（例えばＴ１）を通過させるために閉じられる。このテクセル値は、第１の補間値（例えばＴ０’）を生成するために、別のテクセル値（例えばＴ０）がβｕ又はβｖによりスケーリングされた結果に加算される。このロジックは、第２の補間値（例えばＴ１’）を生成するために、入力１００６、１０１１Ａ及び１０１１Ｂ、乗算器１０１６、１０２１、インバータ１０２６、加算器１０３１並びにスイッチ１０４１により、フィルタブロック１００１内で複製される。これにより、バイリニア補間の１つのフェーズを実装する。
【００６１】
加算器１０３０及び１０３１の出力にはアキュムレータ１０５０が結合される。アキュムレータ１０５０は、フィルタモード信号に更に結合され、フィルタモード信号及び第１若しくは第２のリニア補間フェーズが実行されているかに基づき、加算器の出力を一緒に加算し又は通過させる。例えば、バイリニアモードであるが、第１のリニア補間フェーズを実行しているとき、アキュムレータ１０５０は、加算器１０３０及び１０３１から受信したデータ（例えば、Ｔ０’及びＴ１’）を通過させる。バイリニアモードであるが、第２のリニア補間フェーズを実行しているとき、アキュムレータ１０５０は、加算器１０３０及び１０３１から受信したデータのシフト加算を実行し、バイリニア補間値Ｔ０”を作る。
【００６２】
図１０Ｂでは、ＦＦＢ１００１は、フレキシブルフィルタモードを示すフィルタモード信号に応答して、第２の状態にある。この状態では、スイッチ１０４０及び１０４１は開かれ、入力１００５及び１００６で受信した係数は、それぞれ、入力１０１０Ａ及び１０１１Ａで受信したテクセル値により乗算される。これらのスケーリングされた値は、アキュムレータ１０５０を通過する。フレキシブルフィルタモードでは、アキュムレータ１０５０は、受信した値を合計し、本願明細書のどこかに記載されるように、２つのテクセルの加重平均を出力する。
【００６３】
図１１は、実施形態に従う、例示的なシステム１１００の説明図である。システム１１００は、図２に示した種々の機能ブロックの全部又は一部を実装しても良い。例えば、一実施形態では、ＭＭテクスチャサンプラ１２１は、システム１１００に含まれる。システム１１００はモバイル装置であっても良いが、システム１１００はこれに限定されない。例えば、システム１１００は、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯電話機、スマートデバイス（例えば、スマートフォン、スマートタブレット、又はモバイルテレビ）、ＭＩＤ（mobile  internet  device）、メッセージング装置、データ通信装置、等に組み込まれても良い。システム１１００は、基盤装置であっても良い。例えば、システム１１００は、大判テレビジョン、セットトップボックス、デスクトップコンピュータ、又は他の家庭若しくは市販ネットワーク装置に組み込まれても良い。
【００６４】
種々の実装において、システム１１００は、ＨＩＤ１１２０に結合されるプラットフォーム１１０２を有する。プラットフォーム１１０２は、パーソナルメディアデータサービス装置１１３０、パーソナルメディアデータ配信装置１１４０又は他の同様のコンテンツソースからキャプチャされたパーソナルメディアデータを受信しても良い。１又は複数のナビゲーション機能を有するナビゲーション制御部１１５０は、例えばプラットフォーム１１０２及び／又はＨＩＤ１１２０と相互作用するために用いられても良い。これらのコンポーネントの各々は、以下に詳細に説明される。
【００６５】
種々の実装では、プラットフォーム１１０２は、チップセット１１０５、プロセッサ１１１０、メモリ１１１２、記憶装置１１１４、グラフィックサブシステム１１１５、アプリケーション１１１６及び／又は無線機１１１８の任意の組合せを有しても良い。チップセット１１０５は、プロセッサ１１１０、メモリ１１１２、記憶装置１１１４、グラフィックサブシステム１１１５、アプリケーション１１１６及び／又は無線機１１１８の間の相互通信を提供しても良い。例えば、チップセット１１０５は、記憶装置１１１４との相互通信を提供可能な記憶装置アダプタ（図示しない）を有しても良い。
【００６６】
プロセッサ１１１０は、ＣＩＳＣ（Complex  Instruction  Set  Computer）又はＲＩＳＣ（Reduced  Instruction  Set  Computer）プロセッサ、ｘ８６命令セット互換プロセッサ、マルチコア、又は任意の他のマイクロプロセッサ又はＣＰＵ（central  processing  unit）として実施されても良い。種々の実装では、プロセッサ１１１０は、マルチコアプロセッサ、マルチコアモバイルプロセッサ、等を有しても良い。例示的な一実施形態では、プロセッサ１１１０は、ＣＭＭＳ１１０１及び本願明細書のどこかで記載されたＣＭＭＳ１１０１のコンポーネントとしての種々のモジュールのプロセス及び／又は方法を呼び出し又は実装する。
【００６７】
メモリ１１１２は、ＲＡＭ（Random  Access  Memory）、ＤＲＡＭ（Dynamic  Random  Access  Memory）、又はＳＲＡＭ（Static  RAM）のような揮発性メモリ装置として実施されても良いが、これらに限定されない。
【００６８】
記憶装置１１１４は、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、内蔵記憶装置、外付け記憶装置、フラッシュメモリ、バッテリバックアップＳＤＲＡＭ（synchronous  DRAM）、及び／又はネットワークアクセス可能な記憶装置のような不揮発性メモリ装置として実施されても良いが、これらに限定されない。種々の実施形態では、記憶装置１１１４は、例えば複数のハードドライブが含まれるとき重要なデジタルメディアのために記憶性能拡張保護を増大させる技術を有しても良い。
【００６９】
グラフィックサブシステム１１１５は、表示のために静止画像又はビデオメディアデータのような画像の処理を実行しても良い。グラフィックサブシステム１１１５は、例えばＧＰＵ（graphics  processing  unit）又はＶＰＵ（visual  processing  unit）であっても良い。アナログ又はデジタルインタフェースは、グラフィックサブシステム１１１５及びディスプレイ１１２０に通信可能に結合するために用いられても良い。例えば、インタフェースは、ＨＤＭＩ（登録商標）（High−Definition  Multimedia  Interface）、Ｄｉｓｐｌａｙ  Ｐｏｒｔ、無線ＨＤＭＩ、及び／又は無線ＨＤ準拠技術のうちの任意のものであっても良い。グラフィックサブシステム１１１５は、プロセッサ１１１０又はチップセット１１０５に統合されても良い。幾つかの実装では、グラフィックサブシステム１１１５は、チップセット１１０５に通信可能に結合されるスタンドアロン型カードであっても良い。
【００７０】
本願明細書に記載されたテクスチャサンプラの特徴、関連するテクスチャサンプリング及びフィルタリング技術は、種々のハードウェアアーキテクチャで実装され得る。例えば、グラフィック及び／又はビデオ機能は、チップセットに統合されても良い。代替で、別個のグラフィック及び／又はビデオプロセッサが用いられても良い。更に別の実施形態として、本願明細書に記載の方法及び機能は、マルチコアプロセッサを含む汎用プロセッサにより提供されても良い。更なる実施形態では、方法及び機能は、専用消費者電子機器内に実装されても良い。
【００７１】
無線機１１１８は、種々の適切な無線通信技術を用いて信号を送信及び受信可能な１又は複数の無線機を有しても良い。このような技術は、１又は複数の無線ネットワークに渡る通信に関与し得る。例示的な無線ネットワークは、ＷＬＡＮ（wireless  local  area  network）、ＷＰＡＮ（wireless  personal  area  network）、ＷＭＡＮ（wireless  metropolitan  area  network）、セルラネットワーク、及び衛星ネットワークを含む（が、これらに限定されない）。このようなネットワークに渡る通信では、無線機７１８は、任意のバージョンの１又は複数の適用規格に従って動作しても良い。
【００７２】
種々の実装では、ＨＩＤ１１２０は、任意のテレビジョン型モニタ又はディスプレイを有しても良い。ＨＩＤ１１２０は、例えば、コンピュータディスプレイスクリーン、タッチスクリーンディスプレイ、ビデオモニタ、テレビ型装置、及び／又はテレビを有しても良い。ＨＩＤ１１２０は、デジタル及び／又はアナログであっても良い。種々の実装では、ＨＩＤ７２０は、ホログラフィックディスプレイであっても良い。また、ディスプレイ１１２０は、視覚投影を受け得る透過面であっても良い。このような投影は、種々の形式の情報、画像及び／又はオブジェクトを伝達し得る。例えば、このような投影は、ＭＡＲ（mobile  augmented  reality）アプリケーションのための視覚的オーバレイであっても良い。１又は複数のソフトウェアアプリケーション１１１６の制御下で、プラットフォーム１１０２は、ユーザーインターフェース１１２２をＨＩＤ１１２０に表示しても良い。
【００７３】
種々の実装では、パーソナルメディアサービス装置１１３０は、任意の全国的、国際的、及び／又は独立型サービスによりホストされても良く、したがって例えばインターネットを介してプラットフォーム１１０２にアクセス可能であっても良い。パーソナルメディアサービス装置１１３０は、プラットフォーム１１０２に及び／又はディスプレイ１１２０に結合されても良い。プラットフォーム１１０２及び／又はパーソナルメディアサービス装置１１３０は、ネットワーク１１６０へ及びそれからメディア情報を通信（例えば、送信及び／又は受信）するために、ネットワーク１１６０に結合されても良い。パーソナルメディア配信装置１１４０は、プラットフォーム１１０２に及び／又はＨＩＤ１１２０に結合されても良い。
【００７４】
種々の実装では、パーソナルメディアデータサービス装置７３０は、ケーブルテレビボックス、パーソナルコンピュータ、ネットワーク、電話機、インターネット可能装置、又はデジタル情報及び／又はコンテンツを配信可能な機器、及びネットワーク１１６０を介して又は直接にメディアデータプロバイダとプラットフォーム１１０２との間でコンテンツを単方向若しくは双方向通信可能な任意の他の類似の装置を有しても良い。コンテンツは、単方向若しくは双方向に、システム１１００内のコンポーネントのうちの任意の１つ及びネットワーク１１６０を介してプロバイダへ及びそれから通信されても良い。パーソナルメディアの例は、例えば、ビデオ、音楽、医用及びゲーム情報、等を含む任意のキャプチャされたメディア情報を有しても良い。
【００７５】
パーソナルメディアデータサービス装置１１３０は、メディア情報を含むコンテンツを受信しても良く、コンテンツプロバイダの例は、任意のケーブル若しくは衛星テレビジョン又はラジオ又はインターネットコンテンツプロバイダを含む。提供される例は、本開示に従う実装のいかなる限定も意味しない。
【００７６】
種々の実装では、プラットフォーム１１０２は、１又は複数のナビゲーション機能を有するナビゲーション制御部１１５０から制御信号を受信しても良い。制御部１１５０のナビゲーション機能は、例えばユーザーインターフェース１１２２と相互作用するために用いられても良い。実施形態では、ナビゲーション制御部１１５０は、ユーザに空間的（例えば、連続する多次元）データをコンピュータに入力させるコンピュータハードウェアコンポーネント（特に、ヒューマンインタフェース装置）であっても良いポインティングデバイスであっても良い。ＧＵＩ（graphical  user  interface）、テレビ、及びモニタのような多くのシステムは、ユーザに、身体的ジェスチャを用いてコンピュータ又はテレビを制御させ及びそれらにデータを提供させる。
【００７７】
制御部１１５０のナビゲーション機能の動きは、ディスプレイ（例えば、ＨＩＤ７２０）上で、ディスプレイに表示されるポインタ、カーソル、フォーカス、リング又は他の視覚的指示子の動きにより複製されても良い。例えば、ソフトウェアアプリケーション１１１６の制御下で、ナビゲーション制御部１１５０に配置されたナビゲーション機能は、例えばユーザーインターフェース１１２２上に表示される仮想ナビゲーション機能にマッピングされても良い。実施形態では、制御部１１５０は、別個のコンポーネントではなく、プラットフォーム１１０２及び／又はＨＩＤ１１２０に統合されても良い。しかしながら、本開示は、本願明細書に示された又は記載された要素又は環境に限定されない。
【００７８】
種々の実装では、ドライバ（図示しない）は、例えば、有効にされると、初期ブートアップ後のボタンのタッチで、テレビのように即座に、ユーザがプラットフォーム１１０２をオン及びオフにできるようにする技術を有しても良い。プログラムロジックは、プラットフォーム１１０２に、プラットフォームが「オフ」にされるときでも、コンテンツをメディアアダプタ又は他のパーソナルメディアサービス装置１１３０又はパーソナルメディア配信装置１１４０へストリーミングさせても良い。さらに、チップセット１１０５は、例えば８．１サラウンドサウンド音声及び／又は高品位（７．１）サラウンドサウンド音声をサポートするハードウェア及び／又はソフトウェアを有しても良い。ドライバは、統合グラフィックプラットフォームのグラフィックドライバを有しても良い。実施形態では、グラフィックドライバは、ＰＣＩ（peripheral  component  interconnect）Ｅｘｐｒｅｓｓグラフィックカードを有しても良い。
【００７９】
種々の実装では、システム１１００内に示したコンポーネントのうちの任意の１又は複数は統合されても良い。例えば、プラットフォーム１１０２及びパーソナルメディアサービス装置１１３０が統合されても良く、プラットフォーム１１０２及びキャプチャされたメディアデータ配信装置１１４０が統合されても良く、又は例えばプラットフォーム１１０２、パーソナルメディアサービス装置１１３０及びパーソナルメディア配信装置１１４０が統合されても良い。種々の実施形態では、プラットフォーム１１０２及びＨＩＤ１１２０は、統合ユニットであっても良い。例えば、ＨＩＤ１１２０及びコンテンツサービス装置１１３０が統合されても良く、又はＨＩＤ１１２０及びパーソナルメディア配信装置１１４０が統合されても良い。これらの例は、本開示を限定するものではない。
【００８０】
種々の実施形態では、システム１１００は、無線システム、有線システム又は両者の組合せとして実装されても良い。無線システムとして実施されるとき、システム１１００は、１又は複数のアンテナ、送信機、受信機、通信機、増幅器、フィルタ、制御ロジック、等のような無線共有媒体を介して通信するのに適するコンポーネント及びインタフェースを有しても良い。無線共有媒体の例は、ＲＦスペクトル等のような無線スペクトルの部分を含んでも良い。有線システムとして実施されるとき、システム１１００は、入力／出力（Ｉ／Ｏ）アダプタ、対応する有線通信媒体でＩ／Ｏアダプタに接続するための物理コネクタ、ＮＩＣ（network  interface  card）、ディスク制御部、ビデオ制御部、音声制御部、等のような、有線通信媒体を介して通信するのに適するコンポーネント及びインタフェースを有しても良い。有線通信媒体の例は、ワイヤ、ケーブル、金属線、プリント回路基板（ＰＣＢ）、バックプレーン、スイッチ構造、半導体物質、ツイストペアワイヤ、同軸ケーブル、光ファイバ等を含んでも良い。
【００８１】
プラットフォーム１１０２は、情報を通信するために１又は複数の論理又は物理チャネルを確立しても良い。情報は、媒体情報及び制御情報を有しても良い。媒体情報は、ユーザに意味のあるデータ提示コンテンツを表し得る。コンテンツの例は、例えば、音声会話、ビデオ会議、ストリーミングビデオ、電子メール（ｅｍａｉｌ）メッセージ、音声メールメッセージ、英数字シンボル、グラフィック、画像、ビデオ、テキスト等からのデータを含み得る。ビデオ会議からのデータは、例えば、会話情報、無音期間、背景雑音、快適雑音、トーン等であっても良い。制御情報は、自動システム向けのコマンド、命令又は制御ワードを表す任意のデータを表しても良い。例えば、制御情報は、システムを通じて媒体情報を転送し、又は所定の方法で媒体情報を処理するようノードに指示するために用いられても良い。しかしながら、実施形態は、図１１に示された又は記載された要素又は環境に限定されない。
【００８２】
上述のように、システム１１００は、変化する物理的様式又は形状因子で実施されても良い。図１２は、システム１１００が実施され得る小型装置１３００の実施形態を示す。実施形態では、例えば、装置１３００は、無線機能を有するモバイルコンピューティング装置として実施されても良い。モバイルコンピューティング装置は、例えば、処理システム及び１又は複数のバッテリのようなモバイル電源若しくは供給を有する任意の装置を表しても良い。
【００８３】
上述のように、モバイルコンピューティング装置の例は、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、ＰＤＡ（personal  digital  assistant）、携帯電話機、携帯電話機／ＰＤＡの組合せ、テレビ、スマートデバイス（例えば、スマートフォン、スマートタブレット、又はスマートテレビ）、ＭＩＤ（mobile  internet  device）、メッセージング装置、データ通信装置、等を有しても良い。
【００８４】
モバイルコンピューティング装置の例は、腕時計型コンピュータ、指輪型コンピュータ、リングコンピュータ、眼鏡型コンピュータ、ベルトクリップ型コンピュータ、腕章型コンピュータ、靴型コンピュータ、衣類型コンピュータ、及び他の装着可能コンピュータのような、人により装着されるよう構成されるコンピュータも含み得る。種々の実施形態では、例えば、モバイルコンピューティング装置は、コンピュータアプリケーション及び音声通信及び／又はデータ通信を実行可能なスマートフォンとして実施されても良い。幾つかの実施形態は、例としてスマートフォンとして実施されるモバイルコンピューティング装置と共に記載され得るが、他の実施形態も他の無線モバイルコンピューティング装置を持ち手実施できることが理解される。実施形態は、この文脈に限定されない。
【００８５】
図１２に示すように、装置１２００は、筐体１２０２、ディスプレイ１２０４、入力／出力（Ｉ／Ｏ）装置１１０６、アンテナ１２０８を有しても良い。装置１２００は、ナビゲーション機能１２１２を有しても良い。ディスプレイ１２０４は、モバイルコンピューティング装置に適切な情報を表示する任意の適切なディスプレイを有しても良い。Ｉ／Ｏ装置１２０６は、モバイルコンピューティング装置に情報を入力する任意の適切なＩ／Ｏ装置を有しても良い。Ｉ／Ｏ装置１２０６の例は、英数字キーボード、数字キーパッド、タッチパッド、入力キー、ボタン、スイッチ、ロッカースイッチ、マイクロフォン、スピーカ、音声認識装置及びソフトウェア、等を有しても良い。情報は、マイクロフォン（図示しない）により装置８００に入力されても良い。このような情報は、音声認識装置（図示しない）によりデジタル化されても良い。実施形態は、この文脈に限定されない。
【００８６】
本願明細書に記載の種々の実施形態は、ハードウェア要素、ソフトウェア要素、又は両者の組み合わせを用いて実施されても良い。ハードウェア要素又はモジュールの例は、プロセッサ、マイクロプロセッサ、回路、回路要素（例えば、トランジスタ、抵抗器、キャパシタ、インダクタ等）、集積回路、ＡＳＩＣ（application  specific  integrated  circuit）、ＰＬＤ（programmable  logic  device）、ＤＳＰ（digital  signal  processor）、ＦＰＧＡ（field  programmable  gate  array）、メモリユニット、論理ゲート、レジスタ、半導体装置、チップ、マイクロチップ、チップセット等を有しても良い。ソフトウェア要素又はモジュールの例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシジャ、ソフトウェアインタフェース、ＡＰＩ（application  programming  interface）、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、又はそれらの任意の組合せを含んでも良い。実施形態がハードウェア要素及び／又はソフトウェア要素を用いて実装されるかの決定は、所望の計算レート、パワーレベル、熱耐性、処理周期バジェット、入力データレート、出力データレート、メモリ資源、データバス速度、及び他の設計若しくは性能制約のような、設計選択のために考慮される任意の数の要因に従って変化し得る。
【００８７】
少なくとも１つの実施形態の１又は複数の態様は、機械可読記憶媒体に格納される代表的な命令により実装されても良い。このような命令は、機械によるそれらの実行中に主記憶内に及び／又はプロセッサ内に完全に又は少なくとも部分的に存在しても良く、主記憶及びプロセッサ部分は、機械可読記憶媒体を構成する命令を格納する。プロセッサ内の種々のロジックを表す命令は、機械により読み込まれると、該機械に、本願明細書に記載の技術を実行するためのロジックを作らせる。「ＩＰコア」として知られるこのような表現は、有形の、機械可読媒体に格納され、実際にロジック又はプロセッサを作成する製造機械にロードするために種々の顧客若しくは製造設備に供給されても良い。
【００８８】
本願明細書に説明された特定の特徴は種々の実装を参照して記載されたが、この記載は、限定的意味として考えられることを意図しない。ここで、本開示の関連分野の当業者に明らかな本願明細書に記載の実装の種々の変更は、他の実装と同様に、本開示の精神及び範囲の範囲内にあると考えられる。
【００８９】
以下の例は、特定の例示的な実施形態に関連する。
【００９０】
１又は複数の第１の実施形態では、マルチモードテクスチャフィルタを有するグラフィック処理システムは、複数のテクセル値及びフィルタモード信号を受信するための１又は複数の信号入力と、前記１又は複数の信号入力に通信可能に結合される論理回路と、を有する。論理回路は、フィルタモード信号により選択可能な複数のモードで動作可能である。論理回路は、第１のモードで、小数テクスチャアドレスを示す係数に基づく近隣テクセル値グループに渡りバイリニア補間を実行する。論理回路は、第２のモードで、該係数に基づく該近隣テクセル値グループに渡り加重平均を実行し、各係数は、複数のテクセル値のうちの１つに関連する重みを示す。システムは、前記論理回路に通信可能に結合されフィルタリングされたテクスチャデータを出力する１又は複数の出力信号線を更に有する。
【００９１】
１又は複数の第１の実施形態の促進では、前記論理回路は、複数のフィルタブロックを更に有する。各フィルタブロックは、第１のモードで、４個のテクセル値及び前記小数アドレスの１つの次元から、リニア補間値の対を生成する。各フィルタブロックは、第２のモードで、前記４個のテクセル値を合計し、前記対のうちの第１の対は前記係数のうちの第１の係数によりスケーリングされ、前記対のうちの第２の対は前記係数のうちの第２の係数によりスケーリングされる。
【００９２】
１又は複数の第１の実施形態の促進では、前記論理回路は、第１のフィルタブロックであって、前記第１のモードで、４個のテクセル値及び前記小数アドレスの第１の次元からリニア補間値の第１の対を生成し、前記第２のモードで、テクセル値の対の和を生成し、前記対のうちの第１の対は第１の係数によりスケーリングされ、前記対のうちの第２の対は第２の係数によりスケーリングされる、第１のフィルタブロックを更に有する。前記論理回路は、第２のフィルタブロックであって、前記第１のモードで、前記４個のテクセル及び前記小数アドレスの第２の次元から、リニア補間値の第２の対を生成し、前記第２のモードで、対応する係数によりスケーリングされた前記テクセル値の第２の対の和を生成する、第２のフィルタブロック、を更に有する。前記論理回路は、アキュムレータであって、前記第１のモードで、前記１又は複数の出力信号線に前記第２の補間値の和を出力し、前記第２のモードで、前記１又は複数の出力信号線に４個のテクセル値のグループに渡る加重平均を出力する、アキュムレータを更に有する。
【００９３】
１又は複数の第１の態様の促進では、前記論理回路は、前記第１のモードで、前記４個のテクセル値及び前記小数アドレスの第１の次元から、リニア補間値の第１の対を生成する第１のフィルタブロックを更に有する。前記論理回路は、前記第１のモードで第１のフィルタ段の出力に結合される変換器を更に有し、前記変換器は、フルビット幅を有するリニア補間値の第１の対の各々を高ビット部分及び低ビット部分に変換する。前記論理回路は、前記第１のモードで、前記小数アドレスの第２の次元及びリニア補間値の前記第１の対の低ビット部分に基づき、第３のリニア補間値を生成する第２のフィルタブロックを更に有する。前記第２のフィルタブロックは、前記第１のモードで、前記小数アドレスの前記第２の次元及びリニア補間値の前記第１の対の高ビット部分に基づき、第４のリニア補間値を更に生成する。前記第２のフィルタブロックは、更に、前記第３及び前記第４のリニア補間値を、前記フルビット幅を有するバイリニア補間値に組み立て、前記バイリニア補間値を前記１又は複数の出力信号線に出力する。
【００９４】
前記１又は複数の第１の実施形態の促進では、前記論理回路は、第１のフィルタブロックであって、前記第１のモードで、前記第１のテクセル対に関連する第１のテクセル値を前記小数アドレスに対応する第１の係数で乗算し、前記第１のテクセル対に関連する第２のテクセル値を前記第１の係数の補数で乗算し、これらの結果を合計する、ことにより、第１のテクセル対の第１のリニア補間値を生成する、第１のフィルタブロックを更に有する。前記第１のフィルタブロックは、前記第１のモードで、前記第２のテクセル対に関連する第３のテクセル値を前記第１の係数で乗算し、前記第２のテクセル対に関連する第４のテクセル値を前記第１の係数の補数で乗算することにより、第２のテクセル対の第２のリニア補間値を生成する。前記回路は、前記第１のモードで第１のフィルタ段の出力に結合される変換器を更に有し、前記変換器は、フルビット幅を有するリ第１及び第２のニア補間値の各々を高ビット部分及び低ビット部分に変換する。前記回路は、第２のフィルタブロックであって、前記第１のモードで、前記第１のリニア補間値の低ビット部分を前記小数アドレスに対応する第２の係数で乗算し、前記第２のリニア補間値の低ビット部分を第２の係数の補数で乗算し、これらの結果を合計することにより、第３のリニア補間値を生成する、第２のフィルタブロックを更に有する。前記第２のフィルタブロックは、前記第１のモードで、前記第１のリニア補間値の高ビット部分を第２の係数で乗算し、前記第２のリニア補間値の高ビット部分を第２の係数の補数で乗算し、これらの結果を合計することにより、第４のリニア補間値を生成する。前記第２のフィルタブロックは、更に、前記第３及び前記第４のリニア補間値を、前記フルビット幅を有するバイリニア補間値に組み立て、前記バイリニア補間値を前記１又は複数の出力信号線に出力する。
【００９５】
１又は複数の第１の実施形態の促進では、前記論理回路は、第１のフィルタブロックであって、前記第２のモードで、第１及び第２のテクセル値の和を生成し、前記第１のテクセル値は第１の係数によりスケーリングされ、前記第２のテクセル値は第２の係数によりスケーリングされる、第１のフィルタブロックを更に有する。前記論理回路は、第２のフィルタブロックであって、前記第２のモードで、第３及び第４のテクセル値の和を生成し、前記第３のテクセル値は第３の係数によりスケーリングされ、前記第４のテクセル値は第４の係数によりスケーリングされる、第２のフィルタブロックを更に有する。前記論理回路は、アキュムレータであって、前記和を加算し、結果として生じた加重和を前記１又は複数の出力信号線に出力する、アキュムレータを更に有する。
【００９６】
１又は複数の第１の実施形態の促進では、前記論理回路は、４個のフィルタブロックを更に有し、各フィルタブロックは、同じ論理回路を有し、前記フィルタモード信号により選択可能な複数のモードで動作可能である。前記４個のフィルタブロックは、前記第１のモードで、前記第１のモードで受信した小数アドレスに基づき、それぞれ４個の近隣テクセル値を有する２個のテクセルグループのバイリニア補間を出力する。前記４個のフィルタブロックは、前記第２のモードで、２個のテクセルグループに渡る加重平均を出力する。
【００９７】
１又は複数の第１の実施形態の促進では、前記論理回路は、４個のフィルタブロックを更に有し、各フィルタブロックは、同じ論理回路を有し、前記フィルタモード信号により選択可能な複数のモードで動作可能である。前記４個のフィルタブロックは、前記第１のモードで、前記第１のモードで受信した小数アドレスに基づき、それぞれ４個の近隣テクセル値を有する２個のテクセルグループのバイリニア補間を出力する。第１のフィルタブロックは、前記２個のテクセルグループのうちの第１のテクセルグループに対し、第１の次元に渡りリニア補間を実行する。第２のフィルタブロックは、前記第１のフィルタブロックからの出力を受信し、前記２個のテクセルグループのうちの第１のテクセルグループに対し、第２の次元に渡りリニア補間を実行する。第３のフィルタブロックは、前記２個のテクセルグループのうちの第２のテクセルグループに対し、第１の次元に渡りリニア補間を実行する。第４のフィルタブロックは、前記第３のフィルタブロックからの出力を受信し、前記２個のテクセルグループのうちの第２のテクセルグループに対し、第２の次元に渡りリニア補間を実行する。前記４個のフィルタブロックは、前記第２のモードで、２個のテクセルグループに渡る加重平均を出力し、前記第１のフィルタブロックは、前記２個のテクセルグループのうちの第１のテクセルグループの第１のテクセル対の加重平均を決定する。前記第２のフィルタブロックは、前記２個のテクセルグループのうちの第１のテクセルグループの第２のテクセル対の加重平均を決定する。前記第３のフィルタブロックは、前記２個のテクセルグループのうちの第２のテクセルグループの第１のテクセル対の加重平均を決定し、前記第４のフィルタブロックは、前記２個のテクセルグループのうちの第２のテクセルグループの第２のテクセル対の加重平均を決定する。
【００９８】
１又は複数の第２の実施形態では、構成可能なテクスチャフィルタを有するグラフィック処理システムであって、前記システムは、複数のテクセル値及びフィルタモード信号を受信する１又は複数の信号入力を有する。複数のフィルタブロックは、前記１又は複数の信号入力に結合され、各フィルタブロックは同じ論理回路を有し、所定の小数アドレス又は所定の重み付け係数に関連する係数を受信する係数入力と、それぞれテクセルカラー値を受信する２個のテクセルカラー入力と、前記係数入力に結合される第１の入力と、第１のテクセルカラー入力に結合される第２の入力と、を有する第１の乗算器と、インバータを通じて前記第１の係数入力に結合される第１の入力と、前記第２のテクセルカラー入力に結合される第２の入力と、を有する第２の乗算器と、前記第１の乗算器の出力及び前記第２の乗算器の出力に結合される加算器であって、前記第２の乗算器と前記加算器との間の結合は、前記フィルタモード信号に応答するスイッチを通じる、加算器と、を有する。
【００９９】
１又は複数の第２の実施形態の促進では、前記論理回路は、それぞれ所定の小数アドレス又は所定のテクセル重みに関連する係数を受信する２個の係数入力と、それぞれテクセル値を受信する４個のテクセルカラー入力と、第１の係数入力に結合される第１の入力及び第１のテクセル値入力に結合される第２の入力を有する第１の乗算器と、インバータを通じて前記第１の係数入力に結合される第１の入力及び第２のテクセル値入力に結合される第２の入力を有する第２の乗算器と、前記第１の乗算器の出力及び前記第２の乗算器に結合される第１の加算器であって、前記第２の乗算器と前記第１の加算器との間の結合は、前記フィルタモード信号に応答するスイッチを通じる、第１の加算器と、を更に有する。前記論理回路は、第２の係数入力に結合される第１の入力及び第３のテクセルカラー入力に結合される第２の入力を有する第３の乗算器と、インバータを通じて前記第２の係数入力に結合される第１の入力及び第４のテクセルカラー入力に結合される第２の入力を有する第４の乗算器と、前記第３の乗算器の出力及び前記第４の乗算器に結合される第２の加算器であって、前記第４の乗算器と前記第２の加算器との間の結合は、前記フィルタモード信号に応答する第２のスイッチを通じる、第２の加算器と、前記第１及び第２の加算器の出力に結合されるアキュムレータであって、前記アキュムレータは、前記フィルタモード信号に結合され、少なくとも前記フィルタモード信号に基づき前記加算器の出力を一緒に加算し又は通過させる、アキュムレータと、を更に有する。
【０１００】
１又は複数の第３の実施形態では、グラフィカルテクスチャデータをフィルタリングする方法は、グラフィック処理システムのメモリに複数のテクセル値を格納するステップと、第１のフィルタモードを示すフィルタモード信号に応答して、前記テクセルに関連する小数アドレスを示す係数に基づく近隣テクセル値グループに渡りバイリニア補間を実行するステップと、第２のフィルタモードを示すフィルタモード信号に応答して、前記テクセルに関連する重みを示す係数に基づき、近隣テクセル値グループに渡り加重平均を生成するステップと、前記補間値又は加重平均をメモリに格納するステップと、を有する。
【０１０１】
１又は複数の第３の態様の促進では、前記方法は、前記第１のフィルタモードを示す前記フィルタモード信号に応答して、前記４個のテクセル値及び前記小数アドレスの１つの次元から、リニア補間値の第１の対を生成するステップを更に有する。前記方法は、前記第２のフィルタモードを示す前記フィルタモード信号に応答して、前記４個のテクセル値のうちの２つの和を生成するステップであって、前記テクセル値のうちの第１のテクセル値は前記係数のうちの第１の係数によりスケーリングされ、前記テクセル値のうちの第２のテクセル値は前記係数のうちの第２の係数によりスケーリングされる、ステップを更に有する。
【０１０２】
１又は複数の第３の実施形態の促進では、前記方法は、前記４個のテクセル値及び前記小数アドレスの１つの次元から、リニア補間値の第１の対を生成するステップを更に有する。前記方法は、フルビット幅を有するリニア補間値の第１の対の各々を、高ビット部分及び低ビット部分に変換するステップを更に有する。前記方法は、前記小数アドレスの第２の次元及び前記リニア補間値の第１の対の前記低ビット部分に基づき、第３のリニア補間値を生成するステップを更に有する。前記方法は、前記小数アドレスの前記第２の次元及び前記リニア補間値の第１の対の前記高ビット部分に基づき、第４のリニア補間値を生成するステップを更に有する。前記方法は、前記第３及び第４のリニア補間値を前記フルビット幅を有するバイリニア補間値に組み立てるステップを更に有する。
【０１０３】
１又は複数の第３の実施形態の促進では、前記バイリニア補間を実行するステップは、前記第１のテクセル対に関連する第１のテクセル値を前記小数アドレスに対応する第１の係数で乗算し、前記第１のテクセル対に関連する第２のテクセルを前記第１の係数の補数で乗算し、及びこれらの結果を合計することにより、前記第１のテクセル対の第１のリニア補間値を生成するステップを更に有する。前記方法は、前記第２のテクセル対に関連する第３のテクセル値を前記第１の係数で乗算し、前記第２のテクセル対に関連する第４のテクセル値を前記第１の係数の補数で乗算し、フルビット幅を有数ｒ前記第１及び第２のリニア補間値の各々を高ビット部分及び低ビット部分に変換する、ことにより第２のテクセル対の第２のリニア補間値を生成するステップと、前記第１のリニア補間値の低ビット部分を前記小数アドレスに対応する第２の係数で乗算し、前記第２のリニア補間値の低ビット部分を第２の係数の補数で乗算し、これらの結果を合計する、ことにより第３のリニア補間値を生成するステップと、を更に有する。前記方法は、前記第１のリニア補間値の高ビット部分を第２の係数で乗算し、前記第２のリニア補間値の高ビット部分を第２の係数の補数で乗算し、これらの結果を合計することにより、第４のリニア補間値を生成するステップを更に有する。前記方法は、前記第３及び第４のリニア補間値を前記フルビット幅を有するバイリニア補間値に組み立てるステップを更に有する。
【０１０４】
１又は複数の第３の実施形態の促進では、前記加重平均を生成するステップは、前記テクセル値のうちの第１及び第２のテクセル値の和を生成するステップであって、前記第１のテクセル値は第１の係数によりスケーリングされ、前記第２のテクセル値は第２の係数によりスケーリングされる、ステップと、前記テクセル値のうちの第３及び第４のテクセル値の和を生成するステップであって、前記第３のテクセル値は第３の係数によりスケーリングされ、前記第４のテクセル値は第４の係数によりスケーリングされる、ステップと、前記和を加算するステップと、を更に有する。
【０１０５】
１又は複数の第４の実施形態では、グラフィカルテクスチャデータをフィルタリングする方法は、グラフィック処理システムのメモリに、複数のテクセル値及び係数を格納するステップを有する。前記方法は、所定の小数アドレス又は所定のテクセル重みに関連する係数で第１のテクセル値を乗算するステップを有する。前記方法は、バイリニアフィルタモードを示すフィルタモード信号に応答して、前記係数によりスケーリングされた前記第１のテクセル値と、前記係数の補数によりスケーリングされた第２のテクセル値とを加算するステップと、加重平均フィルタモードを示す前記フィルタモード信号に応答して、前記加算するステップを有しないで、前記係数によりスケーリングされた前記第１のテクセル値を通過させるステップと、を有する。前記方法は、前記係数によりスケーリングされた前記第１のテクセル値をメモリに格納するステップを有する。
【０１０６】
１又は複数の第４の実施形態の促進では、前記方法は、所定の小数アドレス又は所定のテクセル重みに関連する第１の係数で第１のテクセル値を乗算するステップを有する。前記方法は、バイリニアフィルタモードを示す前記フィルタモード信号に応答して、前記第１の係数によりスケーリングされた前記第１のテクセル値と前記第１の係数の補数によりスケーリングされた第２のテクセル値とを加算することにより、第１のリニア補間値を生成するステップを有する。前記方法は、所定の小数アドレス又は所定のテクセル重みに関連する第２の係数で第３のテクセル値を乗算するステップを有する。前記方法は、バイリニアフィルタモードを示す前記フィルタモード信号に応答して、前記第２の係数によりスケーリングされた前記第３のテクセル値と前記第２の係数の補数によりスケーリングされた第４のテクセル値とを加算することにより、第２のリニア補間値を生成するステップを有する。前記方法は、前記第１及び第２の補間値に基づきレンダリングされるグラフィカルオブジェクトを、前記処理システムに結合されるディスプレイスクリーンに出力するステップを有する。
【０１０７】
１又は複数の第５の実施形態では、少なくとも１つのコンピュータ可読媒体は、プロセッサにより実行されると前記プロセッサに、複数のテクセル値及び係数をグラフィック処理システムのメモリに格納するステップを含む方法を実行させる命令を格納する。前記方法は、第１のフィルタモードを示すフィルタモード信号に応答して、前記係数に基づく近隣テクセル値グループに渡りバイリニア補間を実行するステップであって、前記２個の係数は前記テクセルに関連する小数アドレスを示す、ステップを有する。前記方法は、第２のフィルタモードを示すフィルタモード信号に応答して、前記係数に基づく近隣テクセル値グループに渡り加重平均を生成するステップであって、前記係数の各々は前記テクセル値に関連する重みを示す、ステップを更に有する。前記方法は、補間値又は加重平均をメモリに格納するステップを有する。
【０１０８】
１又は複数の第５の実施形態の促進では、前記媒体は、前記プロセッサにより実行されると前記プロセッサに前記方法により前記バイリニア補間を実行させる命令を更に有し、前記方法は、前記４個のテクセル値及び１次元の前記小数アドレスから、リニア補間値の第１の対を生成するステップと、フルビット幅を有するリニア補間値の前記第１の対の各々を、高ビット部分及び低ビット部分に変換するステップと、前記小数アドレスの第２の次元及びリニア補間値の前記第１の対の前記低ビット部分に基づき、第３のリニア補間値を生成するステップと、前記小数アドレスの前記第２の次元及びリニア補間値の前記第１の対の前記高ビット部分に基づき、第４のリニア補間値を生成するステップと、前記第３及び第４のリニア補間値を前記フルビット幅を有するバイリニア補間値に組立てるステップと、を更に有する。
【０１０９】
前記媒体は、前記プロセッサにより実行されると前記プロセッサに前記方法により前記加重平均を実行させる命令を更に有し、前記方法は、前記テクセル値のうちの第１及び第２のテクセル値の和を生成するステップであって、前記第１のテクセル値は第１の係数によりスケーリングされ、前記第２のテクセル値は第２の係数によりスケーリングされる、ステップと、前記テクセル値のうちの第３及び第４のテクセル値の和を生成するステップであって、前記第３のテクセル値は第３の係数によりスケーリングされ、前記第４のテクセル値は第４の係数によりスケーリングされる、ステップと、  前記和を加算するステップと、を更に有する。
【０１１０】
上述の実装は、記載の実施形態を限定するものではなく、添付の請求項の範囲から逸脱することなく変更及び代替を実施できることが、理解されるだろう。例えば、上述の実施形態は、特徴の特定の組合せを有しても良い。しかしながら、上述の実施形態は、これに関して限定されず、種々の実装において、上述の実施形態は、このような特徴の一部のみを取り入れ、このような特徴の異なる順序を取り入れ、このような特徴の異なる組合せを取り入れ、及び／又は明示的に列挙された特徴以外の追加特徴を取り入れても良い。したがって、実装の範囲は、添付の請求項が権利を与える等価物の全範囲と共に、添付の請求項に関して決定されるべきである。
【符号の説明】
【０１１１】
１０３  メモリ
１１０  実行ユニット（ＥＵ）
１１５  テクスチャデータ
１１５  テクスチャデータ
１２１  ＭＭテクスチャサンプラ
１２１  ＭＭテクスチャサンプラ
１２１  ＭＭテクスチャサンプラ
１３０  Ｌ２キャッシュ
１３２  ＭＭフィルタＡＣＣ
１４１  フットプリント
１６０  ベクトル計算
１９８  出力パイプライン
１９９  ディスプレイ
２０１  システム
２６０  データ生成器（ＤＧ）
２６５  マルチスレッド（ＭＴ）ユニット
２７０  係数テーブル
２８２  フィルタタイプＩＤ
２８５  フィルタ形状ＩＤ
２９０  フレキシブルフィルタブロック（ＦＦＢ）
７６０  ネットワーク
１１０２  プラットフォーム
１１０５  チップセット
１１１０  プロセッサ
１１１２  メモリ
１１１４  記憶装置
１１１５  グラフィックシステム
１１１６  アプリケーション
１１１８  無線機
１１２２  ユーザインタフェース
１１３０  パーソナルメディアデータサービス装置
１１４０  パーソナルメディアデータ配信装置
【図１Ａ】
0005889990.tif 000004
【図１Ｂ】
0005889990.tif 000005
【図１Ｃ】
0005889990.tif 000006
【図１Ｄ】
0005889990.tif 000007
【図１Ｅ】
0005889990.tif 000008
【図２】
0005889990.tif 000009
【図３】
0005889990.tif 000010
【図４】
0005889990.tif 000011
【図５Ａ】
0005889990.tif 000012
【図５Ｂ】
0005889990.tif 000013
【図５Ｃ】
0005889990.tif 000014
【図６Ａ】
0005889990.tif 000015
【図６Ｂ】
0005889990.tif 000016
【図６Ｃ】
0005889990.tif 000017
【図６Ｄ】
0005889990.tif 000018
【図６Ｅ】
0005889990.tif 000019
【図７Ａ】
0005889990.tif 000020
【図７Ｂ】
0005889990.tif 000021
【図８Ａ】
0005889990.tif 000022
【図８Ｂ】
0005889990.tif 000023
【図８Ｃ】
0005889990.tif 000024
【図９Ａ】
0005889990.tif 000025
【図９Ｂ】
0005889990.tif 000026
【図１０Ａ】
0005889990.tif 000027
【図１０Ｂ】
0005889990.tif 000028
【図１１】
0005889990.tif 000029
【図１２】
0005889990.tif 000030