(57)【特許請求の範囲】
【請求項１】
イメージが表示される表示デバイスを有し、該表示デバイスは別々に制御可能な異なるカラーの複数のピクセルサブコンポーネントを各々が有する複数のピクセルを有し、それらピクセルサブコンポーネントは前記表示デバイス上でストライプを形成するコンピュータにおいて、該表示デバイス上でイメージをレンダリングするのに備えてイメージデータをラスタ化する方法であって、
前記ストライプに平行な方向における第1の係数と前記ストライプに垂直な方向における第2の係数とにより、表示デバイス上で表示されるべきイメージデータをスケーリングするステップと、
前記スケーリングされたイメージデータの選択されたデータポイントを前記表示デバイスの前記ピクセルによって定義されたグリッド上のグリッドポイントに調整するヒンティング動作を行うステップであって、該グリッドポイントの少なくともいくつかが、前記ストライプに垂直な方向で前記グリッド上の分数位置を有するステップと、
前記ストライプに垂直な方向で1より大きいオーバースケーリング係数により前記ヒンティング動作により得られたイメージデータをスケーリングするステップと、
前記イメージデータから生成されるサンプルのうち1つまたは複数のサンプルを各々が含み、各組が他の組とは異なるサンプルの組み合わせを含む、サンプルの組の各々を、前記ピクセルの前記ピクセルサブコンポーネントのそれぞれにマッピングするステップとを含むことを特徴とする方法。
【請求項２】
前記選択されたデータポイントを調整するヒンティング動作を行う前記ステップが、
前記ストライプに平行な方向で最も近いフルピクセル境界に対応し、かつ
前記ストライプに垂直な方向でグリッド上の最も近い分数位置に対応するグリッドポイントに前記選択されたポイントを丸める処理を含むことを特徴とする請求項1に記載の方法。
【請求項３】
前記ストライプに平行な方向における前記第1の係数が、1であることを特徴とする請求項1に記載の方法。
【請求項４】
前記ストライプに垂直な方向における前記第2の係数が、1であることを特徴とする請求項3に記載の方法。
【請求項５】
前記オーバースケーリング係数が、前記グリッドポイントの前記分数位置の分母に等しいことを特徴とする請求項1に記載の方法。
【請求項６】
マッピングする前記ステップが、前記イメージデータをサンプリングして、フルピクセルに対応する前記ヒンティング動作により得られたイメージデータの各領域に対して、前記分母に等しい数のサンプルを生成する処理を含むことを特徴とする請求項5に記載の方法。
【請求項７】
前記表示デバイスが、液晶ディスプレイを含むことを特徴とする請求項1に記載の方法。
【請求項８】
前記分数位置の分母に前記ストライプに垂直な方向の前記第2の係数を掛けることにより、フルピクセルに対応する前記イメージデータの各領域に対して生成されるサンプルの数に等しい値が生成されることを特徴とする請求項1に記載の方法。
【請求項９】
前記分母が、1以外の値を有し、かつ前記第2の係数が、1以外の値を有することを特徴とする請求項8に記載の方法。
【請求項１０】
前記ピクセルサブコンポーネントのそれぞれに対して、該ピクセルサブコンポーネントにマップされた1つまたは複数のサンプルの異なる組に基づき、別々の光度値を生成するステップをさらに含むことを特徴とする請求項1に記載の方法。
【請求項１１】
前記別々の光度値を用いて前記表示デバイス上に前記イメージを表示することで、ピクセル全体ではなく、前記ピクセルの前記ピクセルサブコンポーネントのそれぞれにおいて、前記イメージの異なる部分を表すステップをさらに含むことを特徴とする請求項10に記載の方法。
【請求項１２】
イメージが表示される表示デバイスを有し、該表示デバイスは別々に制御可能な異なるカラーの複数のピクセルサブコンポーネントを各々が有する複数のピクセルを有し、それらピクセルサブコンポーネントは前記表示デバイス上でストライプを形成するコンピュータにおいて、該表示デバイス上でイメージをレンダリングするのに備えてイメージデータをラスタ化する方法であって、
前記ストライプに平行な方向における第1の係数と前記ストライプに垂直な方向における第2の係数とにより、表示デバイス上で表示されるべきイメージデータをスケーリングする処理と、
前記表示デバイスの前記ピクセルによって定義されたグリッド上のグリッドポイントに前記スケーリングされたイメージデータの選択されたポイントを丸めるヒンティング処理であって、前記グリッドポイントが、前記ストライプに平行な方向で最も近いフルピクセル境界に対応し、かつ前記ストライプに垂直な方向で前記グリッド上の最も近い分数位置に対応し、前記分数位置が、選択された分母を有する処理と、
前記ストライプに垂直な方向で、前記分数位置の前記分母に等しい1より大きいオーバースケーリング係数で前記ヒンティング処理により得られたイメージデータをスケーリングする処理と、
フルピクセルに対応する前記イメージデータの各領域に対して、前記第2の係数と前記オーバースケーリング係数を掛けることによって生成された積に等しい数のサンプルを生成する処理と、
前記の数のサンプルのうち１つまたは複数のサンプルを各々が含み、各組が他の組とは異なるサンプルの組み合わせを含む、サンプルの組の各々を、前記フルピクセルの前記ピクセルサブコンポーネントのそれぞれにマッピングする処理と
を含むことを特徴とする方法。
【請求項１３】
前記表示デバイスが、液晶ディスプレイを含むことを特徴とする請求項12に記載の方法。
【請求項１４】
前記表示デバイス上で形成された前記ストライプのそれぞれが、同じカラーのピクセルサブコンポーネントから構成されることを特徴とする請求項12に記載の方法。
【請求項１５】
前記表示デバイス上で形成された前記ストライプのそれぞれが、異なるカラーのピクセルサブコンポーネントから構成されることを特徴とする請求項12に記載の方法。
【請求項１６】
前記ストライプに垂直な方向における前記第2の係数が、1であることを特徴とする請求項12に記載の方法。
【請求項１７】
前記ストライプに垂直な方向における前記第2の係数が、1以外の値を有することを特徴とする請求項12に記載の方法。
【請求項１８】
表示デバイス上でストライプを形成する異なるカラーの複数の別々に制御可能なピクセルサブコンポーネントをそれぞれが有する複数のピクセルを有する前記表示デバイス上でイメージをレンダリングするのに備えてイメージデータをラスタ化するための方法を実施するためのプログラムであって、コンピュータに、
前記ストライプに平行な方向における第1の係数と前記ストライプに垂直な方向における第2の係数とにより、表示デバイス上で表示されるべきイメージデータをスケーリングするステップと、
前記スケーリングされたイメージデータの選択されたデータポイントを前記表示デバイスの前記ピクセルによって定義されたグリッド上のグリッドポイントに調整するヒンティング動作を行うステップであって、該グリッドポイントの少なくともいくつかが、前記ストライプに垂直な方向で前記グリッド上の分数位置を有するステップと、
前記ストライプに垂直な方向で1より大きいオーバースケーリング係数により前記ヒンティング動作により得られたイメージデータをスケーリングするステップと、
前記イメージデータから生成されるサンプルのうち1つまたは複数のサンプルを各々が含み、各組が他の組とは異なるサンプルの組み合わせを含む、サンプルの組の各々を、前記ピクセルの前記ピクセルサブコンポーネントのそれぞれにマッピングするステップと
を実行させるプログラム。
【請求項１９】
前記選択されたデータポイントを調整するヒンティング動作を行う前記ステップが、
前記ストライプに平行な方向で最も近いフルピクセル境界に対応し、かつ
前記ストライプに垂直な方向でグリッド上の最も近い分数位置に対応するグリッドポイントに前記選択されたポイントを丸める処理を含むことを特徴とする請求項18に記載のプログラム。
【請求項２０】
前記ストライプに垂直な方向における前記第2の係数が、1であることを特徴とする請求項18に記載のプログラム。
【請求項２１】
前記オーバースケーリング係数が、前記グリッドポイントの前記分数位置の分母に等しいことを特徴とする請求項18に記載のプログラム。
【請求項２２】
マッピングする前記ステップが、前記イメージデータをサンプリングして、フルピクセルに対応する前記ヒンティング動作により得られたイメージデータの各領域に対して、前記分母に等しい数のサンプルを生成する処理を含むことを特徴とする請求項21に記載のプログラム。
【請求項２３】
前記分数位置の分母に前記ストライプに垂直な方向の前記第2の係数を掛けることにより、フルピクセルに対応する前記イメージデータの各領域に対して生成されるサンプルの数に等しい値が生成されることを特徴とする請求項18に記載のプログラム。
【請求項２４】
前記分母が、1以外の値を有し、かつ前記第2の係数が、1以外の値を有することを特徴とする請求項23に記載のプログラム。
【請求項２５】
処理装置と、
表示デバイス上でストライプを形成する異なるカラーの複数の別々に制御可能なピクセルサブコンポーネントをそれぞれが有する複数のピクセルを有する表示デバイスと、
実行されたとき、前記表示デバイス上でイメージをレンダリングするのに備えてイメージデータをラスタ化する方法をコンピュータシステムに実施させるプログラムを格納するコンピュータ可読媒体とを具備し、
前記プログラムが、コンピュータシステムに、
前記ストライプに平行な方向における第1の係数と前記ストライプに垂直な方向における第2の係数とにより、表示デバイス上で表示されるべきイメージデータをスケーリングするステップと、
前記スケーリングされたイメージデータの選択されたデータポイントを前記表示デバイスの前記ピクセルによって定義されたグリッド上のグリッドポイントに調整するヒンティング動作を行うステップであって、該グリッドポイントの少なくともいくつかが、前記ストライプに垂直な方向で前記グリッド上の分数位置を有するステップと、
前記ストライプに垂直な方向で1より大きいオーバースケーリング係数で前記ヒンティング動作により得られたイメージデータをスケーリングするステップと、
前記イメージデータから生成されるサンプルのうち1つまたは複数のサンプルを各々が含み、各組が他の組とは異なるサンプルの組み合わせを含む、サンプルの組の各々を、前記ピクセルの前記ピクセルサブコンポーネントのそれぞれにマッピングするステップと
を実行させることを特徴とするコンピュータシステム。
【請求項２６】
前記第1の係数と前記第2の係数が等しいことを特徴とする請求項25に記載のコンピュータシステム。
【請求項２７】
前記選択されたデータポイントを調整するヒンティング動作を行う前記ステップが、
前記ストライプに平行な方向で最も近いフルピクセル境界に対応し、かつ
前記ストライプに垂直な方向で前記グリッド上の最も近い分数位置に対応するグリッドポイントに、前記選択されたポイントを丸める処理を含むことを特徴とする請求項25に記載のコンピュータシステム。
【請求項２８】
前記オーバースケーリング係数が、前記グリッドポイントの前記分数位置の分母に等しいことを特徴とする請求項25に記載のコンピュータシステム。
【請求項２９】
マッピングする前記ステップが、前記イメージデータをサンプリングして、フルピクセルに対応する前記ヒンティング動作により得られたイメージデータの各領域に対して、前記分母に等しい数のサンプルを生成する処理を含むことを特徴とする請求項28に記載のコンピュータシステム。
【請求項３０】
前記表示デバイスが、液晶ディスプレイを含むことを特徴とする請求項25に記載のコンピュータシステム。
【請求項３１】
前記表示デバイス上で形成された前記ストライプのそれぞれが、同じカラーのピクセルサブコンポーネントから構成されることを特徴とする請求項25に記載のコンピュータシステム。
【請求項３２】
前記表示デバイス上で形成された前記ストライプのそれぞれが、異なるカラーのピクセルサブコンポーネントから構成されることを特徴とする請求項25に記載のコンピュータシステム。
【請求項３３】
前記分数位置の分母に前記ストライプに垂直な方向で前記第2の係数を掛けることにより、フルピクセルに対応する前記イメージデータの各領域に対して生成されるサンプルの数に等しい値が生成されることを特徴とする請求項25に記載のコンピュータシステム。
【発明の詳細な説明】
【０００１】
(発明の背景)
1.発明の分野
本発明は、より高い解像度でイメージを表示するための方法およびシステムに関し、より詳細には、より多くのサンプリングポイントを利用して、液晶ディスプレイなどの表示デバイス上で表示されるイメージのより高い解像度をもたらす方法およびシステムに関する。
【０００２】
2.従来の技術
情報時代の到来とともに、世界中の一人一人が、表示デバイスを眺めることに相当な時間を費やしており、そのため、眼精疲労などの問題に悩まされている。一人一人によって眺められる表示デバイスは、テキスト文字などの電子イメージデータを表示する。テキストは、テキスト文字の解像度が向上するにつれて読み取るのがより容易になり、眼精疲労が軽減されることが認められている。したがって、表示デバイス上に表示されるテキストおよびグラフィックス（図形）の高い解像度を実現することが、ますます重要になっている。
【０００３】
ますます普及している1つのそのような表示デバイスが、液晶ディスプレイ(LCD)などのフラットパネル表示デバイスである。しかし、フォントを生成して表示することを含め、ほとんどの従来のイメージ処理技術は、LCD上の表示に合わせてではなく、陰極線管(CRT)ディスプレイ上の表示に合わせて開発され、最適化されてきた。さらに、既存のテキスト表示ルーチンは、特に表示デバイスの光源の物理特性に関して、CRTデバイスの特性とは相当に異なるフラットパネル表示デバイスの固有物理特性を考慮に入れていない。
【０００４】
CRT表示デバイスは、アナログ式に制御された走査電子ビームを使用してスクリーン上に位置する蛍光体をアクティブにする。電子ビームによって照光されたCRT表示デバイスのピクセルは、それぞれが異なるカラーの3つ一組のドットから成る。ピクセルに含まれるドットが一緒に制御されて、特定の色相、彩度、および輝度で定義される選択されたカラーを有する光の単一ポイントまたは単一領域としてユーザによって感知されるものが生成される。CRT表示デバイスのピクセルの中の個々のドットは、別々に制御可能なものではない。従来のイメージ処理技術は、イメージデータの単一のサンプルをピクセル全体にマップし、そのピクセルに含まれる3つのドットが一緒にイメージの単一部分を表す。CRT表示デバイスは、デスクトップパーソナルコンピュータやワークステーションとの組合せで、また可搬性が重要な考慮すべき事項ではないその他のコンピュータ環境で広く使用されてきた。
【０００５】
CRT表示デバイスとは対照的に、LCDデバイスのピクセル、特にデジタル駆動方式のピクセルは、別々にアドレス指定可能であり、別々に制御可能なピクセルサブコンポーネント（pixel sub-component：画素従部品）を有する。例えば、LCD表示デバイスのピクセルは、別々に制御可能なレッド、グリーン、およびブルーのピクセルサブコンポーネントを有することが可能である。LCDデバイスのピクセルの各ピクセルサブコンポーネントは、個々にデジタル制御することが可能な個別の発光デバイスである。しかしながら、LCD表示デバイスは、CRT表示デバイスに合わせて元々設計されたイメージ処理技術と併せて使用されており、このため、ピクセルサブコンポーネントの別々に制御可能な性質は利用されていない。既存のテキストレンダリングプロセスは、LCD表示デバイスに適用されたとき、それぞれの３部分から成るピクセルがイメージの単一部分を表すことをもたらす。LCDデバイスは、そのサイズ、重量、および比較的低い所要電力のため、携帯用コンピュータまたはラップトップコンピュータで広く使用されるようになっている。ただし、年を追って、LCDデバイスは、その他のコンピュータ環境でもより一般的になり始めており、可搬でないパーソナルコンピュータでもより広く使用されるようになっている。
【０００６】
LCDデバイスに適用される従来のレンダリングプロセスを図１に示しており、この図は、イメージデータ10が、LCDデバイスの領域12のピクセル全体11にマップされているのを示している。図では、イメージデータ10、およびフラットパネル表示デバイス(例えば、LCDデバイス)の部分12が、対応する行R(N)からR(N+2)まで、および列C(N)からC(N+2)までを含んでいる。フラットパネル表示デバイスの部分12は、別々に制御可能なレッド、グリーン、およびブルーのピクセルサブコンポーネントをそれぞれが有するピクセル11を含んでいる。
【０００７】
マッピング動作の一環として、行R(N)と列C(N+1)の交差で定義されるイメージデータ10の領域15を表す単一のサンプル14が、行R(N)と列C(N+1)の交差に位置する３部分から成るピクセル全体11Aにマッピングされる。ピクセル11AのR、G、Bのピクセルサブコンポーネントを明るくするに使用される光度の値は、単一のサンプル14に基づいて生成される。この結果、ピクセル全体11Aが、イメージデータの単一領域、すなわち、領域15を表す。R、G、Bのピクセルサブコンポーネントは別々に制御可能であるが、図1の従来のイメージレンダリングプロセスでは、サブコンポーネントの別々に制御可能な性質を利用するのではなく、サブコンポーネントを一緒に働かせてイメージの単一領域を表す単一のカラーを表示している。
【０００８】
1インチ当り72ドットまたは96ドット(ピクセル)(dpi)の典型的なフラットパネルの表示解像度では、テキスト文字は正確に表示するのが特に困難なイメージの1つのタイプを代表する。そのような表示解像度は、ほとんどのプリンタによってサポートされる600dpiよりはるかに低い。さらに高い解像度が、本や雑誌などのほとんどの商用に印刷されたテキストで見られる。このため、特に10ポイントタイプ、12ポイントタイプ、および14ポイントタイプの一般的なテキストサイズにおいて、滑らかな文字形状を描くのに十分なだけのピクセルが利用できない。そのような一般的テキストレンダリングサイズでは、テキストの部分が、印刷テキストと比べて表示デバイス上でより目立ち、粗く見える。
【０００９】
したがって、表示デバイス上、特にフラットパネルディスプレイ上でテキストおよびグラフィックスの解像度を向上させることが、当技術分野における進歩となる。表示イメージの粗さを減少させ、表示イメージが、印刷イメージ、または印刷業者によってデザインされたフォントイメージデータに見た目がよりよく似るようにすることが、当技術分野における進歩となる。また、そのようなより高い解像度を提供するイメージ処理技術が、フラットパネル表示デバイスの固有の物理的特性を考慮に入れることも望ましい。
【００１０】
(発明の概要)
本発明は、液晶ディスプレイ(LCD)などのフラットパネル表示デバイス上でイメージを表示するための方法およびシステムを対象とする。フラットパネル表示デバイスは、水平ストライピング（striping）または垂直ストライピングなどの様々なタイプのピクセル構成を使用しており、本発明は、構成の選択肢のどれにでも適用して表示デバイス上の解像度を向上させることができる。
【００１１】
本発明は、ピクセル全体がイメージの単一部分を表すのではなく、フラットパネル表示デバイスの個々のピクセルサブコンポーネントが別々に制御されてイメージの異なる部分を表すイメージ処理動作に関する。従来のイメージ処理技術とは異なり、本発明のイメージ処理動作は、LCD表示デバイスにおけるピクセルサブコンポーネントの別々に制御可能な性質を利用する。この結果、本発明に従ってレンダリングされたテキストおよびグラフィックスは、より高い解像度および可読性を有する。
【００１２】
本明細書では、本発明を主にテキスト文字をレンダリングするコンテキスト（文脈）で説明するが、本発明は、グラフィックス等を表すイメージデータの処理にも拡張される。文字の輪郭を表す一組の点、線、および曲線で形状的に定義されるテキスト文字が、本発明に従って処理することができるイメージデータのタイプの例を代表する。
【００１３】
本発明の一般的イメージ処理動作には、イメージデータに対して行われるスケーリング動作、ヒンティング（hinting）動作、および走査変換動作が含まれる。スケーリング動作およびヒンティング動作は、走査変換動作に先立って行われるが、以下の説明は、まず、走査変換を対象として、その他の動作の理解を容易にする基本的概念、すなわち、スーパーサンプリング レート（super sampling  rate）およびオーバースケーリング係数（overscaling factor）を論説する。
【００１４】
ピクセルのピクセルサブコンポーネントのそれぞれが、イメージの異なる部分を表すことができるようにするため、スケーリングおよびヒンティングの行われたイメージデータが、走査変換動作でスーパーサンプリングされる。データは、従来のイメージ処理技術で必要とされるより多くのイメージデータのサンプルが生成されるという意味で「スーパーサンプリングされる」。表示デバイスのピクセルが3つのピクセルサブコンポーネントから成る場合、イメージデータを使用して、ピクセル全体に対応するイメージデータの各領域の中で少なくとも3つのサンプルを生成する。しばしば、スーパーサンプリングレート、つまりピクセル全体に対応するイメージデータの各領域に関してスーパーサンプリング動作で生成されるサンプル数は、3より多い。このサンプル数は、本明細書で以下により詳細に説明するとおり、サンプルを個々のピクセルサブコンポーネントにマッピングするのに使用される重み付け係数に依存する。例えば、イメージデータを10、16、20のスーパーサンプリングレートでサンプリングする、または、イメージデータのピクセルサイズの領域当り、任意の他の所望のサンプル数でサンプリングすることが可能である。一般に、スーパーサンプリングレートを高くして、イメージデータの解像度に近づかせるにつれ、表示イメージのより高い解像度を得ることができる。次に、サンプルがピクセルサブコンポーネントにマップされて、後に表示デバイス上にイメージを表示する際に使用されるビットマップが生成される。
【００１５】
スーパーサンプリングを容易にするため、スーパーサンプリングされるイメージデータが、走査変換動作の一環として表示デバイスのストライピングに垂直な方向でオーバースケーリングされる。オーバースケーリングは、スーパーサンプリングレート、つまりフルピクセル（full pixel）に対応するイメージデータの各領域に関して生成されるサンプル数、に等しいオーバースケーリング係数を使用して行われる。
【００１６】
前述した走査変換動作を受けるイメージデータは、まず、スケーリング動作およびヒンティング動作で処理される。スケーリング動作は、ストライピングに垂直および水平な方向で1の係数でイメージデータがスケーリングされる単純なもの（trivial）で可能である。そのような単純な場合、スケーリング係数を省略することができる。あるいは、スケーリング係数は、1以外の係数でストライピングに垂直な方向と平行な方向の両方でイメージデータがスケーリングされるか、またはストライピングに垂直な方向である係数で、またストライピングに平行な方向で別の係数でイメージデータがスケーリングされる単純でないものであることが可能である。
【００１７】
ヒンティング動作は、表示デバイスのピクセルの位置で定義されるグリッドポイントを有するグリッド上にスケーリングされたイメージデータを重ね合わせ、そのグリッドに対してイメージデータ上のキーポイント(すなわち、文字輪郭上の点)の位置を調整することを含む。キーポイントは、グリッド上で分数位置を有するグリッドポイントに丸められる。グリッドポイントは、グリッド上でフルピクセルの境界以外の場所に該当する可能性があるという意味で分数である。分数位置の分母は、前述した走査変換動作で使用されるオーバースケーリング係数に等しい。言い換えれば、キーポイントを調整して合わせるのが可能なグリッドの特定のピクセルサイズ領域の中のグリッド位置の数は、オーバースケーリング係数に等しい。走査変換プロセスのスーパーサンプリングレートおよびオーバースケーリング係数が16である場合、イメージデータは、ヒンティング動作において、ピクセルの1/16の分数位置を有するグリッドポイントに調整される。ヒンティングされたイメージデータは、この時点で、前述した走査変換動作で処理されように利用可能である。
【００１８】
以上のスケーリング動作、ヒンティング動作、および走査変換動作により、従来技術のイメージレンダリングプロセスと比べて、イメージデータをより高い解像度でLCDなどのフラットパネル表示デバイス上に表示できるようになる。ピクセル全体が、イメージの単一領域を表すのではなく、各ピクセルサブコンポーネントが、イメージデータの空間的に異なる領域を表す。
【００１９】
本発明のさらなる特徴および利点を以下の説明で記載しており、これらの特徴および利点は、部分的にはこの説明から明白となるか、または本発明の実施によって知ることができる。本発明の特徴および利点は、添付の特許請求の範囲で特に指摘した機器およびその組合せを使用して実現して得ることができる。本発明の以上の特徴およびその他の特徴は、以下の説明および添付の特許請求の範囲からより十分に明白となるか、または以下に記載する本発明の実施によって知ることができる。
【００２０】
本発明の上述した利点およびその他の利点が得られる仕方で、添付の図面に図示された本発明の具体的な実施形態を参照して、以上に簡単に述べた本発明をより詳細に説明する。これらの図面は、本発明の典型的な実施形態だけを描いており、したがって、本発明の範囲を限定するものと見なすべきでないと理解するものであって、添付の図面を使用して本発明をさらに具体的かつ詳細に記載し、説明する。
【００２１】
(好ましい実施形態の詳細な説明)
本発明は、フラットパネルディスプレイにおけるピクセルサブコンポーネントの別々に制御可能な性質を利用することにより、より高い解像度でイメージデータを表示するための方法とシステムの両方に関する。ピクセルサブコンポーネントのそれぞれには、イメージデータの空間的に別個の一組の1つまたは複数のサンプルがマップされる。この結果、ピクセル全体が、イメージの単一部分を表すのではなく、ピクセルサブコンポーネントのそれぞれが、イメージの異なる部分を表す。
【００２２】
本発明は、高解像度の表示イメージを生成するのに使用されるイメージ処理技術を対象とする。本発明によれば、スケーリングされ、ヒンティングされたイメージデータが、スーパーサンプリングされて、個々のピクセルサブコンポーネントにマッピングされるサンプルが得られる。スーパーサンプリングの準備として、イメージデータがヒンティングされ、表示デバイスのピクセルおよびピクセルサブコンポーネントを表すグリッドに合わせられ、イメージデータの選択されたキーポイントが、ピクセル境界に対して分数位置を有するグリッドポイントに調整される。
【００２３】
本発明および対応する好ましい実施形態の開示を円滑にするため、例としてのコンピュータ環境およびハードウェア環境、イメージデータ処理およびイメージレンダリング動作、ならびに例としてのソフトウェア実施形態を中心に扱うサブセクション（小節）に以下の説明を分ける。
【００２４】
I.典型例としてのコンピュータ環境およびハードウェア環境
本発明の実施形態は、以下により詳細に説明する様々なコンピュータハードウェアコンポーネントを含む専用コンピュータまたは汎用コンピュータを含むことが可能である。また、本発明の範囲内の実施形態は、コンピュータ実行可能命令またはデータ構造を搬送、または保持しているコンピュータ可読媒体も含むことが可能である。そのようなコンピュータ可読媒体は、汎用コンピュータまたは専用コンピュータでアクセスすることができる任意の利用可能な媒体である。例として、限定するものとしてではなく、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、または光ディスクストーレッジ、磁気ディスクストーレッジまたはその他の磁気記憶デバイス、あるいはコンピュータ実行可能命令またはデータ構造の形態で所望のプログラムコード手段を搬送、または格納するのに使用することができ、かつ汎用コンピュータまたは専用コンピュータでアクセスすることができる他の任意の媒体を含むことが可能である。情報が、ネットワークまたは別の通信接続(ハードワイヤド、無線、またはハードワイヤドと無線の組合せの)を介してコンピュータに転送または提供される場合、そのコンピュータは、適切にその接続をコンピュータ可読媒体と見なす。したがって、任意のそのような接続が、コンピュータ可読媒体と適切に呼ばれる。また、以上の組合せも、コンピュータ可読媒体の範囲に含まれるべきである。コンピュータ実行可能命令は、例えば、ある機能または一群の機能を汎用コンピュータ、専用コンピュータ、または専用処理デバイスが行うようにさせる命令およびデータを含む。
【００２５】
図2および以下の説明は、本発明を実施することができる好適なコンピュータ環境の簡単な一般的説明を提供することを目的とする。必須ではないが、1つまたは複数のコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的コンテキストで本発明を説明する。一般に、プログラムモジュールには、特定のタスクを行う、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造、その他が含まれる。コンピュータ実行可能命令、関連するデータ構造、およびプログラムモジュールが、本明細書で開示する方法のステップを実行するためのプログラムコード手段の例を代表する。そのような実行可能命令または関連するデータ構造の特定のシーケンスが、そのようなステップで記述される機能を実施するための対応する処理の例を代表する。
【００２６】
パーソナルコンピュータ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの家庭用電化製品またはプログラマブル家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ等を含む多くのタイプのコンピュータシステム構成を備えたネットワークコンピュータ環境で本発明を実行するのが可能であることが、当分野の技術者には理解されよう。また、通信網を介してリンクされた(ハードワイヤドリンク、無線リンク、またはハードワイヤドリンクと無線リンクの組合せで)ローカル処理デバイスと遠隔処理デバイスによってタスクが行われる分散コンピュータ環境でも本発明を実行することが可能である。分散コンピュータ環境では、プログラムモジュールは、ローカルのメモリ記憶デバイスと遠隔のメモリ記憶デバイスの両方に配置されていることが可能である。
【００２７】
図2を参照すると、本発明を実施するための例としてのシステムは、処理装置21、システムメモリ22、およびシステムメモリ22から処理装置21まで含む様々なシステムコンポーネントを結合するシステムバス23を含む従来のコンピュータの形態の汎用コンピュータ装置20を含む。システムバス23は、様々なバスアーキテクチャの任意のものを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のどれであっても可能である。システムメモリは、読取り専用メモリ(ROM)24およびランダムアクセスメモリ(RAM)25を含む。始動時などにコンピュータ20内部の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入力/出力システム(BIOS)26が、ROM24の中に記憶されていることが可能である。
【００２８】
また、コンピュータ20は、磁気ハードディスク39に対して読取りおよび書込みを行うための磁気ハードディスクドライブ27、取外し可能な磁気ディスク29に対して読取りおよび書込みを行うための磁気ディスクドライブ28、およびCD-ROMまたはその他の光媒体などの取外し可能な光ディスク31に対して読取りおよび書込みを行うための光ディスクドライブ30も含むことが可能である。磁気ハードディスクドライブ27、磁気ディスクドライブ28、および光ディスクドライブ30はそれぞれ、ハードディスクドライブインターフェース32、磁気ディスクドライブインターフェース33、および光ドライブインターフェース34でシステムバス23に接続されている。これらのドライブおよび関連するコンピュータ可読媒体が、コンピュータ20のためのコンピュータ実行可能命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性ストーレッジ（記憶装置）を提供する。本明細書で説明する典型例としての環境は、磁気ハードディスク39、取外し可能な磁気ディスク29、および取外し可能な光ディスク31を使用するが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、RAM、ROM等を含め、データを記憶するためのその他のタイプのコンピュータ可読媒体も使用することができる。
【００２９】
オペレーティングシステム35、1つまたは複数のアプリケーションプログラム36、その他のプログラムモジュール37、およびプログラムデータ38を含め、1つまたは複数のプログラムモジュールを含むプログラムコード手段をハードディスク39上、磁気ディスク29上、光ディスク31上、ROM24上またはRAM25上に記憶することができる。ユーザは、キーボード40、ポインティングデバイス42、またはマイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ等などのその他の入力デバイス(図示せず)を介して、コマンドおよび情報をコンピュータ20に入力することができる。以上およびその他の入力デバイスは、しばしば、システムバス23に結合されたシリアルポートインターフェース46を介して処理装置21に接続される。あるいは、入力デバイスは、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などのその他のインターフェースで接続することができる。また、フラットパネル表示デバイス、または別のタイプの表示デバイスであることが可能なモニタ47も、ビデオアダプタ48などのインターフェースを介してシステムバス23に接続される。モニタに加え、パーソナルコンピュータは、通常、スピーカやプリンタなどの他の周辺出力デバイス(図示せず)を含む。
【００３０】
コンピュータ20は、遠隔コンピュータ49aおよび49bなどの1つまたは複数の遠隔コンピュータに対する論理接続を使用するネットワーク化された環境で動作することが可能である。遠隔コンピュータ49aおよび49bはそれぞれ、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的ネットワークノードであることが可能であり、通常、コンピュータ20に関連して前述した要素の多く、またはすべてを含む。ただし、メモリ記憶デバイス50aおよび50b、ならびに関連するアプリケーションプログラム36aおよび36bだけを図2に示している。図2に描いた論理接続は、本明細書で例として、限定するものとしてではなく提示するローカルエリアネットワーク(LAN)51およびワイドエリアネットワーク(WAN：広域ネットワーク)52を含む。そのようなネットワーク環境は、オフィス全体または企業全体のコンピュータ網、イントラネット、およびインターネットで一般的である。
【００３１】
LANネットワーキング環境で使用される場合、コンピュータ20は、ネットワークインターフェースまたはネットワークアダプタ53を介してローカルネットワーク51に接続される。WANネットワーキング環境で使用される場合、コンピュータ20は、インターネットなどのワイドエリアネットワーク52を介して通信を確立するため、モデム54、無線リンク、またはその他の手段を含むことが可能である。内部または外部にあることが可能なモデム54は、シリアルポートインターフェース46を介してシステムバス23に接続される。ネットワーク化された環境では、コンピュータ20に関連して描いたプログラムモジュール、またはプログラムモジュールの部分を遠隔のメモリ記憶デバイスの中に記憶することができる。図示したネットワーク接続は、例としてのものであり、ワイドエリアネットワーク52を介して通信を接続するその他の手段も使用できることが理解されよう。
【００３２】
前述したとおり、本発明は、パーソナルコンピュータ、ハンドヘルドデバイス（携帯端末）、マルチプロセッサシステム、マイクロプロセッサベースの家庭用電化製品またはプログラマブル家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどの多くのタイプのコンピュータシステム構成を含むコンピュータ環境で実施することができる。1つのそのような例としてのコンピュータシステム構成を可搬コンピュータ（ポータブルコンピュータ）60として図3に示しており、このコンピュータ60は、磁気ディスクドライブ28、光ディスクドライブ30および対応する取外し可能な光ディスク31、キーボード40、モニタ47、ポインティングデバイス62、およびハウジング64を含む。
【００３３】
可搬コンピュータ60などのポータブルパーソナルコンピュータは、図3にモニタ47で示すような、イメージデータを表示するためにフラットパネル表示デバイスを使用する傾向がある。フラットパネル表示デバイスの一例が、液晶ディスプレイ(LCD)である。フラットパネル表示デバイスは、陰極線管(CRT)ディスプレイなどのその他の表示デバイスと比べて、小型で軽量である傾向がある。さらに、フラットパネル表示デバイスは、同等のサイズのCRTディスプレイより少ない電力を消費する傾向があり、バッテリで給電されるアプリケーションにより適したものとなっている。したがって、フラットパネル表示デバイスは、ますます普及してきている。また、品質が向上しつづけ、費用が低下しつづけているので、フラットパネルディスプレイは、デスクトップアプリケーションでもCRTディスプレイに取って代わるようになり始めている。
【００３４】
本発明は、別々に制御可能なピクセルサブコンポーネントを有する実質的にあらゆるLCDまたはその他のフラットパネル表示デバイスで実施することができる。例示のため、本明細書では、主に、セイムカラー（same-colored）ピクセルサブコンポーネントの垂直ストライプに配列構成されたレッド、グリーン、およびブルーのピクセルサブコンポーネントを有するLCD表示デバイスのコンテキスト（状況）で本発明を説明している。というのは、これが、可搬コンピュータで現在、最も一般的に使用されるタイプの表示デバイスであるからである。さらに、本発明は、垂直ストライプまたは厳密に3つのピクセルサブコンポーネントを備えたピクセルを有する表示デバイスで使用することに限定されない。一般に、本発明は、任意のタイプのピクセル/サブコンポーネント構成を有する、または1ピクセル当り、任意の数のピクセルサブコンポーネントを有するLCDまたは別のフラットパネル表示デバイスで実施することができる。
【００３５】
図4Aおよび4Bは、例としてのフラットパネル表示デバイスの物理特性を示している。図4Aでは、カラーLCDが、複数の行と複数の列を含むLCD70として示されている。行は、R1-R12とラベル付けされ、また列は、C1-C16とラベル付けされている。カラーLCDは、本明細書でそれぞれ、ピクセルおよびピクセルサブコンポーネントと呼ぶ複数の個々にアドレス指定可能な要素およびサブ要素を利用する。LCD70の左側上部をより詳細に示す図4Bは、ピクセルとピクセルサブコンポーネントの間の関係を提示している。
【００３６】
各ピクセルは、レッド(R)サブコンポーネント72、グリーン(G)サブコンポーネント74、およびブルー(B)サブコンポーネント76としてそれぞれの示す3つのピクセルサブコンポーネントを含む。ピクセルサブコンポーネントは、正方形ではなく、セイムカラーピクセルサブコンポーネントの垂直ストライプを形成するようにLCD70上に配置されている。RGBストライプは、通常、1つの方向でディスプレイの全長に延びる。結果のRGBストライプは、ときとして、「RGBストライピング」と呼ばれる。縦の長さより横幅の広いコンピュータアプリケーションのために使用される一般的なフラットパネル表示デバイスは、LCD70で示すとおり、垂直方向に延びるRGBストライプを有する傾向がある。これが、「垂直ストライピング」と呼ばれる。縦の長さより横幅の広いそのようなデバイスの例は、640×480、800×600、または1024×768などの列対行の比を有する。
【００３７】
また、例えば、水平ストライピング、ジグザグパターン、またはデルタパターンを含むその他のパターンに配置されたピクセルサブコンポーネントを有するフラットパネル表示デバイスも製造されている。本発明は、そのようなピクセルサブコンポーネント構成で使用することができる。それらの他のピクセルサブコンポーネント構成も、一般に、表示デバイス上でストライプを形成するが、そのストライプは、セイムカラーピクセルサブコンポーネントを含むものだけでなくてよい。ディフレントリカラー（differently-colored）ピクセルサブコンポーネントを含むストライプは、すべてが単一のカラーではないピクセルサブコンポーネントを有するストライプである。ディフレントリカラーピクセルサブコンポーネントを含むストライプの一例は、行ごとに変わるカラーマルチプル(multiple)のパターン(例えば、第1の行が、パターンRGBを繰り返し、第2の行が反転パターンBGRを繰り返す)を有する表示デバイス上で見られる。「ストライプ(縞)」は、本明細書で、一般に、正方形でないピクセルサブコンポーネントの長軸に平行な方向か、またはセイムカラーピクセルの線に沿った方向のいずれかに、特定の表示デバイスで該当する方向で延びるものとして定義される。
【００３８】
一組のRGBピクセルサブコンポーネントが、ピクセルを構成する。したがって、例として、図4Bの一組のピクセルサブコンポーネント72、74、および76が、単一のピクセルを形成する。言い換えれば、行R2と列C1の交差などの行と列の交差が、1つのピクセル、すなわち、(R2,C1)を表す。さらに、各ピクセルサブコンポーネント72、74、および76は、ピクセルの幅の1/3、またはほぼ1/3であり、一方、ピクセルの高さに等しい、またはほぼ等しい高さである。したがって、3つのピクセルサブコンポーネント72、74、および76が組み合わさって単一の実質的に正方形のピクセルを形成する。以下にさらに説明するとおり、表示デバイス上でテキストイメージをレンダリングするためにこのピクセル/サブコンポーネント関係を利用することができる。
【００３９】
II.イメージデータ処理動作およびイメージレンダリング動作
本発明のイメージデータ処理動作およびイメージレンダリング動作を説明するため、スケーリング動作、ヒンティング動作、および走査変換動作を示す高レベルのブロック図である図5を参照する。イメージデータ処理動作およびイメージレンダリング動作の目的の1つは、以下にさらに説明するとおり、各ピクセルサブコンポーネントがイメージデータの個々の部分を表すことができるようにするのに充分なサンプルを得ることである。
【００４０】
図5では、イメージデータ80は、テキスト文字、1つまたは複数のグラフィカルイメージ、またはその他の任意のイメージを表し、2つの成分を含んでいる。第1の成分は、テキスト出力82として示したテキスト出力成分であり、この成分は、ワードプロセッサプログラムなどのアプリケーションプログラムから得られ、例として、表示される文字、フォント、およびポイントサイズを特定する情報を含む。イメージデータの第2の成分は、文字データ84として示した文字データ成分であり、ベクトルグラフィックス、線、点、および曲線などの、テキスト生成中に使用するためにメモリの中に記憶することができる一組または複数組の文字の高解像度デジタル表現を提供する情報を含む。
【００４１】
イメージデータ80は、図5に示した一連のモジュールによって操作される。各モジュールがイメージデータにどのように影響を与えるかの説明を提供するため、図6のイメージデータ100で示される大文字の「K」として表されるイメージデータに関連して図6-9に対応する以下の例を説明する。
【００４２】
以下にさらに詳細に説明するとおり、このイメージデータは、ヒンティング動作に先立ってスケーリングモジュール86によって完全にスケーリングされるのではなく、本発明に従ってイメージデータがヒンティングされた後、オーバースケーリングモジュール92において少なくとも部分的にスケーリングされる。イメージデータのスケーリングは、イメージの種々の部分を個々のピクセルサブコンポーネントにマッピングするのを可能にする所望の数のサンプルをスーパーサンプリングモジュール94が獲得できるように行われる。ヒンティングに先立ってスケーリングモジュール86においてイメージデータを完全にスケーリングすることにより、大抵は、スーパーサンプリングのためにイメージデータが充分に準備される。ただし、本発明のサブピクセル高精度レンダリングプロセスと併せてヒンティングに先立って在来のフォントに対して完全なスケーリングを行うことにより、ヒンティング動作中にフォントの輪郭の激しい歪みが引き起こされる可能性があることが分かっている。例えば、ヒンティング中のフォントの歪みが、垂直のステムから延びる「K」の字画などの水平でも垂直でもない斜めのセグメントを有する文字に関連して経験される可能性がある。ヒンティングに先立ってそのような文字に完全なスケーリングを適用することにより、斜めのセグメントがほぼ水平の向きを有することがもたらされる。ヒンティング中、そのような字画（stroke）の幅を保存しようとして、字画上のポイントの座標が完全に変更され、文字が歪められるようになる可能性がある。一般に、フォントの歪みは、ヒンティング動作に先立つ水平方向および垂直方向での異なる係数によるスケーリングに適合するように設計されていないフォントにおいて経験される可能性がある。
【００４３】
本発明に従って文字の完全なスケーリングに先立ってヒンティング動作を行うことにより、そのようなフォントの歪みがなくなることが見出されている。いくつかの実施形態では、ヒンティングに先立ってイメージデータの部分的スケーリングが行われ、ヒンティングの後に残りのスケーリングが行われることが可能である。本発明のその他の実施形態では、ヒンティングに先立ってトリビアルな（些細な）スケーリング(すなわち、1の係数によるスケーリング)だけが行われ、完全なスケーリングは、オーバースケーリングモジュール92によって実行される。
【００４４】
さらに、以下にさらに詳細に説明するとおり、イメージデータの選択された点がピクセル境界に対して分数の成分を有する位置に丸められるヒンティング動作が、この動作がなければ失われる可能性があるイメージデータの中の高頻度の情報を保存する。
【００４５】
次に、図5の説明に戻ると、スケーリングモジュール86で示すとおり、イメージデータに対してスケーリング動作が行われる。図6は、イメージデータ100が、ストライピングに垂直な方向および平行な方向で1の係数でスケーリングされてスケーリングされたイメージデータ104が生成されるスケーリング動作102として描いた、本発明によるスケーリング動作の一例を示している。スケーリング係数が1であり、両方向で行われるこの実施形態では、スケーリング動作は、トリビアルである。本発明によるスケーリング動作のその他の例は、トリビアルではない。そのような例には、1以外の係数でストライピングに垂直な方向および平行な方向でイメージデータをスケーリングすること、あるいは、ストライピングに垂直な方向である係数で、またストライピングに平行な方向で別の係数でイメージデータをスケーリングすることが含まれる。スケーリング動作、ならびに後のヒンティング動作および走査変換動作の目的は、以下に説明するとおり、イメージデータを処理して、ピクセルに対応する各領域に関して複数のサンプルを獲得できるようにすることである。
【００４６】
図5のスケーリングモジュール86に従ってイメージデータがスケーリングされた後、ヒンティングモジュール88に従ってスケーリングされたイメージデータがヒンティングされる。ヒンティング動作の目的には、スケーリングされたイメージデータのキーポイント(例えば、ステムの縁)をピクセルグリッド上の選択された位置に揃え、スーパーサンプリングのためにイメージデータを準備することが含まれる。
【００４７】
図7Aおよび7Bは、ヒンティング動作の例を提供する。まず、図7Aを参照すると、垂直ストライピングが使用される実施形態に関連して、1次垂直境界X46-X49と交差する1次水平境界Y38-Y41を含むグリッドの一部分106が示されている。この例では、1次境界は、表示デバイスのピクセル境界に対応する。このグリッドは、2次境界によってストライピングに垂直な方向にさらに細分されて、等間隔の分数の増分が作成される。この増分は、グリッド上でフルピクセル境界以外の場所に該当する可能性があるという意味で分数である。例として、図7Aに示す実施形態は、1次垂直境界の間の距離を16の分数の増分に細分する2次境界を含む。一実施形態では、作成される分数の増分の数は、16より多い、または16より少ないことが可能である。
【００４８】
スケーリングされたイメージデータは、図7Aに示すとおり、スケーリングされたイメージデータ104のステム部分104aがグリッド106上に重ね合わされてグリッド上に置かれる。スケーリングされたイメージデータを置くことにより、常にキーポイントがグリッド上に適切に揃えられることになる訳ではない。例として、スケーリングされたイメージデータのコーナポイント106とコーナポイント108のどちらも、1次境界上に揃っていない。代わりに、コーナポイント106および108の座標はそれぞれ、この例では、(X46.72,Y39.85)および(X47.91,Y39.85)である。
【００４９】
前述したとおり、ヒンティング動作の目的は、キーポイントをグリッド上の選択された位置に揃えることである。スケーリングされたイメージデータのキーポイントが、ストライピングに平行な方向で最も近い1次境界に丸められ、ストライピングに垂直な方向で最も近い分数の増分に丸められる。本明細書で使用する「キーポイント」とは、本明細書で説明するとおりグリッド上の点に丸めるために選択されたイメージデータの点を指す。これに対して、イメージデータのその他の点は、必要な場合、例えば、補間を使用してキーポイントに対するそれらの点の位置に応じて調整することができる。したがって、図7Aに示す例によれば、ヒンティング動作は、コーナポイント106に関する座標をストライピングに垂直な方向でX46.75(すなわち、X4612/16)に丸め、また図7Bのコーナポイント106aで示すとおり、ストライピングに平行な方向でY40に丸める。同様に、ヒンティング動作は、コーナポイント108に関する座標をストライピングに垂直な方向でX47.94(すなわち、X4715/16)に丸め、また図7Bのコーナポイント108aで示すとおり、ストライピングに平行な方向でY40に丸める。したがって、キーポイントがグリッド106の選択された位置に揃えられることが、コーナポイント106aおよび108aの位置によって図7Bに示され、これらの位置は、ヒンティングされたイメージデータの一部として、図7Aのコーナポイント106および108に関する新しい位置を表す。したがって、ヒンティング動作は、表示デバイスのピクセルの位置によって定義されたグリッドポイントを有するグリッド上にスケーリングされたイメージデータを置くこと、およびキーポイントをストライピングに平行な方向で最も近い1次境界に丸め、またストライピングに垂直な方向で最も近い分数の増分に丸め、これにより、図7Bのヒンティングされたイメージデータ110がもたらされることを含む。
【００５０】
ヒンティング動作が、図5のヒンティングモジュール88によって行われる場合、ヒンティングされたイメージデータは、走査変換モジュール90によって操作される。走査変換モジュール90は、2つの成分、オーバースケーリングモジュール92およびスーパーサンプリングモジュール94を含む。オーバースケーリング動作が最初に行われ、ストライピングに垂直な方向でオーバースケーリング係数でヒンティングされたイメージデータをスケーリングすることを含む。一般に、オーバースケーリング係数は、グリッドの分数位置の分母をスケーリング動作で使用されたストライプに垂直な方向における係数に掛けることによって生成される積に等しいことが可能である。添付の図面に示す例がそうであるように、ストライプに垂直な方向におけるスケーリング係数が1の値を有する実施形態では、オーバースケーリング係数は、ヒンティング動作に関連して前述したとおり、単にグリッドの分数位置の分母に等しい。
【００５１】
したがって、本例に関して、図8は、ヒンティング動作から得られたヒンティングされたイメージデータ110を示し、このヒンティングされたイメージデータ110が、スケーリング動作112を受けてオーバースケーリングされたイメージデータ114が生成される。スケーリング動作112に関して、本例のヒンティング動作で作成された分数の増分は、フルピクセルの幅の1/16であり、したがって、スケーリング動作112は、ストライピングに垂直な方向で16のオーバースケーリング係数でヒンティングされたイメージデータ110をスケーリングする。
【００５２】
オーバースケーリング動作の1つの結果は、ヒンティング動作で展開された分数位置が整数になることである。オーバースケーリングされたイメージデータ114のステム部分114aがグリッド116上に投射されていることで、これを図8に示している。言い換えれば、オーバースケーリング動作は、それぞれのフルピクセルの幅に関して、各増分が整数の幅を有するものと指定された16の増分、つまり16のサンプルを有するイメージデータをもたらす。
【００５３】
図5のオーバースケーリングモジュール92に従ってオーバースケーリング動作が行われた後、スーパーサンプリングモジュール94が、スーパーサンプリング動作を行う。スーパーサンプリング動作を例示するため、ステム部分114aの一部分を含む図8のグリッド116の行R(M)を図9でさらに説明している。前述したとおり、それぞれのフルピクセルに関して16のサンプルが生成されている。スーパーサンプリング動作では、このサンプルが、ピクセルサブコンポーネントにマッピングされる。
【００５４】
本明細書で開示するスーパーサンプリング動作は、サンプリングが個々のピクセルサブコンポーネントにマップされる「ずらされたサンプリング」の例を代表しており、「ずらされたサンプリング」は、フルピクセルの中心からずらされていることが可能である(本明細書で具体的に開示する例におけるレッドおよびブルーのピクセルサブコンポーネントに関してそうであるように)。さらに、サンプルは、任意の所望の比で生成して個々のピクセルサブコンポーネントにマッピングすることができる。言い換えれば、色々な数のサンプルおよび多数のサンプルをフルピクセルの中の複数のピクセルサブコンポーネントのどれにもマッピングすることができる。サンプルの組をピクセルサブコンポーネントにマッピングするプロセスは、フィルタリングプロセスとして理解することができる。フィルタは、個々のピクセルサブコンポーネントにマップされるサンプルの組に含まれるサンプルの位置および数に対応する。ピクセルサブコンポーネントの異なるカラーに対応するフィルタが、同じサイズまたは異なるサイズを有することが可能である。フィルタ群に含まれるサンプルは、相互排他的であること(例えば、各サンプルが、1つのフィルタだけを透過させられる)、またはフィルタ群は、重なり合うこと(例えば、いくつかのサンプルが、複数のフィルタに含まれる)ことが可能である。1つまたは複数のサンプルの空間的に異なる組をピクセルの個々のピクセルサブコンポーネントに選択的にマッピングするのに使用されるフィルタのサイズおよび相対位置は、ずらされたサンプリングでときとして遭遇する可能性があるカラーの変色または誤りを低減することを目的として選択することができる。
【００５５】
フィルタリング手法および対応するマッピングプロセスは、単純な場合、1対1でサンプルを個々のピクセルサブコンポーネントにマッピングすることであるのが可能であり、これは、所与のフルピクセルのレッド、グリーン、およびブルーのピクセルサブコンポーネントにマップされたサンプル数で表現される1:1:1のマッピング比をもたらす。フィルタリングおよび対応するマッピング比は、より複雑であることも可能である。実際、フィルタは、いくつかのサンプルが複数のピクセルサブコンポーネントにマップされるように重なり合うことが可能である。
【００５６】
図9の例では、フィルタは、相互排他的であり、6:9:1のマッピング比をもたらすが、5:9:2などのその他の比を使用して所望のカラーフィルタリング領域を確立することもできる。マッピング比は、図示する例では、16のサンプルが取られた場合、図9に示すとおり、6つのサンプルがレッドピクセルサブコンポーネントにマップされ、9のサンプルがグリーンのピクセルサブコンポーネントにマップされ、1つのサンプルがブルーのピクセルサブコンポーネントにマップされるという意味で6:9:1である。サンプルは、3つのピクセルサブコンポーネントのそれぞれのに関する光度値を生成するのに使用される。イメージデータが、白い背景上の黒のテキストである場合、このことは、ピクセルサブコンポーネントをオン状態またはオフ状態として選択すること、または何らかの中間光度値を有することを意味する。例えば、117aで示す9つのサンプルのうち、6つが、文字の輪郭の外側に該当する。輪郭の外側の6つのサンプルは、白の背景カラーに寄与し、他方、輪郭の内側の3つのサンプルは、黒の前景カラーに寄与する。この結果、サンプルの組117aに対応するグリーンのピクセルサブコンポーネントには、背景カラーに寄与するサンプル数の前景カラーに寄与する数に対する比率に応じて、利用可能な最大グリーン光度のおよそ66.67%の光度値が割り当てられる。
【００５７】
サンプルの組117b、117c、および117dは、文字の輪郭内部に該当するサンプルを含み、黒の前景カラーに対応する。この結果、組117b、117c、および117dにそれぞれ関連するブルー、レッド、およびグリーンのピクセルサブコンポーネントには、黒の前景カラーの認識に寄与する値である0%の光度値が与えられる。最後に、サンプルの組117eおよび117fが、文字の輪郭の外側に該当する。したがって、対応するブルーおよびレッドのピクセルサブコンポーネントには、最大のブルーおよびレッドの光度を表し、また白の背景カラーの認識に寄与するブルーおよびレッドの光度を表す100%の光度値が与えられる。サンプルを対応するピクセルサブコンポーネントにこのようにマッピングすることにより、表示デバイス98上で表示するためのビットマップイメージ表現96によって図5で提供されるような、イメージデータのビットマップイメージ表現が生成される。
【００５８】
したがって、スケーリング動作、ヒンティング動作、および走査変換動作の初期段階の主な目的は、フルピクセルに対応するイメージデータの各領域に関して複数のサンプルを獲得することができるようにデータを処理することである。添付の図面に関連して説明した実施形態では、イメージデータが、1の係数でスケーリングされ、ヒンティングされてイメージデータのキーポイントがピクセルグリッドの選択された位置に揃えられ、そのグリッドの分数の増分の分母に等しいオーバースケーリング係数でスケーリングされる。
【００５９】
これに代わり、本発明は、グリッドポイントの分数位置の分母に結合された、1以外の係数で、つまり、対応する量だけ変更されたオーバースケーリング係数で、ストライプに垂直な方向でスケーリングすることを含ませることが可能である。言い換えれば、スケーリング係数および分母は、スケーリング係数と分母の乗算の積が、単一のフルピクセルに対応するイメージデータの各領域に関して生成されるべきサンプル数(すなわち、スーパーサンプリングレート)に等しくなるように選択することができる。例として、スーパーサンプリングレートが16である場合、スケーリング動作は、ストライプに垂直な方向で2の係数でスケーリングを行い、フルピクセルの位置の1/8のグリッドポイントに丸め、8のレートで走査変換プロセスでオーバースケーリングを行うことに関わることが可能である。このようにして、スーパーサンプリング動作のためにイメージデータが準備され、単一のフルピクセルに対応するイメージデータの各領域に関して所望の数のサンプルが生成される。
【００６０】
III.例としてのソフトウェア実施形態
詳細に前述した図2は、本発明に適切な動作環境を提供する例としてのシステムを示している。図2では、コンピュータ20が、ビデオアダプタ48、およびシステムメモリ22を含み、メモリ22は、ランダムアクセスメモリ(RAM)25をさらに含んでいる。オペレーティングシステム（処理系）35および1つまたは複数のアプリケーションプログラム36が、RAM25上に記憶されていることが可能である。表示デバイス上でイメージデータを表示するために使用されるデータが、システムメモリ22からビデオアダプタ48に、モニタ47上でそのイメージデータを表示するために送られる。
【００６１】
本発明によるイメージデータを表示するための例としてのソフトウェアの実施形態を説明するため、次に、図10A、図10B、および図11を参照する。図10Aおよび図10Bでは、本発明に従って表示デバイス上でテキストなどのイメージデータをレンダリングするための例としての方法が示されている。図11は、図10Aおよび図10Bの例としての方法を実施するための流れ図を提供している。
【００６２】
図10Aでは、アプリケーションプログラム36、オペレーティングシステム35、ビデオアダプタ48、およびモニタ47が示されている。アプリケーションプログラムは、コンピュータによって応答を生成するための一組の命令であることが可能である。1つのそのようなプログラムが、例として、ワードプロセッサである。ワードプロセッサプログラムの中に符号化された命令によって生成されるコンピュータ応答は、表示デバイス上でテキストを表示することを含む。したがって、図10Aに示すとおり、1つまたは複数のアプリケーションプログラム36は、テキスト出力120で示すとおり、テキスト情報をオペレーティングシステム35に出力することを担うテキスト出力サブコンポーネントを含むことが可能である。
【００６３】
オペレーティングシステム35は、表示デバイス上でテキストなどのイメージデータの表示を制御することを担う様々な構成要素を含む。この構成要素には、グラフィック表示(図形表示、映像表示)インターフェース122、および表示アダプタ124が含まれる。グラフィック表示インターフェース122は、テキスト出力120および表示情報130を受け取る。前述したとおり、テキスト出力120は、1つまたは複数のアプリケーションプログラム36から受け取られ、例として、表示される文字を特定する情報、使用されるフォント、および文字が表示されるポイントサイズを含む。表示情報130は、メモリデバイス126などのメモリの中に記憶された情報であり、例として、前景および/または背景カラー情報に関する情報を含む。また、表示情報130は、イメージの表示中に適用されるスケーリングに関する情報も含むことが可能である。
【００６４】
タイプラスタライザ（type rasterizer）134のようなテキストを処理するためのタイプラスタライザ成分が、グラフィック表示インターフェース82内部に含まれ、図10Bでさらに示されている。タイプラスタライザ134は、より具体的には、イメージデータのビットマップ表現を生成し、文字データ136、ならびにレンダリングおよびラスタ化のルーチン138を含む。あるいは、タイプラスタライザ134は、アプリケーションプログラム36のなかのどれかのモジュール(例えば、ワードプロセッサの一部)であることが可能である。
【００６５】
文字データ136は、テキスト生成中に使用するためにメモリの中に記憶される一組または複数組の文字の高解像度デジタル表現を提供する情報を含む。例として、文字データ136は、ベクトルグラフィックス、線、点、および曲線などの情報を含む。その他の実施形態では、文字データは、タイプラスタライザ134とひとまとめにされるのではなく、別個のデータ成分としてメモリ126の中に常駐することが可能である。したがって、表示デバイス上で表示するためにイメージデータをレンダリングし、ラスタ化するためのこの例としての方法の実施形態は、図11の流れ図でさらに示すとおり、テキスト出力120を受け取るタイプラスタライザ134のようなタイプラスタライザ、表示情報130、および文字データ136を含むことが可能である。図10Aのテキスト出力120が1つまたは複数のアプリケーションプログラム36から受け取られたか否かを判定ブロック150が判定する。テキスト出力120が、それを図10Aのタイプラスタライザ134に提供するグラフィック表示インターフェース122によって受け取られていない場合には、図11に示すとおり、実行が開始に戻る。あるいは、テキスト出力120がグラフィック表示インターフェース122によって受け取られ、タイプラスタライザ134にリレーされている場合、テキスト出力120は、図10Bのタイプラスタライザ134内部のレンダリングおよびラスタ化のルーチン138に送られる。
【００６６】
テキスト出力情報120を受け取ると、実行は、図11の判定ブロック152に進み、ブロック152が、図10Aの表示情報130が図10Aのメモリデバイス126などのメモリから受け取られているか否かを判定する。表示情報130が、図10Aのタイプラスタライザ134に表示情報130を提供するグラフィック表示インターフェース122によって受け取られていない場合、実行は、判定ブロック150に戻ることで待機する。あるいは、表示情報130がグラフィック表示インターフェース122によって受け取られ、タイプラスタライザ134にリレーされている場合、表示情報130は、図10Bのタイプラスタライザ134内部のレンダリングおよびラスタ化のルーチン138に送られる。
【００６７】
表示情報130を受け取ると、実行は、図10Bの文字データ136が獲得されているか否かを判定するため、判定ブロック154に進む。文字データ136がレンダリングおよびラスタ化のルーチン138によって受け取られていない場合、実行は、判定ブロック152に戻ることで待機する。テキスト出力120、表示情報130、および文字データ136がレンダリングおよびラスタ化のルーチン138によって受け取られていると判定された後、実行は、ステップ156に進む。
【００６８】
図10Bを再び参照すると、レンダリングおよびラスタ化のルーチン138が、スケーリングサブルーチン140、ヒンティングサブルーチン142、および走査変換サブルーチン144を含み、これらはそれぞれ、スケーリングモジュール86、ヒンティングモジュール88、および走査変換モジュール90と図5の高レベルのブロック図で呼ばれている。スケーリングサブルーチン140、ヒンティングサブルーチン142、および走査変換サブルーチン144の初期段階の1つの主な目的は、ピクセルに対応する各領域に関して複数のサンプルを得ることができるようにデータを処理することである。
【００６９】
図11のステップ156で、図5のスケーリングモジュール86に関連して前述した仕方でスケーリング動作が行われる。この例としての方法では、イメージデータは、テキスト出力120、表示情報130、および文字データ136を含む。イメージデータは、図10Bのスケーリングサブルーチン140によって操作され、このサブルーチン140は、例として、ストライピングに垂直な方向および平行な方向で1の係数でイメージデータがスケーリングされて、スケーリングされたイメージデータがもたらされるスケーリング動作を行う。本発明によるスケーリング動作のその他の例には、ストライピングに垂直な方向および水平な方向で1以外の係数でイメージデータをスケーリングすること、あるいは、ストライピングに垂直な方向である係数で、またストライピングに平行な方向で別の係数でイメージデータをスケーリングすることが含まれる。
【００７０】
次に、実行はステップ158に進み、ステップ158で、図5のヒンティングモジュール88に関連して前述した仕方で、図10Bのヒンティングサブルーチン142によってスケーリングされたイメージデータに対してヒンティング動作が行われる。ヒンティング動作は、表示デバイスのピクセルの位置によって定義されるグリッドポイントを有するグリッド上にスケーリングされたイメージデータを置き、キーポイント(例えば、ステムの縁)をスライピングに平行な方向で最も近い1次境界に、またストライピングに垂直な方向で最も近い分数の増分に丸め、これにより、ヒンティングされたイメージデータがもたらされることを含む。
【００７１】
次に、実行はステップ160に進み、ステップ160で、図5のオーバースケーリングモジュール92に関連して前述した仕方で、ヒンティングされたイメージデータに対して図10Bの走査変換サブルーチン144によってオーバースケーリング動作が行われる。オーバースケーリング動作は、ストライピングに垂直な方向でオーバースケーリング係数で、ヒンティングされたイメージデータをスケーリングすることを含む。一実施形態では、オーバースケーリング係数は、ヒンティング動作で展開された分数の増分の分母に等しく、したがって、分数位置が整数になる。
【００７２】
次に、実行はステップ162に進み、ステップ162で、図5のスーパーサンプリングモジュール94に関連して前述した仕方で、図10Bの走査変換サブルーチン144によってスーパーサンプリング動作が行われる。スーパーサンプリング動作で、サンプルは、ピクセルサブコンポーネントにマッピングされる。サンプルは、3つのピクセルサブコンポーネントのそれぞれに関する光度値を生成するのに使用される。サンプルを対応するピクセルサブコンポーネントにこのようにマッピングすることにより、イメージデータのビットマップイメージ表現が生成される。
【００７３】
次に、実行はステップ164に進み、ステップ164で、ビットマップイメージ表現が表示デバイス上で表示するために送られる。図10Aを参照すると、ビットマップイメージ表現がビットマップイメージ128として示され、グラフィック表示インターフェース122から表示アダプタ124に送られている。別の実施形態では、カラー処理動作および/またはカラー調整を行ってイメージ品質を高めるため、ビットマップイメージ表現をさらに処理することが可能である。一実施形態では、図10Aに示すとおり、表示アダプタ124が、ビットマップイメージ表現をビデオ信号132に変換する。このビデオ信号は、ビデオアダプタ48に送られ、モニタ47のような表示デバイス上で表示するためにフォーマットされる。したがって、本発明によれば、より多くの数のサンプリングポイントを利用することにより、フラットパネル表示デバイスなどの表示デバイス上で、より高い解像度でイメージが表示される。
【００７４】
本発明の以上の説明は、表示されるイメージデータがテキストである実施形態を開示したが、本発明は、エイリアシングを抑え、フラットパネル表示デバイスを使用して得ることができる有効解像度を高めるためにグラフィックス（図形）にも適用される。さらに、本発明は、例えば、表示のためにイメージを準備する際に、走査された画像などの画像処理にも適用される。
【００７５】
さらに、本発明は、セイムカラー複数の正方形でないピクセルサブコンポーネントを使用するグレースケールモニタに適用して、個別のRGBピクセルを使用するディスプレイと比べて1つの次元で有効解像度を数倍に高めることができる。グレースケール技術が利用されるそのような実施形態では、前述した実施形態と同様に、走査変換動作は、スケーリングされたヒンティング済みのイメージの部分を対応するピクセルサブコンポーネントに個別にマップしてビットマップイメージを形成することに適用される。ただし、グレースケールの実施形態では、ピクセルサブコンポーネントに割り当てられる光度値は、表示されるスケーリングされたイメージによって占められるピクセルサブコンポーネントにマップされたスケーリングされたイメージ領域の部分との関係で決定される。例えば、0が実質的にオフであり、255が最大光度である0から255までの間の光度値をピクセルサブコンポーネントに割り当てることが可能である場合、表示されるイメージによって50%占められたスケーリングされたイメージセグメント(グリッドセグメント)は、スケーリングされたイメージセグメントを対応するピクセルサブコンポーネントにマップした結果として、ピクセルサブコンポーネントに127の光度値が割り当てられることをもたらす。本発明によれば、この場合、同じピクセルの隣接するピクセルサブコンポーネントは、スケーリングされたイメージの別の部分、例えば、セグメントとの関係で個別に決定された光度値を有することになる。同様に、本発明は、レーザプリンタまたはインクジェットプリンタなどの正方形でないフルピクセルを有するプリンタにも適用することができ、これは、例えば、スーパーサンプリング動作162を単純なサンプリング動作で置き換えることが可能であり、生成された各サンプルが1つの正方形でないフルピクセルに対応する実施形態となる。
【００７６】
したがって、本発明は、より多くの数のサンプリングポイントを利用することにより、フラットパネル表示デバイスなどの表示デバイス上で、より高い解像度でイメージを表示するための方法およびシステムに適応するものである。本発明は、本発明の趣旨または基本的な特徴を逸脱することなく、その他の特定の形態で実施することも可能である。説明した実施形態は、あらゆる点で、例示的なものであり、制限（限定）するものではないものと見なされるべきである。したがって、本発明の範囲は、以上の説明によってではなく、頭記の特許請求の範囲によって示される。特許請求の範囲と等価の意味および範囲に含まれるすべての変更は、特許請求の範囲に包含されるものとする。
【図面の簡単な説明】
【図１】  ピクセル全体がイメージの単一領域を表す従来のイメージレンダリングプロセスを示す図である。
【図２】  本発明のための適切な動作環境を提供する例としてのシステムを示す図である。
【図３】  フラットパネル表示デバイスを有する例としてのコンピュータシステム構成を示す図である。
【図４Ａ】  フラットパネル表示デバイスの例としてのピクセル/サブコンポーネント関係を示す図である。
【図４Ｂ】  図4Aに示した例としてのピクセル/サブコンポーネント関係の一部分をより詳細に示す図である。
【図５】  コンピュータシステムの表示デバイス上でイメージをレンダリングするための例としての方法を示すブロック図である。
【図６】  イメージデータをスケーリングするためのスケーリング動作の例を示す図である。
【図７Ａ】  スケーリングされたイメージデータをグリッドにスナップする例を示す図である。
【図７Ｂ】  ヒンティング動作から生成されたヒンティングされたイメージデータの例を示す図である。
【図８】  オーバースケーリング動作からオーバースケーリングイメージデータを得る例を示す図である。
【図９】  イメージデータをスーパーサンプリングして、そのデータをピクセルサブコンポーネントにマッピングする例を示す図である。
【図１０Ａ】  テキストイメージをコンピュータシステムの表示デバイス上でレンダリングするための例としての方法を示す図である。
【図１０Ｂ】  図10Aのタイプラスタライザをより詳細に示す図である。
【図１１】  本発明の実施形態による表示のためにイメージデータをレンダリングし、ラスタ化する例としての方法を示す流れ図である。
【図１】
0004358472.tif 000002
【図２】
0004358472.tif 000003
【図３】
0004358472.tif 000004
【図４Ａ】
0004358472.tif 000005
【図４Ｂ】
0004358472.tif 000006
【図５】
0004358472.tif 000007
【図６】
0004358472.tif 000008
【図７Ａ】
0004358472.tif 000009
【図７Ｂ】
0004358472.tif 000010
【図８】
0004358472.tif 000011
【図９】
0004358472.tif 000012
【図１０Ａ】
0004358472.tif 000013
【図１０Ｂ】
0004358472.tif 000014
【図１１】
0004358472.tif 000015