JP2015095259A - グラフィカルテクスチャデータのマルチモードフィルタリングのためのフレキシブルフィルタロジック - Google Patents

グラフィカルテクスチャデータのマルチモードフィルタリングのためのフレキシブルフィルタロジック Download PDF

Info

Publication number
JP2015095259A
JP2015095259A JP2014210112A JP2014210112A JP2015095259A JP 2015095259 A JP2015095259 A JP 2015095259A JP 2014210112 A JP2014210112 A JP 2014210112A JP 2014210112 A JP2014210112 A JP 2014210112A JP 2015095259 A JP2015095259 A JP 2015095259A
Authority
JP
Japan
Prior art keywords
texel
filter
value
coefficient
values
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014210112A
Other languages
English (en)
Other versions
JP5889990B2 (ja
Inventor
プオン リヤーン
Peng Liang
プオン リヤーン
ハレル ヨアフ
Harel Yoav
ハレル ヨアフ
ジェイ.シュパングラー スティーヴン
J Spangler Steven
ジェイ.シュパングラー スティーヴン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2015095259A publication Critical patent/JP2015095259A/ja
Application granted granted Critical
Publication of JP5889990B2 publication Critical patent/JP5889990B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

【課題】グラフィカルテクスチャデータをフィルタリングするグラフィック処理システム及び方法を提供する。
【解決手段】フィルタモード信号に依存して、小数テクスチャアドレスに基づくバイリニアフィルタリングを実行し及び所定のテクセル重み付け係数に基づくテクセル値グループの加重平均を生成するのに適するマルチモードテクスチャフィルタである。加重平均は、種々のフィルタフットプリントに渡り累算され、マルチモードテクスチャフィルタロジックは、複数のフレキシブルフィルタブロックを有する。1対のフレキシブルフィルタブロックは段階分けされ、それぞれ、バイリニアフィルタモードでは1つのリニア補間を実行する。フレキシブルフィルタモードである1対のフレキシブルフィルタは、テクセルクワッドの1つのテクセルに渡る加重平均を生成し、バイリニアフィルタ又はフレキシブルフィルタのいずれかで効率的な利用を可能にする。
【選択図】図1E

Description

実施形態は、概して、コンピュータグラフィックに関し、より詳細にはテクスチャデータのサンプリング及びフィルタリングに関する。
特に3次元(3D)グラフィックアプリケーションのためのグラフィックレンダリングは、パーソナルコンピュータにより実行される最も処理の集中する動作のうちの1つである。グラフィックコプロセッサは、ごく最近のパーソナルコンピュータで利用可能である。図1Aは、それぞれバスによりシステムメモリ103(例えば、DRAM、eDRAM、等)に結合されるグラフィックプロセッサ101と中央プロセッサ102とを用いるシステム100である。中央プロセッサ102及びグラフィックプロセッサ101は、単一のシリコン片に配置され(つまり、シングルチップソリューション)、又はパッケージ、ボード若しくはシステムレベルで統合されても良い。グラフィックプロセッサ101は、複数の並列処理サブシステム、又はスライス105を有する。各スライス105は、より大きな並列グラフィック処理能力のために任意の回数だけ複製されても良い。スライス105内には、「シェーダーコア」又は単に「コア」としても知られる多数の実行ユニット(EU)110がある。各EU110は、命令を実行するスカラー整数及び浮動小数点演算ユニットを含む。各EU110は、命令セットアーキテクチャ(ISA)を有し、コンテキストスイッチ及びプリエンプティブマルチタスクをサポートしても良く、例えば基本的に完全なx86コアであっても良い。EU110と共に、スライス105は、レベル2(L2)キャッシュ130(例えば、SRAM、eDRAM、等)及びテクスチャサンプラ120を有する。テクスチャサンプラ120は、固定機能ロジック(例えば、状態機械)を有する。テクスチャサンプラ120は、キャッシュ130を介してEU110と通信しても良い。キャッシュ130は、テクスチャキャッシュとして機能しても良い。テクスチャキャッシュは、プラットフォームホスティングシステム100による表示のためにグラフィックがレンダリングされるときにテクスチャマッピングで用いられる、所定のテクスチャデータの大きなアレイを保持するテクスチャサンプラ120への読み出し専用メモリである。
シーン情報(ソースデータ)の表示可能画像への変換は、概して3Dグラフィックレンダリングパイプラインと称される多数の機能を必要とする。図1Bは、特定の動作、特にグラフィックレンダリングパイプラインのテクスチャマッピング部分を示すフロー図である。テクスチャマッピング101は、通常、テクスチャ信号の基本形状への画像化を伴い、例えば、頂点に基づき操作されるより粗くレンダリングされる多角形メッシュに関する詳細なピクセルレベルの外観を与える。動作105で、テクスチャ座標は、所与の多角形の頂点に割り当てられる。通常、テクスチャは、2次元(u,v)座標空間内又は3次元(u,v,s)座標空間内の位置に基づき個々にアドレスされ得るテクセル(texel)(テクスチャ要素、texture element)のアレイを有するデジタル画像である。(u,v)座標空間では、uは幅であり、vは高さであり、テクスチャの幅及び高さに基づき0から1の間でマッピングされても良い。動作107で、テクスチャ座標は、多角形内の各ピクセルにおいて補間される。動作111で、各ピクセルにおけるテクスチャカラーは、補間されたテクスチャ座標に基づきキャッシュ内にフェッチされる。動作113で、テクスチャは、各ピクセルにおいて特定のテクセルカラーに達するために、サンプリングされ及びフィルタリングされる。しばしば、多数のサンプルテクスチャ要素(テクセル)とソーステクスチャ画像と画像がマッピングされる多数の画素(ピクセル)との間に視差が存在する。所与の多角形に対してテクスチャが大きすぎる又は小さすぎる場合、テクスチャは、空間に適合するためにフィルタリングされる。拡大フィルタはテクスチャを拡大し(ズームイン)、縮小フィルタはより小さい領域内に適合するようにテクスチャを縮小する(ズームアウト)。テクスチャ拡大は、複数のアドレスについてサンプリングされたテクセルを繰り返すことにより、多数のピクセルに少数のテクセルをマッピングし、例えばよりぼやけた画像を提供する。テクスチャ縮小は、1より多いテクセル値を単一の値に結合することにより、多数のテクセルを少数のピクセルにマッピングする。これはエイリアシング又はギザギザのエッジを生じ、アンチエイリアシング技術は、視覚的アーティファクトを低減するために重要になってきている。次に、テクスチャフィルタリングの目的は、例えば所与のピクセルに関連する多数のテクセルの平均化を通じて、各ピクセルの周囲の領域に渡り画像の平均値を計算することである。
テクスチャフィルタリングは、主として、テクスチャサンプラ120内にある固定機能ロジックにより実行されている。このようなテクスチャサンプラは、ポイントサンプリング、バイリニアフィルタリング、トリリニアフィルタリング、及び異方性フィルタリングのような、テクスチャフィルタリングの種類に関連する固定フィルタフットプリント(形状)を有する。フィルタリング方法が次第に複雑になるにつれ、及びテクスチャデータの使用が拡張され、例えば色に加えて照明及び他の表面特性のために使用されるにつれ、固定機能フィルタを有するサンプラは非効率及び/又は不十分になってきている。したがって、EU110によりインスタンス化されたシェーダープログラムは、テクスチャマッピングにおいてより大きな役割を担い、例えば結果として図1Cに示したシステム106のアーキテクチャを生じる。システム106では、EU110は、アプリケーション層でフィルタフットプリント140を実装し、フットプリント140に関連する(u,v)空間内の複数のテクスチャ要求は、テクスチャサンプラ120へ送信される。次に、テクスチャサンプラ120は、フィルタフットプリント140に関連する(u,v)アドレスの各々についてキャッシュにテクスチャデータ115をフェッチする。次に、アプリケーション層で定められた命令を実行するEU110は、テクスチャデータ115を累算する。したがって、フットプリント全体のテクスチャデータは、フィルタリングが固定機能ロジック131からEU110へオフロードされるので、いかなるデータ縮小も有しないで、テクスチャサンプラを通過する。しかしながら、この構成では、固定機能ロジック131により占有されるサンプラチップ領域は、浪費される。このアーキテクチャに伴う別の問題は、キャッシュ使用効率が低下することである。カーネルから送信される複数のサンプラメッセージにより、複数のEUからインターリーブされたメッセージが多くのキャッシュ立ち退きを引き起こすより高い可能性がある。さらに、テクスチャデータはテクスチャサンプラ120により十分に処理され及び/又は低減されないので、テクスチャマッピング帯域幅は、EU110とテクスチャサンプラ120との間で通信されるより大容量のデータにより制限される可能性がある。図1Cに示したシステムアーキテクチャの別の欠点は、EU110により実行されるフィルタリングが、より多くの電力を必要とし、テクスチャサンプラ120内に最適化された専用に構築されたロジックで実装される場合に遅くなり得ることである。したがって、シェーダーベースのフィルタリングを利用可能にするプログラム可能性は、より大きな電力要求がバッテリ寿命を短くする、グラフィック集中アプリケーションを実行するモバイル装置にとって特に不利であり得る。
本発明は、グラフィカルテクスチャデータをフィルタリングするグラフィック処理システム及び方法を提供する。
一実施形態によると、マルチモードフィルタを有するグラフィック処理システムであって、前記フィルタは、複数のテクセル値及びフィルタモード信号を受信する1又は複数の信号入力と、前記1又は複数の信号入力に通信可能に結合される論理回路であって、前記論理回路は、前記フィルタモード信号により選択可能な複数のモードで動作し、第1のモードの前記論理回路は、小数テクスチャアドレスを示す係数に基づく近隣テクセル値グループに渡ってバイリニア補間を実行し、第2のモードの前記論理回路は、前記係数に基づく前記近隣テクセル値グループに渡って加重平均を実行し、前記係数の各々は、前記複数のテクセル値のうちの1つに関連する重みを示す、論理回路と、前記論理回路に通信可能に結合され、フィルタリングされたテクスチャデータを出力する1又は複数の出力信号線と、を有するシステムが提供される。
本願明細書に記載された素材は例を用いて説明されるが、添付の図面に限定されない。説明を簡単且つ明確にするため、図中に示された要素は、必ずしも縮尺通りに描かれていないことが理解される。例えば、幾つかの要素の寸法は、明確さのため、他の要素に比して誇張されている。更に、適切に検討されるとき、対応する又は類似の要素を示すために、参照符号は図の間で繰り返されている。以下の図面がある。
バスによりシステムメモリに結合されるグラフィックプロセッサと中央プロセッサとを用いるシステムを示すブロック図である。 グラフィックプロセッサ内の標準的なグラフィックレンダリングパイプライン内の特定のテクスチャマッピング動作を示すフロー図である。 テクスチャフィルタリングのためにシェーダーを用いる従来のグラフィックプロセッサアーキテクチャである。 グラフィックプロセッサ内で用いられ得る特定のテクスチャフィルタリングアーキテクチャを比較するグラフである。 一実施形態による、マルチモードテクスチャサンプラを用いるグラフィックプロセッサアーキテクチャである。 一実施形態による、マルチモードフレキシブルテクスチャサンプラを有するグラフィックプロセッサを含むシステムを更に示す機能ブロック図である。 実施形態に従って、マルチモードフレキシブルテクスチャフィルタリング方法が図2のようなアーキテクチャを有するシステムによりどのように実行され得るかを示す。 実施形態に従って、マルチモードフレキシブルテクスチャフィルタリング方法を示すフロー図である。 実施形態に従って、図4に示した方法の部分として実行されるテクセルクワッド(quad)の適用を通じて実装され得る種々の例示的なプログラム可能なフットプリントを示す。 実施形態に従って、図4に示した方法を実行するとき、マルチモードフレキシブルテクスチャサンプラ内で用いられ得る複数のフットプリント及び対応する境界領域を示す。 実施形態に従って、マルチモードフレキシブルテクスチャサンプラの最小粒度を表すテクセルクワッドを示す。 実施形態に従って、図4に示した方法として実装され得る分離テクスチャフィルタリング方法が実行されるフロー図を示す。 実施形態に従って、分離テクスチャフィルタリング方法が図2のようなアーキテクチャを有するシステムによりどのように実行され得るかを示す。 実施形態に従って、図6Aに示す分離フィルタリング方法を実行する準備において投入され得るフィルタ係数テーブルを示す。 実施形態に従って、図6Aに示す分離フィルタリング方法を実行する準備において投入され得るフィルタ係数テーブルを示す。 実施形態に従って、図6Aに示す分離フィルタリング方法の実行中のフィルタ係数テーブルの部分アドレスインデックス付けを示す。 一実施形態に従って、マルチモードフィルタリング方法を示すフロー図である。 実施形態に従って、図7Aに示すマルチモードフィルタリング方法を実行するよう構成されるフィルタロジックユニットのブロック図である。 実施形態に従って、図7Aに示すマルチモードフィルタリング方法の部分として実行され得るバイリニアフィルタリング方法を示すフロー図である。 実施形態に従って、バイリニアフィルタリングモードに構成されるフィルタロジックユニットのブロック図である。 実施形態に従って、図8Bに示すフィルタロジックユニットによりより具体的に実行される、図8Aに示すバイリニアフィルタリング方法を示すフロー図である。 実施形態に従って、図7Aに示すマルチモードフィルタリング方法の部分として実行され得るフレキシブルフィルタリング方法を示すフロー図である。 実施形態に従って、フレキシブルフィルタリングモードに構成されるフィルタロジックユニットのブロック図である。 実施形態に従って、バイリニアフィルタリングモードに構成されるフレキシブルフィルタブロックのブロック図である。 実施形態に従って、フレキシブルフィルタリングモードに構成される図9Bのフレキシブルフィルタブロックのブロック図である。 実施形態に従う、例示的なシステムの説明図である。 一実施形態に従って配置される、例示的なシステムの説明図である。
1又は複数の実施形態は、添付の図面を参照して説明される。特定の構成及び配置が図示され詳細に議論されるが、これは単に説明目的で行われることが理解されるべきである。関連分野の当業者は、本説明の精神及び範囲から逸脱することなく、他の構成及び配置が可能であることを認識する。関連分野の当業者には、本願明細書に記載される技術及び/又は配置が本願明細書に詳細に記載される以外の種々の他のシステム及びアプリケーション内で用いられ得ることが明らかである。
以下の詳細な説明では、その一部を形成し例示的な実施形態を説明する添付の図面を参照する。さらに、他の実施形態が利用されてもよく、構造的及び/又は論理的変化が請求される主題から逸脱することなく行われてもよいことが理解されるべきである。したがって、以下の詳細な説明は限定的意味と考えられるのではなく、請求される主題の範囲は特許請求の範囲及びその等価物によって定められる。
以下の説明では、多くの詳細事項が説明されるが、当業者には、本発明の実施がこれらの特定の詳細事項を有しないで行われ得ることが明らかである。本発明の実装を不明確にすることを回避するために、よく知られた方法及び装置は、詳細にではなく、ブロック図形式で示される。本願明細書を通じて「一実施形態」又は「ある実施形態」等のような表現は、実施形態と関連して記載された特定の特徴、構造、機能又は特性が実装の少なくとも1つの実施形態に含まれることを意味する。したがって、明細書を通じて種々の場所に現れる「一実施形態では」又は「ある実施形態では」という表現は、必ずしも全て同じ実装の実施形態を参照していない。さらに、一実施形態の文脈で記載される特定の特徴、構造、機能、又は特性は、1又は複数の実施形態において任意の適切な方法で結合されても良い。例えば、2つの実施形態に関連する特定の特徴、構造、機能又は特性が相互に排他的でない限り、第1の実施形態は第2の実施形態と結合されても良い。
実装及び添付の特許請求の範囲の記載で用いられるように、単数形式(「a」、「an」、「the」)は、文脈が特に明示しない限り、複数形式も含むことを意図する。また、本願明細書で用いられる用語「及び/又は」は、関連する列挙された項目のうちの1又は複数の任意の及び全ての可能な組合せを参照し包含することが理解されるだろう。
本説明を通じて及び請求項中で用いられるように、用語「少なくとも1つの」又は「1又は複数の」により結合される項目のリストは、列挙された項目の任意の組合せを意味し得る。例えば、表現「A、B又はCのうちの少なくとも1つ」は、A;B;C;A及びB;A及びC;B及びC;又はA、B及びC;を意味し得る。
用語「結合される」及び「接続される」は、それらの派生語と共に、コンポーネント間の機能的又は構造的関係を記述するために本願明細書で用いられ得る。これらの用語は、互いに同義語を意味しないことが理解されるべきである。むしろ、特定の実施形態では、「接続される」は2以上の要素が物理的、光学的又は電気的に互いに直接的に接触していることを示すために用いられうる。「結合される」は、2以上の要素が(それらの間の他の仲介要素により)直接又は間接的に物理的、光学的又は電気的に互いに接触していること、及び/又は2以上の要素が協働し若しくは(例えば、因果関係におけるように)互いに相互作用することを示すために用いられうる。
本願明細書に提供される詳細な説明の一部は、コンピュータメモリ内のデータビットに対する動作のアルゴリズム及び象徴的表現の観点で提示される。特に断りのない限り、以下の議論から明らかなように、以下の説明を通じて、「計算」、「算出」、「決定」、「推定」、「格納」、「収集」、「表示」、「受信」、「統合」、「生成」、「更新」等の語を用いた議論は、コンピュータシステム又は同様の電子コンピューティング装置の動作及び処理を表す。コンピュータシステム又は同様の電子コンピューティング装置は、レジスタを含むコンピュータシステムの回路及びメモリ内にある物理(電子)量として表されたデータを操作し、コンピュータシステムのメモリ若しくはレジスタ又は情報記憶、送信又は表示装置等の中の物理量として同様に表される他のデータに変換する。
以下の説明は例えばシステムオンチップ(SoC)アーキテクチャのようなアーキテクチャ又はグラフィックプロセッサで明示され得る種々の実装を説明するが、本願明細書に記載の技術及び/又は配置の実装は、特定のアーキテクチャ及び/又はコンピューティングシステムに限定されず、同様の目的で任意のアーキテクチャ及び/又はコンピューティングシステムにより実装されても良い。例えば、例えば複数の集積回路(IC)チップ及び/又はパッケージを用いる種々のアーキテクチャ、及び/又はセットトップボックス、スマートフォン等のような種々のコンピューティング装置及び/又は消費者電子機器(CE)装置は、本願明細書に記載の技術及び/又は配置を実装しても良い。さらに、以下の説明は、システムコンポーネントの論理実装、種類、及び相互関係、論理区分/統合の選択、等のような多くの特定の詳細事項を説明するが、請求される主題は、このような特定の詳細事項を有しないで実施できる。さらに、例えば制御構造及び完全なソフトウェア命令シーケンスのような特定の素材は、本願明細書に開示の素材を不明確にすることを回避するために詳細に示されない。
本願明細書に開示の素材の特定部分は、ハードウェアで、例えばグラフィックプロセッサ内の論理回路として実装される。特定の他の部分は、ハードウェア、ファームウェア、ソフトウェア又はそれらの如何なる組み合わせで実装されてもよい。本願明細書に開示の素材の少なくとも幾つかは、1又は複数のプロセッサにより読み取られ実行されてもよい機械読み取り可能な有形媒体に格納された命令として実施されてもよい。機械読み取り可能な有形媒体は、機械(例えば、コンピューティング装置)により読み取り可能な形式で情報を格納又は送信する任意の媒体及び/又はメカニズムも包含しうる。例えば、機械読み取り可能媒体は、ROM(read only memory)、RAM(random access memory)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置、電気的、光学的、音響的又は他の同様の非一時的有形媒体を包含しうる。
システム、装置、アーティクル、及び方法は、2D及び3Dビジュアルコンピューティングアプリケーションのための高性能且つ低電力を提供するフレキシブルフィルタリング動作の可能なマルチモードテクスチャサンプラを含み、以下に記載される。図1Dは、個々の電力要件及びプログラム可能性に関して、グラフィックプロセッサにより用いられ得る特定のサンプラアーキテクチャを比較するグラフである。原点付近には、例えばバイリニアテクスチャフィルタを提供する固定機能サンプラフィルタがある。高度に最適化されたフィルタ機能ロジックは、最低電力及び高効率のために非常に経済的に、このようなフィルタを実装し得る。しかしながら、このフィルタのプログラム可能性の欠如は、任意の特定用途向けフィルタに適応できない。他方の極端には、任意の特定用途向けフィルタリング動作に適応できるが最も大きな電力を消費する完全にプログラム可能なISAフィルタを実装するシェーダーがある。シェーダーから電力及びプログラム可能性が一段階下がると、サンプラ内にISAフィルタを有するサンプラがある。このようなアーキテクチャでは、サンプラは、テクスチャ動作の標準的な変換及び特定機能に加えて、シェーダーコア/EU内に現在見られる機能の一部(例えば、プログラム可能レジスタベーススカラ命令セット、整数、ロジック、フロー制御、及びメモリアクセス)を有する。サンプラ内のISAフィルタは、シェーダーコアフィルタ実装と同様の電力を要求することが予想でき、より高度なサンプラ複雑性はチップ面積の有意な増加を要求する。更なる比較として、図1Eに、本願明細書の実施形態によるフレキシブルフィルタを有する例示的なマルチモード(MM)サンプラの電力及びプログラム可能性属性を示す。本願明細書に記載のMMサンプラの実施形態は、フィルタプログラム可能性における有意な増大を提供し、実際にほぼ間違いなく、サンプラが、ISAフィルタに現在実装されている任意のテクスチャフィルタリングの大部分を実行することを可能にする。しかしながら、たとえあったとしても、固定機能サンプラに対する電力の増大は僅かである。
シェーダーベースフィルタに対して、本願明細書に記載のマルチモードテクスチャサンプラの実施形態は、例えば図1Eのグラフィックプロセッサアーキテクチャ107内に示すような、よりバランスのとれた異種コンピューティングを更に適用しても良い。例示的なアーキテクチャ107では、EU110は、ベクトル計算160、より高レベルなレンダリングアルゴリズム、及びメモリ書き込み等を実行する。テクスチャマッピングが必要なとき、テクスチャアドレス(u,v)は、マルチモード(MM)テクスチャサンプラ121へ伝達される。所与のテクスチャアドレスについて、MMテクスチャサンプラ121は、種々のフットプリント141のテクスチャデータ115をフェッチし、MMフィルタアキュムレータ132で処理することによりテクスチャデータ115を削減する。MMフィルタアキュムレータ132は、種々のフィルタフットプリント141に渡る重み付けされた平均に対応する出力値を提供するのに適する。MMテクスチャサンプラ115は、EU110に、各ピクセルにおけるサンプリングされたフィルタリングされたピクセルカラー(R/G/B)に対応する削減されたデータを返す。固定機能テクスチャサンプラと同様に、MMテクスチャサンプラ121は、種々のフットプリントに適応し、及び固定機能縮小フィルタリングで用いられる場合の多いバイリニア(2x2テクセル)フットプリントより有意に広いフットプリントを許容するよう構成される。MMテクスチャサンプラ121は、低電力及びEUからサンプラへの通信の削減を要求し得るが、依然として、シェーダーベースフィルタを通じてのみ従来利用可能である照明/シャドウイング効果のような高度な機能を提供する。例示的な実施形態では、柔軟なフットプリントのサポートに加えて、MMテクスチャサンプラ121は、ポイント及び/又はリニアサンプリング、及びバイリニア及び/又はトライリニアフィルタモードのような従来の固定機能モードを更にサポートする。
図2は、一実施形態による、マルチモードフレキシブルテクスチャサンプラ121を用いるグラフィックプロセッサを含むシステム201を更に示す機能ブロック図である。システム201は、MMテクスチャサンプラ121に通信可能に結合される1又は複数のEU110を有する。EU110は、例えば(u,v)空間における入力アドレス又は座標を、MMテクスチャサンプラ121に提供する。2次元テクスチャアドレスが本願明細書の記載で用いられるが、本願明細書に記載の技術及びハードウェアは、当業者により更に大きな次元(例えば、3D)に適用できることに留意する。MMサンプラ121は、データ生成器(DG)260として示される論理回路を有する。データ生成器(DG)260は、入力テクスチャアドレスに基づき及び所望のフィルタフットプリントに更に基づき、テクセルサンプリングアドレス(つまり、サブサンプル)を生成する。DG260により生成されるサブサンプルアドレス(u’,v’)は、フットプリントが定められる所定の境界領域内で1又は複数のテクセルサブサンプル位置を識別する。サブサンプリングアドレス(u’,v’)は、連続し、マルチスレッド(MT)ユニット265に渡される。MTユニット265は、キャッシュ130にデータをフェッチし、キャッシュFIFO(例えば、局所性に基づくフェッチ、遅延時間、キャッシュミス、等)に関連するオーバヘッドを取り扱う。本願明細書の実施形態では、MTユニット265は、各サブサンプルアドレスに関連するテクセルデータT[u’,v’]215をキャッシュする。しかしながら、従来の固定機能サンプラは、例えばバイリニア補間アルゴリズムを通じて入力テクスチャアドレスのフィルタ係数を動的に計算するために呼び出されても良く、MTユニット265は、各(u’,v’)サブサンプルアドレスに関連する所定のフィルタ(重み付け)係数275(つまり、C[u’,v’])を更にキャッシュする。
フィルタ係数275は、MMテクスチャサンプラ121への追加入力である。フィルタ係数275は、メモリ103に格納され、API280を通じて例えば1又は複数の係数テーブル270として入力されても良い。API280は、例えば、限定ではないがDirectX及びOpenGLのような既存のグラフィックプロセッサAPIの拡張セットとして実装されても良い。API280は、係数テーブル270をアプリケーション層に露出させ、所与のフィルタに適する所定値をテーブルに投入させ得る。一例として、アプリケーション層ルーチンは、係数テーブル270に格納される係数値を自動的に生成するために、ガウスブラー関数が実行され得るかを評価する。係数テーブル270に値を格納するための固定メモリ割り当ては、フットプリントが定められる所定の境界領域のサイズに、及びMMテクスチャサンプラのモードにも基づき、行われても良い。
実施形態では、MMテクスチャサンプラ121は、複数のプログラム可能フィルタフットプリントのうちの任意のものについて、分離フィルタモード及び非分離フィルタモードの両方で選択的に動作可能である。例示的な実施形態では、非分離フィルタモードは、次のフィルタ関数を実装する。
Figure 2015095259
ここで、Cxyは所与のサンプリングされたアドレス(u’,v’)のフィルタ係数であり、Txyは所与のサンプリングされたアドレス(u’,v’)のテクセル(カラー)値である。重み付けは、通常、全ての所望のフットプリントを実装するために十分な特定の固定サイズになるよう予め定められる全境界領域mに渡り実行される。例示的な一実施形態では、m=7であり、最大8x8テクセルフットプリントを定めることが可能である。このような実施形態では、係数テーブル270は、境界領域m内の各テクセルについて1つの係数を含む。MMテクスチャサンプラ121は、分離フィルタモードで更に動作可能である。例示的な一実施形態では、分離フィルタモードは、次のフィルタ関数を実装する。
Figure 2015095259
ここで、所定の境界領域内で定められる所与のフィルタ幅w及び高さhについて、HA,xは水平フィルタ係数であり、VB,xは垂直フィルタ係数である。非分離係数Cxyでは、分離係数HA,x及びVB,xの値は、キャッシュフェッチのためのソースデータとして係数テーブル270に格納されても良い。分離及び非分離フィルタモードの両方は上述の例示的なフィルタ関数の文脈で以下に更に説明されるが、留意すべきことに、当業者は、本願明細書に記載のアーキテクチャ及び技術を別の非分離及び/又は分離フィルタ関数に適応できる。
実施形態では、API280は、MMテクスチャサンプラ121が所与の状態を維持しながら動作するモードを示すフィルタタイプID282を更に露出する。例えば、フィルタタイプID282は、フラグビット等を格納し、非分離又は分離フィルタモードを指定する。更なる実施形態では、API280は、フィルタ形状ID285を更に露出しても良い。MMサンプラ121、より具体的にはDG260は、貢献するサブサンプルアドレス(つまり、非ゼロフィルタ係数を有する所定の境界領域内のアドレス)を効率的に生成するために、フィルタ形状ID285を用いても良い。分離フィルタモードの一実施形態では、フィルタ形状ID285は、分離フィルタの高さh及び幅wを格納する。非分離フィルタモードの一実施形態では、フィルタ形状ID285は、非ゼロである境界領域内のフィルタ係数を指定するビットマスクを格納する。このようなビットマスクは、例えば、係数テーブル270内のエントリに基づき、グラフィックプロセッサドライバにより生成されても良い。
図2に更に示すように、MMテクスチャサンプラ121は、MMフィルタロジック(FL)ユニット132を有する。FLユニット132は、フィルタリングを実行し、フィルタモード、フィルタフットプリント、テクセル値、及びフィルタ係数値に基づき各ピクセルにおけるカラー値(例えば、R/B/G、R/B/G/A、等)を返す。次に、この返された値は、出力パイプライン198内で用いられ、ディスプレイ199に出力される(又は隠されたレイヤの計算で用いられる、等)。MM FL132は、分離又は非分離フィルタモードのいずれかで提供される任意のフレキシブルフットプリントに渡りフィルタリングを実行するために論理回路を有するフレキシブルフィルタブロック(FFB)290を有する。MM FL132は、所与のフレキシブルフィルタフットプリントに渡り加重平均を生成するために複数のフレキシブルフィルタブロック出力を累算するアキュムレータ298を更に有する。MM FL132は、フィルタ値をEU110に返す前に、FFB290又はアキュムレータ298からの出力を正規化するために除算器(図示しない)を更に有しても良い。このように、MM FL132は、例えばフィルタタイプID282及び/又はフィルタ形状ID265により定められるようなフットプリント内の全テクセルのカラーに対して重み付けされた累算を実行するよう構成可能である。更なる実施形態では、本願明細書のどこかに記載のように、MM FL132は、MM FL132のよりフレキシブルなアーキテクチャにより妨げられないレートで従来のバイリニアフィルタリングも実行するために十分に汎用化される。
テクスチャデータ処理技術及び例示的なシステム201に導入されるコンポーネントのマイクロアーキテクチャの更なる詳細な説明は、以下に議論される。
<フレキシブルフィルタフットプリント>
図3は、実施形態に従って、マルチモードフレキシブルテクスチャフィルタリング方法が図2に示すようなアーキテクチャを有するシステム201によりどのように実行され得るかを示す。図3の点線は、動作の実行を担う例示的なシステム201の特定の動作及び特定のコンポーネント間の関連を示すために、システム201の種々のコンポーネントの例示的な機能的区分の境界を示す。図示のように、MMテクスチャサンプラ121の非分離又は分離フィルタリングモード283、284は、フィルタタイプID282によりAPI280を通じて指定される。フィルタ形状は、ゼロ値係数286のマスキングを通じて、又は高さ及び幅フィルタベクトル287を指定するフィルタ形状ID285で、更にパラメータ化されても良い。EU110からの各ピクセルにおけるシーディング入力テクスチャアドレス111を受信すると、以下に詳述するように、動作420で、各ピクセルにおける複数の(サブ)サンプルが生成され、シーケンス化される。動作430で、MMテクスチャサンプラ121は、例えば格納された係数テーブル270から、生成された各サブサンプルの所定のフィルタ係数をキャッシュ130にフェッチする。動作440で、MMテクスチャサンプラ121は、例えば格納されたテクスチャデータ115から、生成された各サブサンプルの所定のテクセル値215をキャッシュ130にフェッチする。動作465で、MMテクスチャサンプラ121は、例えば上述のフィルタ関数のうちの1つを実施することにより、全フットプリントに渡りカラー値の加重平均を決定し、EU110にフィルタリングされサンプリングされたテクスチャ470を返す。
図4の環境で、例示的なマルチモードテクスチャフィルタリング方法401の更なる説明が記載される。例示的な実施形態によると、方法401は、図2に示すシステム201により実行される。他の実施形態によると、任意の代替ハードウェアアーキテクチャを有するテクスチャサンプラは、方法401を実行する。例えば、しかしながら、分離及び非分離フィルタモードの一方のみを有するテクスチャサンプラは、方法401の特定の特徴を実装しても良い。更に他の実施形態によると、論理回路及びアプリケーションソフトウェアの代替配置を有するグラフィックプロセッサは、方法401を実行しても良い。例えば、テクスチャサンプラは、図4の環境で説明した機能の一部のみをハードウェアで実装しても良く、他の機能はソフトウェアで実装される。このように、一実施形態では、方法401はシステム201により実行されるが、システム201は、方法401を実行する必要はなく、システム201は方法401の全ての動作を実行する必要がない。
方法401は、動作405で開始し、テクスチャサンプラは、フィルタタイプ識別子にアクセスして、非分離フィルタ状態又は分離フィルタ状態を入力すべきかを決定する。動作410で、非分離又は分離フィルタの一方について、テクスチャサンプラは、フィルタ形状識別子にアクセスして、フィルタフットプリントパラメータを決定する。フットプリントは、フィルタリングされたテクスチャ値に貢献する全てのテクセルを有する。図5Aは、実施形態に従って、例示的な8x8境界領域内で「プログラムされ」得る種々の例示的なフットプリントを示す。図5Aの大きな点は、非ゼロフィルタ係数に関連し、したがって特定のフィルタリングされた値に貢献する出力テクセルサンプルを表す。一方、小さな点は、ゼロ値係数に関連する非貢献テクセルである。
留意すべきことに、本願明細書の実施形態は、膨大な数の任意のフットプリントの指定を可能にするので、図5Aに示す8個の例は、排他的な例を示すものではなく、代わりに、単に多くの種類の許容可能なフィルタ形状及びサイズを示すものである。
例えば、フィルタフットプリント520−1は、従来のバイリニア補間フィルタフットプリントと同じサイズを有し、一方で、フットプリント520−2はガウスフィルタに有用である。フットプリント520−3、520−4及び520−7は、全て例示的な異方性フィルタ形状である。フットプリント520−5は双三次フィルタに有用であり、フットプリント520−8は最大8x8テクセルフィルタを示す。
例示的な実施形態では、複数のフィルタフットプリントのうちの任意のものは、所定の境界領域内で定められても良い。特定のフットプリントは、必要に応じて、所与のサンプラ状態に関連付けられ、各サンプラ状態変化に伴いフィルタフットプリントを変化させても良い。したがって、所与のテクスチャサンプラについて可能な異なるフィルタフットプリントの数は、許容されるフィルタ状態数と共に増減可能である。図5Bは、実施形態に従って、それぞれマルチモードフレキシブルテクスチャサンプラの所与の状態に関連付けられ得る複数のフットプリント512を示す。各フットプリント512について、8x8境界領域内に固定数のテクセル511がある(例えば、510−1、510−2、510−N)。しかしながら、この次元は実装の詳細によって変化しても良い。説明的な一実施形態では、異方性フィルタに適する第1のフィルタフットプリントはあるフィルタ状態において適用され、一方で、ガウスフィルタに適する別のフィルタフットプリントは別のフィルタ状態において適用される。
図4に戻ると、動作415で、例えばシェーダーコアからのテクスチャアドレスの形式で、テクスチャ要求を受信すると、動作420で、テクスチャサンプラは、フィルタフットプリントに基づき、テクセルサブサンプルアドレス(u’,v’)のシーケンスを生成する。フィルタフットプリントは、入力テクスチャアドレスに対するフットプリントに関連するサンプリング位置を参照することにより、入力テクスチャアドレス(u,v)に適用される。例示的な実施形態では、境界領域(例えば、図5Bの510−1)は、次にアドレス(u’,v’)を参照する出力サンプリング位置を有する入力テクスチャアドレス(u,v)を中心とする。実施形態では、サブサンプルアドレス(u’,v’)は、少なくとも1つの貢献するテクセルを含む近隣テクセルのグループに関連する所定数のサンプルの各々について生成される。近隣テクセルのこのグループは、任意の所与の入力アドレス及び任意の所与のフットプリントからの出力サンプルの生成のための最小粒度を表す。一実施形態では、この最小粒度は、テクセルクワッド、又は2x2の近隣テクセルである。図5Cは、2x2のサンプリングアドレスにより表されるテクセルT、T、T、及びTを含む例示的なテクセルクワッド515を示す。本願明細書の実施形態は、テクセルクワッドを極小アドレス単位として利用する。これは、相当量のサンプラ論理回路がピクセル局所性を効率的に利用するよう設計されるので、多くの点で有利である。例えば、2x2アドレスシーケンスに関連する値は、メモリから単一キャッシュに効率的にフェッチできる。したがって、図5Bに示すようにフットプリントが1つのテクセルのみを含む場合でも、4つのサブサンプルアドレス(u’,v’)のシーケンスが生成される。例えば、フットプリント520により指定される1つの貢献するテクセルを含むテクセルクワッド515では、所与の入力テクスチャアドレス(u,v)に対して、テクセルT、T、T、及びTの各々について1つのサブサンプルアドレスが生成される。
図5Aの破線のボックスは、図示のフットプリントの各々について例示的なテクセルクワッドを更に示す。例えば、フットプリント520−2は、結果として4つのテクセルクワッド:515−1、515−2、515−3、及び515−4の生成をもたらす。、各クワッド515−1乃至515−4について、4個のサブサンプルアドレスが生成され、所与の入力テクスチャアドレス(u,v)に対して合計で16個のサブサンプルである。同様に、フットプリント520−3は、結果として、3個のテクセルクワッドに対応する12個のサブサンプルアドレス(u’,v’)の生成をもたらす。サブサンプルアドレスの生成は、単一又は複数のクロックサイクルに渡り継続しても良い。更なる実施形態では、テクスチャサンプラ内の(例えば、データ生成器の中の)論理回路は、内部で、1又は複数のアルゴリズムに従うサブサンプルアドレスを連続させて、所与のフットプリントについて生成されたテクセルクワッドの数を最小化し、及び/又はサンプリング位置の一貫性を最大化する、等する。更なる有利な実施形態では、境界領域(例えば、図5Bの510−1、510−2、510−N)は、最小粒度の複数のマルチテクセルサンプリンググループをも含むよう大きさを定められる。例えば、図5Aに示すように、8x8テクセル境界領域では、フットプリント520−8は境界領域を満たし、各ピクセルにおける入力テクスチャアドレス(u,v)に対して、64個の出力サブサンプルアドレス(u’,v’)に対応する16個のテクセルクワッドのシーケンスが生成される。
留意すべきことに、図5Aに示すいずれのフットプリントも、分離又は非分離モードのテクスチャサンプルにおいて実装されても良い。分離フィルタモードでは、フットプリントは、1D空間内の2つのフットプリントの積として定められる。したがって、フィルタ形状識別子は、例えば、第1の1Dフットプリントに関連する1D幅ベクトル、及び第2の1Dフットプリントに関連する1D高さベクトルを示しても良い。次に、テクスチャサンプラは、第1のプログラム可能な数のテクセル(例えば、プログラム可能な幅w)を有する第1の1Dフットプリント及び第2のプログラム可能な数のテクセル(例えば、プログラム可能な高さh)を有する第2の1Dフットプリントにより指定される少なくとも1つのテクセルを含む各テクセルクワッドについて4個のサブサンプルアドレスを生成する。入力テクスチャアドレス(u,v)を参照した所定の境界領域では、分離フィルタフットプリントにおいて指定されたサブサンプリング位置は、(u’,v’)としてアドレスされても良い。
境界領域内で各テクセルについて1つの係数Cxyが存在する非分離フィルタモードでは、非ゼロ係数値を有する少なくとも1つのテクセルを含む各テクセルクワッドについて、4個のサブサンプルアドレスが生成される。このモードでは、フィルタ係数テーブルは、フィルタに貢献する単なるサンプリング位置である非ゼロ係数値でフットプリントを指定するよう機能しても良い。このような実施形態では、全ての係数は、サブサンプルアドレスのシーケンスを生成するために読み出されても良い。更なる実施形態では、サンプリングマスクは、係数テーブルから生成されても良い。一例として、16ビットは8x8境界領域を指定しても良く、マスクの各ビットは、対応するフィルタの境界領域内の1又は少数のコヒーレントサンプリング位置(例えば、1つの2x2クワッド)を示しても良い。留意すべきことに、ここで、少なくとも1つの貢献するテクセルを含む全てのマルチテクセルグループ化について全てのサブサンプルアドレス(u’,v’)が生成されるので、各サブサンプルアドレスの処理は、シェーダーコアとテクスチャサンプラとの間で通信される各入力テクスチャアドレスに対して、フィルタ論理回路を通じて効率的に進めることができる。
図4に戻り、方法401は継続して、フィルタ係数をキャッシュにフェッチする。実施形態では、係数値は、フィルタモードに依存する方法で、各テクセルサブサンプルアドレスについてフェッチされる。各サブサンプルアドレス(u’,v’)について少なくとも1つのフィルタ係数が必要だが、非分離フィルタモードでは1つのフィルタ係数Cxyのみが利用され、分離フィルタモードでは2のフィルタ係数HA,x、VB,yが用いられる。係数の精度は、実装に伴い変化しても良い。例えば、8ビット又は16ビットの係数は、分離又は非分離モードでサポートされても良い。例示的な一実施形態では、1つの係数(例えば、Cxy)について、複数のレベルの(例えば、8ビットから16ビットの間で選択可能な)精度がサポートされる。特定の分離モードの実施形態では、2つの係数テーブルからの値(1つはHA,xの、1つはVB,yの)は、各サブサンプルアドレスについてキャッシュされる。また、特定の非分離フィルタモードの実施形態では、係数は、入力テクスチャアドレスの無視された(例えば、丸め込まれた)任意の小数部分(β,β)を有する入力テクスチャアドレスの非小数部分にのみ基づいてアクセスされる。したがって、非分離フィルタは、テクセルレベルの精度を提供できる。しかしながら、特定の分離フィルタモードの実施形態では、キャッシュされた係数値は、入力テクスチャアドレスの小数部分に基づく(又はその関数である、又はそれに依存する)。このような実施形態は、テクセル未満の精度を提供する。このようなフィルタ係数の小数アドレッシング及び分離フィルタモードの他の特徴の更なる説明は、方法401の議論に続き、図6A〜6Eとの関連で以下に更に提供される。
続けて図4を参照すると、動作440で、各サブサンプルアドレス(u’,v’)に対応するテクセルカラー値は、メモリからテクセルデータキャッシュへフェッチされる。実施形態は本態様に限定されないので、動作440で、従来知られている任意の技術が用いられても良い。動作450で、サブサンプルリングされたテクスチャデータは、各テクセルサブサンプルアドレスに関連するテクセルカラー値及び係数値に基づきフィルタリングされる。例えば、上述のフィルタ関数の式は、各サブサンプルアドレス(u’,v’)におけるフィルタ係数(例えば、Cxy)を各サブサンプルアドレス(u’,v’)における対応するテクセルのカラー値(Txy)と乗算するフィルタ論理回路と共に実装されても良い。次に、結果として生じた各サブサンプルアドレスのカラー値は、アキュムレータに渡される。アキュムレータは、サンプラのフィルタリング論理回路内に実装されても良い。アキュムレータ内で、値は、全てのサブサンプルアドレス(u’,v’)に渡り各カラーチャネル(例えば、R/B/G)内で累算される。次に、動作470で、累算されたカラーは、他のピクセルに対応するフィルタリングされたカラーと一緒にパックされても良い、ピクセルのサンプリングされフィルタリングされたカラーとして、(例えば、EU110へ)返される。方法401は、通常、非分離及び分離フィルタモードの両方に適用可能であるが、方法401の種々の動作(例えば、420、430、及び440)はフィルタモードに依存する。図6A〜6Eと関連し、分離フィルタモードに特有の追加態様を詳細に説明する。
図6Aは、実施形態に従う、動作430の一部として実施されても良い分離テクスチャフィルタリング方法601を示すフロー図である。方法601は、動作605で開始し、サンプラが分離フィルタモードであることを示す。動作610で、水平及び垂直係数は、入力テクスチャアドレス111の小数部分(β及びβ)を有する垂直及び水平係数テーブルから選択される。これらの小数アドレス部分は、図6Eに、入力テクスチャアドレス111に対する例示的なテクセルクワッド515について示される。図6Bに更に示すように、垂直係数テーブル671はβに基づきアクセスされ、水平係数テーブル672はβに基づきアクセスされる。実施形態では、係数テーブル671、672の各々は、複数の小数アドレス値の各々について係数値セットを有する。特定の小数アドレスによりインデックス付けされる各セットは、フィルタタップに対応する非ゼロ係数値を有する境界領域により許容される最大テクセル数の各々について、係数値を含む。例えば、図6C及び6Dに更に示すように、テーブルは小数アドレス値によりインデックス付けされ、各テーブルエントリは、2〜8個の非ゼロ係数値(フィルタタップTap〜Tap)を有する。タップの上側境界は、例示的な実施形態では8x8テクセルである境界領域のサイズに依存する。非ゼロ係数値の数は、その次元の貢献するテクセル数に対応する。例えば、図6Eを参照すると、水平テーブル671内では、オフセット水平係数を選択するために、エントリがβだけトラバースされる。小数アドレスは最も近いインデックス値に丸め込まれても良く、実装に依存して、小数アドレスインデックス付けの種々のレベルの精度がサポートされても良い。例えば、各テーブルは32、64、128、又は256個のエントリを有しても良い、等である。次に、対応するテーブルエントリの水平係数621がアクセスされる。図示の例では、8テクセル幅の境界領域に対応するこのような係数は最大8個ある。非ゼロであるこれらの係数値の数は、フットプリント幅w(つまり、貢献する第1のフィルタタップの数)により定められるテクセル値に対応する。垂直テーブル672では、適正なオフセット垂直係数を選択するために、エントリはβだけトラバースされる。次に、対応するテーブルエントリの水平係数622がアクセスされる。図示の例では、8テクセル高の境界領域に対応するこのような係数は8個ある。非ゼロであるこれらの係数値の数は、フットプリント高さh(つまり、貢献する第2のフィルタタップの数)により定められるテクセル値に対応する。
方法601の説明を続けると、水平及び垂直係数を適正にオフセットするために上述の技術を用いて、係数はメモリから係数キャッシュ内へフェッチされ、動作420で生成された最小粒度のテクセルグループのシーケンス化が続く。この最小グループが2x2近隣テクセルを含むテクセルクワッドである例示的な実施形態では、各テクセルクワッドの4個の係数(例えば2個の水平係数621及び2個の垂直係数622、図6B)は、有利なことに、メモリから1つのキャッシュラインにフェッチされる。このような係数キャッシュラインの数は、指定された分離フィルタフットプリントについて生成されたテクセルクワッドの数に渡りシーケンス化されても良い(例えば、2個のテクセルクワッドに対して2個のキャッシュライン、16個のクワッドに対して16個のキャッシュライン、等)。次に、上述の分離フィルタの式は、動作520で、合成(2D)係数を形成するために一緒に乗算された各サブサンプルアドレスのキャッシュされた垂直及び水平係数と共に実装されても良い。これは、図6Bの例示的な2x2テクセルクワッドについて更に説明される。図6Bでは、水平係数H、Hは垂直係数V、Vで乗算され、合成係数HV、HVを得る。水平係数H、Hはそれぞれ垂直係数V、Vで乗算され、合成係数HV、HVを得る。ここで、方法601は方法401の動作450に戻ることができ、フィルタ係数のキャッシュされたラインは方法601から出力される合成係数である。次に、図6Bに更に例示されるように、方法401の動作450及び460が続く。合成係数623は、(単一のキャッシュラインに同様に格納され得る)サブサンプルアドレスの対応するクワッドのテクセルカラー値T、T、T、及びTで乗算される。次に、結果として生じた重み付けされたテクセルカラー値は、分離フットプリントの間シーケンス化された全てのサブサンプルアドレスに渡り累算され、動作470でテクスチャサンプラから出力されるフィルタリングされたカラー値を得る。
<マルチモードフィルタロジックユニット>
バイリニアフィルタリングに加えてテクセル値の加重平均のために構成可能なマルチモードフィルタロジックユニットの更なる説明は、図7A〜10に関連して以下に提供される。このようなマルチモードフィルタロジックユニットは、任意の特定のフィルタフットプリントに渡り加重平均化するために上述の複数のサンプラモードに対応する柔軟性を有し、必要に応じて効率的なバイリニア補間も実行する。明確化のために、構成可能なフィルタアーキテクチャ及びマルチモードフィルタリング方法は、図2に示したMM FLユニット132に関連して説明される。説明されたこれらの特徴のうちの1又は複数は有利なことにMM FLユニット132に組み込まれても良いが、留意すべきことに、これらの特徴のうちの1又は複数は、多数の代替方法でグラフィック処理システムに組み込まれても良い。このように、フィルタロジックユニットの実施形態に見られる1又は複数の特徴は、マルチモードサンプラに関連して上述した1又は複数の特徴を有しないで実装されても良い。例えば、1又は複数のマルチモードフィルタロジックの実施形態は、フレキシブルフットプリントモードを必要としない。それと同時に、フレキシブルフットプリントをサポートする1又は複数のマルチモードサンプラはマルチモードフィルタロジックを必要としない。しかしながら、マルチモードフィルタロジックユニットと共にフレキシブルフットプリントモードをサポートするマルチモードサンプラを組み込む実施形態は、当業者に明らかな相乗効果を有する。
実施形態では、グラフィック処理システムは、マルチモードフィルタリング方法を実装するのに適する構成可能な又は「フレキシブルな」テクスチャフィルタを有する。図7Aは、一実施形態に従って、マルチモードフィルタリング方法701を示すフロー図である。方法701は、動作705で開始し、フィルタモード信号を受信する。フィルタモード信号は、少なくとも、「バイリニアフィルタ」モードと「フレキシブルフィルタ」モードとの間を区別する。バイリニアフィルタモードでは、動作715で、テクセルデータ(例えば、カラー値)は、バイリニアフィルタによりサブテクセル(小数)アドレスを用いて重み付けされ、動作770で出力されるフィルタリングされたカラーを得る。フレキシブルフィルタモードでは、動作725で、テクセルデータは、サブテクセル(小数)アドレスに依存しても良い又はしなくても良い所定のテクセル重み付け係数に基づき重み付けされる。例えば、上述のような非分離フィルタモードでは、フレキシブルフィルタモードにおいて動作745で受信された係数は、小数アドレスとは無関係である。一方で、分離フィルタモードにおいては、係数はサブテクセルに依存する。
動作709でモード信号がバイリニアフィルタモードを示すと決定するのに応答して、方法701は動作715に進み、フィルタロジックは、動作735で受信した4個のテクセル値に渡りバイリニア補間(つまり、「bilerp」)を実行する。単一の2x2テクセルクワッドがテクスチャアドレス(例えば、図5Aのフットプリント520−1のクワッド515−1と等価である)に基づきサブサンプリングされた例示的な実施形態では、単一のキャッシュラインは、これらの4個の近隣テクセル値を含む。バイリニア補間は、動作745で受信された小数テクスチャアドレスβ及びβを示す係数を用いて実行される。
動作709でモード信号がフレキシブルフィルタモードを示すと決定するのに応答して、方法701は動作725に進み、フィルタロジックは、動作735で受信した少なくとも4個のテクセル値に渡り加重平均を生成する。多数の2x2テクセルクワッドが、テクスチャアドレス及びフットプリント(例えば、図5Aに示したフットプリント520−1〜520−8のうちの任意のもの)に基づき、(u’,v’)としてサブサンプリングされた例示的な実施形態では、読み出された単一のキャッシュラインは、4個の近隣テクセル値を含んでも良い。1つのテクセルクワッドに渡る加重平均は、4個の所定の重み付け係数を用いて生成される。各係数は、クワッド内の対応するテクセルに関連する重みを示す。動作770でフィルタリングされたカラーを得ると、方法701は終了する。次に、加重平均カラーは、フィルタフットプリントにマッピングされる複数のテクセルクワッドに渡り更に平均化するためにアキュムレータ(例えば、図2のアキュムレータ298)に返され、及び/又は後にディスプレイスクリーンにグラフィカルオブジェクトを出力するためにシェーダーコア(例えば、図2のEU110)に返されても良い。
図7Bは、実施形態に従って、マルチモードフィルタリング方法701を実行するよう構成されるフィルタロジックユニット732のブロック図である。有利な一実施形態では、フィルタロジックユニット732は、図2に示したフィルタロジックユニット132のように利用される。図示のように、フィルタロジックユニット732はフィルタモード入力線706に結合される。フィルタロジックユニット732は、テクセル値入力線707A及び係数入力線708Aに更に結合される。これらの入力線は、種々のシステム入力を明確に区別するために別個に示されるが、入力信号線のうちの1又は複数は、これらの種々のデータ信号をフィルタロジックユニット732に伝達するために任意の従来の方法で多重化されても良い。
フィルタロジックユニット732の論理回路は、フィルタモード信号入力706に結合されフィルタモード信号により選択可能な複数のモードで動作する少なくとも1対のフレキシブルフィルタブロック(FFB)を更に有する。例示的な一実施形態では、各FFBは、バイリニア補間の一部を実行し又はテクセルクワッドに渡るフレキシブル加重平均化の一部を同様に実行するよう構成可能である。以下に詳述するように、FFBの回路は複数のフィルタリング機能のうちの所与の1つの一部のみを担い、各FFBは、有利なことに、同じ回路を有し、フィルタリングモードに関係なく完全に利用されるスケーラブルなフィルタロジックブロックを表す。このようなマイクロアーキテクチャ設計は、チップ面積を効率的に使用し、電力消費を低減する。例示的なマイクロアーキテクチャでは、フィルタリングは、2つのFFBの間に分配され、1対のFFBにより表される回路は、第1のモードで動作し、所与の入力アドレスに対して読み込まれた4個のテクセルに関連する小数アドレスを示す2個の入力係数に基づき、4個の近隣テクセル値のグループに渡ってバイリニア補間を実行する。同様に、1対のFFBにより表される回路はまた、第2のモードで動作し、それぞれ所与のフィルタフットプリントに対して読み込まれた4個のテクセル値のうちの1つに関連する重みを示す4個の係数に基づき、4個の近隣テクセル値のグループに渡って加重平均を生成する。次に、4個のテクセルに渡る平均化は、例えば図2のアキュムレータ298により、フットプリントに渡って更に累算されても良い。
図7Bに示す例示的な実施形態では、フィルタロジックユニット732は、4個のFFB290、720、760及び770を含む。フィルタモード信号に応答して、FFB290及びFFB760により表される回路は、第1のモードで動作して、係数入力線708Aから受信した係数を用いて、テクセル値入力線707Aで受信した4個の近隣テクセル値のグループに渡りバイリニア補間を実行する。FFB290及び720により表される回路は、第2のモードで動作して、入力線708Aから受信した係数を用いて、入力線707Aからの4個の近隣テクセル値のグループに渡り、加重平均を生成する。この例示的な実施形態では、FFB対はバイリニアフィルタモードにおいて段階分けされ、バイリニア補間は一方のFFBにより処理される水平フェーズ及び他方のFFBにより処理される垂直フェーズにシリアル化される。フレキシブルフィルタモードでは、FFB対は段階分けされず、むしろ代わりに、各FFBは、4個のテクセルのうちの2個に渡り並列して加重平均を生成する。次に、加重平均は累算され、4分の1テクセルクワッドの加重平均を得る。このマイクロアーキテクチャでは、マルチプレクサ700は、入力線708Aで受信した係数をFFB290及び720の各々に分配する。バイリニアフィルタモードでは、係数は、小数アドレスの第1の次元(例えば、β)に関連付けられる。同様にマルチプレクサ750は、係数入力線708Bからの小数アドレスの第2の次元(例えば、β)に関連付けられた係数を分配する。βに基づく係数は、段階分けされたバイリニア補間フィルタリングの第2のフェーズで使用するために、FFB760へ出力される。
実施形態では、セレクタは、2個のフレキシブルフィルタブロックを選択的に段階分けするために、1対のフィルタロジックブロックの間に結合される。セレクタは、上流フィルタブロックからの出力を下流フィルタブロック又は累算のような更なる処理を担う出力段に渡しても良い。図7Bに示した例示的な実施形態では、FFB290からの出力は、セレクタ730に渡される。セレクタ730は、フィルタモード信号入力706に更に結合され、バイリニアフィルタモード信号に応答して、FFB290からの出力をFFB760の入力に渡す。同様に、FFB720からの出力はセレクタ740に結合され、セレクタ740は、セレクタ730と同様に、フィルタモード信号入力706に更に結合される。バイリニアフィルタモード信号に応答して、セレクタ740は、FFB720からの出力をFFB770の入力に渡す。FFB760は、出力段780に結合され、第1のテクセルクワッドについてマルチプレクサ750から受信したβ係数に基づく段階分けされたバイリニア補間フィルタリングの第2のフェーズの結果を出力する。同様に、FFB770は、出力段780に、第2のテクセルクワッドについてマルチプレクサ750から受信したβ係数を有する段階分けされたバイリニア補間フィルタリングの第2のフェーズの結果を出力する。
代替で、フレキシブルフィルタモード信号に応答して、セレクタ730、740は、それぞれFFB290、720からの出力を出力段780に渡す。同様に、フレキシブルフィルタモード信号に応答して、FFB760及び770は、テクセル値入力線707Bを通じて第2のテクセルクワッドのテクセル値を受信する。該テクセル値は、係数信号入力線708Bから受信した重み付け係数を用いて処理され、出力段780に渡される。出力段780は、フィルタモード信号入力線706に更に結合される。フィルタモード信号に応答して、出力段780は、セレクタ730及び/又は740、及び/又はFFB720及び/又はFFB760及び/又はFFB770から受信した信号を渡し、これらの受信した信号のいずれかを累算し、及び/又はこれらの受信した信号のうちの1又は複数を正規化し、及び/又はこれらの受信した信号のうちの複数の間を補間しても良い。出力段780は、出力信号線799に更に結合される。出力信号線799を介して、フレキシブルフィルタロジックユニット732からの結果が、外部宛先へ伝達される。
上述のマルチモードフィルタリング方法及びフレキシブルフィルタロジックユニット732のアーキテクチャと共に、方法及びアーキテクチャの態様は、図8A、8B及び8Cのバイリニアフィルタモードと関連して及び図9A、9Bのフレキシブルフィルタモードと関連して以下に詳述される。
図8Aは、実施形態に従って、図7Aに示すマルチモードフィルタリング方法701の部分として実行され得るバイリニアフィルタリング方法801を示すフロー図である。方法801は、動作805で開始し、バイリニアフィルタモード信号を受信する。このような信号は、トライリニアフィルタモードのために更に利用されても良い。トライリニアフィルタモードでは、バイリニアモード動作の後に、異なる詳細レベル(levels of detail:LOD)に関連する手癖r有漢の追加補間段階が続く。方法801では、動作745で入力として受信した係数は、所定の小数アドレスに関連するβ及びβ値である。動作815で、係数の補数(1−β及び1−β)が生成される。動作835で、第1のリニア補間(例えば、水平方向)は、1対のリニア補間値T’、T’を生成するために実行される。T’、T’は、動作735でメモリから(例えば、1つのキャッシュラインに)読み込まれたテクスチャアドレスに関連する最も近い近隣テクセルクワッドについて、1つの次元の小数アドレス及び4個のテクセル値(例えば、カラー)T、T、T、Tから生成される。第1のリニア補間値T’は、第1のテクセル対の第1のテクセル値を小数アドレスに対応する第1の係数で乗算することにより、第1のテクセル対について生成される。第1の対のうちの第2のテクセルは、第1の係数の補数を乗算される。第2のリニア補間値T’は、第1の係数に第2の対に関連する第3のテクセル値を乗算することにより、第2のテクセル対について生成される。第2の対に関連する第4のテクセル値は、第1の係数の補数を乗算される。次に、これらのスケーリングされた値は加算される。例示的な実施形態では、以下の関数を実施することにより、βに基づき2個の対のうちの各々について1つの補間値T’、T’が生成される。
’=β+(1−β)T
’=β+(1−β)T
代替で、補間は、動作835で、βv及びテクセル値対T,T及びT,Tに基づき実行されても良い。次に、方法801は動作845に進み、第2のリニア補間が実行され、バイリニア補間値T”を生成する。上述の例では以下の関数を更に実装する。
”=β’+(1−β)T
次に、方法801は終了し、フィルタリングされた結果として、バイリニア補間値T”の出力を有する。
図8Bは、実施形態に従って、バイリニアフィルタリングモードに構成されるフィルタロジックユニット832のブロック図である。例示的な実施形態では、バイリニア及び/又はトライリニアフィルタモードを示すフィルタモード信号と関連する状態では、フィルタユニット832は図7Bのフィルタロジックユニット732である。図7Bに導入される参照符号は、明確化のため図8Bでも保持される。しかしながら、代替の実施形態では、フィルタロジックユニット832は、フィルタロジックユニット732内に示される全てのコンポーネントを有しなくても良い。
図8Bに示す例示的な実施形態では、各フレキシブルフィルタブロック290、720、760、770は、4個のテクセル値及び1つの次元の小数アドレスから、1対のリニア補間値を生成する。マルチプレクサ700は、入力テクスチャアドレス(u,v)を格納する係数メモリに通信可能に結合される。1つのテクスチャアドレスに関連付けられた係数は、読み込まれ、βu、0としてFFB290へ出力される。FFB290は、図2のテクセルキャッシュ215のようなテクセルメモリに通信可能に結合され、第1のテクスチャアドレスに関連する最も近い近隣テクセルクワッドのテクセル値T,T,T,Tを読み込む。FFB290は、第1のリニア補間(例えば、水平方向)を実行して、1つのリニア補間値T’及びT’を生成する。FFB720は、テクセルメモリに通信可能に結合され、第2のテクスチャアドレスに関連する最も近い近隣テクセルクワッドのテクセル値T,T,T,Tを読み込む。FFB720は、別の第1のリニア補間を実行して、例えば上述の式を第2のテクセルクワッドに適用することにより、リニア補間値T’、T’の別の対を生成する。
FFB290は、(例えば、図7Bに示すセレクタ730により)FFB760に通信可能に結合される。同様に、FFB720はFFB770に結合される。例示的な実施形態では、FFB760(FFB770)により実行される第2のリニア補間は、高及び低ビット部分(例えば、T,high、T,high、及びT,low、T,low、又はT,high、T,high、及びT,low、T,low)に分割される補間値T’及びT’(T’、T’)に対して実行される。第1のリニア補間フェーズからの補間値の分割は、少なくとも、FFB290、720、760、770が同じビット幅(例えば8ビット)のロジックを全て利用できる、及びテクセル値入力の数が同じであり、各FFB内で同じマイクロアーキテクチャを許容する、という理由で有利である。FFB290及び760内で8ビットロジックが用いられる場合、各テクセル値T、T、T、T並びにβu,0は8ビット表現を有し、補間値T’及びT’は16ビット表現を有し、T’、T’も同様である。変換器845は、ワイドビットリニア補間値を高ビット部分(T,high、T,high)及び低ビット部分(T,low、T,low)に変換し、これらのそれぞれは例えば8ビット表現である。変換器845の出力は、FFB760の入力に通信可能に結合される。このアーキテクチャは、変換器846及びFFB770でも複製される。FFB760及び770は、マルチプレクサ750に通信可能に結合される。マルチプレクサ750は、係数メモリに更に通信可能に結合される。係数メモリから、テクスチャアドレスに関連する第2の係数が読み込まれ、βv,0としてFFB760に出力される。同様に、係数βv,1はFFB770に出力される。次に、FFB760及び770は、第2のリニア補間(例えば、垂直リニア補間)を実行して、それぞれバイリニア補間値T”及びT”を生成する。出力段780は、バイリニア補間値T”及びT”をバイリニアフィルタリング結果として出力し、又は、トライリニアモード信号に応答して、例えば2つのLOD間のバイリニア補間値をスケーリングする任意の従来技術を用いて、係数βに基づきT”及びT”の間の更なる補間を実行しても良い。
図8Cは、フィルタロジックユニット832により実行される第2のリニア補間方法802を更に示す。FFB段720、770の第2の対は、この同じ方法を実行しても良い。方法802は、動作839で開始し、第1のFFBからT’及びT’を受信する。次に、動作841で、受信したワイドビットリニア補間値は、高及び低ビット部分に変換される。動作843で、バイリニア補間値T”は、(βv,0及び低ビット部分T,low、T,lowに基づき生成された)第3のリニア補間値と、(βv,0及び高ビット部分T,high、T,highに基づき生成された)第4のリニア補間値とを結集することにより、フルビット幅(例えば、16ビット)で生成される。例えば上述の第2のリニア補間の式を拡張すると、動作843で、T”は以下の関数を実装することにより生成されても良い。
”=βv,0,low+(1−βv,0)T,low+(βv,0,high+(1−βv,0)T,high)*256
ここで、マルチプレクサ256は、高ビットを、8個の位置だけ左にシフトする(キャリービットが用いられても良い、等)。次に、方法802は、動作871で終了し、バイリニア補間値T”を出力する。
図9Aは、実施形態に従って、図7Aに示すマルチモードフィルタリング方法の部分として実行され得るフレキシブルフィルタリング方法を示すフロー図である。方法901は、動作905で開始し、バイリニアフィルタモード信号を受信する。方法901では、動作745で入力として受信した係数は、それぞれ、動作735で受信した4個のテクセル値T、T、T、Tのうちの1つに関連する重みを示す。動作935で、例えば次式により、第2の係数によりスケーリングされる第2のテクセル値に加算される加重値を生成するために、第1のテクセル値は第1の係数によりスケーリングされる。
’=w+w
同様に、第3及び第4のテクセル値は、次式に従って重み付けされる。
’=w+w
次に、動作945で、これらの重み付けされたテクセル対は、累算され(加算され)、1つのテクセルクワッドについて1つの加重平均を得る。更なる実施形態では、累算値は、正規化因子により除算されても良い。次に、方法901は動作972で終了し、例えば図2のアキュムレータ298に、フレキシブル加重平均を出力する。
図9Bは、実施形態に従って、フレキシブルフィルタリングモードに構成されるフィルタロジックユニットのブロック図である。例示的な実施形態では、バイリニアフィルタモードを示すフィルタモード信号と関連する状態では、フィルタユニット932は図7Bのフィルタロジックユニット732である。図7Bに導入される参照符号は、明確化のため図9Bでも保持される。しかしながら、代替の実施形態では、フィルタロジックユニット932は、フィルタロジックユニット732内に存在する全てのコンポーネントを有しなくても良い。
図9Bに示す例示的な実施形態では、各フレキシブルフィルタブロック290、720、760及び770は、第1の係数によりスケーリングされた第1のテクセル値及び第2の係数によりスケーリングされた第2のテクセル値により、第1及び第2のテクセル値の和を生成する。マルチプレクサ700は、係数キャッシュのような係数メモリに通信可能に結合される。係数メモリからは、1つのテクスチャアドレスに関連付けられた4個の係数w、w、w、wが読み込まれ、w、wはFFB290に出力され、w、wはFFB720に出力される。FFB290は、図2のテクセルキャッシュ215のようなテクセルメモリに通信可能に結合され、第1のテクスチャアドレスに関連する最も近い近隣テクセルクワッドのテクセル値T,Tを受信する。、FFB720は、同様に結合され、第1のテクスチャアドレスに対してテクセル値T,Tを受信する。上述のフレキシブル重み付け関数を実施して、FFB290は、第1の係数wによりスケーリングされた第1のテクセル値Tと第2の係数wによりスケーリングされた第2のテクセル値Tとの和として、T’を生成する。同様に、FFB720は、第1の係数wによりスケーリングされた第1のテクセル値Tと第2の係数wによりスケーリングされた第2のテクセル値Tとの和として、T’を生成する。FFB290及び720は、出力段780に通信可能に結合される。次に、出力段780は、アキュムレータとして動作して和、T’及びT’を加算する。加算した結果は、1つのテクセルクワッドの加重和としてフィルタロジック932から1又は複数の出力信号線に出力される。同様に、FFB760及び770は、別のテクセルクワッドの加重和T’及びT’を出力しても良い。これらは、出力段780で、T’及びT’の和と更に累算されても良い。
上述の複数のフレキシブルフィルタブロックのマルチモード動作と共に、1つのフレキシブルフィルタブロックのマイクロアーキテクチャのより詳細な説明は、図10A〜10Bと関連して以下に記載される。図10Aは、実施形態に従って、バイリニアフィルタリングモードに構成されるフィルタロジックユニット内のフレキシブルフィルタブロックのブロック図である。図10Bは、実施形態に従って、フレキシブルフィルタリングモードに構成される図10Aのフレキシブルフィルタブロックのブロック図である。
図10Aを先ず参照すると、フレキシブルフィルタブロック(FFB)1001は、図7B、8B又は9Bに示したフィルタロジックユニットのいずれかの中で示した各FFBにより用いられる、一実施形態における例示的なマイクロアーキテクチャを示す。しかしながら、他の実施形態では、フレキシブルフィルタブロック1001は、代替設計のフィルタロジックユニットに組み込まれても良い。FFB1001は、バイリニア(トライリニア)フィルタモードを示すフィルタモード信号に関連する状態にある回路を示す。FFB1001は、所定の小数アドレス(例えば、β又はβ)又は所定のテクセル重み付け係数(例えば、w又はw)に関連する係数を受信するために係数入力1005を有する。バイリニアフィルタモードでは、この係数は例えばβである。FFB1001は、それぞれテクセルカラー値を受信するために、2個のテクセル値入力1010Aを更に有する。第1の乗算器1015は、係数入力1005に結合される第1の入力と、テクセル値入力1010Aに結合される第2の入力と、を有する。第2の乗算器1020は、インバータ1025と通じて係数入力1005に結合される第1の入力と、第2のテクセル値入力1010Bに結合される第2の入力と、を有する。加算器1030は、第1の乗算器1015の出力及び第2の乗算器1020の出力に結合される。乗算器1020と加算器1030との間の結合は、フィルタモード信号に応答するスイッチ1040を通じる。バイリニアモードでは、スイッチ1040は、β又はβの補数によりスケーリングされたテクセル値(例えばT)を通過させるために閉じられる。このテクセル値は、第1の補間値(例えばT’)を生成するために、別のテクセル値(例えばT)がβ又はβによりスケーリングされた結果に加算される。このロジックは、第2の補間値(例えばT’)を生成するために、入力1006、1011A及び1011B、乗算器1016、1021、インバータ1026、加算器1031並びにスイッチ1041により、フィルタブロック1001内で複製される。これにより、バイリニア補間の1つのフェーズを実装する。
加算器1030及び1031の出力にはアキュムレータ1050が結合される。アキュムレータ1050は、フィルタモード信号に更に結合され、フィルタモード信号及び第1若しくは第2のリニア補間フェーズが実行されているかに基づき、加算器の出力を一緒に加算し又は通過させる。例えば、バイリニアモードであるが、第1のリニア補間フェーズを実行しているとき、アキュムレータ1050は、加算器1030及び1031から受信したデータ(例えば、T’及びT’)を通過させる。バイリニアモードであるが、第2のリニア補間フェーズを実行しているとき、アキュムレータ1050は、加算器1030及び1031から受信したデータのシフト加算を実行し、バイリニア補間値T”を作る。
図10Bでは、FFB1001は、フレキシブルフィルタモードを示すフィルタモード信号に応答して、第2の状態にある。この状態では、スイッチ1040及び1041は開かれ、入力1005及び1006で受信した係数は、それぞれ、入力1010A及び1011Aで受信したテクセル値により乗算される。これらのスケーリングされた値は、アキュムレータ1050を通過する。フレキシブルフィルタモードでは、アキュムレータ1050は、受信した値を合計し、本願明細書のどこかに記載されるように、2つのテクセルの加重平均を出力する。
図11は、実施形態に従う、例示的なシステム1100の説明図である。システム1100は、図2に示した種々の機能ブロックの全部又は一部を実装しても良い。例えば、一実施形態では、MMテクスチャサンプラ121は、システム1100に含まれる。システム1100はモバイル装置であっても良いが、システム1100はこれに限定されない。例えば、システム1100は、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯電話機、スマートデバイス(例えば、スマートフォン、スマートタブレット、又はモバイルテレビ)、MID(mobile internet device)、メッセージング装置、データ通信装置、等に組み込まれても良い。システム1100は、基盤装置であっても良い。例えば、システム1100は、大判テレビジョン、セットトップボックス、デスクトップコンピュータ、又は他の家庭若しくは市販ネットワーク装置に組み込まれても良い。
種々の実装において、システム1100は、HID1120に結合されるプラットフォーム1102を有する。プラットフォーム1102は、パーソナルメディアデータサービス装置1130、パーソナルメディアデータ配信装置1140又は他の同様のコンテンツソースからキャプチャされたパーソナルメディアデータを受信しても良い。1又は複数のナビゲーション機能を有するナビゲーション制御部1150は、例えばプラットフォーム1102及び/又はHID1120と相互作用するために用いられても良い。これらのコンポーネントの各々は、以下に詳細に説明される。
種々の実装では、プラットフォーム1102は、チップセット1105、プロセッサ1110、メモリ1112、記憶装置1114、グラフィックサブシステム1115、アプリケーション1116及び/又は無線機1118の任意の組合せを有しても良い。チップセット1105は、プロセッサ1110、メモリ1112、記憶装置1114、グラフィックサブシステム1115、アプリケーション1116及び/又は無線機1118の間の相互通信を提供しても良い。例えば、チップセット1105は、記憶装置1114との相互通信を提供可能な記憶装置アダプタ(図示しない)を有しても良い。
プロセッサ1110は、CISC(Complex Instruction Set Computer)又はRISC(Reduced Instruction Set Computer)プロセッサ、x86命令セット互換プロセッサ、マルチコア、又は任意の他のマイクロプロセッサ又はCPU(central processing unit)として実施されても良い。種々の実装では、プロセッサ1110は、マルチコアプロセッサ、マルチコアモバイルプロセッサ、等を有しても良い。例示的な一実施形態では、プロセッサ1110は、CMMS1101及び本願明細書のどこかで記載されたCMMS1101のコンポーネントとしての種々のモジュールのプロセス及び/又は方法を呼び出し又は実装する。
メモリ1112は、RAM(Random Access Memory)、DRAM(Dynamic Random Access Memory)、又はSRAM(Static RAM)のような揮発性メモリ装置として実施されても良いが、これらに限定されない。
記憶装置1114は、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、内蔵記憶装置、外付け記憶装置、フラッシュメモリ、バッテリバックアップSDRAM(synchronous DRAM)、及び/又はネットワークアクセス可能な記憶装置のような不揮発性メモリ装置として実施されても良いが、これらに限定されない。種々の実施形態では、記憶装置1114は、例えば複数のハードドライブが含まれるとき重要なデジタルメディアのために記憶性能拡張保護を増大させる技術を有しても良い。
グラフィックサブシステム1115は、表示のために静止画像又はビデオメディアデータのような画像の処理を実行しても良い。グラフィックサブシステム1115は、例えばGPU(graphics processing unit)又はVPU(visual processing unit)であっても良い。アナログ又はデジタルインタフェースは、グラフィックサブシステム1115及びディスプレイ1120に通信可能に結合するために用いられても良い。例えば、インタフェースは、HDMI(登録商標)(High−Definition Multimedia Interface)、Display Port、無線HDMI、及び/又は無線HD準拠技術のうちの任意のものであっても良い。グラフィックサブシステム1115は、プロセッサ1110又はチップセット1105に統合されても良い。幾つかの実装では、グラフィックサブシステム1115は、チップセット1105に通信可能に結合されるスタンドアロン型カードであっても良い。
本願明細書に記載されたテクスチャサンプラの特徴、関連するテクスチャサンプリング及びフィルタリング技術は、種々のハードウェアアーキテクチャで実装され得る。例えば、グラフィック及び/又はビデオ機能は、チップセットに統合されても良い。代替で、別個のグラフィック及び/又はビデオプロセッサが用いられても良い。更に別の実施形態として、本願明細書に記載の方法及び機能は、マルチコアプロセッサを含む汎用プロセッサにより提供されても良い。更なる実施形態では、方法及び機能は、専用消費者電子機器内に実装されても良い。
無線機1118は、種々の適切な無線通信技術を用いて信号を送信及び受信可能な1又は複数の無線機を有しても良い。このような技術は、1又は複数の無線ネットワークに渡る通信に関与し得る。例示的な無線ネットワークは、WLAN(wireless local area network)、WPAN(wireless personal area network)、WMAN(wireless metropolitan area network)、セルラネットワーク、及び衛星ネットワークを含む(が、これらに限定されない)。このようなネットワークに渡る通信では、無線機718は、任意のバージョンの1又は複数の適用規格に従って動作しても良い。
種々の実装では、HID1120は、任意のテレビジョン型モニタ又はディスプレイを有しても良い。HID1120は、例えば、コンピュータディスプレイスクリーン、タッチスクリーンディスプレイ、ビデオモニタ、テレビ型装置、及び/又はテレビを有しても良い。HID1120は、デジタル及び/又はアナログであっても良い。種々の実装では、HID720は、ホログラフィックディスプレイであっても良い。また、ディスプレイ1120は、視覚投影を受け得る透過面であっても良い。このような投影は、種々の形式の情報、画像及び/又はオブジェクトを伝達し得る。例えば、このような投影は、MAR(mobile augmented reality)アプリケーションのための視覚的オーバレイであっても良い。1又は複数のソフトウェアアプリケーション1116の制御下で、プラットフォーム1102は、ユーザーインターフェース1122をHID1120に表示しても良い。
種々の実装では、パーソナルメディアサービス装置1130は、任意の全国的、国際的、及び/又は独立型サービスによりホストされても良く、したがって例えばインターネットを介してプラットフォーム1102にアクセス可能であっても良い。パーソナルメディアサービス装置1130は、プラットフォーム1102に及び/又はディスプレイ1120に結合されても良い。プラットフォーム1102及び/又はパーソナルメディアサービス装置1130は、ネットワーク1160へ及びそれからメディア情報を通信(例えば、送信及び/又は受信)するために、ネットワーク1160に結合されても良い。パーソナルメディア配信装置1140は、プラットフォーム1102に及び/又はHID1120に結合されても良い。
種々の実装では、パーソナルメディアデータサービス装置730は、ケーブルテレビボックス、パーソナルコンピュータ、ネットワーク、電話機、インターネット可能装置、又はデジタル情報及び/又はコンテンツを配信可能な機器、及びネットワーク1160を介して又は直接にメディアデータプロバイダとプラットフォーム1102との間でコンテンツを単方向若しくは双方向通信可能な任意の他の類似の装置を有しても良い。コンテンツは、単方向若しくは双方向に、システム1100内のコンポーネントのうちの任意の1つ及びネットワーク1160を介してプロバイダへ及びそれから通信されても良い。パーソナルメディアの例は、例えば、ビデオ、音楽、医用及びゲーム情報、等を含む任意のキャプチャされたメディア情報を有しても良い。
パーソナルメディアデータサービス装置1130は、メディア情報を含むコンテンツを受信しても良く、コンテンツプロバイダの例は、任意のケーブル若しくは衛星テレビジョン又はラジオ又はインターネットコンテンツプロバイダを含む。提供される例は、本開示に従う実装のいかなる限定も意味しない。
種々の実装では、プラットフォーム1102は、1又は複数のナビゲーション機能を有するナビゲーション制御部1150から制御信号を受信しても良い。制御部1150のナビゲーション機能は、例えばユーザーインターフェース1122と相互作用するために用いられても良い。実施形態では、ナビゲーション制御部1150は、ユーザに空間的(例えば、連続する多次元)データをコンピュータに入力させるコンピュータハードウェアコンポーネント(特に、ヒューマンインタフェース装置)であっても良いポインティングデバイスであっても良い。GUI(graphical user interface)、テレビ、及びモニタのような多くのシステムは、ユーザに、身体的ジェスチャを用いてコンピュータ又はテレビを制御させ及びそれらにデータを提供させる。
制御部1150のナビゲーション機能の動きは、ディスプレイ(例えば、HID720)上で、ディスプレイに表示されるポインタ、カーソル、フォーカス、リング又は他の視覚的指示子の動きにより複製されても良い。例えば、ソフトウェアアプリケーション1116の制御下で、ナビゲーション制御部1150に配置されたナビゲーション機能は、例えばユーザーインターフェース1122上に表示される仮想ナビゲーション機能にマッピングされても良い。実施形態では、制御部1150は、別個のコンポーネントではなく、プラットフォーム1102及び/又はHID1120に統合されても良い。しかしながら、本開示は、本願明細書に示された又は記載された要素又は環境に限定されない。
種々の実装では、ドライバ(図示しない)は、例えば、有効にされると、初期ブートアップ後のボタンのタッチで、テレビのように即座に、ユーザがプラットフォーム1102をオン及びオフにできるようにする技術を有しても良い。プログラムロジックは、プラットフォーム1102に、プラットフォームが「オフ」にされるときでも、コンテンツをメディアアダプタ又は他のパーソナルメディアサービス装置1130又はパーソナルメディア配信装置1140へストリーミングさせても良い。さらに、チップセット1105は、例えば8.1サラウンドサウンド音声及び/又は高品位(7.1)サラウンドサウンド音声をサポートするハードウェア及び/又はソフトウェアを有しても良い。ドライバは、統合グラフィックプラットフォームのグラフィックドライバを有しても良い。実施形態では、グラフィックドライバは、PCI(peripheral component interconnect)Expressグラフィックカードを有しても良い。
種々の実装では、システム1100内に示したコンポーネントのうちの任意の1又は複数は統合されても良い。例えば、プラットフォーム1102及びパーソナルメディアサービス装置1130が統合されても良く、プラットフォーム1102及びキャプチャされたメディアデータ配信装置1140が統合されても良く、又は例えばプラットフォーム1102、パーソナルメディアサービス装置1130及びパーソナルメディア配信装置1140が統合されても良い。種々の実施形態では、プラットフォーム1102及びHID1120は、統合ユニットであっても良い。例えば、HID1120及びコンテンツサービス装置1130が統合されても良く、又はHID1120及びパーソナルメディア配信装置1140が統合されても良い。これらの例は、本開示を限定するものではない。
種々の実施形態では、システム1100は、無線システム、有線システム又は両者の組合せとして実装されても良い。無線システムとして実施されるとき、システム1100は、1又は複数のアンテナ、送信機、受信機、通信機、増幅器、フィルタ、制御ロジック、等のような無線共有媒体を介して通信するのに適するコンポーネント及びインタフェースを有しても良い。無線共有媒体の例は、RFスペクトル等のような無線スペクトルの部分を含んでも良い。有線システムとして実施されるとき、システム1100は、入力/出力(I/O)アダプタ、対応する有線通信媒体でI/Oアダプタに接続するための物理コネクタ、NIC(network interface card)、ディスク制御部、ビデオ制御部、音声制御部、等のような、有線通信媒体を介して通信するのに適するコンポーネント及びインタフェースを有しても良い。有線通信媒体の例は、ワイヤ、ケーブル、金属線、プリント回路基板(PCB)、バックプレーン、スイッチ構造、半導体物質、ツイストペアワイヤ、同軸ケーブル、光ファイバ等を含んでも良い。
プラットフォーム1102は、情報を通信するために1又は複数の論理又は物理チャネルを確立しても良い。情報は、媒体情報及び制御情報を有しても良い。媒体情報は、ユーザに意味のあるデータ提示コンテンツを表し得る。コンテンツの例は、例えば、音声会話、ビデオ会議、ストリーミングビデオ、電子メール(email)メッセージ、音声メールメッセージ、英数字シンボル、グラフィック、画像、ビデオ、テキスト等からのデータを含み得る。ビデオ会議からのデータは、例えば、会話情報、無音期間、背景雑音、快適雑音、トーン等であっても良い。制御情報は、自動システム向けのコマンド、命令又は制御ワードを表す任意のデータを表しても良い。例えば、制御情報は、システムを通じて媒体情報を転送し、又は所定の方法で媒体情報を処理するようノードに指示するために用いられても良い。しかしながら、実施形態は、図11に示された又は記載された要素又は環境に限定されない。
上述のように、システム1100は、変化する物理的様式又は形状因子で実施されても良い。図12は、システム1100が実施され得る小型装置1300の実施形態を示す。実施形態では、例えば、装置1300は、無線機能を有するモバイルコンピューティング装置として実施されても良い。モバイルコンピューティング装置は、例えば、処理システム及び1又は複数のバッテリのようなモバイル電源若しくは供給を有する任意の装置を表しても良い。
上述のように、モバイルコンピューティング装置の例は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、PDA(personal digital assistant)、携帯電話機、携帯電話機/PDAの組合せ、テレビ、スマートデバイス(例えば、スマートフォン、スマートタブレット、又はスマートテレビ)、MID(mobile internet device)、メッセージング装置、データ通信装置、等を有しても良い。
モバイルコンピューティング装置の例は、腕時計型コンピュータ、指輪型コンピュータ、リングコンピュータ、眼鏡型コンピュータ、ベルトクリップ型コンピュータ、腕章型コンピュータ、靴型コンピュータ、衣類型コンピュータ、及び他の装着可能コンピュータのような、人により装着されるよう構成されるコンピュータも含み得る。種々の実施形態では、例えば、モバイルコンピューティング装置は、コンピュータアプリケーション及び音声通信及び/又はデータ通信を実行可能なスマートフォンとして実施されても良い。幾つかの実施形態は、例としてスマートフォンとして実施されるモバイルコンピューティング装置と共に記載され得るが、他の実施形態も他の無線モバイルコンピューティング装置を持ち手実施できることが理解される。実施形態は、この文脈に限定されない。
図12に示すように、装置1200は、筐体1202、ディスプレイ1204、入力/出力(I/O)装置1106、アンテナ1208を有しても良い。装置1200は、ナビゲーション機能1212を有しても良い。ディスプレイ1204は、モバイルコンピューティング装置に適切な情報を表示する任意の適切なディスプレイを有しても良い。I/O装置1206は、モバイルコンピューティング装置に情報を入力する任意の適切なI/O装置を有しても良い。I/O装置1206の例は、英数字キーボード、数字キーパッド、タッチパッド、入力キー、ボタン、スイッチ、ロッカースイッチ、マイクロフォン、スピーカ、音声認識装置及びソフトウェア、等を有しても良い。情報は、マイクロフォン(図示しない)により装置800に入力されても良い。このような情報は、音声認識装置(図示しない)によりデジタル化されても良い。実施形態は、この文脈に限定されない。
本願明細書に記載の種々の実施形態は、ハードウェア要素、ソフトウェア要素、又は両者の組み合わせを用いて実施されても良い。ハードウェア要素又はモジュールの例は、プロセッサ、マイクロプロセッサ、回路、回路要素(例えば、トランジスタ、抵抗器、キャパシタ、インダクタ等)、集積回路、ASIC(application specific integrated circuit)、PLD(programmable logic device)、DSP(digital signal processor)、FPGA(field programmable gate array)、メモリユニット、論理ゲート、レジスタ、半導体装置、チップ、マイクロチップ、チップセット等を有しても良い。ソフトウェア要素又はモジュールの例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシジャ、ソフトウェアインタフェース、API(application programming interface)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、又はそれらの任意の組合せを含んでも良い。実施形態がハードウェア要素及び/又はソフトウェア要素を用いて実装されるかの決定は、所望の計算レート、パワーレベル、熱耐性、処理周期バジェット、入力データレート、出力データレート、メモリ資源、データバス速度、及び他の設計若しくは性能制約のような、設計選択のために考慮される任意の数の要因に従って変化し得る。
少なくとも1つの実施形態の1又は複数の態様は、機械可読記憶媒体に格納される代表的な命令により実装されても良い。このような命令は、機械によるそれらの実行中に主記憶内に及び/又はプロセッサ内に完全に又は少なくとも部分的に存在しても良く、主記憶及びプロセッサ部分は、機械可読記憶媒体を構成する命令を格納する。プロセッサ内の種々のロジックを表す命令は、機械により読み込まれると、該機械に、本願明細書に記載の技術を実行するためのロジックを作らせる。「IPコア」として知られるこのような表現は、有形の、機械可読媒体に格納され、実際にロジック又はプロセッサを作成する製造機械にロードするために種々の顧客若しくは製造設備に供給されても良い。
本願明細書に説明された特定の特徴は種々の実装を参照して記載されたが、この記載は、限定的意味として考えられることを意図しない。ここで、本開示の関連分野の当業者に明らかな本願明細書に記載の実装の種々の変更は、他の実装と同様に、本開示の精神及び範囲の範囲内にあると考えられる。
以下の例は、特定の例示的な実施形態に関連する。
1又は複数の第1の実施形態では、マルチモードテクスチャフィルタを有するグラフィック処理システムは、複数のテクセル値及びフィルタモード信号を受信するための1又は複数の信号入力と、前記1又は複数の信号入力に通信可能に結合される論理回路と、を有する。論理回路は、フィルタモード信号により選択可能な複数のモードで動作可能である。論理回路は、第1のモードで、小数テクスチャアドレスを示す係数に基づく近隣テクセル値グループに渡りバイリニア補間を実行する。論理回路は、第2のモードで、該係数に基づく該近隣テクセル値グループに渡り加重平均を実行し、各係数は、複数のテクセル値のうちの1つに関連する重みを示す。システムは、前記論理回路に通信可能に結合されフィルタリングされたテクスチャデータを出力する1又は複数の出力信号線を更に有する。
1又は複数の第1の実施形態の促進では、前記論理回路は、複数のフィルタブロックを更に有する。各フィルタブロックは、第1のモードで、4個のテクセル値及び前記小数アドレスの1つの次元から、リニア補間値の対を生成する。各フィルタブロックは、第2のモードで、前記4個のテクセル値を合計し、前記対のうちの第1の対は前記係数のうちの第1の係数によりスケーリングされ、前記対のうちの第2の対は前記係数のうちの第2の係数によりスケーリングされる。
1又は複数の第1の実施形態の促進では、前記論理回路は、第1のフィルタブロックであって、前記第1のモードで、4個のテクセル値及び前記小数アドレスの第1の次元からリニア補間値の第1の対を生成し、前記第2のモードで、テクセル値の対の和を生成し、前記対のうちの第1の対は第1の係数によりスケーリングされ、前記対のうちの第2の対は第2の係数によりスケーリングされる、第1のフィルタブロックを更に有する。前記論理回路は、第2のフィルタブロックであって、前記第1のモードで、前記4個のテクセル及び前記小数アドレスの第2の次元から、リニア補間値の第2の対を生成し、前記第2のモードで、対応する係数によりスケーリングされた前記テクセル値の第2の対の和を生成する、第2のフィルタブロック、を更に有する。前記論理回路は、アキュムレータであって、前記第1のモードで、前記1又は複数の出力信号線に前記第2の補間値の和を出力し、前記第2のモードで、前記1又は複数の出力信号線に4個のテクセル値のグループに渡る加重平均を出力する、アキュムレータを更に有する。
1又は複数の第1の態様の促進では、前記論理回路は、前記第1のモードで、前記4個のテクセル値及び前記小数アドレスの第1の次元から、リニア補間値の第1の対を生成する第1のフィルタブロックを更に有する。前記論理回路は、前記第1のモードで第1のフィルタ段の出力に結合される変換器を更に有し、前記変換器は、フルビット幅を有するリニア補間値の第1の対の各々を高ビット部分及び低ビット部分に変換する。前記論理回路は、前記第1のモードで、前記小数アドレスの第2の次元及びリニア補間値の前記第1の対の低ビット部分に基づき、第3のリニア補間値を生成する第2のフィルタブロックを更に有する。前記第2のフィルタブロックは、前記第1のモードで、前記小数アドレスの前記第2の次元及びリニア補間値の前記第1の対の高ビット部分に基づき、第4のリニア補間値を更に生成する。前記第2のフィルタブロックは、更に、前記第3及び前記第4のリニア補間値を、前記フルビット幅を有するバイリニア補間値に組み立て、前記バイリニア補間値を前記1又は複数の出力信号線に出力する。
前記1又は複数の第1の実施形態の促進では、前記論理回路は、第1のフィルタブロックであって、前記第1のモードで、前記第1のテクセル対に関連する第1のテクセル値を前記小数アドレスに対応する第1の係数で乗算し、前記第1のテクセル対に関連する第2のテクセル値を前記第1の係数の補数で乗算し、これらの結果を合計する、ことにより、第1のテクセル対の第1のリニア補間値を生成する、第1のフィルタブロックを更に有する。前記第1のフィルタブロックは、前記第1のモードで、前記第2のテクセル対に関連する第3のテクセル値を前記第1の係数で乗算し、前記第2のテクセル対に関連する第4のテクセル値を前記第1の係数の補数で乗算することにより、第2のテクセル対の第2のリニア補間値を生成する。前記回路は、前記第1のモードで第1のフィルタ段の出力に結合される変換器を更に有し、前記変換器は、フルビット幅を有するリ第1及び第2のニア補間値の各々を高ビット部分及び低ビット部分に変換する。前記回路は、第2のフィルタブロックであって、前記第1のモードで、前記第1のリニア補間値の低ビット部分を前記小数アドレスに対応する第2の係数で乗算し、前記第2のリニア補間値の低ビット部分を第2の係数の補数で乗算し、これらの結果を合計することにより、第3のリニア補間値を生成する、第2のフィルタブロックを更に有する。前記第2のフィルタブロックは、前記第1のモードで、前記第1のリニア補間値の高ビット部分を第2の係数で乗算し、前記第2のリニア補間値の高ビット部分を第2の係数の補数で乗算し、これらの結果を合計することにより、第4のリニア補間値を生成する。前記第2のフィルタブロックは、更に、前記第3及び前記第4のリニア補間値を、前記フルビット幅を有するバイリニア補間値に組み立て、前記バイリニア補間値を前記1又は複数の出力信号線に出力する。
1又は複数の第1の実施形態の促進では、前記論理回路は、第1のフィルタブロックであって、前記第2のモードで、第1及び第2のテクセル値の和を生成し、前記第1のテクセル値は第1の係数によりスケーリングされ、前記第2のテクセル値は第2の係数によりスケーリングされる、第1のフィルタブロックを更に有する。前記論理回路は、第2のフィルタブロックであって、前記第2のモードで、第3及び第4のテクセル値の和を生成し、前記第3のテクセル値は第3の係数によりスケーリングされ、前記第4のテクセル値は第4の係数によりスケーリングされる、第2のフィルタブロックを更に有する。前記論理回路は、アキュムレータであって、前記和を加算し、結果として生じた加重和を前記1又は複数の出力信号線に出力する、アキュムレータを更に有する。
1又は複数の第1の実施形態の促進では、前記論理回路は、4個のフィルタブロックを更に有し、各フィルタブロックは、同じ論理回路を有し、前記フィルタモード信号により選択可能な複数のモードで動作可能である。前記4個のフィルタブロックは、前記第1のモードで、前記第1のモードで受信した小数アドレスに基づき、それぞれ4個の近隣テクセル値を有する2個のテクセルグループのバイリニア補間を出力する。前記4個のフィルタブロックは、前記第2のモードで、2個のテクセルグループに渡る加重平均を出力する。
1又は複数の第1の実施形態の促進では、前記論理回路は、4個のフィルタブロックを更に有し、各フィルタブロックは、同じ論理回路を有し、前記フィルタモード信号により選択可能な複数のモードで動作可能である。前記4個のフィルタブロックは、前記第1のモードで、前記第1のモードで受信した小数アドレスに基づき、それぞれ4個の近隣テクセル値を有する2個のテクセルグループのバイリニア補間を出力する。第1のフィルタブロックは、前記2個のテクセルグループのうちの第1のテクセルグループに対し、第1の次元に渡りリニア補間を実行する。第2のフィルタブロックは、前記第1のフィルタブロックからの出力を受信し、前記2個のテクセルグループのうちの第1のテクセルグループに対し、第2の次元に渡りリニア補間を実行する。第3のフィルタブロックは、前記2個のテクセルグループのうちの第2のテクセルグループに対し、第1の次元に渡りリニア補間を実行する。第4のフィルタブロックは、前記第3のフィルタブロックからの出力を受信し、前記2個のテクセルグループのうちの第2のテクセルグループに対し、第2の次元に渡りリニア補間を実行する。前記4個のフィルタブロックは、前記第2のモードで、2個のテクセルグループに渡る加重平均を出力し、前記第1のフィルタブロックは、前記2個のテクセルグループのうちの第1のテクセルグループの第1のテクセル対の加重平均を決定する。前記第2のフィルタブロックは、前記2個のテクセルグループのうちの第1のテクセルグループの第2のテクセル対の加重平均を決定する。前記第3のフィルタブロックは、前記2個のテクセルグループのうちの第2のテクセルグループの第1のテクセル対の加重平均を決定し、前記第4のフィルタブロックは、前記2個のテクセルグループのうちの第2のテクセルグループの第2のテクセル対の加重平均を決定する。
1又は複数の第2の実施形態では、構成可能なテクスチャフィルタを有するグラフィック処理システムであって、前記システムは、複数のテクセル値及びフィルタモード信号を受信する1又は複数の信号入力を有する。複数のフィルタブロックは、前記1又は複数の信号入力に結合され、各フィルタブロックは同じ論理回路を有し、所定の小数アドレス又は所定の重み付け係数に関連する係数を受信する係数入力と、それぞれテクセルカラー値を受信する2個のテクセルカラー入力と、前記係数入力に結合される第1の入力と、第1のテクセルカラー入力に結合される第2の入力と、を有する第1の乗算器と、インバータを通じて前記第1の係数入力に結合される第1の入力と、前記第2のテクセルカラー入力に結合される第2の入力と、を有する第2の乗算器と、前記第1の乗算器の出力及び前記第2の乗算器の出力に結合される加算器であって、前記第2の乗算器と前記加算器との間の結合は、前記フィルタモード信号に応答するスイッチを通じる、加算器と、を有する。
1又は複数の第2の実施形態の促進では、前記論理回路は、それぞれ所定の小数アドレス又は所定のテクセル重みに関連する係数を受信する2個の係数入力と、それぞれテクセル値を受信する4個のテクセルカラー入力と、第1の係数入力に結合される第1の入力及び第1のテクセル値入力に結合される第2の入力を有する第1の乗算器と、インバータを通じて前記第1の係数入力に結合される第1の入力及び第2のテクセル値入力に結合される第2の入力を有する第2の乗算器と、前記第1の乗算器の出力及び前記第2の乗算器に結合される第1の加算器であって、前記第2の乗算器と前記第1の加算器との間の結合は、前記フィルタモード信号に応答するスイッチを通じる、第1の加算器と、を更に有する。前記論理回路は、第2の係数入力に結合される第1の入力及び第3のテクセルカラー入力に結合される第2の入力を有する第3の乗算器と、インバータを通じて前記第2の係数入力に結合される第1の入力及び第4のテクセルカラー入力に結合される第2の入力を有する第4の乗算器と、前記第3の乗算器の出力及び前記第4の乗算器に結合される第2の加算器であって、前記第4の乗算器と前記第2の加算器との間の結合は、前記フィルタモード信号に応答する第2のスイッチを通じる、第2の加算器と、前記第1及び第2の加算器の出力に結合されるアキュムレータであって、前記アキュムレータは、前記フィルタモード信号に結合され、少なくとも前記フィルタモード信号に基づき前記加算器の出力を一緒に加算し又は通過させる、アキュムレータと、を更に有する。
1又は複数の第3の実施形態では、グラフィカルテクスチャデータをフィルタリングする方法は、グラフィック処理システムのメモリに複数のテクセル値を格納するステップと、第1のフィルタモードを示すフィルタモード信号に応答して、前記テクセルに関連する小数アドレスを示す係数に基づく近隣テクセル値グループに渡りバイリニア補間を実行するステップと、第2のフィルタモードを示すフィルタモード信号に応答して、前記テクセルに関連する重みを示す係数に基づき、近隣テクセル値グループに渡り加重平均を生成するステップと、前記補間値又は加重平均をメモリに格納するステップと、を有する。
1又は複数の第3の態様の促進では、前記方法は、前記第1のフィルタモードを示す前記フィルタモード信号に応答して、前記4個のテクセル値及び前記小数アドレスの1つの次元から、リニア補間値の第1の対を生成するステップを更に有する。前記方法は、前記第2のフィルタモードを示す前記フィルタモード信号に応答して、前記4個のテクセル値のうちの2つの和を生成するステップであって、前記テクセル値のうちの第1のテクセル値は前記係数のうちの第1の係数によりスケーリングされ、前記テクセル値のうちの第2のテクセル値は前記係数のうちの第2の係数によりスケーリングされる、ステップを更に有する。
1又は複数の第3の実施形態の促進では、前記方法は、前記4個のテクセル値及び前記小数アドレスの1つの次元から、リニア補間値の第1の対を生成するステップを更に有する。前記方法は、フルビット幅を有するリニア補間値の第1の対の各々を、高ビット部分及び低ビット部分に変換するステップを更に有する。前記方法は、前記小数アドレスの第2の次元及び前記リニア補間値の第1の対の前記低ビット部分に基づき、第3のリニア補間値を生成するステップを更に有する。前記方法は、前記小数アドレスの前記第2の次元及び前記リニア補間値の第1の対の前記高ビット部分に基づき、第4のリニア補間値を生成するステップを更に有する。前記方法は、前記第3及び第4のリニア補間値を前記フルビット幅を有するバイリニア補間値に組み立てるステップを更に有する。
1又は複数の第3の実施形態の促進では、前記バイリニア補間を実行するステップは、前記第1のテクセル対に関連する第1のテクセル値を前記小数アドレスに対応する第1の係数で乗算し、前記第1のテクセル対に関連する第2のテクセルを前記第1の係数の補数で乗算し、及びこれらの結果を合計することにより、前記第1のテクセル対の第1のリニア補間値を生成するステップを更に有する。前記方法は、前記第2のテクセル対に関連する第3のテクセル値を前記第1の係数で乗算し、前記第2のテクセル対に関連する第4のテクセル値を前記第1の係数の補数で乗算し、フルビット幅を有数r前記第1及び第2のリニア補間値の各々を高ビット部分及び低ビット部分に変換する、ことにより第2のテクセル対の第2のリニア補間値を生成するステップと、前記第1のリニア補間値の低ビット部分を前記小数アドレスに対応する第2の係数で乗算し、前記第2のリニア補間値の低ビット部分を第2の係数の補数で乗算し、これらの結果を合計する、ことにより第3のリニア補間値を生成するステップと、を更に有する。前記方法は、前記第1のリニア補間値の高ビット部分を第2の係数で乗算し、前記第2のリニア補間値の高ビット部分を第2の係数の補数で乗算し、これらの結果を合計することにより、第4のリニア補間値を生成するステップを更に有する。前記方法は、前記第3及び第4のリニア補間値を前記フルビット幅を有するバイリニア補間値に組み立てるステップを更に有する。
1又は複数の第3の実施形態の促進では、前記加重平均を生成するステップは、前記テクセル値のうちの第1及び第2のテクセル値の和を生成するステップであって、前記第1のテクセル値は第1の係数によりスケーリングされ、前記第2のテクセル値は第2の係数によりスケーリングされる、ステップと、前記テクセル値のうちの第3及び第4のテクセル値の和を生成するステップであって、前記第3のテクセル値は第3の係数によりスケーリングされ、前記第4のテクセル値は第4の係数によりスケーリングされる、ステップと、前記和を加算するステップと、を更に有する。
1又は複数の第4の実施形態では、グラフィカルテクスチャデータをフィルタリングする方法は、グラフィック処理システムのメモリに、複数のテクセル値及び係数を格納するステップを有する。前記方法は、所定の小数アドレス又は所定のテクセル重みに関連する係数で第1のテクセル値を乗算するステップを有する。前記方法は、バイリニアフィルタモードを示すフィルタモード信号に応答して、前記係数によりスケーリングされた前記第1のテクセル値と、前記係数の補数によりスケーリングされた第2のテクセル値とを加算するステップと、加重平均フィルタモードを示す前記フィルタモード信号に応答して、前記加算するステップを有しないで、前記係数によりスケーリングされた前記第1のテクセル値を通過させるステップと、を有する。前記方法は、前記係数によりスケーリングされた前記第1のテクセル値をメモリに格納するステップを有する。
1又は複数の第4の実施形態の促進では、前記方法は、所定の小数アドレス又は所定のテクセル重みに関連する第1の係数で第1のテクセル値を乗算するステップを有する。前記方法は、バイリニアフィルタモードを示す前記フィルタモード信号に応答して、前記第1の係数によりスケーリングされた前記第1のテクセル値と前記第1の係数の補数によりスケーリングされた第2のテクセル値とを加算することにより、第1のリニア補間値を生成するステップを有する。前記方法は、所定の小数アドレス又は所定のテクセル重みに関連する第2の係数で第3のテクセル値を乗算するステップを有する。前記方法は、バイリニアフィルタモードを示す前記フィルタモード信号に応答して、前記第2の係数によりスケーリングされた前記第3のテクセル値と前記第2の係数の補数によりスケーリングされた第4のテクセル値とを加算することにより、第2のリニア補間値を生成するステップを有する。前記方法は、前記第1及び第2の補間値に基づきレンダリングされるグラフィカルオブジェクトを、前記処理システムに結合されるディスプレイスクリーンに出力するステップを有する。
1又は複数の第5の実施形態では、少なくとも1つのコンピュータ可読媒体は、プロセッサにより実行されると前記プロセッサに、複数のテクセル値及び係数をグラフィック処理システムのメモリに格納するステップを含む方法を実行させる命令を格納する。前記方法は、第1のフィルタモードを示すフィルタモード信号に応答して、前記係数に基づく近隣テクセル値グループに渡りバイリニア補間を実行するステップであって、前記2個の係数は前記テクセルに関連する小数アドレスを示す、ステップを有する。前記方法は、第2のフィルタモードを示すフィルタモード信号に応答して、前記係数に基づく近隣テクセル値グループに渡り加重平均を生成するステップであって、前記係数の各々は前記テクセル値に関連する重みを示す、ステップを更に有する。前記方法は、補間値又は加重平均をメモリに格納するステップを有する。
1又は複数の第5の実施形態の促進では、前記媒体は、前記プロセッサにより実行されると前記プロセッサに前記方法により前記バイリニア補間を実行させる命令を更に有し、前記方法は、前記4個のテクセル値及び1次元の前記小数アドレスから、リニア補間値の第1の対を生成するステップと、フルビット幅を有するリニア補間値の前記第1の対の各々を、高ビット部分及び低ビット部分に変換するステップと、前記小数アドレスの第2の次元及びリニア補間値の前記第1の対の前記低ビット部分に基づき、第3のリニア補間値を生成するステップと、前記小数アドレスの前記第2の次元及びリニア補間値の前記第1の対の前記高ビット部分に基づき、第4のリニア補間値を生成するステップと、前記第3及び第4のリニア補間値を前記フルビット幅を有するバイリニア補間値に組立てるステップと、を更に有する。
前記媒体は、前記プロセッサにより実行されると前記プロセッサに前記方法により前記加重平均を実行させる命令を更に有し、前記方法は、前記テクセル値のうちの第1及び第2のテクセル値の和を生成するステップであって、前記第1のテクセル値は第1の係数によりスケーリングされ、前記第2のテクセル値は第2の係数によりスケーリングされる、ステップと、前記テクセル値のうちの第3及び第4のテクセル値の和を生成するステップであって、前記第3のテクセル値は第3の係数によりスケーリングされ、前記第4のテクセル値は第4の係数によりスケーリングされる、ステップと、 前記和を加算するステップと、を更に有する。
上述の実装は、記載の実施形態を限定するものではなく、添付の請求項の範囲から逸脱することなく変更及び代替を実施できることが、理解されるだろう。例えば、上述の実施形態は、特徴の特定の組合せを有しても良い。しかしながら、上述の実施形態は、これに関して限定されず、種々の実装において、上述の実施形態は、このような特徴の一部のみを取り入れ、このような特徴の異なる順序を取り入れ、このような特徴の異なる組合せを取り入れ、及び/又は明示的に列挙された特徴以外の追加特徴を取り入れても良い。したがって、実装の範囲は、添付の請求項が権利を与える等価物の全範囲と共に、添付の請求項に関して決定されるべきである。
103 メモリ
110 実行ユニット(EU)
115 テクスチャデータ
115 テクスチャデータ
121 MMテクスチャサンプラ
121 MMテクスチャサンプラ
121 MMテクスチャサンプラ
130 L2キャッシュ
132 MMフィルタACC
141 フットプリント
160 ベクトル計算
198 出力パイプライン
199 ディスプレイ
201 システム
260 データ生成器(DG)
265 マルチスレッド(MT)ユニット
270 係数テーブル
282 フィルタタイプID
285 フィルタ形状ID
290 フレキシブルフィルタブロック(FFB)
760 ネットワーク
1102 プラットフォーム
1105 チップセット
1110 プロセッサ
1112 メモリ
1114 記憶装置
1115 グラフィックシステム
1116 アプリケーション
1118 無線機
1122 ユーザインタフェース
1130 パーソナルメディアデータサービス装置
1140 パーソナルメディアデータ配信装置

Claims (22)

  1. マルチモードフィルタを有するグラフィック処理システムであって、前記フィルタは、
    複数のテクセル値及びフィルタモード信号を受信する1又は複数の信号入力と、
    前記1又は複数の信号入力に通信可能に結合される論理回路であって、前記論理回路は、前記フィルタモード信号により選択可能な複数のモードで動作し、第1のモードの前記論理回路は、小数テクスチャアドレスを示す係数に基づく近隣テクセル値グループに渡ってバイリニア補間を実行し、第2のモードの前記論理回路は、前記係数に基づく前記近隣テクセル値グループに渡って加重平均を実行し、前記係数の各々は、前記複数のテクセル値のうちの1つに関連する重みを示す、論理回路と、
    前記論理回路に通信可能に結合され、フィルタリングされたテクスチャデータを出力する1又は複数の出力信号線と、
    を有するシステム。
  2. 前記論理回路は、複数のフィルタブロックを更に有し、
    前記第1のモードの各フィルタブロックは、4個のテクセル値及び1次元の前記小数アドレスから、1対のリニア補間値を生成し、
    前記第2のモードの各フィルタブロックは、前記4個のテクセル値の対を合計し、前記対のうちの第1の対は前記係数のうちの第1の係数によりスケーリングされ、及び前記対のうちの第2の対は前記係数のうちの第2の係数によりスケーリングされる、
    請求項1に記載のシステム。
  3. 前記論理回路は、
    第1のフィルタブロックであって、前記第1のモードで、4個のテクセル値及び前記小数アドレスの第1の次元から、リニア補間値の第1の対を生成し、前記第2のモードで、テクセル値の対の和を生成し、該テクセル値の対のうちの第1の対は第1の係数によりスケーリングされ、第2の対は第2の係数によりスケーリングされる、第1のフィルタブロックと、
    第2のフィルタブロックであって、前記第1のモードで、前記4個のテクセル値及び前記小数アドレスの第2の次元から、リニア補間値の第2の対を生成し、前記第2のモードで、対応する係数によりスケーリングされた前記テクセル値の第2の対の和を生成する、第2のフィルタブロックと、
    アキュムレータであって、前記第1のモードで、前記1又は複数の出力信号線に前記第2の補間値の和を出力し、前記第2のモードで、前記1又は複数の出力信号線に4個のテクセル値のグループに渡る加重平均を出力する、アキュムレータと、
    を更に有する、請求項1に記載のシステム。
  4. 前記論理回路は、
    前記第1のモードで、前記4個のテクセル値及び前記小数アドレスの第1の次元から、リニア補間値の第1の対を生成する第1のフィルタブロックと、
    前記第1のモードで、第1のフィルタ段の出力に結合される変換器であって、前記変換器は、フルビット幅を有するリニア補間値の前記第1の対の各々を高ビット部分と低ビット部分とに変換する、変換器と、
    第2のフィルタブロックであって、
    前記第1のモードで、前記小数アドレスの第2の次元及びリニア補間値の前記第1の対の前記低ビット部分に基づき、第3のリニア補間値を生成し、
    前記第1のモードで、前記小数アドレスの前記第2の次元及びリニア補間値の前記第1の対の前記高ビット部分に基づき、第4のリニア補間値を生成し、
    前記第3及び第4のリニア補間値を前記フルビット幅を有するバイリニア補間値に組立て、
    前記1又は複数の出力信号線に前記バイリニア補間値を出力する、第2のフィルタブロックと、
    を更に有する、請求項1に記載のシステム。
  5. 前記論理回路は、
    第1のフィルタブロックであって、前記第1のモードで、
    第1のテクセル対の第1のリニア補間値であって、
    前記第1のテクセル対に関連する第1のテクセル値を前記小数アドレスに対応する第1の係数で乗算し、
    前記第1のテクセル対に関連する第2のテクセル値を前記第1の係数の補数で乗算し、
    これらの結果を合計する、
    ことによる、第1のリニア補間値と、
    第2のテクセル対の第2のリニア補間値であって、
    前記第2のテクセル対に関連する第3のテクセル値を前記第1の係数で乗算し、
    前記第2のテクセル対に関連する第4のテクセル値を前記第1の係数の補数で乗算する、
    ことによる、第2のリニア補間値と、
    を生成する第1のフィルタブロックと、
    前記第1のモードで第1のフィルタ段の出力に結合される変換器であって、前記変換器は、フルビット幅を有する前記第1及び第2のリニア補間値の各々を高ビット部分及び低ビット部分に変換する、変換器と、
    第2のフィルタブロックであって、
    前記第1のモードで、
    前記第1のリニア補間値の低ビット部分を前記小数アドレスに対応する第2の係数で乗算し、
    前記第2のリニア補間値の低ビット部分を第2の係数の補数で乗算し、
    これらの結果を合計する、
    ことにより、第3のリニア補間値を生成し、
    前記第1のモードで、
    前記第1のリニア補間値の高ビット部分を前記第2の係数で乗算し、
    前記第2のリニア補間値の高ビット部分を前記第2の係数の補数で乗算し、
    これらの結果を合計する、
    ことにより、第4のリニア補間値を生成し、
    前記第3及び第4のリニア補間値を、前記フルビット幅を有するバイリニア補間値に組立て、
    前記1又は複数の出力信号線に前記バイリニア補間値を出力する、第2のフィルタブロックと、
    を更に有する、請求項1に記載のシステム。
  6. 前記論理回路は、
    第1のフィルタブロックであって、前記第2のモードで、第1及び第2のテクセル値の和を生成し、前記第1のテクセル値は第1の係数によりスケーリングされ、前記第2のテクセル値は第2の係数によりスケーリングされる、第1のフィルタブロックと、
    第2のフィルタブロックであって、前記第2のモードで、第3及び第4のテクセル値の和を生成し、前記第3のテクセル値は第3の係数によりスケーリングされ、前記第4のテクセル値は第3の係数によりスケーリングされる、第2のフィルタブロックと、
    前記和を加算し、結果として生じた加重和を前記1又は複数の出力信号線に出力する、アキュムレータと、
    を更に有する、請求項1に記載のシステム。
  7. 前記論理回路は、4個のフィルタブロックを更に有し、各フィルタブロックは、同じ論理回路を有し、前記フィルタモード信号により選択可能な複数のモードで動作可能であり、
    前記4個のフィルタブロックは、前記第1のモードで、前記第1のモードで受信した小数アドレスに基づき、それぞれ4個の近隣テクセル値を有する2個のテクセルグループのバイリニア補間を出力し、
    前記4個のフィルタブロックは、前記第2のモードで、2個のテクセルグループに渡る加重平均を出力する、
    請求項1に記載のシステム。
  8. 前記論理回路は、4個のフィルタブロックを更に有し、各フィルタブロックは、同じ論理回路を有し、前記フィルタモード信号により選択可能な複数のモードで動作可能であり、
    前記4個のフィルタブロックは、前記第1のモードで、前記第1のモードで受信した小数アドレスに基づき、それぞれ4個の近隣テクセル値を有する2個のテクセルグループのバイリニア補間を出力し、
    前記4個のフィルタブロックは、前記第2のモードで、2個のテクセルグループのバイリニア補間を出力し、
    第1のフィルタブロックは、前記2個のテクセルグループのうちの第1のテクセルグループについて第1の次元に渡りリニア補間を実行し、
    第2のフィルタブロックは、前記第1のフィルタブロックからの出力を受信し、前記2個のテクセルグループのうちの前記第1のテクセルグループについて第2の次元に渡りリニア補間を実行し、
    第3のフィルタブロックは、前記2個のテクセルグループのうちの第2のテクセルグループについて前記第1の次元に渡りリニア補間を実行し、
    第4のフィルタブロックは、前記第3のフィルタブロックからの出力を受信し、前記2個のテクセルグループのうちの前記第2のテクセルグループについて前記第2の次元に渡りリニア補間を実行し、
    前記4個のフィルタブロックは、前記第2のモードで、2個のテクセルグループに渡る加重平均を出力し、
    第1のフィルタブロックは、前記2個のテクセルグループのうちの第1のテクセルグループの第1のテクセル対の加重平均を決定し、
    第2のフィルタブロックは、前記2個のテクセルグループのうちの第1のテクセルグループの第2のテクセル対の加重平均を決定し、
    第3のフィルタブロックは、前記2個のテクセルグループのうちの第2のテクセルグループの第1のテクセル対の加重平均を決定し、
    第4のフィルタブロックは、前記2個のテクセルグループのうちの第2のテクセルグループの第2のテクセル対の加重平均を決定する、
    請求項1に記載のシステム。
  9. 構成可能なテクスチャフィルタを有するグラフィック処理システムであって、前記フィルタは、
    複数のテクセル値及びフィルタモード信号を受信する1又は複数の信号入力と、
    前記1又は複数の信号入力に結合される複数のフィルタブロックであって、各フィルタブロックは同じ論理回路を有し、
    所定の小数アドレス又は所定の重み付け係数に関連する係数を受信する係数入力と、
    それぞれテクセルカラー値を受信する2個のテクセルカラー入力と、
    前記係数入力に結合される第1の入力と、第1のテクセルカラー入力に結合される第2の入力と、を有する第1の乗算器と、
    インバータを通じて前記第1の係数入力に結合される第1の入力と、前記第2のテクセルカラー入力に結合される第2の入力と、を有する第2の乗算器と、
    前記第1の乗算器の出力及び前記第2の乗算器の出力に結合される加算器であって、前記第2の乗算器と前記加算器との間の結合は、前記フィルタモード信号に応答するスイッチを通じる、加算器と、を更に有する、複数のフィルタブロックと、
    を有する、システム。
  10. 前記論理回路は、
    それぞれ所定の小数アドレス又は所定のテクセル重みに関連する係数を受信する2個の係数入力と、
    それぞれテクセル値を受信する4個のテクセルカラー入力と、
    第1の係数入力に結合される第1の入力と、第1のテクセル値入力に結合される第2の入力と、を有する第1の乗算器と、
    インバータを通じて前記第1の係数入力に結合される第1の入力と、第2のテクセル値入力に結合される第2の入力と、を有する第2の乗算器と、
    前記第1の乗算器の出力及び前記第2の乗算器に結合される第1の加算器であって、前記第2の乗算器と前記第1の加算器との間の結合は、前記フィルタモード信号に応答する第1のスイッチを通じる、第1の加算器と、
    第2の係数入力に結合される第1の入力と、第3のテクセルカラー入力に結合される第2の入力と、を有する第3の乗算器と、
    インバータを通じて前記第2の係数入力に結合される第1の入力と、第4のテクセルカラー入力に結合される第2の入力と、を有する第4の乗算器と、
    前記第3の乗算器の出力及び前記第4の乗算器に結合される第2の加算器であって、前記第2の加算器と前記第4の乗算器との間の結合は、前記フィルタモード信号に応答する第2のスイッチを通じる、第2の加算器と、
    前記第1及び第2の加算器の出力に結合されるアキュムレータであって、前記アキュムレータは、前記フィルタモード信号に結合され、少なくとも前記フィルタモード信号に基づき、前記加算器の出力を一緒に加算する又は通過させる、アキュムレータと、
    を更に有する、請求項9に記載のシステム。
  11. グラフィカルテクスチャデータをフィルタリングする方法であって、
    グラフィック処理システムのメモリに複数のテクセル値を格納するステップと、
    第1のフィルタモードを示すフィルタモード信号に応答して、前記テクセルに関連する小数アドレスを示す係数に基づき、近隣テクセル値グループに渡りバイリニア補間を実行するステップと、
    第2のフィルタモードを示すフィルタモード信号に応答して、前記テクセルに関連する重みを示す係数に基づき、近隣テクセル値グループに渡り加重平均を生成するステップと、
    前記補間値又は加重平均をメモリに格納するステップと、
    を有する方法。
  12. 第1のフィルタモードを示すフィルタモード信号に応答して、前記4個のテクセル値及び1次元の前記小数アドレスから、リニア補間値の対を生成するステップと、
    第2のフィルタモードを示すフィルタモード信号に応答して、前記4個のテクセル値のうちの2個の和を生成するステップであって、前記テクセル値のうちの第1のテクセル値は前記係数のうちの第1の係数によりスケーリングされ、前記テクセル値のうちの第2のテクセル値は前記係数のうちの第2の係数によりスケーリングされる、ステップと、
    を更に有する、請求項11に記載の方法。
  13. 前記バイリニア補間を実行するステップは、
    前記4個のテクセル値及び1次元の前記小数アドレスから、リニア補間値の第1の対を生成するステップと、
    フルビット幅を有するリニア補間値の前記第1の対の各々を、高ビット部分及び低ビット部分に変換するステップと、
    前記小数アドレスの第2の次元及びリニア補間値の前記第1の対の前記低ビット部分に基づき、第3のリニア補間値を生成するステップと、
    前記小数アドレスの前記第2の次元及びリニア補間値の前記第1の対の前記高ビット部分に基づき、第4のリニア補間値を生成するステップと、
    前記第3及び第4のリニア補間値を前記フルビット幅を有するバイリニア補間値に組立てるステップと、
    を更に有する、請求項11に記載の方法。
  14. 前記バイリニア補間を実行するステップは、
    第1のテクセル対の第1のリニア補間値を生成するステップであって、
    前記第1のテクセル対に関連する第1のテクセル値を前記小数アドレスに対応する第1の係数で乗算し、
    前記第1のテクセル対に関連する第2のテクセル値を前記第1の係数の補数で乗算し、
    これらの結果を合計する、
    ことによる、ステップと、
    第2のテクセル対の第2のリニア補間値を生成するステップであって、
    前記第2のテクセル対に関連する第3のテクセル値を前記第1の係数で乗算し、
    前記第2のテクセル対に関連する第4のテクセル値を前記第1の係数の補数で乗算する、
    ことによる、ステップと、
    フルビット幅を有する前記第1及び第2のリニア補間値の各々を高ビット部分及び低ビット部分に変換するステップと、
    第3のリニア補間値を生成するステップであって、
    前記第1のリニア補間値の低ビット部分を前記小数アドレスに対応する第2の係数で乗算し、
    前記第2のリニア補間値の低ビット部分を第2の係数の補数で乗算し、
    これらの結果を合計する、
    ことによる、ステップと、
    第4のリニア補間値を生成するステップであって、
    前記第1のリニア補間値の高ビット部分を前記第2の係数で乗算し、
    前記第2のリニア補間値の高ビット部分を前記第2の係数の補数で乗算し、
    これらの結果を合計する、
    ことによる、ステップと、
    前記第3及び第4のリニア補間値を、前記フルビット幅を有するバイリニア補間値に組立てるステップと、
    を更に有する、請求項11に記載の方法。
  15. 前記加重平均を生成するステップは、
    前記テクセル値のうちの第1及び第2のテクセル値の和を生成するステップであって、前記第1のテクセル値は第1の係数によりスケーリングされ、前記第2のテクセル値は第2の係数によりスケーリングされる、ステップと、
    前記テクセル値のうちの第3及び第4のテクセル値の和を生成するステップであって、前記第3のテクセル値は第3の係数によりスケーリングされ、前記第4のテクセル値は第4の係数によりスケーリングされる、ステップと、
    前記和を加算するステップと、
    を更に有する、請求項11に記載の方法。
  16. グラフィカルテクスチャデータをフィルタリングする方法であって、
    グラフィック処理システムのメモリに複数のテクセル値及び係数を格納するステップと、
    所定の小数アドレス又は所定のテクセル重みに関連する係数で第1のテクセル値を乗算するステップと、
    バイリニアフィルタモードを示すフィルタモード信号に応答して、前記係数によりスケーリングされた前記第1のテクセル値を前記係数の補数によりスケーリングされた第2のテクセル値に加算し、加重平均フィルタモードを示す前記フィルタモード信号に応答して、前記の加算をしないで、前記係数によりスケーリングされた前記第1のテクセル値を通過させる、ステップと、
    前記係数によりスケーリングされた前記第1のテクセル値をメモリに格納するステップと、
    を有する方法。
  17. 第1のテクセル値を所定の小数アドレス又は所定のテクセル重みに関連する第1の係数で乗算するステップと、
    バイリニアフィルタモードを示す前記フィルタモード信号に応答して、前記第1の係数によりスケーリングされた前記第1のテクセル値と前記第1の係数の補数によりスケーリングされた第2のテクセル値を加算することにより、第1のリニア補間値を生成するステップと、
    第3のテクセル値を所定の小数アドレス又は所定のテクセル重みに関連する第2の係数で乗算するステップと、
    前記バイリニアフィルタモードを示す前記フィルタモード信号に応答して、前記第2の係数によりスケーリングされた前記第3のテクセル値と前記第2の係数の補数によりスケーリングされた第4のテクセル値を加算することにより、第2のリニア補間値を生成するステップと、
    前記処理システムに結合されるディスプレイスクリーンに、前記第1及び第2の補間値に基づきレンダリングされるグラフィカルオブジェクトを出力するステップと、
    を有する請求項16に記載の方法。
  18. 少なくとも1つのコンピュータ可読媒体であって、前記媒体は命令を格納し、前記命令は、プロセッサにより実行されると、前記プロセッサに方法を実行させ、前記方法は、
    グラフィック処理システムのメモリに複数のテクセル値及び係数を格納するステップと、
    第1のフィルタモードを示すフィルタモード信号に応答して、前記テクセルに関連する小数アドレスを示す2つの係数に基づき、近隣テクセル値グループに渡りバイリニア補間を実行するステップと、
    第2のフィルタモードを示すフィルタモード信号に応答して、それそれ前記テクセルのうちの1つに関連する重みを示す係数に基づき、前記近隣テクセル値グループに渡り加重平均を生成するステップと、
    前記補間値又は加重平均をメモリに格納するステップと、
    を有する、媒体。
  19. 前記媒体は、前記プロセッサにより実行されると前記プロセッサに前記方法により前記バイリニア補間を実行させる命令を更に有し、前記方法は、
    前記4個のテクセル値及び1次元の前記小数アドレスから、リニア補間値の第1の対を生成するステップと、
    フルビット幅を有するリニア補間値の前記第1の対の各々を、高ビット部分及び低ビット部分に変換するステップと、
    前記小数アドレスの第2の次元及びリニア補間値の前記第1の対の前記低ビット部分に基づき、第3のリニア補間値を生成するステップと、
    前記小数アドレスの前記第2の次元及びリニア補間値の前記第1の対の前記高ビット部分に基づき、第4のリニア補間値を生成するステップと、
    前記第3及び第4のリニア補間値を前記フルビット幅を有するバイリニア補間値に組立てるステップと、
    を更に有する、請求項18に記載の媒体。
  20. 前記媒体は、前記プロセッサにより実行されると前記プロセッサに前記方法により前記加重平均を実行させる命令を更に有し、前記方法は、
    前記テクセル値のうちの第1及び第2のテクセル値の和を生成するステップであって、前記第1のテクセル値は第1の係数によりスケーリングされ、前記第2のテクセル値は第2の係数によりスケーリングされる、ステップと、
    前記テクセル値のうちの第3及び第4のテクセル値の和を生成するステップであって、前記第3のテクセル値は第3の係数によりスケーリングされ、前記第4のテクセル値は第4の係数によりスケーリングされる、ステップと、
    前記和を加算するステップと、
    を更に有する、請求項18に記載の媒体。
  21. 少なくとも1つの機械可読媒体であって、
    コンピューティング装置で実行されるのに応答して前記コンピューティング装置に請求項11乃至17のいずれか一項に記載の方法を実行させる複数の命令、
    を有する媒体。
  22. 請求項11乃至17のいずれか一項に記載の方法を実行する手段、
    を有する装置。
JP2014210112A 2013-11-14 2014-10-14 グラフィカルテクスチャデータのマルチモードフィルタリングのためのフレキシブルフィルタロジック Active JP5889990B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/080,441 2013-11-14
US14/080,441 US9367948B2 (en) 2013-11-14 2013-11-14 Flexible filter logic for multi-mode filtering of graphical texture data

Publications (2)

Publication Number Publication Date
JP2015095259A true JP2015095259A (ja) 2015-05-18
JP5889990B2 JP5889990B2 (ja) 2016-03-22

Family

ID=53043429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014210112A Active JP5889990B2 (ja) 2013-11-14 2014-10-14 グラフィカルテクスチャデータのマルチモードフィルタリングのためのフレキシブルフィルタロジック

Country Status (2)

Country Link
US (1) US9367948B2 (ja)
JP (1) JP5889990B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019146962A (ja) * 2018-02-27 2019-09-05 キヤノンメディカルシステムズ株式会社 医用画像処理装置及び医用画像診断装置
JPWO2018235357A1 (ja) * 2017-06-22 2019-12-26 日本電気株式会社 演算装置、演算方法及びプログラム

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10395408B1 (en) * 2016-10-14 2019-08-27 Gopro, Inc. Systems and methods for rendering vector shapes
KR20180048081A (ko) 2016-11-02 2018-05-10 삼성전자주식회사 텍스쳐 처리 방법 및 장치
KR20180071767A (ko) 2016-12-20 2018-06-28 삼성전자주식회사 큐브 맵을 텍스쳐링하기 위한 LOD(level of detail)를 결정하는 방법 및 장치
US10339443B1 (en) 2017-02-24 2019-07-02 Gopro, Inc. Systems and methods for processing convolutional neural network operations using textures
GB2566468B (en) 2017-09-13 2020-09-09 Advanced Risc Mach Ltd Graphics processing
GB2567507B (en) 2018-04-05 2019-10-02 Imagination Tech Ltd Texture filtering with dynamic scheduling
GB2572605B (en) * 2018-04-05 2022-05-18 Imagination Tech Ltd High accuracy texture filtering
WO2020107886A1 (en) * 2018-11-29 2020-06-04 Huawei Technologies Co., Ltd. Loading apparatus and method for convolution with stride or dilation of 2
WO2021213664A1 (en) * 2020-04-24 2021-10-28 Huawei Technologies Co., Ltd. Filtering for rendering
GB2602687B (en) * 2021-06-25 2022-12-28 Imagination Tech Ltd Efficient convolution operations
GB2602686B (en) * 2021-06-25 2022-12-28 Imagination Tech Ltd Efficient convolution operations

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09510309A (ja) * 1994-03-07 1997-10-14 シリコン・グラフィクス・インコーポレーテッド 集積化したテクスチャメモリと補間論理回路
JP2000020736A (ja) * 1998-07-07 2000-01-21 Matsushita Electric Ind Co Ltd 描画装置及び描画方法
US6366290B1 (en) * 1997-03-31 2002-04-02 Cirrus Logic, Inc. Dynamically selectable texture filter for a software graphics engine
JP2002342780A (ja) * 2001-05-15 2002-11-29 Namco Ltd 画像生成システム、画像生成方法および情報記憶媒体
JP2003115056A (ja) * 1999-12-16 2003-04-18 Sega Corp 画像生成方法及びこれを用いた画像生成装置
US20030160799A1 (en) * 2002-02-28 2003-08-28 Emberling Brian D. Reconfigurable hardware filter for texture mapping and image processing
JP2006244426A (ja) * 2005-03-07 2006-09-14 Sony Computer Entertainment Inc テクスチャ処理装置、描画処理装置、およびテクスチャ処理方法
US20060250407A1 (en) * 2005-05-05 2006-11-09 Via Technologies, Inc. Texture filtering using a programmable table filter to improve computer graphics performmance
JP2009506448A (ja) * 2005-08-31 2009-02-12 エイティーアイ・テクノロジーズ,インコーポレイテッド グラフィックス情報のサンプルを検索し、合成する方法および装置
JP2010525667A (ja) * 2007-04-20 2010-07-22 ジェネラル・インスツルメント・コーポレーション テレビ電話におけるプライバシーを最大にするための浅い被写界深度の模擬実験
US20110134137A1 (en) * 2009-12-08 2011-06-09 Lee Victor W Texture Unit for General Purpose Computing
JP2011159306A (ja) * 2005-01-04 2011-08-18 Shinsedai Kk 描画装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7158141B2 (en) * 2002-01-17 2007-01-02 University Of Washington Programmable 3D graphics pipeline for multimedia applications
US7324116B2 (en) 2002-06-20 2008-01-29 Microsoft Corporation Systems and methods for providing controllable texture sampling
EP1700272A2 (en) 2003-12-29 2006-09-13 Intel Corporation Method and mechanism for programmable filtering of texture map data in 3d graphics subsystems
US20070008333A1 (en) * 2005-07-07 2007-01-11 Via Technologies, Inc. Texture filter using parallel processing to improve multiple mode filter performance in a computer graphics environment
US8610737B2 (en) * 2010-05-27 2013-12-17 National Taiwan University Graphic processing unit (GPU) with configurable filtering module and operation method thereof

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09510309A (ja) * 1994-03-07 1997-10-14 シリコン・グラフィクス・インコーポレーテッド 集積化したテクスチャメモリと補間論理回路
US6366290B1 (en) * 1997-03-31 2002-04-02 Cirrus Logic, Inc. Dynamically selectable texture filter for a software graphics engine
JP2000020736A (ja) * 1998-07-07 2000-01-21 Matsushita Electric Ind Co Ltd 描画装置及び描画方法
JP2003115056A (ja) * 1999-12-16 2003-04-18 Sega Corp 画像生成方法及びこれを用いた画像生成装置
JP2002342780A (ja) * 2001-05-15 2002-11-29 Namco Ltd 画像生成システム、画像生成方法および情報記憶媒体
US20030160799A1 (en) * 2002-02-28 2003-08-28 Emberling Brian D. Reconfigurable hardware filter for texture mapping and image processing
JP2011159306A (ja) * 2005-01-04 2011-08-18 Shinsedai Kk 描画装置
JP2006244426A (ja) * 2005-03-07 2006-09-14 Sony Computer Entertainment Inc テクスチャ処理装置、描画処理装置、およびテクスチャ処理方法
US20060250407A1 (en) * 2005-05-05 2006-11-09 Via Technologies, Inc. Texture filtering using a programmable table filter to improve computer graphics performmance
JP2009506448A (ja) * 2005-08-31 2009-02-12 エイティーアイ・テクノロジーズ,インコーポレイテッド グラフィックス情報のサンプルを検索し、合成する方法および装置
JP2010525667A (ja) * 2007-04-20 2010-07-22 ジェネラル・インスツルメント・コーポレーション テレビ電話におけるプライバシーを最大にするための浅い被写界深度の模擬実験
US20110134137A1 (en) * 2009-12-08 2011-06-09 Lee Victor W Texture Unit for General Purpose Computing

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015039220; ライドアウト フィリップ: "iPhone 3Dプログラミング 初版" 第1版, 20110311, p.176-180, 株式会社オライリー・ジャパン *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2018235357A1 (ja) * 2017-06-22 2019-12-26 日本電気株式会社 演算装置、演算方法及びプログラム
JP7020485B2 (ja) 2017-06-22 2022-02-16 日本電気株式会社 演算装置、演算方法及びプログラム
US11580193B2 (en) 2017-06-22 2023-02-14 Nec Corporation Computation device, computation method, and program
JP2019146962A (ja) * 2018-02-27 2019-09-05 キヤノンメディカルシステムズ株式会社 医用画像処理装置及び医用画像診断装置
JP7292893B2 (ja) 2018-02-27 2023-06-19 キヤノンメディカルシステムズ株式会社 医用画像処理装置及び医用画像診断装置

Also Published As

Publication number Publication date
US20150130818A1 (en) 2015-05-14
JP5889990B2 (ja) 2016-03-22
US9367948B2 (en) 2016-06-14

Similar Documents

Publication Publication Date Title
JP5889990B2 (ja) グラフィカルテクスチャデータのマルチモードフィルタリングのためのフレキシブルフィルタロジック
US10546413B2 (en) Multi mode texture sampler for flexible filtering of graphical texture data
US10970917B2 (en) Decoupled shading pipeline
US9298006B2 (en) Layered light field reconstruction for defocus blur
TWI517086B (zh) 用於去耦取樣為主描繪管線之低功率質心決定及紋理覆蓋區最佳化
US9251731B2 (en) Multi-sampling anti-aliasing compression by use of unreachable bit combinations
JP2014182831A (ja) フィルタ・タップを廃棄するテクスチャ・アドレス・モード
US9355490B2 (en) Minimum-maximum filtering of graphical texture data
KR101713041B1 (ko) 일반화된 플레인 인코딩을 이용한 확률적 깊이 버퍼 압축
US9355465B2 (en) Dynamic programmable texture sampler for flexible filtering of graphical texture data
WO2014185900A1 (en) Variable rasterization order for motion blur and depth of field
US9158498B2 (en) Optimizing fixed point divide
WO2014085979A1 (en) Distributed graphics processing
US9773477B2 (en) Reducing the number of scaling engines used in a display controller to display a plurality of images on a screen
US9483810B2 (en) Reducing the number of IO requests to memory when executing a program that iteratively processes contiguous data
US20150006839A1 (en) Swapping pointers to process data stored in buffers by a data source without copying the data to separate storage
US20140028668A1 (en) Multiple scissor plane registers for rendering image data

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151221

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160119

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160217

R150 Certificate of patent or registration of utility model

Ref document number: 5889990

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250