(57)【要約】【課題】種々の実施例が、テクスチャ領域外に及ぶ何れかのテクスチャ・フィルタ・タップ（すなわち、座標）をフィルタリング・プロセスから除外する新たなテクスチャ・アドレス・モードに対応する。【解決手段】一実施例では、テクスチャ領域外のタップは考慮に入れられない。更に、種々の実施例は、テクスチャ座標位置ti、及び重みwiの値についての柔軟性を提供する。タップ重みは、タップ位置の関数として、かつ、特に、タップがテクスチャ内にあるか否かの関数として修正することが可能である。【選択図】図７
2014182831.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツを保護するためのプロセッサであって、
ディジタル・コンテンツを部分に解析し、各部分をメモリの対応するページに記憶させるためのコンテンツ記憶ロジックと、
前記メモリ内にデスティネーション・アドレスを有する書き込み命令を受け取り、
前記デスティネーション・アドレスが前記ディジタル・コンテンツの一部を記憶するメモリ記憶位置に関連付けられている場合に、前記メモリ記憶位置に関連付けられた前記ページを消去し、
前記デスティネーション・アドレスが前記ディジタル・コンテンツを何ら記憶していない別のメモリ記憶位置に関連付けられている場合に、前記書き込み命令の実行を可能にするための保護ロジックと
を備えるプロセッサ。
【請求項２】
請求項１記載のプロセッサであって、暗号化されたディジタル・コンテンツを復号し、前記ディジタル・コンテンツを前記コンテンツ記憶ロジックに出力するための復号ロジックを更に備えるプロセッサ。
【請求項３】
請求項１記載のプロセッサであって、各ページが同じページ・サイズを有するプロセッサ。
【請求項４】
請求項１記載のプロセッサであって、１つ又は複数の記憶装置を更に備え、各記憶装置は、対応するページの最終の書き込まれたアドレスの表現を記憶するプロセッサ。
【請求項５】
請求項４記載のプロセッサであって、前記最終の書き込まれたアドレスの前記表現が、前記対応するページの当初アドレスからのオフセットを含むプロセッサ。
【請求項６】
請求項４又は５に記載のプロセッサであって、前記保護ロジックは、前記デスティネーション・アドレスの表現を、前記記憶装置のうちの１つに記憶された前記最終の書き込まれたアドレスの前記表現と比較して、前記デスティネーション・アドレスに関連付けられた前記メモリ記憶位置が前記ディジタル・コンテンツの一部を記憶しているか否かを判定するプロセッサ。
【請求項７】
請求項４記載のプロセッサであって、前記デスティネーション・アドレスが前記ページのうちの１つにおける前記最終の書き込まれたアドレスよりも大きい場合、前記保護ロジックは、前記デスティネーション・アドレスに関連付けられた前記メモリ記憶位置が前記ディジタル・コンテンツを何ら記憶していないプロセッサ。
【請求項８】
請求項４記載のプロセッサであって、前記デスティネーション・アドレスが、特定のページの先頭と、前記ページのうちの１つにおける前記最終の書き込まれたアドレスとの間に存在する場合、前記保護ロジックは、前記デスティネーション・アドレスに関連付けられた前記メモリ記憶位置が前記ディジタル・コンテンツの一部を記憶しているプロセッサ。
【請求項９】
請求項８記載のプロセッサであって、前記プロセッサは、前記最終の書き込まれたアドレスの前記表現をリセットするプロセッサ。
【請求項１０】
システムであって、
データを処理する処理手段と、
前記処理手段に結合され、データを記憶するメモリ手段と、
前記メモリ手段に結合され、前記メモリ手段における複数のページにディジタル・コンテンツを書き込むメモリ・コントローラ手段であって、
前記ページのうちの１つにおけるメモリ記憶位置のデスティネーション・アドレスを有する書き込み命令の前記処理手段による受け取りに応じて、
前記メモリ記憶位置が前記ディジタル・コンテンツを何ら記憶していない場合に、前記書き込み命令を実行し、
前記メモリ記憶位置が前記ディジタル・コンテンツの一部を記憶している場合に、前記ページを消去するメモリ・コントローラ手段と
を備えるシステム。
【請求項１１】
請求項１０記載のシステムであって、前記メモリ・コントローラ手段は複数のレジスタを含み、各レジスタは、対応するページの最終の書き込まれたアドレスに対応する最終の書き込まれたオフセットを記憶するシステム。
【請求項１２】
請求項１１記載のシステムであって、前記メモリ・コントローラ手段は更に、前記デスティネーション・アドレスに対応するデスティネーション・オフセットを、前記レジスタのうちの１つに記憶された前記オフセットと比較して、前記デスティネーション・アドレスに関連付けられた前記メモリ記憶位置が前記ディジタル・コンテンツの一部を記憶しているか否かを判定するシステム。
【請求項１３】
請求項１２記載のシステムであって、前記デスティネーション・オフセットが特定のページの先頭と、前記最終の書き込まれたオフセットとの間に位置する場合、前記メモリ・コントローラ手段は更に、前記デスティネーション・アドレスに関連付けられた前記メモリ記憶位置が前記ディジタル・コンテンツの一部を記憶していると判定するシステム。
【請求項１４】
請求項１１記載のシステムであって、前記メモリ記憶位置が前記ディジタル・コンテンツの一部を記憶している場合、前記メモリ・コントローラ手段は更に、前記最終の書き込まれたオフセットをリセットするシステム。
【請求項１５】
請求項１２記載のシステムであって、前記デスティネーション・オフセットが前記最終の書き込まれたオフセットよりも大きい場合、前記メモリ・コントローラ手段は更に、前記デスティネーション・アドレスに関連付けられた前記メモリ記憶位置が前記ディジタル・コンテンツを何ら記憶していないと判定するシステム。
【請求項１６】
方法であって、
ディジタル・コンテンツを部分に解析する工程と、
各部分をメモリの対応するページに記憶する工程と、
書き込み命令のデスティネーション・アドレスを、前記ページの１つの最終の書き込まれたアドレスと比較して、対応するメモリ記憶位置が前記ディジタル・コンテンツの一部を記憶しているか否かを判定する工程と、
前記対応するメモリ記憶位置が前記ディジタル・コンテンツの一部を記憶している場合、前記ページのうちの少なくとも１つを消去する工程と、
前記対応するメモリ記憶位置が前記ディジタル・コンテンツを何ら記憶していない場合、前記書き込み命令を実行する工程と
を含む方法。
【請求項１７】
請求項１２記載の方法であって、前記ディジタル・コンテンツを解析する工程に先行して前記ディジタル・コンテンツを復号する工程を更に備える方法。
【請求項１８】
請求項１６記載の方法であって、前記比較する工程は、
最初のページが前記デスティネーション・アドレスを含んでいると判定する工程と、
前記デスティネーション・アドレスが前記最初のページの前記最初の書き込まれたアドレスと、前記最初のページの前記最終の書き込まれたアドレスとの間にある場合、前記対応するメモリ記憶位置が前記ディジタル・コンテンツを何ら記憶していない方法。
【請求項１９】
請求項１６記載の方法であって、前記書き込み命令の実行に応じて、前記対応する最終の書き込まれたアドレスを更新する工程を更に含む方法。
【請求項２０】
処理手段上で実行されると、請求項１６乃至１９の何れか一項に記載の方法を行うよう前記処理手段を構成する１つ又は複数の命令を備えた少なくとも１つのマシン読み取り可能な媒体。
【請求項２１】
プロセッサであって、
１つ又は複数のコアと、
第１の記憶装置に記憶され、メモリの最初のページの最終の書き込まれたメモリ記憶位置に関連付けられた最終の書き込まれたオフセットと、前記最初のページに対する書き込み命令に関連付けられた書き込みオフセットとの比較に応じて、前記メモリの前記最初のページへの書き込みアクセスをアンロックするか否かを判定するための保護ロジックと
を備えるプロセッサ。
【請求項２２】
請求項２１記載のプロセッサであって、前記保護ロジックは、前記最初のページへの前記書き込みアクセスをアンロックし、前記書き込みオフセットが前記最終の書き込まれたオフセットを超える旨を示す前記比較に応じて、前記書き込み命令の実行を可能にするプロセッサ。
【請求項２３】
請求項２２記載のプロセッサであって、前記保護ロジックは、前記書き込み命令の前記実行に応じて、前記第１の記憶装置における前記最終の書き込まれたオフセットを、前記書き込みオフセットで置き換えるための更新ロジックを更に備えるプロセッサ。
【請求項２４】
請求項２１記載のプロセッサであって、前記保護ロジックは、前記書き込みオフセットが前記最終の書き込まれたオフセット以下である旨を示す前記比較に応じて前記最初のページを消去するプロセッサ。
【請求項２５】
請求項２４記載のプロセッサであって、前記書き込みオフセットが前記最終の書き込まれたオフセット以下である旨を示す前記比較に応じて、前記第１の記憶装置における前記最終の書き込まれたオフセットをリセットするための更新ロジックを更に備えるプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、本明細書及び特許請求の範囲に明示的に援用する米国特許仮出願第６１／７８９，８７０号の優先権を主張する。
【０００２】
本出願は、一般にグラフィックス処理に関し、具体的にはテクスチャ・アドレス・モードに関する。
【背景技術】
【０００３】
テクスチャは形状の表面にマッピングされたデータである。通常、テクスチャ・データはカラー値（色の値）で構成されている。テクスチャにおける画素それぞれはテクセルと呼ばれる。そして、カラー・マップにおけるテクセルはカラー値である。
【０００４】
テクスチャ・フィルタリングは、値が、ソースから読み出され、合成され、次いで、グラフィックス・パイプラインにおけるシェーダに利用可能にされるやり方である。例えば、異方性フィルタリングには、台形領域におけるトライリニア・サンプリングが関係する。しかし、他のテクスチャ・フィルタリング手法が多く存在している。
【０００５】
テクスチャ座標は、次元毎に０．０乃至１．０の範囲内で規定される。テクスチャ・アドレス・モードは、前述の範囲外でフィルタ・タップ又は座標をどのようにして扱うかを規定する。テクスチャ・フィルタリング手法のように、テクスチャ・アドレス・モードが多く存在している。
【０００６】
既存のテクスチャ・アドレス・モードは、そのそれぞれが、エッジの下で特定の種類のバイアスをもたらすので、テクスチャ内部に収まるテクスチャ・フィルタ・カーネルの一部のみのサンプリングには適していない。特に、図１に示すように、フィルタがカバーする領域（フィルタ・フットプリント）が複数のテクスチャに及ぶ場合、Ｄ３Ｄ１１＿ＴＥＸＴＵＲＥ＿ＡＤＤＲＥＳＳ＿ＣＬＡＭＰは、タップがテクスチャ内に含まれることに対応する。一方側に偏った、汚損したエッジが生じ得る。前述の方法は、劣悪な画像品質をもたらし得る。
【０００７】
別の方法には、テクスチャにガード・バンドを使用することが関係する。前述の方法は図２に示す。上記方法は、テクスチャ・エッジ付近のフィルタ幅に対応するよう、（ガード・バンドと呼ばれる、）より大きなテクスチャ表面を割り当て、近接テクスチャのデータを境界(ボーダー)領域に複製する。要するに、テクスチャ・フィルタ・カーネルは、実際にサンプリングされているテクスチャに加えて、近接テクスチャを考慮に入れる。これは、通常、容認でき、低品質レンダリング・シナリオにおける品質の改善をもたらし得る。しかし、前述の方法は、データの複製のために、かなり多くのメモリ及び帯域幅を更に必要とする。更に、ハードウェア・テクスチャ・サンプラによって通常、計算される一部の数量を計算するために、シェーダ・プログラムを使用しなければならない。２つのフラグメントが別々の色である場合、結果として生じるサンプルは、２つのフラグメントの色のブレンドをもたらす。更なる計算の性能及びガード・バンドの記憶及びメモリ・アクセスを犠牲にしてではあるが、容認できる色の結果が生じ得る。
【０００８】
（ｔｉと呼ばれる）個々の座標を備えたいくつかのテクスチャ・タップが（ｗｉと呼ばれる）重みを使用して重み付けされ、テクスチャ・タップ毎に合計される。値ｉは１乃至Ｎの整数である。タップそれぞれの座標における色は、特定の座標におけるテクスチャ・カラーであるか、テクスチャ・アドレス・モードによって求められる修正された座標におけるテクスチャ・カラーであるか、又は一定のボーダー色である（、Ｆと呼ばれる）テクスチャ・アドレス・モード関数によって求められる。（Ｃと呼ばれる）最終色は、
【０００９】
【数１】
2014182831.tif 000003
として計算される。
【００１０】
行われる実際の計算は上記数学式と異なり得る。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
前述の手法を使用すれば、タップがテクスチャ内に収まるか否かにかかわらず、全てのタップが寄与する。タップは全て、重み、及び重みの和＝１を有する。しかし、Ｄ３Ｄ１１＿ＴＥＸＴＵＲＥ＿ＡＤＤＲＥＳＳ＿ＣＬＡＭＰの場合と同様に、テクスチャ外のタップに重みが与えられ、最終色は歪んでいることがあり得る。
【課題を解決するための手段】
【００１２】
いくつかの実施例を、以下の図に関して説明する。
【図面の簡単な説明】
【００１３】
【図１】複数のテクスチャに及ぶフィルタ・フットプリントを表す図である。
【図２】ガード・バンド・テクスチャ・アドレス・モードを表す図である。
【図３】一実施例による、テクスチャ内の３つのタップ及びテクスチャ外の２つのタップを含む例を表す図である。
【図４】一実施例を示すブロック図である。
【図５】Ｐｔｅｘテクスチャリングを使用した実施例を表す図である。
【図６】一実施例を描いたブロック図である。
【図７】一実施例を示すフロー図である。
【図８】一実施例を描いたシステム図である。
【図９】一実施例を示す正面図である。
【発明を実施するための形態】
【００１４】
種々の実施例は、テクスチャ領域外に及ぶテクスチャ・フィルタ・タップ（すなわち、座標）をフィルタリング・プロセスから除外する新たなテクスチャ・アドレス・モードに対応する。テクスチャ領域外のタップは、一実施例では考慮に入れられない。更に、種々の実施例は、テクスチャ座標位置ｔｉ、及び重みｗｉの値についての柔軟性を提供する。タップ重みは、タップ位置の関数として、かつ、特に、タップがテクスチャ内にあるか否かの関数として修正することが可能である。
【００１５】
通常通りにＣを計算することに加えて、テクスチャ内に収まる（Ｈと呼ばれる）合計フィルタリング重みを求めることが可能である。（Ｇと呼ばれる）新たな関数は、テクスチャ内の点毎に１を返し、テクスチャ外部の点毎に０を返す。Ｈでの除算により、重みの和が１に正規化され得る。種々の実施例によれば、正規化された色Ｃ’は、以下のように求めることが可能である。すなわち、
Ｃ’＝Ｃ／Ｈであり、ここで、
【００１６】
【数２】
2014182831.tif 000004
であり、ｉ＝１…Ｎである。
【００１７】
やはり、行われる実際の計算は上記数学式と異なり得る。
【００１８】
図３は、テクスチャ内の３つのタップ、及びテクスチャ外の２つのタップの例を記載する。前述の例では、テクスチャ内の３つのタップのＧ値は１であり、その重みｗｉは０．１である。よって、Ｈ＝０．６であり、Ｃ’＝Ｃ／０．６である。最終色値は、Ｈによる除算で修正される。重みの合計が１でないことがあり得るからである。
【００１９】
一部の実施例では、和が１になるようにＮ個のタップの重みを規定し得る。例えば、０．２５、０．５、及び０．２５の重みを有する３つのタップを使用することが可能である。フットプリントが小判形であり、サンプルが小判形内の線に沿って行われた場合、小判形の中央におけるサンプルは、端点の近くのサンプルよりも大きな重みが与えられ得る。タップが０．２５、０．５、及び０．２５の重みを有する例をもう一度参照すれば、小判形の中央におけるサンプルには０．５の重みが与えられ得る。重みの和が１となる場合、（タップの重みをゼロに変更するか、又はゼロで乗算することにより、）タップが排除されることがない限り、合計の重みで除算することによって正規化する必要はない。合計の重みが１になるからである。
【００２０】
正規化が使用されるか否かは特定の実現形態に依存する。実現形態が、テクスチャ・サンプラ（ＴＳ）における合計の重みで、フィルタリングされた色を除算し、フィルタリングされた色のみをシェーダに返すことも可能になる。
【００２１】
場合によっては、テクスチャ内にテクスチャ・フィルタ・タップがない場合、Ｈ＝０になる。この場合、Ｃ’は不鮮明となる。一部の実施例では、Ｈ＝０の場合、フィルタ・カーネルの中央に最も近いテクスチャ内の点における色はＣ’として供給される。
【００２２】
Ｈ＝０の場合、値Ｃ’は、一部の実施例において以下のやり方のうちの１つで求めることが可能である。
方法Ａ
Ｃ’−一定のボーダー色（サンプラ・オブジェクトを初期化する場合に、アプリケーションによって選ばれる色）
方法Ｂ
Ｃ’＝［０，０，０，０］（４つの数はそれぞれ、赤、緑、青、及びアルファである）
方法Ｃ
ｔｃをテクスチャ・フィルタ・フットプリント（すなわち、シェーダによって実際に供給された座標）の中心とする。その場合、ｔｃの最も近くに位置する、（［０，１］ｘ［０，１］である）有効なテクスチャ領域内の点ｔｖを計算する。
ｔｖ＝［ｍａｘ（０．０，ｍｉｎ（１．０ｘ（ｔｃ））），ｍａｘ（０．０，ｍｉｎ（１．０，ｙ（ｔｃ）））］
最後に、従来技術のテクスチャ・アドレス機構を使用して色を計算する。
Ｃ’＝Ｆ（ｔｖ）
Ｆのクランプ・テクスチャ・アドレス・モードをここで使用することが可能であるが、他のアドレス・モードを使用することが考えられる。テクスチャ・ボーダーが存在する場合、評価ｆ（ｔｖ）においてもそれを尊重することが可能であり得る。よって、Ｃ’は、テクスチャ・フィルタ・フットプリントの中央に最も近いテクスチャにおける色であり得る。
【００２３】
未使用のアルファ・チャネルをテクスチャが有する場合、テクスチャ内のどこでもアルファ・チャネルを１にセットし、ゼロの色及びアルファで一定のボーダー色を規定し、次いで、テクスチャ外にあるタップのボーダー色を返すテクスチャ・アドレス関数を使用する。この場合、再正規化する対象のアルファ成分で、フィルタリングされた結果の色成分を除算することによって、所望の色結果を得ることが可能である。
【００２４】
以下に、いくつかの実施例と、ガード・バンド手法との間での、メモリの使用度の例示的な比較について説明する。（極めて一般的な）１６テクセルのフィルタ幅と、完全なＭＩＰ  ＭＡＰ構造（テクスチャ内のエイリアシングを避けるために使用される、同じ画像の漸次的に小さくなるバージョンである）及び１２８×１２８テクセルという仮説的なテクスチャでは、ガード・バンド手法のサイズは以下の通りとなる。
Ｍｉｐ  ０：（１２８＋１６）＊（１２８＋１６）＝２０７３６
Ｍｉｐ  １：（６４＋１６）＊（６４＋１６）＝６４００
Ｍｉｐ  ２：（３２＋１６）＊（３２＋１６）＝２３０４
Ｍｉｐ  ３：（１６＋１６）＊（１６＋１６）＝１０２４
Ｍｉｐ  ４：（８＋１６）＊（８＋１６）＝５７６
Ｍｉｐ  ５：（４＋１６）＊（４＋１６）＝４００
Ｍｉｐ  ６：（２＋１６）＊（２＋１６）＝３２４
Ｍｉｐ  ７：（１＋１６）＊（１＋１６）＝２８９
合計：３２０５３テクセルである。（一般的な）画素毎３２ビットでは、これは１２５ｋＢである。
ボーダーが全くない種々の実施例を使用すれば、
Ｍｉｐ  ０：（１２８＋０）＊（１２８＋０）＝１６３８４
Ｍｉｐ  １：（６４＋０）＊（６４＋０）＝４０９６
Ｍｉｐ  ２：（３２＋０）＊（３２＋０）＝１０２４
Ｍｉｐ  ３：（１６＋０）＊（１６＋０）＝２５６
Ｍｉｐ  ４：（８＋０）＊（８＋０）＝６４
Ｍｉｐ  ５：（４＋０）＊（４＋０）＝１６
Ｍｉｐ  ６：（２＋０）＊（２＋０）＝４
Ｍｉｐ  ７：（１＋０）＊（１＋０）＝１
合計：２１８４５テクセル＝８５ｋＢである。
全くのエッジでの適切な内挿のために単一のテクセル・ボーダーを加えた一実施例によれば、
Ｍｉｐ  ０：（１２８＋１）＊（１２８＋１）＝１６６４１
Ｍｉｐ  １：（６４＋１）＊（６４＋１）＝４２２５
Ｍｉｐ  ２：（３２＋１）＊（３２＋１）＝１０８９
Ｍｉｐ  ３：（１６＋１）＊（１６＋１）＝２８９
Ｍｉｐ  ４：（８＋１）＊（８＋１）＝８１
Ｍｉｐ  ５：（４＋１）＊（４＋１）＝２５
Ｍｉｐ  ６：（２＋１）＊（２＋１）＝９
Ｍｉｐ  ７：（１＋１）＊（１＋１）＝４
合計：２２３６３テクセル＝８７ｋＢである。
【００２５】
よって、種々の実施例により、１２８×１２８のテクスチャに対して、約３０％のメモリ空間が節減される。より低い分解能のテクスチャの場合、この数字は増加する（６４×６４のテクスチャの場合、最大５０％の節減となり、より大きな分解能の場合、この数字は減少する（２５６×２５６の場合、最大１７％の節減となる）。オブジェクト毎に多くのテクスチャを使用するよう設計されたシステムは、大半の時間において、サイズが１２８×１２８以下のテクスチャを使用する可能性が最も高くなる。
【実施例】
【００２６】
（テクスチャ・サンプリング）
以下は、いくつかの実施例を使用するテクスチャ・サンプリング・システムの説明である。図４は、システムのブロック図を示す。
１．  シェーダ・コア１２上で実行するシェーダ・プログラム１０は、サンプリングする対象のテクスチャ画像、使用する対象のサンプラ状態、及び、テクスチャをサンプリングしたい（ｕ，ｖ）テクスチャ座標（通常、０＜＝ｕ＜＝１であり、かつ０＜＝ｖ＜＝１であることは、テクスチャ画像を表す）を規定して、テクスチャ・サンプリングを要求する旨の命令１４を出す。要求は、テクスチャ・サンプラ（ＴＳ）装置１６に転送される。
２．  テクスチャ・サンプラ（ＴＳ）は、理想的には、フィルタリングされた色を計算するよう積分される、テクスチャの領域を表す、テクスチャ座標の周りを中心とするフットプリントを計算する。
３．  ＴＳは、タップにおけるカラー値の加重和が、フットプリント全体の積分値を近似するような重み及び（ｕ，ｖ）位置をそれぞれが表す有限数のタップとしてフットプリントを近似する。使用される厳密な手法は、どのようにしてサンプラ状態が構成されるか（例えば、異方性フィルタリングがイネーブルされるか否か）に依存する。
４．  一部の実施例では、ＴＳは、その位置に基づいてタップ重みを修正し得る演算を（どのようにしてサンプラ状態が構成されるかに応じて）適用する。例えば、（ｕ，ｖ）位置がテクスチャ画像外にある（［０，１］ｘ［０，１］領域外にある）タップは、その重みをゼロにセットし得る。
５．  ＴＳは、メモリ２０においてタップ位置１８を修正し得る演算を（どのようにしてサンプラ状態が構成されるかに応じて）適用する。例えば、（ｕ，ｖ）位置がテクスチャ画像外にあるタップは何れも、テクスチャ画像内の最も近い位置に移動させ得る。
【００２７】
ａ．  場合によっては、修正された座標Ｕ’及びＶ’を生成するために、別個にタップのＵ座標及びＶ座標それぞれに関数を適用することにより、タップ位置が修正される。サンプラ状態を使用して、別々のいくつかのモードを選択することが可能であり、Ｕ座標及びＶ座標について種々のモードを設定することが可能である。
【００２８】
ｂ．  場合によっては、「クランプ」モードを使用して、新たな座標Ｕ’を、
Ｕ＜０の場合、Ｕ’＝０であり、
Ｕ＞１の場合、Ｕ’＝１であり、
０＜＝Ｕ＜＝１の場合、Ｕ’＝Ｕであり、
Ｖについても同等である
として求めることが可能である。Ｕ座標及びＶ座標が、このクランプ挙動について構成された場合、新たな位置（Ｕ’，Ｖ’）は、（Ｕ，Ｖ）までの直線距離により、）テクスチャにおいて最も近い点となる。
６．  ＴＳは、タップ位置２２それぞれにおいて、テクスチャ画像からカラー値をロードする。
【００２９】
ａ．  種々の実施例では、色は、タップの重みが非ゼロである場合にのみロードされ、タップ位置の重みがゼロである場合にはロードされない。よって、テクスチャ外の色に対するメモリ・アクセス演算を避けることが可能である。
【００３０】
ＴＳは、その重みで、各タップの色を乗算し、重み付けられた色を合計して、フィルタリングされた色を生成する。一部の実施例によれば、ＴＳは、タップ全ての重みの和を計算することにより、合計の重みを計算する。
【００３１】
ＴＳは、フィルタリングされた色及び合計の重み２４をもう一度、シェーダ・プログラムに提供する。
【００３２】
場合によっては、重みの和が０よりも大きいが１よりも小さい場合、ＴＳは正規化を行うことが可能である。場合によっては、ＴＳは正規化を行わず、代わりに、フィルタリングされた非正規化加重色及び合計の重みをシェーダに返す。マルチサンプリング・アンチエイリアシング（ＭＳＡＡ）なしでのＰｔｅｘテクスチャリング・マッピング・システムの実現の場合に有用である。正規化前にシェーダ・コードを使用して、複数のサンプリング要求にわたる重みを合成することが可能である。
【００３３】
一実施例による、図７に示すテクスチャ・サンプリング手順４０は、ソフトウェア、ファームウェア、及び／又はハードウェアで実現し得る。ソフトウェア及びファームウェアの実施例では、磁気記憶装置、又は光記憶装置、又は半導体記憶装置などの非一時的な１つ又は複数のコンピュータ読み取り可能な媒体に記憶されたコンピュータが実行する命令によって実現し得る。
【００３４】
一実施例では、手順は、ブロック４２に示すようなテクスチャ・サンプリングを行う旨の要求にアクセスすることによって開始し得る。次いで、サンプリングのサイズ及びフットプリント位置がブロック４４に示すように求められる。その後、フットプリントに関連付けられたフィルタ・タップ毎の重み、及び１つ又は複数のフィルタ・タップ位置を、ブロック４６に示すように求め得る。次に、テクスチャ画像外に配置されたタップは何れも、ブロック４８に示すように選択的に修正される。
【００３５】
テクスチャ画像外に配置された何れかのタップの位置も、ブロック５０で示すように選択的に修正される。非ゼロの重みを有し、テクスチャ画像内のフィルタ・タップ位置毎に、テクスチャ画像内のカラー値が要求される（ブロック５４）。タップの色それぞれは、その重みで乗算される（ブロック５６）。ブロック５８に示すように、フィルタリングされた色を生成するよう、重み付けされた色の和が求められる。最終的には、最終のフィルタリングされた色、すなわち、フィルタリングされた色に基づいた最終色が、ブロック６０に示すように生成される。
【００３６】
（ユーザ・モデル）
グラフィック処理装置（ＧＰＵ）によってアクセラレートされたＰｔｅｘ型のテクスチャリング・システムを実現するために種々の実施例を使用することが可能である。例えば、ウォルト・ディスニー・アニメーション・スタジオ（Ｗａｌｔ  Ｄｉｓｎｅｙ  Ａｎｉｍａｔｉｏｎ  Ｓｔｕｄｉｏｓ  Ｐｔｅｘ）があり。Ｐｔｅｘテクスチャリングは、インターネット上、Ｐｔｅｘ．ｕｓにおいて説明している。他のバージョンは、ＮＶＩＤＩＡから入手可能である。
【００３７】
（（ＭＳＡＡなしで種々の実施例を使用する）ＰＴＥＸ実現形態）
１．  中央処理装置（ＣＰＵ）上で実行されるアプリケーションは、モデルのテクスチャ及び幾何データをロードし、幾何学的形態における各プリミティブを別個のテクスチャに関連付け得る。そういうものとして、テクスチャ・サンプリングによって生成されるフィルタリングされた色が正しくない場合、テクスチャ間の境界に現れる「シーム」という潜在的な問題が存在し得る。
２．  アプリケーションは、種々の実施例を使用するよう構成されたサンプラ状態をもたらす。
３．  アプリケーションは、テクスチャ・サンプリング演算を含むシェーダ・プログラムを作成する。
４．  アプリケーションは、テクスチャ、サンプラ状態、及びシェーダ・プログラムをＧＰＵの現在の状態に結合し、幾何学的形態をレンダリングするようＧＰＵに要求する。
５．  ＧＰＵは、幾何学的形態におけるプリミティブをラスタ化し、フラグメントを生成する。ＭＳＡＡが使用されていない場合、画像の中央をカバーする場合、プリミティブはフラグメントを生成するに過ぎない。特に、テクスチャＴ１及びＴ２それぞれに関連付けられた近接の２つのプリミティブＰ１及びＰ２が部分的に同じ画素をカバーする場合、画素の中央をカバーするプリミティブについて１つのフラグメントのみが生成される（これをＦ１と仮定する）。前述の画素の理想的なカラー値は、画素のどの程度がＰ１又はＰ２によってカバーされるかに応じてＴ１及びＴ２からの色の組合せとなる。
６．  ＧＰＵは、フラグメント毎に一度、シェーダ・プログラムを実行する。
７．  シェーダ・プログラムは、種々の実施例を使用して行われる１つ又は複数のテクスチャ・サンプリング演算を要求する。
【００３８】
ａ．  フラグメントＦ１を処理する場合、シェーダはまず、テクスチャＴ１のサンプリングを要求し、Ｔ１外に及ぶタップ全てが排除される、フィルタリングされた色を取得する。
【００３９】
ｂ．  その後、シェーダは、シェーディングされているフラグメントの（ｘ，ｙ）位置がプリミティブの境界近くにある場合にはいつでも、更なるテクスチャ・サンプリング要求を出す。その後の要求はそれぞれ、近くのプリミティブによって使用されるテクスチャを求め、対応するテクスチャ座標におけるテクスチャ・サンプル演算を要求することによって行われる。フラグメントが、プリミティブのボーダー近くであるが、隅の近くでない場合、これには、（例えば、テクスチャＴ２のサンプリングを行う旨の）更なる単一のサンプル要求が関係する。フラグメントが隅の近くにある場合、入力された幾何学的形態における頂点のバレンス（すなわち、その頂点を共通に共有するプリミティブの数）に依存する。近くのプリミティブは、アプリケーションによって構築され、シェーダによってアクセスされる近傍構造を使用して求めることが可能である。
８．  シェーダは、テクスチャ・サンプリング要求にわたり、合計の重み、及びフィルタリングされた色の和を計算し、フィルタリングされた色の和を合計の重みの和で除算することにより、最終色を計算する。前述の最終色は、以下ａ及びｂのため、小判形のフットプリントにわたる理想の積分の好適な近似である。
【００４０】
ａ．  要求毎の合計の重みは、各テクスチャ内に収まるフィルタ・フットプリントの割合に依存する。（フィルタ・フットプリントは、テクスチャ空間への画素の投影に関係するので）これは、各プリミティブによってカバーされる画素の領域の割合に依存する。
【００４１】
ｂ．  よって、（例えば、Ｔ１及びＴ２による）最終フラグメント色への貢献は、Ｐ１及びＰ２（それぞれが）画素をカバーする度合いに比例し、これは、上記理想的な結果である。
【００４２】
図５に示す例では、客観描写を上に示し、ＰＴＥＸ描写が続き、本明細書及び特許請求の範囲記載の手法の一実施例による結果を最下部に示す。この場合、客観視では、画素は中央にあるが、２つのフラグメントによって部分的にカバーされている一方、画素の中央は、上のフラグメント内に存在する。よって、ＰＴＥＸ描写では、画素は、その境界に沿ってフラグメントをまたがるものとして示す。一実施例では、開示された手法の結果は、下の描写に示すように、画素の中心を含まないフラグメント、及び画素の中央を含むフラグメントの組合せである。
【００４３】
この場合も又、最終色は、提案された方法の描写、及びＰＴＥＸ描写に示す小判形フットプリントにわたる理想的な積分値の適切な近似である。要求毎の合計の重みは、各テクスチャ内に収まる、図５の上部の描写に示すフィルタ・フットプリントの割合に依存する。よって、２つのフラグメントそれぞれからの最終フラグメント色の寄与度は、理想的な結果である、各プリミティブが画素をカバーする度合いに比例する。
【００４４】
（（ＭＳＡＡなしで、かつ、種々の実施例を使用する）ＰＴＥＸ）
１．  ホスト・コンピュータ上で実行されるアプリケーションは、モデルのテクスチャ及び幾何データをロードし、幾何学的形態における各プリミティブを別個のテクスチャに関連付け得る。そういうものとして、テクスチャ・サンプリングによって生成されるフィルタリングされた色が正しくない場合、テクスチャ間の境界に現れる「シーム」という潜在的な問題が存在する。
２．  アプリケーションは、種々の実施例を使用するよう構成されたサンプラ状態をもたらす。
３．  アプリケーションは、テクスチャ・サンプリング演算を含むシェーダ・プログラムを作成する。
４．  アプリケーションは、テクスチャ、サンプラ状態、及びシェーダ・プログラムをＧＰＵの現在の状態に結合し、幾何学的形態をレンダリングするようＧＰＵに要求する。
５．  ＧＰＵは、幾何学的形態におけるプリミティブをラスタ化し、カバレッジ・マスクを備えたフラグメントを生成する。特に、テクスチャＴ１及びＴ２それぞれに関連付けられた近傍の２つのプリミティブＰ１及びＰ２が同じ画素を部分的にカバーする場合、そのマスクにおいてイネーブルされるサンプルの部分集合がそれぞれ異なるフラグメントＦ１及びＦ２が生成される。
【００４５】
ａ．  前述の画素の理想的なカラー値は、画素のどの程度がＰ１又はＰ２によってカバーされるかに応じてＴ１及びＴ２からの色の組合せとなる。
６．  ＧＰＵは、フラグメント毎に一度、シェーダ・プログラムを実行する。
７．  シェーダ・プログラムは、（テクスチャ・サンプリングについて上述したように）種々の実施例を使用して行われるテクスチャ・サンプリング演算を要求する。
【００４６】
ａ．  フラグメントＦ１を処理する場合、テクスチャ・フットプリントは、テクスチャＴ１及びＴ２に及び得るが、種々の実施例では、Ｔ１外に及ぶタップが排除される。
【００４７】
ｂ．  同様に、Ｆ２を処理する場合、Ｔ２外に及ぶタップは排除される。
８．  シェーダ・プログラムは、フラグメント毎の色を計算するために、合計の重みで、フィルタリングされた色を除算する。前述の再正規化工程が、種々の実施例による、一部のフィルタ・タップの排除に相当する。場合によっては、テクスチャ・サンプラは、合計の重みで、フィルタリングされた色を分けることが可能である。
９．  パイプラインのフラグメント・バックエンドは、そのマスク、及び計算されたカラー値とともにフラグメントを受け取り、対応する画素のサンプルに合成する。マスクがイネーブルされるサンプルのみが特定のフラグメントによって更新される。
【００４８】
ａ．  よって、（テクスチャＴ１及びＴ２を使用して）フラグメントＦ１及びＦ２について計算された色を含むサンプルの割合は、プリミティブＰ１及びＰ２によってカバーされた画素の割合に依存する。
１０．  解決演算は、画素内のサンプル全てのカラー値を合成することにより、画素毎の最終カラー値を計算する。
【００４９】
ａ．  よって、Ｔ１及びＴ２による色への貢献は、Ｐ１及びＰ２（それぞれが）各画素のサンプルをカバーする度合いに比例し、これは、上述したような理想的な結果である。
【００５０】
ＭＳＡＡの例
以下に、ＭＳＡＡとともに使用するテクスチャ・サンプリングが関係するプロセスの説明を記載する。図６は、マルチサンプリング・アンチエイリアシング（ＭＳＡＡ）に関して実施例を使用することが可能なシステム３０を示す。
１．  ホストＣＰＵ（図示せず）上で実行されるプログラムはサンプラ状態を初期化する。
２．  ホスト上で実行されるプログラムは、テクスチャ・メモリ３２にテクスチャをアップロードする。
３．  ホスト上で実行されるプログラムはシェ―ダ・プログラムをコンパイルし、シェーダ・プログラムのバイトコードをプログラム・メモリ３４にアップロードする。
【００５１】
ａ．  図６では、別個のメモリを、テクスチャ及びシェーダ・プログラムについて表す。一部の個別ＧＰＵは、前述の対象全てについて共有メモリを有する。一部の組み込みＧＰＵは、ＧＰＵ上及びホストＣＰＵ上のリソースを含む全ての対象について共有メモリを有する。メモリは、如何なるやり方によっても、物理的に、かつ／又は論理的に分けることが可能である。
４．  ホストＣＰＵ上で実行されるプログラムはドロー・コールを起動させる。
５．  ＧＰＵはドロー・コールを処理する。
６．  １つのプリミティブが一時点でラスタ化される。
【００５２】
ａ．  概念的には、一時点で１つのプリミティブである。実際には、性能を増大させるために、いくつかの三角形が平行で処理され得る。
７．  ラスタ化器３６は、画素内のどのサンプルがカバーされているかを示す、マスク及び画素の（ｘ，ｙ）位置を含むフラグメントを生成する。プリミティブが画素の少なくとも１つのサンプルをカバーする場合に、画素毎にフラグメントを生成する。マスクは、プリミティブによってサンプルがカバーされるかをはい又はいいえで示す。（マルチサンプリングでは、２つ以上のサンプルが画素毎に採られる。）フレーム・バッファの内容は、サンプル毎に記憶された１つの色を含む。フレーム・バッファは、クリアなカラーで起動する。ラスタ化器はサンプルそれぞれにおける重なりを検査する。その結果は、サンプルがカバーされているか、カバーされていないかの判定である。シェーダは、画素毎に１つの色を計算する。画素位置及びカバレッジ情報はフラグメントとして表される。フラグメントは、単一の三角形と関連付けられる。いくつかの三角形は、画素に重なると、それぞれ、１つのフラグメントを有する。シェーディングされた色は場合によっては、フラグメント・カラーとして表される。画素のシェーディングされた色は、画素内のカバーされたサンプルそれぞれにおけるフレーム・バッファに記憶される。カバーされていないサンプルはその旧い値を残す。ラスタ化器はサンプル毎の重なりを検査し、カバレッジを判定する。幾何学的形態全てがレンダリングされた後、マルチサンプリングされたフレーム・バッファは、表示することが可能な画素毎に１つのサンプルを有する単一のサンプリングされた表面に解決される。画素内のサンプル毎の色は、最終的な画素色を与えるよう、互いに平均化される。テント・フィルタやミッチェル・フィルタなどの他のフィルタリング方法も使用することが可能であるが、単純平均が、リアル・タイム・グラフィックスについて最も一般的な方法である。
８．  シェーダ・コア３８は、ラスタ化器によって生成されるフラグメント毎に一度、プログラム・メモリからのプログラムを実行する。
【００５３】
ａ．  プログラムはユーザによって生成し得る。
９．  シェーダ・コア・プログラムはテクスチャ・サンプリングを要求する。テクスチャ・サンプリングは、テクスチャ・フィルタ・フットプリントの中心である、サンプリングする対象の座標を示す。
１０．  テクスチャ・サンプラ（ＴＳ）３３は、近傍フラグメントにより、テクスチャ・フィルタ・フットプリントの中心間の距離を求めることにより、フットプリント・サイズ（例えば、小判形）を判定する。前述の距離は場合によっては、シェーダ・コア・プログラムにおいて計算することが可能である。
１１．  ＴＳは、フェッチする対象のタップを計算する。
１２．  ＴＳは各タップの重みを計算する。
１３．  ＴＳは、タップ位置に基づいてタップ重みを修正する演算を適用する。
【００５４】
ａ．  フットプリント内にあり、テクスチャ内にあるタップのみに重みが与えられるように、タップの重みを上述のようなやり方で設定することが可能である。
１４．  ＴＳはタップ位置を修正する演算を適用する。タップがテクスチャ外にあるタップ位置を修正することが可能である。上述した、テクスチャ内へのタップの再配置を参照されたい。
１５．  ＴＳは、テクスチャ・メモリから各タップにおける色をロードする。
【００５５】
ａ．  タップの重みがゼロでない場合にのみ、色をロードする。
１６．  ＴＳは、その重みで各タップの色を乗算し、重み付けされた色を合計することにより、シェーダ・コア・プログラム用の単一のフィルタリングされたカラー値を生成する。
１７．  シェーダ・コア・プログラムは、特定のやり方で、フィルタリングされたカラー値を使用して、フラグメント・カラーを計算する。
１８．  カバーされたサンプルには、フラグメント・カラーが割り当てられる。
１９．  三角形全てがラスタ化されると、画素の色は、画素内のサンプル全ての色を平均化するよう設定される。
【００５６】
ａ．  幾何学的形態全てがレンダリングされた後、マルチサンプリングされたフレーム・バッファ３５は、画面上に表示することが可能な、単一のサンプリングされた表面（画素毎に１つのサンプル）に解決される。
【００５７】
他の用途：
仮想メモリ・システムのコンテキストでは、マッピングされていないメモリ・ペ―ジ内部のアドレスに変換されるタップは、前述のタップに対する重みをゼロに設定することによって排除し得る。場合によっては、これは、ページ障害に関連付けられる性能コストを避けることが可能である。
【００５８】
図８は、システム７００の実施例を示す。実施例では、システム７００は、メディア・システムであり得るが、システム７００はこのコンテキストには制限されない。例えば、システム７００は、パソコン（ＰＣ）、ラップトップ・コンピュータ、ウルトラ・ラップトップ・コンピュータ、タブレット、タッチ・パッド、ポータブル・コンピュータ、ハンドヘルド・コンピュータ、パームトップ・コンピュータ、携帯情報端末（ＰＤＡ）、セルラー電話機、セルラー電話機／ＰＤＡ複合機、テレビジョン、スマート・デバイス（例えば、スマート・フォン、スマート・タブレット、又はスマート・テレビジョン）、モバイル・インターネット（ＭＩＤ）、メッセージング装置、データ通信装置等に組み入れることができる。
【００５９】
実施例では、システム７００は、ディスプレイ７２０に結合されたプラットフォーム７０２を備える。プラットフォーム７０２は、コンテンツ・サービス装置７３０若しくはコンテンツ配信装置７４０又は他の同様なコンテンツ・ソースなどのコンテンツ装置からコンテンツを受信し得る。１つ又は複数のナビゲーション機能を有するナビゲーション・コントローラ７５０を用いて例えば、プラットフォーム７０２及び／又はディスプレイ７２０と相互作用し得る。前述の構成部分それぞれは以下に更に詳細に説明する。
【００６０】
実施例では、プラットフォーム７０２は、チップ・セット７０５、プロセッサ７１０、メモリ７１２、記憶装置７１４、グラフィクス・サブシステム７１５、アプリケーション７１６、及び／又は無線装置７１８の何れかの組合せを含み得る。チップ・セット７０５は、プロセッサ７１０、メモリ７１２、記憶装置７１４、グラフィクス・サブシステム７１５、アプリケーション７１６、及び／又は無線装置７１８の間の相互通信を提供し得る。例えば、チップ・セット７０５は、記憶装置７１４との相互通信を提供することができる記憶装置アダプター（図示せず）を含み得る。
【００６１】
プロセッサ７１０は、複合命令セット・コンピュータ（ＣＩＳＣ）又は縮小命令セット・コンピュータ（ＲＩＳＣ）、ｘ８６命令セット互換プロセッサ、マルチコア、又は何れかの他のマイクロプロセッサ若しくは中央処理装置（ＣＰＵ）として実現し得る。実施例では、プロセッサ７１０は、デュアルコア・プロセッサ、デュアルコア・モバイル・プロセッサ等を含み得る。プロセッサは、メモリ７１２とともに図７の手順を実現し得る。
【００６２】
メモリ７１２は、限定列挙でないが、ランダム・アクセス・メモリ（ＲＡＭ）、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、又はスタティックＲＡＭ（ＳＲＡＭ）などの揮発性メモリ装置として実現し得る。
【００６３】
記憶装置７１４は、限定列挙でないが、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブ、内部記憶装置、接続された記憶装置、フラッシュ・メモリ、バッテリをバックアップしたＳＤＲＡＭ（シンクロナスＤＲＡＭ）、及び／又は、ネットワーク・アクセス可能な記憶装置などの不揮発性記憶装置として実現し得る。実施例では、例えば、複数のハード・ドライブが含まれている場合に、記憶装置７１４は、価値のあるディジタル・メディアの、記憶性能を向上させた保護を増大させるための技術を含み得る。
【００６４】
グラフィックス・サブシステム７１５は、表示するために静止画像又は動画像などの画像の処理を行い得る。グラフィックス・サブシステム７１５は例えば、グラフィックス処理装置（ＧＰＵ）又は視覚処理装置（ＶＰＵ）であり得る。アナログ又はディジタル・インタフェースは、通信するようグラフィックス・サブシステム７１５及びディスプレイ７２０を結合するために使用し得る。例えば、インタフェースは、高品位マルチメディア・インタフェース、ディスプレイ・ポート、無線ＨＤＭＩ（登録商標）、及び／又は無線ＨＤ互換手法のうちの何れかであり得る。グラフィックス・サブシステム７１５は、プロセッサ７１０又はチップ・セット７０５に一体化することが可能である。グラフィックス・サブシステム７１５は、通信するようチップ・セット７０５に結合されたスタンドアロン・カードであり得る。
【００６５】
本明細書及び特許請求の範囲記載のグラフィックス及び／又はビデオ処理手法は、種々のハードウェア・アーキテクチャにおいて実現し得る。例えば、グラフィックス及び／又はビデオ機能は、チップ・セット内に一体化し得る。あるいは、個別グラフィックス及び／又はビデオ・プロセッサを使用し得る。更に別の実施例として、グラフィックス及び／又はビデオ機能は、マルチコア・プロセッサを含む汎用プロセッサによって実現し得る。更なる実施例では、機能は消費者向電子装置において実現し得る。
【００６６】
無線装置７１８は、種々の適切な無線通信手法を使用して信号を送信し、受信することができる１つ又は複数の無線装置を含み得る。前述の手法には、１つ又は複数の無線ネットワークにわたる通信が関係し得る。例示的な無線ネットワークは、（限定列挙でないが）無線ローカル・エリア・ネットワーク（ＷＬＡＮ）、無線パーソナル・エリア・ネットワーク（ＷＰＡＮ）、無線メトロポリタン・エリア・ネットワーク（ＷＭＡＮ）、セルラー・ネットワーク、及び衛星ネットワークを含む。前述のネットワークにわたって通信するうえで、無線装置７１８は、何れかのバージョンにおける１つ又は複数の適用可能な標準に応じて動作し得る。
【００６７】
実施例では、ディスプレイ７２０は、何れかのテレビジョン型モニタ又はディスプレイを含み得る。ディスプレイ７２０は、例えば、コンピュータ・ディスプレイ画面、タッチ画面ディスプレイ、ビデオ・モニタ、テレビジョンに似た装置、及び／又はテレビジョンを含み得る。ディスプレイ７２０はディジタル及び／又はアナログであり得る。実施例では、ディスプレイ７２０は、ホログラフィック・ディスプレイであり得る。更に、ディスプレイ７２０は、視覚投影を受け取り得る透明な表面であり得る。前述の投影は、種々の形態の情報、画像、及び／又はオブジェクトを伝え得る。例えば、前述の投影は、モバイル拡張現実（ＭＡＲ）アプリケーションの視覚重ね合わせであり得る。１つ又は複数のソフトウェア・アプリケーション７１６の制御下で、プラットフォーム７０２は、ディスプレイ７２０上にユーザ・インタフェース７２２を表示し得る。
【００６８】
実施例では、コンテンツ・サービス装置７３０は、何れかの国内、国際、及び／又は独立サービスによってホスティングされ、よって、例えばインターネットを介してプラットフォーム７０２にアクセス可能であり得る。コンテンツ・サービス装置７３０は、プラットフォーム７０２及び／又はディスプレイ７２０に結合し得る。プラットフォーム７０２及び／又はコンテンツ・サービス装置７３０は、ネットワーク７６０との間でメディア情報を通信（例えば、送信及び／又は受信）するようネットワーク７６０に結合し得る。コンテンツ配信装置７４０も、プラットフォーム７０２及び／又はディスプレイ７２０に結合し得る。
【００６９】
実施例では、コンテンツ・サービス装置７３０は、ディジタル情報及び／又はコンテンツを配信することができるケーブル・テレビジョン・ボックス、パソコン、ネットワーク、電話機、インターネット対応装置又はディジタル情報及び／若しくはコンテンツを配信することができる機器、及び、ネットワーク７６０を介して、又は直接、コンテンツ・プロバイダと、プラットフォーム７０２及び／又はディスプレイ７２０との間でコンテンツを一方向に、又は双方向に通信することができる何れかの他の同様な装置を含み得る。
【００７０】
コンテンツは、ネットワーク７６０を介してコンテンツ・プロバイダと、システム７００における構成部分の何れか１つとの間で一方向に、及び／又は双方向に通信し得る。コンテンツの例には、例えば、ビデオ、音楽、医療、及びゲーム等を含む何れかのメディア情報を含み得る。
【００７１】
コンテンツ・サービス装置７３０は、メディア情報、ディジタル情報、及び／又は他のコンテンツを含むケーブル・テレビジョン・プログラミングなどのコンテンツを受信する。コンテンツ・プロバイダの例は、何れかのケーブル、あるいは衛星テレビジョン、あるいは無線又はインターネット・コンテンツ・プロバイダを含み得る。前述の例は、含まれる実施例の範囲を限定することを意味するものでない。
【００７２】
実施例では、プラットフォーム７０２は、１つ又は複数のナビゲーション機能を有するナビゲーション・コントローラ７５０から制御信号を受け取り得る。コントローラ７５０のナビゲーション機能は、例えば、ユーザ・インタフェース７２２と相互作用するために使用し得る。実施例では、ナビゲーション・コントローラ７５０は、ユーザが空間（例えば、連続及び多次元）データをコンピュータに入力することを可能にするコンピュータ・ハードウェア構成部分（特に。ヒューマン・インタフェース装置）であり得るポインティング装置であり得る。グラフィカル・ユーザ・インタフェース（ＧＵＩ）、及びテレビジョン並びに、モニタなどの多くのシステムは、ユーザがデータを制御し、物理的なジェスチャ、顔の表情、又は音を使用してコンピュータ又はテレビジョンに供給することを可能にする。
【００７３】
コントローラ７５０のナビゲーション機能の移動は、ディスプレイ上に表示されたポインタ、カーソル、フォーカス・リング、又は他の視覚インジケータの移動により、ディスプレイ（例えば、ディスプレイ７２０）上にエコーを発生させ得る。例えば、ソフトウェア・アプリケーション７１６の制御下で、ナビゲーション・コントローラ７５０上に配置されたナビゲーション機能は、例えば、ユーザ・インタフェース７２２上に表示された仮想ナビゲーション機能にマッピングさせ得る。実施例では、コントローラ７５０は、別個の構成部分でないことがあり得るが、プラットフォーム７０２及び／又はディスプレイ７２０に一体化させ得る。しかし、実施例は、本明細書及び特許請求の範囲において記載されたか、示されたコンテキスト又は構成要素に限定されるものでない。
【００７４】
実施例では、ドライバ（図示せず）は、例えば、イネーブルされると、当初のブートアップ後のボタンのタッチで、テレビジョンのようなプラットフォーム７０２をユーザが瞬時にオン／オフすることを可能にするための技術を含み得る。プログラム・ロジックは、プラットフォームが「オフ」にされると、メディア・アダプタ又は他のコンテンツ・サービス装置７３０若しくはコンテンツ配信装置７４０にプラットフォーム７０２がコンテンツをストリーミングすることを可能にし得る。更に、チップ・セット７０５は、例えば、５．１サラウンド・サウンド・オーディオ及び／又は高品位７．１サラウンド・サウンド・オーディオのハードウェア及び／又はソフトウェア・サポートを含み得る。ドライバは、統合グラフィックス・プラットフォーム用のグラフィックス・ドライバを含み得る。実施例では、グラフィックス・ドライバは、周辺装置相互接続（ＰＣＩ）エクスプレス・グラフィックス・カードを含み得る。
【００７５】
種々の実施例では、システム７００に示す構成部分の何れか１つ又は複数を一体化し得る。
【００７６】
例えば、プラットフォーム７０２及びコンテンツ・サービス装置７３０を一体化し得るか、又は、プラットフォーム７０２及びコンテンツ配信装置７４０を一体化し得るか、又は、例えば、プラットフォーム７０２、コンテンツ・サービス装置７３０、及びコンテンツ配信装置７４０を一体化し得る。種々の実施例では、プラットフォーム７０２及びディスプレイ７２０は、一体化された装置であり得る。例えば、ディスプレイ７２０及びコンテンツ７３０を一体化し得るか、又はディスプレイ７２０及びコンテンツ配信装置７４０を一体化し得る。前述の例は本発明を限定することを意味するものでない。
【００７７】
種々の実施例では、システム７００は、無線システム、有線システム、又はそれらの組み合わせとして実現し得る。有線システムとして実現されると、システム７００は、１つ又は複数のアンテナ、送信器、受信器、トランシーバ、増幅器、フィルタ、制御ロジック等などの、無線共有媒体を介した通信に適した構成部分及びインタフェースを含み得る。無線共有媒体の例には、ＲＦスペクトル等などの、無線スペクトルの部分を含み得る。無線システムとして実現されると、システム７００は、入出力（Ｉ／Ｏ）アダプタなどの、有線通信媒体を介して通信するのに適した構成部分及びインタフェース、対応する有線通信媒体とＩ／Ｏアダプタを接続するための物理コネクタ、ネットワーク・インタフェース・カード（ＮＩＣ）、ディスク・コントローラ、ビデオ・コントローラ、オーディオ・コントローラ等を含み得る。有線通信媒体の例には、配線、ケーブル、金属リード、プリント回路基板（ＰＣＢ）、バックプレーン、スイッチ・ファブリック、半導体材料、ツイストペア配線、同軸ケーブル、光ファイバ等を含み得る。
【００７８】
プラットフォーム７０２は、情報を通信するために１つ又は複数の論理チャネル若しくは物理チャネルを確立し得る。情報は、媒体情報及び制御情報を含み得る。媒体情報は、ユーザのためのコンテンツを表す何れかのデータを表し得る。コンテンツの例には、例えば、音声の会話からのデータ、ビデオ会議、ストリーミング・ビデオ、電子メール（「ｅｍａｉｌ」）メッセージ、ボイスメール・メッセージ、英数字シンボル、グラフィックス、画像、ビデオ、テキスト等を含み得る。音声の会話からのデータは、例えば、音声情報、無音期間、背景雑音、快適雑音、トーン等であり得る。制御情報は、自動化システムのための制御語、命令、又はコマンドを表す何れかのデータを表し得る。例えば、制御情報は、システムを介してメディア情報をルーティングし、又は、所定のやり方でメディア情報を処理する旨をノードに指示するために使用し得る。しかし、実施例は、図８に記載したか、又は示したコンテキストで、又は構成要素に限定されるものでない。
【００７９】
上述の通り、システム７００は、種々の物理スタイル又はフォーム・ファクタにおいて実施し得る。図９は、システム７００を実施し得る小型のフォーム・ファクタ装置８００の実施例を示す。実施例では、例えば、装置８００は、無線機能を有するモバイル計算装置として実現し得る。モバイル計算装置は、例えば、１つ又は複数のバッテリなどのモバイル電源、及び処理システムを有する何れかの装置を表し得る。
【００８０】
上述の通り、モバイル計算装置には、パソコン（ＰＣ）、ラップトップ・コンピュータ、ウルトラ・ラップトップ・コンピュータ、タブレット、タッチ・パッド、ポータブル・コンピュータ、ハンドヘルド・コンピュータ、パームトップ・コンピュータ、携帯情報端末（ＰＤＡ）、セルラー電話機、セルラー電話機／ＰＤＡ複合機、テレビジョン、スマート・デバイス（例えば、スマート・フォン、スマート・タブレット、又はスマート・テレビジョン）、モバイル・インターネット（ＭＩＤ）、メッセージング装置、データ通信装置等が含まれ得る。
【００８１】
モバイル計算装置の例には、リスト・コンピュータ、フィンガ・コンピュータ、リング・コンピュータ、メガネ型コンピュータ、ベルトクリップ・コンピュータ、アームバンド・コンピュータ、シューズ・コンピュータ、衣類コンピュータ、及び他のウェアラブル・コンピュータなどの、個人が装着するよう構成されたコンピュータが含まれ得る。例えば、実施例では、モバイル計算装置は、音声通信及び／又はデータ通信、並びにコンピュータ・アプリケーションを実行することができるスマート・フォンとして実現し得る。一部の実施例は、例としてスマート・フォンとして実現されたモバイル計算装置で説明し得るが、他の無線モバイル計算装置も使用して他の実施例を実現し得る。実施例は前述のコンテキストに限定されるものでない。
【００８２】
プロセッサ７１０は、一部の実施例では、カメラ７２２、及び全地球測位システム・センサ７２０と通信し得る。プロセッサ７１０に結合されたメモリ７１２は、ソフトウェア及び／又はファームウェアの実施例における、図７に示す手順を実現するためのコンピュータ読み取り可能な命令を記憶し得る。
【００８３】
図９に示すように、装置８００は、ハウジング８０２、ディスプレイ８０４、入出力（Ｉ／Ｏ）装置８０６、及びアンテナ８０８を含み得る。装置８００は更に、ナビゲーション機能８１２を含み得る。ディスプレイ８０４は、モバイル計算装置に適した情報を表示する何れかの適切なディスプレイ装置を含み得る。Ｉ／Ｏ装置８０６は、情報をモバイル計算装置に入力する何れかの適切なＩ／Ｏ装置を含み得る。Ｉ／Ｏ装置８０６の例には、英数字キーボード、数字キーパッド、タッチ・パッド、入力キー、ボタン、スイッチ、ロッカー・スイッチ、マイクロフォン、スピーカ、音声認識装置、ソフトウェア等を含み得る。情報は更に、マイクロフォンにより、装置８００に入力し得る。前述の情報は、音声認識装置によってディジタル化し得る。実施例は前述のコンテキストに限定されるものでない。
【００８４】
種々の実施例は、ハードウェア構成要素、ソフトウェア構成要素、又は両方の組み合わせを使用して実現し得る。ハードウェア構成要素の例には、プロセッサ、マイクロプロセッサ、回路、回路エレメント（例えば、トランジスタ、抵抗器、コンデンサ、インダクタ等）、集積回路、特殊用途向集積回路（ＡＳＩＣ）、プログラマブル・ロジック装置（ＰＬＤ）、ディジタル信号プロセッサ（ＤＳＰ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、ロジック・ゲート、レジスタ、半導体素子、チップ、マイクロチップ、チップ・セット等が含まれ得る。  ソフトウェアの例には、ソフトウェア構成部分、プログラム、アプリケーション、コンピュータ・プログラム、アプリケーション・プログラム、システム・プログラム、マシン・プログラム、オペレーティング・システム・ソフトウェア、ミドルウェア、ファームウェア、ソフトウェア・モジュール、ルーチン、サブルーチン、ファンクション、方法、手続、ソフトウェア・インタフェース、アプリケーション・プログラム・インタフェース（ＡＰＩ）、命令セット、計算コード、コンピュータ・コード、コード・セグメント、コンピュータ・コード・セグメント、ワード、値、シンボル、又はそれらの何れかの組み合わせを含み得る。実施例が、ハードウェア・エレメント及び／又はソフトウェア・エレメントを使用して実現されるか否かは、所望の計算速度、電力レベル、許容熱量、処理サイクル・バジェット、入力データ・レート、出力データ・レート、メモリ・リソース、データ・バス速度、及び他の設計上又は性能上の制約などの何れかの数の要因に応じて変わり得る。
【００８５】
以下の項及び／又は例は、更なる実施例に関係する。
【００８６】
１つの例示的な実施例は、コンピュータによって実行された場合に、コンピュータに、テクスチャ領域外に及ぶ何れかのテクスチャ・フィルタ・タップをフィルタリングから除外させる命令を記憶させた少なくとも１つのコンピュータ読み取り可能な媒体であり得る。コンピュータ読み取り可能な媒体は、コンピュータによって実行されると、コンピュータに、テクスチャ・サンプリングを行う旨の要求にアクセスさせ、サンプリングのフットプリント位置及びサイズを判定させ、フットプリントに関連付けられたフィルタ・タップ毎に１つ又は複数のフィルタ・タップ位置及び重みを求めさせ、テクスチャ画像外に配置された何れかのタップの重みを選択的に修正させ、テクスチャ画像外に配置された何れかのタップの位置を選択的に修正させ、テクスチャ画像内にあり、かつ、非ゼロの重みを有するフィルタ・タップ位置毎に、テクスチャ画像外に配置された何れかのタップの位置を選択的に修正させ、テクスチャ画像内のカラー値を要求させ、その重みでタップの色それぞれを乗算し、重み付けられた色を加算して、フィルタリングされた色を生成し、最終のフィルタリングされた色を供給する命令を更に記憶し、最終の色は、フィルタリングされた色に基づき得る。コンピュータ読み取り可能な媒体は更に、コンピュータによって実行されると、コンピュータに、フィルタリングされた色を合計の重みで除算させ、合計の重みを供給させる命令を記憶し得、最終のフィルタリングされた色は、合計の重みで除算された、フィルタリングされた色を含む。コンピュータ読み取り可能な媒体は更に、コンピュータによって実行された場合に、コンピュータに、フィルタリングされた色を合計の重みで除算させる命令を記憶し、最終のフィルタリングされた色は、合計の重みで除算された、フィルタリングされた色を含み得る。コンピュータ読み取り可能な媒体は更に、最終のフィルタリングされた色が、フィルタリングされた色を含む命令を記憶し得、更に、コンピュータによって実行されると、コンピュータに、合計の重みを供給させる命令を記憶し得る。コンピュータ読み取り可能な媒体は更に、要求が、サンプリングする対象のテクスチャ画像、使用する対象のサンプラ状態、及びテクスチャをサンプリングする対象の（ｕ，ｖ）テクスチャ座標を含む命令を記憶し得る。コンピュータ読み取り可能な媒体は、タップにおけるカラー値の加重和がフットプリント全体にわたる積分値を近似するように各タップが（ｕ，ｖ）位置、及び重みを表す命令を更に記憶し得る。コンピュータ読み取り可能な媒体は、テクスチャ画像外にある何れかのタップの重みを選択的に修正するために、コンピュータが重みをゼロに設定する命令を更に記憶し得る。コンピュータ読み取り可能な媒体は更に、テクスチャ画像外にある何れかのタップの位置を選択的に修正するために、コンピュータは、直線距離でテクスチャ画像の外部にある何れかのタップへの、テクスチャにおける最も近い点を選択する命令を記憶し得る。コンピュータ読み取り可能な媒体は更に、コンピュータによって実行されると、コンピュータに、第２のテクスチャ画像外にある何れかのタップの重みを選択的に修正させ、第２のテクスチャ画像内にあり、非ゼロの重みを有するフィルタ・タップ位置毎に、第２のテクスチャ画像外にある何れかのタップの位置を選択的に修正させ、第２のテクスチャ画像におけるカラー値を要求させ、第２のテクスチャ画像内のタップ色それぞれをその重みで乗算させ、第２のテクスチャ画像に使用された重み付けされた色を合計させて、第２のフィルタリングされた色を供給させ、第２の最終のフィルタリングされた色を供給させ、第２の最終のフィルタリングされた色が第２のフィルタリングされた色に基づく命令を記憶し得る。コンピュータ読み取り可能な媒体は、コンピュータによって実行されると、最終のフィルタリングされた色及び第２の最終のフィルタリングされた色のブレンドに少なくとも部分的に基づいてフラグメント色をコンピュータに生成させる命令を更に記憶し得る。コンピュータ読み取り可能な媒体は更に、コンピュータによって実行されると、コンピュータに、フラグメント・カラーをバッファに記憶させ、少なくとも部分的にフラグメント・カラーに基づいて画素色を生成させ、画素色を表示させる命令を記憶し得る。コンピュータ読み取り可能な媒体は、コンピュータによって実行されると、コンピュータに、合計の重みがゼロに等しいことに応じて、所定の値又はフットプリント中央に最も近いテクスチャにおける色にフィルタリングされた色を設定させ得る。
【００８７】
別の例示的な実施例では、方法は、テクスチャ領域外に及ぶ何れかのテクスチャ・フィルタ・タップを、グラフィックス・プロセッサにおけるフィルタリングから除外する工程を含む。方法は更に、テクスチャ・サンプリングを行う旨の要求にアクセスする工程と、サンプリングのフットプリント位置及びサイズを求める工程と、フットプリントに関連付けられたフィルタ・タップ毎に１つ又は複数のフィルタ・タップ位置及び重みを求める工程と、テクスチャ画像外に配置された何れかのタップの重みを選択的に修正する工程と、テクスチャ画像外に配置された何れかのタップの位置を選択的に修正する工程と、テクスチャ画像内にあり、かつ、非ゼロの重みを有するフィルタ・タップ位置毎に、テクスチャ画像内の色値を要求する工程と、その重みでタップの色それぞれを乗算する工程と、重み付けられた色を加算して、フィルタリングされた色を生成する工程と、最終のフィルタリングされた色を供給する工程とを含み、最終の色は、フィルタリングされた色に基づき得る。方法は更に、フィルタリングされた色を合計の重みで除算する工程を更に含み、最終のフィルタリングされた色は、フィルタリングされた色を合計の重みで除算し、合計の重みを供給する工程を更に含み得る。方法は更に、フィルタリングされた色を合計の重みで除算する工程を更に含み、最終のフィルタリングされた色は、合計の重みで除算された、フィルタリングされた色を含み得る。方法は更に、最終のフィルタリングされた色がフィルタリングされた色を備え、合計の重みを供給する工程を含み得る。
【００８８】
別の例示的な実施例は、テクスチャ領域外に及ぶ何れかのテクスチャ・フィルタをフィルタリングから除外するためのプロセッサとプロセッサに結合された記憶装置とを備える装置であり得る。装置は、テクスチャ・サンプリングを行う旨の要求にアクセスし、サンプリングのフットプリント位置及びサイズを求め、フットプリントに関連付けられたフィルタ・タップ毎に１つ又は複数のフィルタ・タップ位置及び重みを求め、テクスチャ画像外に配置された何れかのタップの重みを選択的に修正し、テクスチャ画像外に配置された何れかのタップの位置を選択的に修正し、テクスチャ画像内にあり、かつ、非ゼロの重みを有するフィルタ・タップ位置毎に、テクスチャ画像外に配置された何れかのタップの位置を選択的に修正し、テクスチャ画像内にあり、かつ、非ゼロの重みを有するフィルタ・タップ位置毎に、テクスチャ画像内の色値を要求し、その重みでタップの色それぞれを乗算し、重み付けられた色を加算して、フィルタリングされた色を生成し、最終のフィルタリングされた色を供給するためのプロセッサを含み、最終の色は、フィルタリングされた色に基づき得る。装置は、フィルタリングされた色を合計の重みで除算し、最終のフィルタリングされた色は、フィルタリングされた色を合計の重みで除算し、合計の重みを供給するためのプロセッサを含み得る。装置は、フィルタリングされた色を合計の重みで除算するためのプロセッサを含み、最終のフィルタリングされた色は、合計の重みで除算された、フィルタリングされた色を含み得る。装置は、最終のフィルタリングされた色がフィルタリングされた色を備え、合計の重みを供給するためのプロセッサを備え得る。装置は、要求が、サンプリングする対象のテクスチャ画像、使用する対象のサンプラ状態、及びテクスチャをサンプリングする対象の（ｕ．ｖ）テクスチャ座標を含み得る。装置は、タップにおけるカラー値の加重和がフットプリント全体にわたる積分値を近似するように各タップが（ｕ，ｖ）位置、及び重みを表し得る。装置は、テクスチャ画像外にある何れかのタップの重みを選択的に修正するために重みをゼロに設定するためのプロセッサを備え得る。装置は、テクスチャ画像外にある何れかのタップの位置を選択的に修正するために、直線距離でテクスチャ画像外にある何れかのタップへの、テクスチャにおける最も近い点を選択するためのプロセッサを備え得る。装置は、オペレーティング・システムと、バッテリ及びファームウェアと、ファームウェアを更新するためのモジュールとを含み得る。
【００８９】
本明細書及び特許請求の範囲記載のグラフィックス処理手法は、種々のハードウェア・アーキテクチャにおいて実現し得る。例えば、グラフィックス機能は、チップ・セット内に一体化し得る。あるいは、個別グラフィックス・プロセッサを使用し得る。更に別の実施例として、グラフィックス機能は、マルチコア・プロセッサを含む汎用プロセッサによって実現し得る。
【００９０】
「一実施例」又は「実施例」に対する本明細書を通した言及は、上記例に関して説明した特定の特徴、構造、又は特性が本明細書及び特許請求の範囲に包含される少なくとも１つの実施例に含まれているということを意味している。よって、「一実施例」又は「実施例において」の句の記載は、必ずしも、同じ実施例を表している訳でない。更に、特定の構成、構造、又は特性は、特定の実施例以外の他の適切な形態において導入し得、前述の形態は全て、本出願の特許請求の範囲内に包含され得る。
【００９１】
限定数の実施例を説明してきたが、それらからの数多くの修正及び変形が当業者に分かるであろう。特許請求の範囲記載の請求項が、本明細書及び特許請求の範囲の真の趣旨及び範囲内に収まるような前述の修正及び変形全てを包含することが意図される。
【符号の説明】
【００９２】
７１０  プロセッサ
【図１】
2014182831.tif 000005
【図２】
2014182831.tif 000006
【図３】
2014182831.tif 000007
【図４】
2014182831.tif 000008
【図５】
2014182831.tif 000009
【図６】
2014182831.tif 000010
【図７】
2014182831.tif 000011
【図８】
2014182831.tif 000012
【図９】
2014182831.tif 000013