(57)【特許請求の範囲】
【請求項１】
コンピュータ装置のグラフィカルインターフェースにおいて表示されるテキストを処理する方法であって、
前記テキストの少なくとも１つの形を表し且つ前記テキストの表示において使用されるディスプレイの複数のサブピクセルに対応する情報を含む前記テキストのためのマッピングを作成するステップと、
前記マッピングを用いて、サブピクセル・アンチエイリアシング技術に従って、前記複数のサブピクセルの夫々について、当該サブピクセルのコンポジット色値に対する前記テキストの色の寄与を重み付けするカバレッジ値を決定するステップと、
前記テキストの色値が前記グラフィカルインターフェースにおいて前記テキストと重なり合って表示される少なくとも１つの他の表示要素の色値と線形結合されることを可能にするように前記カバレッジ値を調整することによって、前記カバレッジ値を処理するステップと、
前記複数のサブピクセルの夫々の色値を記憶する少なくとも３つの色チャネルを有するビデオメモリにおいて、該ビデオメモリの前記少なくとも３つの色チャネルのうちの少なくとも１つの色チャネルに、前記グラフィカルインターフェースにおける前記テキストのレンダリングでの後の使用のために前記処理されたカバレッジ値をキャッシングするステップと
を有する方法。
【請求項２】
前記処理されたカバレッジ値をキャッシングするステップは、前記テキストが前記グラフィカルインターフェースにおいて表示される色に関する情報を前記ビデオメモリに記憶せずに、該ビデオメモリにおいて前記処理されたカバレッジ値を記憶することを含む、
請求項１に記載の方法。
【請求項３】
前記カバレッジ値を処理するステップは、
ユーザ好みに基づき前記カバレッジ値を調整し、
前記テキストの色について輝度値を決定し、該決定された輝度値に基づきコントラスト調整を決定し、
前記コントラスト調整を前記調整されたカバレッジ値に適用することを含む、
請求項１に記載の方法。
【請求項４】
前記カバレッジ値を処理するステップは、
前記ディスプレイに関連するガンマ値を特定し、
前記ガンマ値を用いて、テーブルからアルファ補正値を取り出し、
前記アルファ補正値に基づき前記カバレッジ値を変更することを含む、
請求項１に記載の方法。
【請求項５】
前記作成するステップ、前記決定するステップ、前記処理するステップ及び前記キャッシングするステップは、少なくとも前記テキストのコンテンツを含むが前記テキストがレンダリングされるディスプレイ上の位置を含まない命令を実行処理から受け取ることに応答して実行される、
請求項１に記載の方法。
【請求項６】
少なくとも１つのプロセッサを有する装置であって、
前記少なくとも１つのプロセッサは、
表示のためにテキストをレンダリングする要求を受け取ったことに応答して、前記テキストの表示において使用されるディスプレイの複数のサブピクセルの夫々について、当該サブピクセルのコンポジット色値に対する前記テキストの色の寄与を重み付けするカバレッジ値をキャッシュから取り出し、当該装置の少なくとも１つのグラフィクス処理ユニットがアクセスすることができるメモリ位置に格納し、前記キャッシュは、前記複数のサブピクセルの夫々の色値を記憶する少なくとも３つの色チャネルを有し、前記カバレッジ値は、前記少なくとも３つの色チャネルのうちの少なくとも２つの色チャネルにおいて記憶され、
前記少なくとも１つのグラフィクス処理ユニットを設定して、該少なくとも１つのグラフィクス処理ユニットが、前記複数のサブピクセルの色値を、前記カバレッジ値に基づき、前記ディスプレイにおいて前記テキストと重なり合って表示される少なくとも１つの他の表示要素の色値と線形結合して、前記複数のサブピクセルのコンポジット色値を決定することを可能にし、
前記決定されたコンポジット色値を前記少なくとも１つのグラフィクス処理ユニットから受け取り、
前記決定されたコンポジット色値に基づき前記テキストのアンチエイリアシングされたバージョンを前記ディスプレイにレンダリングする
ようプログラミングされる、装置。
【請求項７】
前記少なくとも１つのプロセッサは、前記キャッシュとは異なる他のソースから前記複数のサブピクセルの色値を取り出し、当該装置の少なくとも１つのグラフィクス処理ユニットがアクセスすることができるメモリ位置に格納するよう更にプログラミングされる、
請求項６に記載の装置。
【請求項８】
前記少なくとも１つのプロセッサは更に、前記ディスプレイに前記テキストをレンダリングする前記要求を受け取るようプログラミングされ、前記要求は、前記複数のサブピクセルの色値を含む、
請求項７に記載の装置。
【請求項９】
前記少なくとも１つのプロセッサは更に、前記要求を受け取ったことに応答して、前記複数のサブピクセルの色値を取り出すようプログラミングされる、
請求項７に記載の装置。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピュータ装置は、テキストの形でユーザに情報を表示することができる。テキストは文字例から構成される。英語のテキストに関し、文字は、文字及び句読点の形をとる。他の言語で提示される情報は他の文字を使用してよい。如何にして特定の文字がテキストを表すために使用されるのかにかかわらず、コンピュータ装置は、コンピュータのディスプレイにレンダリングされるテキストを定義する入力を受け取って、テキストが適切に表示されるようにディスプレイへの適切な制御信号を生成することができる有用性を有して構成されてよい。
【０００２】
ディスプレイにレンダリングされるテキストを定義する入力は、グリフの定義を用いることを含め、如何なる適切な形もとることができる。グリフは、文字の全部又は一部のようなテキストの要素である。文字が文字及び句読点である場合に、グリフは、線及び点のような文字又は句読点の全部又は一部であってよい。グリフの定義はグリフの形状を記述し、ディスプレイへの適切な制御信号を生成するために如何なる適切なフォーマットであっても且つ如何なる適切な方法においても使用されてよい。
【０００３】
テキストの適切な表示のための制御信号を生成するレンダリング処理は複数のステップを含んでよい。それらのステップの幾つかは、ユーザが見るためにテキストをより好ましくすることに向けられてよい。コンピュータディスプレイでコンテンツを見る場合に、ヒトは、他のグラフィカルオブジェクトの提示と比べて、如何にしてテキストが提示されるのかに対して敏感である傾向がある。従って、ヒトが見やすいと思うようにコンピュータディスプレイを介してテキストを提示することは、画像を提示するために使用されるのとは異なるステップを必要とする。そのような余分のステップの一例は、テキストのグリフのエッジの処理である。
【０００４】
特に、多くのコンピュータユーザは、ディスプレイのピクセル値がグリフにきつく高いコントラストのエッジを与えるよう設定される場合に、これはテキストのエッジに濃淡にむらがあり且つギザギザ（すなわち、エリアシング）がある外観を与えるので、ディスプレイでテキストを見るのを好まないか又は見るのに困難を感じる。より好ましい提示を提供するよう、「アンチエイリアシング」技術が使用される。アンチエイリアシング技術は、ディスプレイのどのピクセルがグリフ及びグリフの周囲の領域を表すために使用されるのかを設定し、そして、ピクセル毎に、グリフのエッジを滑らかにし且つグリフをより見やすくするように強さを設定するために使用される。
【０００５】
テキストがディスプレイで表示される場合に、テキストは他の表示要素とともに表示されることがある。例えば、テキストは、背景又は前景グラフィクスと重なり合って表示されてよい。テキスト及びグラフィクスを重なり合うよう表示するよう、コンピュータ装置は、グラフィクスと重なり合うテキストの効果を作り出すディスプレイの個々のピクセルによって放射されるコンポジット色を決定する。コンポジット色を決定するよう、テキストのための色情報とグラフィクスのための色情報とを用いて計算が行われる。テキスト及びグラフィクスのための色情報は、ディスプレイのピクセルに対応するテキスト及びグラフィクスの夫々についての色値に含まれてよい。例えば、特定のピクセルが赤色であるべきことをテキストのための色情報が示し、且つ、特定のピクセルが青色であるべきことをグラフィクスのための色情報が示す場合に、重ね合わせ効果は、そのピクセルのコンポジット色値を紫色と識別することによって生成されてよい。
【０００６】
色情報を結合することを容易にするよう、テキスト及び重なり合う表示要素の夫々の色値は、カバレッジ値（“α”値とも呼ばれる。）によって表される“カバレッジ”情報に関連付けられてよい。重なり合う表示要素どうしの色値を結合することによってコンポジット色値を計算する場合に、表示要素毎のカバレッジ値は、ピクセル毎にコンポジット色値への色値の夫々の寄与を重み付けするために使用される。特に、カバレッジ値は、１つの表示要素の色値を他の表示要素の色値よりも重くすることによって透明効果を導入するよう使用され得る。例えば、このピクセルについて、カバレッジ値からの重み付けがコンポジット色値をグラフィクスの色とより同系とする場合に、下にあるグラフィクスの上にあるように表示されるテキストは透明であるか、又はコンポジット色値が代わりにテキスト色とより同系である場合よりも透明であるようにディスプレイ上に現れてよい。
【０００７】
カバレッジ値はまた、テキストのエッジを和らげるためにアンチエイリアシング技術において使用されて、エッジが重なり合う表示要素と滑らかに融合するよう見えるようにしてよい。エッジが滑らかに融合するよう見えるようにするよう、ピクセルのコンポジット色値を決定する場合に、そのピクセルについてのテキストのカバレッジ値は透明効果を生み出すよう設定されてよい。例えば、テキストのカバレッジ値は、グリフの真ん中で又はグリフのエッジの近くでピクセルのためのより不透明な効果を、そしてグリフのエッジから離れてより透明な効果を生み出すよう設定され得る。これは、融合効果を生み出すことができる。特に、テキストのカバレッジ値は、ディスプレイのピクセル毎に、テキストの何れかの文字の表示領域内にあるピクセルの割合に基づき設定されてよい。完全に文字の領域内にあるピクセルに関し、カバレッジ値は１００％であるよう特定されてよい。それにより、テキストはそのピクセルでは透明ではない（すなわち、ピクセルの色は、テキスト色により近い。）。同様に、完全にテキストの何れかの文字の表示領域の外にあるピクセルに関し、カバレッジ値は０％であるよう特定されてよい。それにより、テキストはそのピクセルで完全に透明であり、ピクセルはテキストに関する如何なる情報も表示しない。テキストのエッジ沿いのピクセルは、部分的にテキストの文字の領域内及び領域外にあってよく、ピクセルと重なり合う何れかの文字の量に基づき０％から１００％の間にあるテキストのカバレッジ値を有する。従って、ピクセルのコンポジット色値に対するテキスト色の寄与は、テキストの文字の表示領域内にあるピクセルの割合に従って重み付けられる。これは、テキストが、背景と一体となってきつく高いコントラストのエッジを有するのではなく、テキストがエッジ沿いで背景に溶け込むように見えるようにする平滑作用を有して表示されることを可能にする。このように設定されるカバレッジ値は、０から１の間の数であるよう正規化され得る。
【０００８】
複数のアンチエイリアシング技術が知られている。グリフのエッジに陰影を付ける１つのアンチエイリアシング技術はしばしば、“グレースケール”シェーディングと呼ばれる。グレースケールシェーディングによれば、テキストの単一のカバレッジ値が、上記の技術を用いて全体としてピクセルについて設定される。
【０００９】
他の技術はサブピクセル・アンチエイリアシングとして、又は代替的にサブピクセル・カバレッジとして知られている。このアプローチは、カラーで情報を提示することができる多くのコンピュータディスプレイの特性を利用する。多くのタイプのディスプレイのピクセルは夫々、ピクセルから光を投射するよう協働する複数のサブピクセルを含む。ピクセルの各サブピクセルは、赤、緑又は青といった異なる色の光を放射する。サブピクセルを制御することによって、ピクセルから放射される光の強さ及び色は制御され得る。
【００１０】
サブピクセル・アンチエイリアシング技術において、ピクセル全体によって放射されるべき光の所望の色及び強さに基づき厳密にサブピクセルを制御することに代えて、各サブピクセルを個々に制御する値は、グリフを表示する場合に平滑効果を生み出すよう設定される。特に、サブピクセル・アンチエイリアシングのために、カバレッジ値は、グレースケール・アンチエイリアシングにおいて見られるようにピクセル全体ではなく、ピクセルのサブピクセル毎に別個に設定される。グレースケール・アンチエイリアシングでは、ピクセルについてのテキストのカバレッジ値は文字の表示領域内にあるピクセルの量に比例して設定されたが、サブピクセル・アンチエイリアシングでは、カバレッジ値は各サブピクセルの量に比例して設定されてよい。個々のサブピクセルについてのカバレッジ値は、特定の強さを有して光を放射するようサブピクセルの夫々を制御するためにコンポジット色値を設定する場合に使用され得る。特に、上述されたように、テキストのための色情報は、サブピクセルのためのコンポジット色値を決定するようテキストのためのサブピクセル・カバレッジ値及び重なり合う表示要素のための色情報と結合され得る。ディスプレイのサブピクセルはフルピクセルよりも細かい分解能を有するので、サブピクセル毎にカバレッジ値を設定すると、グレースケール・アンチエイリアシングにより可能であるよりも細かい粒度の平滑化が達成可能であり、テキストの視覚的外観はグレースケール・アンチエイリアシングを用いて達成可能であるものよりも優れている。ワシントン州レドモンドのマイクロソフト・コーポレーションから版板されているＭＩＣＲＯＳＯＦＴ（登録商標）ＣＬＥＡＲＴＹＰＥ（登録商標）テキストは、サブピクセル・アンチエイリアシングを用いる平滑化技術の一例である。
【００１１】
上述されたように、カバレッジ値は、ディスプレイのピクセルによって提示されるコンポジット色値を決定するための計算に対してカバレッジ値が有する影響のために、そのような透明及び平滑効果を作り出すよう使用され得る。色値に関するそのような計算は、テキストのためのカバレッジ値がテキストの色値を変更するために使用される場合に、複数の表示要素（例えば、テキスト及びグラフィクス）が重なり合って見えるように表示されるべきときに実行される。しかし、複数の表示要素に関して色情報を結合する場合に複雑性が生じる。ほとんどのディスプレイは線形に応答しないので、複数の表示要素のための変更された色値（カバレッジ値によって変更される。）の単なる線形補間は、テキスト及びグラフィクスの重ね合わせであるようヒトの目には見えないコンポジット色値をもたらす。結果として、テキスト及びグラフィクスのための変更された色値が線形補間によって結合された場合に、結果として得られる表示は、ヒトには正確であるよう見えない。このような結果を回避するよう、コンポジット色が見ているヒトに意図された重ね合わせのように見えるように、変更された色値の結合を変更するよう“ガンマ補正”と呼ばれる技術を適用することが知られている。ガンマ補正において、線形補間により生成されるコンポジット色値は、コンポジット色値が正確に表れるように、使用されるディスプレイに関連する“ガンマ値”によって変更される。
【発明の概要】
【課題を解決するための手段】
【００１２】
出願人は、ディスプレイにテキストをレンダリングする場合に、処理ステップの適切な順序付けによって、コンピュータ装置が良好な表示品質を有してより高速に動作することができることに気付いた。ステップは、その後に重なり合うグラフィクスに対して異なる位置でテキストをレンダリングする際に使用され得る情報のキャッシングを容易にするよう順序づけられてよい。テキストの高速且つ高品質の提示は更に、キャッシュする情報の選択と、情報をキャッシュする方法とによって容易にされ得る。
【００１３】
然るに、本願では、サブピクセル・アンチエイリアシング技術を用いて決定されるサブピクセル・カバレッジ値のキャッシングを可能にするように表示されるテキストに関する情報を処理する技術が記載される。幾つかの実施形態において、技術は、ディスプレイのピクセル及び／又はサブピクセルのコンポジット色値を決定するよう１又はそれ以上の重なり合う表示要素に関する情報と線形に結合され得るテキストのサブピクセル・カバレッジ値をもたらしてよい。それらの実施形態では、サブピクセル・カバレッジ値は、キャッシュから取り出される場合に、重なり合う表示要素に関する情報と線形に結合され得るので、テキストを重なり合う表示要素とともにレンダリングすることは、より高速に且つ効率的に実行されてよい。サブピクセル・カバレッジ値は、テキストの色値と別にキャッシュされてよい。幾つかの実施形態において、色値は、サブピクセル・カバレッジ値から分割されて、別個のデータ構造において格納されてよい。
【００１４】
上記は、添付の特許請求の範囲によって定義される本発明の、限定されない概要である。
【図面の簡単な説明】
【００１５】
【図１Ａ】サブピクセル色チャネルを有する例となるディスプレイのブロック図である。
【図１Ｂ】サブピクセル・アンチエイリアシング技術により描かれるグリフの例である。
【図２】幾つかの実施形態が動作することができるコンピュータ装置の幾つかの構成要素のブロック図である。
【図３】コンピュータディスプレイにテキストをレンダリングする際に使用されるアンチエイリアシング処理のカバレッジ値をキャッシュする例となる処理のフローチャートである。
【図４】コンピュータディスプレイにテキストをレンダリングする際に使用されるキャッシュからアンチエイリアシング処理のカバレッジ値を取り出す例となる処理のフローチャートである。
【図５】アンチエイリアシング処理のためにカバレッジ値を計算する部分として実行され得る例となる処理のフローチャートである。
【図６】ガンマ補正処理を実行するのを開示するためにカバレッジ値を補正する例となる処理のフローチャートである。
【図７】テキストが異なる色により表示されるためのカバレッジ値を記憶する例となる処理のフローチャートである。
【図８】幾つかの実施形態が動作することができるコンピュータ装置のブロック図である。
【発明を実施するための形態】
【００１６】
添付の図面は、実寸通りに描かれるよう意図されない。図面において、様々な図において表される夫々の同じか又はほぼ同じ構成要素は同じ符号によって参照される。明瞭さのために、全ての構成要素が全ての図面において符号を付されているわけではない。
【００１７】
出願人は、ユーザインターフェースにおけるテキストの表示のために必要とされる処理ステップが、アニメーションを含むか又はユーザがインターフェースの要素を動画化することを可能にするインターフェースにとって特別なインターフェースの動きを鈍くすることに気付いた。しかし、出願人は更に、処理ステップの適切な順序づけがテキストに関する情報のキャッシングを可能にすることができ且つこのような情報のキャッシングがテキストのレンダリングを促進することができることに気付いた。加えて、出願人は、ピクセルの色値及びカバレッジ値を記憶する従来の技術が単一のデータ構造においてまとめて関連付けてピクセルの値を記憶したが、テキストのレンダリングは、サブピクセル色値及びサブピクセル・カバレッジ値がグラフィクス処理ユニットよって処理されるよう異なるデータ構造に分割された場合に迅速に処理され得ることに気付いた。
【００１８】
特に、出願人は、ユーザインターフェースが従前のインターフェースよりもインタラクティブであり且つ動画化されるようになっており、これにより、アニメーションの量に応じてユーザインターフェースにおけるテキストのレンダリングに特定の困難さが加わることに気付いた。見る者にとって好ましいようにテキストをレンダリングすることは、テキストのカバレッジ値の計算、テキストの色情報及びカバレッジ値と重なり合うグラフィクスの色情報との結合、並びに結果として得られるコンポジット色値のガンマ補正を含む多くの処理ステップを必要とする。それらの処理ステップは、実行するのに比較的長い時間を要し、これにより、アニメーションがユーザインターフェースに組み込まれる場合に、時間遅延の問題が引き起こされ得る。例えば、ユーザインターフェースは、テキストに対するズームイン又は背景グラフィクスに対するテキストのスクロール若しくは移動といったインタラクティブなアニメーションを可能にする。従来のレンダリング技術によれば、テキストがアニメーションに続いて再レンダリングされる度に、同じ処理ステップが、テキスト及びグラフィクスの新たな重なり合いのためのコンポジット色値を決定するために再び実行される必要がある。従って、処理ステップは、不規則に変化するか又は遅い態様において、インターフェースをユーザに応答させ得る。
【００１９】
出願人は更に、そのような動画化インターフェースが使用される装置のタイプが変化していることに気付いた。動画化インターフェースは、携帯電話機及びタブレット型コンピュータのような、タッチスクリーン・インターフェースを備える携帯型コンピュータにおいてよく使われている。しかし、そのような携帯型コンピュータは、デスクトップ又はラップトップ型パーソナルコンピュータと比べて、限られたリソース及び比較的遅いプロセッサを有する。そのような限られたリソースによりアニメーションに続いてテキストのための処理ステップを実行することは、それらの動画化インターフェースを更に遅くならしめる。
【００２０】
出願人はまた、重なり合う表示要素に対するテキストの位置が変化する場合に、コンポジット色値は変化し、従来のレンダリング処理はガンマ補正が新しいコンポジット値に対して実行される必要があるので、それらの処理ステップは繰り返される必要があることに気付いた。しかし、出願人は、テキスト情報及び他の表示要素に関する情報がガンマ補正を実行せずに結合され得る場合に、アニメーションに続いて実行されるべき処理ステップが能率化され得ると気付いた。特に、ガンマ補正が削除され得る場合は、テキスト及び他の重なり合う表示要素のための色情報はアニメーションに続いて線形に結合され得る。そのような線形結合は高速に実行され得る。更に、サブピクセル・カバレッジ値を含むテキスト情報は前もってキャッシュされ、アニメーションに続いて、単に取り出されて、重なり合う表示要素に関する情報と結合され得る。単に結合を実行することは、インターフェースのレンダリングを迅速に処理し、インターフェースをユーザが見て操作するのに好ましいものとすることができる。
【００２１】
加えて、出願人は、幾つかの従来のグラフィクス処理ユニット（ＧＰＵ）が、色情報の線形結合を含む幾つかのレンダリング動作を実行するよう特に構成され、それらの動作を高速に実行することができることに気付いた。ＧＰＵがテキスト及び他の重なり合う表示要素の色情報の結合のための動作を実行するよう構成され得る場合に、アニメーションに続くレンダリング動作は更に迅速に処理され得る。例えば、ＧＰＵがキャッシュされたサブピクセル・カバレッジ値のデータ構造に作用し、キャッシュされたサブピクセル・カバレッジ値をテキスト及び他の重なり合う表示要素のサブピクセル色情報と結合して、サブピクセルのコンポジット色値を決定するようプログラミングされる場合に、レンダリング動作は迅速に処理され且つインターフェースは改善され得る。
【００２２】
然るに、本願では、カバレッジ情報のキャッシングを可能にするために、レンダリングされるテキストに関するカバレッジ情報を計算する技術が記載される。幾つかの実施形態において、サブピクセル・アンチエイリアシング技術による使用のための処理されたカバレッジ値は、計算されてキャッシュされる。サブピクセル・カバレッジ値が処理後に後の使用のためにキャッシュされる場合に、サブピクセル・カバレッジ値は、処理された値がサブピクセルの色情報と結合又は関連づけされることなしに、コンピュータ装置のメインメモリ（例えば、システムメモリ又はビデオメモリ）に置かれてよい。処理されたカバレッジ値は、幾つかの実施形態において、ディスプレイの制御において使用されるコンポジット色値を計算するようテキストの色情報と１又はそれ以上の他の重なり合う表示要素の色情報との線形結合を可能にしてよい。ディスプレイのサブピクセルの制御において使用されるそのようなコンポジット色値は、幾つかの実施形態において、ガンマ補正処理を実行せずに計算され得る。
【００２３】
また本願では、キャッシュされたサブピクセル・カバレッジ値を取り出し、サブピクセル・カバレッジ値をテキスト及び他の重なり合う表示要素の色情報と結合して、サブピクセルのコンポジット色値を計算する技術が記載される。幾つかの実施形態において、少なくとも１つのグラフィクス処理ユニット（ＧＰＵ）は、サブピクセル・カバレッジ情報を用いて動作を実行するよう及びサブピクセルのコンポジット色値を計算するよう構成されてよい。幾つかの場合に、ＧＰＵは、別個に記憶されているテキストのサブピクセル色値及びテキストのサブピクセル・カバレッジ値に基づきサブピクセルのコンポジット色値を計算するよう構成されてよい。例えば、サブピクセル色値（ピクセルの赤、緑及び青色チャネルのための制御値であってよい。）は、サブピクセル・カバレッジ値とは異なるデータ構造において記憶されてよい。これは、ＧＰＵが、ピクセルの４つのフィールド／値、すなわち、ピクセルの３つの色値（赤、緑及び青）及び１つのカバレッジ値を有して単一のデータ構造において配置される単一のピクセルに関する入力情報を処理するよう元々から適合される場合であってよい。幾つかの実施形態において、サブピクセル・カバレッジ値によれば、ＧＰＵは、ピクセルの６つの値、すなわち、３つのサブピクセル色値（赤、緑及び青）及び３つのサブピクセル・カバレッジ値を処理する。ＧＰＵは、４値フォーマットにおいて配置される場合に効率的且つ高速に入力情報を処理することができる。効率的な処理のために４値フォーマットにデータを置くよう、幾つかの実施形態において、ピクセルの色値は、ピクセルのカバレッジ値から分離され、異なるデータ構造に置かれる。幾つかの場合に、３つの色値は、１つの４値データ構造に置かれてよく、３つのサブピクセル・カバレッジ値は、異なる４値データ構造に置かれてよい。ＧＰＵは次いで、２つのデータ構造を用いて単一のピクセルについての情報を処理するよう構成されてよく、このとき、従来通りにＧＰＵは単一のデータ構造を用いて単一のピクセルについての全ての情報（色値及びカバレッジ値）を処理する。
【００２４】
これらの技術の様々な例となる実施は以下で記載される。なお、当然のことながら、実施形態は、如何なる適切な態様においても実施されてよいので、論じられているそれらの例となる技術のいずれかを実施することに制限されない。
【００２５】
上述されたように、本願で記載される技術は、テキストが表示される場合にディスプレイのピクセル及びサブピクセルを制御するコンポジット色値の決定において使用されてよい。幾つかの場合に、テキストは単独で表示されてよく、サブピクセル・カバレッジ値は、コンポジット色値を計算する場合にテキストの色情報のみを変更する際に使用されてよい。しかし、他の場合に、テキストは、１又はそれ以上の他の表示要素と重なり合って表示されてよく、サブピクセル・カバレッジ値は、テキスト及び他の表示要素の夫々の色情報に基づきコンポジット色値を計算する場合に使用されてよい。実施形態は、何らかの特定の表示要素又はタイプの表示要素と重なり合うテキストについてコンポジット色値を計算することに制限されない。様々な実施形態において、重なり合う表示要素は、テキストの上又はテキストの後ろに表示されるべき１又はそれ以上のグラフィクスであってよく、あるいは、他のテキストであってよい。記載の簡単のために、以下の例では、サブピクセル・カバレッジ値は、テキストが他の表示要素と重なり合う場合にコンポジット色値を計算する際に使用されるよう記載され、他の重なり合う表示要素は、背景グラフィクスとして記載される。なお、当然のことながら、別なふうに示されない限り、これらの例となる技術のいずれも、重なり合う表示要素の他のタイプ、又はテキストが何れの他の表示要素とも重なり合わない場合とともに使用されてよい。
【００２６】
本願で記載される技術は、テキストと重なり合う表示要素との間の関係が変化する場合にテキストを効率的且つ高速に表示するのに有用であり得る。そのような関係は、テキストがユーザインターフェースにおいて動く場合を含め、テキスト又は重なり合う表示要素が互いに対して動く場合に変化し得る。例えば、本願で使用される技術は、テキストが背景グラフィクス上をスクロールされる場合に有用であり得る。それらの技術はまた、背景グラフィクスがテキストに対して動かされる場合、又はテキストが重なり合う画像が変化する場合に使用されてよい。記載の簡単のために、以下の例は、テキストが背景グラフィクスに対して動く場合にテキストをレンダリングすることに関連して与えられる。なお、当然のことながら、それらの技術は、テキストに対する如何なる変化にも関連しないテキストの表示要求に応答すること、又はいずれかの相対変化に応答することを含め、何らかの理由によりテキストをレンダリングするのに有用であり得る。
【００２７】
幾つかの実施形態は、ＭＩＣＲＯＳＯＦＴ（登録商標）ＣＬＥＡＲＴＹＰＥ（登録商標）サブピクセル・アンチエイリアシング技術のようなサブピクセル・アンチエイリアシング技術とともに動作してよい。サブピクセル・アンチエイリアシング技術は、ディスプレイのピクセルが複数のサブピクセル発光部品を含むディスプレイとともに動作してよい。本願で記載されるテキストレンダリング技術は、当該技術で知られているような技術を含む何れかのサブピクセル・アンチエイリアシングとともに使用されてよい。
【００２８】
図１Ａは、幾つかのサブピクセル・アンチエイリアシング技術が動作することができるディスプレイの例をブロック図形式で表す。図１Ａのディスプレイ１００は、ピクセル１０２を含む５×７のピクセルのアレイを含む。ディスプレイ１００のピクセルの夫々は３つのサブピクセルを含み、サブピクセルの夫々は特定の色の光を生成するよう配置される。ディスプレイ１００の第１の行は、図１Ａにおいて、各サブピクセルが生成するよう構成される光の色、すなわち、赤（Ｒ）、緑（Ｇ）又は青（Ｂ）により標識されている。ピクセル１０２は例えば、赤色サブピクセル１０２Ａ、緑色サブピクセル１０２Ｂ及び青色サブピクセル１０２Ｃを含む。
【００２９】
ディスプレイのサブピクセルは、ピクセルが全体として特定の色又は強さの光を放射するように制限され得る。例えば、夫々特定の量の光を放射するよう赤、緑及び青色サブピクセルを制御することによって、紫色の光がピクセルから全体として放射され得る。グレースケール・アンチエイリアシング及び他のカバレッジ技術によれば、単一のカバレッジ値がピクセルに対して全体として設定され、サブピクセルの夫々についての色値を調整するために使用される。しかし、サブピクセル・アンチエイリアシング技術によれば、サブピクセルの夫々は、代わりに、個々のカバレッジ値を割り当てられ、それにより、各サブピクセルによって出力される光は、各サブピクセルによる効果を作り出すよう制御され得る。特に、サブピクセルは夫々、重なり合う背景グラフィクスと溶け合うグリフの外観を作り出すよう平滑効果を与えるのに使用されるカバレッジ値を割り当てられてよい。ピクセルが全体として、サブピクセル・カバレッジ値を用いて調整される色値により制御される場合に、サブピクセルは所望の融合効果を作り出す。
【００３０】
図１Ｂは、カバレッジ値を個々のサブピクセルへ割り当てることによって融合効果を生み出す例を示す。図１Ｂは、図１Ａのディスプレイ１００のサブピクセルに夫々対応するカバレッジ値のマッピング１１０を示す。マッピング１１０は、‘Ａ’グリフが表示される場合に如何にしてカバレッジ値が割り当てられ得るかを示す。グリフが表示される場合に、マッピング１１０は、ディスプレイ１００での表示のためにグリフをレンダリングするよう他の情報と結合されてよい。
【００３１】
マッピング１１０において、ディスプレイのサブピクセルは、異なるカバレッジ値を割り当てられる。ピクセル１１２の例において示されるように、１つのピクセルのサブピクセルの夫々は、異なるカバレッジ値を割り当てられてよい。各サブピクセルに割り当てられるカバレッジ値は、背景グラフィクスとの融合効果を生み出すように、サブピクセルを用いて表示されるテキスト色の透明度を制御するために使用されてよい。上述されたように、テキストのためのカバレッジ値は、コンポジット色の計算においてテキスト色を重み付けすることによってテキスト色及び背景グラフィクスの色に基づきコンポジット色を決定する場合に、使用されてよい。サブピクセルが特定の色の光（例えば、赤、緑又は青色の光）を放射するところのサブピクセル・カバレッジ値の場合に、サブピクセル・カバレッジ値は、各サブピクセルから放射される光の量又は光の強さを決定するためにテキスト色及び背景グラフィクス色とともに使用されてよい。
【００３２】
サブピクセル・カバレッジ値により光の量／強さを設定することにより、融合効果がディスプレイで表示されるテキストのために与えられ得る。この融合効果は、上述されたように、テキストのエッジを和らげ且つテキストをヒトが見るのにより好ましいものとならしめる。
【００３３】
当然のことながら、図１Ａ及び１Ｂの例で与えられているサブピクセルの数、色及び順序付けは単に例示にすぎない。実施形態はそれらの点において制限されないので、実施形態は、他の色のサブピクセル（例えば、黄色のサブピクセル）とともに、ピクセル毎のより多い若しくはより少ないサブピクセル（例えば、４つのサブピクセル）とともに、及び／又は何らかの他の方法において配置されたピクセル（例えば、赤−緑−青ではなく青−赤−緑の順）とともに、動作してよい。
【００３４】
更に、実施形態はまた、何らかの特定のタイプのグラフィカルインターフェース、ディスプレイ又はコンピュータ装置とともに動作することに制限されない。本願で記載される技術は、何らかの適切なディスプレイにおいて示される何らかのグラフィカルインターフェースのためのテキストのレンダリングの部分として使用され得る。更に、グラフィカルインターフェース及びディスプレイは何らかの適切なコンピュータ装置とともに実施され得る。実施形態が動作することができるコンピュータ装置の例には、ラップトップ若しくはデスクトップ型パーソナルコンピュータ、携帯電話機、スマートフォン及びパーソナルデジタルアシスタント（ＰＤＡ）を含む携帯型コンピュータ、タブレット型コンピュータ、並びにサーバがある。
【００３５】
幾つかの実施形態が動作することができるコンピュータ装置の例が図２において表されている。図２のブロック図は、例となるコンピュータ装置２００の幾つかの構成要素を示す。示されるように、コンピュータ装置２００は１又はそれ以上の実行処理２０２（本願では、より簡単に“処理”２００とも呼ばれる。）を含み、処理の夫々は、内容がディスプレイで表示されることを要求するようグラフィクスエンジン２０４と相互作用してよい。表示されるコンテンツは、アンチエイリアシング技術を用いてグラフィクスエンジン２０４によってレンダリングされ得るテキストを含んでよい。ディスプレイでの表示のための、テキストを含むコンテンツのレンダリングの部分として、グラフィクスエンジン２０４は、レンダリングに関連する幾つかの動作を実行するよう少なくとも１つのグラフィクス処理ユニット（ＧＰＵ）２０６と相互作用してよく、加えて、幾つかの情報をメモリ３０８に記憶してよい。
【００３６】
処理２０２は、実施形態がこれに関連して制限されないので、如何なるタイプの処理又は機能も実行する如何なる適切な処理であってもよい。処理の例には、アプリケーションソフトウェア、システムソフトウェア、及び／又は他のタイプのソフトウェアに関連する処理がある。各処理の機能は、処理２０２の他の機能を操作又はプロンプトするようユーザによって用いられ得るグラフィカルユーザインターフェース（ＧＵＩ）の少なくとも一部を制御及び／又は表示するための機能を含んでよい。ＧＵＩはテキストを含んでよく、その場合に、ＧＵＩを表示することは、ＧＵＩにおいてテキストを表示することを含んでよい。実施形態は、何らかの適切なフォーマットにおいてテキストを表示するＧＵＩに制限されず、且つ、何らかの適切なフォーマットにおいて存在するテキストに制限されない。テキストが英語のテキストである場合に、テキストは文字及び句読点の組み合わせを含んでよい。テキストが他の言語である場合に、他の形態の他の文字が使用されてよい。
【００３７】
ＧＵＩがテキストを含む場合に、ＧＵＩは、幾つかの場合にまた、テキストのアニメーションを可能にしてよい。そのようなアニメーションに応答して、テキストはディスプレイにおいて調整されてよい。そのような調整は、背景グラフィクスに対してテキストを動かすこと、テキストに対して背景グラフィクスを動かすこと、若しくは背景を変化させること、又は上述された何らかの他の適切な調整のような、インターフェースの他の表示要素に対してテキストの位置又はサイズを変化させることを含む。従って、ＧＵＩを表示することは、例えば、他の表示要素に対して新しい位置にあるテキストにより、ＧＵＩの表示を更新することを含んでよい。
【００３８】
ＧＵＩの表示を表示又は更新するよう、処理２０２はグラフィクスエンジン２０４と相互作用してよい。グラフィクスエンジン２０４は、表示のためにグラフィクスをレンダリングするようコンピュータ装置２００によって実行される機能の少なくとも一部を実施してよい。幾つかの実施形態において、グラフィクスエンジン２０４は、表示のためにレンダリングされるテキストに関するサブピクセル・カバレッジ値を決定するようアンチエイリアシング機関として動作してよい。幾つかの実施形態において、グラフィクスエンジン２０４は更に、グラフィカルインターフェースにおける表示のためにテキストを準備するようテキストのラスタ画像を生成する機能を有してよい。そのようなラスタ画像は、ビットマップを含む如何なる適切なフォーマットであってもよい。更に、幾つかの実施形態において、グラフィクスエンジン２０４は、表示されるテキストに関する情報を背景グラフィクスのような他の表示要素に関する情報と結合し、例えば、ディスプレイを制御する際に使用されるコンポジット色情報を決定することによって、ディスプレイでの表示のための結合を準備してよい。幾つかの実施形態において、グラフィクスエンジン２０４は、ＭＩＣＲＯＳＯＦＴ（登録商標）Ｄｉｒｅｃｔ２ｄ及び／又はＤＩＲＥＣＴＸ（登録商標）グラフィクスライブラリの一部を実施してよく、それらグラフィクスライブラリの夫々は、ワシントン州レドモンドのマイクロソフト・コーポレーションから市販されている。グラフィクスエンジン２０４の機能は如何なる適切な態様においても実行されてよい。幾つかの実施形態において、グラフィクスエンジン２０４の機能は全体として、コンピュータ装置２００の少なくとも１つの中央演算処理装置（ＣＰＵ）によって実行される命令を介して実行されてよい。他の実施形態においては、その機能の少なくとも一部は、１又はそれ以上のＧＰＵ２０６によって実行される命令を介して実行されてよい。少なくとも幾つかの機能がＧＰＵ２０６により実行される場合に、ＧＰＵ２０６は、機能を実行するようグラフィクスエンジン２０４によって構成され、及び／又は特定の命令を実行するよう構成されてよい。
【００３９】
然るに、ユーザと相互作用するためのＧＵＩを表示し更新するよう、処理２０２はグラフィクスエンジン２０４と相互作用してよい。グラフィクスエンジン２０４との相互作用により、処理２０２は、処理２０２がディスプレイで表示したいと望むＧＵＩのコンテンツをグラフィクスエンジン２０４に知らせてよい。ＧＵＩのコンテンツに関する情報は、表示要素の形状、サイズ、位置及び色を含め、ＧＵＩに含まれる表示要素の如何なる適切な特性も含んでよい。例えばユーザ入力に応答してＧＵＩが更新される場合に、それらの特性のいずれか又は全ては処理２０２とグラフィクスエンジン２０４との間で再び通信されてよい。表示要素に関する情報は、如何なる適切な態様においても処理２０２とグラフィクスエンジン２０４との間で通信されてよい。例えば、幾つかの実施形態は、処理２０２とグラフィクスエンジン２０４との間でデータを交換するために１又はそれ以上のアプリケーション・プログラミング・インターフェース（ＡＰＩ）関数呼び出しを用いてよい。
【００４０】
上述されたように、本願で記載される技術は、ディスプレイで示されるインターフェースにテキストをレンダリング及び表示する際に使用されてよい。然るに、幾つかの実施形態において、処理２０２は、テキストがＧＵＩにおいて表示されること及び／又はテキストの表示が更新されることを要求するようグラフィクスエンジン２０４と相互作用してよい。如何なる適切なテキストも、実施形態がこの点において制限されないので、如何なる適切な様式においてもインターフェースにおいて表示されてよい。
【００４１】
本願で記載される技術に従って、テキストがディスプレイに表示される要求を処理２０２がグラフィクスエンジン２０４へ送る場合に、グラフィクスエンジン２０４は、如何にしてテキストがインターフェースにおいて表示されるのかを決定してよい。如何にしてテキストを表示すべきかを決定するためにグラフィクスエンジン２０４によって実行され得る例となる動作は、図３乃至７に関連して以下で詳細に論じられる。しかし、手短に述べると、グラフィクスエンジン２０４は、グリフ記述のデータ記憶２０４Ａに基づき、ディスプレイに表示されるテキストに対応する形状を特定してよい。上述されたように、テキストは文字の如何なる適切な組み合わせも有してよく、グリフは文字の全て又は一部であってよい。コンピュータ装置は、文字を描く際に使用されるグリフの線又は点のような、如何にしてグリフの形状を描画すべきかを指示するグリフ記述のデータ記憶２０４Ａを含んでよい。グリフの形状は、実施形態がこの点において制限されないので、グリフの画像又はグリフの形状の数学的記述を含む何らかの適切な記述に基づき特定されてよい。
【００４２】
データ記憶２０４Ａの記述から、グラフィクスエンジン２０４は、ディスプレイにテキストを表示するために使用されるディスプレイのピクセル及びサブピクセルへのグリフ形状のマッピングを決定してよい。そのようなマッピングの例は、図１Ｂにおいて例示されて上述された。次いで、グラフィクスエンジン２０４は、テキストの表示において使用されるサブピクセル・カバレッジ値を、サブピクセル・アンチエイリアシング技術を用いて計算してよい。
【００４３】
幾つかの実施形態において、グラフィクスエンジン２０４がテキストのサブピクセル・カバレッジ値を計算する場合に、サブピクセル・カバレッジ値は、それらの値がキャッシュされ、その後に、テキストがＧＵＩで表示又は更新される場合にキャッシュから取り出され得るように、計算されてよい。例えば、幾つかの実施形態において、サブピクセル・アンチエイリアシング技術を用いてテキストについて計算されたサブピクセル・カバレッジ値は、処理されたカバレッジ値を得るよう、キャッシュされる前に処理されてよい。処理は、アンチエイリアシング技術を用いて計算された初期カバレッジ値に補正値を適用することによって補正値を変更することを含んでよい。補正値は、カバレッジ値のキャッシングとキャッシュされたカバレッジ値の使用とを可能にするように、如何なる適切な方法においても初期カバレッジ値を補正してよい。幾つかの実施形態において、補正値は、テキストと重なり合うグラフィクスとの合成に対して、該合成がインターフェースで表示される前に実行され得るガンマ補正処理をその後に実行する効果を再現するように、初期カバレッジ値を変更してよい。カバレッジ値をキャッシュする前にガンマ補正処理の効果を再現することによって、キャッシュされたカバレッジ値は、テキストが表示されるディスプレイの非線形性を補償するよう調整され得る。ディスプレイのそのような非線形性は、上述されたように、テキスト及び重なり合うグラフィクスの色値が線形に結合されることを妨げる。カバレッジ値をキャッシュする前にそのような非線形性を補償することによって、サブピクセル・カバレッジ値がキャッシュから取り出される場合に、値は、ガンマ補正処理を実行せずにテキスト及び背景グラフィクスに関する色情報と結合され得る。従って、グラフィクスエンジン２０４は、たとえテキストの色値が補正を知らせるために使用され得るとしても、カバレッジ値がサブピクセルのテキスト色値と組み合わされていない状態で、直接にサブピクセル・カバレッジ値に対してカバレッジ補正処理を実行してよい。カバレッジ補正処理を実行する部分として、グラフィクスエンジン２０４は、カバレッジ補正値のデータ記憶２０４Ｂから補正値を取り出してよい。カバレッジ値を補正するためにグラフィクスエンジン２０４によって使用され得る技術は、図５に関連して以下で詳細に論じられる。
【００４４】
グラフィクスエンジン２０４が、何らかの適切な処理を通じて、処理されたカバレッジ値を計算した場合に、処理されたカバレッジ値はグラフィクスエンジン２０４によってデータ構造２１０へ書き込まれてよい。如何なる適切なデータ構造も使用されてよい。幾つかの実施形態において、データ構造２１０は、表示要素に関する色情報を記憶するよう構成され且つＧＰＵが元々から処理するよう適合される４値グラフィクス構造であってよい。４値データ構造は、サブピクセル毎に１つである３つの色値と、ピクセル全体のためのカバレッジ値とを記憶してよい。そのような構造の例は、青−緑−赤−アルファフォーマットにおいて３つの色値（青、緑及び赤）及びカバレッジ（“アルファ”）値を記憶するＢＧＲＡデータ構造である。ＢＧＲＡ構造は、４つの異なる値の夫々について８ビットを使用してよい。
【００４５】
ＧＰＵは、情報がそのような４チャネルフォーマットにあり、色値のための３つのチャネル及びカバレッジ値のための第４のチャネルを有する場合に、有効にグラフィクスに関する情報を処理するよう適合される。ＧＰＵは、ＧＰＵの動作及びＧＰＵのハードウェアレジスタがこのフォーマットにおいて値を記憶し且つこのフォーマットにおいて値を操作するよう予め構成されるので、このフォーマットにおける情報を有効に処理することができる。従って、サブピクセルのためのカバレッジ情報をキャッシュするために本願で記載される技術に従って４値構造が使用されるならば、４値フォーマットにおけるデータは、他のフォーマットにおけるデータよりも容易にＧＰＵによって処理され得る。
【００４６】
然るに、幾つかの実施形態において、ＢＧＲＡ構造は、サブピクセル・カバレッジ値を記憶するために使用されてよい。なお、上述されたように、本願で記載される技術を用いてピクセルの色情報を決定するよう、６つの値がピクセルについて使用され得る。すなわち、ピクセルのサブピクセルのための３つの色値（赤、緑及び青）及びピクセルのサブピクセルのための３つのカバレッジ値である。４値構造がサブピクセル・カバレッジ値を記憶するために使用される実施形態において、６つの値は１つのデータ構造において記憶され得ない。然るに、幾つかの実施形態において、色制御情報は、例えば、異なる４つ構造において別個に記憶されてよく、それにより、各ピクセルは２つの異なる４値構造に関連付けられてよい。そのような場合に、１つの４値構造は、カバレッジ値を記憶するために使用され得、第２の４値構造は、色値を記憶するために使用され得る。
【００４７】
ＧＰＵが高速且つ効率的に４値構造において値を処理するよう適合される場合に、ＧＰＵは、４値構造の対応する位置にある値が互いに関連付けられる場合にそうするよう適合されてよい。例えば、ＧＰＵは、各４値構造の第１の値が青色サブピクセルに関する場合にデータを高速に処理するよう適合されてよい。然るに、幾つかの実施形態において、６つの値は２つの異なる４値データ構造において記憶されてよく、一方、それらの値は１つの構造における４つの値と他の構造における２つの値とに分割され得ない。値がこのようにして分割されるならば、それらの値の１つは、関連する値の位置に対応しない４値構造における位置に置かれる。例えば、３つの色値（青、緑及び赤）及び１つのカバレッジ値（青）が４値データ構造において配置されるならば、データ構造における青の色値の位置は青のカバレッジ値の位置に対応しないこととなる。幾つかのＧＰＵは、ＧＰＵが元々は、異なる位置に記憶された青の色値及びカバレッジ値を処理するよう構成されないので、このようにして記憶された色値及びカバレッジ値を高速且つ効率的に処理することができない。然るに、ピクセルについての３つの色値及び３つのカバレッジ値が分けられる場合に、色値は１つのデータ構造に記憶されてよく、カバレッジ値は異なる構造に記憶されてよい。幾つかのそのような場合に、４値データ構造の夫々における１つの値は空のままであってよい。
【００４８】
なお、当然のことながら、他のデータ構造フォーマットが使用されてよい。例えば、ＲＧＢＡ構造のような、異なるフォーマットにおいてデータを体系化する他の４値フォーマットが使用されてよい。他の例として、異なる数のチャネルを有するデータ構造が使用されてよい。幾つかの実施形態において、３チャネルデータ構造（例えば、ＢＧＲ構造）がカバレッジ値を記憶するために使用されてよい。他の実施形態においては、６チャネルデータ構造が使用されてよく、このデータ構造は、３つの異なるサブピクセルの夫々についてサブピクセル・カバレッジ値及び色値の両方を記憶することができる（例えば、赤、緑及び青のサブピクセル毎に２つの値）。
【００４９】
構造２１０のフォーマットにかかわらず、処理されたカバレッジ値がグラフィクスエンジン２０４によって生成される場合に、処理されたカバレッジ値はデータ構造２１０へ出力されてよい。出力され得るカバレッジ値は、ピクセルの各サブピクセルのカバレッジ値を含む。例えば、青のカバレッジ値、緑のカバレッジ値、及び赤のカバレッジ値が生成されて記憶されてよい。データ構造が色に特有のチャネルを含む場合、サブピクセル・カバレッジ値は対応するチャネルに記憶されてよい。例えば、ＢＧＲＡ構造によれば、通常は青色チャネルのための色制御情報を記憶するＢチャネルは、青のサブピクセル・カバレッジ値を記憶するために使用されてよい。
【００５０】
次いで、データ構造２１０は、如何なる適切な方法においても使用されてよい。カバレッジ値をキャッシュするよう、データ構造２１０はメモリ２０８において、例えば、テキストのためのカバレッジ値のキャッシュ２０８Ａにおいて、記憶されてよい。メモリ２０８は、ランダムアクセスメモリ（ＲＡＭ）又は記憶ドライブを含め、情報がキャッシュされ得る如何なる適切なメモリであってもよい。ＲＡＭの例には、システムメモリ及びビデオメモリがある。記憶ドライブの例には、ハードディスクドライブ及びソリッドステートドライブ（ＳＳＤ）がある。データ構造２１０はまた、グラフィクスに関連する動作における使用のためにＧＰＵ２０６へ送られてよい。例えば、データ構造２１０は、レンダリング処理の部分としてＧＰＵ２０６へ送信されてよい。レンダリング処理の部分として、ＧＰＵ２０６は、各ピクセルにより表示される表示要素に基づきディスプレイのサブピクセル毎のコンポジット色情報を決定してよい。テキストを表示するピクセルに関し、構造２１０に記憶されるサブピクセル・カバレッジ値は、コンポジット色値を決定するためにＧＰＵ２０６によって使用されてよい。
【００５１】
幾つかの実施形態において、グラフィクスエンジン２０４は、構造２１０に記憶されるカバレッジ値を処理することができるようＧＰＵ２０６を設定してよい。上述されたように、ＧＰＵ２０６は元々は、ＢＧＲＡ構造のような４チャネルデータ構造を処理するよう適合されてよいが、ＧＰＵ２０６は、カバレッジ値ではなく、そのようなフォーマットにおける色値を処理するよう適合されてよい。幾つかの実施形態において、従って、ＧＰＵ２０６がカバレッジ値を処理するよう、ＧＰＵ２０６は特定の方法において構造２１０を使用する構成されてよい。ＧＰＵ２０６は、テキストのための変更された色値と背景グラフィクスのための色値との間を補間する前にテキストのための色値を変更するために構造２１０を使用するよう構成されてよい。例えば、ＧＰＵ２０６は、幾つかの場合に、ＢＧＲＡ構造の青色、緑色及び赤色チャネルの夫々からサブピクセル・カバレッジ値を取り出して、アルファ値からはデータを取り出さないよう構成されてよい。ＧＰＵ２０６は更に、テキストのための変更された色を得るために、それらのサブピクセル・カバレッジ値に別個のＢＧＲＡ構造内の青色、緑色及び赤色チャネルにおける色値を乗じるよう構成されてよい。ＧＰＵ２０６はまた、上述されたように、ディスプレイのサブピクセルを制御するためのコンポジット色値を得るために、変更された色値を背景グラフィクスの色情報と結合するよう構成されてよい。カバレッジ値及び色値の両方を記憶する６チャネルフォーマットのような、４チャネル構造を使用せず代わりに他のフォーマットを使用する他の実施形態においては、ＧＰＵ２０６は、如何なる適切な方法においても、そのようなフォーマットにおけるデータを使用するよう構成されてよい。
【００５２】
グラフィクスエンジン２０４は、ディスプレイにおけるコンテンツの表示に関する処理２０２からの何らかの適切な入力に応答して何らかの適切な動作を取ってよい。幾つかの実施形態において、グラフィクスエンジン２０４は、表示されるテキストのコンテンツ及びテキストが表示される色を処理２０２から受信したことに応答して、テキストのためのカバレッジ値を計算しキャッシュしてよい。グラフィクスエンジン２０４は、幾つかの場合に、テキスト及びフォント色の受信に応答してテキストをレンダリング又は表示しなくてよい。代わりに、グラフィクスエンジン２０４は、サブピクセル・カバレッジ値を計算し、次いで、データ構造２１０を生成し、例えば、メモリ２０８のキャッシュ２０８Ａにデータ構造２１０を記憶することによって、カバレッジ値を記憶してよい。幾つかの実施形態において、グラフィクスエンジン２０４はまた、この時点でフォント色情報をキャッシュしてよい。後に、グラフィクスエンジン２０４は、例えば、テキストが背景グラフィクスに対してユーザインターフェースにおいて動かされる場合に、ディスプレイの特定の位置でテキストをレンダリングする要求を処理２０２から受け取ってよい。グラフィクスエンジン２０４がフォント色をキャッシュしない場合、テキストをレンダリングする要求がまたテキストのフォント色を含んでよい。グラフィクスエンジン２０４が処理２０２から位置情報を受信する場合に、グラフィクスエンジン２０４は、キャッシュ２０８Ａ内のデータ構造２１０においてキャッシュされているテキストのサブピクセル・カバレッジ値を取り出し、キャッシュされたカバレッジ値を用いてその位置に対応するディスプレイのピクセル及びサブピクセルについてコンポジット色値を計算するようＧＰＵ２０６を操作してよい。
【００５３】
モデムユーザインターフェースは、上述されたように、ユーザがユーザインターフェース要素の多くのアニメーションを実行することを可能にしてよい。本願で記載される技術は、サブピクセル・カバレッジ値のキャッシングを可能にすることによって、そのようなアニメーションに続いてディスプレイへのテキストのより速いレンダリングを可能にしてよい。以前は、テキストがアニメーションに続いて再レンダリングされる度に、カバレッジ値がテキストの新たな位置について決定される必要があり、その後に、カバレッジ値はテキスト及び重なり合うグラフィクスのコンポジット色値を決定するのに使用され、その後に、コンポジット色値はディスプレイの非線形性を補償するようガンマ補正された。この処理は集中的であり、アニメーションに対するインターフェースの反応を減速させる。幾つかの実施形態において、代わりに、テキストのためのサブピクセル・カバレッジ値は、非線形性を補償するために予め変更されており、記憶され、取り出しのために利用可能である。テキストが再レンダリングされる場合に、サブピクセル・カバレッジ値は単に取り出され、再レンダリングされるテキスト及び背景グラフィクスのための色情報と結合される。そのような処理はより効率的であり、ＧＰＵが元々処理するよう適合されるデータ構造に対して線形動作を用いて行われてよく、動作をＧＰＵにおいて高速に実行可能とする。然るに、再レンダリング処理は、なおさら効率的にされ得る。
【００５４】
上述されたように、グラフィクスエンジン２０４は、テキストが最初にレンダリングされる場合に、サブピクセル・カバレッジ値を計算してサブピクセル・カバレッジ値をキャッシュするよう、及びテキストが再レンダリングされる場合に、キャッシュされたサブピクセル・カバレッジ値を用いてピクセルのコンポジット色値を決定するよう、如何なる適切な動作も実行してよい。幾つかの実施形態において、グラフィクスエンジン２０４は、それらの動作の少なくとも一部を実行するよう、少なくともキャッシュされたカバレッジ値及び命令をＧＰＵ２０６へ送ることによりＧＰＵ２０６を操作してよい。
【００５５】
図３は、カバレッジ値を計算しキャッシュするためにグラフィクスエンジンが（幾つかの実施形態において、ＧＰＵを従うよう構成することによって）実行してよい処理の一例を表す。図３の処理３００の開始の前に、コンピュータ装置の少なくとも１つのプロセッサで実行している実行処理は、コンピュータ装置に付随するディスプレイで表示されるテキストに関する情報をグラフィクスエンジンへ送信していてよい。テキストに関する情報は、表示されるテキストのコンテンツを含んでよい。コンテンツは、文字の例として表されるか又は何らかの他の適切な形をとるテキスト自体であってよい。テキストに関する情報はまた、幾つかの場合に、テキストの色、テキストの位置、又は如何にしてテキストが表示されるのかに関する何らかの他のパラメータのような、テキストの表示特性を含んでよい。なお、他の実施形態においては、テキストの幾つかのパラメータは処理３００の前に受信されなくてよく、例えば、テキストが表示されるディスプレイでの位置がある。どのような情報が受信されるかにかかわらず、テキストに関する情報がグラフィクスエンジンによって受信されると、処理３００が開始する。
【００５６】
図３のフローチャートの最初の３つのブロック、すなわち、ブロック３０２、３０４及び３０６の動作は、既知の技術を用いて実行されてよい。然るに、それらの動作の詳細な議論は本願では不要である。しかし、実施形態が実施され得る方法の例示のために、それらの動作の簡潔な説明が与えられる。
【００５７】
ブロック３０２で、グラフィクスエンジンは、テキストのコンテンツに関して、表示されるグリフの形状を特定する。表示されるグリフの形状を特定することは、テキストを表示するために使用されるフォントのフォントライブラリから形状の記述を取り出すことを含んでよい。
【００５８】
グリフを表示するために使用される形状が取り出される場合に、ブロック３０４で、グラフィクスエンジンは、テキストを表示するために使用されるディスプレイのピクセルへの形状のマップを作成してよい。このマップは、各グリフの相対位置を定義し、従って、テキストがレンダリングされる場合に影響を及ぼされるディスプレイのピクセルの位置を定義する。このマップは、ブロック３０６で、サブピクセルのカバレッジ値を設定するために使用される。既知の技術を含む何らかの適切な技術によれば、形状のマップは、夫々のピクセルに関する情報と、各ピクセルがグリフの夫々の形状を描くために使用されるかどうかとにより、作成されてよい。幾つかの場合に、夫々のピクセルに関する情報は、そのピクセルがグリフの形状を表すために使用されるかどうかを示すyes又はnoの２値であってよい。そのような２進値を用いる幾つかの場合に、マップは、ディスプレイのピクセル毎に１ビットを用いてそのピクセルがマップを描くのに使用されるかどうかを示すワンビット・パー・ピクセル（one-bit-per-pixel）マップであってよい。２進値を用いる他の場合に、マップは、テキストの２つの次元のうちの一方又は両方においてオーバーサンプリングされてよい。例えば、既知のＣＬＥＡＲＴＹＰＥ（登録商標）技術を用いると、オーバーサンプリングされたマップは、グリフ形状の少なくとも一部を表すために使用されるピクセル毎にグリフ形状から複数の“サンプル”を取ることによって、作成されてよい。ＣＬＥＡＲＴＹＰＥ（登録商標）は、オーバーサンプリングの量に対応する同等の領域、すなわち、６×１個の領域（すなわち、垂直方向における単一の行において、水平方向に６つの領域）又は６×５個の領域（すなわち、垂直方向における５つの行において、水平方向に６つの領域）に分割されるピクセルを考えることによって、サンプルを取る。グリフの形状がピクセル及びピクセル毎に特定される同等の領域と比較される場合に、２進値は、形状が特定の領域と重なり合うかどうかを示すために使用され得る。
【００５９】
グラフィクスエンジンは、グリフ毎に個々のマップを作成して、それらの個々のマップを、テキストのためのマップを作成するようマージすることによって、又はグリフをマージし、テキスト全体のマップを作成することによって、ブロック３０４のマップを作成することができる。なお、実施形態はこの点において制限されない。
【００６０】
マップがブロック３０４で作成されると、マップはブロック３０６で、テキストをレンダリングするために使用されるディスプレイのサブピクセルについてカバレッジ値を設定するために使用される。マップは、サブピクセル・アンチエイリアシングのための既知の技術を用いることを含め、カバレッジ値を設定するために如何なる適切な方法においても使用されてよい。例えば、既知の技術を用いると、カバレッジ値は、オーバーサンプリングされたマップの２進値に基づくことを含め、マップの２進値に基づき設定されてよい。オーバーサンプリングされたマップに関し、例えば、カバレッジ値は、サンプリングに従ってグリフの形状を表すために使用される領域の数に比例して、設定されてよい。オーバーサンプリングされたマップに基づきカバレッジ値を設定することは、既知の技術を用いることを含め、如何なる適切な方法においても行われてよい。なお、実施形態はこの態様において制限されない。例えば、サブピクセル・アンチエイリアシングに関し、カバレッジ値は、ピクセルのサブピクセルの夫々についてＣＬＥＡＲＴＹＰＥ（登録商標）技術を用いて決定されてよい。オーバーサンプリングが使用される場合、ピクセルの領域の幾つかはそのピクセルのサブピクセルの夫々に対応する。サブピクセルのためのカバレッジ値は、そのサブピクセルに対応する幾つのサンプルがグリフの形状に対応するのかに比例して設定され得る。サブピクセルがグリフの形状に対応するよりも多いサンプルに対応する場合、サブピクセルのためのカバレッジ値は、そのサブピクセルを用いてテキストのより暗いシェーディング／色を示すように設定され得る。反対に、サブピクセルがより少ないサンプルに対応する場合、カバレッジ値は、より明るいシェーディング／色を示すように設定され得る。
【００６１】
然るに、ピクセルが３つの水平方向に配置されたサブピクセルから成る場合、３つの異なるカバレッジ値が決定され得る。すなわち、サブピクセル毎に１つのカバレッジ値が決定され得る。幾つかの実施形態において、サブピクセル毎のカバレッジ値は、予備的なカバレッジ値に基づき計算されてよい。例えば、サンプルの複数の縦列がブロック３０４においてピクセル毎に取られ（例えば、上記の６×５サンプリングにおいて）、ピクセルが３つの水平方向に配置されたサブピクセルから成る場合に、複数のカバレッジ値が最初にサブピクセル毎に求められ得る。これは、先の６×１の例において見られるように、サンプルの列ごとに各サブピクセルのカバレッジ値を決定することによって行われてよく、これにより、サブピクセル毎に、サンプルの列ごとに１つである５つの予備的なカバレッジ値が得られる。次いで、それらの予備的なカバレッジ値は、サブピクセルのための予備的なカバレッジ値を平均化することを含め、サブピクセルについて単一のカバレッジ値を得るよう如何なる適切な方法においても結合されてよい。
【００６２】
ブロック３０２、３０４及び３０６の動作により、グラフィクスエンジンは、処理３００の開始の前に実行処理によって要求されたテキストを表示するために使用されるサブピクセルのためのサブピクセル・カバレッジ値の組を決定することができる。ブロック３０６で計算されたサブピクセル・カバレッジ値は、幾つかの実施形態においてそれらのカバレッジ値が、サブピクセルのための処理されたカバレッジ値を得るよう更に何らかの方法で処理され得るので、“初期”カバレッジ値であると考えられてよい。例えば、ブロック３０６で適用されるサブピクセル・アンチエイリアシング処理によって得られる初期カバレッジ値は、処理されたカバレッジ値を得るようユーザの好みに基づき調整されてよい。実施形態はこの点において制限されないので、如何なる他の処理も実行されてよい。然るに、ブロック３０８で、グラフィクスエンジンは、処理されたカバレッジ値を得るよう何らかの方法において初期カバレッジ値を処理する。
【００６３】
幾つかの実施形態において、ブロック３０８の処理により、カバレッジ値は、テキストに関する色情報（サブピクセル・カバレッジ値を含む。）が、更なる変更を必要とせずに、テキストとともに表示される背景グラフィクスのような他の表示要素に関する色情報と直接且つ線形に結合することを可能にするために、調整されてよい。従来の技術を用いると、カバレッジ値が、テキストを示すようディスプレイのサブピクセルを制御するためのコンポジット色値を決定するために、テキストに関する色情報及び背景画像に関する色情報とともに使用される場合に、余分の処理が結合を補正するために実行されなければならない。そのような余分の処理はガンマ補正を含んでよい。これは、上述されたように、テキスト及びグラフィクスの色情報が線形補間により結合される場合に、ヒトが結果として得られるコンポジット色値を正確であると認識しないためである。従って、補間の結果は、従来の技術を用いて、補正されたコンポジット色値を得るようガンマ補正処理の間に変更される。しかし、ブロック３０８の処理の間、グラフィクスエンジンは、ディスプレイの非線形性を補償して、限られたその後の処理によりテキストに関する色情報が背景グラフィクスに関する情報と結合されることを可能にするために、初期カバレッジ値を処理してよい。例えば、初期カバレッジ値は、色情報の線形結合がテキストを背景グラフィクスとともに表示するためのコンポジット色値を生じることを可能にするように変更されてよい。他の例として、初期カバレッジ値は、補間に続くガンマ補正処理の実行を削除するように変更されてよい。
【００６４】
グラフィクスエンジンは、ブロック３０８で如何なる適切な方法においてもカバレッジ値の如何なる適切な処理も実行してよい。実行され得る処理の例は、図５及び６に関連して以下で詳細に論じられる。
【００６５】
グラフィクスエンジンがカバレッジ値を処理して処理されたカバレッジ値を生じると、ブロック３１２で、グラフィクスエンジンは、処理されたカバレッジ値をキャッシュする。グラフィクスエンジンは、如何なる適切な方法においても、処理されたカバレッジ値をキャッシュしてよい。幾つかの実施形態において、グラフィクスエンジンは、処理されたカバレッジ値を、グラフィクス処理ユニット（ＧＰＵ）のハードウェア及び固有の動作の編成に整合するサイズ及び機構を備えたデータ構造においてキャッシュしてよい。例えば、グラフィクスエンジンは、３つの色値及び１つのカバレッジ値のためのフィールドを有する４値データ構造において、ディスプレイでテキストを表示するために使用されるピクセル毎の処理されたサブピクセル・カバレッジ値をキャッシュしてよい。４値データ構造において配置されると、カバレッジ値はコンピュータ装置のメモリに記憶されてよい。カバレッジ値は、コンピュータ装置のシステムメモリ、ビデオメモリ又は記憶ドライブを含むコンピュータ装置のメモリにおいて、レンダリングの間の後の使用のために、記憶されてよい。
【００６６】
ブロック３０８で処理されたサブピクセル・カバレッジ値がブロック３１２で記憶されると、処理３００は終了する。処理３００の後に、グラフィクスエンジンは、サブピクセル・カバレッジ値に関する何らかの適切な動作を取ってよい。幾つかの実施形態において、グラフィクスエンジンは、キャッシュされたサブピクセル・カバレッジ値の識別子を、そもそもテキストを供給した実行処理へ供給してよい。実行処理へ供給される識別子は、メモリにおけるキャッシュされたカバレッジ値のアドレス、又はグラフィクスエンジンによって使用され、グラフィクスエンジンがその後にキャッシュされたカバレッジ値を取り出すために使用することができる識別子を含む如何なる適切な識別子であってもよい。
【００６７】
グラフィクスエンジンはその後に、如何なる適切な方法においても、如何なる適切な時点でも、キャッシュされたカバレッジ値を使用することができる。グラフィクスエンジンはその後に、ディスプレイにテキストをレンダリング及び表示する要求を実行処理から受信してよい。実行処理は、何らかの適切な動作に続いて、又は何らかの適切な条件に応答して、要求を生成してよい。なお、実施形態はこの点において制限されない。幾つかの実施形態において、実行処理は、インターフェースを見るためのユーザ要求に応答して、又はインターフェースとのユーザインタラクションに応答して、テキストが表示されるよう要求してよい。ユーザインタラクションは、例えば、ユーザがテキストを動画化する場合のように、インタラクションがテキストへの変更をもたらす場合に、テキストの再表示又は表示の更新をプロンプトしてよい。例えば、テキストが背景グラフィクスに対してインターフェースにおいて動かされるか又は別なふうに動画化される場合に、テキストは再表示されてよい。ユーザとのインタラクションから生じないユーザインターフェースの他のアニメーションがテキストの再レンダリングをプロンプトしてよい。例えば、ユーザインターフェースが、ディスプレイをスクロールするテキストを示すよう構成される場合、テキストは、そのスクロールの間繰り返し再レンダリングされてよい。
【００６８】
実行処理からの要求の受信に応答して、グラフィクスエンジンは、カバレッジ値がキャッシュされているテキストを表示するよう様々な動作を実行してよい。図４の処理４００は、カバレッジ値がキャッシュされているテキストを表示するためにグラフィクスエンジンによって実施され得る技術の一例である。
【００６９】
処理４００の開始の前に、サブピクセル・カバレッジ値は、図３の処理３００によることを含む如何なる適切な方法においても作成され、処理され、キャッシュされていてよい。処理４００はブロック４０２で開始し、グラフィクスエンジンは、テキストをレンダリングするよう実行処理から少なくとも１つの命令を受信する。実行処理からの命令は、テキストのための何らかの適切な表示特性を含んでよい。幾つかの実施形態において、テキストに関する情報は、テキストが表示されるフォント色と、テキストが表示される位置とを含んでよい。命令はまた、予め決定されてキャッシュされたサブピクセル・カバレッジ値のための何らかの適切な識別子を含んでよい。幾つかの実施形態において、命令は、メモリにおけるキャッシュされたサブピクセル・カバレッジ値のアドレス、又はエンジンが値を取り出すために使用することができるキャッシュされたカバレッジ値のためのグラフィクスエンジンにより保持される識別子を含んでよい。
【００７０】
ＧＰＵがテキストを再レンダリングするためのコンポジット色値を決定することを可能にするよう、グラフィクスエンジンは、ブロック４０４で、テキストのためのキャッシュされたサブピクセル・カバレッジ値をグラフィクス処理ユニット（ＧＰＵ）に利用可能とする。幾つかの場合に、グラフィクスエンジンは、ブロック４０２の命令に応答してメモリからキャッシュされたカバレッジ値を取り出し、キャッシュされたカバレッジ値をＧＰＵがアクセス可能なメモリ位置に記憶してよい。他の場合に、グラフィクスエンジンは、ＧＰＵがアクセス可能なメモリ位置に、キャッシュされたカバレッジ値を予め置いておいてよい。キャッシュされたカバレッジ値がＧＰＵに利用可能とされた場合、グラフィクスエンジンは、幾つかの場合に、キャッシュされたカバレッジ値が依然としてＧＰＵに利用可能であることを確かにしてよい。テキストのためのカバレッジ値が利用可能にされると、ブロック４０６で、グラフィクスエンジンは、テキストと重なり合って表示されるインターフェースの１又はそれ以上の他の表示要素のための情報を、同様にしてＧＰＵに利用可能とする。１又はそれ以上の表示要素は、テキストとともに表示されてディスプレイの特定の位置でテキストと重なり合う背景グラフィクスを含んでよい。他の表示要素に関する情報は、他の表示要素を表示するディスプレイのピクセル又はサブピクセルのための色値を含んでよい。
【００７１】
上述されたように、２又はそれ以上の表示要素がグラフィカルインターフェースにおいて重なり合って表示される場合に、ディスプレイのピクセル毎の色値は、重なり効果を生み出すように表示要素の夫々の色に基づき計算される。コンピュータ装置のＧＰＵは、グラフィクスを即座にレンダリングすることに関連する様々な動作を実行するよう構成される。それらの動作に共通して、表示要素の夫々の色に基づきピクセルのコンポジット色を決定することがある。
【００７２】
ＧＰＵは通常、上記のＢＧＲＡデータ構造のような４値データ構造においてそのような動作を実行するよう構成されてよい。そのようなデータ構造は、３つのサブピクセルの夫々についての色値と、ピクセル全体についてのカバレッジ値とを有する。なお、ＧＰＵは通常、複数のサブピクセルの夫々についてのカバレッジ値を処理するよう構成されておらず、４値構造の色チャネル（すなわち、ＢＧＲチャネル）がサブピクセル・カバレッジ値を記憶するＢＧＲＡデータ構造を処理するよう適合されていない。代わりに、ＧＰＵは通常、それらのチャネルに記憶された色値を用いるよう構成される。しかし、幾つかの実施形態において、ブロック４１０で取り出されるサブピクセル・カバレッジ値は、テキストの色情報と背景グラフィクスの色情報とに基づきサブピクセルのコンポジット色値を決定する部分として、ＧＰＵによって処理されてよい。然るに、ブロック４０８で、ＧＰＵは、少なくとも３つのチャネルにおいてサブピクセル・カバレッジ情報を記憶する４値データ構造を処理するよう設定されてよい。ブロック４０８の設定は、如何なる適切な方法においても実行されてよい。幾つかの場合に、ブロック４０８の設定は、サブピクセル・カバレッジ値として４値データ構造において記憶されるデータを使用する、実行されるべき命令を、ＧＰＵに供給することを含んでよい。ＧＰＵは、サブピクセル・カバレッジ値をテキストの色情報と結合することを含め、如何なる適切な方法においてもそのような構造からのサブピクセル・カバレッジ値を使用してよい。
【００７３】
ＧＰＵがブロック４０８において設定されると、ブロック４１０で、ＧＰＵは、ＧＰＵが設定された命令を実行することができる。特に、ブロック４１０で、ＧＰＵは、テキスト及び背景グラフィクスを重なり合って表示するディスプレイのサブピクセルについてコンポジット色値を決定する。ＧＰＵは、サブピクセル毎に、そのサブピクセルのコンポジット色値を得るようテキストのカバレッジ値及び色値を背景グラフィクスの色値と結合してよい。幾つかの実施形態において、ＧＰＵは、テキストの色値とグラフィクスの色値との間の線形補間を実行してよい。そのような線形補間を実行するよう、ＧＰＵは、コンポジット色値を決定するようテキストの色値をグラフィクスの色値に加えてよく、テキストのサブピクセル・カバレッジ値は加算を重み付けするために使用される。例えば、ピクセルの色チャネル毎のサブピクセル・カバレッジ値は、背景グラフィクスの色値に加えられる前に、テキストの対応する色チャネル及びピクセルについての色値を乗じられてよい。加えて、又は代替的に、サブピクセル・カバレッジ値の補数が、テキストの色値に加えられる前に背景の色値を乗じられてよい。特に、幾つかの実施形態において、サブピクセルのためのコンポジット色値は、テキストの色値（Ｃ）にサブピクセル・カバレッジ値（α）を乗じ、背景の色値（Ｂ）にサブピクセル・カバレッジ値の補数（１−α）を乗じ、それらの積を足し合わせる（Ｃ×α＋（１−α）×Ｂ）ことによって、決定されてよい。
【００７４】
上述されたように、キャッシュされてブロック４０４においてキャッシュから取り出されるサブピクセル・カバレッジ値は、このようにしてテキストの色値と背景の色値との線形結合を可能にするように処理されていてよい。サブピクセル・カバレッジ値は、線形結合に続くコンポジット色値の更なる処理を制限又は削除するように処理されていてよい。例えば、サブピクセル・カバレッジ値は、線形補間の後のガンマ補正処理を不要とするように処理されていてよい。むしろ、サブピクセル毎のコンポジット色値が線形補間を通じて決定されると、それらのコンポジット色値は、テキスト及び背景グラフィクスを表示するのに使用されてよい。例えば、コンポジット色値は、ディスプレイを制御するよう直接に、又はコンポジット色値を他の表示要素に関する色情報と結合して更なるコンポジット色値を得るよう更なる動作において、使用されてよい。
【００７５】
然るに、コンポジット色値が、テキスト及び背景グラフィクスを表示するために使用されるディスプレイのサブピクセル毎に計算されると、ブロック４１２で、コンポジット色値は、ディスプレイにコンテンツを表示するために使用されてよい。コンテンツが表示されると、処理４００は終了する。
【００７６】
処理４００に続いて、ユーザは先と同じくインターフェースと相互作用してよく、インターフェースにおいてテキストを動画化してよい。テキストが先と同じく動画化される場合に、処理４００は、テキストのキャッシュされたサブピクセル・カバレッジ値に基づき、ディスプレイのサブピクセルの夫々についての新しいコンポジット値を決定するために、繰り返されてよい。
【００７７】
サブピクセル・カバレッジ値のキャッシングにより、重なり合うグラフィクスとともにテキストをレンダリングすることは、より効率的にされ且つより高速に動作してよい。レンダリングを実行するためのハードウェアにおける動作と、レンダリングするコマンドとは、同様により効率的にされ得る。例えば、幾つかの実施形態において、単一のＡＰＩ呼び出しが、キャッシュされたサブピクセル・カバレッジ値を下にあるグラフィクスと結合するよう行われてよい。例えば、単一のＡＰＩ呼び出しは、サブピクセル・カバレッジ値を目的の面と融合するよう行われてよい。なお、目的の面は、背景グラフィクスに関する色情報を用いて予め定義されている。更に、グラフィクス処理ユニットが４チャネルデータ構造において記憶されるサブピクセル・カバレッジ値を認識するよう設定されると、ＡＰＵ呼び出しによってトリガされる融合は、各サブピクセルに対する繰り返し動作によらずに、ディスプレイのサブピクセルに対する一回のパスによりＧＰＵによって実行されてよい。
【００７８】
図３に関連して上述されたように、初期サブピクセル・カバレッジ値がサブピクセル・アンチエイリアシング処理を用いてテキストについて決定される場合に、それらの初期カバレッジ値は、処理されたカバレッジ値をもたらすよう何らかの方法において処理されてよい。処理は、ユーザ好みに関連する処理、後に実行されるガンマ補正処理の必要性を削除若しくは低減することに関連する処理、又は何らかの他の処理を含んでよい。実施形態はこの点において制限されない。
【００７９】
図５及び６は、サブピクセル・カバレッジ値がキャッシュされる前に、サブピクセル・アンチエイリアシング技術を用いて決定される初期カバレッジ値を処理するために使用され得る処理の２つの例を示す。
【００８０】
図５の処理５００の開始の前に、グラフィクスエンジンは、表示されるテキストのコンテンツとテキストのフォント色とを受け取り、テキストのサブピクセル・カバレッジ値を計算する。処理５００により、それらのカバレッジ値は変更されてよい。
【００８１】
処理５００はブロック５０２で開始し、グラフィクスエンジンは、アンチエイリアシング技術に関するユーザ好みに基づき初期サブピクセル・カバレッジ値を調整する。異なるユーザは、テキストに関して異なる快適度を有してよく、従って、幾つかのコンピュータ装置は、アンチエイリアシングがグレースケール・アンチエイリアシングよりむしろサブピクセル・アンチエイリアシングとして認識されるべき程度をユーザが特定することを可能にしてよい。例えば、ユーザ好みの値がある方法で設定される（例えば、ゼロに）場合に、グラフィクスエンジンは、ピクセルについての全てのサブピクセル・カバレッジ値を同じに保つことによって、サブピクセル・アンチエイリアシング処理よりむしろグレースケール・アンチエイリアシング処理を実行してよい。そのようなユーザ好み及びそれらの設定の方法は当該技術において知られており、実施形態は、既知の技術を含む、そのような好みを適用するための如何なる適切な技術も実施してよい。
【００８２】
ブロック５０２で、最初に決定されたサブピクセル・カバレッジ値は、ユーザ好みの設定に基づき調整されてよい。ブロック５０２の調整は、既知の技術を用いることを含め、如何なる適切な方法においても実行されてよい。ＭＩＣＲＯＳＯＦＴ（登録商標）ＣＬＥＡＲＴＹＰＥ（登録商標）テキストレンダリングソフトウェアは、幾つかの実施形態において使用され得る、ユーザ好みに基づきカバレッジ値を調整するための既知の技術を含む。従って、カバレッジ値を調整することの詳細な説明は本願では不要である。手短に述べれば、ブロック５０２で、グラフィクスエンジンは、各サブピクセルのカバレッジ値を、ユーザ好みに基づき、ピクセルの隣接サブピクセルについて設定されるカバレッジ値と釣り合わせてよい。例えば、赤、緑、及び青の順序で配置される３つのサブピクセルを含むディスプレイにおいて（例えば、図１Ａを参照）、赤及び緑のサブピクセルのカバレッジ値は互いに対して釣り合わされてよく、緑及び青のサブピクセルのカバレッジ値は互いに対して釣り合わされてよい。グラフィクスエンジンは、バランシングを実行するために線形補間を使用してよい。例えば、赤色サブピクセル・カバレッジ値は、ユーザ好みの値（β）に初期の赤色サブピクセル・カバレッジ値（αｒ）を乗じ、ユーザ好みの値の補数（１−β）に初期の緑色サブピクセル・カバレッジ値（αｇ）を乗じ、それらの積を加算することによって調整されてよく、それにより、式（１）が実行される：
αｒ’＝αｒ×β＋αｇ×（１−β）          （１）
式（２）：
αｂ’＝αｂ×β＋αｇ×（１−β）          （２）
を適用することにより、同様の式が青色サブピクセル・カバレッジ値について実行されてよい。
【００８３】
ユーザ好みに基づき初期カバレッジ値を調整した後、グラフィクスエンジンは更に、テキストが良好なコントラストを有して表示され、従って可視的であることを確かにするように、テキストの色の輝度に基づきカバレッジ値を調整してよい。第１のステップとして、ブロック５０４で、グラフィクスエンジンは、テキストが表示されることを要求する実行処理からの入力として受信されたフォント色の輝度を計算する。輝度値Ｌは、３つの加法的な色成分である赤、緑及び青についてフォント色の色値を重み付けし加算することにより求められる。特に、輝度（Ｌ）は、式（３）：
Ｌ＝０．３０×Ｒ＋０．５９×Ｇ＋０．１１×Ｂ          （３）
を適用することにより設定されてよい。ここで、Ｒ、Ｇ及びＢは、フォント色の色値である。
【００８４】
ブロック５０６で、グラフィクスエンジンは、背景とのテキストの良好なコントラストを確かにするように、輝度に基づき行われるコントラスト調整を特定してよい。これは、ＭＩＣＲＯＳＯＦＴ（登録商標）ＣＬＥＡＲＴＹＰＥ（登録商標）テキストレンダリングソフトウェアによって用いられるような既知の技術を含め、如何なる適切な方法においても実行されてよい。幾つかの実施形態において、コンピュータ装置は、グラフィクスエンジンがテキストの輝度に基づき調整し得るベースコントラスト値を有してよい。このベースコントラスト値は、ユーザ好みに基づき設定されてよく、又は固定であってよく、あるいは、実施形態はこの点において制限されないので、如何なる他の方法においても設定されてよい。ベースコントラスト値（ｋ）の調整の量は、ブロック５０４で計算された輝度値に依存してよい。例えば、輝度値が０．５以下として計算される場合に、調整変数（ｃ）は、ベースコントラスト値を調整しないように、１に設定されてよい。輝度値が０．５より大きく且つ０．７５より小さいと計算される場合は、調整値は、例えば、式（４）：
ｃ＝４×（０．７５−Ｌ）          （４）
を適用することにより、輝度値（Ｌ）に基づき設定されてよい。輝度値が０．７５以上であると計算される場合は、調整値は、コントラストに基づきカバレッジ値の調整を無効にするように、０に設定されてよい。調整値（ｃ）が設定されると、ベースコントラスト値は、式（５）：
ｋ’＝ｋ×ｃ          （５）
を適用することにより、ベースコントラスト値に調整値を乗じることによって調整されてよい。
【００８５】
ブロック５０８で、グラフィクスエンジンは次いで、先と同じくブロック５０６で決定されたコントラスト値（ｋ’）に基づき、ブロック５０２で変更されたサブピクセル・カバレッジ値を変更してよい。特に、変更されたサブピクセル・カバレッジ値（α’）の夫々は、式（６）：
α”＝（α’×（ｋ’＋１））／（α’×ｋ’＋１）          （６）
を適用することによって、更なる変更されたサブピクセル・カバレッジ値をもたらすようコントラスト値（ｋ’）に基づき変更されてよい。
【００８６】
テキストのためのサブピクセル・カバレッジ値の夫々が式（６）により変更されると、処理５００は終了する。
【００８７】
処理６００は、初期カバレッジ値を処理するために使用され得る処理の他の例を表す。幾つかの実施形態において、実施形態はこの点において制限されないので、処理６００は処理５００とともに使用されてよく、処理５００の後にグラフィクスエンジンによって実行されてよい。
【００８８】
図６の処理６００の開始の前に、グラフィクスエンジンは、表示されるテキストのコンテンツとテキストのフォント色とを受け取り、テキストのサブピクセル・カバレッジ値を計算する。処理６００により、それらのカバレッジ値は変更されてよい。
【００８９】
処理６００はブロック６０２で開始し、グラフィクスエンジンは、テキストを表示するために使用されるディスプレイに関連するガンマ値（γ）を特定する。ディスプレイのガンマ値は、既知の方法において求められる値であり、ディスプレイの製造者によって設定されてよく且つユーザによって調整されてよい。グラフィクスエンジンは、ディスプレイのためのドライバに付随するデータ記憶のような、コンピュータ装置のデータ記憶からガンマ値を取り出すことを含め、如何なる適切な方法においてもブロック６０２でガンマ値を特定してよい。
【００９０】
ブロック６０４で、グラフィクスエンジンは、夫々のサブピクセル・カバレッジ値について、そのサブピクセル・カバレッジ値を補正するのに使用する少なくとも１つのアルファ補正値を決定するために、ガンマ値（γ）を使用してよい。アルファ補正値は、ガンマ補正処理の効果を再現するようにサブピクセル・カバレッジ値を変更する如何なる値であってもよい。サブピクセル・カバレッジ値が、ガンマ補正処理の効果を再現するように調整される場合に、サブピクセル・カバレッジ値を使用するテキストの色情報は、ガンマ補正処理の必要なしに、背景グラフィクスの色情報と線形に結合されてよい。結果として、ガンマ補正処理は、テキストをレンダリングするための処理から削除されてよく、レンダリング処理は迅速に処理され得る。
【００９１】
ガンマ補正処理を再現するようにサブピクセル・カバレッジ値を変更する処理は知られており、そのような処理のいずれかがブロック６０４及び６０６で使用されてよい。アルファ補正値を決定するための１つのそのような処理は、アルファ補正処理として知られており、２００２年１２月３日付けで出願された、“Alpha  correction  to  compensate  for  lack  of  gamma  correction”と題された米国特許第６９３３９４７号（“’９４７特許”）において詳細に記載されている。手短に述べると、’９４７特許において記載されているアルファ補正処理は、ガンマ値によってインデックスを付されたアルファ補正値の表を作成する。それらのアルファ補正値は、ガンマ値の範囲の夫々並びにフォント及び背景色の範囲の夫々について、フォント及び背景色の結合から得られるコンポジット色に対するガンマ補正処理の影響の観測に基づき決定される。ガンマ補正の影響の繰り返し観測により、フォント色に対するガンマ補正の影響はガンマ値毎に特定され得る。例えば、条件付き最適化が、夫々のガンマ値について、繰り返し観測から決定される影響値の夫々について実行されてよい。この条件付き最適化から、アルファ補正値がガンマ値毎に特定され、ガンマインデックス付き表に格納され得る。ブロック６０４で、従って、ガンマインデックス付き表は、ブロック６０２で特定されたガンマ値に基づきクエリを行われてよく、ガンマ値に対応するアルファ補正値が取り出され得る。
【００９２】
ブロック６０６で、アルファ補正値は、補正されたサブピクセル・カバレッジ値を得るようサブピクセル・カバレッジ値と結合され得る。’９４７特許は、繰り返し観測により、ガンマ値毎に４つのアルファ補正値を特定することを記載するが、如何なる適切な個数のアルファ補正値が使用において決定されてよい。’９４７特許は、４つのアルファ補正値に基づき、及びフォント色に基づきサブピクセル・カバレッジ値を変更することを記載する。特に、’９４７特許は、最初に上記の輝度の式（３）を用いてフォント色について輝度値（Ｆ）を決定することを記載する。次いで、フォント色の輝度値は、式（７）：
ｆ＝Ｆ（１／γ）          （７）
により、ガンマ補正されたフォント輝度（ｆ）を得るようガンマ値（γ）により変更され得る。ガンマ補正されたフォント輝度及び４つのアルファ補正値（ｃ１、ｃ２、ｃ３及びｃ４）は次いで、式（８）：
αcorrected＝α＋α×（１−α）×（ｃ１×α＋ｃ２×α＋ｃ３×ｆ＋ｃ４）    （８）
により、補正されたカバレッジ値（αcorrected）を得るよう夫々のサブピクセル・カバレッジ値（α）を変更するために使用されてよい。
【００９３】
幾つかの実施形態において、グラフィクスエンジンは、ブロック６０４及び６０６でサブピクセル・カバレッジ値の夫々について式（７）及び（８）の夫々を実行するのではなく、アルファ補正値のガンマインデックス付き表へのアクセスを有する他のグラフィクス機関から、補正されたサブピクセル・カバレッジ値を取り出してよい。そのような実施形態では、グラフィクスエンジンは、サブピクセル・カバレッジ値と、ディスプレイのガンマ値と、サブピクセル・カバレッジ値が対応するサブピクセルの色値とを他のグラフィクス機関へ供給してよい。他のグラフィクス機関は次いで、ガンマインデックス付き表を試験し且つ式（７）及び（８）を実行することにより、補正されたサブピクセル・カバレッジ値をグラフィクスエンジンへ返してよい。
【００９４】
如何にしてカバレッジ値が補正されるのかにかかわらず、グラフィクスエンジンがブロック６０６でアルファ補正値によってサブピクセル・カバレッジ値の夫々を調整すると、処理６００は終了する。
【００９５】
図５及び６の処理５００及び６００は、処理されたカバレッジ値を得るように初期カバレッジ値を処理するために使用され得る。図３に関連して上述されたように、グラフィクスエンジンがカバレッジ値を処理すると、サブピクセル・カバレッジ値は、例えば４チャネルデータ構造において、キャッシュされてよい。然るに、処理５００、６００の一方又は両方に続いて、処理されたカバレッジ値は、データ構造において配置されて、キャッシュに置かれてよい。
【００９６】
同じく図３に関連して上述されたように、実施形態は、如何なる特定のデータ構造又はデータフォーマットも用いてサブピクセル・カバレッジ値をキャッシュすることに制限されない。むしろ、実施形態は、如何なる適切なデータ構造においてもサブピクセル・カバレッジ値を配置してよい。幾つかの実施形態において、テキストの色値は更に、別個のデータ構造においてキャッシュされてよい。如何なる構造も使用され得るが、ＧＰＵが元々は処理するよう適合される上記の４値構造のように、幾つかの構造は有利であってよく且つ幾つかの実施形態において使用されてよい。
【００９７】
幾つかの実施形態において、サブピクセル・カバレッジ値は、上述されたように、複数の４値データ構造において配置されてよく、それらの複数の構造は、テクスチャアトラスのようなコンテナ構造において一緒に配置されてよい。コンテナ構造は、テキストが、テキストの第１の部分のための１つの色及びテキストの第２の部分のための他の色といったように複数の色によりディスプレイで表示される幾つかの実施形態において、使用されてよい。上記の説明から明らかなように、サブピクセル・カバレッジ値は、テキストに使用されるフォント色に少なくとも部分的に基づき設定されてよい。然るに、異なるフォント色が使用される場合に、異なるカバレッジ値が起こってよい。幾つかの実施形態において、そのような異なるカバレッジ値は１つのマップにおいて一緒に格納されてよい。なお、他の実施形態においては、異なるマップが生成されて、テクスチャアトラスにおいて一緒に配置されてよい。
【００９８】
図７は、複数のマップをテクスチャアトラスにおいて一緒に配置するために実行され得る処理の一例を表す。処理７００はブロック７０２で開始し、グラフィクスエンジンは、テキストを表示するために使用される各色について、処理されたサブピクセル・カバレッジ値を決定する。処理されたサブピクセル・カバレッジ値は、上記の技術に従うことを含め、如何なる適切な方法においても決定されてよい。
【００９９】
ブロック７０４で、指定される色の夫々について、グラフィクスエンジンは、その色のテキストを表示するために使用されるサブピクセルについてのカバレッジ値を含むマップを生成する。夫々のマップの内容は、従って、そのマップに関連する色を用いて表示されるテキストの部分に対応するディスプレイのサブピクセル及びピクセルに対応する。マップの夫々は、ＢＧＲＡデータ構造を含む如何なる適切なデータ構造においても配置されてよい。
【０１００】
グラフィクスエンジンは次いでブロック７０６で、ブロック７０４からの複数のマップをコンテンツ構造において一緒に配置する。コンテナ構造は、幾つかの実施形態において、テクスチャアトラスであってよい。データ構造が一緒に配置されると、コンテナ構造は如何なる適切な方法においてもキャッシュされてよい。コンテナ構造がキャッシュされた後に、処理７００は終了する。
【０１０１】
本願で記載される原理に従って動作する技術は、如何なる適切な方法においても実施されてよい。上記の説明には、サブピクセル・カバレッジ値を計算及びキャッシュし、キャッシュされたサブピクセル・カバレッジ値を、ディスプレイでの表示のためにテキストをレンダリングするのに使用する様々な処理のステップ及び動作を示す一連のフローチャートが含まれる。上記のフローチャートの処理及び決定ブロックは、そのような様々な処理を実行するアルゴリズムに含まれ得るステップ及び動作を表す。それらの処理から得られるアルゴリズムは、１又はそれ以上の単一又は多目的のプロセッサの動作と一体化され且つそのような動作を示すソフトウェアとして実施されてよく、デジタル信号処理（ＤＳＰ）回路又は特定用途向け集積回路（ＡＳＩＣ）のような機能的に同等の回路として実施されてよく、あるいは、何らかの他の適切な方法において実施されてよい。当然のことながら、本願に含まれるフローチャートは、何らかの特定の回路の、又は何らかの特定のプログラミング言語若しくはタイプのプログラミング言語の、シンタックス又は動作を表さない。むしろ、フローチャートは、当業者が本願で記載されるような技術を実行する特定の装置の処理を実行するよう回路を組み立てるか又はコンピュータソフトウェアアルゴリズムを実施するために使用し得る機能情報を例示する。また当然のことながら、本願で別なふうに示されない限り、各フローチャートにおいて記載されるステップ及び／又は動作の特定のシーケンスは、実施され得るアルゴリズムの例示にすぎず、本願で記載される原理の実施及び実施形態において様々であり得る。
【０１０２】
然るに、幾つかの実施形態において、本願で記載される技術は、アプリケーションソフトウェア、システムソフトウェア、ファームウェア、ミドルウェア、埋込コード、又は何らかの他の適切なタイプのソフトウェアを含むソフトウェアとして実施される、コンピュータにより実行可能な命令において具現されてよい。そのようなコンピュータにより実行可能な命令は、多数の適切なプログラミング言語及び／又はプログラミング若しくはスクリプトツールのいずれかにより書かれてよく、また、フレームワーク又は仮想マシンで実行される実行可能なマシン言語コード又は中間コードとしてコンパイルされてよい。
【０１０３】
本願で記載される技術がコンピュータにより実行可能な命令として具現される場合に、それらのコンピュータにより実行可能な命令は、それらの技術に従って動作するアルゴリズムの実行を完了するよう１又はそれ以上の動作を夫々提供する多数の機能設備としての実施を含め、如何なる適切な方法においても実施されてよい。なお実例を示すと、“機能設備”は、１又はそれ以上のコンピュータと一体化されてそれらによって実行される場合に、１又はそれ以上のコンピュータに特定の動作役割を実行させるコンピュータシステムの構造部品である。機能設備は、ソフトウェア要素の一部又はソフトウェア要素全体であってよい。例えば、機能設備は、処理の機能として、又は別個の処理として、又は何らかの他の適切な処理ユニットとして実施されてよい。本願で記載される技術が複数の機能設備として実施される場合に、夫々の機能設備はその設備なりに実施されてよく、全てが同じように実施される必要はない。加えて、それらの機能設備は、必要に応じて、並行して及び／又は直列に実行されてよく、それらが実行しているコンピュータでの共有メモリを用いて、メッセージ処理プロトコルを用いて、又は何らかの他の適切な方法において、互いに情報をやり取りしてよい。
【０１０４】
概して、機能設備は、特定の抽象データ型を実施するか又は特定のタスクを実行するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。通常、機能設備の機能は、それらが動作するシステムにおいて望まれるように結合又は分配されてよい。幾つかの実施において、本願における技術を実行する１又はそれ以上の機能設備はともに、完全なソフトウェアパッケージを形成してよい。それらの機能設備は、代替の実施形態では、ソフトウェアプログラムアプリケーション又はソフトウェアシステムを実施するために、他の関係のない機能設備及び／又は処理と相互作用するよう適合されてよい。例えば、幾つかの実施形態において、それらの技術を実施する機能設備は、ソフトウェアアプリケーションのグラフィクス機能の部分としてソフトウェアアプリケーションに、及び／又はワシントン州レドモンドのマイクロソフト・コーポレーションから市販されているＤｉｒｅｃｔ２ｄ又はＤＩＲＥＣＴＸ（登録商標）のようなグラフィクスレンダリングシステムに、組み込まれてよい。他の実施形態においては、機能設備は、ワシントン州レドモンドのマイクロソフト・コーポレーションから市販されているＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムを含むオペレーティングシステムのような他の機能設備と相互作用するよう適合されてよい。つまり、幾つかの実施形態において、機能設備は、代替的に、オペレーティングシステムの一部として又はその外で実施されてよい。
【０１０５】
幾つかの例となる機能設備は、上記のグラフィクスエンジンを含む１又はそれ以上のタスクを実行するために本願で記載されてきた。なお、当然のことながら、記載される機能設備及びタスクの分割は単に、本願で記載される例となる技術を実施し得る機能設備のタイプの実例にすぎず、実施形態は、何らかの具体的な数、分割、又はタイプの機能設備において実施されることに制限されない。幾つかの実施において、全ての機能は単一の機能設備において実施されてよい。また当然のことながら、幾つかの実施において、本願で記載される機能設備の幾つかは、他と一緒に又は他とは別個に実施されてよく（すなわち、単一のユニット又は別個のユニットとして）、あるいは、それらの機能設備の幾つかは実施されなくてよい。
【０１０６】
本願で記載される技術を実施するコンピュータにより実行可能な命令は（１又はそれ以上の機能設備として又は何らかの他の方法において実施される場合に）、幾つかの実施において、１又はそれ以上のコンピュータ可読媒体において、媒体へ機能を提供するよう符号化されてよい。コンピュータ可読媒体には、ハードディスクドライブのような磁気媒体、コンパクトディスク（ＣＤ）若しくはデジタルバーサタイルディスク（ＤＶＤ）のような光学媒体、永続型若しくは非永続型ソリッドステートメモリ（例えば、フラッシュメモリ、磁気ＲＡＭ等）、又は何らかの他の適切な記憶媒体がある。そのようなコンピュータ可読媒体は、以下で記載される図８のコンピュータ可読記憶媒体８０６として（すなわち、コンピュータ装置８００の一部として）又はスタンドアローンの別個の記憶媒体としてを含め、如何なる適切な方法においても実施されてよい。本願で使用されるように、“コンピュータ可読媒体”（“コンピュータ可読記憶媒体”とも呼ばれる。）は、有形な記憶媒体を指す。有形な記憶媒体は非一時的であり、少なくとも１つの物理的な構造部品を有する。本願で使用される“コンピュータ可読媒体”において、少なくとも１つの物理的な構造部品は、情報を埋め込んで媒体を作成する処理、媒体上に情報を記録する処理、又は媒体を情報により符号化する何らかの他の処理の間に何らかの方法で変更され得る少なくとも１つの物理的特性を有する。例えば、コンピュータ可読媒体の物理的構造の一部の磁化状態は、記録処理の間に変更されることがある。
【０１０７】
更に、上記の幾つかの技術は、それらの技術による使用のために特定の方法において情報（例えば、データ及び／又は命令）を記憶する動作を有する。技術がコンピュータにより実行可能な命令として実施される実施のような、それらの技術の幾つかの実施において、情報はコンピュータ可読記憶媒体において符号化されてよい。具体的な構造が、この情報を記憶する有利なフォーマットとして本願で記載される場合に、そのような構造は、記憶媒体において符号化される場合に情報の物理的な編成を伝えるために使用されてよい。次いで、そのような有利な構造は、情報と相互作用する１又はそれ以上の処理の動作に作用することによって、例えば、プロセッサによって実行されるコンピュータ動作の効率を高めることによって、記憶媒体へ機能を提供してよい。
【０１０８】
技術がコンピュータにより実行可能な命令として具現され得る幾つの（しかし、全てではない）実施において、それらの命令は、図２の例となるコンピュータシステムを含む如何なる適切なコンピュータシステムにおいても動作する１又はそれ以上の適切なコンピュータ装置において実行されてよく、あるいは、１又はそれ以上のコンピュータ装置（あるいは、１又はそれ以上のコンピュータ装置の１又はそれ以上のプロセッサ）は、コンピュータにより実行可能な命令を実行するようプログラミングされてよい。コンピュータ装置又はプロセッサは、命令が、コンピュータ装置／プロセッサがアクセス可能なように、例えばローカルメモリ（例えば、オンチップのキャッシュ又は命令レジスタ、バスを介してアクセス可能なコンピュータ可読記憶媒体、１又はそれ以上のネットワークを介してアクセス可能であり且つ装置／プロセッサによってアクセス可能なコンピュータ可読記憶媒体、等）において記憶される場合に、命令を実行するようプログラミングされてよい。そのようなコンピュータにより実行可能な命令を有する機能設備は、単一の多目的プログラム可能デジタルコンピュータ、処理能力を共有し且つ本願で記載される技術をともに実行する２又はそれ以上の多目的コンピュータ（同じ場所に配置されるか又は地域分散型である。）の協調的なシステム、本願で記載される技術を実行するのに専用の単一のコンピュータ又はコンピュータ（同じ場所に配置されるか又は地域分散型である。）の協調的なシステム、本願で記載される技術を実行するための１又はそれ以上のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、あるいは、何らかの他の適切な装置を含むコンピュータ装置の動作と一体化され且つそのような動作を示してよい。
【０１０９】
図８は、本願で記載される技術を実施するシステムにおいて使用され得るコンピュータ装置８００の形をとるコンピュータ装置の一実施例を表すが、他も可能である。当然のことながら、図８は、本願で記載される原理に従って動作するためにコンピュータ装置に必要な構成要素の描写でも、又は包括的な描写でもない。
【０１１０】
コンピュータ装置８００は、少なくとも１つのプロセッサ８０２と、ネットワークアダプタ８０４と、コンピュータ可読記憶媒体８０６とを有してよい。コンピュータ装置８００は、例えば、デスクトップ若しくはラップトップ型パーソナルコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、スマートモバイルフォン、タブレット型コンピュータ、サーバ、又は何らかの他の適切なコンピュータ装置であってよい。プロセッサ８０２は、中央演算処理装置（ＣＰＵ）及び／又はグラフィクス処理ユニット（ＧＰＵ）を含む如何なる適切なプロセッサも有してよい。ネットワークアダプタ８０４は、コンピュータ装置８００が有線及び／又は無線により何らかの適切なコンピュータネットワークを介して何れかの適切なコンピュータ装置と通信すること可能にするための如何なる適切なハードウェア及び／又はソフトウェアであってもよい。コンピュータネットワークは、無線アクセスポイント、スイッチ、ルータ、ゲートウェイ、及び／又は他のネットワーク設備、並びにインターネットを含む、２以上のコンピュータ間でデータを交換するための何らかの適切な有線及び／又は無線の通信媒体を含んでよい。コンピュータ可読記憶媒体８０６は、プロセッサ８０２によって実行される命令及び／又は処理されるデータを記憶するよう適合された１又はそれ以上の媒体であってよい。プロセッサ８０２は、データ処理及び命令の実行を可能にする。データ及び命令は、コンピュータ可読記憶媒体８０６に記憶されてよく、例えば、コンピュータ装置８００の構成要素間の通信を可能にしてよい。
【０１１１】
コンピュータ可読記憶媒体８０６に記憶されるデータ及び命令は、本願で記載される原理に従って動作する技術を実施するコンピュータにより実行可能な命令を有してよい。図８の例では、コンピュータ可読記憶媒体８０６は、上述されたように様々な設備を実施し且つ様々な情報を記憶するコンピュータにより実行可能な命令を記憶する。コンピュータ可読記憶媒体８０６は、コンピュータ装置８００に付随するディスプレイでテキストをレンダリング及び表示するためのグラフィクスエンジン８０８を記憶してよい。グラフィクスエンジン８０８は、サブピクセル・カバレッジ値を決定し、処理し、キャッシュするためにグラフィクスエンジン８０８の部分として実施され得るカバレッジ機関８１０を含んでよい。コンピュータ可読記憶媒体８０６はまた、ディスプレイに表示されるテキストのカバレッジ値をキャッシュするためのデータ記憶８１２を有してよい。コンピュータ可読記憶媒体８０６はまた、アルファ補正値の表８１４を記憶してよく、表８１４は、サブピクセル・カバレッジ値を決定し処理するためにグラフィクスエンジン８０８及び／又はカバレッジ機関８１０によって使用されてよい。
【０１１２】
図８に表されていないが、コンピュータ装置８００は、入出力装置を含む１以上の構成要素及び周辺機器を更に有してよい。それらの装置は、とりわけ、ユーザインターフェースを提示するために使用され得る。ユーザインターフェースを提供するために使用され得る出力装置の例には、出力の視覚的提示のためのプリンタ又はディスプレイと、出力の聴覚的提示のためのスピーカ又は他の音響生成装置とがある。ユーザインターフェースのために使用され得る入力装置の例には、キーボード、及びマウスのような指示装置、タッチパッド、並びに離散化タブレットがある。他の例として、コンピュータ装置８００は、音声認識により、又は他の音声フォーマットにおいて、入力情報を受け取ってよい。
【０１１３】
回路及び／又はコンピュータにより実行可能な命令において技術が実施されるところの実施形態が記載されてきた。当然のことながら、幾つかの実施形態は方法の形をとってよく、その少なくとも１つの例が与えられている。方法の部分として実行される動作は如何なる適切な方法においても順序づけられてよい。然るに、動作が表されているのとは異なる順序で実行される実施形態が考えられ、かかる実施形態は、実施例において連続した動作として示されるとしても、幾つかの動作を同時に実行することを含んでよい。
【０１１４】
上記の実施形態の様々な態様は、単独で、組み合わされて、又は先に記載された実施形態において具体的に論じられていない様々な配置において、使用されてよく、従って、その適用において、上記の説明で述べられるか又は図面において表される構成要素の配置及び詳細に制限されない。例えば、一実施形態において記載される態様は、他の実施形態において記載される態様と何らかの方法において組み合わされてよい。
【０１１５】
請求要素を修飾するための特許請求の範囲における“第１”、“第２”、“第３”等のような序数詞の使用はそれに自体によって、他の請求要素に対する他の請求要素の何らかの優先順位、優位性、若しくは順序、又は方法の動作が実行される時間的順序も暗示せず、単に、特定の名称を有する１つの請求要素を（序数詞の使用を除き）同じ名称を有する他の要素と区別するラベルとしてそれらの請求要素を区別するために使用される。
【０１１６】
また、本願で使用される表現及び用語は記載のためであり、限定と見なされるべきではない。本願における“含む（including）”、“有する（comprising）”、“持つ（having）”、“包含する（containing）”、“伴う（involving）”及びそれらの相当語句は、それらの前に挙げられている項目及びその同等物並びに追加の項目を網羅するよう意図される。
【０１１７】
語“例となる（exemplary）”は、本願では、例、事例又は実例の役割を果たすことを意味するために使用される。例として本願で記載される如何なる実施形態、実施、処理、特徴、等も、従って、説明に役立つ実例であると理解されるべきであり、別なふうに示されない限りは、好ましい又は有利な例であると理解されるべきではない。
【０１１８】
少なくとも１つの実施形態の幾つかの態様がこのようにして記載されてきたが、当然のことながら、様々な代替、変更、及び改良が当業者には容易に想到可能であろう。そのような代替、変更及び改良は、本開示の部分であるよう意図され、本願で記載される原理の精神及び適用範囲内にあるよう意図される。然るに、上記の説明及び図面は単なる一例に過ぎない。
【図１Ａ】
0006046152.tif 000002
【図１Ｂ】
0006046152.tif 000003
【図２】
0006046152.tif 000004
【図３】
0006046152.tif 000005
【図４】
0006046152.tif 000006
【図５】
0006046152.tif 000007
【図６】
0006046152.tif 000008
【図７】
0006046152.tif 000009
【図８】
0006046152.tif 000010