(57)【特許請求の範囲】
【請求項１】
ピクセル群を有する表示装置を含み、前記ピクセルの各々は個別に制御可能な複数の異なる色のピクセルサブコンポーネントを含むコンピュータシステムにおいて、前記表示装置のピクセルサブコンポーネントを制御するために、パックされたピクセル値をピクセルサブコンポーネント値の組に変換する参照用テーブルを使用して前記表示装置に画像を表示する方法であって、
各項目がピクセルサブコンポーネント値の組と対応するパックされたピクセル値とを含む項目の配列を含む参照用テーブルを記憶する動作と、
画像をレンダリングする処理の一部として、前記表示装置に表示されるべき画像データに基づいて圧縮動作で生成されたパックされたピクセル値を受信する動作と、
前記受信されたパックされたピクセル値を前記参照用テーブルに対する索引として使用し、前記受信されたパックされたピクセル値を含む参照用テーブルの項目から、前記受信されたパックされたピクセル値に対応するピクセルサブコンポーネント値の第１の組を取得する動作と、
最も大きなパックされたピクセル値から前記受信されたパックされたピクセル値を差し引いて、変換されたパックされたピクセル値を生成する動作と、
前記変換されたパックされたピクセル値を前記参照用テーブルに対する索引として使用して、前記変換されたパックされたピクセル値を含む前記参照用テーブルの項目から、前記変換されたパックされたピクセル値に対応するピクセルサブコンポーネント値の第２の組を取得する動作と、
前記ピクセルサブコンポーネント値の第１の組の各ピクセルサブコンポーネント値を使用して、前記表示装置に画像の前景及び背景の一方の色を表示するように前記表示装置の第１のピクセルのピクセルサブコンポーネントを制御し、前記第１のピクセルのピクセルサブコンポーネントの各々は前記ピクセルサブコンポーネント値の第１の組のピクセルサブコンポーネント値の異なる１つにより個別に制御され、それにより前記第１のピクセルの各ピクセルサブコンポーネントは前記画像の異なる部分を表現する動作と、
前記ピクセルサブコンポーネント値の第２の組の各ピクセルサブコンポーネント値を使用して、前記表示装置に前記画像の前景及び背景の他方の色を表示するように前記表示装置の第２のピクセルのピクセルサブコンポーネントを制御し、前記第２のピクセルのピクセルサブコンポーネントの各々は前記ピクセルサブコンポーネント値の第２の組のピクセルサブコンポーネント値の異なる１つにより個別に制御され、それにより前記第２のピクセルの各ピクセルサブコンポーネントは前記画像の異なる部分を表現する動作と
を備えることを特徴とする方法。
【請求項２】
前記パックされたピクセル値および前記ピクセルサブコンポーネント値の第１の組はそれぞれデータビット値を含み、前記パックされたピクセル値は前記ピクセルサブコンポーネント値の第１の組よりも少ないビットを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記ピクセルサブコンポーネント値の第１の組を使用して前記画像の背景の色を制御する動作と、
前記ピクセルサブコンポーネント値の第２の組を使用して前記画像の前景の色を制御する動作と
を更に備えたことを特徴とする請求項１に記載の方法。
【請求項４】
前記参照用テーブルに記憶されたピクセルサブコンポーネント値の各々は、ガンマ補正、色補正、およびカラーパレットの選択のうちの少なくとも１つが行われたピクセルサブコンポーネント値を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記参照用テーブルに記憶されたサブコンポーネント値の各組は赤、青、および緑のピクセルの発光強度値を含むことを特徴とする請求項１に記載の方法。
【請求項６】
各ピクセルが個別に制御可能な異なる色の複数のピクセルサブコンポーネントを含むピクセル群を有する表示装置に画像を表示する方法であって、
参照用テーブルに対する索引となるべき複数のパックされたピクセル値を選択する動作と、
複数のパックされたピクセル値の各々について、対応するピクセルサブコンポーネント値の組を生成する動作と、
メモリ装置の参照用テーブルの配列項目内の、対応するパックされたピクセル値に関連づけられた配列位置に、前記ピクセルサブコンポーネント値の組の各々を記憶することにより、前記参照用テーブルを生成する動作と、
前記表示装置を含む表示システムが、パックされたピクセル値を受信すると、
前記受信されたパックされたピクセル値を前記参照用テーブルに対する索引として使用して、前記対応するピクセルサブコンポーネント値の第１の組を取得し、
最も大きなパックされたピクセル値から前記受信されたパックされたピクセル値を差し引いて、変換されたパックされたピクセル値を生成し、
前記変換されたパックされたピクセル値を前記参照用テーブルに対する索引として使用して、前記対応するピクセルサブコンポーネント値の第２の組を取得し、
前記ピクセルサブコンポーネント値の第１の組のピクセルサブコンポーネント値の各々を使用して、前記表示装置上に前記画像の前景及び背景の一方の色を表示するように前記表示装置のピクセルのピクセルサブコンポーネントを制御し、前記制御されたピクセルサブコンポーネントの各々は前記ピクセルサブコンポーネント値の異なる１つにより個別に制御され、それにより各ピクセルサブコンポーネントは前記画像の異なる部分を表現し、
前記ピクセルサブコンポーネント値の第２の組のピクセルサブコンポーネント値の各々を使用して、前記表示装置上に前記画像の前景及び背景の他方の色を表示するように前記表示装置のピクセルのピクセルサブコンポーネントを制御し、前記制御されたピクセルサブコンポーネントの各々は前記ピクセルサブコンポーネント値の異なる１つにより個別に制御され、それにより各ピクセルサブコンポーネントは前記画像の異なる部分を表現することを特徴とする方法。
【請求項７】
前記ピクセルサブコンポーネント値の組の各々を配列項目に記憶することにより前記参照用テーブルを生成する動作は、ガンマ補正、色補正、およびカラーパレットの選択のうちの少なくとも１つにより前記ピクセルサブコンポーネント値の各々を処理する動作を含むことを特徴とする請求項６に記載の方法。
【請求項８】
ピクセルサブコンポーネント値の各組および各対応するパックされたピクセル値はデータビット値を含み、前記対応するパックされたピクセル値の各々は前記ピクセルサブコンポーネント値の組の各々よりも少ないビットを含むことを特徴とする請求項６に記載の方法。
【請求項９】
ピクセルサブコンポーネント値の各組は第１、第２、および第３のサブコンポーネントの発光強度値を含むことを特徴とする請求項６に記載の方法。
【請求項１０】
前記参照用テーブルに記憶されたサブコンポーネント値の各組は赤、青、および緑のピクセルの発光強度値を含むことを特徴とする請求項９に記載の方法。
【請求項１１】
第１、第２および第３のサブコンポーネントの発光強度値の可能な数は２５６であることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記参照用テーブルを生成する動作は、前記参照用テーブルの配列項目の、前記変換されたパックされたピクセル値を生成するために使用される前記対応するパックされたピクセル値に関連づけられた配列位置に、前記変換されたパックされたピクセル値の各々を記憶する動作を更に備え、その結果変換されたパックされたピクセル値は、前記表示装置のピクセルサブコンポーネントに適用されるべき前記対応するピクセルサブコンポーネント値を取得するための参照用テーブルの配列項目への索引としても使用することができることを特徴とする請求項６に記載の方法。
【請求項１３】
各ピクセルが個別に制御可能な異なる色の複数のピクセルサブコンポーネントを含むピクセル群を有する表示装置を含む表示システムに、画像をレンダリングするためのデータを送信するコンピュータシステムにおいて、前記表示システムに送信されるデータを生成する方法であって、
スケール変更された画像の表現から、各々が前記表示装置の異なるピクセルサブコンポーネントに対応するピクセルサブコンポーネント値の組を生成する動作と、
前記複数のピクセルサブコンポーネントの発光強度値を単一のパックされたピクセル値に変換する動作であって、前記ピクセルサブコンポーネント値の複数の組は複数のビットを含み、前記単一のパックされたピクセル値は前記ピクセルサブコンポーネント値の組よりも少ないビットを含む、変換する動作と、
前記単一のパックされたピクセル値を前記表示システムに送信する動作と
を備え、前記表示システムは、パックされたピクセル値をピクセルサブコンポーネント値の対応する組に相関させる参照用テーブルにアクセスしており、前記表示システムは、前記単一のパックされたピクセルを受信すると、
前記受信した単一のパックされたピクセル値を前記参照用テーブルに対する索引として使用して、前記対応するピクセルサブコンポーネント値の第１の組を取得し、
最も大きなパックされたピクセル値から前記受信されたパックされたピクセル値を差し引いて、変換されたパックされたピクセル値を生成し、
前記変換されたパックされたピクセル値を前記参照用テーブルに対する索引として使用して、前記対応するピクセルサブコンポーネント値の第２の組を取得し、
前記ピクセルサブコンポーネント値の第１の組のピクセルサブコンポーネント値の各々を使用して、前記表示装置に前記画像の前景及び背景の一方の色を表示するように前記表示装置のピクセルのピクセルサブコンポーネントを制御し、前記制御されたピクセルサブコンポーネントの各々は前記ピクセルサブコンポーネント値の異なる１つにより個別に制御され、それにより各ピクセルサブコンポーネントは前記画像の異なる部分を表現し、
前記ピクセルサブコンポーネント値の第２の組のピクセルサブコンポーネント値の各々を使用して、前記表示装置上に前記画像の前景及び背景の他方の色を表示するように前記表示装置のピクセルのピクセルサブコンポーネントを制御し、前記制御されたピクセルサブコンポーネントの各々は前記ピクセルサブコンポーネント値の異なる１つにより個別に制御され、それにより各ピクセルサブコンポーネントは前記画像の異なる部分を表現することを特徴とする方法。
【請求項１４】
前記参照用テーブルに記憶されたピクセルサブコンポーネント値の各々はガンマ補正、色補正またはカラーパレットの選択が行われたピクセルサブコンポーネント値を含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記参照用テーブルに記憶されたサブコンポーネント値の各組は赤、青、および緑のピクセルの発光強度値を含むことを特徴とする請求項１４に記載の方法。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明は、イメージを表示する方法および装置に関し、より詳細には、出力装置、たとえば液晶ディスプレイの複数の変位した部分を利用して、イメージの単一ピクセルを表す表示方法および装置に関する。
【０００２】
（発明の背景）
カラーディスプレイデバイスは、ほとんどのコンピュータユーザにとって選りすぐりの最も重要なディスプレイデバイスとなっている。モニタ上のカラーの表示は、通常、人間の目によって知覚される１つまたは複数のカラーが得られる光、たとえば、赤、緑および青のカラーの組み合わせを発する、ディスプレイデバイスを駆動することによって行われる。
【０００３】
陰極線管（ＣＲＴ）ディスプレイデバイスにおいて、光の異なるカラーは、ＣＲＴスクリーン上に連続したドットとして塗布される蛍光体被覆を使用することにより生成される。通常、異なる蛍光体被覆が、３つのカラー、すなわち、赤、緑および青の各々を生成するのに使用される。被覆によって、電子ビームにより励起されたときに、カラー、すなわち、赤、緑および青を生成する蛍光体ドットの繰り返し配列が得られる。
【０００４】
ピクセルという用語は、通常、たとえば、何千というそうしたスポットの矩形グリッド内の１つのスポットを呼ぶのに使われる。スポットは、ディスプレイデバイス上にイメージを形成するために、コンピュータにより個々に使用される。赤、緑および青から成る蛍光体ドットの単一の３つ組みがアドレシングできないカラーＣＲＴにおいて、最も小さく可能なピクセルサイズは、蛍光体を励起するのに使用される電子銃の焦点、アラインメントおよび帯域に依存する。ＣＲＴディスプレイにとって公知の、種々の配置において、赤、緑および青から成る蛍光体ドットの１つまたは複数の３つ組みから発した光は、混ざり合う傾向があり、離れた場所では単一のカラー光源に見える。
【０００５】
カラーディスプレイにおいて、加法の原色、赤、緑および青に対応して発した光の強度は、ほとんどどんなカラーピクセルにも見えるように変えることができる。色を加えない、すなわち、光を発しないことにより、暗いピクセルが生成される。全ての３色を１００％加えることにより、白いピクセルが得られる。
【０００６】
ハンドヘルドデバイスおよびポータブルコンピュータを含むポータブルコンピューティングデバイスは、ＣＲＴディスプレイと対抗するものとして、液晶ディスプレイ（ＬＣＤ）または他のフラットパネルディスプレイデバイス１０２を使用する傾向にある。これは、フラットパネルディスプレイが、ＣＲＴディスプレイに比べて小さくて、軽量である傾向にあるためである。さらに、フラットパネルディスプレイは、匹敵する大きさのＣＲＴディスプレイより電力消費が少ない傾向にあることで、バッテリ駆動による使用に十分に適している。
【０００７】
カラーＬＣＤディスプレイは、表示されるイメージの各ピクセルを表すために、以下、ピクセルサブコンポーネントまたはピクセルサブエレメントと呼ぶ、複数の明確にアドレッシング可能なエレメントを使用するディスプレイデバイスの典型である。普通、カラーＬＣＤディスプレイの各ピクセルエレメントは、３つの非正方エレメント、すなわち、赤、緑および青（ＲＧＢ）のピクセルサブコンポーネントを有する。したがって、ＲＧＢピクセルサブコンポーネントのセットは、一緒になって単一のピクセルエレメントを作る。一般的に、公知のＬＣＤディスプレイは、通常、ディスプレイに沿ってストライプを形成するために配置される一連のＲＧＢピクセルサブコンポーネントを有する。ＲＧＢストライプは、普通、ディスプレイの全長分１方向にのびている。得られるＲＧＢストライプは、時に「ＲＧＢストライピング」と呼ばれる。コンピュータ用途に使用される、高いというよりは幅広の、普通のＬＣＤモニタは、垂直方向にのびるＲＧＢストライプを持つ傾向にある。
【０００８】
図１は、複数の行（Ｒ１〜Ｒ１２）とカラム（Ｃ１〜Ｃ１６）を有する公知のＬＣＤスクリーン２００を説明している。各行／カラムの交差部は、１つのピクセルエレメントを表す正方形を形成する。図２は、公知のディスプレイ２００の左上部を詳細に説明している。
【０００９】
図２において、（Ｒ１，Ｃ４）ピクセルエレメントなどの各ピクセルエレメントが、どのように３つの異なったサブエレメントまたはサブコンポーネント、すなわち、赤いサブコンポーネント２０６、緑のサブコンポーネント２０７および青いサブコンポーネント２０８を有するかについて留意されたい。各々の公知のピクセルサブコンポーネント２０６、２０７、２０８は、ピクセルの幅の１／３または約１／３であり、あるいは高さにおいては、ピクセルの高さに等しいか、または、およそ等しい。したがって、組み合わされたときに、１／３の幅の３つのピクセルサブコンポーネント２０６、２０７、２０８は単一のピクセルエレメントを形成する。
【００１０】
図１に示したように、ＲＧＢピクセルサブコンポーネント２０６、２０７、２０８の１つの公知の構成は、ディスプレイ２００の下で垂直カラーストライプであるように見えるものを形成する。そのため、図１および２で説明した公知の方法での、１／３幅のカラーサブコンポーネント２０６、２０７、２０８の配置は、「垂直ストライピング」と呼ばれることがある。
【００１１】
伝統的に、ピクセルエレメントに対する各々のピクセルサブコンポーネントの各々のセットは、単一のピクセルユニットとして取り扱われる。そのため、公知のシステムにおいて、ピクセルエレメントの全てのピクセルサブコンポーネントに対する光度（ｌｕｍｉｎｏｕｓ  ｉｎｔｅｎｓｉｔｙ）値は、イメージの同じ部分から生成される。たとえば、図３に示すようなグリッド２２０によって表されるイメージを考える。図３において、各正方形は、単一ピクセルエレメント、たとえば、グリッド２３０の対応する正方形の赤、緑および青のピクセルサブコンポーネントによって表されるイメージ領域を表す。図３において、斜線を入れた円は、光度値が生成される、単一のイメージサンプルを表すのに使用される。公知のシステムにおいて、イメージ２２０の単一のサンプル２２２が、どのようにして、赤、緑および青のピクセルサブコンポーネント２３２、２３３、２３４の各々に対する光度値を生成するのに使用されるかに留意されたい。したがって、公知のシステムにおいて、ＲＧＢピクセルサブコンポーネントは、表されるべきイメージの１つのサンプルに対応する１つのカラーピクセルを生成するために、通常、グループとして使用される。
【００１２】
個々のＲＧＢサブコンポーネント輝度（ｉｎｔｅｎｓｉｔｙ）は、広い範囲の異なるカラーを提供するために変えられるが、限られた数のカラーだけは、実際には、ディスプレイハードウェアおよび／またはソフトウェアによって提供される。提供されるカラーのセットは、普通、カラーパレットと呼ばれる。カラーパレットの各カラーは、Ｒ、ＧおよびＢのピクセルサブコンポーネント光度値の異なる組み合わせに対応している。コンピュータシステムは、複数のカラーパレットを提供するかもしれないが、通常、ただ１つのパレットが、任意の時間に、表示されるイメージを生成するために使用されてもよい。
【００１３】
テキストレンダリングの場合、ユーザは、通常、使用されるべき前景および背景カラーを選択する。通常、暗い前景と明るい背景カラーが、明るいカラーのフィールド上に暗いテキストを生成するのに使用される。このような方法は、しばしば白い背景の上で暗い傾向を持つ印刷されたテキストを真似ている。
【００１４】
暗い前景と明るい背景に対する別法として、ユーザは明るい前景と暗い背景を選択してもよい。このようなテキストオプションは、あまり普通ではないが、たとえば、スクリーン上のテキストを強調するために時々使用される。
【００１５】
テキストが、普通に行われるように、ピクセル分解能でレンダリングされる場合、文字を表すために使用されるピクセルは、黒などの選択された前景カラーに設定され、背景を表すのに使用されるピクセルは、白に設定される。上述したように、暗いピクセルを生成するために、暗いピクセルのＲ、ＧおよびＢのピクセルサブコンポーネントは、最小限の光度を出力するために設定される。白いピクセルの場合、Ｒ、ＧおよびＢのピクセルサブコンポーネントは、最大限の光度に設定される。
【００１６】
しばしば、ほとんどのビデオディスプレイデバイスの比較的低いディスプレイ分解能のために、特に、１０、１２および１４ポイントタイプの普通のテキストサイズでは、滑らかな文字形状を描写するのに、十分なピクセルが利用できない。
【００１７】
ポータブルコンピューティングデバイス、また、特に、ハンドヘルドコンピューティングデバイスは、電力消費問題および、多くの場合、デスクトップコンピューティングデバイスではそれほど問題にならない、価格制約の問題に直面している。
【００１８】
上述したように、電力消費を最小限にする試みにおいて、電力制約のために、しばしば、ＬＣＤディスプレイが使用されるようになった。電力への関心もまた、しばしば、電力節約の特徴を持って設計されたＣＰＵなどのプロセッサの使用をもたらした。ポータブルコンピュータよりも多くのデスクトップＰＣがあるため、ほとんどのＣＰＵ製造業者は、ポータブルコンピュータ用の電力節約特徴を持つＣＰＵに対立するものとして、デスクトップコンピュータ用の高速ＣＰＵを開発することに優先度を与える。このような理由で、ポータブルコンピューティングデバイスのプロセッサは、処理電力の観点から、デスクトップ同等品より遅れる傾向にある。
【００１９】
ハンドヘルドコンピュータ、たとえば、パーソナルアシスタントデバイスの場合、処理電力と装置に含まれるメモリ容量の両方の観点から、価格が制限要素になる傾向がある。
【００２０】
このように、ポータブルおよびハンドヘルドコンピューティングデバイスは、デスクトップパーソナルコンピュータのような他のイメージレンダリング環境において遭遇する多くのものと同じイメージレンダリング問題に直面する一方、ポータブルコンピュータおよびハンドヘルド環境において、しばしばイメージレンダリング問題に対処するための少ない処理電力およびメモリが利用できる。
【００２１】
上述の議論を考慮すると、テキストを含むイメージのレンダリングおよび表示の改善された方法に対する要求があることは明らかである。処理およびメモリ資源が限られているポータブルコンピュータおよびハンドヘルドコンピューティングデバイスにおいて、少なくともいくつかの新しい方法および装置が、テキストのレンダリングを提供することが望ましい。
【００２２】
（発明の概要）
本発明は、イメージの単一ピクセルを表すために、ＬＣＤディスプレイのような出力デバイスの複数の異なった部分を用いて、イメージを表示する方法および装置に向けられている。
【００２３】
本発明によれば、ピクセルエレメントの各ピクセルサブコンポーネントは、独立した輝度源として扱われる。これによって、ストライプ配列されたディスプレイの場合、ＲＧＢストライピングの方向に垂直な方向に３倍まで分解能が増加する。
【００２４】
イメージ、たとえば、テキスト文字のレンダリングは、本発明によれば、いくつかのステップを含む。これらは、ラスタ化（ｒａｓｔｅｒｉｚａｔｉｏｎ）ステップ、オプションのグリフ（ｇｌｙｐｈ）キャッシングステップおよび装置、たとえば、ディスプレイドライバ処理ステップを含む。ラスタ化ステップは、スケーリング、ヒンティングおよび走査変換ステップを含む。ラスタ化ステップは、イメージ、たとえば、文字の白黒ビットマップ表示を含むグリフを生成する。
【００２５】
本発明のオプションのキャッシングステップは、ラスタ化操作によって生じたグリフをストアすることを含む。グリフがラスタ化操作により生成されると、グリフは、可能性のある将来の使用のために、グリフキャッシュに配置される。以前にラスタ化され、キャッシュされたグリフに対応する文字が出力されるはずであれば、グリフがキャッシュから得られるため、ラスタ化操作を実行する必要を避けることができる。
【００２６】
本発明の一実施形態によれば、各ピクセルエレメントに関連した個別のＲ、ＧおよびＢ光度レベル値は、本明細書ではパックされたピクセル値と呼ばれる単一値にパック（たとえば、圧縮）される。したがって、グリフをストアするのに要求されるメモリ容量が、かなり減ぜられる。１つの典型的な実施形態において、イメージの各ピクセルエレメントと関連してＲ、Ｇ、Ｂピクセルサブコンポーネントの輝度値を表すために、単一の８ビットにパックされたピクセル値が使用される。これは、レンダリング処理を通して、Ｒ、Ｇ、Ｂのピクセルサブコンポーネント光度値の各々を表すために８ビットを使用するシステムに対して、メモリのかなりの節約を表している。
【００２７】
表示の前に、ピクセル値が供給されるディスプレイアダプタおよび／またはディスプレイデバイスによって提供されているフォーマットで、対応するピクセル値を生成するために、ラスタ化ステップからのグリフまたはグリフキャッシュが処理される。ピクセル値は、ピクセルエレメントの光度を制御するために使用される値である。したがって、ピクセル値は、Ｒ、ＧまたはＢの光度値であるか、または、パレット化されたディスプレイシステムにおいては、ディスプレイデバイスによって使用される実際のＲ、Ｇ、Ｂの光度値を含むテーブル、たとえば、カラーパレットに索引を付けるのに使用される数であってもよい。パレット化されたディスプレイの実施形態において、ディスプレイデバイスまたはディスプレイアダプタは、個々のピクセルに関連するカラーパレット値を、ピクセルサブコンポーネントのＲ、ＧおよびＢの光度を制御するために使用される実際のＲ、ＧおよびＢの光度値に変換する。
【００２８】
ラスタ化操作は、走査変換操作、および、種々の実施形態においては、オプションのスケーリングおよびヒンティング操作を含む。スケーリング操作の一部において、イメージ、たとえば、表示される文字を高解像度で表現することは、少なくともＲＧＢストライピングの方向に垂直な次元にスーパーサンプリングされることである。スケーリングされたイメージのヒンティングの後に、走査変換操作が行われる。本発明の１つの特徴によれば、走査変換操作は、加重走査変換操作であり、ヒンティングされたイメージは、同じ大きさの部分、たとえば、セグメントに分割され、異なる数のセグメントがＲ、ＧおよびＢの光度値を決定するのに使用される。
【００２９】
１つの特定の典型的な実施形態は、１６倍のスーパーサンプリングを使用し、その結果、各ピクセルエレメントに対応する１６セグメントを持つスーパーサンプリングされたイメージを生成する。特定の典型的な実施形態において、実行された加重走査変換操作は、赤のピクセルサブコンポーネント光度値を決定するのに５イメージセグメントを、緑のピクセルサブコンポーネント光度値を決定するのに９イメージセグメントを、そして、青のピクセルサブコンポーネント光度値を決定するのに２イメージセグメントを使用した。
【００３０】
加重走査変換操作の場合、ピクセルエレメントに対する、可能なＲ、ＧおよびＢの光度値の組み合わせの数Ｎは、可能なＲ値の数×可能なＧ値の数×可能なＢ値の数に等しい。５、９、２スケーリングの場合、Ｎは、全部で（６×１０×３）１８０の可能な値に対応する。
【００３１】
本発明によれば、走査変換操作の結果得られるＲ、ＧおよびＢの光度値を、３つの個別の値、たとえば、８ビットＲ値、８ビットＧ値および８ビットＢ値として表すよりはむしろ、ピクセルエレメントに対応するＲ、ＧおよびＢの光度値は、ここでは、パックされたピクセル値と呼ばれる、単一の数として特定される。パックされたピクセル値は、ピクセルエレメントが、Ｒ、ＧおよびＢの光度値の可能なセットのいずれに対応するかを示す。５、９、２の場合、８ビットにパックされたピクセル値は、容易に、１８０の異なる、可能なＲ、ＧおよびＢの光度値を表すのに使用される。
【００３２】
本発明により生成されたパックされたピクセル値により、個別のＲ、ＧおよびＢの光度値がストアされるときに必要になるであろうビット数よりずっと少ないビット数を用いて、文字グリフが表現されることが可能になる。本発明のパック方法を用いてグリフを表現するのに使用されるデータ量の削減は、光度値をパックしないシステムと比べると、グリフを転送するのに要求される帯域幅の量を減ずる。本発明の小さなサイズのグリフは、また、グリフを表現するのにパックされたピクセル値が使用されなかったときに可能であろうグリフよりも、多くのグリフが同じ容量のメモリにストアされることを可能にする利点を持つ。これら利点は両方とも、メモリおよびバス帯域幅が比較的制限されるかもしれないハンドヘルドおよびポータブルコンピューティングデバイスの場合に特に重要である。
【００３３】
グリフが表示されるとき、グリフを表すパックされたピクセル値のセットはディスプレイドライバに供給される。ディスプレイドライバは、表示されるべき、イメージ、たとえば、文字を表すデータに対して、１つまたは複数のイメージ処理操作を実行する役割を果たす。ディスプレイドライバは、グリフを表すのに使用されるパックされたピクセル値を、イメージデータが出力されるディスプレイアダプタまたはディスプレイデバイスにより使用されるフォーマットを持つピクセル値、たとえば、個別の８Ｒ、ＧおよびＢの光度値またはカラーパレット値に変換する。ディスプレイドライバは、また、ガンマ補正操作、カラー補償操作および／または任意の時に使用する、制限されたカラーパレットからカラーを選択することを含むカラーパレット選択操作を実行してもよい。
【００３４】
ある実施形態においては、ディスプレイドライバにより実行される処理操作は、順次的な処理操作として実装される。しかし、本発明の他の実施形態においては、ディスプレイドライバにより実行される処理操作は、単一のルックアップテーブル操作に結合される。
【００３５】
この目的のために、１つまたは複数のルックアップテーブルが、ディスプレイドライバの一部として用意される。各ルックアップテーブルは、ディスプレイアダプタまたはディスプレイドライバにより使用されるフォーマットを持つピクセル値にパックされたピクセル値を変換するのに使用される、デバイスドライバ操作または入力値の異なるセットに対応する。たとえば、１つのルックアップテーブルが、異なるガンマ値またはピクセル値フォーマット要求仕様を持つ、複数の提供されたディスプレイデバイスの各々に用意されてもよい。さらに、個別のルックアップテーブルが、各々の提供されるカラーパレットに対して使用される。たとえば、インターネットアプリケーションカラーパレットがディスプレイデバイスのアクティブなパレットであるときに、インターネットアプリケーションに関連したカラーパレットを用いて生成された１つのルックアップテーブルが、パックされたピクセル値を処理するのに使用される。ディスプレイデバイスおよび／またはディスプレイアダプタが異なる動作カラーパレットを持つとき、異なるルックアップテーブルが使用される。
【００３６】
各ルックアップテーブルは、各々の可能なパックされたピクセル値に対して１つのエントリを含む。可能なパックされたピクセル値のセットにおいて、Ｎ番目のエントリがＮ番目のパックされたピクセル値に対応するように、エントリがテーブルに配置される。パレット化されたディスプレイシステムの場合、通常、各テーブルエントリは、単一ピクセル値、すなわち、カラーパレット値である。パレット化されていないシステムでは、各エントリは、通常、ディスプレイアダプタおよび／またはディスプレイデバイスにより使用されるフォーマットのＲ、ＧおよびＢのピクセルサブコンポーネント光度値のセットである。１８０の可能なパックされたピクセル値の典型的な場合、ルックアップテーブルは１８０のエントリを含むであろう。そして、各エントリは１８０のパックされたピクセル値の異なる１つに対応する。一実施形態において、各テーブルエントリは、出力ピクセル値が対応する、パックされたピクセル値を入力として用いて、実装されたディスプレイドライバ処理操作を実行することにより、事前に計算される。
【００３７】
本発明のディスプレイデバイスルックアップテーブルへの索引として、グリフに含まれるパックされたピクセル値を用いることにより、取り付けられたディスプレイアダプタまたはディスプレイデバイスにより使用されるフォーマットで出力ピクセル値のセットが得られる。ルックアップテーブル値は事前に計算される、すなわち、ディスプレイドライバでの使用前に計算されるために、イメージレンダリング中にガンマ補正、カラー補償および／またはパレット選択操作をリアルタイムで実行する必要が避けられる。
【００３８】
本発明の種々の特徴は、以下で詳細に説明するが、上述した方法で使用されることができるデバイスドライバルックアップテーブルの生成に向けられる。
【００３９】
本発明により、テキストのようなイメージのレンダリング時に使用するために、前景および背景カラーを特定することができる。本発明によって、ディスプレイドライバを実装するのにピクセル値ルックアップテーブルが使用されるとき、通常、前景および背景カラーとして、結合して使用されてもよいカラーの対を提供するあるルックアップテーブルが備わる。本発明によれば、前景としてどのカラーが使用されるか、および背景としてどのカラーが使用されるかが、ピクセル値ルックアップテーブルがアクセスされる方法で決定される。このような一実施形態において、使用されたカラー対に対応する、ピクセル値ルックアップテーブルがアクセスされる順序を単純に逆にすることにより、前景および背景カラーが交換される。
【００４０】
本発明の方法および装置の、数多くの、さらなる特徴、実施形態および利点が、以下の詳細な明細書で述べられる。
【００４１】
（詳細な説明）
上述したように、本発明は、イメージの単一ピクセルを表すために、出力デバイスの複数の異なる部分、たとえば、液晶ディスプレイのＲ、Ｇ、Ｂピクセルサブコンポーネントを利用できるディスプレイデバイス上で、イメージ、たとえば、テキストおよび／またはグラフィックを表示する方法および装置に向けられる。
【００４２】
本発明の種々の方法は、ピクセルを有するＲＧＢピクセルサブコンポーネントのセットを単一光度ユニットとして扱う方法に対立するものとして、各ピクセルサブコンポーネントを独立した光度源として用いる方法に向けられる。これにより、ＲＧＢの水平または垂直ストライピングを持つディスプレイデバイスが、他の次元よりも３倍まで大きな実効分解能を、ストライピングに垂直な次元に持つものとして扱われることを可能にする。本発明の種々な装置は、光度サブピクセルコンポーネントを個々に制御する能力を利用するディスプレイデバイスおよび制御装置に向けられる。
【００４３】
図５および以下の説明は、本発明の少なくともいくつかの態様が実装されるかもしれない、典型的な装置の、短く、一般的な説明を提供する。本発明の種々な方法は、コンピュータ実行可能命令、たとえば、パーソナルコンピュータのようなコンピュータデバイスによって実行されるプログラムモジュールの一般的なコンテキストにおいて、説明する。本発明の他の態様は、たとえば、ディスプレイデバイスコンポーネントおよびディスプレイスクリーンのような物理的なハードウェアによって説明する。
【００４４】
本発明の方法は、特定の、説明したコンピュータデバイス以外の装置によって成し遂げられてもよい。タスクを実行するか、または、特定の抽象データタイプを実装するプログラムモジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造（たとえばルックアップテーブルなど）を含んでもよい。さらに、当業者は、本発明の少なくともいくつかの態様が、ハンドヘルドデバイス、マルチプロセッサシステム、マルチプロセッサベースのまたはプログラム可能なコンシューマエレクトロニクス、ネットワークコンピュータ、ミニコンピュータ、セットトップボックス、メインフレームコンピュータ、たとえば自動車、航空、産業用途などにおいて使用されるディスプレイを含む他の構成で実施されるであろうことを理解するであろう。本発明の少なくともいくつかの態様は、また、タスクが通信ネットワークを通して結合されたリモート処理デバイスによって実行される、分散コンピューティング環境において実施されてもよい。分散コンピューティング環境において、プログラムモジュールは、ローカルおよび／またはリモートメモリストレージデバイスに配置されてもよい。
【００４５】
図５を参照すると、本発明の少なくともいくつかの態様を実施する典型的な装置５００は、汎用コンピューティングデバイスを含む。パーソナルコンピュータ５２０は、処理ユニット５２１、システムメモリ５２２、およびシステムメモリを含む種々のシステムコンポーネントを処理ユニット５２１に結合するシステムバス５２３を含んでもよい。システムバス５２３は、メモリバスまたはメモリ・コントローラ、周辺バスおよび種々のバスアーキテクチャの任意のものを用いたローカルバスを含む、いくつかのタイプのバス構成の任意のものでもよい。システムメモリは、読取り専用メモリ（ＲＯＭ）５２４および／またはランダムアクセスメモリ（ＲＡＭ）５２５を含んでもよい。基本入力／出力システム５２６（ＢＩＯＳ）は、たとえば、スタートアップ中に、パーソナルコンピュータ５２０内のエレメント間で情報を転送するのに役立つ基本ルーチンを含み、ＲＯＭ５２４内にストアされてもよい。パーソナルコンピュータ５２０は、また、（図示されない）ハードディスクからの読出し、または、書込みを行うハードディスクドライブ５２７、（たとえば、リムーバブル）磁気ディスク５２９からの読出し、または、書込みを行う磁気ディスクドライブ５２８およびコンパクトディスクまたは他の（磁気）光学媒体のような（磁気）光学ディスク５３１に対して読出し、または、書込みを行う光学ディスクドライブ５３０を含んでもよい。ハードディスクドライブ５２７、磁気ディスクドライブ５２８および（磁気）光学ディスクドライブ５３０は、各々、ハードディスクドライブインタフェース５３２、磁気ディスクドライブインタフェース５３３および（磁気）光学ドライブインタフェース５３４によって、システムバス５２３と結合される。ドライブとその関連ストレージ媒体は、パーソナルコンピュータ５２０用のマシン可読命令、データ構造、プログラムモジュールおよび他のデータの不揮発性ストレージを提供する。本発明で説明する典型的な環境は、ハードディスク、リムーバブル磁気ディスク５２９およびリムーバブル光ディスク５３１を使用するが、磁気カセット、フラッシュメモリカード、ディジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）などの他のタイプのストレージ媒体が、上記で紹介されたストレージデバイスの代わりに、または、それに加えて使用されてもよいことを、当業者は理解するであろう。
【００４６】
たとえば、オペレーティングシステム５３５、１つまたは複数のアプリケーションプログラム５３６、他のプログラムモジュール５３７、ディスプレイドライバ８３０および／またはプログラムデータ５３８のような、多数のプログラムモジュールは、ハードディスク５２３、磁気ディスク５２９、（磁気）光学ディスク５３１、ＲＯＭ５２４またはＲＡＭ５２５上にストアされてもよい。ＲＡＭ５２５は、以下で述べるように、表示のためのイメージのレンダリング時に使用されるデータのストアに使用されてもよい。ユーザは、たとえば、キーボード５４０およびポインティングデバイス５４２のような入力デバイスを通して、パーソナルコンピュータ５２０に命令および情報を入力してもよい。マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信用アンテナ、スキャナなどの（図示されない）他の入力デバイスもまた含まれてもよい。これらのものおよび他の入力デバイスは、しばしば、システムバスに結合されたシリアルポートインタフェース５４６を通して処理ユニット５２１に接続される。しかし、入力デバイスは、パラレルポート、ゲームポートまたはユニバーサルシリアルバス（ＵＳＢ）のような他のインタフェースによって接続されてもよい。モニタ５４７または他のタイプのディスプレイデバイスもまた、たとえば、ディスプレイアダプタ５４８のようなインタフェースを介してシステムバス５２３に接続されてもよい。モニタ５４７に加えて、パーソナルコンピュータ５２０は、たとえば、スピーカおよびプリンタのような（図示されない）他の周辺出力デバイスを含んでもよい。
【００４７】
パーソナルコンピュータ５２０は、リモートコンピュータ５４９のような１つまたは複数のリモートコンピュータに対して論理接続を定義するネットワーク環境で動作してもよい。リモートコンピュータ５４９は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたは他の共通ネットワークノードであってもよく、図５でメモリストレージデバイス５５０のみ示したが、パーソナルコンピュータ５２０に関して上述したエレメントの多くまたは全てを含んでもよい。図５で説明する論理接続は、ローカルエリアネットワーク（ＬＡＮ）５５１およびワイドエリアネットワーク（ＷＡＮ）５５２、すなわち、イントラネットおよびインターネットを含む。
【００４８】
ＬＡＮで使用されるとき、パーソナルコンピュータ５２０は、ネットワークインタフェースアダプタ（またはＮＩＣ）５５３を通してＬＡＮ５５１に接続されてもよい。インターネットのようなＷＡＮで使用されるとき、パーソナルコンピュータ５２０は、ワイドエリアネットワーク５５２上で通信を確立するための、モデム５５４または他の手段を含んでもよい。内部にあるかまたは外部にあるモデム５５４は、シリアルポートインタフェース５４６を介してシステムバス５２３に接続されてもよい。ネットワーク環境においては、パーソナルコンピュータ５２０に関して説明したプログラムモジュールの少なくともいくつかは、リモートメモリストレージデバイスにストアされてもよい。示されたネットワーク接続は、典型的な例であり、コンピュータ間の通信リンクを確立する他の手段が使用されてもよい。
【００４９】
図７は、本発明の一実施形態によって実施されたイメージレンダリング装置８００を説明する。装置８００は、本発明によってコンピュータシステムディスプレイ５４７上にテキストイメージをレンダリングするのに使用される、たとえば、図５のコンピュータシステムのメモリに含まれる種々のルーチンを含む。
【００５０】
本図に示すように、イメージレンダリング装置８００は、グラフィックディスプレイインタフェース（ＧＤＩ）８０２、ディスプレイドライバ８３０およびスクリーンバッファ８３４を含む。
【００５１】
図８は、本発明のイメージレンダリング装置８００のコンポーネントおよびそれらのオペレーティングシステム５３５に対する関係を詳細に説明する。図８は、また、アプリケーション５３６が、ＧＤＩ８０２に対するテキスト入力８１３の源として、どのように役立つかを説明する。さらに、図８は、どのようにして、スクリーンフレームバッファ８３４の生成された内容がディスプレイアダプタ５４８および最後にディスプレイデバイス５４７に供給されるかを説明する。スクリーンフレームバッファ８３４によって出力された、処理されたピクセル値から、ディスプレイアダプタ５４８により生成された信号を供給することにより、レンダリングされたテキストイメージがディスプレイデバイス５４７上に表示される。
【００５２】
図８に示すように、たとえば、ワードプロセッサアプリケーションであるかもしれない、アプリケーションルーチン５３６は、テキスト出力サブコンポーネント８０１に含まれる。テキスト出力サブコンポーネント８０１は、ディスプレイデバイス５４７上のレンダリングのために、オペレーティングシステム５３５に対して、矢印８１３として表されるようなテキスト情報を出力する役割を果たす。
【００５３】
オペレーティングシステム５３５は、ディスプレイデバイス５４７上でテキストの表示を制御する役割を果たす種々のコンポーネントを含む。これらコンポーネントは、ディスプレイ情報８１５およびグラフィックディスプレイインタフェース８０２を含む。上述したように、ディスプレイ情報８１５は、たとえば、レンダリング中に適用されるスケーリングに関する情報を含む。ディスプレイ情報８１５は、また、ガンマ補正情報、前景／背景カラー情報および／またはカラーパレット情報のような、ディスプレイドライバ８３０によって使用される情報を含む。
【００５４】
グラフィックディスプレイインタフェース８０２は、テキスト同様グラフィックを処理する回路および／またはルーチンを含む。これらは、図７に関して上述のように動作する、グリフキャッシュ・コントローラ８０５、グリフキャッシュ８０９およびタイプラスタ化器８０４を含む。
【００５５】
グリフキャッシュ８０９は、複数のグリフ８０７、８１１、８１３、８１５をストアするために使用される。本発明によって、ストアされたグリフは、以下で説明するように、パックされたピクセル値を用いて表された、たとえば、文字のビットマップイメージである。グリフは、パックされたピクセル値に加えて文字間隔情報を含んでもよい。ストアされたグリフ８０７、８１１、８１３、８１５は、同じ文字の異なるサイズの表現、異なるフォントを用いた同じ文字または異なる文字の表現に対応してもよい。ストアされたグリフ８０７、８１１、８１３、８１５は、ユーザのカラー前景／背景の選択がディスプレイドライバ８３０によって後で適用される、白黒の文字表現である。
【００５６】
ＧＤＩ８０２は、入力として、テキスト情報８１３を受け取る。テキスト情報８１３は、たとえば、レンダリングされる１文字または複数文字、レンダリング中に使用されるフォントおよび文字がレンダリングされるポイントのサイズを同定する情報を含む。テキスト情報８１３は、グリフキャッシュ・コントローラ８０３に供給される。グリフキャッシュ・コントローラ８０３は、レンダリングされる文字が既にグリフキャッシュ８０９にストアされているかを判断する。特定のポイントサイズとフォントタイプを持つレンダリングされるべき文字が既にキャッシュ８０９に存在するとき、グリフキャッシュ・コントローラ８０３は、グリフキャッシュ８０９を制御して、レンダリングされるべき文字に対応するグリフを出力する。
【００５７】
レンダリングされるべき文字がグリフキャッシュ８０９にまだ存在しないとき、本発明によって、タイプラスタ化器８０４が、パックされたビットマップ、たとえば、グリフ８０７を生成するのに使用される。ラスタ化器８０４により生成された各グリフは、グリフキャッシュ８０９にストアされ、さらなる処理のために、ディスプレイドライバ８３０へ出力される。
【００５８】
タイプラスタ化器８０４は、入力されたテキスト情報からパックされたビットマップ表現、たとえば、グリフを生成する役割を果たす。タイプラスタ化器８０４は、文字データ８０６およびレンダリングとラスタ化ルーチン８０７を含む。
【００５９】
文字データ８０６は、１つまたは複数の文字セットの高解像度ディジタル表現を提供する、たとえば、ベクトルグラフィックス、線、点および曲線を含んでもよい。
【００６０】
図３に示したように、高解像度ディジタル表現を生成するために、テキスト生成中の使用のためにメモリへストアされることができる、データ８０６のようなテキスト文字３０２を処理することが公知である。そのため、データ８０６の生成３０４およびストア３０６は、本発明では詳細には説明しない。
【００６１】
レンダリングおよびラスタ化ルーチン８０７は、スケーリングサブルーチン８０８、ヒンティングサブルーチン８１０および走査変換サブルーチン８１２を含む。スケーリング、ヒンティングおよび走査変換ルーチンおよびサブルーチンは、スクリーンＲＧＢピクセルサブコンポーネントを、レンダリングされるイメージの異なる部分を表すのに使用されることができる個別の光度エンティティとして、考慮し、利用し、または、扱う。これらルーチン８０８、８１０および８１２は、図９に関して詳細に説明する。
【００６２】
ディスプレイドライバ８３０は、図７の実施形態において、複数のイメージ処理操作を実施するために使用される、事前に計算されたルックアップテーブル８３１のセットを含む。
【００６３】
ディスプレイドライバ８３０は、入力グリフとして、たとえば、ＧＤＩ８０２により出力されたグリフ８０７およびディスプレイ情報８１５を受け取る。ディスプレイ情報８１５は、たとえば、前景／背景カラー情報、ガンマ値、カラーパレット情報およびピクセル値フォーマット情報を含む。ディスプレイ情報８１５は、テーブルのセット８３１に含まれるルックアップテーブルの１つが、任意の時に使用されるであろう、どれかを選択するのに使用される。
【００６４】
テーブルのセット８３１のルックアップテーブルは、処理されるグリフを表すのに使用されるパックされたピクセル値を、処理されたピクセル値に変換するのに使用される。処理されたピクセル値は、ディスプレイアダプタ５４８および／またはディスプレイデバイス５４７によって使用される形式である。たとえば、処理されたピクセル値は、たとえば、８ビットＲ、ＧおよびＢの光度値、または、任意の使用できるビット数の光度値、または、たとえば、ディスプレイアダプタ５４８および／またはディスプレイデバイス５４７によって利用される任意のビット数を有することができるパレット索引値であってもよい。
【００６５】
各ルックアップテーブルは、各々の可能性のあるパックされたピクセル値に対して１つのエントリを含む。１８０の可能なパックされたピクセル値の典型的な場合において、ルックアップテーブルは、ルックアップテーブルエントリを表すＮ番目の配列要素が、Ｎ番目の可能性のあるパックされたピクセル値に対応するように配列された１８０のエントリの配列を有するであろう。パレット化されたディスプレイ実施形態の場合、各テーブルエントリは、単一カラーパレット値を有する。
【００６６】
他の実施形態において、各エントリは、Ｒ、Ｇ、Ｂピクセルサブコンポーネント光度値のセットを含む。各出力ピクセル値、すなわち、パレット値またはピクセルサブコンポーネント光度値は、出力ピクセル値が、対応するパックされたピクセル値を入力として用いて、実装されたディスプレイドライバ処理操作を実行することにより生成される、事前に計算された値である。
【００６７】
図７は、エントリの配列８３５を有するルックアップテーブル８３２を示す。１つのエントリ８３５が各々可能性のあるピクセル値に対し提供される。ブロック８３３は、テーブル８３２内の要素８３５の配列位置を表す。本発明によれば、パックされたピクセル値として特定された配列位置に対応する配列エントリは、パックされたピクセル値を入力として用いたルックアップ操作の実施に応答して出力される。そのため、パックされたピクセル値８３３をルックアップテーブル８３２への索引として使用することにより、１つまたは複数のピクセル値を含む適切なルックアップテーブルエントリが得られる。ディスプレイドライバルックアップテーブル操作を通して生成されたピクセル値は、ディスプレイアダプタ５４８に出力される前にスクリーンフレームバッファ８３４にストアされる。これらピクセル値は、１つまたは複数の処理操作、たとえば、ガンマ補正、カラーフィルタリングおよび／またはパレット選択操作の結果を表すため、処理されたピクセル値と呼ばれる場合がある。
【００６８】
ピクセル値をストアするためにスクリーンバッファ８３４を使用することにより、たとえば、テキストストリングの単一イメージがいくつかの異なる文字を表すグリフから生成されることができる。
【００６９】
グリフに含まれるパックされたピクセル値をルックアップテーブル８３２への索引として使用することにより、カラーパレット値またはＲ、ＧおよびＢのピクセルサブコンポーネント光度値のいずれかを含む処理されたピクセル値のセットが、取り付けられたディスプレイアダプタおよび／またはディスプレイデバイスによって利用される形式で得られる。
【００７０】
図７の実施形態において、ルックアップテーブル８３２に含まれる、処理されたピクセル値は、事前に計算される。すなわち、ディスプレイドライバ８３０で使用される前に計算される。処理されたピクセル値を事前に計算することにより、ガンマ補正、カラー補償および／またはパレット選択操作をイメージレンダリング中にリアルタイムで実施する必要が避けられる。
【００７１】
図８において、破線のボックス８３３は、ディスプレイドライバ８３０を実現するのに使用することができるピクセル値ルックアップテーブル法に対する別法を提示する。ブロック８３３は、処理されたピクセル値を、ディスプレイアダプタ５４８および／またはディスプレイ５４７による使用に適したフォーマットで生成するために、入力としてパックされたピクセル値を用いて実施されることができる、ガンマ補正、カラー補償および／またはパレット選択操作を表す。
【００７２】
種々のパレット化ディスプレイ実施形態において、ディスプレイアダプタ５４８は、しばしばハードウェアで実現されるカラーパレットの使用を通して、ディスプレイドライバルックアップテーブル操作を介して得られたカラーパレット値を実際のＲ、Ｇ、Ｂの光度値に変換する。
【００７３】
本発明のスケーリング、ヒンティングおよび走査変換サブルーチン８０８、８１０、８１２の各々により実施される操作は、図９を参照して説明する。
【００７４】
図９は、本発明によって、表示のためにテキストをレンダリングするのに使用されるレンダリングおよびラスタ化ルーチン８０７を示す。本図に示すように、ルーチン８０７は、このルーチンが、たとえばオペレーティングシステム５３５の下で、アプリケーション５３６からのテキスト情報の受取りに応答して、実行されるステップ９０２で始まる。ステップ９０４において、入力がテキストレンダリングおよびラスタ化ルーチン８０７により受け取られる。入力は、アプリケーション５３６から得られるテキスト、フォントおよびポイントサイズ情報９０５を含む。さらに、入力は、ディスプレイ情報８１５を含む。ディスプレイ情報８１５は、たとえば、スケーリング情報、前景／背景カラー情報、ガンマ値、ピクセルサイズ情報、カラーパレット情報および／またはディスプレイアダプタ／ディスプレイデバイスピクセル値フォーマット情報を含む。ディスプレイ情報８１５は、オペレーティングシステム５３５によりメモリ５２２にストアされたモニタ設定値から得られることとしてもよい。
【００７５】
ステップ９０４にて受け取られた入力は、また、表示されるテキスト文字８０６の、たとえば、線、点および／または曲線の形での、高解像度表現を含む。
【００７６】
ステップ９０４にて入力が受け取られると、操作は、スケーリングサブルーチン８０８がオーバーサンプリングを含むスケーリング操作を実施するのに使用されるステップ９１０に進む。本発明の１つの典型的な実施形態によれば、非正方スケーリングが、各ピクセルエレメントに含まれるピクセルサブコンポーネントの方向および／または数の関数として実施される。特に、高解像度文字データ８０６、たとえば、受け取られたテキストおよびフォント情報により特定されて表示される、文字の線および点表現は、ストライピングの方向よりもストライピングに垂直な方向に、より大きな倍率でスケーリングされる。これによって、本発明によって個々のピクセルサブコンポーネントを独立した光度源として使用することにより達成することができる、より高い解像度を、その後のイメージ処理操作が利用できる。
【００７７】
したがって、データが表示されるデバイスとして図１で説明するタイプのディスプレイが使用されるとき、スケーリングは、垂直方向で実施されるよりも大きな割合で水平方向に実施される。
【００７８】
垂直および水平のイメージ方向の間のスケーリングの差は、使用されるディスプレイおよび実施される、その後の走査変換およびヒンティング工程に依存して変わることができる。ステップ９０４で得られるスケーリング情報を含むディスプレイ情報は、所定の実施形態において実施されるスケーリングを決定するステップ９１０にて使用される。
【００７９】
ほとんどの場合、文字またはイメージのスケーリングは、その必要はないけれども、赤、緑および青のストライプをさらに分割することによって、その後の加重走査変換操作を提供できる割合で、ストライピングに垂直な方向に実施される。加重走査変換操作が適用される場合、スケーリングは、使用されるＲＧＢストライピングおよび重み付けの関数として実施される。赤のピクセルコンポーネントが重み５を割り当てられ、緑のピクセルサブコンポーネントが重み９を割り当てられ、そして、青のピクセルサブコンポーネントが重み２を割り当てられる、垂直ストライピングを持つ一実施形態において、スケーリングは、ｙ方向に１の割合で、ｘ方向に１６の割合で実施される。
【００８０】
図１１は、図１に示したような、垂直ストライピングを持つモニタ上で文字（ｌｅｔｔｅｒ）を表示することを見越して、文字ｉ１００２の高解像度表現で実施されたスケーリング操作を示す。この例において、水平（Ｘ）方向のスケーリングは×１６の割合で適用されるが、垂直（Ｙ）方向のスケーリングは×１の割合で適用されていることに留意されたい。これによって、元の文字１００２と高さがちょうど同じだが、１６倍幅の広いスケーリングされた文字１００８が得られる。
【００８１】
再び図９を参照すると、スケーリング操作がステップ９１０で完了すると、操作は、たとえば、ヒンティングサブルーチン８１０を実行することにより、スケーリングされたイメージのヒンティングが実施されるステップ９１２へ進む。ヒンティング工程を述べるために、グリッド・フィッティング（ｇｒｉｄ−ｆｉｔｔｉｎｇ）、という言葉が使われることがある。
【００８２】
ヒンティング操作は、図１２に示されている。図１２は、垂直ストライピングを持つモニタ上に表示されることを目的とした、スケーリングされた文字１００８のヒンティング操作を示す。
【００８３】
ヒンティングは、その後の走査変換操作の一部として使用される、スケーリングされた文字、たとえば、グリッド１１０４内の文字１００８のアラインメントを含む。ヒンティングは、また、イメージがよりよくグリッドの形状に一致するように、イメージの輪郭の歪曲を含む。グリッドは、ディスプレイデバイスのピクセルエレメントの物理的サイズとその後の走査変換操作中に適用される任意の重み付けの関数として決定される。
【００８４】
本発明は、ピクセルサブコンポーネント境界を、文字が調整されることができるか、または、させられるべき境界または文字の輪郭が調整されるべき境界として扱う。
【００８５】
本発明のヒンティング工程は、利用できるピクセルサブコンポーネントを用いて、文字の正確な表示を最適化することを目的とするように、グリッド内で、たとえば、ピクセルまたはピクセルサブコンポーネント境界に沿って、または、その中で、文字のスケーリングされた表現をアラインメントすることを含む。多くの場合、これは、文字の軸（ｓｔｅｍ）の左端を左側ピクセルまたはサブピクセルコンポーネント境界に揃えること、および文字のベースの底部をピクセルコンポーネントまたはサブコンポーネント境界に沿って揃えることを含む。
【００８６】
実験結果によれば、垂直ストライピングの場合、文字の軸が青または緑の左端を持つように調整された幹を持つ文字は、通常、赤の左端を持つように調整された軸を持つ文字より、はっきりと判読できる傾向にある。そのため、少なくともいくつかの実施形態では、垂直ストライピングを持つスクリーン上に表示される文字のヒンティング中は、ヒンティング工程の一部として、軸に対して、赤の左端よりも青または緑の左端が有利である。
【００８７】
水平ストライピングの場合、文字のベースの底部が赤または青の底端を持つように調整された文字は、通常、緑の底端を持つように調整されたベースを持つ文字より、はっきりと判読できる傾向にある。そのため、少なくともいくつかの実施形態では、水平ストライピングを持つスクリーン上に表示される文字のヒンティング中は、ヒンティング工程の一部として、緑の底端よりも赤または青の底端が有利である。
【００８８】
図１２は、スケーリングされたイメージ１１０８に対するヒンティング操作の適用を示す。ヒンティング工程の一部として、スケーリングされたイメージ１１０８は、グリッド１１０４上に配置され、グリッド形状によりよく一致し、所望の程度の文字間隔を得るために、その位置および輪郭が調整される。図１２の文字（ｌｅｔｔｅｒ）Ｇ．Ｐ．は、グリッド配置ステップを示し、ヒンティングという言葉は、ヒンティング工程の輪郭調整および文字間隔設置部を示すのに使用される。
【００８９】
ヒンティング工程がステップ９１２で完了すると、本発明によって、たとえば、以下で説明する走査変換サブルーチン８１２を実行することにより、走査変換操作が実施されるステップ９１４へ操作が進む。いくつかの実施形態において、走査変換操作は、以下で説明するように、加重走査変換操作である。
【００９０】
走査変換は、文字を表すスケーリングされた幾何形状のビットマップイメージへの変換を含む。通常の走査変換操作は、スケーリングされたイメージの対応する部分がマッピングされる個々のユニットとしてピクセルを扱う。そのため、通常の走査変換操作の場合、スケーリングされたイメージの一部がマッピングされる、ピクセルエレメントのＲＧＢピクセルサブコンポーネントの各々とともに使用される光度値を決定するために、イメージの同じ部分が使用される。図３は、ビットマップとして表されるイメージのサンプリングおよびサンプリングされた値からの光度値の生成を含む公知の走査変換工程の典型例である。
【００９１】
本発明によって、ピクセルのＲＧＢピクセルサブコンポーネントは、独立した光度エレメントとして扱われる。したがって、各ピクセルサブコンポーネントは、スケーリングされたイメージの異なる部分がマッピングされる個別の光度コンポーネントとして扱われる。したがって、本発明により、スケーリングされたイメージの異なる部分が、公知の走査変換手法で可能であるより高い解像度を提供する、異なるピクセルサブコンポーネントにマッピングされることができる。すなわち、種々の実施形態において、スケーリングされたイメージの異なる部分が、各ピクセルサブコンポーネントとともに使用される光度値を独立に決定するために使用される。
【００９２】
図６は、本発明の一実施形態によって実施される典型的な走査変換操作を示す。本図に示す実施形態において、グリッド６２０によって表されるイメージの異なるイメージサンプル６２２、６２３、６２４は、生成されるビットマップイメージ６３０の対応する部分６３２、６３３、６３４と関連する赤、緑および青の輝度値を生成するために使用される。図６の例において、赤および青のイメージサンプルは、緑のサンプルから、各々、−１／３と＋１／３のピクセル幅だけ遠くへ変位している。したがって、図３に説明する公知のサンプリング／イメージ表現方法に関して発生する変位の問題が避けられる。
【００９３】
走査変換操作の一部として、赤、緑および青（Ｒ、Ｇ、Ｂ）のルミナンス輝度（ｌｕｍｉｎａｎｃｅ  ｉｎｔｅｎｓｉｔｙ）値が各ピクセルサブコンポーネントに対して生成される。これらは、個別の、赤、緑および青の光度レベルの形式で表現されてもよい。重み付けのない走査変換操作において、Ｒ、Ｇ、Ｂ輝度レベルは、通常、０または１である。重み付け走査変換操作において、Ｒ、ＧおよびＢのピクセルサブコンポーネントの１つまたは複数に対して、通常、２より大きい輝度レベルが提供される。
【００９４】
多くのシステムにおいて、ディスプレイアダプタ５４８および／またはディスプレイデバイス５４７に対してピクセルサブコンポーネント光度値を特定するのに使用される数に対応するビット数を持つ、３つの個別の量として、Ｒ、ＧおよびＢの光度値が特定され、ストアされ、そして処理される。たとえば、多くのシステムは、個別のＲ、ＧおよびＢの光度値を表すために、８ビット量を使用する。そうした実施形態の結果として、Ｒ、Ｇ、Ｂの光度値の処理は、１ピクセル当たり２４ビットのストア、処理および転送を必要とする。
【００９５】
メモリ、処理およびバス帯域までもが制限された資源であるデバイス、たとえば、ポータブルコンピュータおよびハンドヘルドコンピューティングデバイスの場合、全レンダリング工程を通して各Ｒ、Ｇ、Ｂの光度値を表すための８ビットの使用は、利用できる資源に対してかなりの負荷を与えることになる。
【００９６】
本発明の一特徴によれば、グリフを処理し、ストアするのに要求される、メモリを含む資源を減らすために、個別のＲ、ＧおよびＢの光度値が、変換、たとえば、単一の数に圧縮される。本明細書では、ピクセルに関する、Ｒ、ＧおよびＢの光度値の単一値へのパッキングを表すため、この数をパックされたピクセル値と呼ぶ。ピクセルのＲ、Ｇ、Ｂの光度レベルを表すのに使用される数の範囲、たとえば、パックされたピクセル値の範囲は、各々の可能なＲ、Ｇ、Ｂの光度レベルの組み合わせが、一意に特定されることができるように、十分に大きく選択される。
【００９７】
したがって、Ｒ、Ｇ、Ｂの光度レベルの組み合わせを表すのに使用される、パックされたピクセル値の全数は、少なくとも、提供される赤の輝度レベルの全数に、提供される緑の輝度レベルの全数を乗じ、さらに、提供される青の輝度レベルの全数を乗じた値と同じ大きさであるべきである。
【００９８】
メモリアクセス、処理およびデータ転送操作の観点から、しばしば、ｂｙｔｅ、すなわち８ビット量で考えるのが都合がよいため、提供されるＲ、Ｇ、Ｂの輝度レベルの組み合わせの全数は、８ビット量またはその倍数として特定されることができるのが望ましい。ハンドヘルドコンピューティングデバイスにおいては、３つのＲ、Ｇ、Ｂの光度値の１ピクセル当たり８ビットの単一表現が特に望ましい。これは、全部で１ピクセル当たり２４ビットを必要とする１ピクセル当たり８ビットのサブコンポーネント光度値を使用する実施形態に比べ、メモリなどの観点から、かなり節約になるためである。
【００９９】
一般的にイメージ、特に、テキストイメージをレンダリングすることに関する資源の負荷を制限するために、本発明の１特徴は、ピクセルに関連する個別のＲ、ＧおよびＢの光度値をパックされたピクセル値に変換することに向けられている。このような実施形態において、グリフは、たとえば、３つの個別の８ビットＲ、ＧおよびＢの光度値に対抗するものとして、パックされたピクセル値を用いて、表され、ストアされる。処理は、光度値がディスプレイアダプタ５４８に供給される前に、パックされたピクセル値がディスプレイデバイス５４７により使用される形式の個別のＲ、ＧおよびＢのルミナンス（ｌｕｍｉｎａｎｃｅ）値に変形または変換されることにより、パックされたピクセル値表現上で実施されてもよい。本発明によれば、個別のＲ、ＧおよびＢの光度レベルをパックされたピクセル値に変換する工程は、走査変換操作の一部として実施されてもよい。
【０１００】
図１５で説明するテーブル１５００のような、簡単なルックアップテーブルは、一実施形態において、ピクセルに関連する個別のＲ、Ｇ、Ｂの光度レベルとパックされたピクセル値の間で変換するのに使用される。
【０１０１】
本図に示すように、テーブル１５００は、全部でＮ（０〜Ｎ−１）のパックされたピクセル値エントリ１５０２、１５０４、１５０６を含む。Ｎは、ピクセルエレメントに割り当てることができる、可能なＲ、ＧおよびＢ光度レベルの組合わせの全数である。各々のパックされたピクセル値エントリ１５０２、１５０４、１５０６に関連するのは、各々、対応するＲ、ＧおよびＢの光度レベルの組み合わせ１５０１、１５０３、１５０５である。Ｒの光度値は、０からＲＰ−１へ変わる。ここで、ＲＰは赤の光度レベルの最大可能数である。Ｇの光度値は、０からＧＰ−１へ変わる。ここで、ＧＰは緑の光度レベルの最大可能数である。Ｂの光度値は、０からＢＰ−１へ変わる。ここで、ＢＰは青の光度レベルの最大可能数である。
【０１０２】
Ｒ、ＧおよびＢの光度レベルの組み合わせとパックされたピクセル値の間の変換は、ルックアップテーブル１５００への索引として、ピクセルエレメントに関連するＲ、ＧおよびＢの光度レベルを用いることにより実施されることができる。たとえば、Ｒ、ＧおよびＢの光度レベル１、０、０を用いて、テーブル１５００への索引としてのエントリ１５０１は、出力される値１を持つ、関連するパックされたピクセル値エントリ１５０２をもたらす。同様に、パックされたピクセル値は、テーブル１５００への索引としてパックされたピクセル値を用い、パックされたピクセル値に関連するＲ、ＧおよびＢの光度レベルエントリを出力することにより、テーブル１５００を用いて、Ｒ、Ｇ、Ｂの光度値に変換されてもよい。
【０１０３】
テーブル１５００を用いる代わりに、数学の関数によってＲ、Ｇ、Ｂの光度レベル値とパックされたピクセル値の間の関係を表現し、関数を用いて、パックされたピクセル値とＲ、Ｇ、Ｂの光度レベル値の間を変換することが可能である。一実施形態において、このような関数は、ソフトウェアで実現され、Ｒ、Ｇ、Ｂの光度レベル値とパックされたピクセル値の間を変換するために実行される。
【０１０４】
ＲＧＢストライピングに垂直な方向のオーバーサンプリングが１６倍で提供されている、典型的な一実施形態において、６の赤の光度レベル、たとえば、レベル０〜５が使用され、１０の緑の光度レベル、たとえば、レベル０〜９が使用され、３の青の光度レベル、たとえば、レベル０〜２が使用される。これにより、全部で（６×１０×３）１８０の可能なＲ、ＧおよびＢの光度レベルの組み合わせが得られる。このような実施形態において、Ｎは１８０に等しく、ルックアップテーブル１５００は、パックされたピクセル値０〜１７９を含むであろう。このような実施形態に対して、Ｒ、Ｇ、Ｂの光度レベルとパックされたピクセル値の間を変換する適当な方程式は、
パックされたピクセル値＝（Ｒ×３０）＋（Ｇ×３）＋Ｂ
である。ここで、Ｒ、ＧおよびＢは、ピクセルサブコンポーネント輝度レベル値である。
【０１０５】
提供されるＲ、ＧおよびＢの光度レベルの数が、通常、走査変換操作中にＲ、ＧおよびＢの光度レベルを決定するために使用されるセグメントの数の関数であることに留意されたい。また、１８０の可能なＲ、Ｇ、Ｂの光度レベルの組み合わせが提供される典型的な実施形態において、パックされたピクセル値０〜１７９の各々は、８ビット量を用いて表されることに留意されたい。これは、個別の８ビット値が使用され、Ｒ、Ｇ、Ｂの組み合わせについて、全部で２４ビットを使用する実施形態に比べて、ストレージ要求の観点からかなりの節約を表す。
【０１０６】
図１０は、本発明によって実装された典型的な走査変換ルーチン８１２を示す。ルーチン８１２は、これがロードされ、たとえば、ＣＰＵ５２１により実行されたときに、ステップ８５０で始まる。操作は、ステップ８５０から、ルーチン８１２が走査変換操作が実施されるはずのスケーリングされたイメージデータ８５２を受け取るステップ８５４へ進む。スケーリングされたイメージデータは、通常、複数のピクセルに関連するイメージデータを含む。各ピクセルに対応するスケーリングされたイメージデータは、光度レベル決定ステップ８５６、８５８および８６０により、個別に処理される。これらのステップ８５６、８５８および８６０は、並列に実施されるように示されているが、これらは、順次に実施されてもよい。
【０１０７】
ステップ８５６にて、処理されるピクセルセグメントに対応する、赤のピクセルサブコンポーネントとともに使用される光度レベルが決定される。これは、たとえば、スケーリングされたイメージを調べることにより、「オン」されるはずの赤のピクセルサブコンポーネントセグメントの数を決定することにより行われる。
【０１０８】
ステップ８５８にて、処理されるピクセルセグメントに対応する、緑のピクセルサブコンポーネントとともに使用される光度レベルが決定される。これは、たとえば、スケーリングされたイメージを調べることにより、「オン」されるはずの緑のピクセルサブコンポーネントセグメントの数を決定することにより行われる。
【０１０９】
ステップ８６０にて、処理されるピクセルセグメントに対応する、青のピクセルサブコンポーネントとともに使用される光度レベルが決定される。これは、たとえば、スケーリングされたイメージを調べることにより、「オン」されるはずの青のピクセルサブコンポーネントセグメントの数を決定することにより行われる。
【０１１０】
ステップ８５６、８５８、８６０は、処理されるピクセルセグメントに対応するピクセルエレメントのＲ、Ｇ、Ｂピクセルサブコンポーネントに対するＲ、ＧおよびＢの光度レベル値のセットを生成する。
【０１１１】
ピクセルエレメントに対してＲ、Ｇ、Ｂの光度レベル値が決定されると、操作はステップ８６２へ進む。ステップ８６２にて、Ｒ、Ｇ、Ｂの光度値のセットは、たとえば、テーブル１５００のようなルックアップテーブルまたはＲ、Ｇ、Ｂの値のセットとパックされたピクセル値の間を変換する関数を用いて、パックされたピクセル値に変換される。
【０１１２】
ステップ８６３にて、スケーリングされたイメージの全てのピクセルセグメントが処理されたかについて、判断される。スケーリングされたイメージセグメントに対応するデータが処理されるために残っているとき、次のピクセルセグメントに対応するスケーリングされたイメージデータが処理されるように、操作が再びステップ８５６、８５８、８６０へ進む。
【０１１３】
ステップ８６３にて、スケーリングされたイメージの全てのピクセルセグメントが処理されたとき、操作はステップ８６４へ進む。ステップ８６４にて、グリフを表す、生成され、パックされたピクセル値は、グリフキャッシュ８０９および／またはディスプレイドライバ８３０へ出力される。ステップ８６４におけるパックされたピクセル値の出力後、走査変換サブルーチン８１２は、サブルーチン８１２の再実行まで、ステップ８６６にて停止する。
【０１１４】
図１３は、垂直ストライピングを持つディスプレイデバイス上の表示のために、ヒンティングされたイメージ１０１８上で実施される加重走査変換操作を説明する。イメージセグメントが「オン」か「オフ」かを判定するのに多くの公知の方法がある。
【０１１５】
図１３に示す例において、白は、走査変換操作によって生成されるビットマップイメージにおいて「オフされ」ているピクセルサブコンポーネントを示すのに使用される。「オン」されているピクセルサブコンポーネントは、点描法を用いて示されている。点描法が密であるほど、点を付けたピクセルサブコンポーネントの光度が低い。
【０１１６】
黒いテキストの場合、「オン」は、ピクセルサブコンポーネントが光を出力しないか、または、最小の可能な光度で光を出力するように、ピクセルサブコンポーネントに関連する輝度値が制御されることを意味する。白い背景ピクセルを仮定すると、「オン」していないサブコンポーネントは、全ての光出力を出力させられるであろう輝度値が割り当てられるであろう。全部「オン」および全部「オフ」の間のグラデーションは、イメージが、ピクセルサブコンポーネントについて複数のセグメントを持つグリッド上に配置されるときに可能である。この場合、所定のサブコンポーネントに対して「オン」であるべきセグメントの数のカウントが決定される。「オン」であるイメージセグメントの数は、光度レベル値である。このような値は、対応するピクセルサブコンポーネントに対して使用される光度を示す。ピクセルサブコンポーネントを表すＭセグメントの使用により、Ｍ＋１の光度レベル、すなわち、０個の「オン」のセグメントからＭ個の「オン」のセグメントに対応するレベルを提供する。
【０１１７】
ピクセルサブコンポーネントに対応するイメージのセグメントが、スケーリング中に「オン」と考えられるべきかを判定する第１の手法は、スケーリンググリッドの一部により表される、ピクセルサブコンポーネントにマッピングされるスケーリングされたイメージセグメントが、表示されるべきイメージのスケーリングされた表現の中にあるかを判定することである。別の手法は、ピクセルサブコンポーネントにマッピングされるスケーリングされたイメージセグメントの５０％またはそれ以上が、表示されるイメージにより占有されているかを判定することである。占有されている場合、イメージセグメントは、「オン」されていると考えられる。
【０１１８】
重み付けが適用されるとき、スケーリングされたイメージの異なるサイズの領域が、特定のピクセルサブコンポーネントが「オン」、「オフ」またはその間の値になるべきかを判定するのに使用される。
【０１１９】
上述したように、人間の目は、異なるカラー光源からの光輝度を異なる割合で知覚する。赤、緑および青のピクセルサブコンポーネントが最大の光度出力に設定されることから得られる、白ピクセルの知覚されるルミナンスに対して、緑は約６０％、赤は約３０％および青は約１０％寄与する。この理由で、多くの実施形態において、資源、たとえば、光度レベルを割り当てるとき、より多くの輝度レベルがしばしば青または赤よりも緑に割り当てられる。さらに、より多くの輝度レベルがしばしば青よりも赤に割り当てられる。しかし、いくつかの実施形態においては、等しい数の輝度レベルが赤、緑および青ピクセルサブコンポーネントに対して割り当てられる。
【０１２０】
図１３に示した典型的な実施形態においては、水平方向オーバーサンプリングの結果として、１６イメージセグメントが各ピクセルエレメントに対応する。したがって、図１３において、ピクセルセグメントは１６イメージセグメントを有する。ピクセルエレメントに関連する１６イメージセグメントからの、５が赤のピクセルサブコンポーネントに対応するとして割り当てられる。これらは、本明細書において、赤のイメージセグメントと呼ばれる。１６ピクセルセグメントのうち９が緑のピクセルサブコンポーネントに割り当てられる。これらは、本明細書において、緑のイメージセグメントと呼ばれる。１６イメージセグメントからの残りの２は、青のピクセルサブコンポーネントに割り当てられる。これらは、本明細書において、青のイメージセグメントと呼ばれる。このセグメントの割り当ては、赤６、緑１０、青３のサブコンポーネント輝度レベルを提供する。
【０１２１】
他のイメージセグメント割り当てが可能である、そして、いくつかの実施形態では、セグメントの同じ数、たとえば、２または３セグメントがピクセルサブコンポーネントに対して割り当てられる。
【０１２２】
図１３の走査変換例において、ピクセルセグメントは、イメージの輪郭内に少なくとも５０％があれば、「オン」と考えられる。図１３に示した走査変換操作により、本発明によれば、パックされたピクセル値のセットとしてストアされる、ビットマップイメージ１２０３が得られる。ビットマップイメージカラムＣ１〜Ｃ４の各ピクセルサブコンポーネントが１６のイメージセグメントの異なるセットからどのように決定されるかに留意されたい。また、個々のピクセルサブコンポーネントの輝度が、個々の赤、緑および青のピクセルサブコンポーネントに対応する「オン」のセグメントの数に依存して、どのように変化するかに留意されたい。
【０１２３】
図１４は、スケーリングされ、ヒンティングされたイメージ１０１８の第４番目の行１４００上における加重走査変換操作を実施した結果を説明する。図１４において、Ｒ、Ｇ、Ｂのピクセルサブコンポーネントの各々に対するＲ、Ｇ、Ｂのピクセルセグメントのカウントは、対応するピクセルサブコンポーネントのすぐ下の行１４０２に示される。値１４０２は、走査変換サブルーチン８１２のステップ８５６、８５８、８８０にて決定される。
【０１２４】
レンダリングされる文字のイメージは、ピクセル（Ｃ１，Ｒ４）および（Ｃ４，Ｒ４）に対応するセグメントを通らない。したがって、これらピクセルエレメントに関連するセグメントのどれもが、「オン」でなく、Ｒ、ＧおよびＢのサブコンポーネントセグメントのカウントの全てが、これら２つのピクセルに対してゼロであるため、（０，０，０）のＲ、ＧおよびＢ値が得られる。
【０１２５】
ピクセルエレメント（Ｃ２，Ｒ４）に関して、スケーリングされたイメージに対して走査変換ステップ８５６、８５８、８８０を実施することにより得られる光度レベルは、イメージの輪郭内に０個の赤のピクセルサブコンポーネントセグメントがあり、イメージの輪郭内に少なくともその５０％がある７個の緑のピクセルサブコンポーネントセグメントがあり、そして、イメージの輪郭内に少なくともその５０％がある２個の青のピクセルサブコンポーネントセグメントがあるため、（０，７，２）である。
【０１２６】
ピクセルエレメント（Ｃ３，Ｒ４）に関して、スケーリングされたイメージに対して走査変換操作を実施することにより得られる光度レベルは、イメージの輪郭内に少なくともその５０％がある４個の赤のピクセルサブコンポーネントセグメントがあり、イメージの輪郭内に少なくとも５０％がある、０個の緑のピクセルサブコンポーネントセグメントがあり、そして、イメージの輪郭内に少なくとも５０％がある、０個の青のピクセルサブコンポーネントセグメントがあるため、（４，０，０）である。
【０１２７】
Ｒ、Ｇ、Ｂの光度ピクセルサブコンポーネント値（０，０，０）、（０，７，２）、（４，０，０）および（０，０，０）は、本発明によって、走査変換サブルーチン８６２にて、各々、パックされたピクセル値０、２３、１２０、０に変換される。
【０１２８】
これは、変換操作を実施するルックアップテーブルを用いることにより行われてもよい。しかし、Ｒ、ＧおよびＢのピクセルサブコンポーネント光度レベル値をパックされたピクセル値に関連付ける方程式を用いることにより行われることができる。赤６、緑１０および青３の光度レベルを提供するため、Ｒ、Ｇ、Ｂピクセルサブコンポーネント光度レベル値の１８０の可能な組み合わせが存在する一実施形態において、Ｒ、Ｇ、Ｂの光度レベル値の各々のセットは、方程式
パックされたピクセル値＝（Ｒ×３０）＋（Ｇ×３）＋Ｂ
を用いて、単一のパックされたピクセル値に変換される。ここで、Ｒ、ＧおよびＢは、ピクセルサブコンポーネント輝度レベル値である。
【０１２９】
行１４０４は、各ピクセルエレメント（Ｃ１，Ｒ４）、（Ｃ２，Ｒ４）、（Ｃ３，Ｒ４）、（Ｃ４，Ｒ４）に対して生成されたパックされたピクセル値を説明する。
【０１３０】
走査変換サブルーチン８１２により生成されグリフは、要求されたときに表示するため、ディスプレイドライバ８３０にキャッシュされ、出力される。ディスプレイドライバはグリフを処理する。処理中に、グリフに含まれるパックされたピクセル値は、ディスプレイアダプタ５４８および／またはディスプレイデバイス５４７により使用されるフォーマットを持つ、処理されたピクセル値を生成するのに使用される。ディスプレイドライバにより生成され、処理されたピクセル値は、ストアされ、他の文字またはイメージと組み合わされて、ディスプレイ５４７上に表示される、複合イメージ、たとえば、文字列を形成するスクリーンフレームバッファ８３４にロードされる。ディスプレイが更新される必要があるとき、スクリーンフレームバッファ８３４は、ディスプレイアダプタ５４８に、そこにストアされた、処理されたピクセル値を出力する。ディスプレイアダプタは、ディスプレイ５４７上にイメージを生成するためにこれらの値を使用する。
【０１３１】
ディスプレイドライバ８３０は、スクリーンフレームバッファ８３４に出力される、処理されたピクセル値を生成するときに、ガンマ補正、カラー補償（カラーフィルタリング）および／またはパレット選択を含む複数の処理操作を実施する。ディスプレイドライバ８３０により実施される操作は、種々の実施される操作を列挙するブロック８３３により表されるような、一連の順次イメージ処理操作として実装されてもよい。
【０１３２】
デバイスドライバ処理の実行を促進するために、本発明の特定の一実施形態は、ルックアップテーブル８３２、８３２′、８３２″のセット８３１を含む。ルックアップテーブルは、エントリの配列を含み、各エントリは、ディスプレイドライバ処理操作のセット、たとえば、ガンマ補正、カラー補償および／またはパックされたピクセル値に対するパレット選択を実施することから得られる、１つまたは複数の事前計算されたピクセル値を含む。上述したように、ルックアップテーブル８３２、８３２′、８３２″のピクセル値が、いくつかの処理操作の結果であるため、これらは、しばしば、処理されたピクセル値と呼ばれる。処理されたピクセル値の異なるセット８３２、８３２′、８３２″は、ディスプレイドライバ８３０により実施されるであろう処理操作の各々のセットのために含まれる。たとえば、異なるルックアップテーブルは、選択されるであろう各カラーパレットのために含まれる。したがって、１つのルックアップテーブルが、インターネットおよび選択されたインターネットカラーパレットを用いるアプリケーションに対して使用され、他のテーブルが別のカラーパレットに依存するテキストアプリケーションに対して使用されるであろう。異なるルックアップテーブルは、また、提供される、異なる処理されたピクセル値フォーマットのために含まれる。たとえば、１つのルックアップテーブルは、赤、緑および青のピクセルサブコンポーネント光度値の各々を特定する８ビットを使用して、処理されたピクセル値の１セット当たり全部で２４ビットを使用する、処理されたピクセル値を出力することができるし、別のフォーマットは、処理されたピクセル値の１セット当たりわずか１６ビットを使用することができる。
【０１３３】
異なるルックアップテーブルは、また、たとえば、異なるディスプレイデバイスに対して使用される異なるガンマ補正値を備える。
【０１３４】
図８において、ディスプレイ情報ブロック８１５からルックアップテーブルのセットを表すブロック８３１に引かれた矢印は、ルックアップテーブル８３２、８３２′、８３２″のどの１つが、任意の時に、受け取られ、パックされたピクセル値を処理されたピクセル値に変換するのに使用されるべきかを選択するときに、ガンマ補正、カラーパレット情報、前景／背景カラー情報およびピクセル値フォーマット情報のようなディスプレイ情報を使用することを示す。
【０１３５】
図１７は、典型的なルックアップテーブル８３２を示す。本図に示すように、テーブル８３２は、本明細書では、処理されたピクセル値と呼ばれる、各々がＲ、Ｇ、Ｂの光度値８３５のセットを含むＮエントリの配列８３５を有する。カラム３３の左に配置されるカラム８３３は、各テーブルエントリ１７０１、１７０３、１７０５の配列位置を示す。各々の可能な、パックされたピクセル値が異なる配列位置を特定するときに解釈されることに留意されたい。したがって、各々の可能なパックされたピクセル値１５０２、１５０４、１５０６に対して、テーブル８３２は、１つの対応するエントリ、すなわち、処理されたピクセル値１７０１、１７０３、１７０５のセットを含む。図１７の説明において、Ｎは、デバイスドライバ８３０により受け取られるであろう、可能なパックされたピクセル値の全数を表すのに使用される。ＰＲ、ＰＧ、ＰＢは、処理された赤、処理された緑および処理された青のピクセルサブコンポーネント光度値を表すのに使用される。下付き文字は、個々の処理されたピクセル値が対応する、処理されたピクセル値のセットを示す。
【０１３６】
図２０は、本発明により実施される、別のディスプレイドライバルックアップテーブル２０３２を示す。本図に示すように、テーブル８３２は、各々がカラーパレット値ＰＶを含む、Ｎエントリの配列２０３５を有する。カラム２０３５の左に配置されるカラム８３３は、テーブル２０３２を有するエントリ配列における、各テーブルエントリ２７０１、２７０３、２７０５の位置を示す。各々の可能な、パックされたピクセル値は異なる配列位置を特定するときに解釈されることに留意されたい。この要領で、各々の可能な、パックされたピクセル値に対して、テーブル２０３２は、１つの対応するエントリ、すなわち、カラーパレット値ＰＶ０からＰＶＮ−１の１つを含む。図２０の説明において、Ｎは、デバイスドライバ８３０により受け取られることができる、可能な、パックされたピクセル値の全数を表すのに使用される。
【０１３７】
テーブル８３２または２０３２への索引としてパックされたピクセル値を用い、また、テーブルエントリ１７０１、１７０３、１７０５、２００１、２００３または２００５の対応する１つを出力することにより、ガンマ補正、カラーフィルタリングおよび／またはパレット選択操作を含むディスプレイデバイス処理は、大量の処理資源を使用する必要を避けながら、簡単なルックアップテーブル操作として迅速に実施される。
【０１３８】
図１６は、ディスプレイデバイスルックアップテーブル８３２、８３２′、８３２″を生成するのに使用されるかもしれないディスプレイデバイスルックアップテーブル生成ルーチン１６００を示す。種々の実施形態において、ルーチン１６００は、ディスプレイドライバ８３０を使用する前に使用される。ルーチン１６００は、イメージレンダリングを実行するのに使用されるマシン５２０上で実行される。別法において、ルーチン１６００は、異なるマシン５２０上で実行され、そして、たとえば、オペレーティングシステムがインストールされるときに、テーブルを使用するはずのマシンのメモリ５２２またはハードディスクドライブ５２７にロードされる。
【０１３９】
ディスプレイデバイスルックアップテーブル１７００の生成は、ルーチン１６００の実行とともに、ステップ１６０２で始まる。操作は、ステップ１６０２のスタートから、パックされたピクセル値が、許可された、パックされたピクセル値のセット１６０５から得られるステップ１６０４へ進む。上述した例において、パックされたピクセル値のセットは１８０の値を含むであろう。パックされたピクセル値が得られると、それは、ステップ１６０６にて、ディスプレイデバイスにより使用される実際のカラー空間に変換され、ガンマ補正が適用される。パックされたピクセル値の実際のカラー空間への変換は、処理される、パックされたピクセル値の、たとえば、ルックアップテーブル１５００を用いた対応するＲ、Ｇ、Ｂの光度レベル値への変換および実際のカラー空間、たとえば２５６レベルカラー空間における、Ｒ、Ｇ、Ｂレベル値の対応する値への変換を含む。
【０１４０】
ガンマ補正は、たとえば、使用されるであろう最大および最小光度値のような制限のセットとして提供されることができる、供給されたガンマ値情報１６０３の関数として適用できる。異なるガンマ値は、異なるディスプレイデバイスに対して特定される。ステップ１６０６の出力は、使用されるディスプレイデバイスの実際のカラー空間におけるガンマ補正された赤、緑および青の光度値のセットである。たとえば、０から２５５の値の範囲のＲ、ＧおよびＢの光度値が指定されてもよい。
【０１４１】
ステップ１６０８において、カラーフィルタリングが、ステップ１６０６により出力されたＲ、Ｇ、Ｂの光度値のセットに対して適用される。適用されるカラーフィルタリングは、ピクセルサブコンポーネントを独立した光度源として扱うことにより生ずる、フィルタを使わなければぼかす（ｄｉｓｔｒａｃｔｉｎｇ）カラー歪みを、減少させ、または、削除するよう設計される。カラーフィルタリングは、また、前景／背景カラーが黒と白以外であるときに生成されるイメージに対して前景と背景のカラー選択を適用するのに使用される。したがって、前景／背景カラー情報１６０７は、カラーフィルタリング操作１６０８中に利用される。
【０１４２】
カラーフィルタリングステップ１６０８により生成された、フィルタリングされたＲ、Ｇ、Ｂの光度値は、さらに、ステップ１６１０にて処理される。ステップ１６１０にて、フィルタリングされたＲ、Ｇ、Ｂの光度値により生成されたカラーは、ディスプレイデバイス５４７により提供されるカラーパレットと比較される。ステップ１６１０にて、フィルタリングステップ１６０８により出力されたＲ、Ｇ、Ｂの光度値により生成されたピクセルカラーに最も近いパレットカラーに対応するカラーパレット値が使用のために選択される。ディスプレイアダプタ５４８および／またはディスプレイデバイス５４７により使用されるフォーマットで、パレット値が、処理されたピクセル値を表す。ステップ１６１２にて、生成された、処理されたピクセル値は、ストアされたピクセル値を生成するのに使用された、パックされたピクセル値に対応する、配列位置エントリで生成されるディスプレイデバイスルックアップテーブルにストアされる。
【０１４３】
生成された、パックされたピクセル値、たとえば、カラーパレット値をストアした後、操作は、ステップ１６１４へ進む。ステップ１６１４にて、パックされたピクセル値のセット１６０５内の、全てのパックされたピクセル値が処理されたかが判断される。未処理のパックされたピクセル値が残っているとき、操作はステップ１６１４から、次のパックされたピクセル値の処理が始まるステップ１６０４へ進む。
【０１４４】
しかし、ステップ１６１４にて、パックされたピクセル値のセット１６０５内の、全てのパックされたピクセル値が処理されたと判断されたとき、操作は、生成されたディスプレイドライバルックアップテーブルがメモリ５２２および／またはハードディスクドライブ５２７にストアされるステップ１６１６へ進む。
【０１４５】
生成されたディスプレイドライバルックアップテーブルのメモリへのストアによって、操作、ルックアップテーブル生成ルーチン１６００は、新たなルックアップテーブルを生成するために再実行されるまで、ステップ１６１８で停止する。
【０１４６】
ルックアップテーブル８３２、８３２′、８３２″は、特定の前景および背景カラーの組み合わせに対して各々生成される。多くの場合、表示されたテキストのある部分を目立たせるために、図１８に示したように、前景および背景カラーの間を切り換えるのが望ましい。図１８において、第１と第２の矢印１８０１、１８０２は、前景および背景カラーの間の切り換えを表す。
【０１４７】
本発明によれば、前景および背景カラーとして、どのカラーが使用されるかは、ルックアップテーブル８３２、８３２′または８３２″がアクセスされる方法を単純に変えることにより、変更できる。ルックアップテーブル８３２は、テキストディスプレイにとって通常好ましいディスプレイフォーマットであるために、通常、暗い前景と明るい背景とともに使用されるためにストアされる。
【０１４８】
最も大きな数のパックされたピクセル値からパックされたピクセル値Ｐを差し引くことにより、変換されたパックされたピクセル値Ｐ′が得られる。
【０１４９】
すなわち、Ｐ′＝Ｐｍａｘ−Ｐ
である。
【０１５０】
パックされたピクセル値が０から１７９の値の範囲である典型的な場合において、
Ｐｍａｘ＝１７９で、Ｐ′＝１７９−Ｐである。
【０１５１】
ルックアップテーブル８３２、８３２′または８３２″にアクセスするために、変換されたパックされたピクセル値を用いることにより、明るい前景および暗い背景に対応する、処理されたピクセル値のセットが得られる。
【０１５２】
したがって、本発明は、提供される前景および背景カラーの各々の対のために、単一のディスプレイドライバルックアップテーブル８３２がストアされることを可能にする。ストアされたテーブルは、カラー対の第１のものが前景カラーとして使用され、カラー対の第２のものが背景として使用されるであろうと仮定して、配置される。特定の前景および背景カラーに対応するパックされたピクセル値を用いるとき、パックされたピクセル値をルックアップテーブルへの索引として用いることにより、処理されたピクセル値のセットが得られる。
【０１５３】
ルックアップテーブルが生成されたのと反対の前景／背景カラーの組み合わせを用いるのが望ましいとき、まず、提供された、最も高いピクセル値の数からパックされたピクセル値を差し引くことにより、変換され、パックされたピクセル値が生成され、その変換され、パックされたピクセル値を用いることにより、ルックアップテーブル８３２がアクセスされる。
【０１５４】
前景／背景カラーを反転するためにピクセル値変換操作を実施する必要を避けるため、本発明の一実施形態は、処理されたピクセル値の各々のセットに対応する２つのパックされたピクセル値を有するルックアップテーブル１９００を利用する。パックされたピクセル値の第１セット８３３は暗い前景／明るい背景の選択に対応するが、パックされたピクセル値の第２セット１９０２は明るい前景／暗い背景に対応する。所定のカラー対にとって望ましい前景／背景の選択に依存して、パックされたピクセル値の第１または第２セット８３３、１９０２のいずれかが、ルックアップテーブル１９００への索引として使用される。
【０１５５】
本明細書に含まれる、本発明の説明から考えると、本発明の数多くの付加的な実施形態および議論された実施形態についての変形が当業者にとって明らかになるであろう。このような実施形態が、本発明から逸脱せず、本発明の範囲内にあると考えられることが理解されるであろう。
【図面の簡単な説明】
【図１】  公知のＬＣＤスクリーンを示す図である。
【図２】  図１の説明より、さらに詳細に図１を説明する、公知のスクリーンの一部を示す図である。
【図３】  公知のシステムにおいて実施されるイメージサンプリング操作を示す図である。
【図４】  後続のテキストの生成および表示で使用される文字情報を準備し、ストアすることに含まれる公知のステップを示す図である。
【図５】  本発明によって実施されるコンピュータシステムを示す図である。
【図６】  本発明の典型的な一実施形態によって実施されるイメージサンプリングを示す図である。
【図７】  本発明のイメージレンダリング装置の図である。
【図８】  図５に示したコンピュータシステムの他のエレメントと関係するときの図７のイメージレンダリング装置を示す図である。
【図９】  本発明の一実施形態による表示のためにテキストをレンダリングする方法を示す図である。
【図１０】  本発明の走査変換ルーチンを示す図である。
【図１１】  本発明の典型的な実施形態によって実施されるスケーリング操作を示す図である。
【図１２】  本発明によって実施される典型的なヒンティング操作を示す図である。
【図１３】  本発明の典型的な実施形態によって実施される走査変換操作を示す図である。
【図１４】  図１３に示すイメージの第４番目の行で実施される走査変換操作を示す図である。
【図１５】  パックされたピクセル値変換テーブルに対する典型的なＲ、Ｇ、Ｂの光度レベル値を示す図である。
【図１６】  デバイスドライバピクセル値ルックアップテーブルを生成する方法を示す図である。
【図１７】  典型的なデバイスドライバピクセル値ルックアップテーブルを示す図である。
【図１８】  明るい前景／暗い背景イメージ表現と暗い前景／明るい背景イメージ表現の間の切り換えを示す図である。
【図１９】  本発明の典型的な実施形態によって実施されるデバイスドライバルックアップテーブルを示す図である。
【図２０】  別の典型的なデバイスドライバピクセル値ルックアップテーブルを示す図である。
【図１】
0004907768.tif 000002
【図２】
0004907768.tif 000003
【図３】
0004907768.tif 000004
【図４】
0004907768.tif 000005
【図５】
0004907768.tif 000006
【図６】
0004907768.tif 000007
【図７】
0004907768.tif 000008
【図８】
0004907768.tif 000009
【図９】
0004907768.tif 000010
【図１０】
0004907768.tif 000011
【図１１】
0004907768.tif 000012
【図１２】
0004907768.tif 000013
【図１３】
0004907768.tif 000014
【図１４】
0004907768.tif 000015
【図１５】
0004907768.tif 000016
【図１６】
0004907768.tif 000017
【図１７】
0004907768.tif 000018
【図１８】
0004907768.tif 000019
【図１９】
0004907768.tif 000020
【図２０】
0004907768.tif 000021