(57)【要約】【課題】  ガンマ補正の欠如を補償するためのアルファ補正を提供すること。【解決手段】  フォントグリフの混合係数（アルファ値）は、テキストレンダリングプロセスでガンマ補正の欠如を補償するためにアルファ補正を受ける。アルファ補正は、ディスプレイ装置の所定のガンマ値に対応する補正係数のセットを選択すること、ならびに知られたアルファ値、前景色、および補正係数のセットから、補正されたアルファ値を計算することを含む。補正済みアルファ値を、ガンマ補正を必要とせずに、対応するディスプレイピクセルの前景色および背景色を混合するために使用することができる。したがって、アルファ補正を、ガンマ補正を実行するように構成されていないＧＰＵによって実行し、それによってテキストレンダリングを行うことができる速度を上げることができる。【選択図】  図１
2004185008.tif 000002
【特許請求の範囲】
【請求項１】
イメージを表示するように構成された複数のピクセルを有するディスプレイ装置と接続されたコンピューティングシステムにおいて、前記コンピューティングシステムは、アルファ値を使用した混合プロセスを実行し、前記イメージを表示する前記ピクセルの前景色および背景色を制御するように構成されたグラフィックス処理ユニットを含み、前記グラフィックス処理ユニットによって受け取られた前記アルファ値を補正して、ガンマ補正なしに、前記ディスプレイ装置での前記イメージの表示を可能にする方法であって、
１または複数の所定のガンマ値について補正係数セットを受け取る動作であって、前記所定のガンマ値のうちの少なくとも１つは、前記ディスプレイ装置の前記ガンマ値を含む動作と、
前記グラフィックス処理ユニットによってグラフィックス混合プロセスを実行する際に使用可能なフィルタリング済みアルファ値を受け取って、前記ディスプレイ装置で前記イメージを表示する前記ピクセルの前記前景色および前記背景色を決定する動作と、
前記ピクセルの１または複数の前景色を受け取る動作と、
前記フィルタリング済みアルファ値のアルファ補正を実行して、補正済みアルファ値を取得するステップであって、前記アルファ補正は、前記補正係数および前記前景色を使用するステップと、
前記ピクセルの前記前景色および背景色で動作する前記補正済みアルファ値を使用してグラフィック混合プロセスを実行し、前記ディスプレイ装置での前記イメージの表示に使用される前記ピクセル値を決定する動作と
を備えたことを特徴とする方法。
【請求項２】
アルファ補正を実行するステップは、
前記ディスプレイ装置の前記ガンマ値に対応する前記補正係数セットを選択する動作と、
前記フィルタリング済みアルファ値、前記前景値、および前記選択された補正係数セットを使用して、前記補正済みアルファ値を計算する動作と
を備えたことを特徴とする請求項１に記載の方法。
【請求項３】
ガンマ補正なしに前記ディスプレイ装置で前記イメージを表示する動作をさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記フィルタリング済みアルファ値は、前記ディスプレイ装置で前記イメージを表示するために使用される各ピクセルについて３つのフィルタリング済みアルファ値のセットを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記補正済みアルファ値は、前記フィルタリング済みアルファ値の各々に対応する３つの補正済みアルファ値のセットを含み、前記補正済みアルファ値は、前記フィルタリング済みアルファ値から導出されることを特徴とする請求項４に記載の方法。
【請求項６】
前記１または複数のガンマ値の各々について最適化を実行することにより、前記１または複数のガンマ値の各々について前記補正係数セットを計算する動作であって、前記最適化は、前記アルファ補正の誤差を最小限にする動作をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項７】
前記１または複数のガンマ値は、約１．０から約２．２までの領域内において０．１の増分であるガンマ値を含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記最適化は、制約セットによって制約され、前記制約セットは、前記補正済みアルファ値が０から１までの領域内にあることを保証するように選択されることを特徴とする請求項６に記載の方法。
【請求項９】
前記１または複数のガンマ値の各々についての前記補正係数セットは、第１の補正係数、第２の補正係数、第３の補正係数、および第４の補正係数を含み、前記アルファ補正を実行する動作は、アルファ補正済み値の計算を含み、各アルファ補正済み値は（アルファ補正済み値）＝（α＋（１−α）（ｃ１αｆ＋ｃ２α＋ｃ３ｆ＋ｃ４））の形式を取り、ここで、αは前記対応するフィルタリング済みα値であり、ｆは前記アルファ値に対応するピクセルの前景であり、ｃ１は第１の補正係数、ｃ２は第２の補正係数、ｃ３は第３の補正係数、ｃ４は第４の補正係数であることを特徴とする請求項１に記載の方法。
【請求項１０】
イメージを表示するように構成された複数のピクセルを有するディスプレイ装置と接続されたコンピューティングシステムにおいて、前記コンピューティングシステムは、アルファ値を使用した混合プロセスを実行し、前記イメージを表示する前記ピクセルの前景色および背景色を制御するように構成されたグラフィックス処理ユニットを含み、前記グラフィックス処理ユニットによって受け取られた前記アルファ値を補正して、ガンマ補正なしに、前記ディスプレイ装置での前記イメージの表示を可能にする方法であって、
１または複数の所定のガンマ値について補正係数セットを受け取る動作であって、前記所定のガンマ値のうちの少なくとも１つは、前記ディスプレイ装置の前記ガンマ値を含む動作と、
前記グラフィックス処理ユニットによってグラフィックス混合プロセスに使用可能な１または複数のフィルタリング済みアルファ値を受け取って、前記ディスプレイ装置で前記イメージを表示する前記ピクセルの前記前景色および前記背景色を決定する動作と、
１または複数の前景色を受け取る動作と、
前記ディスプレイ装置の前記ガンマ値に対応する前記補正係数セットを選択する動作と、
前記フィルタリング済みアルファ値、前記前景色、および前記選択された補正係数セットを使用して、前記補正済みアルファ値を計算する動作と、
前記ピクセルの前記前景色および背景色で動作する前記補正済みアルファ値を使用してグラフィック混合プロセスを実行し、前記ディスプレイ装置での前記イメージの表示に使用される前記ピクセル値を決定する動作と
を備えたことを特徴とする方法。
【請求項１１】
ガンマ補正なしに前記ディスプレイ装置で前記イメージを表示する動作をさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記フィルタリング済みアルファ値は、前記ディスプレイ装置で前記イメージを表示するために使用される各ピクセルについて３つのフィルタリング済みアルファ値のセットを含むことを特徴とする請求項１０に記載の方法。
【請求項１３】
前記補正済みアルファ値は、前記イメージを表示する各ピクセルに対応する３つの補正済みアルファ値のセットを含み、前記補正済みアルファ値は、前記フィルタリング済みアルファ値から導出されることを特徴とする請求項１２に記載の方法。
【請求項１４】
前記１または複数のガンマ値の各々について前記補正係数セットを計算する動作は、前記１または複数のガンマ値の各々について最適化を実行することを含むことを特徴とする請求項１０に記載の方法。
【請求項１５】
前記１または複数のガンマ値は、約１．０から約２．２までの領域内において０．１の増分であるガンマ値を含むことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記最適化は、制約セットによって制約され、前記制約セットは、前記補正済みアルファ値が０から１までの領域内にあることを保証するように選択されることを特徴とする請求項１４に記載の方法。
【請求項１７】
前記１または複数のガンマ値の各々についての前記補正係数セットは、第１の補正係数、第２の補正係数、第３の補正係数、および第４の補正係数を含み、前記アルファ補正を実行する動作は、アルファ補正済み値の計算を含み、各アルファ補正済み値は（アルファ補正済み値）＝（α＋（１−α）（ｃ１αｆ＋ｃ２α＋ｃ３ｆ＋ｃ４））の形式を取り、ここで、αは前記対応するフィルタリング済みα値であり、ｆは前記アルファ値に対応するピクセルの前景であり、ｃ１は第１の補正係数、ｃ２は第２の補正係数、ｃ３は第３の補正係数、ｃ４は第４の補正係数であることを特徴とする請求項１０に記載の方法。
【請求項１８】
イメージを表示するように構成された複数のピクセルを有するディスプレイ装置と接続されたコンピューティングシステムで使用するコンピュータプログラムであって、前記コンピューティングシステムは、アルファ値を使用した混合プロセスを実行し、前記イメージを表示する前記ピクセルの前景色および背景色を制御するように構成されたグラフィックス処理ユニットを含み、前記コンピュータプログラムは、前記グラフィックス処理ユニットによって受け取られた前記アルファ値を補正して、ガンマ補正なしに、前記ディスプレイ装置での前記イメージの表示を可能にする方法を実施するためのコンピュータ実行可能命令を有し、前記方法は、
１または複数の所定のガンマ値について補正係数セットを受け取る動作であって、前記所定のガンマ値のうちの少なくとも１つは、前記ディスプレイ装置の前記ガンマ値を含む動作と、
前記グラフィックス処理ユニットによってグラフィックス混合プロセスに使用可能な１または複数のフィルタリング済みアルファ値を受け取って、前記ディスプレイ装置で前記イメージを表示する前記ピクセルの前記前景色および前記背景色を決定する動作と、
１または複数の前景色を受け取る動作と、
前記ディスプレイ装置の前記ガンマ値に対応する前記補正係数セットを選択する動作と、
前記フィルタリング済みアルファ値および前記選択された補正係数セットを使用して、前記補正済みアルファ値を計算する動作であって、前記計算する動作は、前記補正係数および前記前景色を使用する動作と、
前記ピクセルの前記前景色および背景色で動作する前記補正済みアルファ値を使用してグラフィック混合プロセスを実行し、前記ディスプレイ装置での前記イメージの表示に使用される前記ピクセル値を決定する動作と
を備えたことを特徴とするコンピュータプログラム。
【請求項１９】
ガンマ補正なしに前記ディスプレイ装置で前記イメージを表示する動作をさらに含むことを特徴とする請求項１８に記載のコンピュータプログラム。
【請求項２０】
前記フィルタリング済みアルファ値は、前記ディスプレイ装置で前記イメージを表示するために使用される各ピクセルについて３つのフィルタリング済みアルファ値のセットを含むことを特徴とする請求項１８に記載のコンピュータプログラム。
【請求項２１】
前記補正済みアルファ値は、前記イメージを表示する各ピクセルに対応する３つの補正済みアルファ値のセットを含み、前記補正済みアルファ値は、前記フィルタリング済みアルファ値から導出されることを特徴とする請求項２０に記載のコンピュータプログラム。
【請求項２２】
前記１または複数のガンマ値の各々について最適化を実行することにより、前記１または複数のガンマ値の各々について前記補正係数セットを計算する動作であって、前記最適化は、前記アルファ補正の誤差を最小限にする動作をさらに備えたことを特徴とする請求項１８に記載のコンピュータプログラム。
【請求項２３】
前記１または複数のガンマ値は、約１．０から約２．２までの領域内において０．１の増分であるガンマ値を含むことを特徴とする請求項２２に記載のコンピュータプログラム。
【請求項２４】
前記最適化は、制約セットによって制約され、前記制約セットは、前記補正済みアルファ値が０から１までの領域内にあることを保証するように選択されることを特徴とする請求項２２に記載のコンピュータプログラム。
【請求項２５】
前記１または複数のガンマ値の各々についての前記補正係数セットは、第１の補正係数、第２の補正係数、第３の補正係数、および第４の補正係数を含み、前記アルファ補正を実行する動作は、アルファ補正済み値の計算を含み、各アルファ補正済み値は（アルファ補正済み値）＝（α＋（１−α）（ｃ１αｆ＋ｃ２α＋ｃ３ｆ＋ｃ４））の形式を取り、ここで、αは前記対応するフィルタリング済みα値であり、ｆは前記アルファ値に対応するピクセルの前景であり、ｃ１は第１の補正係数、ｃ２は第２の補正係数、ｃ３は第３の補正係数、ｃ４は第４の補正係数であることを特徴とする請求項１８に記載のコンピュータプログラム。
【請求項２６】
請求項１８ないし請求項２５のいずれかに記載のコンピュータプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスプレイレンダリングプロセスに関し、より詳細には、アルファ値補正を含むフォントグリフレンダリングプロセスに関する。
【背景技術】
【０００２】
標準のソフトウェアテキストレンダリングでは、１または複数のフォントグリフ（font glyph）が、ディスプレイ装置に表示されるテキストの各イメージを表す。同様に、各フォントグリフは、どれだけのフォントグリフの前景色を背景に追加すべきかを、フォントグリフの表示に使用される各ピクセルについて表す、１または複数の混合（blending）係数によって表される。これらの混合係数は、典型的には、アルファ（α）値と呼ばれる。他のイメージも、前景と背景との間の混合によって表すことができる。
【０００３】
アルファ値が決定されると、それらを使用して、各ピクセルの前景色と背景色を混合することができる。混合は、例えば最小値は、ピクセルのレンダリングに光子を使わないことを示し、最大値は最大量の光子を使うことを示し、理想的には、線形色空間で発生する。ただし、混合によって導出されるピクセルカラーは、典型的には、ディスプレイ装置がどのように色をレンダリングするかについて非線形性を補償するために、レンダリングされる前にガンマ補正プロセスを施さなければならない。本来、ガンマ補正は、ディスプレイ装置のガンマ値を補償するものである。ディスプレイ装置のガンマ値は、デバイスごとに異なる場合がある。ディスプレイ装置でイメージのレンダリングに使用される混合およびガンマ補正のプロセスは、当分野でよく知られたレンダリングプロセスである。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
混合およびガンマ補正は、典型的には、ソフトウェアアプリケーションを介して行われる。ただし、テキストレンダリングプロセスは、中央処理ユニット（ＣＰＵ）のリソースを必要とする代わりに、グラフィックス処理ユニット（ＧＰＵ）などの専用のハードウェア構成要素によって実行される場合に、格段に速く実行できることがわかっている。ただし、ＧＰＵを使用して混合を実行する際の問題の１つは、既存のＧＰＵが、ガンマ補正を実行するように構成されていないことである。ガンマ補正を使用しないと、アルファ値がClearType（登録商標）を介してフィルタリングされた場合、レンダリングされたテキストには、ディスプレイ装置の非線形性（ガンマ値）により、表示されたテキスト文字の縁の周囲に望ましくないカラーフリンジ（color fringe）ができることになる。この問題は、背景値がＧＰＵに格納され、ＣＰＵが低速でしかアクセスできないことから、さらに大きくなる。
【０００５】
Microsoft NT4オペレーティングシステムでは、ＣＰＵサイクルを節約するために、混合後はガンマ補正を実行しない。近似値としてアルファ値は、混合の前にアルファ値それ自体でガンマ補正を実行することによって調整される。ただしこの近似値は、前景色が暗いか明るいかを考慮に入れないため、不正確である。前景色を無視してアルファを調整すると、結果的に、可能な前景色の半分について近似値の誤差が増加することになる。
【０００６】
したがって現在は、背景色にアクセスすることなく、ガンマ補正を必要としないが、前景色の知識は使用する、テキストのレンダリングを加速させるように改善された方法が求められている。
【課題を解決するための手段】
【０００７】
本発明は、ガンマ補正の欠如を補償するために、フォントグリフに対応するフィルタリング済みアルファ値を補正するための方法、システム、および対応するコンピュータプログラムを対象とする。
【０００８】
本発明の一態様によれば、アルファ補正の実行は、ディスプレイ装置の所定のガンマ値に対応する補正係数セットを選択する動作と、ガンマ補正なしで、対応する表示ピクセルの前景色と背景色とを混合するために使用可能な補正済みアルファ値を計算する動作とを含む。本発明はガンマ補正の必要がなく、アルファ補正は背景色にアクセスする必要がないため、フォントグリフをレンダリングするためのプロセスは、主にＧＰＵによって実行され、それによって、テキストレンダリングを行うことのできる全体の速度を上げることができる。
【０００９】
一実施形態では、補正済みアルファ値は、公式  
αｃｏｒｒｅｃｔｅｄ＝α＋α（１−α）（ｃ１αｆ＋ｃ２α＋ｃ３ｆ＋ｃ４）  
を介してＧＰＵ上で計算される。ここで、αｃｏｒｒｅｃｔｅｄは補正済みアルファであり、αはアルファであり、ｆはガンマ補正済みの前景輝度であり、（ｃ１、ｃ２、ｃ３、およびｃ４）は補正係数セットである。この公式は、アルファ値１つにつき１回適用される。
【００１０】
その後、各表示ピクセルについて補正済みアルファ値を取得すると、表示ピクセルの前景色および背景色が混合され、それによって、カラーフリンジングなしに、およびガンマ補正の必要なしに、フォントグリフを表示できるようにするための適切なピクセル表示値が生成される。
【００１１】
補正済みアルファ値の導出を助けるために使用される最適な補正係数セット（ｃ１、ｃ２、ｃ３、およびｃ４）は、アルファ補正の誤差を最小限にすることによって、１回計算することができる。その後、ガンマ補正なしに混合を行うことができる。このアルファ補正誤差の最小化は、ソフトウェア設計時に行うことが可能であり、制約付き最適化アルゴリズムまたは他の同様の手順によって実施される。
【００１２】
本発明の追加の特徴および利点については以下の記述で説明し、一部はこの記述から自明となるか、または本発明の実施によって習得することができる。本発明の特徴および利点は、添付の特許請求の範囲で具体的に指摘された計器および組合せによって具体化および取得することができる。本発明のこれらおよび他の特徴は、以下の記述および添付の特許請求の範囲からより完全に明らかになるか、または以下で述べるような本発明の実施によって習得することができる。
【００１３】
本発明の上記および他の利点および特徴が得られる方法を説明するために、上記で簡単に説明した本発明のより具体的な記述を、添付の図面に示された特定の実施形態を参照しながら示す。これらの図面が本発明の典型的な実施形態のみを示すものであり、したがってその範囲を限定するとみなされるものでないことを理解しながら、添付の図面を使用することで、追加の特性および詳細によって本発明について記述および説明する。
【発明を実施するための最良の形態】
【００１４】
本発明は、ガンマ補正の欠如を補償するためにイメージレンダリングプロセス時にアルファ補正を実行するための、方法、システム、および対応するコンピュータプログラムを対象とする。本発明の実施形態は、以下でより詳細に論じるような様々なコンピュータハードウェアを含む、特殊用途向けコンピュータまたは汎用コンピュータを含むかまたはこれらで実施可能である。具体的に言えば、本発明の実施形態は、グラフィックス処理ユニット（ＧＰＵ）で実施可能である。
【００１５】
本発明の範囲内の実施形態は、その上でコンピュータ実行可能命令またはデータ構造を搬送または有するための、コンピュータ読取り可能媒体を含む。こうしたコンピュータ読取り可能媒体は、汎用コンピュータまたは特殊用途向けコンピュータがアクセス可能な任意に使用できる媒体であってよい。例えば、こうしたコンピュータ読取り可能媒体は、これに限定されないが、光ディスク記憶装置、磁気ディスク記憶装置、または他の磁気記憶デバイスなどの、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、または他の物理記憶媒体、あるいは、コンピュータ実行可能命令またはデータ構造の形で所望のプログラムコード手段を搬送または格納するために使用可能であり、汎用コンピュータまたは特殊用途向けコンピュータがアクセス可能な、任意の他の媒体を含むことができる。情報がネットワークまたは他の通信接続（有線、無線、あるいは有線または無線の組合せのいずれか）を介してコンピュータに転送または提供される場合、コンピュータは、厳密には接続をコンピュータ読取り可能媒体としてみなす。したがって、任意のこうした接続は、厳密にはコンピュータ読取り可能媒体と呼ばれる。上記の組合せも、コンピュータ読取り可能媒体の範囲内に含まれるものとする。コンピュータ実行可能命令は、例えば汎用コンピュータ、特殊用途向けコンピュータ、またはＧＰＵなどの特殊用途向け処理デバイスに一定の機能または機能グループを実行させる、命令およびデータを含む。
【００１６】
（アルファ補正）
図１は、ガンマ補正の欠如を補償するためにフィルタリング済みのアルファ値を補正するための一方法の流れ図１００を示す図である。フォントグリフレンダリングプロセスにおいて、混合係数としても知られるフィルタリング済みアルファ値は、フォントグリフの表示に使用される各ピクセルについて導出される。一定の実施形態では、各表示ピクセルについて単一のアルファ値のみが計算される。他の実施形態では、MicrosoftのClearType（登録商標）技術を使用して、各ピクセルのサブコンポーネント（例えば、赤、緑、青のサブコンポーネント）について別々のアルファ値が計算される。したがって、本発明は様々な実施形態に拡張し、したがって、各表示ピクセルについて一定数のアルファ値のみが導出される実施形態に限定されるものではない。
【００１７】
図１に示されるように、ガンマ補正の欠如を補償するためのフィルタリング済みアルファ値を補正するための一方法は、様々な動作（動作１１０、１２０、１４０、１５０、および１６０）および動作（ステップ１３０）を含み、次にそれぞれについて、図２〜５を具体的に参照しながらより詳細に説明する。
【００１８】
例示された第１の動作は、グラフィックス混合プロセス（動作１１０）に使用可能なフィルタリング済みアルファ値を受け取ることを含む。フィルタリング済みアルファ値は、典型的には、混合時およびガンマ補正前に既存のフォントグリフレンダリングプロセスで使用される。ただし、本発明によれば、フィルタリング済みアルファ値は、表示ピクセルの前景色および背景色を混合するため、および混合後はガンマ補正を必要としない方法で使用可能な、調整済みまたは補正済みアルファ値の導出に使用される。任意のソースから取得可能なフィルタリング済みアルファ値は、一般に、表示されるフォントグリフの形状を表す。
【００１９】
例示された方法は、表示ピクセル前景色を受け取る動作（動作１１５）も含む。この表示ピクセル前景色の受取りにより、本発明が、図２〜５を具体的に参照しながら以下で説明するように、既知の前景色および最適な補正係数に基づいて、所望のアルファ補正を実行できるようにする。
【００２０】
図１によれば、１または複数のガンマ値それぞれについて補正係数セットが計算される（動作１２０）。補正係数セットは、計算から導出される必要はないが、代替の実施形態では、手操作で調整できることに留意されたい。動作１２０は、ソフトウェア設計時にも実行可能であるが、図１の他のすべての動作は、イメージのレンダリング中に実行することができる。
【００２１】
本実施形態では、各ガンマ値は、ｃ１、ｃ２、ｃ３、およびｃ４を含む４つの補正係数に関連付けられる。補正係数は、ガンマ値の任意の選択領域について計算することができる。フォントグリフのレンダリングに使用されることになるディスプレイ装置のガンマ値は、選択されたガンマ値セットのうちの１つとして含まれることが好ましい。一実施形態では、選択されたガンマ値セットは、０．１ステップで１．０から２．２までの領域内のガンマ値を含むが、この領域は変化する場合がある。
【００２２】
一実施形態によれば、様々なガンマ値に対応する補正係数セットを計算する動作は、ソフトウェア設計時に図２の流れ図２００に示された動作を実行することによって実施される。第１に例示された動作は、ガンマを、ガンマ値の選択範囲内の最低ガンマ値（例えば、前述の領域によれば１．０）に設定することを含む（動作２１０）。次に、ガンマ値を使用して制約付き最適化が実行され、ガンマ値に対応する最適な補正係数セットを決定する（動作２２０）。これは、一実施形態に従い、制約付き最適化ルーチンを図３の流れ図３００に示された動作と組み合わせることによって実施される。
【００２３】
図３の流れ図３００は、真の出力と、前景色と背景色を混合した補正済み出力との間で計算される誤差を最小限にするために実行可能な複数の動作を含む。より具体的には、真の出力と補正済み出力との輝度の差は、アルファ、前景、背景、および補正係数ｃ１、ｃ２、ｃ３、およびｃ４の様々な所定の値を使用して計算される。これは、ディスプレイ装置のガンマ値などの所定のガンマ値に関連付けられた、最適な補正係数を決定するための制約付き最適化ルーチンを支援するために実施される。
【００２４】
最初に、誤差、前景、背景、およびアルファの値が、ゼロに設定される（動作３１０〜３１６）。次に、所定の制約セットを満たす第１の補正係数セットを使用して、補正済みアルファが計算される（動作３２０）。一実施形態によれば、補正済みアルファは、公式
αｃｏｒｒｅｃｔｅｄ＝α＋α（１−α）（ｃ１αｆ＋ｃ２α＋ｃ３ｆ＋ｃ４）
から導出され、αｃｏｒｒｅｃｔｅｄは補正済みアルファであり、αはアルファであり、ｆはガンマ補正済み前景輝度である。補正済みアルファの公式は、図４の機能図４００として、およびその基本式４１０に示される。
【００２５】
一実施形態では、この制約付き最適化（動作２２０）時に使用される所定の制約セットは、（ｃ４≧−１）、（ｃ３＋ｃ４≧−１）、（ｃ１＋ｃ２＋ｃ３＋ｃ４≦１）、（ｃ４≧−４）、（ｃ３＋ｃ４≧−４）を含む。これらの制約は、図４の補正が単調であり、［０，１］以外の値は生成しないことを保証するために選択される。ただし、この制約セットは、単に使用可能な制約の好適な一セットを例示するものであるため、本発明の範囲を限定するものとみなされるべきではない。制約付き最適化の間、補正係数の値を、制約の範囲内で増分的に調整し、ｆ、α、およびＢ（背景）の可能な各値について、真の出力と補正済み出力との間の誤差を計算して、ｆ、α、およびＢは、約０から約１までの間で約０．０２ずつ増分する。
【００２６】
計算済み出力は、一般に、動作３２０からの補正済みアルファ値を使用して計算される（動作３３０）。より具体的には、計算済み出力は、ガンマ補正済み前景ｆ＝Ｆ（１／γ）およびガンマ補正済み背景ｂ＝Ｂ（１／γ）の混合値が含まれ、ここでｆは、ガンマ補正済み前景であり、Ｆは所定の前景値であり、γはガンマの値であり、ｂはガンマ補正済み背景であり、およびＢは所定の背景値である。補正済み出力は、動作３３０に従って計算される。
【００２７】
真の出力は、所定の前景（Ｆ）と所定の背景（Ｂ）とアルファ（α）を混合することによっても計算される（動作３４０）。その後、補正済み出力と真の出力との間の２乗差が２乗され（動作３４２）、インポータンスウェイト（importance weight）が掛け合わされる（動作３４４）。最後に、重み付けされた２乗差が誤差値に追加される（動作３４６）。その後、動作（３４８、３５０、３５２、３５４、３５６、および３５８）によって決定されるように、Ｆ、Ｂ、およびαのすべての値が誤差を計算するために使用されるまで、これらの動作が反復される。誤差は、Ｆ、Ｂ、およびαの各組合せで所定のガンマ値について最小誤差が決定されるまで、ｃ１、ｃ２、ｃ３、およびｃ４の様々な組合せを使用して、繰り返し再計算される。誤差は、図３に示された最適化ルーチンに戻される（動作３６０）。
【００２８】
図３に示された動作は、制約付き最適化に好適な費用関数を計算するための１つの好適な方法を含む。制約付き最適化ルーチンは、最小誤差を見つけるためにこうした費用関数が必要である。好適な制約付き最適化ルーチンの１つが、逐次２次計画法を実施するMatlab's fmincon関数である。Matlab's fmincon関数および逐次２次計画法は、当分野ではよく知られている。ただし、前述の例は、単なる例示的なものに過ぎず、本発明の範囲を制限するものとみなされるべきではない。具体的には、所定のガンマ値セットに対応する、所定の制約セット内の最適な補正係数を取得するために、他の技法およびアルゴリズムも使用することができる。例えば、誤差が（線形空間に対向して）ガンマ補正済み空間内で計算される場合、図３で計算された費用関数は、補正係数ｃ１、ｃ２、ｃ３、ｃ４内で２乗される。したがって、最適化は、分析的に（線形システムを解いて）実行可能であり、制約付き最適化ルーチンは必要としない。
【００２９】
図２に示されるように、制約付き最適化から取得された最適な補正係数ｃ１、ｃ２、ｃ３、ｃ４は、次に、最適な係数ｃ１、ｃ２、ｃ３、ｃ４の取得に使用されたガンマ値に関連付けられる（動作２３０）。最適な補正係数と対応するガンマ値との間の関連付けは、例えば、テーブルまたは他のデータ構造で実行可能である。最小誤差の取得に使用されたＦ、Ｂ、およびαの値を、その後の参照のために最適な係数とも関連付けることができる。動作２４０および２５０によって示されるように、最適化ルーチン２００は、ガンマ値の所定の領域内にある各ガンマ値について、最適補正係数が決定されるまで、繰り返し実行される。
【００３０】
最適な係数とガンマ値とを関連付けるデータ構造を、例えば、ソフトウェアパッケージの一部としてなど、１または複数のコンピュータ読取り可能媒体内に格納することができる。イメージがラスタ化される必要がある場合、補正係数は、フォントグリフレンダリングプロセス時のアクセスのためにＧＰＵに提出される。一実施形態では、関連付けデータ構造は、ＧＰＵ内に直接格納される。他の実施形態では、関連付けデータ構造は、ＧＰＵに格納される前に特定のハードウェア要件に対処するために、事前に前景色値および／または何らかの定数と組み合わされる。
【００３１】
イメージレンダリングの際、関連付けデータ構造にアクセスして、ＧＰＵによって受け取られたフィルタリング済みアルファ値に関するアルファ補正を実行する（ステップ１３０）。ステップ１３０は、アルファ補正を実行するための任意数の対応する動作を含むことができることが理解されよう。一実施形態では、アルファ補正を実行するステップ（ステップ１３０）は、ディスプレイの所定のガンマ値に対応する補正係数セットを選択する、対応する動作を含む（動作１４０）。これは、例えば、上記の関連付けデータ構造にアクセスすること、およびディスプレイのガンマ値に関連付けられた補正係数を選択することによって実施可能である。好ましい一実施形態によれば、補正係数の選択または受取りの動作（動作１４０）は、ディスプレイレンダリング時に実行されるが、選択された補正係数セットの計算動作（動作１２０）は、設計時に実行される。
【００３２】
次に、補正係数および前景色は、表示ピクセルの前景および背景の混合に使用されることになる補正済みアルファ値の計算に使用される（動作１５０）。一実施形態では、これは、図４を参照しながら上記で例示および説明した公式４１０を使用することで実施される。具体的には、
αｃｏｒｒｅｃｔｅｄ＝α＋α（１−α）（ｃ１αｆ＋ｃ２α＋ｃ３ｆ＋ｃ４）
であり、ここで、ｃ１、ｃ２、ｃ３、およびｃ４は補正係数を含み、ｆは表示ピクセルの知られた前景色であり、αは表示ピクセルの知られたアルファ値である。前述のように、補正済みα値を、表示ピクセルごとに任意の回数だけ計算することができる。例えば、表示ピクセルの各ピクセルサブコンポーネントについて補正済みαを計算することができるが、これに限定されない。具体的には、赤、緑、および青のピクセルサブコンポーネントを含む表示ピクセルは、３つの補正済みα値の計算に使用される３つのフィルタリング済みα値を含むことができる。これは特に、Microsoft ClearType（登録商標）のレンダリング技法を使用したフォントグリフのレンダリングに有用であることを理解されよう。
【００３３】
いったん補正済みα値が計算されると（動作１５０）、次にそれらを使用して、対応する表示ピクセルの前景色および背景色を混合するために、グラフィックス混合プロセス（動作１６０）を実行することができる。
【００３４】
一実施形態によれば、アルファ補正を実行するステップ（ステップ１３０）、および混合オペレーションを実行する動作（動作１６０）は、フォントグリフのレンダリングが実施可能な速度の向上を助けるＧＰＵ内で実行される。
【００３５】
図５は、前述のレンダリングプロセスの一実施を示す図である。ただし、前述の実施は単なる例示に過ぎず、本発明の範囲を限定するものと解釈すべきでないことを理解されよう。前述の例は、コンピュータプログラミング実践分野の技術者であれば、再生が可能である。図５に示された実施形態は、本発明のレンダリングプロセスが既存のハードウェアをベースとして実行可能であること、および複数のカラーチャネルが平行して計算可能であることを示す。
【００３６】
本実施形態は、様々なハードウェアタイプに統合されたアプリケーションプログラムインタフェース（ＡＰＩ）を提供する、MicrosoftのDirectX（登録商標）プログラムパッケージに基づいたプログラムモジュールを使用して、本発明を実施することができる。一実施形態によれば、本実施は、ハードウェアがピクセルシェーダ（pixel shader）のバージョン１．１および混合要素メカニズムをサポートしていると想定する限り、完全にデバイスと無関係ではない（以下では、Microsoft DirectX（登録商標）の用語が使用される）。
【００３７】
図５では、図表５００がハードウェアブロックとソフトウェアブロックとの間のデータ流れを表す。入力データは、「ガンマレベル」（５１２）、「前景色」（５１４）、および「アルファテクスチャ」（５２０）のブロックとして表示される。ガンマレベルは、ディスプレイ装置の物理表示機能を反映する数である。ガンマレベルは、事前に計算されたテーブルまたは他の関連するデータ構造から、適切な補正係数ｃ１、ｃ２、ｃ３、およびｃ４を選択するために使用される。補正係数の選択は、「多項式比率計算器」５１０で行われる。多項式比率計算器は、さらに前景色を取得し、対応する比率を計算して、それらをピクセルシェーダ（５４０）の定数レジスタに格納する。
【００３８】
表示する形状（テキストフラグメント）は、「アルファテクスチャ」ブロック５２０として示されるアルファ値の２次元アレイとして準備される。アルファ値は、「サンプラ１」（５３０）、「サンプラ２」（５３２）、および「サンプラ３」（５３４）として与えられた３つのサンプラを使用して、アルファテクスチャから１ピクセルあたり３回フェッチされる。サンプラは、赤色、緑色、および青色のサブコンポーネントに関するアルファ値を、ピクセルシェーダ５４０に供給する。
【００３９】
ピクセルシェーダ５４０は、非線形計算を実行して、赤色、緑色、および青色のサブコンポーネントについて補正済みアルファ値のベクトルを生成し、これらは出力ラスタライザ５５０に提供される。出力ラスタライザ５５０は、ピクセルシェーダ５４０から取得されたアルファ値を使用して、レンダリングターゲットサーフェス５６０からフェッチされた背景色と、混合要素として供給された前景色との間での線形混合を提供する。結果として生じるカラー値は、レンダリングターゲットサーフェス５６０で格納される。
【００４０】
ピクセルシェーダ５４０は、浮動小数点値の４次元ベクトルで動作する。ベクトル構成要素は、アルファ、赤、緑、および青の各構成要素に対応する接尾部、−ａ、−ｒ、−ｇ、および−ｂを使用して表される。これらのベクトルを保持できるエンティティを、「レジスタ」（図示せず）と呼ぶ。ピクセルシェーダ５４０は、前述のアルファ補正を実行するために、入力レジスタ（ｔｎ、すなわちｔ０、ｔ１、ｔ２など）、定数レジスタ（ｃｎ）、および一時レジスタ（ｒｎ）で動作する。以下の例では、一時レジスタｒ０が出力レジスタとして働く。
【００４１】
本実施形態によれば、ピクセルシェーダ５４０は、本発明のある動作を実行するために特殊化されたアセンブリ言語または他の好適なプログラミング言語で作成されたコンピュータ実行可能命令で制御される、調整可能なハードウェアブロックである。以下の例は、構成要素ごとに線形−３次アルファ補正を実施するためのコンピュータ実行可能命令を含む、ピクセルシェーダプログラムの一実施形態である。本実施形態によれば、このプログラムは、各ピクセルについて実施される。以下のプログラムは、前述のように、好ましくは、あらかじめ準備された定数レジスタｃ０．．．．ｃ５で多項式比率を受け入れる。多項式比率は、ガンマレベルまたは前景色が変更されたときに計算される。各定数レジスタの意味については、以下のピクセルシェーダプログラムの注釈で説明する。
【００４２】
【表１】
2004185008.tif 000003
【００４３】
【表２】
2004185008.tif 000004
【００４４】
【表３】
2004185008.tif 000005
【００４５】
以下の例は、多項式比率計算器５２０でプロセスを実施するためのＣ＋＋言語コンピュータ実行可能命令を含む。
【００４６】
【表４】
2004185008.tif 000006
【００４７】
【表５】
2004185008.tif 000007
【００４８】
前述の例には、レンダリング時に実行可能な他のオペレーションの記述が含まれないことを理解されよう。具体的には、前述の記述では、テクスチャ作成、出力ラスタライザ調整、頂点バッファを使用した操作、およびレンダリング時に実行可能な他のアクションについては述べていない。これらのオペレーションは、上記で言及したMicrosoft DirectX（登録商標）を使用するに当たっての標準的なオペレーションであるので、これらについては説明しない。したがって、本発明の方法、システム、およびコンピュータプログラムは、テクスチャ作成、出力ラスタライザ調整、および頂点バッファ操作を含むがこれらに限定されることのない、他のレンダリングオペレーションを含むこともできることを理解されよう。
【００４９】
要約すると、本発明は、ガンマ補正の欠如を補償するためにＧＰＵでのアルファ補正を提供する。これは、フォントグリフおよび他のイメージをレンダリングする全体の速度を、大幅に上げることができることを理解されよう。前述の例の多くは、具体的にフォントグリフのレンダリングを参照しながら提供されているが、本発明は、フォントグリフ以外の他のイメージのレンダリングにまで拡張することを理解されよう。したがって本発明は、ガンマ補正の欠如を補償するためにアルファ補正を実行することによって、ガンマ補正なしおよび所望の方法での任意のイメージのレンダリングまで、広範囲にわたって拡張する。
【００５０】
（オペレーティング環境）
図６および以下の考察は、本発明のある種の要素を実施するための好適なコンピューティング環境を、簡単かつ全般的に示すことを意図したものである。ただし本発明は、どんな特定のコンピュータ化システムにも限定される必要はなく、広範囲にわたるコンピュータ化システムで実施可能であることが重要視されるべきである。
【００５１】
一実施形態によれば、本発明は、コンピューティングデバイスによって実行可能な、プログラムモジュールなどのコンピュータ実行可能命令を格納している１または複数のコンピュータ読取り可能媒体を含む。一般に、プログラムモジュールには、特定のタスクを実行するかまたは特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれる。コンピュータ実行可能命令、関連付けられたデータ構造、およびプログラムモジュールは、本明細書に開示された方法の動作を実行するための、プログラムコード手段の例を表す。こうした実行可能命令または関連付けられたデータ構造の特定のシーケンスは、こうした動作に記載された機能を実施するための対応する動作の例を表す。
【００５２】
当分野の技術者であれば、本発明が、個々のコンピューティングデバイスに加えて、パーソナルコンピュータ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な大衆消費電子製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、その構成要素などを含む、多くの種類のコンピュータシステム構成を備えた、ネットワークコンピューティング環境で実施可能であることを理解されよう。また本発明は、通信ネットワークを介して（有線リンク、無線リンク、あるいは有線リンクまたは無線リンクの組合せのいずれかによって）リンクされたローカルおよびリモートの処理デバイスによってタスクが実行される、分散コンピューティング環境でも実施可能である。分散コンピューティング環境では、プログラムモジュールは、ローカルおよびリモート両方のメモリ記憶デバイス内に位置することができる。
【００５３】
具体的に図６を参照すると、本発明のある種の要素を実施するための例示的システムには、処理ユニット６２１、コンピュータ読取り可能媒体を備えるシステムメモリ６２２、および、システムメモリ６２２を含む様々なシステム構成要素を処理ユニット６２１に結合するシステムバス６２３を含む、従来型コンピュータ６２０の形式の汎用コンピューティングシステムが含まれる。システムバス６２３は、メモリバスまたはメモリコントローラ、周辺バス、および様々なバスアーキテクチャのうちのいずれかを使用するローカルバスを含む、いくつかのタイプのバス構造のうちのいずれかであってよい。システムメモリは、読取り専用メモリ（ＲＯＭ）６２４およびランダムアクセスメモリ（ＲＡＭ）６２５を含む。起動時などにコンピュータ６２０内の各要素間での情報の転送を助ける基本ルーチンを含む、基本入出力システム（ＢＩＯＳ）６２６は、ＲＯＭ６２４に格納することができる。
【００５４】
コンピュータ６２０は、磁気ハードディスク６３９からの読取りまたはこれへの書込みのための磁気ハードディスクドライブ６２７、取外し可能磁気ディスク６２９からの読取りまたはこれへの書込みのための磁気ディスクドライブ６２８、および、ＣＤ−ＲＯＭまたは他の光媒体などの取外し可能光ディスク６３１からの読取りまたはこれへの書込みのための光ディスクドライブ６３０も含むことができる。磁気ハードディスクドライブ６２７、磁気ディスクドライブ６２８、および光ディスクドライブ６３０は、それぞれ、ハードディスクドライブインタフェース６３２、磁気ディスクドライブインタフェース６３３、および光ドライブインタフェース６３４によって、システムバス６２３に接続される。ドライブおよびそれらに関連付けられたコンピュータ読取り可能媒体は、コンピュータ実行可能命令、データ構造、プログラムモジュール、およびコンピュータ６２０用の他のデータの、不揮発性記憶域を提供する。これらの記憶媒体は、前述のように、補正係数とガンマ値とを関連付けるデータ構造を格納するためにも使用することができる。本明細書に記載された例示的環境は、磁気ハードディスク６３９、取外し可能磁気ディスク６２９、および取外し可能光ディスク６３１を使用するが、磁気カセット、フラッシュメモリカード、デジタル汎用ディスク、ベルヌーイカートリッジ、ＲＡＭ、ＲＯＭなどを含む、データを格納するための他のタイプのコンピュータ読取り可能媒体を使用することができる。
【００５５】
１または複数のプログラムモジュールを含むプログラムコード手段は、オペレーティングシステム６３５、１または複数のアプリケーションプログラム６３６、他のプログラムモジュール６３７、およびプログラムデータ６３８を含む、ハードディスク６３９、磁気ディスク６２９、光ディスク６３１、ＲＯＭ６２４、またはＲＡＭ６２５上に格納することができる。ユーザは、キーボード６４０、ポインティングデバイス６４２、または、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送用パラボラアンテナ、スキャナなどの、他の入力デバイス（図示せず）を介して、コマンドおよび情報をコンピュータ６２０に入力することができる。これらおよび他の入力デバイスは、システムバス６２３に結合されたシリアルポートインタフェース６４６を介して、処理ユニット６２１に接続されることが多い。あるいは入力デバイスは、パラレルポート、ゲームポート、またはＵＳＢ（Universal Serial Bus）などの他のインタフェースによって、接続することもできる。モニタ６４７または他のディスプレイ装置も、ビデオアダプタ６４８などのインタフェースを介して、システムバス６２３に接続される。この文脈では、ビデオアダプタ６４８は、前述のようにＧＰＵを含むものとみなされる。パーソナルコンピュータは、通常、モニタに加えて、スピーカおよびプリンタなどの他の周辺出力デバイス（図示せず）も含む。
【００５６】
コンピュータ６２０は、リモートコンピュータ６４９ａおよび６４９ｂなどの、１または複数のリモートコンピュータへの論理接続を使用するネットワーク化された環境で動作可能である。リモートコンピュータ６４９ａおよび６４９ｂは、それぞれ他のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の共通ネットワークノードであってよく、典型的にはコンピュータ６２０に関して上記で述べた多くの、またはすべての要素を含むが、図６では、メモリ記憶デバイス６５０ａおよび６５０ｂならびにそれらの関連付けられたアプリケーションプログラム６３６ａおよび６３６ｂのみが例示されている。図６に示された論理接続は、本明細書に限定的ではなく例示的に示された、ローカルエリアネットワーク（ＬＡＮ）６５１およびワイドエリアネットワーク（ＷＡＮ）６５２を含む。こうしたネットワーキング環境は、事務所規模または企業規模のコンピュータネットワーク、イントラネットおよびインターネットとして普及している。
【００５７】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ６２０は、ネットワークインタフェースまたはアダプタ６５３を介してローカルネットワーク６５１に接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ６２０は、モデム６５４、無線リンク、または、インターネットなどのワイドエリアネットワーク６５２を介して通信を確立するための他の手段を含むことができる。モデム６５４は内蔵または外付けであってよく、シリアルポートインタフェース６４６を介してシステムバス６２３に接続される。ネットワーク化された環境では、コンピュータ６２０に関して示されたプログラムモジュールまたはその一部を、リモートメモリ記憶デバイス内に格納することができる。示されたネットワーク接続は例示的なものであり、ワイドエリアネットワーク６５２を介して通信を確立する他の手段が使用可能であることを理解されよう。
【００５８】
本発明は、その精神または本来の特徴を逸脱することなく、他の特定の形式でも実施可能であることを理解されよう。記載された実施形態は、すべての点で単なる例示的なものに過ぎず、限定的なものでないとみなされる。したがって、本発明の範囲は、前述の記述ではなく添付の特許請求の範囲で示される。特許請求の範囲の等化物の意味および領域内に入るすべての変更は、その範囲内に包含されるものである。
【図面の簡単な説明】
【００５９】
【図１】ガンマ補正の欠如を補償するためにフィルタリング済みアルファ値を補正するための方法を示す流れ図である。
【図２】所定のガンマ値に対応する補正係数のセットを計算しながら実行可能な一定の動作を含む最適化ルーチンのフローチャートである。
【図３】最適な補正係数セットの計算に関係することができる制約付き最適化の一実施形態を示す流れ図である。
【図４】既知のアルファ値、前景および補正係数から、補正済みアルファ値を計算するための図および対応する公式を示す図である。
【図５】ガンマ補正を含まないレンダリングプロセス時にＧＰＵによって使用可能な構成要素および要素を示す機能構成図である。
【図６】本発明の要素を実施するための好適なオペレーティング環境を提供するオペレーティングシステムの一実施形態を示す図である。
【符号の説明】
【００６０】
５１０  多項式比率計算器
５１２  ガンマレベル
５１４  前景色
５２０  アルファテクスチャ
５３０  サンプラ１
５３２  サンプラ２
５３４  サンプラ３
５４０  ピクセルシェーダ
５５０  出力ラスタライザ
５６０  ターゲットサーフェス
６２１  処理ユニット
６２２  システムメモリ
６２３  システムバス
６２４  ＲＯＭ
６２５  ＲＡＭ
６２６  ＢＩＯＳ
６３２  ハードディスクドライブインタフェース
６３３  磁気ディスクドライブインタフェース
６３４  光ドライブインタフェース
６３５  オペレーティングシステム
６３６  アプリケーションプログラム
６３６  アプリケーションプログラム
６３７  他のプログラムモジュール
６３８  プログラムデータ
６４０  キーボード
６４６  シリアルポートインタフェース
６４７  モニタ
６４８  ビデオアダプタ
６４９  リモートコンピュータ
６５１  ローカルエリアネットワーク
６５２  ワイドエリアネットワーク
６５３  ネットワークインタフェース
６５４  モデム
【図１】
2004185008.tif 000008
【図２】
2004185008.tif 000009
【図３】
2004185008.tif 000010
【図４】
2004185008.tif 000011
【図５】
2004185008.tif 000012
【図６】
2004185008.tif 000013