アンチエイリアシングされたレンダリングのための方法であって、オーバーサンプリングされたフォーマットを有する1ビットパーピクセルのカバレージデータを受け取るステップであって、前記受け取られたカバレージデータは1ビットパーバイトの記憶よりも大きい記憶フォーマットを有する、ステップと、前記オーバーサンプリングされたフォーマットを有するピクセルに対応するnビットの明度を形成するようにカバレージデータのビットを組み立てるステップと、前記nビットの明度を用いてピクセル値テーブルをインデックス付けするステップと、前記インデックス付けされた位置に対応する少なくとも1つのピクセル値を取得するステップと、前記取得された少なくとも1つのピクセル値に基づいてピクセルをレンダリングするステップと、を含む、方法。nビットの明度を形成するようにカバレージデータのビットを組み立てる前記ステップは、記憶されたピクセルカバレージデータのバイトを浮動小数点データ型としてサンプリングするステップであって、前記バイトはレンダリングされるピクセルのカバレージデータに対応する1又は複数のビットを含む、ステップと、前記記憶されたデータに含まれる前記1又は複数のビットを分離するように、前記サンプリングされた浮動小数点のバイトを変形するステップと、前記1又は複数の分離されたビットに対応しないビットを除去するように、前記変形されたバイトを切り捨てるステップと、前記オーバーサンプリングされたフォーマットを有するピクセルに対応するnビットの明度を形成するように、前記分離されたビットを分離されたビットの少なくとも1つの他の一部分と共に組み立てるステップと、を含む、請求項1に記載の方法。前記カバレージデータに対する前記オーバーサンプリングされたフォーマットは6×1フォーマットであり、前記nビットの明度は10ビットの明度に対応する、前記請求項の何れかに記載の方法。結合されたピクセル値を形成するように前記少なくとも1つのピクセル値を少なくとも第2のピクセル値と結合するステップであって、前記レンダリングされるピクセルは前記結合されたピクセル値に基づく、ステップを更に含む、前記請求項の何れかに記載の方法。複数のnビットの明度を形成するようにビットを組み立てる前記ステップは、複数のバイトからビットを組み立てるステップを含む、前記請求項の何れかに記載の方法。アンチエイリアシングされたレンダリングのための方法であって、オーバーサンプリングされたフォーマットを有する1ビットパーピクセルのカバレージデータを受け取るステップであって、前記受け取られたカバレージデータは1ビットパーバイトの記憶よりも大きい記憶フォーマットを有する、ステップと、複数のnビットの明度を形成するようにカバレージデータのビットを組み立てるステップであって、各nビットの明度は、前記オーバーサンプリングされたフォーマットを有するピクセルに対応し、複数のバイトからのビットを含む、ステップと、前記複数のnビットの明度を用いてピクセル値テーブルを複数回インデックス付けするステップと、それぞれのインデックス付けされた位置に対応する複数のピクセル値を取得するステップと、複数の結合されたピクセル値を形成するように、複数のインデックス付けされた位置に対応する取得されたピクセル値を結合するステップと、前記複数の結合されたピクセル値に基づいてピクセルをレンダリングするステップと、を含む、方法。複数のピクセル値を取得する前記ステップは、ピクセル値の3つのチャンネルを取得するステップを含む、請求項6に記載の方法。前記取得されたピクセル値を結合する前記ステップは、3つの結合されたチャンネルのピクセル値を形成するように前記ピクセル値の3つのチャンネルを結合するステップを含む、請求項7に記載の方法。補正係数を取得するために、結合されたチャンネル値を用いて補正係数テーブルをインデックス付けするステップと、前記補正係数を前記結合されたチャンネル値に適用するステップと、を更に含む、請求項8に記載の方法。前記カバレージデータに対する前記オーバーサンプリングされたフォーマットは6×5フォーマットであり、各nビットの明度は10ビットの明度に対応する、請求項6-9の何れかに記載の方法。前記受け取られたカバレージデータは少なくとも8ビットパーバイトの記憶フォーマットを有する、前記請求項の何れかに記載の方法。前記1ビットパーピクセルのカバレージデータはテキストグリフに対するカバレージデータを表す、前記請求項の何れかに記載の方法。ピクセル補正係数を修正する変更を検出するステップと、前記修正されたピクセル補正係数を組み込むピクセル値のテーブルを構築するステップと、を更に含み、前記nビットの明度を用いてピクセル値テーブルをインデックス付けする前記ステップは、前記構築されたテーブルをインデックス付けするステップを含む、前記請求項の何れかに記載の方法。前記構築されたテーブルはテーブルの地図帳に記憶される、請求項13に記載の方法。0017グリフのビットマップが決定された後に、当該グリフビットマップに基づくテキストのレンダリングが、いくつかのタスクの完了を必要とすることが可能である。その1つには、中央処理装置CPUからグラフィック処理装置GPUへレンダリングのためのカバレージデータを転送することが含まれ得る。別のタスクは、当該転送されたデータを認識可能なフォーマットに解凍することであり得る。第3のタスクは、当該カバレージデータをピクセル情報に変換することであり得る。加えて、テキストの最終的な表示を向上させるために、様々な補正がピクセルに適用されることが可能である。効率的な方法によるテキストのレンダリングは、カバレージデータに基づいてピクセルを表示するためのメモリ要件とプロセス要件とをバランスさせることを伴うことが可能である。<データの転送及び解凍>0018CPUからGPUへのカバレージデータの転送は、テキストレンダリングの最中における1つの可能性のあるボトルネックである。従来、カバレージデータは、データの各ビットを保持する別々のバイトを使用して1ビットパーピクセル1bppのデータを転送するといったような、単純なフォーマットで転送されてきた。1bppデータの各ビットを保持するバイトの使用は、各ビットが個別にアドレス指定可能な位置に配置されているため、GPUへ転送されたデータの解凍を単純化する。しかしながら、このタイプのデータ転送は、各バイトにおけるデータ空間の大部分が使用されていないため、メモリの立場からは非効率であり得る。この非効率さは、ピクセルデータを表すのに用いられる何らかのオーバーサンプリングによって、悪化し得る。例えば、ClearTypeデータ等のテキストデータに対する1つのよくあるタイプのオーバーサンプリングは、各ピクセルに対して6×1のカバレージデータフォーマットを用いることである。6×1フォーマットでは、ピクセルに対してデータの3つのチャンネルを表すのに全部で10ビットが必要とされる。このチャンネルは、典型的には、ピクセルの赤、緑、及び青のコンポーネントに対応する。このように、各ビットに対して別々のバイトを有する1bppフォーマットでデータを転送する場合、当該ピクセルの赤、緑、及び青のコンポーネントを転送するのに10バイトが必要とされる。このタイプのデータ転送では、上記の10ビットは他のデータを一切含んでいない別個のバイトから取得されることが可能であるため、ピクセルを指定するのに必要なビットは、容易に組み立てられる。0019様々な実施態様において、カバレージデータを転送及び/又は解凍するための改良方法が提供される。各ビットを別々のバイトに有する1bppデータを転送することに代えて、8ビットパーピクセル等のより高密度なデータフォーマットを用いて、データがGPUへ渡されることが可能である。このことは、それぞれのバイトで転送されるデータ量を増加させ、GPU上の全体的なメモリ使用率を削減することが可能である。0020より高密度なデータフォーマットでのデータの転送は、当該データを解凍する追加のプロセスを必要とすることが可能である。より高密度なフォーマットのせいで、各ピクセルの情報は、個々のバイトの境界に合わせてきちんと整列しないかもしれない。例えば、6×1のカバレージデータには、ピクセル当たり10ビットの情報が含まれるが、それに対し、8bppデータフォーマットには、バイト当たり8ビットしか含まれない。加えて、ClearTypeのテキストに対応するグリフの場合には、ClearTypeフィルターに対するピクセル情報の重複のため、それぞれのピクセルは隣接するピクセルと4ビットずつ重なり合う。結果として、8bppの圧縮方式を用いて転送された1bppのClearTypeテキストの例に関しては、転送されたデータの各バイトに2以上のピクセルの情報が含まれることが可能であり、1つのピクセルに対する表示明度の決定は、2以上のバイトからのデータを必要とすることが可能である。この状況は図7に示されており、図7は、6×1のカバレージデータがどのようにして8bppフォーマットに格納されるかの例を示す。0021カバレージデータを解凍するための方法は、利用可能なディスプレイハードウェアのタイプに依存することが可能である。DirectX10フォーマットDx10を用いたハードウェアディスプレイの場合、ビットシフト命令が利用可能である。これは、1つのピクセルに対応する10ビットを収容しているデータの2バイトにアクセスすることによって、必要とされる任意のピクセル情報が取得されることが可能であるということを意味する。ビットシフト命令は、次いで、現在関心のあるピクセルに対応するそれぞれのバイトの中でビットを選択するのに用いられることが可能である。当該ビットは、次いで、そのピクセルのカバレージデータに対応する10ビットの数を形成するように組み立てられることが可能である。カバレージ情報の圧縮に関連した1ピクセル内のビット数の関係に基づいて、類似の処理が他のデータフォーマットに対して利用されることが可能である。0022ビットシフト機能を含まないハードウェアに対して、追加の演算が必要とされることができる。例えば、DirectX9Dx9は、ビットシフト演算をサポートしていない。その代わりに、Dx9のピクセルシェーダーによってサンプリングされた情報は、0と1の間の浮動小数点の値として返される。この状況においてピクセルデータを抽出するために、各バイトに格納されている数値は255を乗じられ、次いで整数に丸められることが可能である。その次の演算は、所望のピクセルに対し関連のあるビットを収容している元のバイトの一部分に依存する。右ビットシフトが望まれる場合、当該整数は、2の負の累乗を乗じられることが可能である。次いで、乗算後に小数点の右側に存在する全ての不必要なビットを除去するために、floor演算が用いられることが可能である。左ビットシフトが望まれる場合、当該整数は、2の正の累乗を乗じられることが可能であり、小数点の左側に位置する不必要なビットを除去するために、frac演算が用いられることが可能である。次いで、残ったビットを元の位置へ戻すために、2の負の累乗の乗算が用いられることが可能である。<ビットの組み立て及びデータルックアップ>0023上記に基づいて、より高密度なデータフォーマットが、1bppフォーマットのデータをGPUへ転送するのに利用されることが可能である。1つのピクセルに対応するビットを特定した後、当該ビットは、単独の数を形成するように組み立てられることが可能である。例えば、6×1フォーマットでは、当該ビットは、10ビットの数を形成するように組み立てられることが可能である。6×5フォーマットは、10桁の数を5つ形成するように組み立てられることが可能である。より一般的に、ピクセルに対応するビットの数が組み立てられることが可能である。単純な算術的加法演算が、ビットを組み立てるのには十分であり得る、ということに注意されたい。何故なら、上述されたビットシフト即ち2の累乗の乗法演算が用いられて、元の8ビットの2つのバイトからのビット間に重なりが生じないようにされることが可能であるからである。0024組み立てられたビットは、次いで、ピクセル値を決定するのに用いられることが可能である。6×1のオーバーサンプリングされたデータを用いる例において、解凍された各ピクセルに対する独立した赤、緑、及び青の明度が、従来の方法で計算されることが可能である。しかしながら、比較的少数の可能な組み合わせ10ビットの数の場合、1024しか存在しないため、出願人は、前もって任意のあり得るピクセルに対する当該明度を計算することが、より効率的であり得ると考えた。それ故、1つのピクセルに対する10ビットの明度が、正確な明度をテーブルからルックアップするためのインデックスとして用いられることが可能である。このことは、同一の計算を何回も繰り返すことを回避し、それにより、GPUにおけるプロセスの負荷を削減する。00256×1データのようなデータフォーマットの場合、ピクセル当たりの全ビット数10は、処理しやすい組み合わせの数1024をもたらす。しかしながら、いくつかのオーバーサンプリングフォーマットは、より大きなピクセル当たりのデータ量をもたらし、そうしたデータ量は、ピクセル値の決定を困難にし得る。例えば、別の利用可能なオーバーサンプリングフォーマットは6×5データであり、それは、事実上、5列の6×1データを導入する。汎用コンピューティングデバイスの現在の計算能力に基づけば、50ビットのインデックスを用いてルックアップテーブルを直接構成するのに必要とされる250の組み合わせを予め計算するのは現実的ではない。6×5フォーマットのデータの場合、これは、データを5行の10ビットデータとして取り扱うことによって処理されることが可能である。上述されたような10ビットのカバレージデータの行に対して、補正されていないピクセル値のためのルックアップテーブルが計算されることが可能である。次いで、5行のカバレージデータが、当該データを単独のピクセル値に結合するように垂直方向にフィルタリングされることが可能である。オプションとして、この後者の演算は、従来のピクセルシェーダーによって処理されることが可能である。上記に基づけば、ピクセル値という用語は、完全なピクセル値、又は、完全な値を形成するように他の部分的な値と結合されることが可能な部分的なピクセル値の、いずれかを意味することが可能であるということに注意されたい。ある状況では、完全な値を形成するように他の部分的な値と結合されたピクセル値を特に述べる場合に、部分的なピクセル値が参照されるだろう。部分的なピクセル値の例は、6×5のオーバーサンプリングされたカバレージデータのうちの1つの行に基づく値であり得る。<ピクセル補正係数>0026上記の方法は、1bppのカバレージデータのGPUへの効率的な転送と、その後の当該カバレージデータに基づくピクセル値の効率的な計算を可能にすることができる。このことは、それ自体、メモリ及び/又は計算時間の節約をGPUに提供することが可能である。しかしながら、ピクセル補正係数のいくつか又は全てがルックアップテーブルに組み込まれることができれば、更なる改良が可能である。0027ClearTypeデータのような6×1カバレージデータの従来のプロセスの場合、カバレージデータの10ビットは、赤、緑、及び青のピクセル情報を与えるように組み立てられ、処理される。このピクセル情報の値に基づいて、次に1又は複数の補正値又は係数が当該データに適用される。これらの補正は、表示されたピクセルによって形作られるテキストの見映えを向上させるのに利用されることが可能である。当該補正には、強調されたコントラスト調整、ClearTypeレベル調整、及びアルファ補正が含まれることが可能である。加えて、ピクセル情報の表現のために赤緑青フォーマットと対照的に青緑赤フォーマットを用いるモニターに対して、調整が必要であり得る。従来、これらの補正係数のそれぞれは、上記データの赤、緑、及び青のチャンネル値に基づいて各ピクセルに適用され、未補正のピクセル値を決定した後にそれとは別個の追加の計算を必要とする。0028ある実施態様において、ピクセル値に適用される補正係数のうちの1又は複数は、予め計算されてルックアップテーブルに組み込まれることが可能である。ピクセル値に適用される補正の多くは、組み立てられたカバレージデータのビットによって完全に指定される。例えば、6×1フォーマットのカバレージデータに対する組み立てられた10ビットの数は、当該ピクセル値に適用されることが可能な様々な補正を決定するのに十分な情報を与える。そのような補正には、強調されたコントラスト補正、ClearTypeレベル調整、又はアルファ値補正が含まれることが可能である。ピクセル値に対する補正は前もって決定されることも可能であるため、これらの補正は、予め計算されることも可能である。このことは、ルックアップテーブルが補正ピクセル値を格納することを可能にし、当該補正ピクセル値は、GPUにより必要とされる演算の数を更に削減する。0029テキストレンダリングに利用されるピクセルに適用される補正係数のうちの1又は複数は、ユーザー又はハードウェアの設定に基づいて変化し得るということが特筆される。例えば、ピクセル値に適用される補正係数は、ユーザーにより選択された背景及びテキストの色、又はハードウェアディスプレイデバイスのコントラスト設定に依存し得る。結果として、もしピクセル値に対する補正がルックアップテーブルに含まれるのであれば、補正係数を修正する変更がなされる度に、新たなルックアップテーブルが必要とされるだろう。このことに適応するための1つの方法は、ルックアップテーブルの地図帳を持つことであり得る。一般的なユーザー及びディスプレイの設定、及び/又は新しい設定の組み合わせに対して、ルックアップテーブルの地図帳の中に、1つのルックアップテーブルが格納されることが可能である。まだ計算されていない新しい設定の組み合わせが選択された場合、新しいテーブルが計算されて、地図帳に追加されることが可能である。メモリを節約するために、ルックアップテーブルの地図帳には、限られた数のテーブルが含まれることが可能である。例えば、10ビットのデータのルックアップのための20個のテーブルは、96kBよりも少ない空間に格納されることが可能である。新しいテーブルが追加される場合、テーブルのうちの1つ、例えば最も以前に使用されたテーブルが、選択されて除去されることが可能である。0030ピクセル値に対するデータ補正は、大きいデータフォーマットに対する更なる挑戦を提示することが可能である。例えば、6×5フォーマットのデータは、ピクセル値を指定するのに全部で50ビットを必要とする。上述されたように、当該データを10ビットデータの5つの行として分析することによって、未補正のピクセル値に対するルックアップテーブルが作成されることが可能である。しかしながら、ピクセル値に対する補正係数のうちの少なくともいくつかは、ピクセルに対するオーバーサンプリングデータの全てに基づくものであり、当該オーバーサンプリングデータの一部分に対応する10ビットデータのテーブルに収容するために、容易には分離されることが不可能である。例えば、6×5のピクセル値に対する強調されたコントラスト補正は、10ビットデータの行が垂直方向に集約された後に、計算され適用されなければならない。より大きいデータフォーマットにおけるピクセルの補正については、1つの選択肢は、ルックアップテーブルから検索されたデータに基づく従来の方法で、補正を計算することであり得る。あるいはまた、6×5フォーマットのカバレージデータに関する例において、垂直方向の集約の結果は、ディスプレイモニターの赤、緑、及び青のチャンネルに対応するグレースケールの3つのチャンネルである。これらのグレースケールのチャンネル個々のそれぞれに対して、補正データの少なくともいくつかが、適切なサイズを有したテーブルに格納されることが可能である。このように、いくつかの補正値についてルックアップテーブルを持ち、その一方で残りの補正を従来方法で計算することによって、いくつかの計算が回避されることが可能である。0031図6は、本発明の実施態様によるテキストピクセルの表示のためのプロセスフローを模式的に示す。図6において、当該プロセスの展開ビューが、全体的なコンテキストを与えるように提供されている。テクスチャーのカバレージ矩形及びテクスチャーの座標610は、テキストをラスタライズするために用いられるグリッドを表す。頂点シェーダー620は、スクリーンスペースの変形を実施するための機能622、及びテクスチャー座標をコピーするための機能624を含む。ピクセルシェーダー630は、カバレージの計算を実施するための機能632、及びアルファ調整等の補正を計算するための機能634を含む。1bppのカバレージデータ660は、ピクセルシェーダー630によって処理される。このプロセスの一部分として、いくつかの計算が、カバレージルックアップテーブル672及びアルファルックアップテーブル674で置き換えられることが可能である。ブレンドステージ640は、ClearTypeブレンディング等の追加のブレンディングを実施するための機能642を含む。0032本発明の様々な実施態様の概観を簡潔に説明したので、本発明を実施するのに適した例示的な動作環境がこれより説明される。図面を全般的に参照して、特にまず図1を参照して、本発明の実施態様を実現するための例示的な動作環境が示され、概略的にコンピューティングデバイス100として指示されている。コンピューティングデバイス100は、適したコンピューティング環境のほんの1つの例であって、本発明の利用範囲又は機能に関して如何なる限定をも示唆することを意図していない。コンピューティングデバイス100はまた、図示された要素の任意の1つ若しくは組み合わせに関連する如何なる依存性又は要件をも有するものと解釈されるべきでない。0033本発明の実施態様は、コンピューター又は他のマシン、例えば携帯情報端末や他のハンドヘルド型デバイスによって実行される、プログラムモジュール等のコンピューター実行可能命令を含むコンピューターコード又はマシン使用可能命令の一般的な文脈で説明されることができる。一般に、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含むプログラムモジュールは、特定のタスクを実施し、又は特定の抽象データ型を実現するコードを意味する。本発明は、ハンドヘルド型デバイス、家電製品、汎用コンピューター、より専門的なコンピューティングデバイス等を含む様々なシステム構成で実践されることができる。本発明はまた、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが実施される、分散コンピューティング環境で実践されることもできる。0034引き続き図1を参照すると、コンピューティングデバイス100は、次のデバイス、即ちメモリ112、1つ又は複数のプロセッサー114、1つ又は複数の提示コンポーネント116、入力/出力I/Oポート118、I/Oコンポーネント120、及び例証的な電源122を直接的に又は間接的に接続するバス110を含む。バス110は、アドレスバス、データバス、又はそれらの組み合わせといったような1つ又は複数のバスであるかもしれないものを表す。図1の様々なブロックは明瞭性のために線で示されているが、現実には様々なコンポーネントの境界をはっきりさせるのはそれほど明確ではなく、比喩として、これらの線は、より正確には灰色で曖昧となることだろう。例えば、人は、ディスプレイデバイス等の提示コンポーネントをI/Oコンポーネントとみなすかもしれない。加えて、多くのプロセッサーはメモリを有している。本発明の発明者は、そのようなことは当該技術の特質であると認め、図1の図形は本発明の1つ又は複数の実施態様に関連して用いられることが可能な例示的なコンピューティングデバイスを、単に例証しているに過ぎないということを繰り返し述べる。ワークステーション、サーバー、ラップトップ、ハンドヘルド型デバイス等のようなカテゴリー間において区別はなされない。何故なら、それらは全て図1の範囲内において予期され、コンピューティングデバイスを参照するものであるからである。0035コンピューティングデバイス100は、典型的に、様々なコンピューター読み取り可能媒体を含んでいる。コンピューター読み取り可能媒体は、コンピューティングデバイス100によってアクセスされることが可能な任意の利用可能な媒体であることができ、揮発性及び不揮発性媒体、リムーバブル及び非リムーバブル媒体の両方を含む。限定ではなく例として、コンピューター読み取り可能媒体は、コンピューター記憶媒体と通信媒体とを含むことができる。コンピューター記憶媒体は、コンピューター読み取り可能命令、データ構造、プログラムモジュール又は他のデータといったような、情報の記憶のための任意の方法又は技術によって実現された揮発性及び不揮発性、リムーバブル及び非リムーバブルの媒体を含む。コンピューター記憶媒体は、限定ではなく、ランダムアクセスメモリRAM、リードオンリーメモリROM、電子的に消去可能なプログラム可能リードオンリーメモリEEPROM、フラッシュメモリ又は他のメモリ技術、CD-ROM、デジタル多用途ディスクDVD又は他のホログラフィックメモリ、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶デバイス、搬送波、又は、所望の情報をエンコードするのに使用されることが可能であり、コンピューティングデバイス100によってアクセスされることが可能である任意の他の媒体を含む。実施態様において、コンピューター記憶媒体は、有形のコンピューター記憶媒体であり得る。実施態様において、コンピューター記憶媒体は、非一時的なコンピューター記憶媒体であり得る。0036メモリ112には、揮発性及び/又は不揮発性メモリの形態のコンピューター記憶媒体が含まれる。当該メモリは、リムーバブル、非リムーバブル、又はそれらの組み合わせであり得る。例示的なハードウェアデバイスには、固体メモリ、ハードドライブ、光ディスクドライブ等が含まれる。コンピューティングデバイス100は、メモリ112又はI/Oコンポーネント120といったような様々なエンティティからデータを読み出す1つ又は複数のプロセッサーを含む。提示コンポーネント116は、データを表すものをユーザー又は他のデバイスに提示する。例示的な提示コンポーネントには、ディスプレイデバイス、スピーカー、印刷コンポーネント、振動コンポーネント等が含まれる。0037I/Oポート118は、コンピューティングデバイス100が、I/Oコンポーネント120を有する他のデバイスに論理的に接続されることを可能にし、そのうちのいくつかは、内蔵されることができる。例証的なコンポーネントには、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信用アンテナ、スキャナー、プリンター、無線デバイス等が含まれる。0038図2は、グリフの処理及びテキストのレンダリングのために利用されることができるコンピューティングデバイス100のコンポーネントを詳述する。GPU124のハードウェアのいくつかは、1又は複数の手続きシェーダーを含む。手続きシェーダーは、グラフィックデータに対して専門的な演算を実行するための、GPU124の専門処理サブユニットである。手続きシェーダーの一例は、概して頂点に対する演算を実行する頂点シェーダー126である。例えば、頂点シェーダー126は、個々の頂点に対して位置、色、及びテクスチャー座標の計算を適用することが可能である。頂点シェーダー126は、グラフィックパイプラインのメモリ中で指定された頂点のストリームに対して、固定の関数計算又はプログラム可能な関数計算の何れかを実行することができる。手続きシェーダーの別の例は、ピクセルシェーダー128である。例えば、頂点シェーダー126の出力値はピクセルシェーダー128へ渡されることが可能であり、次に当該ピクセルシェーダー128が、個々のピクセルそれぞれに対して演算を実行する。手続きシェーダーが演算を完了した後、GPUバッファー130に情報が配置される。この情報は、接続されているディスプレイデバイス上に提示されることができ、又は、更なる処理のためにホストへ返送されることができる。0039GPUバッファー130は、グリフテクスチャーのためのステージサーフェス又はスクラッチサーフェスとしてGPU124上に記憶場所を提供する。様々なレンダリング演算がグリフテクスチャーに関して実行される際に、グリフは、GPUバッファー130からアクセスされ、変更され、当該バッファー130上に再記憶されることができる。当業者に知られているように、GPUバッファー130は、処理中のグリフが、テキストパイプラインにより変形される間にGPU124上に残留することを可能にする。グリフをGPU124からメモリ112へ転送するのは時間がかかるため、グリフテクスチャー即ちビットマップがGPUバッファー130上に残留することは、望ましいことであり得る。0040ピクセルシェーダー128に関して、ピクセルシェーディングの専門的な機能は、ピクセルシェーダー128へ命令をダウンロードすることによって達成されることが可能である。例えば、ダウンロードされた命令は、グリフテクスチャーの専門的なマージ、フィルタリング、又は平均化を可能とすることができる。更にまた、ピクセルシェーダー128に適合された命令セットによって、多くの異なる演算の機能が提供されることができる。ピクセルシェーダー128をプログラムする能力は、テキストレンダリング演算にとって都合がよいものであり、専門的な命令のセットは、進化を容易にし、また性能を向上させることによって、価値を付加することができる。ピクセルシェーダー128の命令カウント限界及び他のハードウェア制限を超過しないと仮定すれば、これらの命令を実行することにより、様々な機能がピクセルシェーダー128によって実施されることが可能である。0041図3は、本発明の実施態様による方法を示すフローチャートを表している。図3に示された実施態様において、1ビットパーピクセルのカバレージデータが310において受け取られる。このカバレージデータは、6×1フォーマット等のオーバーサンプリングされたフォーマットを有する。受け取られたカバレージデータは、1ビットパーバイトの記憶よりも大きい記憶フォーマットで記憶される。カバレージデータのビットは、nビットの明度を形成するように320において組み立てられる。このnビットの明度、例えば6×1フォーマットの場合における10ビットの明度は、上記のオーバーサンプリングされたフォーマットを有するピクセルに対応する。当該nビットの明度を用いて、ピクセル値テーブルが330においてインデックス付けされる。インデックス付けされた位置に対応する少なくとも1つのピクセル値が、340において取得される。次いで、当該取得された少なくとも1つのピクセル値に基づいて、ピクセルが350においてレンダリングされる。0042図4は、本発明の実施態様による別の方法を示すフローチャートを表している。図4に示された実施態様において、1ビットパーピクセルのカバレージデータが410において受け取られる。このカバレージデータは、6×5フォーマット等のオーバーサンプリングされたフォーマットを有する。受け取られたカバレージデータは、1ビットパーバイトの記憶よりも大きい記憶フォーマットで記憶される。カバレージデータのビットは、複数のnビットの明度を形成するように420において組み立てられる。このnビットの明度のそれぞれ、例えば6×5フォーマットの場合におけるピクセルカバレージデータの一部分である10ビットの明度のグループは、上記のオーバーサンプリングされたフォーマットを有するピクセルの一部分に対応する。また、このnビットの明度のそれぞれは、複数のバイトからのビットを含む。当該複数のnビットの明度を用いて、ピクセル値テーブルが430において複数回インデックス付けされる。同じピクセル値テーブルが複数回インデックス付けされることが可能であり、又は、オプションとして、当該nビットの明度が使用されて2以上のピクセル値テーブルをインデックス付けすることが可能である。インデックス付けされた位置に対応する複数の部分的なピクセル値が、440において取得される。当該取得された部分的なピクセル値は、複数の結合ピクセル値を形成するように450において結合される。次いで、この結合されたピクセル値に基づいて、ピクセルが460においてレンダリングされる。0043図5は、本発明の更に別の実施態様による方法を示すフローチャートを表している。図5に示された実施態様において、1ビットパーピクセルのカバレージデータが510において受け取られる。このカバレージデータは、6×5フォーマット等のオーバーサンプリングされたフォーマットを有する。受け取られたカバレージデータは、1ビットパーバイトの記憶よりも大きい記憶フォーマットで記憶される。記憶されたピクセルカバレージデータのバイトは、浮動小数点データ型として520においてサンプリングされる。当該バイトには、レンダリングされるピクセルのカバレージデータに対応する1又は複数のビットが含まれている。このサンプリングされた浮動小数点のバイトは、上記の記憶されたデータ内の1又は複数のビットを分離するように530において変形される。例えば、この変形は、関心のあるビットがその数の小数点の片側に分離されるようにする、2の累乗の乗算であり得る。変形されたバイトは、上記1又は複数の分離されたビットに対応しないビットを除去するように、540において切り捨てられる。当該分離されたビットは、上記のオーバーサンプリングされたフォーマットを有するピクセルに対応するnビットの明度を形成するように、分離されたビットの少なくとも1つの他の一部分と共に550において組み立てられる。当該nビットの明度を用いて、ピクセル値テーブルが560においてインデックス付けされる。インデックス付けされた位置に対応する少なくとも1つのピクセル値が、570において取得される。次いで、この取得された少なくとも1つのピクセル値に基づいて、ピクセルが580においてレンダリングされる。<事例>0044以下は、予言的な事例である。ディスプレイの設定への変更が、アンチエイリアシングされたテキスト等のオブジェクトを表示している物理的ディスプレイに関して検出される。この物理的ディスプレイ上のピクセルは、6×1のオーバーサンプリングされた1bppのカバレージデータに基づいてレンダリングされている。上記変更は、当該物理的ディスプレイデバイスにおける設定の変更、表示されるテキストの色の変更、又は別の変更であり得る。この変更に基づいて、ディスプレイのピクセルに影響を与える設定が検出される。検出された設定は、ルックアップテーブルの地図帳に格納されているルックアップテーブル内の設定と対比される。設定の適合したグループが見つからない場合、新たなルックアップテーブルが作成される。当該ルックアップテーブルは、6×1のカバレージデータに関して可能なとり得る210通りの組み合わせのそれぞれに対する補正ピクセル値を与える。この補正ピクセル値は、アルファ補正、ClearType補正、又は他の任意のタイプの補正等の、ピクセル値に対する補正を含む。当該新たなルックアップテーブルは上記地図帳へ追加され、地図帳内の最も古いルックアップテーブルが除去される。0045次いで、上記の新たなルックアップテーブルは、ディスプレイデバイス上にテキストグリフ等のオブジェクトをレンダリングするのに利用される。表示される当該グリフは、6×1のオーバーサンプリングされた1bppのカバレージデータとして表現される。この1bppのデータは、CPUからGPUへの転送のために8ビットのデータを1バイトに配置することによって圧縮される。GPUへの転送の後、各ピクセルに対するデータが、当該ピクセルに対応するデータを収容している2バイトにアクセスすることによって抽出される。関心のあるビットを分離するのにビットシフト演算が用いられ、当該関心のあるビットから10ビットの数が形成される。次いで、この10ビットの数は、上記の新たなルックアップテーブルをインデックス付けするのに利用される。当該10ビットの数に対応する記憶されたピクセル値が取得され、表示のために用いられる。記憶されている値に全ての補正が組み込まれていれば、当該記憶されているピクセル値は他の如何なる補正計算も必要としないかもしれない。<補足的な実施態様>0046第1の実施態様において、アンチエイリアシングされたレンダリングのための方法が提供される。この方法は、オーバーサンプリングされたフォーマットを有する1ビットパーピクセルのカバレージデータを受け取るステップであって、前記受け取られたカバレージデータは1ビットパーバイトの記憶よりも大きい記憶フォーマットを有する、ステップと、前記オーバーサンプリングされたフォーマットを有するピクセルに対応するnビットの明度を形成するようにカバレージデータのビットを組み立てるステップと、前記nビットの明度を用いてピクセル値テーブルをインデックス付けするステップと、前記インデックス付けされた位置に対応する少なくとも1つのピクセル値を取得するステップと、前記取得された少なくとも1つのピクセル値に基づいてピクセルをレンダリングするステップと、を含む。0047第2の実施態様において、上記第1の実施態様に従う方法が提供され、nビットの明度を形成するようにカバレージデータのビットを組み立てる前記ステップは、記憶されたピクセルカバレージデータのバイトを浮動小数点データ型としてサンプリングするステップであって、前記バイトはレンダリングされるピクセルのカバレージデータに対応する1又は複数のビットを含む、ステップと、前記記憶されたデータに含まれる前記1又は複数のビットを分離するように、前記サンプリングされた浮動小数点のバイトを変形するステップと、前記1又は複数の分離されたビットに対応しないビットを除去するように、前記変形されたバイトを切り捨てるステップと、前記オーバーサンプリングされたフォーマットを有するピクセルに対応するnビットの明度を形成するように、前記分離されたビットを分離されたビットの少なくとも1つの他の一部分と共に組み立てるステップと、を含む。0048第3の実施態様において、上記実施態様の何れかに従う方法が提供され、前記カバレージデータに対する前記オーバーサンプリングされたフォーマットは6×1フォーマットであり、前記nビットの明度は10ビットの明度に対応する。0049第4の実施態様において、上記実施態様の何れかに従う方法が提供され、結合されたピクセル値を形成するように前記少なくとも1つのピクセル値を少なくとも第2のピクセル値と結合するステップであって、前記レンダリングされるピクセルは前記結合されたピクセル値に基づく、ステップを更に含む。0050第5の実施態様において、上記実施態様の何れかに従う方法が提供され、複数のnビットの明度を形成するようにビットを組み立てる前記ステップは、複数のバイトからビットを組み立てるステップを含む。0051第6の実施態様において、アンチエイリアシングされたレンダリングのための方法が提供される。この方法は、オーバーサンプリングされたフォーマットを有する1ビットパーピクセルのカバレージデータを受け取るステップであって、前記受け取られたカバレージデータは1ビットパーバイトの記憶よりも大きい記憶フォーマットを有する、ステップと、複数のnビットの明度を形成するようにカバレージデータのビットを組み立てるステップであって、各nビットの明度は、前記オーバーサンプリングされたフォーマットを有するピクセルに対応し、複数のバイトからのビットを含む、ステップと、前記複数のnビットの明度を用いてピクセル値テーブルを複数回インデックス付けするステップと、それぞれのインデックス付けされた位置に対応する複数のピクセル値を取得するステップと、複数の結合されたピクセル値を形成するように、複数のインデックス付けされた位置に対応する取得されたピクセル値を結合するステップと、前記複数の結合されたピクセル値に基づいてピクセルをレンダリングするステップと、を含む。0052第7の実施態様において、上記第6の実施態様に従う方法が提供され、複数のピクセル値を取得する前記ステップは、ピクセル値の3つのチャンネルを取得するステップを含む。0053第8の実施態様において、上記第7の実施態様に従う方法が提供され、前記取得されたピクセル値を結合する前記ステップは、3つの結合されたチャンネルのピクセル値を形成するように前記ピクセル値の3つのチャンネルを結合するステップを含む。0054第9の実施態様において、上記第8の実施態様に従う方法が提供され、補正係数を取得するために、結合されたチャンネル値を用いて補正係数テーブルをインデックス付けするステップと、前記補正係数を前記結合されたチャンネル値に適用するステップと、を更に含む。0055第10の実施態様において、上記第6乃至第9の実施態様の何れかに従う方法が提供され、前記カバレージデータに対する前記オーバーサンプリングされたフォーマットは6×5フォーマットであり、各nビットの明度は10ビットの明度に対応する。0056第11の実施態様において、上記実施態様の何れかに従う方法が提供され、前記受け取られたカバレージデータは少なくとも8ビットパーバイトの記憶フォーマットを有する。0057第12の実施態様において、上記実施態様の何れかに従う方法が提供され、前記1ビットパーピクセルのカバレージデータはテキストグリフに対するカバレージデータを表す。0058第13の実施態様において、上記実施態様の何れかに従う方法が提供され、ピクセル補正係数を修正する変更を検出するステップと、前記修正されたピクセル補正係数を組み込むピクセル値のテーブルを構築するステップと、を更に含み、前記nビットの明度を用いてピクセル値テーブルをインデックス付けする前記ステップは、前記構築されたテーブルをインデックス付けするステップを含む。0059第14の実施態様において、上記第13の実施態様に従う方法が提供され、前記構築されたテーブルはテーブルの地図帳に記憶される。0060本発明の実施態様は、特定の実施態様に関連して説明されたが、当該実施態様は、あらゆる点において、限定的ではなく例証的であることを意図されている。当業者には、本発明がその範囲から逸脱することなく関連を持つ代替的な実施態様が明らかとなるだろう。0061上述したことから、本発明は、明白であり且つその構成に固有である他の優位性と共に本明細書において規定された、あらゆる目標及び目的を達成するのによく適応した発明である、ということが見出されるだろう。0062ある特徴及び部分的組み合わせは有用であり、他の特徴及び部分的組み合わせを参照することなく利用されることができる、ということは理解されるだろう。これは、特許請求の範囲によって予期され、特許請求の範囲の中に含まれる。