(57)【要約】【課題】本発明は、オペレーティング・システムがグラフィカル・ユーザ・インターフェースを表示する以外の、スケーリング方法及び／又は特定方向で情報媒体を表示するための方法、システム、及びプログラミングに関するものである。【解決手段】幾つかの実施形態は、仮想画素解像度でデジタル・コンテンツを提示し、縮小サイズでの読み易さを改善すべく選択された文字の形状及び画素配列を備えた、多数のフォント・ビットマップで構成されるテキスト表示で、縮小座標と縮小サイズで画像やテキストを表示することによって、より低い表示解像度でレイアウトの一部を表示する。  縦方向でＧＵＩを表示するオペレーティング・システムを備えたコンピューティング・システムを操作する幾つかの実施形態は、横方向において、縮小サイズで設計された多数のフォント・ビットマップで構成された縮小画像や縮小テキストなどを横方向でウェブ・ページの縮小描写を表示する。【選択図】図１４４
2005501310.tif 000002
【特許請求の範囲】
【請求項１】
画面上にデジタル・コンテンツを表示する方法であって、
画像及びテキスト・ストリングを含む前記デジタル・コンテンツにアクセスすること；
前記レイアウトの水平及び垂直方向の仮想位置を、前記各画像及び所定のライン上に表示されたテキスト・ストリングの各部分に割り当てるために、前記画像及びテキストに対するレイアウト画素サイズを使用する仮想画素解像度で、前記画像及びテキストをレイアウトすること；及び
前記画面に、少なくとも前記レイアウトの一部を描画すること；を含み、
前記レイアウトの表示された部分は、前記仮想画素解像度で実行されたレイアウトの前記部分の画素解像度に対するスケール・ファクタによって縮小される表示画素解像度を持ち；
前記レイアウトの前記表示部分に在る画像及びテキストは、前記スケール・ファクタで縮小されると、前記レイアウトの前記画像及びテキストの位置に相当する画素座標で表示され；
前記画像及びテキストは、前記スケール・ファクタで縮小されると、前記レイアウト中の前記画像及びテキストに使用される画素サイズに相当する縮小画素サイズで、前記表示に描画され；
前記表示におけるテキスト・ストリングの画像は、前記レイアウトでの前記ストリングの文字に割り当てられたサイズに対する前記スケール・ファクタによって縮小される画素サイズを持つ一連のフォント・ビットマップで構成されており；
前記ビットマップの一つにより前記表示に表された所定の文字の形状及び画素配列は、前記所定のビットマップ・サイズで前記ビットマップの判読性を向上させるために、前記ビットマップの前記所定サイズの関数として選択されている、方法。
【請求項２】
前記デジタル・コンテンツがウェブ・ページである、請求項１に記載の方法。
【請求項３】
画像が前記ウェブ・ページにレイアウトされる前記レイアウト画像サイズは、前記ウェブ・ページのコンテンツによって特定された前記画像のサイズである、請求項２に記載の方法。
【請求項４】
前記方法が、所定のレイアウトの前記縮小表示を異なるスケール・ファクタで実行される様にユーザーが選択することを含み；
選択された異なるスケール・ファクタでの類似のテキストの前記縮小表示において、異なるフォント・サイズが使用され；
その様な異なるフォント・サイズの夫々でのフォント・ビットマップの読み易さを改善するために、その様な異なるフォントサイズのフォント・ビットマップ中の対応する文字の形状及び画素配列が異なる、請求項２に記載の方法。
【請求項５】
前記縮小画素サイズが8画素／em以下のフォント・サイズを含む、請求項２に記載の方法。
【請求項６】
８画素／em以下の前記画素サイズのフォント・ビットマップにより表された文字形状が、そのサイズで判読性向上のためにヒンティングされている、請求項５に記載の方法。
【請求項７】
所定の縮小テキスト・サイズでの所定のテキスト・ストリングのサイズは、前記所定の縮小画素サイズでの前記ストリング中の各文字の画素次元の関数であり、各文字の画素次元は、前記縮小テキストサイズにおいて所望の水準の判読性で特定の文字形状を表現するのに必要な画素ビットマップの次元の関数として部分的に決定され、
前記レイアウト中の所定のストリングに使用されるサイズは、前記ストリングが前記縮小表示に描画され前記スケールファクタによって拡大される所定の縮小テキストサイズでの、所定のストリングのサイズに一致する、請求項２に記載の方法。
【請求項８】
前記画面が、縦方向で前記画面上に、個々のフォント・ビットマップからの前記コンピュータ上に構成されたテキスト・ストリングを含む、デジタル・コンテンツを表示するオペレーティング・システムを持つコンピュータの一部であり；前記レイアウトの部分の前記縮小表示が、横方向で前記画面上に描かれ；
個々のフォント・ビットマップからのテキストの前記構成は、前記画面に対して横方向の方向性を持つフォント・ビットマップを使用して、横方向でテキストを構成する、請求項２に記載の方法。
【請求項９】
縮小ディスプレイが描かれる画面は、個別にアドレス可能かつ異なる色を割り当てられた副画素の所定の配列から構成された画素を有し；
画面の画素内の前記副画素配列は、
前記画面上で縦方向に描かれたビットマップに対する第１のビットマップ表示座標に沿って；及び、前記画面上で横方向に描かれたビットマップに対する第２の垂直ビットマップ表示座標に沿って；副画素色を変化させ、
前記縮小表示におけるテキスト画像を構成するために使用される所定のフォント・ビットマップは、
前記副画素色の変化が、前記フォント・ビットマップに対する前記第２表示座標に沿って発生する表示に最適化され；
以下の関数として、前記フォント・ビットマップにより描画され、異なる色が割り当てられる副画素の前記所定の配列を持つ画面画素の各所定の副画素に、輝度値を割り当てる；副画素最適化ビットマップであり、
前記関数は、
フォント・ビットマップで表される文字形状に重なる所定の副画素の割合を表すカバレージ値；
少なくとも前記フォント・ビットマップの幾つかの副画素に関する場合、前記所定の副画素のカバレージの割合のカラー・バランス分配：前記カラー・バランス分配は、前記所定の副画素のカバレージ値から、異なる色の副画素を含む隣接副画素のカバレージ値への分配であり、所定の副画素のカバレージ値と、１又は複数の異なる色の隣接副画素の所定の組のカバレージ値との間の差異から生じるカラー・アンバランスを防ぐために実行される；
少なくとも前記フォント・ビットマップの幾つかの副画素に関する場合、一つまた複数の隣接副画素から、カバレージ値の一部分についての所定の副画素のカバレージ値への、そうしたカラー・バランス分配；の関数である、請求項８に記載の方法。
【請求項１０】
一般に異なるフォント・サイズで表示される異なるタイプのテキストとして、ウェブ・ページにより特定されたテキストの異なる部分が、前記レイアウト及び表示の実行前において、かつ判読可能なテキストのより多くの量を縮小ディスプレイに適合させるために、同一サイズのフォントで表される、請求項２に記載の方法。
【請求項１１】
前記縮小画面におけるテキストの画像の構成に使用されるフォント・ビットマップは、フォント・ビットマップにより表される文字形状に重なる所定の画素の割合を表すカバレージ値の段階的に変化する関数として、所定の画面画素に色値を割り当てる、アンチエイリアス・ビットマップであり；
その様なフォント・ビットマップで表された文字の形状及び画素配列は、文字形状の縁部がフォント・ビットマップの画素境界に整列する程度を向上するために、各その様なフォント・ビットマップの特定の画素サイズの関数として選択される；請求項１に記載の方法。
【請求項１２】
縮小画面が描かれる画面は、個別にアドレス可能かつ異なる色を割り当てられた副画素の所定の配列から構成された画素を有し；
前記縮小表示におけるテキストの画像の構成に使用されるアンチエイリアス・フォント・ビットマップは、以下の関数として、異なる色に割り当てられた副画素の前記所定の配列を持つ画面画素の各所定の副画素に輝度値を割り当てる副画素最適化ビットマップであり；
前記関数は、
フォント・ビットマップで表される文字形状に重なる所定の副画素の割合を表すカバレージ値；
少なくとも前記フォント・ビットマップの幾つかの副画素に関する場合、前記所定の副画素のカバレージの割合のカラー・バランス分配：前記カラー・バランス分配は、前記所定の副画素のカバレージ値から、異なる色の副画素を含む隣接副画素のカバレージ値への分配であり、所定の副画素のカバレージ値と、１又は複数の異なる色の隣接副画素の所定の組のカバレージ値との間の差異から生じるカラー・アンバランスを防ぐために実行される；
少なくとも前記フォント・ビットマップの幾つかの副画素に関する場合、一つまた複数の隣接副画素から、カバレージ値の一部分についての所定の副画素のカバレージ値への、そうしたカラー・バランス分配；の関数である、請求項１１に記載の方法。
【請求項１３】
前記カラー・バランス分配が、それが一部となっている画素の全体の中でカラー・アンバランスを引き起こす副画素のカバレージ値の部分のみを分配する、請求項１２に記載の方法。
【請求項１４】
前記縮小表示で描かれた画像は、縮小画像が表すより高解像度な画像の所定の副画素と関連付けられたウインドウにおいて求められた所定の副画素色の輝度量の関数機能として、その様な縮小画像の表示における各異なる色の副画素に輝度を割り当てる、副画素最適化画像であり；
所定の画素の各副画素に関連付けられたより高解像度な画像におけるウインドウは、縮小画像における対応する副画素の異なる位置に対応する、より高解像度な画像に対して異なる位置を持っている、請求項１２に記載の方法。
【請求項１５】
第１のコンピュータ・デバイスが、デジタル・コンテンツの前記アクセス、前記デジタル・コンテンツのレイアウト；前記画像の前記縮小を実行し；
第２のコンピュータ・デバイスが、前記画面を持ち、フォント・ビットマップからのテキスト画像の構成を含む、前記画面上での縮小表示の前記描画を実行し；
前記レイアウトの結果として作成された画像及びテキストの前記座標、前記縮小画像、及び前記デジタル・コンテンツに含まれる前記テキストが、前記の第一のコンピュータ・デバイスから前記の第二のコンピュータ・デバイスにダウンロードされる、請求項１に記載の方法。
【請求項１６】
前記デジタル・コンテンツが、１又は複数のアプリケーション・プログラムによる前記仮想解像度で作成された画面画像であり、
前記縮小表示は、前記画面画像の画像及びテキストと、前記スケール・ファクタで縮小されたそれらの位置を用いて、前記画面画像の前記部分を表示する、請求項１に記載の方法。
【請求項１７】
１又は複数の画像及び１又は複数のテキスト・ストリングを含むウェブ・ページにアクセスすること；
画像とテキスト・ストリングの幾つかを少なくとも含む、前記ウェブ・ページの部分を、縮小方法で横方向に表示すること；
前記表示が、関連するGUIを前記画面に縦方向で表示するオペレーティング・システムを持つコンピュータの画面上で実行され；
前記ウェブ・ページの縮小表示は、
縮小画素サイズで所定の画像を表示すること；及び
前記横方向で表示された場合、前記ストリングの文字に相当するフォント・ビットマップの複数から、前記コンピュータ上で構成されたストリング画像を用いて、所定のテキスト・ストリングを表示すること；及び
前記フォント・ビットマップの１つによって前記ディスプレイで描画された所定の文字の形状及び画素配列が、前記の所定のビットマップ・サイズでの前記ビットマップの判読性を向上させるために、前記ビットマップの所定のサイズの関数として選択されること；を含む、ウェブ・ページの表示方法。
【請求項１８】
オペレーティング・システムは、前記GUIを前記画面上に前記縦方向でのみ表示可能である、請求項１７に記載の方法。
【請求項１９】
オペレーティング・システムは、前記GUIを前記画面上に前記横方向又は縦方向法の何れでも表示可能である、請求項１７に記載の方法。
【請求項２０】
前記方法は、前記縮小ディスプレイが所定のウェブ・ページに対して異なるスケール・ファクタで実行されることをユーザーが選択することを許可することを含み；
各画像が異なるスケール・ファクタで実行された表示中に示される縮小画素サイズが、前記異なるスケール・ファクタの関数として変化し；
異なるスケール・ファクタで実行された表示中の前記ストリング画像に示されたフォント・ビットマップのサイズは、前記異なるスケール・ファクタの関数として変化し；及び、
異なるスケール・ファクタで実行された表示中の所定の文字に対して示された異なるフォント・ビットマップ中の所定の文字の形状及び画素配列は、文字の判読性向上のため、異なるスケール・ファクタでの文字を描画するために使用された異なるフォント・ビットマップ・サイズの夫々で異なっている、請求項１７に記載の方法。
【請求項２１】
１又は複数の前記ストリング画像の構成に使用されたフォント・ビットマップは、フォント・ビットマップにより表される文字形状に重なる所定の画素の割合を表すカバレージ値の段階的に変化する関数として、所定の画面画素に色値を割り当てる、アンチエイリアス・ビットマップであり；
その様なフォント・ビットマップで表された文字の形状及び画素配列は、文字形状の縁部のフォント・ビットマップの画素境界への整列の程度を向上するために、各その様なフォント・ビットマップの特定の画素サイズの関数として選択される；請求項１７に記載の方法。
【請求項２２】
ストリング画像の構成に使用されたフォント・ビットマップは、８画素／ｅｍ以下の小型フォント・サイズを持つ小型フォント・ビットマップを含み；
その様な小型フォント・ビットマップで表された文字の形状及び画素配列は、文字形状の縁部が小型フォント・ビットマップの画素境界に整列する程度を向上するために、各その様な小型フォント・ビットマップの特定の画素サイズの関数として選択される；
請求項２１に記載の方法。
【請求項２３】
前記小型フォント・サイズのフォント・ビットマップは、ローマ字の殆どの文字を４画素列以下の改善幅内に表現する、請求項２２に記載の方法。
【請求項２４】
前記小型フォント・サイズのフォント・ビットマップは、殆どの小文字を4画素以上のエックスハイトで表現する、請求項２３に記載の方法。
【請求項２５】
縮小ディスプレイが描画される画面は、各画素の異なった色の副画素が、前記画面が横方向で表示された場合に第１の副画素配列を持ち、画面が縦方向で表示された場合に第２の副画素配列を持つ、個別にアドレス可能かつ異なる色が割り当てられた副画素で構成される画素を持ち；
前記テキスト画像の構成に使用されたアンチエイリアス・フォント・ビットマップは、以下の関数として、前記第１の副画素配列を持つ画面画素の各所定の副画素に輝度値を割り当てる副画素最適化ビットマップであり；
前記関数は、
フォント・ビットマップで表される文字形状に重なる所定の副画素の割合を表すカバレージ値；
少なくとも前記フォント・ビットマップの幾つかの副画素に関する場合、前記所定の副画素のカバレージの割合のカラー・バランス分配：前記カラー・バランス分配は、前記所定の副画素のカバレージ値から、異なる色の副画素を含む隣接副画素のカバレージ値への分配であり、所定の副画素のカバレージ値と、１又は複数の異なる色の隣接副画素の所定の組のカバレージ値との間の差異から生じるカラー・アンバランスを防ぐために実行される；
少なくとも前記フォント・ビットマップの幾つかの副画素に関する場合、一つまた複数の隣接副画素から、カバレージ値の一部分についての所定の副画素のカバレージ値への、そうしたカラー・バランス分配；の関数である、請求項２１に記載の方法。
【請求項２６】
前記画面における所定の画素の副画素は、前記画面が前記横方向で見られる場合、水平方向に沿って色を変化させ；
従って、副画素最適化により可能となった付加解像度は、横方向に前記画面上に描かれたテキスト文字を表示するために利用可能な水平解像度を増加させる；
請求項２５に記載の方法。
【請求項２７】
前記カラー・バランス分配は、それが一部となっている画素の全体の内においてカラー・アンバランスを引き起こす副画素のカバレージ値の部分のみを分配する、請求項２５に記載の方法。
【請求項２８】
前記副画素最適化フォント・ビットマップで描画された文字形状と、その形状の前記ビットマップの画素に対する整列は、カラー・アンバランスを防ぐためにカラー・バランスを必要とするその様なビットマップの画素内の副画素カバレージ間の相違を減少させるために、その様な形状の縁部のビットマップ画素の縁部への整列を向上させるその様なビットマップのサイズの関数として選択される、請求項２７に記載の方法。
【請求項２９】
前記コンピュータは、ハンドヘルド・コンピュータである、請求項１７に記載の方法。
【請求項３０】
前記縮小画像が表示されるコンピュータは、コンピュータ・ネットワークを介してリモート・コンピュータからのウェブ・ページを要求し；
前記リモート・コンピュータは、前記ウェブ・ページにアクセスし；
前記リモート・コンピュータは、前記画像、ストリング、リンクが表示される相対的な位置に対応する相対的な位置を決定するために、前記ウェブ・ページをレイアウトし；
前記リモート・コンピュータは、前記コンピュータ・ネットワークを介して、前記表示コンピュータに、前記画像、ストリング、及び相対的な位置をダウンロードし；
前記表示コンピュータは、前記のダウンロードされた相対的な位置の関数として決定された前記画面上の相対的な位置に、前記の画像、ストリング、リンクを描画する；
請求項１７に記載の方法。
【請求項３１】
前記リモート・コンピュータは、
前記表示画像のそれぞれを前記縮小画素サイズに縮小し、表示コンピュータに前記縮小画像をダウンロードし；
前記表示コンピュータ上でのストリング画像の構成に使用される個々のフォント・ビットマップのサイズの関数として、各ストリングに対して決定されたフォント・メトリクスに基いて前記レイアウトを実行する；請求項３０に記載の方法。
【請求項３２】
請求項１乃至３１の何れか１の方法の機能を実行するプログラム命令を含む１又は複数のコンピュータ読取可能なメモリと；前記命令を実行する１又は複数のプロセッサと；を備えるコンピュータ・システム。
【請求項３３】
請求項１乃至３１の何れか１の方法の機能を実行するプログラム命令を含む１又は複数のコンピュータ読取可能なメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムのオペレーティングシステムがグラフィカル・ユーザ・インターフェースを表示する以外の、スケーリング方法及び／又は特定方向で情報媒体を表示する方法、システム及びプログラムに関する。
【背景技術】
【０００２】
本特許出願は、小型又は低解像度の画面をもつ演算装置、例えばハンドヘルドコンピュータ、携帯電話コンピュータ、手首又は頭部に装着されるディスプレイをもつコンピュータの使用における最適化処理に関する多くの特徴を有する。この最適化処理の良好な部分は、ワールド・ワイド・ウェブや類似の情報媒体をブラウズするための小型ディスプレイの使用を向上させるために実行されている。但し、これらの特徴の多くは、他の種類の表示内容を見る場合にも使用され得る。
【０００３】
この最適化処理の他の部分は、現在のワイヤレスリンクに見られるような比較的狭帯域のリンクを通じて、このような情報媒体をブラウズする能力を向上させることに焦点を置いている。しかしながら、本願に開示された本発明の多くの特徴は、これらの目的に限定されない。
【０００４】
例えば、ユーザがより大型のウェブページの一部分を見ることを容易にする様に設計された特徴の幾つかでは、従来のコンピュータ上でそのウェブを見るのを容易にし、より離れた距離で読むことを容易にする。
【０００５】
本出願の出願時には、対角線の長さが約４インチ、約２４０×３２０画素の画面を持つ様々なハンドヘルドコンピュータが存在している。これらのハンドヘルドコンピュータには、コンパック社製のiPac H3650、カシオ製のカシオペア、ヒューレットパッカード社製のジョルナダ５２５が含まれる。残念なことに、これらの解像度は、現在のほとんどのウェブページを表示するには低すぎる。現在、大部分のウェブページは、６４０×４８０画素の解像度をもつ画面で見ることができる（但し、２，３のウェブサイトはこの解像度でさえ見ることができない）。大部分のウェブページをこのようなハンドヘルド装置で見ることができるようになることが望まれている。
【０００６】
液晶表示装置の製造業者は、現在市場にある表示装置よりも実質的に高い解像度をもつ画面を製造する能力がある。有機ＬＥＤ表示装置の製造業者は、さらに高い解像度でさえ実現できると主張している。上記に列挙したハンドヘルドコンピュータに現在搭載されているサイズの４インチの画面は、４８０×６８０画素以上の解像度をもつことが可能であったことを意味している。このような画面は多くのウェブページに受け入れられる解像度を提供するが、さらに高い実効解像度が多くのウェブページに要求されると考えられる。
【０００７】
更に付け加えると、比較的高解像度で画面を見るためには、ユーザは、眼を画面に接近させて保持しなければならない。このことは多くの適用例では満たされるが、大抵の場合、ユーザは、ハンドヘルドコンピュータを眼に近づけて保持することに疲労を感じたり、不便を感じたりするかもしれない。
【０００８】
表示装置の解像度の改善もまた、３２０×２４０画素の画面が２インチ以下の対角長で製造しうることを意味している。このような表示装置は、現在多くの携帯電話機に共通に搭載されている表示装置と略同一のサイズになるであろう。このような表示装置は、現在ハンドヘルドコンピュータで使用されている多くの形態のアプリケーションを携帯電話機上で使用可能にするであろうし、腕時計にも適用可能であろう。残念な事に、この表示装置は、大部分のウェブページを見ることが困難になる解像度であり、この解像度をユーザが見るためにはユーザの眼に極めて接近させなければならないほど物理的に小さいという問題を有している。再言すると、このような装置をユーザの眼に近づけて保持することは、一定時間の間であれば満足できるかもしれないが、しかし、長時間に渡る場合又は所定の状況では、それは不便かもしれない。
【０００９】
現在、ユーザがコンピュータ画面の画像を見ることができるようにした、頭部に装着する表示装置を提供している幾つかの会社がある。その表示装置は、眼鏡の様な装置を通じて、或いは、ユーザの眼の上方、下方又は所定距離離れた側方に置かれた鏡からユーザの眼に対して反射される光よるものである。このような頭部に装着された表示装置を使用中に周囲とのやりとりを容易にするために、大抵の場合、このような投影型の画面はユーザの視野の比較的小さな領域を占めるようにすることが望まれる。それ故、このような表示装置のユーザは、小型のハンドヘルド画面のユーザが持つであろうと同じ多くの問題に直面する。
【００１０】
本発明の１つの特徴は、比較的制限された演算能力、メモリ又はインターネット接続帯域を持つコンピュータ上に出力されるウェブページのブラウズやアプリケーション画面を最適化する方法に関する。例えば、現在、大部分のデスクトップコンピュータやラップトップコンピュータで使用されている形式の標準的なウェブブラウザは、メモリの多数メガバイトや比較的大量の演算能力を要する。それらは、また、ウェブページでより頻繁に使用されるワールド・ワイド・ウェブの多くに含まれる種類のウェブコンテンツに対して効率よく作動するように、少なくとも高速モデムの通信速度をもつインターネットへの接続を要する。しかしながら、多くのハンドヘルドコンピュータは、これらのウェブページの多くを効率良く表示するためのメモリも演算能力も持たない。また、最も一般的に利用可能な無線システムは、多くのウェブページに要求されると思われる帯域よりも実質的に低い帯域しか持たない。これらの要因のため、制限されたメモリ、通信速度、帯域でコンピュータがワールド・ワイド・ウェブや類似の情報媒体をブラウズできるようにする方法に関する本願中の改善の幾つかが、１つの焦点になる。
【発明の開示】
【課題を解決するための手段】
【００１１】
本発明は、後述する特許請求の範囲の各請求項により最も正確に表現され、各請求項が課題を解決するための手段の記載と異なる場合には、各請求項の記載が本発明の真の表現と考えられなければならない。
【００１２】
本発明の１つの特徴は、デジタル・コンテンツに接続し、画像及びフォントのレイアウトサイズを用いて仮想の画素の解像度でそれをレイアウトし、少なくともそのレイアウトの一部をより低い画面解像度で表示する。このことは、スケールファクタ（スケールファクタ）によるそれらのレイアウトサイズから縮小した座標及びサイズによって、画像及びテキストを表示することを含む。それは、また、縮小サイズでの読み易さ（判読性）を向上させるために選択された文字形状及び画素配列を持つ別個のフォントビットマップから得られる、ストリングによって画像を構成することによりテキストを表示することを含む。
【００１３】
本発明の他の特徴は、ウェブページへのアクセスに関する。そして、縦向きの画面にグラフィカル・ユーザ・インターフェースを表示するオペレーティングシステムを持つコンピュータシステムの画面上において、横向きの画面にウェブページの縮小表現を表示することに関する。このことは、横向きの画面に表示される、縮小された画像及びフォントビットマップから構成されたテキストを画面表示することを含む。
【発明を実施するための最良の形態】
【００１４】
本発明のこれら及び他の特徴は、添付の図面とともに以下に示す最良の実施形態の記載を読むことによって、より顕著になる。
【００１５】
図１は、特に、低解像度の表示装置をもつシステム上での、ウェブ・ブラウズ及び／又は他の種類のコンピュータによって生成されたコンテンツの表示を向上させるために、本発明の幾つかの特徴において使用される、基本的な処理及びデータ表示を示す概略図である。
【００１６】
１又は複数のビットマップ画像１０２とテキスト１０４とを含むデジタル・コンテンツ１００は、副画素最適化・縮小フォーマット１０６で表示されている。本発明の一実施形態において、ステップ１０８を含む差分処理は、テキストコンテンツの表示を副画素最適化するために使用されるよりも、むしろ、ビットマップ画像１０２の表示を副画素最適化するために使用される。ステップ１０８は、カラービットマップから副画素最適化された画像の生成に適した副画素最適化ルーチンを使用している。また、ステップ１０８は、現在ほとんどのウェブコンテンツが表示されている解像度よりも低い解像度をもつ画面への表示のために、ビットマップを縮小する。
【００１７】
デジタル・コンテンツに含まれるテキスト１０４は、ステップ１１０及び１１２を使用することによって、解像度が低くかつ副画素アドレス可能な画面上での表示のために処理される。ステップ１１０は、通常の表示に使用されるフォントを、副画素最適化された画面上での低解像度による表示に最適化されたフォントで置き換える。その後、ステップ１１２は、フォント形状の定義に共通に使用される数学的に定義されたアウトラインの様な、同一色の形状の高解像度画像の表現に特に適した副画素最適化ルーチンによって生成された代替フォントからのフォントビットマップを使用する。
【００１８】
本発明の１つの利用は、インターネットからダウンロードされるマークアップ言語によって表現された、画像及び／又はテキストを表示する携帯型の、低解像度のウェブブラウザにある。
【００１９】
現在まで、多数の所謂マークアップ言語が存在してきた。最も早期の最も成功したものの１つは、ＳＧＭＬ(Standard General Markup Language）である。ＳＧＭＬは、テキストベースの言語であり、このテキストベースの言語は、当該データについての情報を提供する記述的な‘メタデータ’によって当該データを‘マークアップ’するために使用され得る。例示として、マークアップ・メタデータは、当該データが意図する目的又は当該データが配置されるウェブページ上の位置を示すために使用される。それは、テキスト中又は当該マークアップ言語で記述された文書中の所定の位置に挿入される、例えば画像のような他の種類のデータへのリンクを示すためにも使用される。今日共通に使用されているＨＴＭＬやＸＭＬのような幾つかのマークアップ言語は、ＳＧＭＬから派生している。
【００２０】
本発明の最良の一実施形態において、上記図１において参照されたデジタル・コンテンツ１００は、ＨＴＭＬのようなマークアップ言語で表現された画像及び／又はテキストを含む標準的なウェブコンテンツでも良い。標準的なウェブコンテンツ１００、おそらくウェブサイトの形式ページを表現するものは、図２乃至４に示され、以下に記述された携帯型の低解像度ブラウザ装置上での表示のために、様々な装置や方法を通じてダウンロードされ得る。ブラウザ装置２００での表示の前に、デジタル・コンテンツ１００は、判読性の向上のために、以下に記述するような様々な方法や処理を通じてスケーリング及び／又は副画素最適化され得る。
【００２１】
図２は、本発明の一実施形態に従って実施される、ネットワークで繋がれたコンピュータ環境を図示している。薄型クライアント・ブラウザ２００のプログラムは、テキスト及び／又はグラフィックを取り込み、小型ＬＣＤ画面上に表示可能な、携帯型又は他の小型コンピュータ・デバイスで実行される。このブラウザによって、ユーザは、遠隔にあるソース（例えば、インターネット）からのデジタル情報を要求し、それを画面上に表示させることができる。
【００２２】
図２に図示された本発明の実施形態において、ユーザは、薄型クライアント・ブラウザ２００のコントロールボタンを操作することによって、画像及び／又はテキストを含むデジタル・コンテンツの取り込み及び表示を要求することができる。要求されるデジタル・コンテンツは、インターネットを通じてアクセス可能な特定のウェブページであっても良い。薄型クライアント・ブラウザ２００は、そして、例えばＬＡＮ、ＷＡＮ又はインターネットであり得るネットワーク１３８上にある物理的に遠隔にあるプロキシサーバ２１０を通じてコンテンツに対する要求２０２を実行する。
【００２３】
プロキシサーバ２１０は、デジタル・コンテンツの要求に応答するプロキシプロセス２１６を実行する。この応答は、ユーザによって要求されたデジタル・コンテンツ１００を保持する物理的に遠隔にあるウェブ・サーバ２２０に対して、対応する要求（リクエスト）２１４を作成することによって実行される。サーバ２２０は、プロキシ・サーバの要求２１４に応答する。この応答は、ネットワーク１３８を通じてプロキシサーバ２１０にデジタル・コンテンツ１００のダウンロード２２２を実行することによる。
【００２４】
プロキシサーバ２１０内のプロキシ・プロセス２１６は、次に、自身のコンピュータリソースを用いて、図１に図示されたステップ１０８，１１０，１１２に従ってデジタル・コンテンツ１１０をスケーリング及び副画素最適化する。スケーリング及び副画素最適化は、液晶表示装置上でのテキスト及び／又はグラフィックのような画像の判読性を向上させる結果を得る、本発明の１つの特徴である。
【００２５】
プロキシサーバ２１０は、上記でスケーリング及び副画素最適化されたコンテンツのブラウザ２００へのダウンロード２１２を実行する。この時点で、ユーザはブラウザ２００の画面上でコンテンツを見ることができる。
【００２６】
図２に示された本発明の実施形態では、デジタル・コンテンツのテキスト部分は、１又は複数の文字（キャラクタ）のストリング、フォントファミリーの指定、フォントサイズ及び他のフォント属性を含む形式で、ブラウザにダウンロードされる。薄型ブラウザが、そのフォントサイズ及びフォントファミリーのビットマップを持っていなければ、薄型ブラウザは、そのような１又は複数のビットマップをフォントサーバ２３０に要求する。図２乃至３に示された本発明の実施形態では、プロキシサーバがそのようなビットマップを提供することもできるし、クライアントが（ソフトウェアのサイズを増大させることになるが、）そのようなビットマップをソフトウェアの標準的な部分として持つこともできる。フォント・ビットマップの利点は、フォント供給者（ヴェンダー）がフォント・アウトラインよりもフォント・ビットマップをより自由に頒布したがる傾向にある点である。
【００２７】
図３には、本発明の変形例に係る実施形態が図示されている。この実施形態では、図２のプロキシサーバ２１０及び／又はウェブサーバ２２０が１台のリモートサーバ２２０Ａに置き換えられている。薄型クライアント・ブラウザ２００は、ネットワーク１３８上のリモートサーバ２２０Ａにデジタル・コンテンツ１００の要求２０２Ａを実行する。例えば、ネットワーク１３８はインターネット又はＬＡＮであり、デジタル・コンテンツ１００は特定のウェブページであっても良い。リモートサーバ２２０Ａは、要求されたデジタル・コンテンツ１００を有しており、要求２０２Ａに応答するプロキシプロセス２１６Ａを実行する。プロキシプロセス２１６Ａは、クライアント・ブラウザ上での表示のためにウェブページを動的にスケーリング及び／又は副画素最適化するサーバ上で実行されるどのようなプロセスであっても良い。プロキシプロセス２１６Ａは、蓄積（記憶）されたデジタル・コンテンツ１００に対して実行され、ステップ１０８，１１０，１１２を実行することによってコンテンツ１００を図１に示す形式１０６に動的に変換する。リモートサーバ２２０Ａは、スケーリング及び／又は副画素最適化されたコンテンツの薄型クライアント・ブラウザ２００へのダウンロード２１２を実行する。
【００２８】
図４には、本発明の他の変形例に係る実施形態が図示されている。図３におけると同様に、薄型クライアントの要求は、ネットワーク１３８を通じて直接、リモートサーバ（ここでは、サーバ２２０Ｂ）になされる。この実施形態では、リモートサーバ２２０Ｂは、標準的なブラウザ・コンピュータの使用のための標準的な形式１００と、スケーリング及び／又は副画素最適化されたコンテンツ１００Ａとの両方の状態で、要求されたデジタル・コンテンツを保持している。標準的なデジタル・コンテンツ１００から縮小及び／又は副画素最適化された形式への変換は予め実行される。これによって、プロキシプロセスが動的に変換する必要がなくなる。薄型クライアントは、要求されたコンテンツのスケーリング及び／又は副画素最適化されたバージョンを受け取る必要があることを示す情報を、リモートサーバに提供する。リモートサーバ２２０Ｂは、スケーリング及び／又は副画素最適化されたデジタル・コンテンツ１００のクライアント・ブラウザ２００へのダウンロード２１２を実行する。
【００２９】
図５には、本発明のさらなる他の変形例に係る実施形態が図示されている。図５に示すように、ブラウザ２００Ａは、スケーリング及び／又は副画素最適化プロセス５１０をさらに含むフルスケールのブラウザである。このブラウザ２００Ａは、ネットワーク１３８上のリモートサーバ２２０Ｃにデジタル・コンテンツ１００の要求２０２Ｂを行う。サーバ２２０Ｃは、要求されたデジタル・コンテンツ１００のブラウザ２００Ａへのダウンロード２１２Ａを行う。デジタル・コンテンツ１００のスケーリング及び／又は副画素最適化された形式への変換はブラウザ２００Ａで実行されるプロセス５１０によって取り扱われる。
【００３０】
図６は、デジタル・コンテンツ１００をスケーリング及び／又は副画素最適化可能なコンピュータシステム６００を図示している。この実施形態では、デジタル・コンテンツは予めコンピュータシステム６００上で生成されるか又は置かれている。コンピュータシステム６００は、スケーリング及び／又は副画素最適化するサブプロセスを含むブラウザプロセス６２０を保持している。ここで、ユーザは、付属の入力装置、例えばキーボード又はマウスによってコンピュータシステム６００にデジタル・コンテンツ１００の要求を行う。ブラウザプロセス６２０は、電気的なメモリやディスク記憶装置のようなコンピュータシステムの記憶素子の１つから、要求されたデジタル・コンテンツ１００を受け取る。ブラウザプロセス６２０は、デジタル・コンテンツ１００を一旦受け取ると、これを縮小及び／又は副画素最適化プロセス６４０に送る。変換が完了すると、変換されたコンテンツは、コンピュータシステム６００の表示画面に表示される。本発明のこの実施形態は、ネットワーク又はリモートサーバなしに動作する。
【００３１】
図７は、１台のコンピュータシステムの実施形態の他の変形例を図示したものである。この実施形態では、コンピュータシステム７００は、予め作成又は配置されている（例えば特定のウェブページのような）デジタル・コンテンツ１００、プロキシプロセス７４０及びブラウザプロセス７２０を有している。プロキシプロセス７４０は、縮小及び／又は副画素最適化プログラム７６０を実行する。ブラウザプロセスは、デジタル・コンテンツ１００の表示のユーザ要求をプロキシプロセス７４０に渡す。次に、プロキシプロセス７４０は、コンピュータシステム７００の記憶素子からデジタル・コンテンツ１００を取り込む。デジタル・コンテンツ１００を取り込むと、プログラム７６０はデジタル・コンテンツ１００をスケーリング及び／又は副画素最適化された形式に変換し、これをコンピュータシステム７００の表示装置によって表示するためにブラウザプロセス７４０に渡す。
【００３２】
図８は、１台のコンピュータシステムの実施形態の第２の他の変形例を図示したものである。ここでは、コンピュータシステム８００は、縮小及び／又は副画素最適化されたウェブコンテンツ８１０を有している。ブラウザプロセス８２０は、ユーザからのコンテンツ８１０の表示の要求を処理し、コンピュータシステム８００の記憶素子から取り込み、これをコンピュータシステム８００の表示装置に表示する。
【００３３】
上記に示した本発明の実施形態では、ソースの画像の解像度から副画素アドレスされた画面の解像度への画像のスケーリングは、部分的に、ソースと副画素アドレスされた画面との各解像度によって定義される。
【００３４】
本発明の幾つかの実施形態では、ソース画像の解像度と副画素アドレス可能な画面上で表示されるべき解像度との間のスケールファクタ（スケールファクタ）は、ブラウザ装置のユーザによって決定される。この実施形態では、ブラウザのユーザは、記憶素子から読み出される画像を縮小するプロセスとの間でスケールファクタを送受信することによって、複数のスケールファクタの中から選択する。次に、記憶素子から読み出した画像を縮小するプロセスは、選択されたスケールファクタの関数として変化する水平及び垂直方向のスケールファクタによって、画像を縮小及び／又は副画素最適化する。
【００３５】
ほとんどの他のユーザがブラウザ装置に入力するように、このようなスケールファクタ選択は、物理的な又はＧＵＩのボタン、メニュー項目、ダイアログ・ボックス、又はブラウザ装置上の他の公知のユーザインターフェース装置を使用することによって行われることができる。
【００３６】
このような幾つかの実施形態では、ブラウザ装置のユーザは、画像が以前に記憶素子から取り込まれ第１のスケールファクタで副画素最適化された形式で表示された後に、どのデジタル・コンテンツが再度、縮小及び副画素最適化されて再表示されるかに基づいて、複数のスケールファクタの中から第２のスケールファクタを選択しても良い。
【００３７】
このような実施形態では、第１のスケーリング及び副画素最適化された画面において使用されたスケールファクタは、デフォルト又は所望のスケールファクタの結果であるか、またはブラウザ装置のユーザによって以前に選択されたスケールファクタの結果である。ブラウザ装置のユーザは、ブラウザ装置のコントロール部を操作する方法で、デジタル・コンテンツの再表示用の複数のスケールファクタから選択しても良い。このようなブラウザ装置のコントロール装置の操作によって、第２の選択されたスケールファクタに基づいて画像が表示される。
【００３８】
このような第２のスケーリングは、ブラウザ装置又は物理的に遠隔なリモートサーバのの内部で実行されるプロセスの結果としても起こる。ブラウザ装置のユーザは、引き続いての再表示のために複数のスケールファクタの中から選択を続ても良い。
【００３９】
デジタル画像を整数倍で縮小するのが最も簡単である。整数倍の縮小では、ソース画像の整数の画素を、結果として生じる縮小画像の所定の画素に適合させる。例えば、６４０×４８０解像度から３２０×２４０解像度へのスケーリングは、スケールファクタ＝２の縮小である。本発明の実施形態には、非整数の縮小スケールファクタを含む複数の縮小スケールファクタからユーザが選択可能な実施形態もある。非整数の縮小スケールファクタの例は、６４０×４８０解像度のソース画像の４８０×３６０画素の部分を３２０×２４０解像度の表示画面上に表示するためにスケーリング及び／又は副画素最適化するような、縮小スケールファクタ＝３／２の縮小である。
【００４０】
陰極線電子管（ＣＲＴ）のようなコンピュータグラフィック表示装置、液晶表示装置（ＬＣＤ）画面は、ほとんどがＲＧＢモデルの色空間を使用している。但し、本発明はＣＭＹＫ色モデルのような他の色モデルにも適用できる。ＲＧＢモデルでは、添加される３原色、赤、緑、青が混合され、人間の目に認識されるように所望の色を形成する。
【００４１】
ほとんどの携帯コンピューティング装置または画像装置は、ＲＧＢモデルを使用するＬＣＤ画面を持っている。このようなＬＣＤ画面は、何千ものグリッド要素（画素に対応）からなる矩形の配列を有しており、各画素は、ＲＧＢ色空間の多数の色から任意の１つを表示することが可能であり、全体として認識されると画像を形成する。
【００４２】
一方、各画素は、個々にアドレス可能な３つの副要素を有し、ここでは、この副要素を副画素と称す。最も一般的には、副画素は、赤、緑、青の矩形要素である。最も一般的な実施形態では、３つの赤、緑、青の副画素には、各副画素が混合されて画素全体が所望の色に見えるように各々に輝度が割り当てられている。一方、ＬＣＤ画面の全ての画素が一体となると所望の画像を構成する。
【００４３】
３つの副画素は個々にアドレス可能であるとする。というのは、個々の画素に割り当てられた色要素は、別々の赤、緑、青の色要素又は輝度を有しており、画素の赤、緑、青の副画素の各々によって表示されるからである。それ故、各副画素の輝度は、画素に割り当てられた色値において、関連付けられた色要素の輝度値を制御することによって別々に制御される。
【００４４】
ＬＣＤ装置や、カラーＬＥＤ（有機発光ダイオード（ＯＬＥＤ）を使用する画面を含む）、ガスプラズマ表示装置のような他の“副画素アドレス可能な”表示では、各個々の副画素は、表示上で固定の所定の位置を持っている。ほとんどの陰極線電子管（ＣＲＴ）のような多くの表示は、副画素アドレス可能なものではない。例えば、ＣＲＴの各画素は赤、緑、青の色要素に対応する輝度値を持っているが、これらの色値に関連する光を生成する要素の各画素内での正確な物理的配置は、通常知られていない。なぜならば、画面の個々の発光パターン、水平及び垂直走査の解像度、個々の画素が画面上での正確な位置を制御する電圧の正確な現在の状態、の関数として変化するからである。
【００４５】
図９は、複数の画素行（Ｒ１−Ｒ１２）及び画素列（Ｃ１−Ｃ１２）から成るＬＣＤ画面９００の１２×１２の部分を図示している。実際のＬＣＤ画面は、任意の数の行及び列を持っているが、３２０×２４０、６４０×４８０、８００×６００、１０２４×７６８、１２８０×１０２４が良く用いられる。
【００４６】
サークル９１０には画素Ｒ１−Ｃ１が含まれている。画素Ｒ１−Ｃ１は、それ自身が３つの画素副要素（ここでは副画素要素と称す）から構成されている。画素Ｒ１−Ｃ１の拡大図が拡大された画素９２０として示されている。副画素要素９０２は赤として表示され、副画素要素９０４は緑として表示され、副画素要素９０６は青として表示される。個々の副画素要素９０２，９０４，９０６は、画素全体の約１／３の幅であり、画素全体の高さに等しい。
【００４７】
ＬＣＤ画面９００に表示されたように、グリッドの状態で配列されたとき、ＬＣＤ画面９００上において垂直な縞模様として表れる。この公知の画素配列は、垂直ＲＧＢストライプと称されることがある。他の公知の配列では、水平ストライプのような直角方向に画素要素が配置される（この場合は、この画面を９０°回転すると、垂直ストライプ画面になる。）。
【００４８】
一般的な使用において、画素の３つの副画素要素の輝度は、画素が人間の目に所望の色相、彩度及び明度で視認されるように設定される。ＲＧＢ副画素要素は、一体となって単一の色を持つ画素を形成し、表示画像の１サンプルを表現する。
【００４９】
本発明の１つの特徴は、例えば、３２０×２４０又は２４０×３２０の行列比を持つ表示のような低解像度の画面上における、ダウンロードされたウェブコンテンツ、テキスト及び画像を含むその他のデジタル・コンテンツの判読性の向上に関する。２４０×３２０の解像度は、９０°回転させることによって３２０×２４０の解像度にすることができる。本発明の多くの実施形態は、６４０×４８０の仮想レイアウト解像度を３２０×２４０画素解像度の画面上に変換された、幾つかの詳細なマップ画像及びテキストにおいて議論され、示されている。しかし、本発明は他の解像度の画面にも使用されることができる。ほんの２，３例を挙げると、大体、１０２４×７６８解像度を５１２×３８４解像度の画面で見えるようにレイアウトされたコンテンツを表示することに用いられたり、又は、大体、８００×６００画素を４００×３００の画面で見えるように用いられる。他の実施形態では、本発明は、パーソナルコンピュータ画面上で共通な偶数比の水平及び／又は垂直の画素次元以外の画素次元を持つ比較的低解像度の表示で使用される。
【００５０】
一般的には、低解像度の画面とは、所定のデジタル・コンテンツや所定のデジタル・コンテンツのレイアウトが通常表示するために意図しているよりも低い解像度を持つ画面を意味する。このような小型の画面は、より大型の画面上にあるウィンドウ（ウィンドウ部分は低解像度である）のような、より大型の画面の一部を意味することもある。
【００５１】
図１０では、画像コンテンツ１０５及び／又はテキストコンテンツ１０７が、図１の副画素最適化された画面の一部を示している。図１に示された画像は、テキスト及び画像両方の副画素最適化された表示に関連する実際の色値のグレースケールの拡大図である。矩形部１０００内の画像コンテンツ１０５の部分は、個々の画素を見易くするために１０２０において拡大して示されている。それに対応して、矩形１０４０に含まれるテキストコンテンツ１０７の部分は、１０６０において拡大されて表示されている。
【００５２】
１０２０及び１０６０に示された画素は、画素の全体（全体画素）を表していることに留意しなければならない。なぜなら、１０２０及び１０６０の生成に使用されるソフトウェアは、個々の全体画素に関連付けられたＲＧＢ色値に対応するグレースケールを単に表現しているからである。副画素拡大表示１０２０Ａ及び１０６０Ａは、それぞれ、拡大図１０２０及び１０６０における各画素に対応する３つの副画素の各々の明度を表現するものである。１０２０Ｂは、拡大表現１０２０Ａ及び１０２０に対するスケールファクタ及び配置に対応する拡大表現である。そこでは、画像の画素格子が相対的に太い線で表示され、各画素内の３つの副画素分割が相対的に細い線で表示されている。合成格子は、拡大表現１０２０及び１０２０Ａに示された画素パターンが由来する図１のオリジナルの高解像度のカラービットマップ画像１０２の最上部において重ね合わされる。示された特定の画像において、カラービットマップ１０２の解像度は、垂直及び水平の両方向において、図１０の最下部に示された画像１０５における全体画素での解像度の２倍の解像度である。
【００５３】
拡大表現１０６０Ｂは、含まれる１又は複数の文字の高解像度のアウトラインに重なる各副画素の領域の部分が決定されることによって、副画素最適化されたフォントの画像が如何に生成されるかを図示している。
【００５４】
副画素解像度の拡大表現１０２０Ａ及び１０６０Ａを夫々対応する全体画素での拡大表現１０２０及び１０６０と比較することによって分かるように、副画素での画像及びテキストの副画素最適化された表現の表示がより良い解像度を提供する。
【００５５】
図１１は、標準的なウェブコンテンツを３２０×２４０のカラー表示装置に表示した場合に、本発明の一実施形態によって提供される判読性の質を表現するものである。同図最上段のビットマップ１１００はグレースケールであり、princeline.comのウェブページの一部の標準的な６４０×４８０レイアウトから生成された実際のビットマップの全体画素での拡大表現である。この画像は、図１１の最下段ウェブページの全画面３２０×２４０画像の中に示された矩形部１１３０内に含まれるウェブページの部分に対応している。同図中段のビットマップ１１２０はグレースケールであり、上記３２０×２４０画像の同じ部分のカラービットマップの全体画素での拡大表現である。図１１最下段の２００Ｂは、図２に記載した種類の薄型ブラウザとして機能するハンドヘルド・コンピューティング装置を表している。このブラウザの画面上では、６４０×４８０レイアウトのウェブページを表現している３２０×２４０副画素最適化ビットマップの表現が示されている。図１０の拡大表現１０２０のように、図１１最下段のビットマップ１１３０は、画素全体での平均的な輝度に対応するグレースケールのレベルで個々の画素を図示している。図９に示すような垂直副画素ストライプの３２０×２４０画面上でこの画像を見ると、実際の画像は、図１０の拡大表現１０２０Ａによって示されるように、むしろ高解像度を持つように見える。
【００５６】
本発明の多くの特徴における目的に対して、カラービットマップの副画素最適化画像を生成するための任意の公知のアルゴリズムを用いることができる。本発明の一実施形態では、所定の色の各所定の副画素に割り当てられた輝度は、ソース画像の矩形ウィンドウの中にあるそれぞれの全体又は部分的な画素の所与の色値の平均的な強度によって決定される。このソース画像のウィンドウは、所定の副画素を中心にして置かれた縮小画像において、全体画素の領域に一致する。副画素に割り当てられる平均的な強度は、全体又は部分的にソース画像ウィンドウに重なる各ソース画像画素の強度と、各ソース画像画素によってカバーされるウィンドウの領域の割合との乗算によって算出される。
【００５７】
図１２は、解像度が低減された表示装置の副画素格子の、より高解像度のソース画像１０２の部分へのマッピングを図示している。この図は、図１に示されたオリジナルの、より高解像度のカラービットマップ１０２の部分に重ねられた副画素格子１２１０を図示している。円１２２０は、意図された、より低解像度の表示（装置）における１画素に対応する格子の領域を含んでいる。格子パターンの位置及び大きさは、より高解像度のビットマップ画像と、結果として得られる副画素最適化画像との関係によって決定される。図１２に示される特定の格子パターン１２１０は、カラービットマップ画像１０２の画素解像度から、水平及び垂直の両方向においてソース画像の二分の一の画素をもつ表示（装置）の解像度へのスケーリングを表現している。このスケーリングの一例は、６４０×４８０表示画面の表示に適切な画素を持つ画像を、３２０×２４０表示画面に釣り合う表示に縮小する例である。
グリッドパターン１２１０の各太線分割部は、カラービットマップ画像１０２の４画素をカバーしている。破線円１２２０は、より高解像度のソースの４画素を含む太線分割部の一つを囲んでいる。
【００５８】
図１３は、図１２の円１２２０を中心とした９つの太線分割部（即ち、９つの全体画素）の拡大図である。円１３００の画素は、所望の表示の１画素を表現している。図１３が明らかにするように、格子パターン１２１０の各太線分割部は、より高解像度の画像の４画素を含んでいる。図１３の詳細は、また、所望の表示の各画素は、夫々“Ｒ”、“Ｇ”、“Ｂ”と付された赤、緑、青の副画素を含む３個のカラー画素から構成されている。
【００５９】
図１４、１５、及び１６は、それぞれ、ソース画像における矩形ウィンドウ領域の配置を図示したものであり、このウィンドウ領域から、所望の表示での赤、緑、青色の副画素の輝度が決定される。このようなソース画像ウィンドウの領域は、輝度を算出することに用いられる副画素に一致するソース画像の部分を中心とした、縮小画像の画素全体の領域に一致している。
【００６０】
図１４の矩形部１４００は、より低解像度の表示の赤色の輝度を算出するために用いられるソース画像ウィンドウを囲んでいる。同様に、図１５及び図１６は、所望の表示の緑、青に夫々対応するソース画像ウィンドウを囲んでいる。
【００６１】
上述したように、所定の色の副画素に割り当てられる輝度は、以下の関数又は、関数の近似によって決定される。この輝度は、全体又は部分的に当該副画素に対応するソース画像ウィンドウ内にあるソース画像の各画素での当該副画素の色の強度と、当該ソース画像画素によってカバーされる当該ウィンドウ領域の割合との乗算に一致するように設定される。
【００６２】
図１７、１８、及び１９において、赤、緑、青の副画素の輝度は、所定の副画素に対応するソース画像の部分を中心として、ソース画像ウィンドウの内に在る全体又は部分的なソース画像画素の各色の輝度の関数である。この点は、図１７において赤（Ｒ）について示され、ウィンドウ領域１７００は当該副画素に対応するソース画像の部分を中心としている。図１８のウィンドウ１８００は、緑（Ｇ）に対して同様のことを図示しており、図１９のウィンドウ領域１９００は、青（Ｂ）に対して同様のことを図示している。
【００６３】
各副画素についてソース画像ウィンドウを移動させて得られる結果として、各副画素について生成される色値は、各副画素自体の位置に一致するソース画像の部分での当該副画素の対応色を表しており、全体としての画素の位置に対応するものではない。その結果、所定の画素の異なる副画素ついての異なるソース画像ウィンドウの使用によって、結果として生じる画像の空間解像度が向上する。
【００６４】
図１７、１８及び１９に示された本発明の実施形態では、何れの画素が当該副画素のソース画像ウィンドウに含まれるか、及びウィンドウが当該副画素をカバーする割合とは、当該ソース画像の画素に重なる水平及び垂直方向の走査線の割合に基づいて決定される。図１７では、赤の副画素の色値は、個々のソース画像に重なる水平カバレージ線１７２０及び垂直カバレージ線１７４０の割合と、当該各画素の赤色の値とを乗算した結果として決定される。各色値、すなわち、図１８のスケーリング画像の緑（Ｇ）の副画素と各水平及び垂直カバレージ線１８２０，１８４０とについて、並びに、図１９のスケーリング画像の青（Ｂ）の副画素の各水平及び垂直カバレージ線１９２０，１９４０とについても同様である。水平カバレージ線１７２０，１８２０，１９２０は、それらに対応する矩形領域の垂直方向での中心の直上及び直下の垂直方向の位置を表すことを意図している点に留意しなければならない。このため、カバレージ線は、垂直方向に並んだソース画像の画素間の境界を表す位置とは完全に一致しない。同様に、垂直カバレージ線１７４０は、矩形領域１７００において水平方向での中心の直左及び直右にある水平方向の位置を表すことを意図している。
【００６５】
上記で定義されたカバレージ線は、所定色の副画素に関連付けられたオリジナル画像の領域が、所定の色又は形状でカバーされる程度を決定するための、連続関数、又は合理的に高解像度（５ビット以上の解像度）又はそれに相当する解像度の使用に関する、本発明の１つの特徴の実施形態を表している。連続カバー関数では、このカバレージ値は、サンプリングによるのではなく、数学的な関数によって決定される。この数学的な関数は、１次元又はそれ以上の次元で所定のカバーが開始及び終了する境界の位置を決定し、その様な１又は複数の境界間、又はその様な境界と所定の副画素に関連づけられたソース画像ウィンドウの境界との間の、長さ又は面積の関数としてカバレージ値を計算する。
【００６６】
図１７、１８、及び１９、並びに図３０、３１、及び３２に示された本発明の実施形態では、連続的なカバレージ値の計算は、所定の副画素に対応するソース画像ウィンドウの内にある各ソース画像の画素を、当該ウィンドウ内にある１又は複数のソース画像画素の夫々にカバーされる矩形領域内にある１又は複数の走査線の部分を決定することによって、評価することによってスピードアップされる。所定の画素によってカバーされる当該ウィンドウの走査線全体の長さの割合は、当該画素における副画素の色値によって乗算される。このような計算結果は、当該副画素の色値を生成するために、当該ウィンドウの各走査線をカバーする全画素について足し合わされる。このようにして、カラービットマップのスケーリング画像を生成する際に、“ライン・カバレージ”型の連続的なカバー関数が、副画素の輝度を決定することに使用される。
【００６７】
図２０、２１及び２２は、より低解像度の表示画面における赤（Ｒ）に対応するソース画像ウィンドウ内の１本の水平走査線、１本の垂直走査線の使用を図示している。図２１では、水平走査線２０２０に関連付けられたカバレージ値は以下の値の合計である。即ち、
−中括弧２１２０によってカバーされた画素の赤値と、中括弧２１２０によってカバーされた水平走査線２０２０の１／３の部分との乗算値。
【００６８】
―中括弧２１４０によってカバーされた画素の赤値と、中括弧２１４０によってカバーされた水平走査線２０２０の１／２の部分との乗算値。
【００６９】
―中括弧２１６０によってカバーされた画素の赤値と、中括弧２１６０によってカバーされた水平走査線２０２０の１／６の部分との乗算値。
【００７０】
同様な方法で計算すれば、垂直走査線２０４０に関連付けられたカバレージ値は以下の値の合計である。即ち、
―中括弧２２２０によってカバーされた画素の赤値と、中括弧２２２０によってカバーされた垂直走査線２０４０の１／２の部分との乗算値。
【００７１】
―中括弧２２４０によってカバーされた画素の赤値と、中括弧２２４０によってカバーされた垂直走査線２０４０の１／２の部分との乗算値。
【００７２】
赤の副画素に対する全カバレージ値は、水平走査線について計算されたカバレージ値の１／２と、垂直走査線について計算されたカバレージ値の１／２との和である。
【００７３】
同様に、図２３、２４及び２５は、より低解像度の表示画面における緑（Ｇ）に関連付けられたソース画像ウィンドウ２３００内にある１本の水平走査線及び１本の垂直走査線の使用を図示したものであり、図２６、２７及び２８は、より低解像度の表示画面における青（Ｂ）に関連付けられたソース画像ウィンドウ２６００内にある１本の水平走査線及び１本の垂直走査線の使用を図示したものである。
【００７４】
図２９は、上記図１７乃至２８において記載された種類の線のカバレージ値を使用してソースのビットマップからスケーリング副画素最適化画像を生成するための、アルゴリズム２９００の擬似コード表記である。
【００７５】
このアルゴリズムは、出力画像（例えば、スケーリング副画素最適化画像）の各画素行に対してループ２９０１を実行する。
【００７６】
このループは、現在の行の各画素に対してインナーループ２９０２を実行する。各画素について、ループ２９０２は、ループ２９０４及び関数（関数）２９１４を実行する。
【００７７】
ループ２９０４は、副画素の走査線の各々（図１７乃至図２８で示されたような走査線）に対して実行されるインナーループ２９０６を含んでいる。
【００７８】
ループ２９０６は、関数２９０８及びループ２９１０を含んでいる。関数２９０８は、当該走査線と画素境界との各交差点を計算する。通常、そのような交差点の計算と、このアルゴリズム中の他の計算とは、蓄積資源や当該演算の演算量を低減するために、例えば、６〜８ビットの精度のように制限された精度で実行される。
【００７９】
その後、ループ２９１０は、関数２９１２を走査線の各部分（走査線の両端、走査線の端と画素の境界、又は画素の２つの境界）に対して実行する。関数２９１２は、ループ２９１０の現在の部分にカバーされた走査線の割合に、当該部分をカバーする画素の要素色値であって現在の副画素色に対応する要素色値を乗算したものを、副画素の走査線の数で除し、ループ２９０４の現在副画素に関連づけられたカバレージ値に加算する。
【００８０】
ループ２９０４が現在の画素の各副画素について副画素輝度を計算すると、関数２９１４は、現在の画素の色値を、計算された各副画素輝度値に等しい赤、緑及び青の値をもつ複合ＲＧＢ値を持つ色に設定する。
【００８１】
本発明の他の実施形態では、（例えば、２４ｂｉｔ、２６ｂｉｔ、１２ｂｉｔの色値のような）異なる長さの色値が使用され得る。このシステムは、制限されたカラーパレットで使用されるが、システムは、赤、緑、青の夫々について少なくとも４ｂｉｔをもつトゥルーカラーで最適に機能しうる。１６ｂｉｔカラー（通常、赤及び青に５ｂｉｔを割り当て緑に６ｂｉｔを割り当てる（緑に対して目がより敏感であるため））は、より良好な視覚効果を提供する。
【００８２】
上記図１７乃至２８で記述された本発明の実施形態では、１本の水平走査線と１本の垂直走査線とを利用しているが、本発明の他の実施形態では、より多くの走査線の使用及び／又は水平及び垂直方向以外の方向の走査線の使用があり得る。
【００８３】
図３０は、副画素最適化画像の赤（Ｒ）の副画素に関連づけられたカラー値を評価するために使用される、ソース画像ウィンドウ３０２０内の２本の水平走査線と２本の垂直走査線の使用を図示している。
【００８４】
図３１は、副画素最適化画像の緑（Ｇ）の副画素に関連付けられたソース画像ウィンドウ３１２０内にある２本の対角カバレージ線の使用を図示している。
【００８５】
図３２は、副画素最適化画像の青（Ｂ）の副画素に関連づけられたソース画像ウィンドウ３２２０内にある２本の対角カバレージ線、１本の水平カバレージ線、１本の垂直カバレージ線の使用を図示している。
【００８６】
もちろん、図３０乃至３１の各図に示されたカバレージ線の配置の各々は、赤、緑及び青の副画素にも用いることができる。
【００８７】
図３３乃至３８は、副画素の輝度値を計算するライン・カバレージ方法は、ソース画像のサイズと結果として生じる副画素最適化画像のサイズとの間のより広い範囲の異なるスケーリングに適用され得ることを図示している。なぜなら、ライン・カバレージ方法は、例えば大抵のサンプリング技術と比較して、十分な高解像度でライン・カバレージ値を測定することができる。これは、（非整数の比率であるスケールファクタを使用する場合にしばしばそのような結果になるように、）副画素のソース画素ウィンドウ内に部分的にのみ在る画素のカバレージ値を計測する事に対して比較的良い結果を生む。
【００８８】
本発明の本特徴の実施形態では、７ｂｉｔ解像度は、ライン・カバレージ値の計算に使用され、十分な結果を生じる。より高い又はより低い解像度も使用され得るが、ライン・カバレージ値の解像度は、１６（４×４）〜２５６（１６×１６）点の配列での副画素のソース画像ウィンドウ内のサンプリングよってカバレージ値を計測する技術で使用されるのと共通に、各方向ごとに２〜４ｂｉｔ以上が好ましい。
【００８９】
図３３は、ソース画像解像度から水平及び垂直方向に半分の画素を持つ方向性画素最適化画像へのマッピングのために、青の副画素に関連付けられたソース画像ウィンドウ内の様々なソース画像画素による２本の水平カバレージ線のカバレージ値を図示している。図３４は、当該副画素輝度計算方法で使用される２本の垂直カバレージ線について同様なものを図示している。それ故、図３３及び３４は、ソース及び低減画像における画素数の間の整数の比率を図示している。
【００９０】
図３５及び３６は、それぞれ、低減副画素最適化画像が水平及び垂直方向においてソース画像の４０％だけをもつスケールファクタに対して、同じソース画像の画素によって、水平及び垂直走査線のカバレージ値を図示している。
【００９１】
図３７及び３８は、副画素最適化画像が水平及び垂直においてソース画像の６６．６６％の画素を持つ場合のスケールファクタに対して同様のことを図示している。
【００９２】
図３３乃至３８に示された走査ライン・カバレージ技術が、比較的少ない演算能力で、異なる各スケーリングのソース画像によってカバーされる各ソース画像ウィンドウの割合の正確な評価を提供することが分かる。
【００９３】
図３９及び４０は、“領域”タイプの連続カバレージ値関数に関する図を示している。本発明の幾つかの実施形態では、各ソース画像画素に重なる所定の副画素ソース画像ウィンドウは、上述したライン・カバレージ値近似ではなく、当該副画素のソース画像ウィンドウ内にある各ソース画像の当該部分の領域の実際の計算によって計算される。各ソース画素について、副画素色に対応する当該画素の要素色値が決定される。次に、各副画素の輝度値は、カバレージ値の割合と、当該ソース画像ウィンドウ内に現れる各ソース画像画素の当該副画素色の値との乗算を合計して計算される。
【００９４】
図３９は、青（Ｂ）副画素に関連づけられたソース画像ウィンドウ３９００を図示している。ソース画素３９２０は、８つの他のソース画素の部分と同様に、ソース画像ウィンドウ３９００内に含まれている。ソース画素３９２０に重なるソース画像ウィンドウ３９００の割合は、全ソース画像ウィンドウ４０００の領域に渡って、図４０の網掛け部４０２０の領域の割合を得ることによって計算される。同様に、当該ウィンドウに含まれる他のソース画素に重なるソース画像ウィンドウ４０００の割合は、当該ソース画像ウィンドウ内にあるそれらの領域（当該ソース画像ウィンドウの全領域に渡って、当該ウィンドウ４０００の異なる網掛け部の領域によって示される）の割合を得ることによって計算される。
【００９５】
図４１は、図３９及び４０で議論されたタイプのエリア・カバレージ関数を実行するために使用されるアルゴリズム４１００の大幅簡略化・擬似コード表記を提供している。
【００９６】
当該アルゴリズムは、生成されるべき副画素最適化画像において各画素行に対して実行されるループ４１０２を含んでいる。ループ４１０２は、各行において、行の各画素についてのインナーループ４１０４を実行する。
【００９７】
このインナーループ４１０４は、ループ４１０６と関数４１１６とを含んでいる。ループ４１０６は、ループ４１０４の画素の各副画素について実行される。このインナーループ４１０６は、関数４１０８とループ４１１０とを含んでいる。関数４１０８は、上述したように、ソース画像のどの画素が当該副画素に関連づけられたソース画像ウィンドウ内に含まれるかを決定する。これが実行されると、ループ４１１０が、各ソース画像画素について実行される。
【００９８】
ループ４１１０は、関数４１１２と関数４１１４とを含んでいる。関数４１１２は、ループ４１１０の現在のソース画像画素に重なる、副画素のソース画像ウィンドウの割合を計算する。次に、ステップ４１１４は、ループ４１０６の現在の副画素について計算される輝度に、現在のソース画像画素に重なる当該副画素のソース画像ウィンドウの割合と、当該副画素色に対応するソース画像画素の要素色値とを乗算したものを加える。
【００９９】
一旦、ループ４１０６が現在の画素の各副画素に対して実行されると、関数４１１６は現在の画素の色値を、ループ４１０６で計算された赤、緑、青の副画素輝度値に一致するＲＧＢ色要素値をもつ色と等しく設定する。
【０１００】
図４２乃至５３は、２色副画素最適化画像に関する本発明の特徴に関する。
【０１０１】
“２色”画像は、個々の画素色が２つの異なる色値の間で変化する画像である。一般に、これらの２つの異なる色は黒と白であり、ソースの画素と副画素の画像は、黒と白と黒及び白の間のグレースケールに制限された値を持つ。しかしながら、幾つかの実施形態では、２つの異なる色値は、任意の規則的な前景色及び背景色と、それらの間の中間色とを表現し得る。２色画像はしばしばテキストを表現することに使用される。なぜならばテキストの表示は、しばしば、前景色、背景色を含む２色に色づけされているからである。しかし、２色画像は、２色の他の形状、２色のビットマップ、２色化された多色ビットマップの部分、又は、グレースケール画像のような２色出力で表現されるべき多色ビットマップを表現することに使用される。例えば、多色ソース画像は、３色要素の各々の平均輝度に対応するグレースケール値を持つ各画素として単に取り扱うことによって、グレースケール画像として取り扱われうる。
【０１０２】
２色化副画素最適化出力画像を使用する利点は以下の点である。それらの画像は、しばしば、多色副画素最適化出力画像よりも、より高い空間解像度を提供し得るからである。その様な、より高い解像度は、２色が、黒及び白、グレースケール値、又は、不透明及び透明である場合に得られる。なぜならば、各副画素が、２色ペアの前景及び背景を表現可能であるとともに、各２色ペアの各色は、赤、緑及び青の同等の要素を持っているからである。カラーバランスを実行する必要を除いて、以下に示すように、各副画素の輝度は、出力画像中の自身の領域に一致するソース画像の部分が前景又は背景に重なる程度の関数として決定される。より小さなソースウィンドウ（例えば、画素のサイズよりもむしろ副画素のサイズに一致する）の使用によって、ソース画像のより精度の高い空間解像度を実現することができる。
【０１０３】
前景及び背景の色が白黒でない場合には、２色副画素最適化画像で生成される解像度は、前景及び背景の色がそれぞれ比較的輝度の等しい赤、緑及び青の値を持つが、前景及び背景の色の平均的な輝度が可能な限り異なる場合に、最も良好である。実際、２色化副画素最適化画像に関する本発明の特徴の幾つかの実施形態では、出力画像の空間解像度を向上させるために、対応するグレースケール色に向かってシフトさせることによって、出力２色の一方又は両方が、対応する入力２色から変更される。
【０１０４】
２色化・副画素最適化・出力画像の副画素が前景の色を表示する程度は、時折、アルファ値又は不透明値によって表現される。アルファ値は、副画素の輝度が、前景色又は背景色における色要素に一致すべき程度を示している。アルファ値“１”は、当該副画素の色要素の値が、前景色の対応する色要素に等しいことを意味している。アルファ値“０”は、当該副画素の色要素の値が、背景色の対応する色要素に等しいことを意味している。中間のアルファ値は、当該副画素の色要素の値が、前景色及び背景色の対応する色要素の加重された混合であることを意味している。副画素最適化ビットマップがアルファ値によって表現されると、アルファ値は、異なる前景及び背景の色を使用するパターンの２色画像を表現するために使用される。これはフォント形状を表現するためにも共通に使用される。なぜならば、フォントの表示においては、通常、所定のサイズの文字・フォント形状のビットマップパターンが、異なる前景色及び背景色で表示されるからである。
【０１０５】
ビットマップ画像の２色化・副画素最適化に関する本発明の特徴の幾つかの実施形態において、ビットマップ画像のスケーリング・副画素最適化画像は、以下の（ａ）〜（ｃ）の関数として、前景又は背景の２色カバレージ値とスケーリング画像の各副画素とを関連づけることによって生成される。（ａ）当該副画素の領域に一致するソース画像ウィンドウ内の各ソース画像画素の前景色又は背景色の割合、（ｂ）各ソース画像画素に重なる当該ウィンドウの割合、（ｃ）カラー・アンバランスを低減するために副画素カバレージ値を分散するカラーバランス関数。２色出力画像がグレースケールにも多色入力画像に対しても生成される場合には、個々の副画素について計算されるカバレージ値は、当該ソース画像ウィンドウに重なるソース画像画素の全画素の輝度の関数として生成される。幾つかの実施形態では、副画素のソース画像ウィンドウに関連付けられた輝度値が他の副画素に分配される程度は、当該輝度値がカラーアンバランスを発生させる程度の関数である。
【０１０６】
図４２乃至４４は、グレースケール２色画像の各副画素の輝度を決定する方法を図示している。図４２では、矩形４２００は、スケーリング画像の赤（Ｒ）の副画素に対応するソース画像のウィンドウを囲んでいる。赤（Ｒ）副画素に対応する輝度は、ソース画像ウィンドウ４２００に重なる１又は複数のソース画像画素の全体画素の輝度に、それぞれ当該ソース画像画素に重なるソース画像ウィンドウの割合を乗算したものの関数である。カバレージ値の割合を計算又は評価するために、公知の任意の方法を使用することができる。
【０１０７】
図４２の実施形態では、ソース画像ウィンドウ４２００は、２本の水平走査線４２１０，４２２０及び２本の垂直走査線に関連づけられている。図４３及び４４は、緑及び青夫々のソース画像ウィンドウ４３００，４４００に対応する走査線を図示している。前述の様に、ソース画像ウィンドウがソース画素に重なる割合を見積もるには、各走査線に沿って所定のカバー・ラインが開始及び停止する境界の位置を決定する数学的関数を実行する。カバレージは、１又は複数のその様な境界の間、又はそのような境界と当該副画素に関連付けられたソース画像ウィンドウの境界との間の長さの関数として、計算される。これは、図２９に上述した方法と同様の方法で実行され得る。
【０１０８】
２色副画素最適化画像を計算する場合、カラー・アンバランスが発生するかもしれない。これは、２色方法は、全体画素が２色（通常、白又は黒）の間の分布における色値を持つ様な出力画像を生成しようとしているが、画素の個々の赤、緑、青・副画素のカバレージ値は、各副画素の前景色の割合によって決定されるからであり、即ち、個々の出力画素の色は、通常、カラー・バランス無しには、所望の２色分布（通常、グレースケール）と関係無いことを意味する。
【０１０９】
例えば、グレースケール画像では、ソース画像が、副画素最適化出力画像の赤、緑副画素の間の境界に対応する位置で、全体的に白から全体的に黒に変化するとき、出力画像中の対応する画素は、当該副画素を全体的に表示しようとする赤副画素カバレージ値と、当該画素を全体的に非表示にしようとする緑及び青副画素カバレージ値とを持つ。これは、たとえこの例では、出力画像がグレースケールであるべきであっても、当該画素を赤色に見える様にする結果となる。
【０１１０】
図４５乃至４７は、フォント・アウトラインのラスタ化から計算される副画素カバレージ値をカラー・バランスするために、従来技術で使用される種類の伝統的な線形カラー・バランスが、２色ビットマップから生成されるカバレージ値をカラー・バランスすることにどの様に使用されるかを図示している。
【０１１１】
図４５は、ＲＧＢグリッド４６００下でグレースケール・ソース画像画素のセットを図示している。グリッド４６００は、太線分割部に囲まれた４つの画素領域を持つ。その様な各画素領域は、出力画像が表示されるべき副画素アドレス可能な画面における全体画素に対応する。各画素領域は、副画素アドレス可能な画面上で関連づけられた画素の副画素に対応する３つの領域に、さらに分割されている。
副画素に関連付けられた領域４６１０は、赤（Ｒ）副画素に関連づけられており、副画素に関連付けられた領域４６１２は、緑（Ｇ）副画素に関連づけられており、副画素に関連付けられた領域４６１４は、青（Ｂ）副画素に関連づけられている。副画素に関連付けられた領域４６１６乃至４６３２は、それらの各表示画面画素に関連づけられている。
【０１１２】
副画素に関連付けられた領域４６１４乃至４６３０は、前景色（この場合、黒）の種々の程度に対応する非白輝度値を持つソース画像に全体的又は部分的に重なっている。副画素関連領域４６１４乃至４６３０の夫々におけるソース画像画素の非白輝度値の全体は、図４６のＲＧＢグリッド４７００中の対応する副画素領域にマッピングされる。各副画素領域４７４４乃至４７６０の斜線領域の高さは、対応する副画素領域４６１４乃至４６３０の非白輝度値の合計によって決定される。
【０１１３】
図４６の下段は、副画素４７５０に関連づけられたカバレージ値を、副画素４７５０を中心とする５つの副画素に分配するのに使用される、中心加重・対称カラーフィルタの使用を図示している。副画素４７５０のカバレージ値の３／９は、副画素４７５０自身に分配される。副画素４７５０のカバレージ値の２／９は、当該副画素の直左及び直右に夫々ある副画素４７４８及び４７５２に分配される。副画素４７５０の色分配を完了するために、カバレージ値の１／９は、副画素４７５０の夫々左に２番目の副画素、右に２番目の副画素である副画素４７４６及び４７５４に分配される。
【０１１４】
一般に、カラーバランスは、色値を近接画素の近傍（近接画素は、通常、色を分配しようとしている副画素から１画素以下の距離内にある。但し、幾つかの実施形態では、その距離は２画素の大きさになることもある。）に分配する。
【０１１５】
図４７は、図４６の対称・中心加重カラーバランスフィルタが、図４６の上半分に示された副画素４７４０乃至４７６２の夫々について計算されたカバレージ値に線形に適用された場合の結果を図示している。
【０１１６】
図４７では、図４７の最上段に示された各副画素４７４４乃至４７６０に関連づけられたカバレージ値は、当該副画素自身と、図４６に示した様な左及び右に２つの副画素と同じ部分にカバレージ値を分配するカラーバランスフィルタを使用して分配される。図４７の中段にあるグリッド４８０２は、各副画素４７４０乃至４７６２に分配する寄与分の大きさをグラフィカルに図示している。各副画素４７４４乃至４７６２に割り当てられた分配は、各副画素の直下に位置する垂直列を中心として配置されている。
【０１１７】
図４７の最下段に示されたＲＧＢ副画素グリッドパターン４８０４は、中段のパネル４８０２に図示されたカバレージ値の寄与分の全てにより成される全ての寄与分を、各副画素４７４０乃至４７６２について合計して計算される輝度値を図示している。この方法を完了するために、グリッド４８０４の各画素の赤、緑、青・副画素の輝度値は、各画素の色を特定する３要素色値として使用される。
【０１１８】
この線形方法は、スケーリング画像のカラー・アンバランスを低減するが、空間解像度の実質的な低下によってそれが成される。これは、図４７の最下段のＲＧＢグリッドパターン４８０４における副画素輝度（副画素最適化出力画像における副画素輝度値を表している）と、図４７の最上段のＲＧＢグリッドパターン４８００（出力画像の副画素に対応するソース画像画素の輝度、又は前景色カバレージを表す）とを比較することによって理解される。図４７に示される様に、出力画像の空間解像度は、ソース画像の空間解像度に比較して不鮮明である。
【０１１９】
本発明は、副画素最適化出力画像の類似のカラーバランスを、しばしば、出力画像不鮮明度をかなり少なくして、提供する改善を含む。これは、非線形カラーバランスフィルタリング方法を使用することによって成される。非線形フィルタリングを適用する方法が、図４８及び４９に図示されている。
【０１２０】
図４８のＲＧＢグリッドパターン４９００は、図４６のＲＧＢグリッドパターン４７００の複製である。再言すると、副画素に対応するソース画像画素の全体輝度、又は前景色カバレージは、斜線領域によって表されている。
【０１２１】
非線形カラーバランス方法の最初の段階が、図４８に図示されている。前述した様に、ＲＧＢグリッドパターン４９００は、太線分割によって４つの部分に分割されており、各４つの部分、括弧部分４９０２，４９０４，４９０６，及び４９０８は、生成されるべき出力画像の副画素に一致する副画素領域にさらに分割されている。各画素に対して、どの副画素が、最低の副画素輝度又は前景色カバレージ値を持つか決定され、最小輝度／カバレージ値に等しい輝度（又はアルファ）値が、図４８の下半分に示されたＲＧＢグリッドパターン４９１０の画素４９１２，４９１４，４９１６，及び４９１８の各副画素について計算される輝度／アルファ値に加算される。
【０１２２】
図４８の上部半分では、破線４９２０は、画素領域４９０２の最小輝度／アルファ値がゼロであることを示す。なぜならば、画素領域４９０２の最初の２つの副画素に関連づけられた領域がゼロの輝度値を持つからである。それ故、図４８に示されたステップは、画素４９１２の赤、緑、及び青の副画素領域の輝度／アルファ値をゼロに設定する。同様にして、画素領域４９０４の最小輝度値は、画素４９０４の赤の副画素領域の値４９２２によって決定される。同様に、画素領域４９０６及び４９０８の最小輝度値は、図４８の下半分の画素領域４９１６及び４９１８にマッピングされる。このステップの完了後に生じる部分的に計算された輝度／アルファ値は、図４８の下段のＲＧＢグリッドパターン４９１０によって表されている。
【０１２３】
非線形カラーバランス方法の第２段階は、図５０に図示されている。第２段階のこの例では、当該画素の最小輝度／アルファ値を超える各副画素の輝度／アルファ値の部分は、図４６及び４７で上述された種類のカラーバランス分配フィルタを利用して、ＲＧＢグリッドパターン４９１０にマッピングされている。
【０１２４】
図４９の最上段の画素グリッド５０００は、図４８の上段の画素グリッド４９００に一致する（また、同じ副画素４７４０乃至４７６２を持つ）。但し、対応する画素の最小副画素輝度／アルファ値（低密度の斜線で示す）が除かれた後に残る各副画素の輝度／アルファ値（密度の濃い斜線で示す）の部分が表現されている点を除く。図のこの部分に示される様に、各副画素の超過・輝度／アルファ値は、図４６と同じ形状のフィルタを使用して、副画素自身、左に２つの画素及び右に２つの画素に分配される。
【０１２５】
図４９の最下部近傍で符号５００４が付された部分は、非線形方法のこの例において、各副画素４７４０乃至４７６２に分配された超過・輝度／アルファ値の合計を図示している。図４９の最下段に図示した様に、出力画像の各副画素について使用される輝度／アルファ値の合計を生成するために、各副画素について計算された超過・輝度／アルファ値の合計は、図４８に示されたステップによって以前に副画素に加算された最小輝度／アルファ値に加算される。
【０１２６】
非線形カラーバランス処理を完了するために、ＲＧＢグリッドパターン４９１０の各副画素について加算された輝度／アルファ値は、それが関連付けられた画素の赤、緑、青の色要素値を決定するために使用される。その様な表示における個々の各画素の赤、緑、及び青色値は等しくないかもしれないが、画素行の５つ程度の隣接した副画素の如何なる近傍における赤、緑、及び青色値の合計は、実質的に等しい又はバランスされなければならない。
【０１２７】
線形及び非線形カラーバランスフィルタリング方法を使用して達成される結果の比較が、図５０，５１，及び５３に記載されている。
【０１２８】
図５０は、図４６のＲＧＢグリッドパターン４７００及び図４８の４９００に最初にマッピングしたフィルタ前のソース画素輝度／カバレージ値を図示している。
【０１２９】
図５１は、図４９の最下段に示された様な、非線形フィルタリング方法の結果を示している。
【０１３０】
図５２は、図４７のＲＧＢグリッドパターン４８０４に示された様な、線形フィルタリング方法の結果を示している。
【０１３１】
図５１に示す非線形バランス方法の出力は、図５２に示す線形方法の結果よりも、図５０の元の輝度／アルファ値の空間的な分布に近い。図５１の非線形方法で生成された輝度値は、不鮮明度がかなり低く、それ故、線形不法で生成された出力画像よりも高い空間解像度を知覚させる。これは、空間解像度をぼかす有害な影響を持ち、カラー・アンバランスを防止するためにカラー・バランス分配を必要とする副画素輝度／アルファ値の部分にのみ、非線形方法がカラー・バランス分配を実行するからである。これは、非線形方法を使用して各副画素に分配された副画素輝度／カバレージ値の合計（図４９の数字５００４で示される）と、線形方法を使用して各副画素に分配された対応する合計（図４７の最下段で各副画素について示された斜線部全体によって示される）とを比較すれば分かる。
【０１３２】
図５３は、非線形カラーバランス方法を使用して副画素最適化２色出力ビットマップを生成する方法の一実施例を、大幅に簡略化した擬似コード表記で表したものである。
【０１３３】
この図のアルゴリズム５３００は、画像の各画素行に対して実行されるループ５３０１を含んでいる。このループは、各画素行に対して、２つのサブループ５３０２及び５３２２を実行する。
【０１３４】
ループ５３０２は、ループ５３０４、関数５３１４及びループ５３１６を実行する。
【０１３５】
ループ５３０４は、ループ５３０２の現在画素の各副画素に対して実行される。各当該副画素に対して、それは関数５３０６及びループ５３０８を実行する。
【０１３６】
関数５３０６は、ソース画像のどの画素が、スケーリング画像の当該副画素の領域に該当する当該ソース画像のウィンドウ部分内にあるかを決定する。
【０１３７】
ループ５３０８（関数５３１０及び５３１２を含む）は、現在の副画素のソース画像ウィンドウ内に全体的又は部分的に含まれる各ソース画像画素に対して実行される。関数５３１０は、当該ソース画像画素の領域に重なるソース画像ウィンドウの領域の割合を計算する。関数５３１２は、ソース画像画素に重なるウィンドウ領域の割合と当該ソース画像画素の平均の前景色強度とを乗算したものを、現在の副画素に対して計算された輝度／カバレージ値に加える。
【０１３８】
２色画像がグレースケール画像である場合には、前景色強度は、各全体ソース画像画素の、輝度、又は輝度の逆数にも対応し得る。ソース画像が多色画像である場合には、関数５３１２の目的のための前景色強度の計算において、各ソース画像画素の色要素の平均の輝度値は、ソース画像画素に使用され得る輝度値を決定することに用いられ得る。
【０１３９】
ループ５３０４は、図４６に示された種類の輝度／カバレージ値を決定することに使用され得る。
【０１４０】
ループ５３０４が現在の画素の各副画素に対して実行されると、関数５３１４は、図４８の上半分に図示されたように、現在の画素について計算される最小の副画素の輝度／カバレージ値を見つける。
【０１４１】
これが実行されると、ループ５３１６（関数５３１８及び５３２０を含む）は現在の画素の各副画素について実行される。
【０１４２】
関数５３１８は、当該副画素について計算されている輝度／アルファ値を、図４８の下半分に示されたように、関数５３１４によって当該画素について決定された最小の副画素の輝度／カバレージ値に設定する。
【０１４３】
関数５３２０は、当該画素の最小の副画素の輝度／カバレージ値を超える、副画素の輝度カバレージ値の部分を、図４９に示されたようなカラーバランス分配フィルタを使用して、現在の画素行の当該副画素について計算されている輝度／アルファ値及び近傍の副画素の輝度／アルファ値に分配する。
【０１４４】
本発明の実施形態の１つでは、所定の副画素に対して成されたこのような分配の合計が最大許容輝度／出力値を超えた場合、副画素の輝度／アルファ値はその最大値に制限される。この切り捨てはいくらかのカラー・アンバランスをもたらすかもしれないが、本発明者は、結果として生じるアンバランスはほとんど気づくことができないものであることを了解している。
【０１４５】
輝度／アルファ値が当該行の各副画素について計算され、ループ５３０２が完了されると、ループ５３２２は、関数５３２４が当該行の各画素に対して実行されるように処理する。
【０１４６】
この関数は、当該画素の色値を、当該画素の赤、緑及び青の副画素について夫々計算された輝度／アルファ値に該当する赤、緑及び青の要素値を含む混合ＲＧＢ値を持つ色に等しくなるように設定する。図５４は、表示（装置）のユーザが動的にトレードオフを実行する本発明の１つの特徴を図示している。このトレードオフは、ソース画像から生成された副画素最適化画像が、多色副画素最適化処理よって生成されるか、２色副画素最適化処理によって生成されるかの程度の間のトレードオフである。多色副画素最適化によって生成される出力画像は、合理的な色精度で縮小カラー画像を表現し得る一方、この例の２色副画素最適化は、グレースケールの出力画像のみを生成し得る。しかし、幾つかの場合には、このようなグレースケールの出力画像は、多色副画素最適化によって生成された出力画像よりも、より精度の良い空間解像度を持ち得り、特に、ソース画像がシャープなエッジを持つ白黒部分を持つ場合には、カラーアンバランスを知覚し難い。
【０１４７】
カラービットマップ画像５４００は、スケーリング及び副画素最適化されたグレースケールビットマップ５４４０を生成するために、図４２乃至５３の上記例のような、２色副画素最適化方法を使用する関数５４１０及び５４３０の利用によって、スケーリング及び副画素最適化される。カラービットマップ画像５４００は、プロセス５４２０によってもスケーリング及び副画素最適化されることがある。プロセス５４２０は、スケーリング及び副画素最適化されたカラービットマップ５４５０を生成するために、図１７乃至４０に上記された例のような、多色副画素最適化方法を使用する。
【０１４８】
図５４に示された本発明の実施形態によると、表示（装置）のユーザは、プロセス・ステップ５４６０に従って、ポインティングデバイス、キーボード又は他の入力デバイスのような表示（装置）の制御装置を操作し、カラービットマップ５４５０とグレースケールビットマップ５４４０とを混合させることができる。これは、例えば、スライドバーの操作によっても成され得る。プロセス・ステップ５４８０は、グレースケールビットマップ５４４０及びカラービットマップ５４５０と、ユーザが選択したカラー／グレースケールのトレードオフ情報とを受け取り、ユーザが選択したカラー／グレースケールのトレードオフ５４６０の関数として各々の色値に重み付けをして、グレースケールビットマップ５４４０及びカラービットマップ５４５０からの該当する画素の色値を混合する。
【０１４９】
図５４に示された種類の幾つかの実施形態では、ユーザがカラー／グレースケールの分布の何れかの極限でトレードオフを選択するとき、このプロセスは、選択された極限に該当するビットマップ５４４０又は５４５０のみを計算することによって演算を低減することができる。
【０１５０】
本発明の本特徴の利点は、表示（装置）のユーザが、カラーバランス及び／又は位置的精度の何れを最も重要と考えるかを選択することができ、色精度を最も重要と考える場合にはこれを選択することができ、単により判読しやすい表示を見つけるためにトレードオフの選択を変化させることもできる。
【０１５１】
本発明の全ての特徴が副画素最適化されたテキストを必要とする訳ではなく、副画素最適化されたフォント形状のビットマップのテキストを生成する従来方法を使用するものの多くを必要としない。しかしながら、本発明の幾つかの特徴は、フォントビットマップを生成する方法における改善に関する。
【０１５２】
図５５乃至９７は、副画素最適化されたフォントビットマップの形成及び使用に関連している。
【０１５３】
図５５は、フォント・アウトライン５５００を図示しており、ここでは、タイムズ・ローマン・フォントの大文字の“Ｂ”のアウトラインを図示している。このアウトラインは、複数の個々の全体画素５５０４を含んでいる副画素グリッド５５０２の上に重ねて表示されている。各全体画素５５０４は、赤、青及び緑の副画素５５０６、５５０８、５５１０をそれぞれ含んでいる。
【０１５４】
図５５に示されたフォント・アウトラインは、比較的通常のテキストサイズでの表示に使用され得るアウトラインである。これは、本発明者の副画素最適化文字・フォント形状の方法が、広い範囲の応用に渡って適用可能であり、図１１の最下段に示された種類の小型画面表示（装置）に制限されないことを示している。しかしながら、本発明のこの特徴が小型画面表示及び／又は極めて小さい画素サイズでのフォントの表示に適用される場合には、フォントは小さなサイズでの表示のために最適化されることが好ましい。例えば、幾つかの実施形態では、ｅｍ当たり１０画素以下、又はｅｍ当たり８画素以下のような場合である。
【０１５５】
図５６は、副画素アドレス可能な画面上で小型表示のために最適化されたフォントを図示したものである。図５７は、２倍のサイズで同じビットマップを示している。不運なことに、図５６及び５７に示されたビットマップの印刷物は、全体画素の平均的な輝度を表示しており、ビットマップが副画素アドレス可能な表示（装置）上で示されたときに可能になる様なより高い解像度を獲得できていない。
【０１５６】
図５６及び／又は５７に示されたフォントは、ヒンティング処理によって生成されている。ヒンティング処理では、個々のフォント・アウトラインの境界を、画素の境界、副画素の境界、及び副画素の境界の間にある水平及び垂直方向の中間に選択する。このような高解像度ヒンティングは、副画素表示上で最適な判読性を達成するために使用される。これは、フォントデザイナーの視点での個々の文字の副画素最適化ビットマップに、当該文字が小型フォントサイズで表示したときに可能な限り明瞭になっていると相対的に満足できるまで、様々なヒンティング値を持たせることによって成される。フォント・ヒンティングのこれらの知識が理解されるように、フォントは、そのフォントの全てのサイズの表現に渡ってフォント・アウトラインの個々の部分の配置を命令するヒント値と、特定の画素サイズでの文字・フォント形状に適用される特別なヒント値とを持つことができる。図５６及び５７に示されたフォントは、ｅｍ当たり８画素での表示を最適化するようにヒンティングされており、それらの幾つかは、そのような小さなサイズにのみ適用されるべき特定のヒント値を持っている。
【０１５７】
実際、３２０×２４０画素解像度の画面ショットにおけるフォントのほとんどは、そのサイズでの表示のために特にヒンティングされたｅｍ当たり８画素のフォントである。これらのフォントは、比較的大量のウェブテキストを小型画面上に適合させる一方、比較的高水準の判読性を提供する。これらのフォントは、隣接する文字同士を隔てるスペースが在ればそれを含んで、低解像度の場合のほとんどの文字を４画素列以下で表示可能にする。そのような小さいフォントの判読性は、副画素最適化の使用によってもアンチエイリアス処理によっても大幅に向上される。なぜならば、これらは、文字形状が所定の画素をカバーする程度についての情報が、単なる全体画素レベルでの２色表現よりも多く表現されるようにするからである。実際、副画素最適化はアンチエイリアスの一種と考えられている。なぜならば、それは、伝統的なアンチエイリアスと同様に、フォント形状によって部分的にカバーされる画素が、そのようなカバー範囲の程度の関数として変化する色値を持つようにするからである。
【０１５８】
図５８及び５９は、本発明によって生成された副画素最適化ビットマップが、フォント・アウトライン及び／又はフォント・ビットマップとして表現され得ることを図示している。フォント・アウトライン表現５８０２は、好ましくは、文字・アウトラインの境界を１又は複数の異なるフォントサイズに最適に配置するように設計されたヒンティング情報とともに、所定のフォントの１又は複数の文字の形状の数学的幾何学的な記述を含んでいる。これらのフォント・アウトラインは、今議論されたような、副画素アドレス可能な表示上で最適に表示されるように設計されており、かつ、副画素アドレス可能な表示上での表示に最適化されたヒンティング値を持つものである。
【０１５９】
フォント・レンダリング５８０６は、以下に記述されるように、そのようなアウトラインから副画素最適化ビットマップ５８０４を生成することに使用され得る。
【０１６０】
本発明の幾つかの実施形態では、図５８に図示されたように、コンピュータ５８０８及び／又は該コンピュータ上で実行するアプリケーションは、フォントサーバ５８１２からコンピュータネットワーク５８１４を介してアクセスされたフォントビットマップ又はフォント・アウトラインを使用して、テキストを表示する。他の実施形態では、図５９に図示されたように、コンピュータ５９００及び／又はその上で実行されるアプリケーション５９０２は、それらの中に蓄積されたテキストを表示するために必要なフォントビットマップ５９０４を保持している。そのようなコンピュータ及び／又はアプリケーションは、フォント・ビットマップのみを保持可能であるか、又は、それらはスケーリング可能なフォント・アウトライン５９０２を蓄積し、異なるサイズで必要とされるフォントビットマップ５９０４を表示することが可能である。
【０１６１】
フォントビットマップのみを蓄積する利点は、コンピュータ５９００上にフォント・アウトライン及びフォント・レンダリングを蓄積する必要がない点である。これは、また、フォント・レンダリングに含まれる演算が必要ない。さらに、多くのフォントヴェンダーは、フォント・アウトラインよりもフォント・ビットマップがインターネット上で比較的自由に利用可能なように許容することの方を強く望んでいるからである。
【０１６２】
図５８に示されたようなフォントサーバからフォントを受け取る利点は、それによって、クライアント５８０８が、図５８に表現されたように、大規模なフォントライブラリを蓄積する必要なしに必要なフォントをダウンロードすることによって、多数の中の任意のフォント、サイズ及び文字の組み合わせで、テキストを表現できる点である。好ましくは、クライアントコンピュータ５８０８は、文字列（ストリング）を表示しようとする度にネットワーク５８１４を介して通信する必要がないように、合理的な数の文字・フォントビットマップをキャッシュする。
【０１６３】
図６０は、アルゴリズム６０００の大幅簡略化・疑似コード表現であり、このアルゴリズムは、副画素最適化フォントビットマップの生成に関する本発明の特徴の幾つかの実施形態に使用される。このアルゴリズムは、図４８及び４９で上述された種類の非線形カラーバランスを使用している。そのような副画素最適化アルゴリズムは、テキスト文字の表示に使用することに特に最適である。なぜならば、ヒンティングの使用のために、テキスト・アウトラインの境界の空白画素の境界への配列は、ラスタ化フォント形状において極めて一般的であるからである。
【０１６４】
図６０のアルゴリズム６０００はループ６００２を含んでおり、ループ６００２は、所定の画素解像度での個々の文字・フォント形状のラスタ化において、各画素行に対して実行される。このループ６００２は、各画素行に対して順次実行される３つのサブループ６００４、６００８及び６０２０を含んでいる。
【０１６５】
ループ６００４は、ループ６００２の現在の繰り返しが実行されつつある画素行において、各副画素に対して実行される。各副画素に対して、ループ６００４は、関数６００６を実行する。関数６００６は、画像を生成しつつある文字・フォント形状によってカバーされる当該副画素の領域の割合の関数として、各副画素についてのカバレージ値を決定する。
【０１６６】
図６１乃至９０は、図６０のステップ６００６における各副画素のカバレージ値を決定することに使用され得る方法を議論するために使用される。
【０１６７】
図６１、６２、６３に示されるように、カバレージ値が所定の画素５５０４について計算される、文字・フォント形状の画像における領域は、赤、緑、青の副画素５５０６、５５０８、５５１０によって夫々表示される当該画像の領域に一致している。これは、副画素最適化多色画像の場合には、図１４乃至１６に上述したように、各副画素に該当するソース画像ウィンドウがより大きい点で、副画素最適化多色画像の場合とは異なる。図６０の方法で使用されるソース画像ウィンドウは、上記図４２乃至４４に関して記述された２色ビットマップに使用されたソース画像ウィンドウの領域と同じサイズを持っている。
【０１６８】
このような、より高解像度のソース画像ウィンドウが使用され得る。なぜならば、大抵のフォント・アウトライン表現によって表現される文字・フォントの形状は、前景色（大抵の場合には、アルファ値＝１によって表現される）に対応すると考えられるフォント・アウトラインと、背景色に関連付けられる画像の他の全ての部分（大抵の場合には、アルファ値＝０で表現される）とによってカバーされる領域をもつ２色画像であるからである。
【０１６９】
図６０の関数６００６におけるカバレージ値の計算は、図５５に示されたグリッド５５０２の副画素の解像度と同じ空間解像度を持つ画素の配列に関連付けられた文字・フォント・アウトラインをラスタ化できる任意の従来技術を使用して実行され得る。
【０１７０】
図６４乃至６７は、フォント・アウトライン６４０２によってカバーされたラスタ化グリッドにおいて、ユニットの割合を計算することに使用されてきた伝統的な方法の幾つかを図示している。この従来技術では、ラスタ化のユニット６４００は、典型的には、出力画像における全体画素に該当する領域である。図６０の方法では、それは出力画像の副画素に該当する領域である。
【０１７１】
図６４は、アウトライン６４０２によってカバーされるユニットの領域を正確に計算するための数学的技術を使用する方法であって、ラスタ化ユニット６４００のカバレージ値を決定するための方法を図示している。これは、比較的コンピュータ資源を多く必要とするものであり、それ故、かつてほとんど使用されたことはない。
【０１７２】
図６５には、実質的によりコンピュータ資源を節約できる方法が記載されている。この方法では、文字・フォント形状の境界の小片方法的な線形近似６５０４を使用することによって、アウトライン６４０２にカバーされるラスタ化ユニット６４００の割合を計算している。
【０１７３】
図６６は、さらにコンピュータ資源を節約できるが、実質的により精度の低い結果を生成する方法を図示している。この方法は、アウトライン６４０２の形状内にあるサンプルポイント６６００の割合を決定することによって、ラスタ化ユニット６４００のカバレージ値の割合を求めている。
【０１７４】
図６７は、図６６の方法のように比較的低いコンピューター資源によって、同じものに対してより精度の良い結果を提供するカバレージ値決定の方法を図示している。それは、アウトライン６４０２によってカバーされる多数の走査線６７００及び／又は６７０２の平均的な割合の関数として、ラスタ化ユニットのカバレージ値を決定する。
【０１７５】
図６８乃至８７は、ラスタ化ユニットのカバレージ値を計算する極めてコンピュータ資源を節約できる方法を図示している。その方法は、図６６において同じ演算量ついて示されたサンプリングの方法よりも典型的に良い結果をもたらす。
【０１７６】
この方法の一実施形態は、本発明の発明者の一人であるSampo J. Kaasilaの名前で出願された米国特許出願において、より詳細に記載されている。この米国特許出願は、シリアル番号０９／３６３，５１３である。それは、１９９９９年７月２９日に出願され、”Systems For Rapidly Performing Scan Conversion With Anti-Aliasing Upon Outline Fonts And Other Ｇraphic Elements”の名称である。この出願は、ＰＣＴ出願(PCT/US00/21559)において開示が公開されている。この出願は、全文が、参考文献として添付されている。
【０１７７】
図６８乃至８７において、ラスタ化ユニットのカバレージ値は、フォント・アウトラインの形状６４０２によってカバーされる、２つの走査線（水平走査線６８０４又は垂直走査線６８０２）の１本の割合によって決定される。そのカバレージ値がラスタ化ユニットのカバレージ値として使用される走査線は、より中間的なカバレージ値を持つ走査線である。例えば、水平及び垂直走査線のカバレージ値が０〜１２６の範囲で計算される実施形態では、選択される走査線は、そのカバレージ値が５０割合のカバレージ値を示す６３に近い走査線である。
【０１７８】
図６８乃至７１では、ラスタ化ユニット６４００のカバレージ値の割合を表すのは、垂直走査線６８０２のカバレージ値の割合である。図７２乃至７５では、最も中間に近い値を持ち、それ故、全体のラスタ化ユニットのカバレージ値の割合を表現するのに使用されるのは、カバレージ値の割合を持つ水平走査線６８０４である。
【０１７９】
図７６乃至８７の残りの全てにおいて、より中間に近いカバレージ値を持つ走査線のカバレージ値は、通常、全体のラスタ化ユニットに対するカバレージ値に非常に近く、それは、通常、全体のラスタ化ユニットのカバレージ値から２５割合以上変化しないと考えられる。
【０１８０】
図８８乃至９０は、それらのカバレージ値のうちより中間に近いカバレージ値を持つカバレージ値の関数として、それらの対応するラスタ化ユニットのカバレージ値に、個々の走査線のカバレージ値の組み合わせを重み付けする方法において、使用され得る他の組み合わせを示している。そのような方法では、全体ラスタ化ユニットについて計算されるカバレージ値は、各走査線のカバレージ値と、それの中間性とを乗算し、これらを各走査線の中間性の合計で除したものに等しく設定される。この計算では、走査線の中間性は、当該走査線の最も中間に近いカバレージ値の割合から、最も中間に近いカバレージ値の割合と走査線の実際のカバレージ値との差の絶対値を減算したものに等しい。
【０１８１】
図９１は、画素５５０４の行９１００の赤、緑、青の副画素５５０６、５５０８、５５１０のそれぞれにマッピングされた仮想のフォント・アウトライン９１０２を図示している。
【０１８２】
図９２は、当該副画素の行９１００全体の各々に対して計算された対応するカバレージ値９２０２を図示している。
【０１８３】
図９３は、個々の副画素について決定されたカバレージ値が線形カラーバランス法を用いて、どのように分配されるかを図示している。線形カラーバランスは、図４６において上述したものと同様である。
【０１８４】
図６０に少し戻って見ると、同図のステップ６００６が行の各副画素に対するカバレージ値を計算又は評価すると、図９２に示されたように、ループ６００８が当該画素の各画素に対して実行される。このループの色は、行の当該副画素に対するカバレージ値を調和させる。それは、図９３に図示されるとともに、図４６及び４７で上述された種類の線形カラーバランスルーチンを使用しない。その代わりに、それは、図４８乃至５３で上述されたものと同様の非線形カラーバランス技術を使用することにより、より高い知覚性の空間解像度を達成する。
【０１８５】
ループ６００８は、各画素に対して、２つの関数６０１０，６０１２及びループ６０１４を実行する。
【０１８６】
関数６０１０は、現在の画素のどの副画素が当該画素について計算された最小カバレージ値を持つかを見つける。次に、ステップ６０１２は、この最小カバレージ値を、現在の画素の各副画素について計算されている一時的なアルファ又は不透明値に加算する。
【０１８７】
次に、ループ６０１４は、現在画素の各副画素について関数６０１６及び６０１８を実行する。関数６０１６は、ループ６０１４の現在の副画素に対して、当該副画素が一部を成す画素について見つけられた最小カバレージ値を超える当該カバレージ値について計算されたカバレージ値超過分を決定する。次に、関数６０１８は、この超過値を、現在画素行において、現在副画素について計算されている副画素アルファ値と、現在副画素の左に２つの副画素と、現在副画素の右に２つの副画素とに分配する。この関数は、図４９で上述されたものに該当する。
【０１８８】
図９４及び９５は、２つの異なるカラーバランス・分配フィルタを図示しており、このフィルタは本発明の一実施形態において使用される。この実施形態では、図９４に示された非対称中心加重カラーバランス・フィルタが、赤及び緑の副画素に関連づけられたカバレージ値を分配することに使用される。図９５に示された非対称カラーバランスフィルタは、青の副画素に対応するカバレージ値を分配することに使用される。それ故、本発明のこの実施形態は、ある色に対して他の色と異なる形状の分配を使用している点で、図４９において上述されたプロセスとは異なっている。
【０１８９】
本発明の発明者の一人は、人間の目は青よりも緑の方を大幅に知覚するので、異なる色の副画素に対応するカラーバランス・カバレージ値はそのような異なる分配のフィルタを使用するべきである点を発見した。非線形カラーバランス（２色画像の非線形カラーバランスを含む）に関連する本発明の他の実施形態では、異なるカラーバランス・フィルタが各異なる色に対して使用されることができ、同じカラーバランスフィルタが全ての色に対して使用されされることができ、対称又は非対称のカラーバランスフィルタが使用されることができる。
【０１９０】
図９４及び９５に示された特定のカラーバランスフィルタは、０〜１２６のスケールで計算されるカバレージ値での使用のために設計されている。０〜１２６の値を持つ所定のカバレージ値は、図９４及び９５のテーブルの右側にある５つの分配値セットに対応しており、そのテーブルの左側にあるこの対応する色は、それ自身の色値に最も近い。例えば、現在副画素のカバレージ値が赤又は青の色について１２６である場合、１の加算が現在副画素の左側に２番目の副画素及び右側２番目の副画素に対して計算されているアルファ値に成され、３の加算が現在副画素の左側１番目の副画素及び右側１番目の副画素に対して計算されているアルファ値に成され、４の加算が現在画素に対して計算されているアルファ値に成される。この特定の実施形態では、アルファ値は０〜１２のスケールで計算される。
【０１９１】
図９４及び９５に示されたカラーバランス分配の相対的なサイズは、所望の分配比率をより正確に反映している。これは、これらの最後の行の各々において分配された、より大きな値が、それらの各々の上方の行において見られるよりも、大きな数値解像度をもたらすからである。
【０１９２】
バランスされているカバレージ値又は輝度値を記述するためのより高い数値精度を使用する他の実施形態において、バランス分配が、図９４の最後の行において反映されるもの及び／又は図９４の最後の行に示されたものに近い、異なる副画素への寄与の間での割合を持つことが好ましい。これは、図９４及び／又は図９５に示された一般的な種類のフィルタが図４８乃至５２において上述された様な、画像の２色副画素最適化のカラーバランスに用いられる場合に、特に言えることである。これは、ビットマップ画像の２色副画素最適化においては、副画素最適化されたビットマップを使用するものよりも低い解像度で輝度をカラーバランスさせる演算は、ほとんど利点がないからである。
【０１９３】
図６０のループ６００８がステップ６０１８を行の各画素の各副画素について実行させると、各画素は、各アルファ値が１３段階の不透明度レベルの内の１つを持つように、その３つの副画素について計算された別々のアルファ値を持つことになる。これは、各画素が２１９７（即ち、１３の３乗）の内の１の異なる取りうる結合アルファ値を持つことを可能にすることを意味する。本発明の他の実施形態では、より高い又はより低い解像度のアルファ値が使用され得る。
【０１９４】
本発明の多くの実施形態では、特に、制限された演算能力を持つコンピュータ上において、又は、フォントビットマップを蓄積又はダウンロードするために必要とされる帯域幅又は蓄積能力の低減が望まれるシステムにおいて、実行するように設計された実施形態では、カラーバランス後に取り得る異なる副画素のアルファ値の２，１９７の組み合わせである比較的大きな色空間から、より小さな色空間にマッピングすることが好ましい。
【０１９５】
図６０における本発明の実施形態では、そのようなマッピングを実行する。ループ６００８が現在行の各画素について実行されると、ループ６０２０は各画素についてさらなる関数６０２２を実行する。関数６０２２は、画素の副画素の各々について計算された３つのアルファ値を取得し、それらをルックアップテーブルの入力値として使用する。このルックアップテーブルは、画素の３つのアルファ値の取り得る組み合わせによって決定された２，１９７の取り得る色値の夫々を、１２２の値の内の１の値にマッピングする。この実施形態では、色空間は、このような小さな数の色に低減されている。これは、２５６値の色空間を持つ機械は、副画素最適化フォントの表示での使用に対して選択された１２２の値の各々を、そのような制限された色空間の半分以上を他の使用のために保持しつつ、表示できるからである。フォントビットマップを表示するためのこのような小さなカラーパレットの使用は、そのようなフォントビットマップを蓄積することに必要とされるビット数を低減し、それらのダウンロードに効率的なものにする。本発明の本特徴の他の実施形態では、そのようなマッピングに使用されるソース及び受信側の色空間は、異なるサイズを持つ。
【０１９６】
図９６は、本発明の一実施形態において、そのようなカラーマッピングを生成することに使用される方法９６００を図示している。他の実施形態では、上述したように、他の種類のマッピングが使用され得ることが理解されるべきである。幾つかの実施形態では、より小さい色空間へのそのようなマッピングが全く必要とされない。
【０１９７】
図９６の方法は、ステップ９６０２から開始する。ステップ９６０２は、図６５乃至９５で上述した非線形カラーバランス・副画素最適化アルゴリズムを通じて、多数のフォントから多数の文字を実行する。これが実行されると、ヒストグラムは、取り得る２，１９６の異なる画素のアルファ値の各々が任意の画素について計算されている回数を保持する。このヒストグラムは有効である。なぜならば、副画素最適化ビットマップの画素について計算された３色のアルファ値のほとんどは、２，１９６の３色アルファ値の全体の取り得る色空間の様々な小さな領域に集中する傾向があるからである。この集中は、恐らく、非線形カラーバランスにより言えることである。なぜならば、それは、カラーバランスに必要な量的な輝度の分配を実質的に削減するからである。
【０１９８】
次に、関数９６０４は、制限されたカラーパレット（ここでは１２２色を持つ）を、関数９６０６及び９６０８を実行することによって生成する。この関数９６０６は、１３のグレースケール値を選択する。このグレースケール値は、各副画素が１３段階のアルファ値の１つを持つとして、全体画素のアルファ値に対して取り得りる。次に、関数９６０８は、先にステップ９６０２によって計算されたヒストグラムにおいて最も頻繁に出現する１０９の他の色を選択する。
【０１９９】
制限されたカラーパレットが選択されると、ループ９６１０が２，１９６の取り得る全体画素のアルファ値の各々に対して実行される。各取り得るアルファ値に対して、条件９６１２は、入力色が１２２色の内の１つに正確に当てはまるか否かを判別する。もし、当てはまれば、関数９６１４は、入力色を、構成されたルックアップテーブルにおいて同じ出力色に対応付ける。もし、条件１９１２が満たされなければ、ループ９６１８及び関数９６２８が、ループ９６１０の現在入力色に対して実行される。
【０２００】
ループ９６１８は、パレットの１２２の出力色の各々に対して実行される。それは条件９６２０を持っており、条件９６２０は、マッピングされる入力色の赤のアルファ値とループ９６１８の現在出力色との差が、現在入力色の緑のアルファ値と現在出力色の緑の出力アルファ値との差と同じ符号であるか否かを判別する。条件９６１２は、また、現在画素の赤のアルファ値と緑のアルファ値との差が、入力色の赤のアルファ値と緑のアルファ値との差（いくらかの余裕を持たせる場合には、取り得る値Ｘを加算したもの）よりも小さいか否かを判別する。もし、これらの２つの条件（入力色とその入力色がマッピングされる先の出力色との比較的大きな差を防止するように設計するものである）が満たされていれば、関数９６２２乃至９６２６が実行される。
【０２０１】
関数９６２２は、入力色から出力色までの距離を計算する。関数９６２４は、その距離が、現在ループ９６１８における入力色までに最も近い距離であるか否かを判別する。関数９６２４の判別が満たされると、ステップ９６２６はループ９６１８の現在出力色を、最も近い許容されるパレット色として保存する。ループ９６１８が制限されたパレットの１２２の出力色の各々に対して実行された後、ステップ９６２８は、ループ９６１０の現在入力色を、ループ９６１８で計算された最も近い許容されるパレット色に対応させる。
【０２０２】
ループ９６１０が、取り得る入力色の各々に対して実行されると、これらの入力色の各々は、１２２の出力色の１つにマッピングされる。
【０２０３】
図９６に示された特定のカラーマッピング手順では、カラーバランスによって生成される非グレースケールの画素の色値は、もし、ステップ９６０８で選択された１０９の最も頻繁に発生する非グレースケールの色値の内の１つにマッピングされなければ、グレースケールの色値にマッピングされる。これは、一般的に、全てのビットマップをグレースケールのアルファ値で表す伝統的なアンチエイリアスと、少なくとも同程度に良好な結果をもたらす。
【０２０４】
図９７は、図６０及び図９６の方法によって生成される種類のフォント・ビットマップを副画素アドレス可能な画面上に表示することに使用されるアルゴリズム９７００を図示している。
【０２０５】
ループ９７０２は、関数９７０４、ループ９７０６及び９７１４を含むが、表示されるべき各ストリングに対して実行される。
【０２０６】
関数９７０４は、ストリングについての平均的な背景の色値を決定するために、ストリングが描かれるべきビットマップの矩形領域の内の点のセットをサンプルする。他の実施形態では、背景色は、各文字又は各文字の各画素ごとに別々に決定される。しかし、ここで示す実施形態では、背景色は、演算資源を節約するために各ストリングに対して１回だけ決定される。
【０２０７】
ストリングに対する背景色が決定されると、ループ９７０６は、サブループ９７０８及び関数９７１２を、図９６で上述された１２２の全体画素のアルファ値の各々について実行する。
【０２０８】
ループ９７０８は、関数９７１０を３つの副画素色の各々に対して実行する。この関数９７１０は、現在副画素色に対する輝度を、当該副画素色に該当する、現在全体画素のアルファ値の要素の関数として計算する。それは、輝度値を以下の値に設定する。即ち、この副画素のアルファ値と、描画されるべきストリングの前景色における現在副画素の該当する色の輝度との乗算値に、１から現在の副画素のアルファ値を引いた値に、関数９７０４で決定された背景色における現在副画素の該当する色の輝度との乗算値を加えた結果に等しく設定する。
【０２０９】
このループが３つの副画素の各々に対して実行されると、関数９７１２は、ループ９７０６の現在全画素のアルファ値を、ループ９７０８で計算された３つの副画素の輝度から成る全体画素の色値にマッピングする。
【０２１０】
次に、ループ９７１４は、関数９７１６及びループ９７１８を、副画素アドレス可能な表示（装置）上に表示される現在ストリングの文字の各々に対して、実行する。
【０２１１】
関数９７１６は、現在文字に対するフォントビットマップにアクセスする。次に、ループ９７１８は、そのビットマップの各画素に対して関数９７２０及び９７２２を実行する。関数９７２０は、ループ９７０６によって、文字のフォントビットマップでの現在画素に対して示される、現在全体画素のアルファ値にマッピングされている色値を見つける。この色値が見つけられると、関数９７２２は、副画素アドレス可能な表示（装置）における該当する画素を、全体画素の色値に設定する。
【０２１２】
ループ９７１８がストリングの各文字の各画素について実行されると、ストリングは、副画素最適化方法で完全に表示される。
【０２１３】
図９８乃至１０１は、画像及びテキストのスケーリング及び副画素最適化の技術が如何に良く作用するかを図示する。図９８及び１００は、共通のブラウザ・プログラムを使用して、６４０×４８０画素でレイアウト及び表示された２つの異なるウェブページの概要を図示している。図９９及び１０１は、画像及びテキストが、上述した方法で３２０×２４０の表示（装置）上に適合するようにスケーリングされた後に、同じウェブページを図示している。不運なことに、３２０×２４０画素画像は、全体画素の平均的な輝度によって定義されるグレースケール値で印刷されおり、それ故、副画素の解像度によって加えられる実施の明瞭さは、これらの画像には示されていない。
【０２１４】
図１０２乃至１０３は、本発明の一実施形態におけるプロキシサーバと薄型クライアントコンピュータとの間の相互連関を、より詳細に図示している。
【０２１５】
図１０２は、図２において上述した種類のプロキシサーバ２１０及び薄型クライアント２００を含むシステムの大幅に概略化したボックス図である。
【０２１６】
プロキシサーバ２１０は、ブラウザ１０２００を含んでおり、ブラウザ１０２００は、完全なウェブブラウザの標準的な機能を実行するためのプログラム１０２０２を含んでいる。このプログラムは、ブラウザが薄型クライアントのためのプロキシとして動作するので、変更されている。ブラウザが、要求されたウェブページのＨＴＭＬ記述１０２０４をネットワークを介して受け取ると、それは、そのウェブページの２次元レイアウト１０２０６を生成する。
【０２１７】
図１０３は、その表示が図９８及び９９に示されたウェブページのＨＴＭＬ記述の一部を図示している。図１０３に示される数字１０３００は、図９８及び９９に示されたウェブページの左側列に示されたＨＴＭＬにおけるテキスト部分を図示している。数字１０３０２は、同じ列に示された単語”Sections”を表すために使用されるビットマップを同定する画像タグを指している。
【０２１８】
ブラウザコードがウェブページのダウンロードを受け取ると、それは、仮想画面解像度でウェブページのレイアウト１０２０６を作成しようと試みる。仮想画面解像度は、ウェブページの全体又は一部を表示するであろうと考えられるウィンドウのサイズに一致する。ブラウザがウェブページを表示すると考えるこのウィンドウを、仮想画面１０２０８と称する。
【０２１９】
図１０４は、図９８及び９９に示されたウェブページのレイアウト１０２０６を図示しており、それは、黒塗りの矩形部１０２０８内において、仮想画面のそのレイアウトへのマッピングを示している。１０２２０は、実際の画面画像を示している。実際の画面画像は、図１０４に示される仮想画面の所定の位置を与えられ、薄型クライアント上に表示される。
【０２２０】
今日のウェブページの多くは、記述例のシステムにおいて使用された６４０×４８０の仮想画面解像度よりも大きな要素を含んでいる。そのレイアウトは、ウェブページのオブジェクトをレイアウトすることに要求される最小の幅、又は、仮想画面の幅の何れか大きい方を持っている。例えば、今日では、多くのウェブページが、８００画素の最小可能解像度を持つレイアウトであることが一般的である。
【０２２１】
この場合、仮想画面はレイアウトより小さい幅を持つことになる。これは、図１０４に示された例の場合である。図１０２に示されたこのビュー・ウィンドウ１０２１０は、薄型クライアントの画面上に実際に表示されるべき仮想画面の部分を表している。図９９及び１０１に示されたビューでは、ビュー・ウィンドウは仮想画面に等しい。しかし、ユーザが仮想画面の部分上にズームインすると、ズームのスケールファクタ制御１０２１６が変化し、ビュー・ウィンドウは仮想画面のサブセットにマッピングされる。
【０２２２】
スクロール・コントロール１０２１８は、ビュー・ウィンドウをレイアウトに対して相対的に移動させる。ビュー・ウィンドウが仮想画面上にないレイアウトの部分を含むように移動されると、命令がブラウザソフトウェアに送られ、仮想画面をスクロールする。イベント・キュー１０２２０はイベント、即ち、薄型クライアントに受け取られ、ブラウザによる該当するアクションについてプロキシサーバにアップデートされているユーザ入力を蓄積する。薄型クライアントの画面上で発生するイベントは、ビュー・ウィンドウを通じて仮想画面の該当する位置にマッピングされ、その後、ブラウザのイベント・キューに配置される。その結果、ブラウザはこのような入力に対して、あたかも、入力が画面（別名、仮想画面）上の適切な位置で受け取られたように応答し、ブラウザは入力が映像出力装置上に直接入力されていると考える。
【０２２３】
図１０２のブラウザ・プログラム１０２０２は、それが仮想画面上にオブジェクトを描画していると考える度に、ダウンロード表示リスト１０２１２中のスケーリング位置に縮小オブジェクトを生成するように変更される。
【０２２４】
この表示リストは、薄型クライアントにネットワーク１０２２２を介してダウンロードされ、薄型クライアントは、符号１０２１２Ａに示される様に蓄積する。この表示リスト１０２１２によって参照される縮小画像もダウンロードされる。プログラム１０２１８は、薄型表示（装置）上に、ストリング、画像、及び薄型クライアント画面１０２２１上の表示リスト中に含まれる他の要素を配置する。もし、ユーザが薄型クライアント画面上をクリックすると、薄型クライアントのオペレーティングシステム１０２２２は、そのクリック及びその薄型クライアント画面上での位置をイベントキュー１０２２４に配置する。薄型クライアント上で局所的に取り扱われるプログラムに関係しないこのような各イベントは、上述したように、プロキシサーバのイベントキュー１０２２０に更新される。
【０２２５】
図１０５Ａ乃至１１０は、ブラウザ、及び薄型クライアントにプロキシを通じてウェブページをブラウズさせる目的でこれらの間の相互のやり取りを制御するように設計された薄型クライアントコンピュータ上における、プログラム及びデータ構造の大幅に簡略化された擬似コード表記である。
【０２２６】
図１０５Ａ及び１０５Ｂは、薄型クライアントのためにプロキシとして機能することを助けるために使用される、図１０２に示されたブラウザのコードの部分を大幅に簡略化された擬似コード表記で示したものである。
【０２２７】
これらの図で図示された特定の実施形態では、通常の使用のために設計された大きなウェブブラウザは、プロキシとして機能するように修正されている。本発明の他の実施形態において、ブラウザをプロキシとして動作させるのに必要な機能は、より緊密かつ手際良くブラウザのコードに集約され得る。さらに他の実施形態では、オペレーティングシステム又はオペレーティングシステムの呼び出しに割り込む機能におけるコードは、標準的なウェブブラウズ・プログラムに薄型クライアントのプロキシとして動作させることに使用され得る。
【０２２８】
図１０５Ａに示された実施形態では、ブラウザが薄型クライアントからウェブページに対する要求を受け取ると、ステップ１０５０２及び１０５０４がその要求を当該要求のＵＲＬに示されたサーバコンピュータに中継する。
【０２２９】
もし、ブラウザが図１０２に上述された仮想画面１０２０８の描画又は再描画を完了した指示を、ブラウザが自身のコードから受け取ると、関数１０５０６及び１０５１０が、図１０６Ａ及び１０６Ｃに示された画面取込及びダウンロードルーチンを呼び出す。
【０２３０】
図１０６Ａ乃至１０６Ｃは、画面取込及びダウンロードルーチン１０６００の大幅に簡略化された擬似コード表記である。
【０２３１】
このルーチンが、今述べたように、関数１０５１０によって呼び出されると、ステップ１０６０２はブラウザに画面の再描画を依頼し、ブラウザは、全部又は部分的に仮想画面内に適応するウェブページの各要素を描画するルーチンを呼び出す。図１０６Ａ乃至１０６Ｂのルーチンは、これらの描画呼び出しの各々に含まれる情報を記録し、図１０２に示されるダウンロード表示リスト１０２１２を生成するためにこれを使用する。
【０２３２】
ブラウザが図１０６Ａのメジャー・ストリング・ルーチン１０６０６を呼び出したとき、このルーチンは、関数１０６０８乃至１０６１８を実行する。このような呼び出しは、ブラウザによって成され、仮想画面にレイアウトしようとしているテキストのサイズを決定する。図には示されていないが、これらの同じ関数１０６０８及び１０６１０は、たとえ図１０６Ａ乃至１０６Ｂに示された画面取込及びダウンロードのルーチンの実行中であっても、ブラウザがストリング・サイズを測定するために呼び出しを行うときは何時でも実行される。
【０２３３】
関数１０６０８は、単位ストリング呼び出しで特定されたフォントを、異なるフォントファミリー及び異なるフォントサイズを持つフォントにマッピングする。このフォント置き換えは、符号１０６０８乃至１０６１６によって示される３つの考慮によって制御される。
【０２３４】
考慮１０６０８は、メジャー・ストリング・ルーチンに対する呼び出しで要求されたフォントサイズの関数として置き換えフォントのサイズを選択するとともに、スケール・ファクタを選択する。
【０２３５】
スケール・ファクタは、所定のビュー・ウィンドウ及び解像度に該当する仮想画面１０２８の部分の所定の次元に沿った、即ち、ビュー・ウィンドウが薄型クライアント上に表示されるのと同じ次元に沿った解像度である。幾つかの場合には、スケール・ファクタは、水平及び垂直方向に沿って使用される異なるスケール比率を表す異なる要素を持つが、しかし、多くの場合には、スケール・ファクタは、水平及び垂直の両方の解像度に対して使用される単一のスケールファクタである。
【０２３６】
図１０２に示された実施形態では、このスケールファクタは、ズーム／スケールファクタ・コントロール１０２１６に蓄積されている。仮想画面が６４０×４８０の解像度を持つ場合には、ビュー・ウィンドウは仮想画面のサイズに等しく、ビュー・ウィンドウは３２０×２４０画面全体に表示され、スケール・ファクタは２であり、このことは、要素が薄型クライアントの画面上に、ブラウザがそれらを仮想画面上に表示しようとしている１／２の画素解像度で表示されることを意味する。
【０２３７】
考慮１０６１２は、全てのフォントサイズを、考慮１０６１０のみで選択された場合のフォントの平均的な画素サイズよりも狭く高いフォントファミリーで薄型クライアント上に表示したとき小さくなる、全てのフォントサイズを置き換える。６４０×４８０仮想画面を３２０×２４０表示画面に低減する場合には、これは、ビットマップ形式に対して、文字形式で表現されたほとんど又は全てのウェブページを含むことになる。本発明の本実施形態に使用される副画素アドレス可能な表示（装置）は、垂直方向の副画素に対して３倍の水平方向の副画素を持っているために、この置き換えを実行する。この理由で、文字の幅の低減は、文字の高さの低減よりも判読性に与える悪影響が少ない。それ故、比較的容易に判読可能なテキストの最大量をこのような副画素アドレス可能な表示（装置）画面上に表示するためには、この置き換えによって、文字の幅はスケール・ファクタ以上に効果的に縮小させ、文字の高さをスケール・ファクタ未満に効率的に縮小させる。例えば、図５６、５７及び９９、１０１、１６８、１６９、１７２、１７３及び１７４に示された小型画面表示（装置）のフォントは、全て、このような方法でスケーリングされたフォントで置き換えられている。
【０２３８】
これらの図中のフォントは、ｅｍ当たり８画素の画素サイズを持っている。このフォント調整におけるより低解像度の文字のほとんどは、より少ないの４画素列の改善幅内に調整される。４画素列以下の幅は、もし配列が空白を含んでいれば、空白はこのような幅を持つ文字の形状の間に発生する。これらの特別なフォントでは、８０割合以上、ローマン・アルファベットの低解像度の場合の文字は、このような改善幅内に調整される。これらの文字は、４画素行以上のエックスハイトを持つ、この高さは、それらの文字を一般的に幅広よりもかなり高くする。一般的な規則では、このような相対的に狭いフォントは、より幅の広いフォントの場合よりも、大量のテキストを、所定レベルの判読性で所定の領域内に表示することができる。
【０２３９】
符号１０６１４及び１０６１６によって表現される考慮は、最小フォントサイズを制限するためにフラグが送られたか否かをテストする。これは、どのフォントも薄型クライアント表示上に所定のサイズ未満で表示されるべきではないからである。同様に、このフラグは、小さすぎて読めないようなテキストの表示を防止するために送られる。もし、仮想画面サイズ上に実際に表示された場合に、通常、どのようにウェブページテキストが表示されるかの、より正確な縮小表現を、ユーザが見たいと望むときには、それは設定されない。このような要求は、スケール・ファクタが大きい場合に特に起こり易く、テキストサイズにそのような最小値の制限を実行することは、ウェブページのレイアウトの表示を劇的に変えてしまうからである。
【０２４０】
もし、多くの場合そうである様に、システムが最小フォントサイズを制限しようとすると、ステップ１０６１４及び１０６１６は、置き換えフォントが最小画素サイズ未満になるのを防止する。本発明の本実施形態では、この最小画素サイズは、ｅｍ当たり８画素である。本実施形態の開発者は、ｅｍ当たり７画素での副画素表示のためのヒンティング・フォントを開発し、彼らはそのようなフォントが相対的に判読し易いことを認識したが、他のユーザから、そのような小さなフォントが判読し難いというフィードバックを受けている。
【０２４１】
最小フォントサイズでの制限は、しばしば、ウェブページの様々な大きさのフォントが実際に表示される相対的なフォントサイズを実質的に変える。
【０２４２】
本発明の幾つかの実施形態では、全てのウェブテキストは１つのフォントサイズで表示される。これは、実際に、ほとんどのウェブページに対して良好に機能する。なぜならば、ほとんどのウェブページでは、実際に大きなフォントがビットマップで表現されるからである。
【０２４３】
関数１０６０８が、どのフォント・ファミリー及びフォント・サイズが、メジャー・ストリング・ルーチンが呼び出されるフォント幅に置き換えられるべきかを決定すると、関数１０６１８は、置き換えられるフォント及びフォントサイズにおけるストリングの文字のサイズが、その測定の後に、スケール・ファクタによってスケールアップされると仮定して、ルーチンが呼び出されるストリングのストリング測定に戻る。
【０２４４】
この値へ戻ることは、スケーリングされる文字のフォント・メトリックスを使用して、ブラウザのレイアウトエンジンにウェブページを表示させる。これらの文字がスケール・ファクタによって実際に表示され得る画素のサイズに対して行われ、スケール・ファクタは、ビュー・ウィンドウに該当する仮想画面の部分の解像度と、ビュー・ウィンドウが薄型クライアント画面上に表示される実際の解像度との比である。これは、仮想画面が、そのレイアウトの結果として表示される実際のフォント・メトリックスとは異なるフォント・メトリックスを使用してレイアウトされることを意味している。
【０２４５】
画面取込及びダウンロード・ルーチンがストリング描画ルーチン１０６２０に対する呼び出しを受け取ると、このルーチンは関数１０６２１及び１０６０２４を実行する。
【０２４６】
関数１０６２１は、ストリングが描画され始める画面上の位置を、ストリングが完全に表示される薄型クライアント画面上の該当する位置に変換する。この変換は、ビュー・ウィンドウ１０２１０と図１０２に図示された仮想画面との間のマッピングを考慮する。このマッピングは、コントロール１０２１６によって蓄積されている現在のズーム設定と、図１０２に示されたスクロール・コントロール１０２１８によって蓄積された現在のスクロール設定とを両方とも反映している。
【０２４７】
関数１０６２２は、符号１０６０６乃至１０６１８で上述された、メジャー・ストリングルーチンに対する先の呼び出しによるストリングに関連付けられた置き換えフォントファミリー及びサイズと、現在のストリングの表示のために要求された任意の他の属性とが、そのようなフォントの属性に対する現在の値と異なるか否かをテストする。各フォント属性の現在の値は、既にダウンロード・リストに記録されたフォント・コマンドによって定義される各属性に対する最後の値によって決定される。もし、このような違いが発見されれば、関数１０６２３は、現在ストリングの表示に適したものにフォント属性を変更して、フォントコマンドを表示リストの現在の最後に蓄積する。
【０２４８】
関数１０６２４は、ストリング描画ルーチンが呼び出されたところのストリングと、図１０２に図示された、ダウンロード表示リスト１０２１２の最後で、ステップ１０６２２によって計算されたところの変換画面位置とを蓄積する。図１０８において後述するように、これは、ストリングの変換開始位置と文字とを含む表示リスト中にあるストリングコ・マンドを実行することによって実行される。
【０２４９】
もし、画面取込及びダウンロードが矩形描画ルーチン１０６２６に対する呼び出しを受け取ると、このルーチンは関数１０６２８乃至１０６３４を実行する。矩形描画コマンドは、ブラウザに共通に呼び出され、異なる背景色を持つウェブページの領域を生成するとともに、テキストを強調するために使用される水平及び垂直の線や、ウェブページの異なる部分間にある境界を描画する。
【０２５０】
関数１０６２８は、該当する幾何学的値（これによって、該当する矩形が薄型クライアント表示上に描画される）に対する呼び出しに含まれる幾何学的な値を変換する。これは、矩形の開始画面位置と、矩形の幅、高さを含んでいる。
【０２５１】
関数１０６３０は、矩形の色が、表示リストの現在（即ち、最後）の矩形の色と異なるか否かをテストする。もし、異なるのであれば、関数１０６３２は、表示リストの最後に背景色コマンドを加え、現在の背景色を、矩形描画ルーチンの現在の呼び出しで特定された色に変更する。
【０２５２】
次に、関数１０６３４は、矩形と、矩形のの変換画面位置と、幅と、高さとを矩形コマンドとともに、ダウンロード表示リストの最後に蓄積する。
【０２５３】
もし、画面取込及びダウンロードルーチンが、図１０６Ｂに示されたビットマップ・ダウンロード・ルーチン１０６３６に対する呼び出しを受け取ると、このルーチンは関数１０６３６乃至１０６７０を実行する。ビットマップ描画ルーチンは、ブラウザに呼び出されて、映像と、フォントの映像と、バナー広告と、ホットゾーンに対応する画像と、ページのグラフィカルユーザインターフェースのビットマップとを表示する。
【０２５４】
幾つかの実施形態では、ウェブページを表示するために必要とされる帯域幅の量を低減するために、所定のアニメーションのみが取り込まれ、ダウンロード表示リストに記録される。
【０２５５】
図１０６Ａ乃至１６０Ｃにおいて記載された本発明の実施形態では、特定のＧＵＩに対応するビットマップ描画が無視される。なぜならば、薄型クライアントのプログラムは、このようなコントロールに対する副画素最適化及び縮小されたビットマップを蓄積しているからである。
【０２５６】
ステップ１０６３８は、ビットマップ描画ルーチンが呼び出された画像のＵＲＬが既に、ダウンロード表示リストにおいて既に参照された画像の各々を含むダウンロード画像リスト（図示せず）にあるか否かをテストする。もしなければ、要求されたビットマップは、まだ現在のダウンロードに対して生成されておらず、関数１０６４２乃至１０６６２がそれに対して実行される必要がある。
【０２５７】
関数１０６４２は、当該ビットマップがカラービットマップか否かをテストする。もしそうであれば、関数１０６４４乃至１０６５４を実行する。関数１０６４４は、それぞれが２色分布からの１色のみを含む別々の取り扱いを正当化するために十分なサイズの１又は複数の個々の領域に対してカラー画像を走査する。２色スペクトラムは、ＲＧＢカラーキューブにおける線の中にある色のセットに該当する。即ち、赤、緑、青によって定義されるカラーキューブは、３つの主な次元のそれぞれにおいて広がっている。
【０２５８】
個々の処理を正当化するには十分大きい発見された画像の２色部分の夫々に対して、関数１０６４６は、関数１０６４８及び１０６５０を実行する。関数１０６４８は、画像の現在の部分において、図４２乃至５３で上記された種類の２色副画素最適化を実行する。このとき、画像の２色スペクトラムの最も極端な端部を前景及び背景の色として使用し、画像のその部分をスケールダウンする程度を決定する現在のスケール・ファクタを使用する。次の２，３のパラグラフで記載するステップ１０６５４及び１０６５８において実行されるような副画素最適化は、スケール・ファクタによって画像を縮小する。スケール・ファクタは、プロキシサーバの仮想レイアウトにおける画像の解像度と、薄型クライアント画面上に表示される解像度との比率である。
【０２５９】
この副画素最適化が実行された後、関数１０６５０は、前景色が色彩的にアンバランスすぎるか否かを決定する。即ち、純粋な赤、緑又は青に近いか否かである。もし、当てはまれば、このような色の純粋さはカラー画像の空間解像度を表示する精度を低減させる。もし当てはまれば、前景色は、グレースケール値に近く、それ故、より正確な空間解像度をもたらす該当色に置き換えられ得る。
【０２６０】
本発明の幾つかの実施形態では、前景色の置き換えは用いられない。なぜならば、それは、カラー画像の色の量を混乱させるからである。一般的に、そのような前景色の置き換えは、前景色がカラー画像の全体の実質的な部分に渡って現れる場合を除いては、使用しないことが最良である。本発明の他の実施形態では、２色画像に対応する背景色が変更され得る。しかし、ウェブページ上において画像の背景色を変更することは、しばしば勧められることではない。
【０２６１】
現在画像の非２色部分のそれぞれに対して、関数１０６５２は、ステップ１０６５４に、図１４乃至４１に上記した種類の多色副画素最適化を、現在の表示ファクタでビットマップのその部分において実行させる。
【０２６２】
もし、ビットマップ描画ルーチンが呼び出されたビットマップがグレースケールのビットマップであれば、関数１０６５６は、ステップ１０６５８に、ビットマップ上で２色副画素最適化を、現在のスケール・ファクタで、黒及び白を前景及び背景色として使用して実行させる。
【０２６３】
関数１０６６２は、スケールダウン、副画素最適化ビットマップを、独自の画像ＩＤ、そのＵＲＬ、スケーリングされる幅、高さとともに、画像リストの最後に蓄積する。
【０２６４】
ビットマップ描画ルーチンが呼び出された画像が前もって画像リスト中に在ったか否かに関わらず、プログラムが関数１０６６４に進むまでに、当該画像は、リスト中に存在し、ＩＤ番号と、変換される幅及び高さとが割り当てられている。このとき、関数１０６６４は、ビットマップ描画ルーチンが当該画像のために呼び出された画面位置を、薄型クライアントに適用可能な位置に変換し、次に、画像の画像ＩＤ、変換画面位置、変換される幅及び高さをダウンロード表示リストの最後に持ち、図１０８に示された種類の、画像位置コマンドを蓄積する。
【０２６５】
本発明の幾つかの実施形態では、全てのビットマップ画像は、多色副画素最適化ルーチンを使用して、副画素最適化されている。他の実施形態では、グレースケールビットマップのみが任意の２色副画素最適化を受ける。
【０２６６】
本発明の幾つかの実施形態では、ベクトル画像が、ベクトル表現で定義された形状に対して副画素最適化が実行されることによって取り扱われうる。そのような幾つかの実施形態では、副画素最適化はプロキシ上で実行されるが、他の実施形態では、薄型クライアント上で実行される。ベクトル、又は幾何学的に定義された描画の利点の１つは、それらの表現が画像を表す簡潔さにある。それ故、薄型クライアントに対する帯域幅がもともと制限されていたとしても、ベクトル表記をダウンロードし、薄型クライアントに副画素最適化を使用してそれらを表示させることに意味がある。
【０２６７】
幾つかの実施形態では、画像に実行される画像認識が可能であり、認識画像をシンボリック表記で薄型クライアントにダウンロードすることが可能である。例えば、多くのウェブページにおいて大きなテキストをビットマップで表示することは一般的である。光学的文字認識が、ビットマップ、該当する文字及びフォントにおいて実行されるか、又は、当該ページを薄型クライアントに表現するのに必要な帯域幅を低減するために、フォントの近似が記号的にダウンロードされる。
【０２６８】
もし、画面取込及びダウンロードルーチンが、ラジオボタン、チェックボックス、テキストフィールド又はブラウザからのボタンのようなコントロール・オブジェクトを生成するルーチンに対する呼び出しを受け取ると、コントロール生成ルーチン１０６６６（図１０６Ｃに示される）は、コントロールが描画されるべき画面位置を、薄型クライアント画面中に描画されるべき位置に変換する。関数６６６８は、テキストラベルを含むダウンロード表示リスト中のコントロール生成コマンド（図１０８に示された）を実行し、関数１０６７０はコントロール・オブジェクトのブラウザ側の該当部分を生成する。
【０２６９】
本発明の本実施形態では、薄型クライアントの画面に示されたコントロール・コマンドの機能は、プロキシと薄型クライアントとの間で共有されている。状態情報（チェックボックスがチェックされたか否か、どのラジオボタンのセットが押されたか）は、薄型クライアントに蓄積されている。これは、ユーザがコントロール・オブジェクトに情報を入力する度に、薄型クライアントからプロキシに通信する必要性を防止する。一般に、クライアントが情報をサーバに送信するためにプロキシに送ることは、ユーザが、元々当該ウェブページを作成したリモートサーバコンピュータに送信すべきコントロールに対するものとして情報が蓄積されていることを示す種類のボタンをクリックした場合に限られる。
【０２７０】
薄型クライアントへリンクするより高い帯域幅を持つ本発明の他の実施形態においては、プロキシ上で実行される個々のコントロールオブジェクトに対応する機能をより多く又は実質的に全部持つことによって、薄型クライアントのコードを簡略化することが望ましい。
【０２７１】
画面取込及びダウンロード・ルーチンが、図１０６Ａの関数１０６０２によって要求された画面再描画が完了したことを決定すると、図１０６Ｃの関数１０６７２は、関数１０７６４に図１０７に示されたダウンロード表示リスト１０７００を呼び出すようにさせる。
【０２７２】
図１０７に示すように、ダウンロード表示リストは関数１０７０２を含んでいる。関数１０７０２は、新たな薄型クライアント画面上に新たに全部又は一部が表示される、ダウンロード表示リスト中の全ての要素を実行する。通常、これは、現在のビュー・ウィンドウ内で発生するブラウザの仮想画面中の任意の要素を含んでいる。しかしながら、以下で説明するように、薄型クライアント画面上での先のビットマップの重要な部分が再利用できるようなスクロールの場合には、少なくとも部分的に、薄型クライアント画面の現在のビットマップの再利用可能な部分にはないビュー・ウィンドウの部分において発生する要素のみをダウンロードストリーム中に配置する。
【０２７３】
本発明の多くの実施形態では、ダウンロード表示リストを生成する、図１０６Ａ乃至１０６Ｃの関数は、もしその要素がビュー・ウィンドウ内に調整できなければ、ダウンロード表示リスト上に要素を入れない。
【０２７４】
本発明の多くの実施形態では、薄型クライアント内に実際に調整され得る当該要素の部分のみをダウンロードするために、ダウンロードされる要素は低減される。これは、ダウンロードに要するビット数を低減する利点がある一方、演算の複雑化を招く。
【０２７５】
薄型クライアント上に示すべきダウンロードリストの全ての要素がダウンロードストリーム中に配置されると、関数１０７０４は、図１０８の符号１０８１８に示すように、すべの画素のビットマップをダウンロードストリーム中にある該当する画像の位置コマンドとともに、ダウンロードストリームの最後に配置する。本発明の幾つかの実施形態では、ビットマップをダウンロードストリームの最後に配置する前に、非可逆圧縮を施す。幾つかの実施形態では、使用されるアルゴリズムは、画像中の色値をＲＧＢ色値において視覚的に知覚不能な差を持つ色の群に群化させる。このとき、緑の色値の差が赤の色値の差よりもより知覚に敏感であり、赤の色値の差が青の色値の差よりも知覚に敏感であるという事実を考慮したメトリックスを使用する。
【０２７６】
次に、関数１０７０５は、先に非可逆的なアルゴリズムによって圧縮された画像を含むダウンロードストリームを、可逆的な圧縮アルゴリズムを使用して圧縮する。標準的な従来技術の可逆的な圧縮アルゴリズムがこの目的のために使用され得る。
【０２７７】
図１０８は、このようなダウンロード・ストリームの模式的な図示である。幾つかの実施形態では、このようなストリームは実際にはマークアップ言語を使用して表現される。
【０２７８】
図１０８に示されたフォントコマンド１０８１２は、図１０６Ａの関数１０６２３による表示リストに記録されたフォント・コマンドを表している。
【０２７９】
図１０８のストリング・コマンド１０８１４は、図１０６Ａの関数１０６２４によるダウンロード表示リストに記録されたコマンドを表している。
【０２８０】
図１０８の背景色コマンド１０８０６は、図１０６Ａに示された関数１０６３２によって入力された背景色コマンドを表している。
【０２８１】
図１０８の矩形コマンド１０８０８は、図１０６Ａの関数１０６３４によって蓄積された矩形コマンドを表している。
【０２８２】
図１０８に示された画像位置コマンド１０８１０は、図１０６Ｂの関数１０６６４によって記録された画像配置コマンドを示している。
【０２８３】
図１０８のコントロール・コマンド１０８１６は、図１０６Ｃの関数１０６６８によってダウンロード表示リストに配置されたコントロール・コマンドを示している。
【０２８４】
図１０７に戻ると、ダウンロードストリームの全ての要素が選択され、送る準備が完了すると、関数１０７０６は、ブラウザコンピュータと薄型クライアントとの間のソケット接続を開通させる。次に、関数１０７０８は、薄型クライアントに、ダウンロードストリームの表示リスト情報を送る。薄型クライアントは、次に、以下で図１０９Ａ乃至１０９Ｃによって詳細に記載されるように、情報を表示する。
【０２８５】
図１０６Ｃに戻ると、関数１０６７４においてダウンロード表示リストの呼び出しが完了すると、関数１０６７６は表示リストをクリアし、薄型クライアントにダウンロードされるべき新しい表示リストが次の画面のために生成される。
【０２８６】
図１０５Ａに戻ると、ブラウザのプロキシコードが、ブラウザコードの他の部分から、薄型クライアント画面に表示される１又は複数のコントロール・オブジェクトに対するクエリ（問い合わせ）を受け取ると、関数１０５１６は、薄型クライアントに、１又は複数のコントロールオブジェクトの状態に対するクエリを送る。そのような情報が薄型クライアントから受け取られると、それは、そのような情報の要求を成したプログラムに戻される。
【０２８７】
図１０６Ｃの関数１０６６６乃至１０６７０で上記されたように、本発明のこの実施形態は、実際に、個々のコントロールオブジェクト（ラジオボタン、チェックボックス、テキスト入力フィールドのような）についての状態情報を、ウェブページのコントロール・オブジェクトが示されるウェブサイトに提出するために選択するに先だってユーザが情報を変更する場合に、通信帯域幅を低減するために、薄型クライアントに描画及び蓄積させる。ユーザが提出ボタンをクリックするときは共通して、対応するクリックイベントがプロキシーサーバに中継される。プロキシサーバは、仮想画面での対応する座標に変換された画面座標を持っており、クリックイベントは、クリックイベントがあたかも仮想画面（ブラウザがそれを表示しようとしている画面）の解像度を持つ画面上で生成されたかのようにクリックイベントに応答するために、ブラウザコードに対するブラウザのイベントキューに配置される。一旦、これが実行されると、ブラウザコードは、従来のように、現在のウェブページの全てのコントロール・オブジェクトの状態を問い合わせる。ブラウザコードが、現在のウェブページが来たところのウェブサーバにその情報を送るためである。関数１０５１４乃至１０５１８の操作を引き起こすのは、このような要求である。
【０２８８】
もし、ブラウザのプロキシコードがスクロール又は移動コマンドを薄型クライアントから受け取ると、関数１０５２２乃至１０５３４（図１０５Ａ）が実行される。
【０２８９】
関数１０５２２は、スクロール又は移動に応答して、ビュー・ウィンドウ１０２１０（図１０２）をブラウザのレイアウト１０２０６に対して移動させる。次に、関数１０５２６は、移動の前にビュー・ウィンドウ内にあったビュー・ウィンドウのかなりの部分が、移動の後も未だビュー・ウィンドウ内にあるか否かをテストする。もし、そうであれば、現在薄型ブラウザ画面に表示されようとしているビットマップの実質的な部分が、要求されたスクロール又は移動の後の表示においても再利用できることを意味する。この場合、関数１０５２８は、スクロールコマンド１０８０４（図１０８においてダウンロードストリームの最上部近くに図示された）を、スクロール後の画面に対して生成されるべき新しい表示リストの開始位置に置く。そのようなスクロールコマンドはＸＹシフト値を含んでいるが、このシフト値は、薄型クライアントの画面のビットマップのどの部分が再利用できるかを示している。
【０２９０】
図１０８では、クリアコマンド１０８０２及びスクロールコマンド１０８０４が、ダウンロードストリームの開始位置に示されている。本実施形態では、２つのコマンドのうち１つのみ、クリアコマンド又はスクロールコマンドがダウンロードストリームを開始させる。前者は、薄型クライアント画面が全体的に再描画されるときに使用され、後者は、薄型クライアントの先のビットマップの部分が新しい画面での再利用のために移動されるときに使用される。
【０２９１】
先にダウンロード及び描画された画面表示の実質的な部分の再利用は、スクロール・コマンドの使用によって可能になり、位置において比較的小さな変更を含むスクロールにおいて、薄型クライアントにダウンロードされるべきデータ量を実質的に低減することができる。これは、スクロール画面が薄型クライアント上に表示される速さを実質的に向上させる。特に、ブラウザと薄型クライアントとの間に制限された帯域幅しかない状況、例えば、本願の出願時点で一般的に比較的遅いデジタル携帯電話回線の接続で通信されていたような状況では、そうである。
【０２９２】
もし、スクロール又は移動から生じる移動されたビュー・ウィンドウが、仮想画面１０２０６（図１０２に模式的に示されるような）において現在存在しないウェブページのレイアウトの部分を含んでいる場合には、関数１０５３０（図１０５Ａ）は、関数１０５３２及び１０５３４を実行する。関数１０５３２は、ビュー・ウィンドウの全ての部分がその内に含まれるように、ブラウザの仮想画面をスクロールさせ、次に、関数１０５３４が新たに移動された仮想画面に対する再描画をブラウザに要求する。一旦この描画が完了すると、関数１０５０６及び１０５１０は、図１０６Ａ乃至１０６Ｂにおいて上記されたように、新たに描画された要素を取り込み、それらを描画する。
【０２９３】
ブラウザのプロキシがズームコマンドを薄型クライアントから受け取ると、関数１０５３６（図１０５Ａ）は、関数１０５３８乃至１０５５２を実行する。
【０２９４】
関数１０５３８は、ズーム変更に従って、スケール・ファクタを変更する。
【０２９５】
関数１０５４０は、選択されたズームに従って、ビュー・ウィンドウをブラウザの仮想ウィンドウに対してスケーリングする。
【０２９６】
仮想画面のスクロールが新しいビュー・ウィンドウを仮想画面内に適合させることができる場合には、ウェブページを再レイアウトする必要はなく、ズームは、仮想画面中にある異なる場所を示すこと及び／又は仮想画面を異なるスケールファクタで表示させることによって、ズーム前に在った同じレイアウトを表示させることに使用され得る。しかしながら、ズームが、ビュー・ウィンドウが仮想画面サイズよりも大きくなるようなズームアウト（図１０５Ａに示された実施形態）である場合、ビュー・ウィンドウを全体として仮想画面内に適合させる様な新しい仮想画面サイズで、ウェブページがレイアウトされることが要求される。これは、プロキシブラウザが、薄型クライアントのビュー・ウィンドウの任意の部分に供給された任意の入力を、プロキシブラウザの仮想画面上の対応する位置で発生しているかのように扱うためである。述べられている実施形態では、新しい仮想画面解像度が先のレイアウトで使用されたレイアウト解像度よりも大きく、異なる位置において線の破断を招く場合に、ウェブページが新しいレイアウトで表示される。
【０２９７】
本発明の他の実施形態、プロキシサーバがズームをサポートするように修正ではなく設計された実施形態、及びクライアントが全てのレイアウトのダウンロードに対して直接ズームする実施形態では、極端なズームアウトにおいてもウェブページの再レイアウトが必要ない。
【０２９８】
最後に、関数１０５５２は、画面再描画を呼び出す。これは、画面取込及びダウンロードルーチンに、新しいズームスケールファクタでの現在のウィンドウの再描画を取得させ、新しいズーム設定でウェブページを表示させることができる、対応する表示情報を薄型クライアントにダウンロードさせる。
【０２９９】
図１０５Ｂに示されるように、ブラウザのプロキシが薄型クライアントから仮想解像度変更コマンドを受け取ると、関数１０５５４は、関数１０５５６を実行する。関数１０５５６は、ブラウザの仮想解像度を要求された解像度に変更する。次に、ステップ１０５６０は、画面再描画を呼び出す。これは、ブラウザが新しい解像度で現在のウェブページを再レイアウトし、現在のビュー・ウィンドウの全てが、
表示スケール・ファクタ（薄型クライアント上でビュー・ウィンドウが持つ画素数に対する、仮想画面でビュー・ウィンドウが持つ画素数との比）で取り込まれるように再描画するからである。
【０３００】
仮想画面におけるそのような変更は、レイアウト内の画像やテキストのサイズに対して相対的に、レイアウトが実行されるサイズを変更する。ユーザが、サイズにおけるそのような変更を打ち消すような、仮想画面に対するビュー・ウィンドウの相対的なサイズの変更を行う場合を除いては、相対的なレイアウトサイズの変更は、画面上に表示される画像やテキストのサイズを変更する。相対的なビュー・ウィンドウサイズにおけるそのような補償的な変更なしでは、仮想解像度の減少は、画像やテキストがその画面上に表示されるサイズを増大させ、より多くのテキストの線が大きなテキストサイズで一度に画面上に適応するように、テキストの線をフォントのサイズに対して短くするようになる。
【０３０１】
それ故、仮想レイアウトサイズの変更は、ウェブページの表示に対してある種のズーム機能を提供するために使用され得る。
【０３０２】
本発明者は、ファクタ＝２でスケールダウンする場合、即ち、ウェブページを典型的なＰＤＡサイズである３２０×２４０の画面に表示する場合に６４０×４８０の仮想画面を使用することによって、極めて良好な判読性が得られることを発見した。しかしながら、本発明は、ウェブページをさらに高い比率で縮小されたスケールで表示することに使用され得る。例えば、８００×６００の仮想画面解像度をＰＤＡサイズの３２０×２４０画面上に表示する場合であり、この場合には判読性は犠牲にされるが、ウェブページがより大きな解像度の表示ではどのように見えるかをユーザに見せることができる。もちろん、最小フォントサイズが制限されることをユーザが選択している場合（図１０６Ａの関数１０６１４で上記したように）、大きな仮想解像度を持つテキストでさえ、判読可能なフォントで表示される。しかしながら、ページのレイアウトは、フォントサイズの相対的な増大のため、その解像度の表示で意図した元々のレイアウトとは全く異なる。
【０３０３】
図１０５Ｂの関数１０５６２によって示されるように、ブラウザのプロキシコードが、薄型クライアントの画面上でのクリックに対応して、他のユーザの入力を薄型クライアントから受け取ったとき、関数１０５６４は、仮想画面上の対応する位置に対するクリックに対応して、薄型クライアント画面位置を変更する。そして、関数１０５６６は、ユーザが仮想画面（ほとんどのブラウザコードがレイアウトされつつあると考える仮想画面）上を実際にクリックしたかの様にブラウザがイベントに応答できるように、イベントをブラウザのイベントキューに中継する。
【０３０４】
これは、プロキシ上のブラウザが、薄型クライアント上で表示されるウェブページ上でほとんどのリンク（テキストリンク又は画像リンク）を選択するために薄型クライアントのユーザが行う入力に、応答する方法である。例えば、ユーザが、薄型クライアント上に表示されたリンクをクリックすると、対応するクリックがプロキシ上のブラウザに中継される。プロキシは、表示されようとしている仮想画面中の同じリンクを、ユーザがクリックしたかのように動作する。プロキシのブラウザは、次に、リンクに該当するＨＴＴＰ要求をインターネットを介して発行することによって、応答する。リンクに該当するウェブページが受け取られると、ブラウザは、それを仮想画面上にレイアウトし表示させようとする。また、このとき、ブラウザは、図１０５Ａの図１０５０６及び１０５１０によって、ビュー・ウィンドウに対応するレイアウトの部分に含まれる情報を取得させ、その画面上での表示のために薄型クライアントにそれをダウンロードさせる。その結果、薄型クライアントのユーザは、通常のブラウズコンピュータのユーザとほとんど同じ方法で、ウェブをブラウズすることができる。
【０３０５】
図１０９Ａ乃至１０９Ｃは、クライアントコンピュータ上におけるコード１０９００の大幅に簡略化された疑似表記である。このクライアントコンピュータは、その画面を使用してユーザがＷＷＷをブラウズできるように、コードがプロキシブラウザとともに動作しすることを助けるように設計されている。
【０３０６】
関数１０９０２（図１０９Ａ）は、関数１０７０８（図１０７）による薄型クライアントに送られたダウンロードストリームの全部又は初期の部分の受領に応答する。関数１０９０２は、受信された順番でストリームに含まれる、（図１０８で図示された種類の）個々のコマンドに応答を開始することによって応答する。関数１０９０２は、１又は複数のコマンドが受信されると直ぐにこれを実行開始し、新しい画面の描画の作業が、ダウンロードストリームが完全に受信されるまで遅れないようにする。ダウンロードストリームに含まれる各異なる種類のコマンドに対する応答は、図１０９Ａ乃至１０９Ｂで１０９０４乃至１０９５６で番号が付けられた関数によって指示される。
【０３０７】
関数１０９０４及び１０９０６で示された様に、薄型クライアントがダウンロードストリーム中のクリアコマンドを読むと、ビットマップを画面上でクリアされるように表示し、全体的に白の値に設定する。
【０３０８】
薄型クライアントが、ビットストリーム中のスクロールコマンドを読むと、関数１０９０８は、関数１０９１０及び１０９１２を実行する。関数１０９１０は、薄型クライアント画面のビットマップの一部をコピーする。このコピーは、スクロールコマンド中で特定されたスクロールの後に、コマンド中に含まれるＸＹシフト値によって指定された新しい位置に再利用される。そして、関数１０９１２は、画面の残りの部分をクリアする。
【０３０９】
薄型クライアントが、ダウンロードストリーム中の背景色コマンドを読むと、関数１０９１４及び１０９１６は、現在の矩形の背景色値を、コマンドで指定された色に設定する。これは、全ての矩形部分を、矩形コマンドに応答して、背景色値が特定された色値を持つように変更されるまで、薄型クライアントによって描画させる。
【０３１０】
薄型クライアントがダウンロードストリーム中の矩形コマンドを読むと、関数１０９１８及び１０９２０は、コマンド中で特定された画面位置、幅及び高さの矩形を、現在の背景色を使用して描画する。
【０３１１】
薄型クライアントが画像配置コマンドを読むと、関数１０９２２及び１０９２３はそのとき何もしない。ビットマップがこのような画像配置コマンドにおいて参照される画像を描画する必要性は、通常、このときには受信されない。他の実施形態では、ブラウザは、矩形描画コマンドを画像に対応付ける。このコマンドは、ビットマップ画像が表示されるべき場所を指示する画像上に矩形を描画させるために、薄型クライアントの部分を画像に対応付ける。
【０３１２】
薄型クライアントがフォントコマンドを読むと、関数１０９２４及び１０９２６は、フォントコマンドにリストされた全てのフォント属性の値を、コマンド中のこれらの属性に対してリストされた値に設定する。本発明の異なる実施形態では、異なるフォント属性が使用され得る。少くなくとも、フォントファミリ、フォントサイズ及びフォントの前景色が、フォント属性でサポートされることが好ましい。
【０３１３】
薄型クライアントがダウンロードコマンド中のストリングコマンドを読むと、関数１０９２８は関数１０９３０乃至１０９４０を実行する。
【０３１４】
関数１０９３０は、薄型クライアントがフォントビットマップ中に、現在のフォント属性値によって特定される現在のサイズ及びフォントファミリにおける現在のストリングの各文字に対するビットマップを、蓄積しているか否かをテストする。もし、そうでなければ、関数１０９３２乃至１０９３６が実行される。
【０３１５】
関数１０９３２は、図２に上記されたフォントサーバ１２４にクライアントのインターネット接続を介して、ＨＴＴＰ要求を送る。要求されたフォントがフォントサーバから受信されると、関数１０９３４及び１０９３６はそれをクライアントのフォントビットマップ・キャッシュに置く。
【０３１６】
本発明の幾つかの実施形態は、永続的に、クライアント・ブラウザのソフトウェアの部分として、フォントビットマップの十分なセットを蓄積し、関数１０９３０及び１０９３６の使用が必要ないようにする。他の実施形態では、副画素最適化フォント・アウトラインが、薄型クライアントによって永続的に蓄積され、必要なときに要求される（図１０９Ａに記載された例におけるフォントビットマップのように）。
【０３１７】
薄型クライアントが現在のストリングを表示するために必要なフォントビットマップの全てを保持しているとき、関数１０９３８及び１０９４０は、前景色を含む現在のフォント属性値を使用してストリングを、特定された画面位置での画面上に描画する。現在の実施形態では、フォントビットマップは、図６０、９６及び９７に上記された種類のアルファ値ビットマップとして表される。このようにするとき、背景色は、一般的に、ビットマップの部分をストリングが描画されるべき画面上に乗せる。
【０３１８】
幾つかの実施形態では、演算を低減するために、ストリングが描画される画面の部分の色値は、比較的少ない数のポイントでサンプルされ、これらのサンプルされた色値の平均値は、図９７で上記されたように、ストリング全体の表示のために背景色として使用される。
【０３１９】
述べられている実施形態では、ダウンロード中に含まれるストリングの全ては、１本の線テキストストリング（単一ラインテキストストリング）である。これらの多くは、プロキシ・ブラウザのレイアウトエンジンによってラインの境界を跨いだ連続的なテキストの重なりから生じる。結果として、この実施形態では、薄型クライアントはそのようなテキストの重なりを実行する必要がない。
【０３２０】
関数１０９４０は、ビットマップ画像をストリングの文字に対応する別々の複数のフォントビットマップによって構成することにより、ストリングのビットマップ画像を描画する。通常、このような構成では、各異なる別々の文字は、異なる別々のフォントビットマップによって表される。
【０３２１】
異なるフォントサイズ（スケールファクタにおける変更によって生じる、異なるフォントサイズのような）での構成において使用されたフォントは、各フォントサイズでの判読性を向上させるために選択された各文字の形状及び画素配列を持つ。大抵の実施形態では、この改善された判読性は、ビットマップの画素形成によって文字形状の配列を向上させるために、文字の形状及びフォントビットマップに対する位置を選択することによって得られる。そのような形状及び画素配列は、ｅｍ当たり１０画素以下ののフォントビットマップを扱うとき特に重要であり、ｅｍ当たり８画素以下ではさらにより重要である。これは、フォントビットマップが小さくなるにつれて、画素配置が悪化するためにフォントビットマップは読み難くなるからであり、それ故、フォントビットマップがこのような画素形成に適応させるために選択された文字形状及び配列を持つことがより重要になる。
【０３２２】
これらの図におけるフォントは、ｅｍ当たりの画素サイズを持っている。このフォントにおけるより低解像度の文字の大部分は、４画素列以下の改善された幅の内に適応する。４画素列以下の幅は、このような幅を持つ文字の形状の間に発生するスペースがもしあればこれを含む。特定のフォントでは、８０割合以上において、ローマン字の低解像度の場合の文字は、この改善された幅内に適応する。これらの文字は、４画素行以上のエックスハイトを持ち、この高さは、一般的に、文字が広い場合よりもかなり縦長にする。一般的な規則では、このような比較的狭いフォントは、幅広いフォントよりも、所定レベルの判読性で、所定の領域内で大量のテキストを表すことができる。
【０３２３】
本発明の多くの実施形態では、より小さいスケールでのステップ１０９４０によって使用されるフォントビットマップは、画素内で発生するカラー・アンバランスのみが分配される上述された種類の非線形カラー・バランスによって生成された、副画素最適化ビットマップである。このような副画素最適化が、ビットマップの画素形成により適応するように適切に形成及び配列された形状に結びつけられたとき、描画された結果のビットマップは、画素サイズを考慮すると、極めて読み易い。
【０３２４】
図１０９Ｂに戻ると、薄型クライアントがコントロールコマンドをダウンロードストリームから読むと、関数１０９４２は関数１０９４４乃至１０９４８を実行する。
【０３２５】
関数１０９４４は、現在のコントロールコマンド中で特定されるコントロールＩＤに対応するデータ又はプログラム・オブジェクトを既に生成したか否かをテストする。もし、していなければ、関数１０９４６は、コントロールコマンド中で特定された種類のデータ又はプログラム・オブジェクトを生成し、それをコマンドで特定されたコントロールＩＤに対応付ける。
【０３２６】
次に、ステップ１０９４８は、コントロールオブジェクトの特定の種類の副画素最適化ビットマップを、薄型クライアントの画面において、コントロールコマンドにおいて特定された位置に描画する。次に、それは、コントロールに対応したテキストを、コントロールオブジェクトのビットマップ上に副画素最適化フォントを使用して描画する。次に、それは、コントロールビットマップに対応する表示画面上の位置を持つホット・ゾーンを、薄型クライアント上でコントロールを表すデータ又はプログラム・オブジェクトに対応させる。
【０３２７】
薄型クライアントがダウンロードストリームからの画像コマンドを読むとき、関数１０９５０は、関数１０９５２乃至１０９５６を実行する。
【０３２８】
関数１０９５２は、現在の表示ストリームを、現在コマンドと同じ画像ＩＤを持つ全ての画像配置コマンドの発生に対して走査する。各画像配置コマンドに対して、それは、関数１０９５４によって、ビットマップを、薄型クライアントの画面において画像配置コマンドで特定される位置に描画させる。全ての薄型クライアントの描画関数での様に、薄型クライアント画面上に適応しない画像の任意の部分は、描画操作において切り取られる。
【０３２９】
次に、関数１０９５６は、これらの描画されたビットマップと同じ位置で発生する、表示リスト中の他の全てのアイテムを再描画する。これは以下の理由による。即ち、ウェブページがテキストを画像の最上部に置くのは一般的であり、それ故、ビットマップ画像と同じ位置に表示しようとするストリングが、これらの画像が描画された後に再描画されることが望ましい。本発明の一実施形態では、薄型クライアントは、リスト中の最初の画像配置コマンドの後に発生する、ダウンロードストリーム表示リスト中の全ての非画像要素を単に再描画する。
【０３３０】
もし、ユーザが、テキスト入力フィールドに対応するホットゾーン上をクリックすると、関数１０９５８及び１０９６０（図１０９Ｂ）は、関数１０９６２及び１０９６０からなるキーボードルーチンを実行する。
【０３３１】
関数１０９６２は、ポップアップ・ユーザ・キーボード１１１０２とテキスト編集フィールド１１１０４とを、（図１１１に示されたように）薄型クライアントの画面上に表示する。次に、ループ１０９６４が、ユーザがポップアップ・キーボードのエンターキーを押すまで実行される。このループの間、ユーザがテキスト文字をタイプする度に、関数１０９６６は、関数１０９６８に文字の副画素最適化テキストビットマップを、ポップアップ・キーボードのテキスト編集ライン上で現在のカーソル位置に配置させ、カーソルのビットマップを、新たに描画された文字の後に移動させる。次に、関数１０９７０は、タイプされた文字を、ポップアップキーボードのプログラムに対応する一時的なテキスト編集ストリングに加える。
【０３３２】
ユーザがポップアップキーボードのエンターキーを押したとき、関数１０９７２は、関数１０９７４乃至１０９７８を実行する。関数１０９７４は、ポップアップキーボードに対応する一時的なテキストストリングを、ポップアップキーボードを呼び出すテキスト編集コマンドに蓄積する。関数１０９７６は、テキストエディットストリングの文字を、副画素最適化ビットマップを使用して、図１１２に示されるように、薄型クライアント画面上のコントロールオブジェクトのテキスト入力フィールド１１０００のビットマップの中に描画する。
【０３３３】
次に、関数１０９７８は、ポップアップキーボードが描画される前にオンスクリーン表示されたビットマップをキーボード上に描画することによって、薄型クライアントの画面からポップアップキーボードを取り除く。
【０３３４】
図１１３は、ポップアップキーボードルーチンが、テキスト入力フィールドにテキストを入力する以外の目的で使用され得ることを図示している。それは、図１０９Ａ乃至１０９Ｃの擬似コード表記には表されていないが、ポップアップキーボードは、薄型クライアント上に表示され、ユーザが見たいウェブページのＵＲＬを入力することにも使用され得る。
【０３３５】
図１１４は、以下の点を除いて、実質的に図１１３と同じである。異なる点は、図１１４は、ボタンバー、ツールバーをＧＵＩの最上部に持つ本発明の一実施形態を図示していることである。このボタンバーは、左端において、一般的にウェブブラウザで見られる種類のバック及びフォワード・ボタンを含んでいる。それは、また、リフレッシュボタン、ブックマークボタン、ヒストリーボタンに対応するＲ，Ｂ，Ｈと付されたボタンを持っており、これらの機能も一般にウェブブラウザで見られる。このボタンバーは、また、ＵＲＬのテキスト入力フィールドを含んでおり、もし、これが押されると、図１１４に示すポップアップウィンドウが現れる。本発明の一実施形態では、ユーザは、ハードウェアのボタンを押すことによってツールバーを表示させるか否かを選択することができる。この実施形態では、このようなツールバーが示されていなくても、ユーザは、バックコマンドやフォーワードコマンドのようなウェブブラウズにより共通な機能を呼び出すことができる。
【０３３６】
本発明の他の実施形態では、このようなＧＵＩのツールバーは、ユーザがブラウザの他の機能（ズームの変更及び／又はウェブページの表示の相対的なレイアウトサイズを含む）にアクセスできるようなボタン又はメニューも含むことが好ましい。
【０３３７】
図１０９Ｂに戻ると、ユーザが、ボタン又はメニュー項目・コントロールのホットゾーンをクリックすると、関数１０９８０は関数１０９８１及び１０９８２を実行する。
【０３３８】
関数１０９８１は、ボタン又はメニュー項目の出現を適切に変更する。ボタンの場合、ボタンに対応するビットマップがボタンが押されたことを示すように再描画される。メニュー項目の場合、最終的な選択がなされたか否かに基づいて、サブメニューが表示されることもあるし、メニュー項目が取り除かれることもある。
【０３３９】
メニュー項目の場合において最終的な選択が成されたか、ボタンが押されて離された場合、関数１０９８２は、ボタンの又はメニュー項目のコントロールＩＤとブラウザに対して選択されたという指示とを送る。それは、ブラウザ上で該当するボタン又はメニュー項目のコントロールオブジェクトがあたかも押されたように動作することによって、応答される。
【０３４０】
もし、ユーザが、薄型クライアントコントロールの他の種類に対応するホットゾーン上をクリックすると、関数１０９８３は、順次、薄型クライアントの表示（装置）上にあるコントロールのビットマップの出現を変更する。例えば、チェックボックスの場合、チェックは表示されることもあるし、画面上のコントロールの表示から取り除かれることもある。次に、ステップ１０９８５は、コントロールオブジェクトに対応して該当する状態の変更を蓄積する。上述したように、本実施形態では、通信の要求を低減するために、ブラウザがそのような情報を要求するまでは、コントロールオブジェクトの状態はブラウザと通信されない。
【０３４１】
もし、ユーザが、クライアントプログラム又はコンピュータのコントロールインターフェースに対応しない、クライアントの画面の他の部分上をクリックした場合、関数１０９８６及び／又は１０９８７は、それが発生した画面位置に従って、プロキシブラウザに、そのクリックに対応するイベントを送る。関数１０５６２乃至１０５５６（図１０５Ｂ）において上記されたように、ブラウザは、クリックの位置を仮想画面上の対応する位置に変換し、仮想画面の解像度でそのクリックが描画されているとブラウザが認識するような画面上でクリックが発生したかのように、そのクリックに応答する。幾つかの実施形態では、通信の必要性をさらに低減するために、そのような他のクリックがプロキシブラウザが応答するべきユーザ入力に該当すると考える根拠を薄型クライアントが持つ場合にのみ、薄型クライアントは他のクリックをブラウザに報告する。
【０３４２】
図１０９Ｃに戻ると、薄型クライアントが、プロキシサーバから、１又は複数のコントロールオブジェクトの状態を尋ねる問い合わせを受信した場合、関数１０９８８は、関数１０９８９に薄型クライアント上の対応するコントロールの状態を問い合わせさせ、関数１０９０９は、状態の情報をブラウザに送信する。図１０５Ａの関数１０５１８で上記されたように、プロキシブラウザは、次に、要求された情報を、あたかも、その情報が仮想画面に対応するコントロールオブジェクトの現在の状態の一部であるかのように、それを要求したブラウザの部分に返す。
【０３４３】
薄型クライアントのユーザが、画面をスクロールするコマンドを入力すると、関数１０９９１及び１０９９２は、そのスクロールコマンドをプロキシにアップロードする。これによって、図１０５Ａで上記された関数１０５２０乃至１０５３４は、新しいスクロール位置で現在のウェブページを表示するための新しいダウンロードストリームを生成及びダウンロードする。
【０３４４】
ユーザが、薄型クライアント上に表示された画像のズーム（即ち、スケール）を変更するコマンドを入力すると、関数１０９９３及び１０９９４は、対応するズームコマンドをプロキシにアップロードする。これによって、関数１０５３６及び／又は１０５５２（図１０５Ａで上記）は、新しいズーム設定での現在のウェブページの表示のために、新しいダウンロードストリームが薄型クライアントにダウンロードされる様にさせる。
【０３４５】
もし、ユーザが、薄型クライアントの表示の仮想解像度を変更するコマンド（プロキシブラウザ上の仮想画面がレイアウトされる解像度を変更する）を入力すると、関数１０９９５及び１０９９６は、選択された解像度をプロキシにアップロードする。これによって、関数１０５５４乃至１０５６０（図１０５Ｂで上記）は、仮想画面を新しい解像度で再レイアウトさせ、対応するダウンロードストリームを薄型クライアントに送り、ダウンロードストリームが、薄型クライアント上の現在のズーム設定でのウィンドウに対応する仮想画面の部分を表示する。
【０３４６】
図１０９Ｃの下部に示されたように、薄型クライアントのＧＵＩに対応する他のコマンドをユーザが入力した場合、関数１０９９７は、楕円１０９９９によって示された適切な応答が実行されるようにする。そのような他の機能は、ブックマークの選択、ブックマークされたウェブページへのアクセス、バック及びフォワード機能、ＧＵＩの一部となり得る他の任意の機能を含む。このような要求は、物理的なボタン又は薄型クライアント上での他の物理的な入力によって、ボタン、メニュー項目又はダイアログボックス、又は仮想的な任意の他の公知のＧＵＩ技術のような、グラフィカルオブジェクトの選択によって選択される。
【０３４７】
図１１５乃至１１８は、薄型クライアントにプロキシ・サーバを通じてウェブをブラウズできるようにする他の方法に関している。この実施形態では、プロキシ・コンピュータによって生成されたウェブページの全体的なレイアウトは、図１１７に示したように、薄型クライアントにダウンロード及びキャッシュされる。後述するように、これによって、薄型クライアントは、実質的により速いスピードでレイアウト内をスクロールできるようになる。但し、見られる各ウェブページに対する全てのレイアウト及び画像をダウンロードしようとするものであるので、ダウンロードされる全体のビット数は増加する。
【０３４８】
図１１５は、その様なページ・レイアウト・キャッシュ手順で使用されるプロキシ・ブラウザ・コード１１５００の一部を図示している。
【０３４９】
本発明のこの実施形態では、プロキシ・ブラウザは薄型クライアントからウェブページに対する要求を受け取った場合、関数１１１５０２は関数１１５０４を実行する。
【０３５０】
図１５の関数１１５０２に対応する疑似コードによって示されるように、この特別なウェブキャッシング実施形態では、薄型クライアントは、ウェブページを、そのページに対する所望のビュー設定（所望の仮想画面解像度、ズーム設定及びビュー・ウィンドウの位置を含む）で要求することができる。これによって、ユーザは、特定のＵＲＬ、ＵＲＬのパス名の部分を含むブックマークに、ビュー設定を対応させることができるようになり、また、ユーザは、ページが要求される度に設定値を別々に入力することなしに、所望の仮想画面解像度、ズーム設定及びビュー・ウィンドウの位置で自動的にウェブページを見ることができるようになる。例えば、ユーザは、良くアクセスするウェブページを、所望サイズのテキストを使用してそのページの所望の部分に自動的にズームインされた表示で、見ることができるようになる。
【０３５１】
一旦、ウェブページに対する要求が薄型クライアントから受信されると、プロキシ上の関数１１５０４は、薄型クライアントからの要求のＵＲＬにおいて同定されたサーバからのウェブページを要求する。ウェブページがサーバから受信されたとき、関数１１５０６は、関数１１５０７乃至１１５１６を実行する。
【０３５２】
関数１１５０７は、プロキシ上のブラウザのレイアウトエンジンに、受信したウェブページを、ウェブページの要求において特定されたビュー設定に対応する仮想画面解像度で、レイアウトさせる。このレイアウトは、図１０６Ａの関数１０６０６乃至１０６１８に関して上記されたと同様の方法で、置き換えられるフォントに対するスケーリングストリング測定を使用して実行される。スケールファクタは、現在のページへの要求において特定されたビュー設定によって決定される。
【０３５３】
関数１１５０８は、現在の要求のビュー設定に含まれるビュー・ウィンドウを含む結果のレイアウトに対して、仮想画面位置を特定する。それ故、例えば、ビュー設定が６４０×４８０の仮想画面解像度出力の右端部分を見ることを要求し、レイアウトが８００画素の幅をもつことが必要である場合、仮想画面位置は、レイアウトのだいたい画素列１６０から画素列８００までに渡って延長される。
【０３５４】
関数１１５１８は、関数１１５２０に、レイアウトされているウェブページに関連して受信した各画像１１７０２を、図１１７に示されるように、スケーリング及び副画素最適化する。
【０３５５】
一旦、ウェブページで参照された画像の全てが、受信され、スケーリングされ、副画素最適化されると、関数１１５２２は、関数１１５２３に、そのレイアウトに対する表示リストを生成させ、その表示リスト及び関連する副画素最適化、スケールダウン画像を圧縮する。次に、関数１１５２４は、その圧縮されたデータを、スケールダウン、副画素最適化画像に従うウェブページレイアウトを含むダウンロードストリームにおいて、薄型クライアントに送信する。
【０３５６】
もし、ユーザが、異なるスケールで先にダウンロードされた１又は複数の画像を再スケーリングする要求を薄型クライアントから受け取ると、関数１１５２６乃至１１５３２は、その画像を再スケーリング、副画素最適化、圧縮し、薄型クライアントにダウンロードする。これによって、ユーザは、ダウンロードされたウェブページのレイアウトを異なるズーム設定で見たいと思う場合には、異なる副画素最適化サイズでそのウェブページを見ることができる。
【０３５７】
もし、画面入力のイベントが薄型クライアントから受信されると、関数１１５３４は、関数１１５３６乃至１１５４２を実行する。
【０３５８】
関数１１５３６は、コマンドに対応するページレイアウトの座標が、図１１７に示されたように、現在プロキシブラウザの仮想画面１０２０８にマッピングされているウェブページのレイアウト１０２０６の部分１０２０６Ａに一致するか否かをテストする。もし、そうでなければ、関数１１５３８は、仮想画面を、そのコマンドに対応するレイアウト座標を含むレイアウトの新しい部分１０２０６Ｂにスクロールする。
【０３５９】
関数１１５４０は、受信された画面イベントのページレイアウト座標に対応する仮想画面座標を計算する。関数１１５４２は、入力画面イベントを、ブラウザのイベントキューにおける仮想画面座標で実行し、ユーザが仮想画面上の対応する仮想画面座標をクリックしたかのように、リンクのクリックのようなイベントに応答する。
【０３６０】
図１１６は、図１１５及び１１７で図示されたページレイアウトのキャッシュ模式図をサポートすることに使用される薄型クライアントコードの部分の、大幅に簡略化された擬似コード表記である。
【０３６１】
もし、薄型クライアントが、ページレイアウトの表示リストを含むダウンロードストリームを受信し始めると、関数１１６０２は、関数１１６０４及び１１６０６を実行する。
【０３６２】
関数１１６０４は、ビュー・ウィンドウ（図１１７に示されたビュー・ウィンドウ１０２１０Ａのような）のマッピングをページレイアウトに対して設定すると、次に、そのマッピングに基づいて、現在のスケール・ファクタを計算する。
【０３６３】
関数１１６２０は、現在のビュー・ウィンドウ内に当たるダウンロードされたページレイアウトの任意の部分を、現在のスケールファクタを使用して表示する。このプロセスは、関数１１６２２乃至１１６３０を含んでいる。
【０３６４】
関数１１６２２は、現在のビュー・ウィンドウ内で発生する各ストリング要素を、現在のスケールファクタの関数であるフォントサイズで表示する。それが実行されると、必要であれば、各要素は、文字が表示される画素サイズが変わるときに、フォント・ヒンティングの不規則な影響から生じうる、文字の相対的なサイズにおける不適切な変更に対して調整が行われる。これは、不連続性及び非比例性を補償する技術、例えば、コンピュータ画面上でのテキストの表示と、より高解像度で印刷されたときに現れる表示との間でのウィジウィグ（ＷＹＳＩＷＹＧ）一致を提供する従来の技術に類似する文字間のスペースの変更のようなものである。もし、先に表示されたものとは異なるサイズをもつビットマップが要求された場合、異なるサイズの文字に対するビットマップは、薄型クライアント上の蓄積手段からアクセスされることもできるし、ネットワークフォントサーバからもアクセスされるこもできるし、フォント・アウトラインから必要とされるサイズにラスタ化されることもできる。
【０３６５】
もし、関数１１６２０によって生成された表示がビットマップ画像１０８１８がスケールダウンされたスケールファクタとは異なるスケールファクタである場合、関数１１６２４は、関数１１６２６乃至１１６３０を実行する。これらは、プロキシに、ビュー・ウィンドウ内に全体的又は部分的に在る全ての画像を、新しいスケールファクタで再スケールし、副画素最適化するように要求する。その後、同じ画像のビットマップは、薄型クライアント上に蓄積された先にスケールダウン及び副画素最適化された画像１０８１８からローカルに再スケーリングされ、その画像に対する一時的な表示を提供するために薄型クライアント画面上に表示される。ウェブページに関連するオリジナルのより高解像度のビットマップから再スケールされた要求画像が、プロキシサーバから薄型クライアントに受信されたとき、それらは、表示画面上の適切な場所に表示される。
【０３６６】
幾つかの実施形態では、ユーザが表示のズームを変更すると、新しいスケールファクタでの画面上のページの部分に対応する画像のビットマップは、副画素最適化された画像を完全にダウンロードするまで、ユーザに一時的な画像の表示を提供するために、素早いが粗い薄型クライアント上で生成された画像で表示される。素早い表示は、スケールファクタが先にダウンロードされたビットマップのスケールファクタの整数倍である場合には、比較的生成し易い。このような場合以外は、一時的な表示は、多くの方法のうちの任意の方法で生成され得る。例えば、正確なスケールよりも小さい整数倍の比率に切り捨て又はスケーリングした整数倍の比率を持つ画像として表示する。これにより、一時的な画像が、一時的な画像上に描画しようとしている完全にスケーリングされた画像よりも広くならないようにする。
【０３６７】
もし、ユーザがプロキシ・ブラウザに送られる画面入力を生成する場合、関数１１６３２乃至１１６３６は、入力の薄型クライアント画面座標を、対応するページレイアウト座標に変換する。その後、画面入力と、対応するページレイアウト座標は、プロキシ・ブラウザにアップロードされる。プロキシブラウザは、次に、図１１５で上記された関数１１５３４乃至１１５４２を使用して、入力に応答する。これによって、ユーザがプロキシブラウザの仮想画面上のウェブページの対応する部分をクリックしたかのように、プロキシブラウザは画面入力に応答する。
【０３６８】
図１１５乃至１１７で上記した様な、薄型クライアントのユーザに現在画面上に表示されいるウェブページの部分よりも多くの部分を蓄積可能にさせるキャッシングの手順は、ユーザが、ウェブページのコンテンツに対してスクロール及び／又はズームをより素早くできる様にする。薄型クライアントがプロキシサーバに対して比較的狭い帯域幅しか持たない場合は、特にそうである。
【０３６９】
今述べたところの手順をキャッシュする実施形態は、本出願時に一般的に利用可能であった一般の携帯電話回線と同等の帯域幅においてさえ、比較的良好に機能する。これは、ほとんどのウェブページに含まれる全てのコンテンツ（画像を除く）は、通常、３，０００ｂｙｔｅ以下になるように圧縮され得るからである。それ故、このような一般のデジタル携帯電話回線の通信速度で、ほとんどのウェブページの全てのテキスト部分は数秒内にダウンロードされ、テキストの最初の部分はさらに短い時間で描画される。もちろん、画像のダウンロードにはより長い時間を要するかもしれないが、ウェブページの最初にある画像は、大きいものを除いて、一般的に数秒内に表示される。そして、より高速の通信接続では、この表示は劇的に短くなる。
【０３７０】
図１１８乃至１２０は、仮想的にウェブブラウズする環境において使用される本発明の特徴を図示したものであり、これは、特に、小型画面上でウェブをブラウズするときに有効である。これは、上で議論した薄型クライアントコンピュータのような小型画面装置上での使用を含んでいる。本発明のこれらの特徴は、ウェブページの選択された部分へのズームイン又はズームアウトを含んでいるので、今述べたような種類のレイアウトキャッシュ手順の使用によって、薄型クライアントコンピュータ上で素早く動作できるように構成される。
【０３７１】
図１１８は、６４０×４８０の仮想解像度でレイアウトされた後、３２０×２４０の画面上での表示のためにダウンスケール及び副画素最適化された、標準的なウェブページを示している。このようなコンテンツは、ほとんどの人がハンドヘルドコンピュータを一般的に使用する距離で、良好な視力を持った人によって、判読可能である。しかしながら、ほとんどのウェブページのコンテンツは、より大きいサイズで表示された場合には、さらに読み易い。ほとんどのウェブページが複数の列でレイアウトされているので、しばしば、ユーザが読み始める列の最上部に表示を素早くズームできるようにすることが好ましい。図１１９及び１２０で示されたインターフェースでは、ユーザは、所望のテキスト列に渡ってズームされたビューにおける表示画面の最上部に近くで、ユーザが表示させたい垂直方向の位置に、ポインティングデバイス１１９０２をドラッグすることによって、これを行うことができる。表示がこの種のズームを実行するモードである場合、図１１９の種類の水平方向への線形ドラッグは、その表示に、ドラッグで指示されたウェブページのレイアウトの幅を、画面の幅に適応するようにスケーリングする。図１１９で示された例では、このユーザ入力は、この表示が図１２０のようにズームされるようにする。
【０３７２】
ユーザインターフェースは、また、画面上に示されたウェブページのレイアウトにおける領域の周囲の選択ボックスをユーザがドラッグできるようにし、ウェブページの選択された領域が画面に適応するように、システムがウェブページの表示をズームすることが好ましい。
【０３７３】
また、以下のことが好ましい。即ち、このようなドラッグにおいて、ユーザは、画面の各端部に対応する境界を横切ってポインティングデバイスをドラッグし、これが実行されると、これに応答して、画面上で示されたウェブページの部分がスクロールし、、ドラッグの開始時には、大きすぎるか適切な位置にないために全体的に画面に適応しないウェブページレイアウトの内に、幅、高さ又は領域を適応させるようにズームの実行を、ユーザが選択できるすることが好ましい。このドラッグが、ドラッグ中に表示されるスケールファクタで画面上に適応するには大きすぎるレイアウトの部分を選択すると、テキスト及び画像が表示されるサイズを低減するようにスケールファクタを変更する。
【０３７４】
選択された幅、高さ、領域が画面に適応するようにスケーリングされるとは、画面の２／３と全体に対応する次元との間の最も大きな次元の範囲にスケーリングされることである。通常、このようなスケーリングは、画面の８０〜９０割合から全体に対応する次元の範囲にある最も大きな次元を持つ選択された長さ又は領域を生成することが望ましい。
【０３７５】
図１２１乃至図１２８は、ズームクリックと呼ばれる本発明の特徴を図示している。この特徴では、低解像度で見られる画面、極めて小さな画面、又は画面上の所望の位置に対して正確に配置することが容易でないポインティングデバイスが使用されている画面内で、ユーザがより容易かつ正確にアイテムを選択できる。特に、携帯電話サイズの画面、指をポインティングデバイスとして使用するタッチ画面デバイス、及びポインティングデバイスを正確に置くことが困難である移動中の車のような環境における使用されるタッチ画面デバイスを取り扱う場合に有効である。
【０３７６】
ズームクリックでは、ユーザが画面中の所定の位置をクリックダウンすると、クリックした画面部分が拡大スケールで表示される。ユーザは、その後、所望の位置にポインティングデバイスを押さえるまで、自由にこの拡大表示中をポインティングデバイスで操作することができる。この時点で、ユーザは、ポインティングデバイスの押さえを終了し、解除することができる。これにより、解除の時点での現位置を、従来のＧＵＩのクリックと同じ目的で選択された位置として取り扱う。
【０３７７】
ズームクリックでは、ダブルクリックは、異なるように表現され得る。最も簡単なものは、ズームクリックに引き続いて直ぐの、素早い２番目のクリック及び解除を単に記録し、ズームクリックと同じ場所近くにおいてズームクリックをダブルクリックに変換する。
【０３７８】
ズームクリックの他の実施形態では、ズームクリックは異なるように操作されるが、好ましい実施形態では、ズームクリックにおけるダウンクリックの間の拡大表示中でのポインターの移動が、通常のポインタのナビゲーションと同じ割合で発生することが好ましい。このことは、ユーザが、他の場合の約２倍のポインティング解像度を持つことを意味する。また、ズームクリックモードにおいて確認するダウンクリックにおいてポインタが移動する間に、ユーザが画面の端に到達すると、ユーザがこのモードでページ全体をナビゲートできるように画像がスクロールする。
【０３７９】
図１２１乃至１２８の例では、二枚貝型の携帯電話機／コンピュータ１２０Ｃが示されている。この例では、携帯電話機は、３２０×２４０全体画素解像度をもち、カラー副画素アドレス可能である。もちろん、本発明の他の実施形態では、他の解像度が使用され得る。使用し易くするために、携帯電話機は、ユーザの指で操作される接触感度画面を持つと仮定する。
【０３８０】
図１２１は、図１１及び図１１０に示すpriceline.comのウェブページの同じ画像を持つ携帯電話機を示している。
【０３８１】
図１２２は、ユーザが、ズームクリックモードにおいて、上記図１１０で議論したのと同じテキスト入力フィールド１１０００を選択するために、画面上に指１２１０２で押したときに、何が起こるかを示している。通常、タッチスクリーンに指を接触させるとき、カーソルが置かれる正確な位置を前もって評価することは困難である。ズームクリックがこれに対する助けとなる。なぜなら、ズームクリックによって、ユーザは、何かの選択をする前に、タッチスクリーンに指を接触させることによって生じるカーソル１７０の位置を確認できるようになるからである。また、ズームクリックは、大きなビュースケールで画面を示すので、ユーザは、図１２３に示された所望のテキスト入力フィールド１１０００のような、所望のリンク又はコントロールにカーソル１２２０４を配置するのが容易になる。一旦、ユーザが図１２４に示すようにタッチスクリーンから指を離すと、上記で議論した図１１１において現れたとちょうど同じように、ポップアップキーボード１１１０２が現れる。
【０３８２】
図１２５に示すように、ズームクリックモードで、ユーザが、ポップアップキーボード１１１０２において所望の文字（ここでは“ｂ”）を触ろうとすると、触られたキーボードの部分の画像がそのスケールを大きくする。図１２５に示された例では、タッチスクリーンへの最初の押下時には、カーソル１２２０４を所望の位置に正確に配置できていない。ユーザは、ズームクリックモードにおいて、指１２２０２をドラッグさせてカーソル１１１０２を図１２６に示された位置に配置することによって、この問題を容易に修正することができる。その後、ユーザがスクリーンから指を離すと、画面の画像は通常のスケールに戻り、ポップアップキーボード１１０２全体が示されて、次の文字がキーボード内のどこに在っても、次の文字を素早く選択できるようになる。
【０３８３】
図１２７に示すように、図１２６で選択された文字“ｂ”は、ポップアップキーボードのテキスト入力フィールド１１１０４において入力された様に表示される。
【０３８４】
ユーザが、図１２５乃至１２７に示された処理によって文字の選択を継続すると、ユーザは、エンターキーを選択してテキストの全ストリングを入力できるようになり、図１２８に示したように所望のテキストがウェブページの所望の位置に入力される。
【０３８５】
本発明の多くの実施形態では、ズームクリックで使用されるズームは、画面の全部又は一部上に先に示されたビットマップを整数倍（例えば２ｘ又は３ｘ、２倍又は３倍）で拡大することを含む。これによって、このようなズーミングは、比較的低処理能力のプロセッサによっても、実質的に瞬間的に実行される。
【０３８６】
図１２９乃至１３７は、ウェブページのユーザが、実質的により大きなスケールファクタでラインの境界を越えてリフロー又は再レイアウトされるように、テキストの部分をウェブページから選択することができる。このよなテキストのリフローは、小さな画面を持つ表示上で特に有用である。なぜならば、テキストのリフローによって、選択されたウェブテキストが、かなり大きなフォントで表示され、同時に、テキストの全ラインが画面内に適合するようにできるからである。これによって、連続するラインを読むために水平方向にスクロールで戻したり進めたりする必要がなく、素早く読むことができる。
【０３８７】
小型画面表示の解像度が如何に高いかに関わらず、表示が比較的接近している場合、人間の目は比較的大きな解像度で表示するもののみを見ることができる。本発明のこの特徴によって、比較的大きなスケールファクタで表示の幅の内に適合するラインを跨いで重なるように、ウェブテキストが表示される。例えば、対角線長さ４インチのスクリーンを持つハンドヘルドコンピュータのユーザは、５，６フィート離れて立っている人のグループに見えるように充分な大きさのスケールでテキストを表示することができる。同様に、それにって、ユーザは、携帯電話や腕時計型表示（装置）を顔の近くに持たなくても、これらにテキストを表示させることができる。また、それは、通常のコンピュータの表示の画面において、比較的画面から遠い人又は視覚の弱い人に対してウェブテキストを表示する、ことに使用され得る。
【０３８８】
図１２９は、プログラム１２９００の大幅に簡略化された疑似コード表記を示しており、プログラム１２９００は、本発明のこの特徴に従って、クライアントコンピュータにウェブテキストを表示することに使用され得る。
【０３８９】
本発明のこの特徴がクライアントコンピュータ上での使用に制限されないことに留意しなければならない。事実、本発明のこの特徴の変形は、図１４０乃至１４１で後述する種類のシステムにおけるように、ウェブブラウザ以外のアプリケーションによって生成されたビジュアル出力を見ることに使用され得る。
【０３９０】
多くのウェブページは、そのレイアウトを異なる列に、即ちレイアウトに対して水平方向の異なる位置において持つ様に設計されている。ウェブページはテーブルやフレームの使用を含む複数の異なる方法において、そのような異なる水平方向の置き換えを指示する。この方法のシステムは、異なる所望の水平方向の置き換えの指示を反映する複数列レイアウトにおいて、ウェブページテキストを表示可能な手段と共に使用される、ことが好ましい。
【０３９１】
ユーザが、新しいスケールファクタで１つの列におけるテキストリフローのために、ウェブページレイアウトの領域を選択すると、関数１２９０２は、関数１２９０４乃至１２９０８を実行させる。ウェブページのコンテンツが比較的通常の方法で表示されている場合には、そのような選択が成される。
【０３９２】
本発明の幾つかの実施形態では、そのような選択はポインティングデバイスをドラッグすることによって成される。ポインティングは、ユーザが表示画面またはウィンドウの幅を横切ってより大きなスケールでリフローしようとしているウェブページの幅の部分を横切る、図１３０に示すようなスタイラス１１９００２のようなものである。これは、現在議論している方法では、選択されたテキストの列がより大きなフォントで表示でき、同時にテキストの全ラインを画面内に適応させ、テキストをラインの境界を跨いでリフローできる点を除いて、上記図１１９で議論したのと同様である。
【０３９３】
図１２９の関数１２９０４は、選択されたレイアウトの領域内に実質在る現在のウェブページのレイアウトにおいて、全てのストリングと、対応するアンダーライン（例えば、リンクとしてのテキストのラベリング）を選択する。
【０３９４】
図１３１は、図１３０に示したウェブページのレイアウト１０２０６Ａの最上部の部分（図１１７の下半分に示されたものと同様の部分）を図示している。図１３１では、破線で表された矩形１３１０２は、図１３０でユーザによって選択された列に対応するウェブページのレイアウトの部分を表している。
【０３９５】
本発明の幾つかの実施形態では、実質的な部分、例えば、その長さの２／３又は３／４がユーザによって選択された領域内に適合する場合にのみ、ストリングが選択された領域内にあると考える。例えば、図１３０では、図において表示された画面の右側部分で、テキストを選択しようとしている。しかしながら、図１３０の例では、ユーザは、スタイラスのドラッグによって、意図した列の幅を正確に選択できていない。それにも関わらず、関数１２９０４は、選択された領域内に実質的にある全てのストリングを選択するので、あたかもユーザが、意図した列を正確に選択したかのように、テキストリフローが実行される。
【０３９６】
図１３２は、選択された領域内に在る、図１３１に示されたウェブページのレイアウトにおけるストリングの初期部分を図示している。この図では、アンダーラインは、リンクに対応するテキストの部分を示している。
【０３９７】
一旦、選択された領域のストリングの全てが選択されると、関数１２９０６は、１又は複数の連続するストリング（レイアウトにおける接近性又は他の特質によって同じパラグラフの一部であることを示しているもの）の任意のグループをラベルする。これは、図１３２において、パラグラフ・ブラケット１３２０２によって示されている。
【０３９８】
図１３２で示した様に、この方法は、パラグラフであるフォントの全グルーピングを検知しなくても良いが、そのテキストに対応するＨＴＭＬを参照する必要なしにそれらの多くを検知する。現在述べられている本発明の実施形態では、ＨＴＭＬはプロキシサーバに蓄積されている。これは、そのようなアクセスがクライアントコンピュータとプロキシサーバ間の通信に伴うディレイを必要とすることを意味している。他の実施形態では、特に、クライアントコンピュータがフルブラウザレジデントを持った実施形態、又はクライアントがプロキシサーバに対して高いアクセス帯域幅を持った実施形態では、ＨＴＭＬコードへのアクセスは、選択されたストリングがパラグラフにおいてどのようにグループ化されるべきであるかをより正確に決定するために使用され得る。他の実施形態では、プロキシサーバにダウンロードされたレイアウトの情報は、ウェブページのＨＴＭＬ内に含まれるパラグラフの境界についての何らかの情報を含み得る。
【０３９９】
一旦、選択されたストリングがパラグラフにグループ化されると、関数１２９０８は、表示画面（その画像が表示画面全体よりも小さい領域に表示されている場合には、表示ウィンドウ）の幅に渡って拡大された選択されたスケールファクタを使用して、各パラグラフのテキストをリフローする。
【０４００】
このテキストリフロー処理は、図１３３に図示されており、図１３２の最上部におけるストリングは新しいスケールファクタでレイアウトされている。示されている例では、図１３０のテキストは、同じ画面内において元のサイズの２倍でリフローされている。好ましくは、薄型クライアントクライアントのユーザインターフェースによって、ユーザが、選択テキストリフロー関数での使用のための複数の異なるスケールファクタ（フォントサイズの緩やかな増大から極端な増大までの範囲）を選択できるようにする。
【０４０１】
図１３３において、アンダーラインは、図１３２のアンダーラインとは異なるものを表している。図１３３では、図１３２で共通するレイアウトから生じる各ライン上のテキストは連続するアンダーラインで示されている。図１３２における異なるストリングから生じる図１３３における同じライン上のテキストの部分の間のアンダーラインの間隔は、それらの違いが判読性良く見える様に誇張されている。図１３３では、ラインの境界を横切って重ねられている図１３２に示す元のレイアウトから生じる個々のストリングの全ては、１つのライン上の部分から引き続く次のライン上の部分までの矢印によって示されている。
【０４０２】
図１３４は、図１３０及び１３１で示された元のレイアウトの選択されたストリングがどのようにして、それらのストリングがクライアントの画面上で約２倍のサイズでリフローされている様に見えるかを模式的に図示している。図１３４を参照して分かる様に、そのようなテキストリフローは、ウェブテキストを遠くから格段に見易くする。２倍の代わりに４倍又は６倍で同じテキストをリフローすることによって、表示画面から極めて遠方に居るユーザに同じウェブページのコンテンツを示すことができる。
【０４０３】
図１３５乃至１３７は、リフローされるテキストの部分をユーザが選択できる他の方法を図示している。
【０４０４】
図１３５は、他のテキストの１又は複数の部分を押し込んだテキストの中央の列を持つウェブページの部分を図示している。
【０４０５】
図１３６は、ウェブページ全体のレイアウトのズームアウトビューをユーザが如何に取得するかを図示している。多くの現実の実施例では、個々の文字としてはズームアウトビューで表示するには小さすぎるテキストの部分を示すために、テキスト・グリーキングを使用することもある。このようなズームアウトビューは、図１１５乃至１１７に上述したもの（ウェブページ全体のレイアウトが薄型クライアント自体に蓄積されているもの）の様な薄型クライアントコンピュータ上で、素早く生成され得る。
【０４０６】
図１３６では、多角形状の領域においてカーソルでウェブページの表示をクリックすることによって、ズームアウトウェブページ上にある多角形状の領域を決定できるモードを、ユーザが選択する。一旦、これが実行されると、選択された領域は、どのテキストがリフローされるべきかを選択するために、図１２９に示された関数１２９０４によって使用される。
【０４０７】
図１３７は、選択されたテキストがどのようにリフロー及び表示される様に現れるかを図示している。
【０４０８】
図１３８乃至１３９は、図２において上述したフォントサーバ２３０のより詳細な説明である。
【０４０９】
図１３８は、以下の点を除いて図２に対応する。異なる点は、図１３８では、複数のクライアント・ブラウザがあり、各クライアント・ブラウザは、同じプロキシサーバ２１０を介して１又は複数のサーバ２２０からコンテンツにアクセスし、同じフォントサーバ２３０からフォントにアクセスする。
【０４１０】
これは、各薄型クライアント・ブラウザでの使用のために販売、ライセンス、又は頒布されたソフトウェアは、クライアントが持っていないフォントを同じフォントサーバ２３０から探す様に、及び、同じプロキシサーバ２１０を通じてウェブ要求を実行する様に、プログラムされているからである。もちろん、本発明の本特徴の他の実施形態では、薄型クライアントクライアントは、それらの地理的な配置のような要因、又はインターネットサービスプロバイダに基づいて、共通の複数のプロキシサーバのどれを選択するかをプログラムされている。同様な考察が、薄型クライアントクライアントによって、フォントを要求及び取得するべき共通の複数のフォントサーバを選択することにも用いられる。
【０４１１】
図１３９は、図１３８で図示された種類のフォントサーバ上で使用され得るプログラム１３９００の大幅に簡略化された擬似コード表記である。このフォントサーバもまた、通常のブラウザコンピュータに加えて、ウェブブラウザ以外のアプリケーションを実行するコンピュータによって使用され得る。
【０４１２】
フォントサーバが、特定のフォントの文字を要求するためのＨＴＴＰ要求をコンピュータから受信すると、関数１３９０４乃至１３９２２が実行される。
【０４１３】
図１３９に示されたフォントサーバコードの特定の実施形態は、別個のＨＴＴＰ要求による特定のサイズでの特定のフォントを要求する各文字を特定するプロトコルでの使用のために設計されている。それは、所望のフォント、フォントサイズ、及び文字を、ＵＲＬのパス名の一部として特定する。もちろん、他の実施形態では、フォントサーバは、ＨＴＴＰ要求が１又は複数のフォントを特定できる様にし、ＵＲＬパス名以外でフォントを特定する様にしても良い。
【０４１４】
各文字・フォントの形状を別々に要求するシステムでは、ＨＴＴＰプロトコル１．１又は複数が使用されることが好ましい。なぜならば、ＨＴＴＰプロトコル１．１以上によれば、各要求を処理するために別個の接続を開いて閉じる必要なしに、所定のクライアントコンピュータからの複数のＨＴＴＰ要求が、サーバによって扱うことができるからである。
【０４１５】
図１３９に示した本発明の実施形態では、フォントサーバが、現在、要求中で特定されたＵＲＬパス名に一致するフォントビットマップを蓄積していると決定すると、関数１３９０４は、関数１３９０６を実行し、ＵＲＬ要求が来たネットワークアドレスに対して、ＨＴＴＰ応答中でそのフォントを送り、その後、関数１３９０８が取引に伴う料金を課金する。このようにダウンロードされるフォントは、フォントビットマップでもフォント・アウトライン記述でも良い。
【０４１６】
料金の課金は、本発明のすべての実施形態において使用される訳ではない。料金課金が使用される実施形態の幾つかでは、課金される料金は、フォントが送られたコンピュータ宛である。他の実施形態では、課金は、フォントの詳細を含むウェブページに関係する者の口座宛である。さらに他の実施形態では、課金は、上述した種類のプロキシサーバに関係する口座宛のものであるか、又はプロキシサーバのサービスのユーザ宛のものである。
【０４１７】
要求されたフォントがフォントサーバの蓄積になく、要求されたフォントがビットマップであり、対応するアウトライン・フォントをフォントサーバが持っている様なビットマップである場合には、関数１３９１０は関数１３９１２乃至１３９２２を実行する。
【０４１８】
関数１３９１２は、ＨＴＴＰ要求のフォントパス名によって示されたサイズ及び可能な変換の様な、特性を持ったビットマップを生成する。この関数は、要求されたフォントのパス名が、フォントの副画素最適化バージョンが要求されていることを示しているか否か、を決定することを含む。もし、要求されていれば、関数１３９１４及び１３９１６は、好ましくは、図５５乃至９６で上述された非線形カラー・バランス法を使用して、フォントの副画素最適化バージョンを生成する。
【０４１９】
一旦、フォントビットマップが生成されると、関数１３９１８は、ネットワークを介して、要求されたアドレスへのＨＴＴＰ応答においてビットマップを送る。関数１３９２０は、要求中で特定されたパス名に一致するアドレスでフォントビットマップをキャッシュする。関数１３９２２は、課金が実行される実施形態において、関数１３９１０に関して上述した様に、取引に伴う料金を課金する。
【０４２０】
図１４０は、本発明のある特徴が、リモートコンピュータ１４００上で実行されている１又は複数のアプリケーションによる画面出力として生成されたテキスト及び画像に対応するデジタル・コンテンツを、薄型クライアント２００が表示できる様にすることに使用され得ることを図示している。このようなアプリケーションは、ウェブブラウザ、表計算ソフトウェア、ワードプロセッサ、データベースプログラム、又は実質的には、画面表示を生成できる種類のソフトウェアであればその他のソフトウェアであっても良い。
【０４２１】
リモートコンピュータは、リモート画面生成プログラム１４００６（リモートコンピュータのオペレーティングシステム１４００４のディスパッチ・テーブル１４００８におけるフックを含む）を含む。これらのフックは、所定の表示解像度で画面にテキスト、形状、ライン、コントロールオブジェクト及びビットマップのものを描画するために、オペレーティングシステムに対して、アプリケーション１４００２内の１又は複数によって成されるコールを傍受する。幾つかの実施形態では、このような描画コマンドは、リモートコンピュータの画面上にコンテンツが実際に表示される様にする。他の実施形態では、リモートコンピュータには画面がなく、描画コマンドが仮想画面に対して成される。以下のテキストでは、簡略化の目的で、グラフィック出力を表示しつつ、仮想画面としての所定のクライアントコンピュータ上でユーザ入力を受け付けていると、これらのアプリケーションが考えるようなビデオスペースについて言及する。
【０４２２】
アプリケーション１４００２の１つがオペレーティングシステムに表示要素を描画する様に要求すると、そのコール（要求）がオペレーティングシステムのディスパッチ・テーブルに在るフックの１つによって傍受され、リモート画面生成器の対応するルーチン１４０１０への対応するコールを生成する。図１０２、及び１０６Ａ乃至１０６Ｃで上述したと同様の方法で、図１０２及びそれに続く図で上述された表示リスト１０２１２と実質的に同一のダウンロード表示リスト１０２１２Ａを生成させる。図１０２で示されたコントロール１０２１４乃至１０２１８に対応するズーム、スクロール及び仮想レイアウトコントロール１４１２は、薄型クライアントのビューから仮想画面へのマッピングを制御し、それ故、アプリケーションによって仮想画面へ描画される要素のスケール・ファクタは、ダウンロード表示リスト１０２１２Ａ中に記載及び配置される。好ましくは、これは、画像ビットマップの副画素最適化と、図１０６Ａ乃至１０６Ｃで上記された種類のフォント置換とを含むことが好ましい。
【０４２３】
一旦、ダウンロード表示リストが所定の仮想画面に対して生成されると、ダウンロード表示リストは圧縮され、対応する薄型クライアントコンピュータにダウンロードされ、そして、薄型クライアントコンピュータが、図１０９Ａ乃至１０９で上述された方法で画面上にそれを描画する。
【０４２４】
本発明の幾つかの実施形態では、仮想画面への個々の描画は、薄型クライアントにダウンロードされた対応する描画コマンドを持っている。これは、薄型クライアント画面への小さな変更が仮想画面に対する対応する変更に応答して成され得る速度を速くするために用いられ得る。
【０４２５】
図１４０に示された実施形態では、ユーザは、画面位置に対してのユーザ入力が、薄型クライアントからリモートコンピュータにアップロードされ、画面位置は、薄型クライアントのビュー・ウィンドウと仮想画面との間のマッピングを反映するために変換された画面座標を持っている。一旦、これが実行されると、このイベントは、リモートコンピュータのオペレーティングシステムのキューに変換画面座標と共に置かれる。これによって、関連するアプリケーション１４００２は、あたかも、ユーザ入力がリモートコンピュータの対応する仮想画面上に入力されたかの様に、それらのイベントに応答する。
【０４２６】
ＬａｐＬｉｎｋ又はｐｃＡｎｙｗｈｅｒｅの様な、画面共有アプリケーションによって使用される技術の多くは、図１４０に示された種類の、本発明の実施形態と共に使用され得る。実際、その図におけるリモートコンピュータが自身の画面を持っている場合、図１４０に示された実施形態は、クライアントコンピュータとリモートコンピュータとの間での画面共有を実行するために使用され得る。
【０４２７】
クライアントコンピュータが合理的な量の演算能力を持っている実施形態では、クライアント及びリモートコンピュータはピアツーピアの方法で動作することが好ましい。リモートコンピュータは、専用のアプリケーションサーバであっても良いし、パーソナルコンピュータ（デスクトップコンピュータ、ラップトップコンピュータ、又はタブレットコンピュータを含む）の様な他の如何なる種類コンピュータであっても良い。
【０４２８】
図１４１は、図１４０に示されものと幾分同様の、１又は複数のアプリケーション１４００２によって生成されたオペレーティングシステムのコールを傍受し、本発明の一実施形態を図示している。そこでは、上述した本発明の特徴に従って、アプリケーションで生成された画面表示がスケールダウン及び／又は副画素最適化される様に、コンピュータのオペレーティングシステム１４００４のディスパッチ・テーブル１４００８でフックを用いている。図１４０に示されたクライアントサーバの実施形態では、図１４１に示された１つのコンピュータシステム１４１００上で動作するように設計されている点が異なる。
【０４２９】
この実施形態では、アプリケーションが、オペレーティングシステムに画面に要素を描画させるコールを実行すると、ＯＳディスパッチテーブル１４００８に置かれたフックによって、スケーリング副画素最適化画面生成プログラム１４００６Ａのプログラム１４０１０内の対応する描画ルーチンを起動させる。この置き換え描画ルーチンは、仮想画面表示リスト１０２０６Ｂに、対応する要素を描画する。それはまた、ビュー・ウィンドウ１０２１０内に適合する仮想画面の部分に描画された画面要素の任意の部分を、オペレーティングシステム中の描画コマンドを呼び出して、又は自身の画面に直接描画することによって、コンピュータ１４１００の表示画面１０２２０Ａ上に即座に表示させる様にする。
【０４３０】
アプリケーションプログラムが測定（メジャー）ストリングコマンドのためにオペレーティングシステムを呼び出すと、そのコマンドは同様に傍受され、その呼び出しが、図１０６Ａの関数１０６０８乃至１０６１８で上述した方法でフォントサイズのフォント・メトリックスを返す。
【０４３１】
コンピュータの画面への画面イベント入力は、オペレーティングシステムのイベントキューから取り出され、イベント位置計測手段に送られる。イベント位置計測手段は、イベントが画面上で生成される画面座標を、表示リストによって表現された仮想画面レイアウトにおいて対応する位置に変換する。その変換には、変換を制御するために、ビュー・ウィンドウの仮想画面へのマッピングを使用する。一旦、イベントの座標が適切に変換されると、イベントはオペレーティングシステムのイベントキューに戻され、オペレーティングシステムは、あたかも仮想画面に入力されたかの様にイベントに応答する。
【０４３２】
図１４１に示された種類の、本発明の一実施形態によれば、コンピュータのユーザは、標準的なコンピュータアプリケーションで生成された画面上において、たとえ、コンピュータがこのような機能をサポートする様に設計されていなくても、テキストを副画素最適化、スケールダウン及び／又はリフローすることができる。
【０４３３】
示されていない本発明の他の実施形態では、コンピュータのオペレーティングシステムが、図１４１に示されたスケールダウン副画素最適化画面生成手段１４００６Ａに示された種類の機能を含む様に変形可能である。さらに本発明の他の実施形態では、ブラウザ・プログラムを含むアプリケーション・プログラム１４００２は、そのような機能の全部又は多くを直接サポートする様に変形可能である。
【０４３４】
図１４２は、薄型クライアントコンピュータ（その図に示された薄型クライアントコンピュータ２００Ａ乃至２００Ｄ）がワイヤレスネットワークを介してインターネットコンテンツ又はアプリケーションプログラムにアクセスするために使用され得る様にするために、図１０２乃至１４０に示された本発明の実施形態がどの様に使用され得るのかを図示している。
【０４３５】
この図では、コンピュータ２００Ａ乃至２００Ｄ図１０２乃至１４０に示された薄型クライアントコンピュータ２００に対応する。コンピュータ２００Ａはハンドヘルドコンピュータである。薄型クライアントコンピュータ２００Ｂは、携帯電話機である。薄型クライアントコンピュータ２００Ｃは、腕時計コンピュータである。薄型クライアントコンピュータ２００Ｄは、頭部装着コンピュータ、又は携帯コンピュータ用の頭部装着ディスプレイである。これらの薄型クライアントコンピュータの夫々は、副画素アドレス可能なディスプレイを持っている。
【０４３６】
本出願の出願時には、本発明のほとんどの特徴によって使用されるのに充分高い解像度を持つ、これらの種類の装置の夫々のためのスクリーンを製造することが可能であった。例えば、現在、２インチ以下の対角長を持つ３２０×２４０カラーＬＣＤを製造可能である。有機ＬＥＤ装置は、現在より高い解像度でさえ製造され得る。近い将来、このような小型画面のコストはダウンする一方、有益性及び解像度は増大するはずである。
【０４３７】
図１４２に示された薄型クライアントの全ては、図１０２で示した種類のリモート・プロキシ・サーバコンピュータ２１０又は図１４０で示した種類のリモート・アプリケーション・サーバ１４０００において上述した種類の情報を送信又は受信可能にするワイヤレストランシーバを持っている。このトランシーバは、ワイヤレスＬＡＮトランシーバ１４２０４との通信用のワイヤレスＬＡＮトランシーバ、ワイヤレスインターネットトランシーバ１４２０２との通信用のデジタルセルラーワイヤレストランシーバ、又は好ましくは、両方の種類のワイヤレストランシーバと通信する様に設計されているトランシーバであり得る。他の実施形態では、Ｂｌｕｅｔｏｏｔｈ又は赤外線通信の様な他の種類の通信が使用され得る。
【０４３８】
図１４２に示されたリモート・コンピュータ１４，０００ＡＡ乃至１４，０００ＡＣは、図１４０に示されたリモート・サーバ・コンピュータ１４，０００に対応する。
【０４３９】
図１４２に示されたリモートアプリケーションサーバコンピュータ１４０００ＡＡは、ラップトップコンピュータ、デスクトップコンピュータ、サーバ、又はリモートアプリケーションサーバコンピュータ１４０００として動作する様にプログラムされ得る他の種類のコンピュータを表現している。副画素最適化アプリケーション１４０００ＡＢは、図１４０に図示された種類のリモートコンピュータであり、クライアントに繋がるＬＡＮ又はＷＡＮに接続された複数の薄型クライアント用のアプリケーションを実行する様に設計されている。リモートコンピュータ１４０００ＡＡ及び１４０００ＡＢは、プライベート・ローカルエリア・ワイヤレス送信機１４２００４を介して薄型クライアントと通信可能、又は符号１０２２２及び１４２０２によって示された様にワイヤレスインターネットを介して薄型クライアントと通信可能である。
【０４４０】
図１４２では、図１０２で上述された種類のプロキシサーバ２１０は、ＬＡＮ又はＷＡＮ１４２０４に接続されて示されている。これは、例えば、会社がインターネットに非接続することを希望するウェブブラウズを取り扱うことを目的としたプロキシサーバであり得る。商業的なプロキシ提供サービスを提供する会社によって運営されているものの様な他のプロキシサーバは、通常、図１４２でも示されたインターネット１０２２２に直接、接続されるであろうことを理解すべきである。
【０４４１】
図１４２に図示されたシステムによれば、実質的に常時便利に持ち運べる小型コンピュータは、ウェブページ及び大抵のアプリケーションプログラムの出力にアクセスし、表示することができる。本出願の出願時においては、図１４２に示すＬＡＮトランシーバ１４２０４の様な比較的高価格ではない無線ＬＡＮトランシーバの帯域幅は、ケーブルモデムに接続されたデスクコンピュータ上でデジタル・コンテンツを見るのと同様の速さで、図１４２に示す種類の薄型クライアントがウェブコンテンツ又はアプリケーションプログラムの出力を見ることができるために充分高速であった。そして、ポケット、手首上、又は眼鏡の一部の様に実行され、スイッチオン後数秒以内に情報媒体にアクセス可能な装置上で装置上にある。
【０４４２】
本出願時にアメリカで共通に利用可能であったデジタル携帯の帯域幅では、大抵のウェブページの全テキストをダウンロードするには数秒必要であり、ウェブページの画像をダウンロードするにはより長くかかっていた。もちろん、本発明の多くの実施形態は、ユーザがダウンロードされたページの一部を非常に素早く見始めることを開始出来る様に、一部が受信されると直ぐにテキストを表示し始める。
【０４４３】
本出願時には、新しく、より高速のデジタル携帯電話システムが開発されており、これらのシステムは、数十万又は数百万ビット／秒の範囲の帯域幅を提供可能であった。一旦、そのような、より高速のシステムが一般に展開されると、本発明のユーザは、ＤＳＬ又はケーブルモデムを介してデスクトップコンピュータ又はラップトップコンピュータ上でアクセスしているかの様に、移動先の大抵の場所でスイッチオンから数秒以内に使用され得る小型の携帯装置上で、ウェブページやアプリケーション画面を読んで相互に対話出来る様になる。
【０４４４】
図１４３乃至１４４は、図１０２で上述された種類のプロキシサーバ又は図１４０で上述されたリモートアプリケーションサーバ用の薄型クライアントとしての機能可能な、ハンドヘルドコンピュータ２００Ａの２つのビューを示している。
【０４４５】
図１４３では、コンピュータは、使用のために設計されている縦向きで図示されている。コンピュータの本来のオペレーティングシステムは、このポートレイト方向（縦向き、短辺行方向）でフォント及びグラフィカル・ユーザ・インターフェースの要素を描画する様に設計されている。これは、本出願時に販売されていた多くのハンドヘルドコンピュータが設計及び組み立てられていた方式である。例えば、全体画素の解像度で２４０×３２０であり、かつ副画素アドレス可能な多くのハンドヘルドコンピュータが市場に在る。また、これらのコンピュータの多くは、表示画面が意図された縦向きに置かれた時に、水平方向に走る副画素ストライプを持っている。
【０４４６】
不運なことに、このようなポートレイトの向きは、ほとんどの人がコンピュータの使用に慣れており、かつほとんどのウェブページが設計されているランドスケープ方向（横向き、長辺行方向）の縦横比のタイプを提供しない。更に言えば、その様なコンピュータが水平方向の副画素ストライプを持つ状況では、水平方向の副画素ストライプが、垂直方向での副画素解像度に潜在的な増大の全てを与えてしまう。不運なことに、テキストの表示は、垂直方向での増大からの寄与よりも、水平方向解像度における増大からの寄与の方が実質的に大きい傾向にある。
【０４４７】
これらの全ての理由のために、縦向きの装置を使用する本発明の多くの実施形態は、縦向きの装置を図１４４に示す様に９０°回転させたときに使用する様に設計されており、それ故、大抵のコンピュータのレイアウトのアスペクト比により類似するポートレイトのアスペクト比を持ち、その結果、副画素がテキストを表示するために最も有用な水平方向の解像度が高まる。
【０４４８】
図１４５は、本実施形態の幾つかの特徴が如何にして、副画素最適化を用いて矩形、楕円、線及び曲線の様な基本の形状を描画する要求に応えるために使用されるかについての、大幅に簡略化された擬似コード表記である。そのような機能は、多くの種類のアプリケーション、オペレーティングシステム及び薄型クライアントソフトウェアで使用され得る。
【０４４９】
図１４５の例では、擬似コード表記は、矩形描画関数１４５００を参照しており、関数１４５０００は、他の用途とともに、図１０９で上述された矩形コマンド１０９１８の実行に使用される。そのルーチンは、副画素アドレス可能な画面（そこで表示される）の全画素での解像度よりも高い解像度で位置、幅及び／又は高さが定義された矩形を描画する呼び出しによって、起動される。応答として、関数１４５０２は、より高い解像度、即ち副画素解像度で定義された矩形の画像を表現するために、副画素最適化ルーチンを使用する。実質的にどのような副画素最適化手順を用いてもこれは実行され得るが、白黒矩形の場合には、上述した２色最適化手順が最高の視認可能な空間解像度を提供する。
【０４５０】
図１４６は、サーバ及び／又はプロキシサーバ上で動作するコード１４６０２、及びサーバからダウンロードされたアプレットが副画素最適化画面要素をクライアントの画面上に描画可能な様に、薄型クライアントコンピュータを含むクライアントコンピュータ上で実行されるコード１４６０４の大幅に簡略化された擬似コード表記１４６００である。
【０４５１】
この様な実施形態では、クライアントの関数１４６０６はサーバから情報媒体を要求する。サーバは、情報媒体又はデータ（クライアントコンピュータ上で動作する１又は複数のアプレットプログラム）をダウンロードすることによって、関数１４６０８において応答する。関数１４６１０では、クライアントコンピュータは、アプレットを含む情報媒体を受信し、関数１４６１２はアプレットをロード及び実行する。関数１４６１４では、クライアントコンピュータ上の副画素アドレス可能な画面に副画素最適化された要素を描画する。アプレットは、副画素最適化された要素を、副画素最適化されたビットマップをコピー又は生成することにより、副画素最適化されたフォントでテキストを表示することにより、又は、ベクトル定義されたグラフィックまたは線、矩形及び楕円の様な比較的単純な幾何学形状の形状の様な、副画素最適化された形状を描画することにより、描画可能である。
【０４５２】
図１４７及び１４８は、副画素最適化がロールオーバ画像及びＧＩＦＦアニメーション夫々に如何に適用されるかを図示している。
【０４５３】
図１４７における副画素最適化ルーチン１４７００では、非ロールオーバ画像１４７０２（ポインティングデバイスが画像に伴う画面の部分を超えて検知されないときに表示される画像）と、ロールオーバ画像１４７０４（ポインティングデバイスが画面の部分を超えて検知された場合に表示される画像）は、両方とも、関数１４７０６によってダウンスケール及び副画素最適化される。これによって、スケーリング・副画素最適化非ロールオーバ画像１４７０８及びスケーリング・副画素最適化ロールオーバ画像１４７１０とが生成される。次に、関数１４７１２は、ポインタが画面で検出されるか否かに基づいて、これらの２つの副画素最適化画像の何れを表示させるかを選択することに使用される。これによって、２つの副画素最適化画像を、結合した“ロールオーバー”グラフィック“として機能させる。
【０４５４】
本発明のこの特徴の他の実施形態では、同様の技術が、ボタンで連携する２つの画像（ボタンが押下されてないときに表示される画像と、ボタンが押下されているときに表示される画像）に適用され得る。
【０４５５】
図１４８の方法１４８００は、図１４７で上述されたものに類似している。それは、ＧＩＦＦアニメーションの別個の画像１４８０２乃至１４８９０６の夫々を取得し、関数１４８０２において副画素最適化され、スケールダウンされ、副画素副画素最適化されたＧＩＦＦアニメーション画像の対応するセットを生成する。次に、関数１４８１６は、副画素最適化されていないギフトアニメーションが表示される方法と実質的に同じ方法で、副画素最適化された画像を表示する。
【０４５６】
図１４７及び１４８で述べた副画素最適化は、上述された本発明の他の特徴（薄型クライアント上での表示を含む、副画素アドレス可能な画面上でのウェブページのアクセスを含む）にも使用され得る。
【０４５７】
図１４９は、副画素最適化３−Ｄアニメーションの方法１４９００を示している。この方法は、アニメーションの各連続するフレームに対して、関数１４９０４乃至１４９０８のセットを実行することを含む。
【０４５８】
関数１４９０４は、現在のフレーム又は少なくとも最後のフレーム以来変更された画像の当該部分のビットマップを作成する３−Ｄアニメーションエンジンを実行する。この関数は、ビットマップの副画素最適化バージョンが表示されるべき全体画素の解像度よりも高い解像度で、ビットマップを生成する。
【０４５９】
関数１４９０６は、次に、上述された様な技術を使用し、フレームビットマップ又は少なくとも最終フレーム以来のフレームビットマップ中で成された変更を、スケールダウン及び副画素最適化する。
【０４６０】
次に、関数１４９０８は、フレームビットマップ、又は少なくともフレームの変更された部分の、スケールダウン及び副画素最適化された画像を、副画素アドレス可能な画面上で表示する。
【０４６１】
図１４９に示された方法は、ゲームを実行可能にしたり、副画素最適化によって可能となったより高い解像度でのゲームによって生成された画像を視認出来る様にすることに有用である。それは、小型画面ハンドヘルド装置上でのにおける目的に使用され得る。それは、リモートコンピュータ上で生成されたアニメーション画像を表示するクライアントコンピュータ、及びローカルにアニメーション画像を生成するコンピュータの両方に使用され得る。
【０４６２】
図１５０及び１５１は、図１４９の方法がクライアントサーバのゲームアプリケーションで使用され得る一方法を図示している。
【０４６３】
図１５０は、実施形態においてゲームサーバコンピュータ上でのプログラム１５００を図示している。数字１５００２及び１５００４で示された様に、ゲームサーバは、１又は複数のクライアントコンピュータからユーザ入力を受信すると、入力をゲームエンジンに送る。もし、入力が画面入力であれば、ユーザの画面の解像度と、ゲームエンジンが画面入力に連携する空間との差を補償するために入力は適切にスケーリングされる。
【０４６４】
関数１５００６では、ゲームエンジンのコンピュータは、現在のフレーム、又は先の表示リストへの現在フレームに関連する変更に対する表示リストを演算する。次に、関数１５００８は、３−Ｄ表示プログラムに、現在フレームに対して生成された表示リストに対応するフレームビットマップを表示させ、現在フレームのビットマップに要求される変更を表示する。そのビットマップは、関数１５１０によって生成される副画素最適化画像の解像度よりも高い解像度で生成される。
【０４６５】
もし、クライアントが異なるクライアントに対して異なる画面を生成するならば、関数１５００８はこれらの別個のビューの夫々に対して別個に実行される。
【０４６６】
次に、関数１５０１０は、現在フレームのビットマップ、又はフレームに対する現在の変更のビットマップをスケールダウン及び副画素最適化する。関数がその変更のビットマップのみをスケールダウンするときもまた、これらの変更に伴う画面位置を同時にスケールダウンする。
【０４６７】
次に、関数１５０１２は、副画素最適化ビットマップ、もし適切であればそれらの位置もスケールダウンし、関数１５０１４は、圧縮、スケーリング、及び副画素最適化された画像と、クライアントへの表示のための位置とをダウンロードする。
【０４６８】
図１５１は、図１５０のプログラムでの使用のために設計されたゲームクライアント上におけるプログラム１５１００を図示している。
【０４６９】
関数１５１０１は、ダウンロード画像を受信し、関数１５１０２はそれらを解凍する。次に、関数１５１０４は、スケーリングされた、副画素最適化されたアニメーションフレームのビットマップを表示、又は先のアニメーション画面の画像に渡る変更のビットマップを変更に対して示された位置で表示する。
【０４７０】
符号１５１０６及び１５１０８によって示された様に、クライアントがユーザ入力を受信すると、その入力をゲームサーバに、入力が適切に変換される様に関連付けられた画面座標と共にアップロードする。
【０４７１】
本発明のこの特徴の他の実施形態では、ゲームサーバとゲームクライアントとの間の機能の分担は異なり得る。幾つかの実施形態では、上述されたものに一般的に類似したプロキシサーバは、プロキシサーバとは異なるゲームサーバ上で元々生成されたゲームコンテンツの薄型クライアント上での表示のために、副画素最適化を実行することに使用される。さらに他の実施形態では、ゲームクライアント自身が副画素最適化を実行し得る。
【０４７２】
図１５２は、関連する透明性マップを持つ画像が、前景画像及び透明性画像の両方の副画素最適化で表示出来る様にする本発明の１つの特徴の、大幅に簡略化された擬似コード表記である。
【０４７３】
図１５２のプログラム１５２００は、前景画像のスケーリング副画素最適化ビットマップを生成する。それは、画像、即ち、背景又は他の先のビットマップの最上部の表示が関連する透明性ビットマップで制御される表示である。使用される副画素最適化は、２色化又は多色カラー副画素最適化、或いは両方の組み合わせでも良い。画像の副画素最適化表現の生成のために知られている任意の方法が、上述した方法も含めて使用され得る。
【０４７４】
関数１５２０４は、画像の関連する透明性マップの副画素最適化を実行する。好ましくは、２色副画素最適化が使用され得る。なぜならば、透明性マップの高解像度ソース画像は、３要素色空間における直線に沿って変化する透明性値（即ち、０〜１の範囲のアルファ値）を持っているからである。そのようなソース画像アルファ値はグレースケールカラーに一致する。なぜならば、もし、マップの副画素最適化出力画像での所定の画素に一致する透明性マップソース画像の領域が規則的な透明性値に重なっていれば、出力画素の副画素の全ては、等しいアルファ値を持つ傾向にあるからしである。好ましくは、透明性マップの２色副画素最適化は、上述した非線形カラー・バランスを使用することが好ましい。
【０４７５】
一旦、前景画像と、それに関連する透明性マップの副画素最適化が成されると、関数１５２０６はこの組み合わせを副画素最適化表示に表示する。この処理は、表示画像の各画素列に対してループ１５２０８を実行することを含み、このループ各列の各副画素に対するループ１５２１０を含む。関数１５２１０は、各副画素に対して関数１５２１２乃至１５２１４を実行する。関数１５２１２は、現在のアルファ値を、副画素最適化透明度マップの対応する副画素のアルファ値に設定する。次に、関数１５２１４は、現在の副画素の輝度を、副画素最適化された前景画像の対応する副画素の輝度に現在のアルファ値を乗算した値に、透明度マップが描画されるべき背景ビットマップの現在副画素の輝度に（１−現在のアルファ値）を乗算した値を加算した値に設定する。
【０４７６】
これは、前景画像が先のビットマップ上に描画された場合に、別個の副画素の輝度の夫々の輝度が前景画像又は先のビットマップの対応副画素値から生じる程度は、副画素最適化透明度マップの対応副画素アルファ値の関数として決定されることを意味する。
【０４７７】
本発明の幾つかの実施形態では、透明度マップに関連する画像は、サーバ又はブラウザコンピュータ上でスケーリング及び副画素最適化され、ダウンロードされ、そして、クライアントコンピュータ上に関数１５２０６によって表示される。他の実施形態では、その様な副画素最適化透明度画像は、記録されたデジタル情報媒体上で利用可能である。さらに本発明の他の実施形態では、上記画像は、画像を表示するのと同じコンピュータによって生成される。
【０４７８】
本発明の他の実施形態では、副画素最適化前景画像は、副画素最適化されていない透明度マップにおいて含まれるアルファ値を使って表示され得る。
【０４７９】
本発明の幾つかの実施形態では、非可逆カラー圧縮が、１つの色に知覚的に近い色のグループを表すことに使用される。そのような圧縮は、ＲＧＢ要素値上に加え、１つの１次元透明度値上、図６０、９６及び９７で上述した種類の３次元透明度（例えば、不透明度又はアルファ）値上、または、余分の色次元としての透明度要素を持つ色値上で実行され得る。このような圧縮では、アルファ値１又は０、或いは１又は０に近い値を表す透明度値又は要素色値が、夫々、１又は０から遠く離れた透明度値によって表現されるのを避けることが好ましい。これは、透明度の範囲の極端な部分での不透明性における僅かな変化に対して、その範囲の他の部分での変化に対してよりも、目が敏感であるからである。
【０４８０】
透明度マップを持つ副画素最適化画像は、副画素最適化されていない画像が透明度マップで使用される全ての目的に対して、副画素最適化表示（装置）上で使用され得る。これは、アニメーション及びウェブページのレイアウトにおける使用を含む。
【０４８１】
図１５３乃至１６２は、映像及び／又はアニメーションの副画素最適化に関する本発明の特徴の、大幅に簡略化された擬似コード表記を表している。このプログラムは、副画素最適化されるべき映像が圧縮フォーマットで受信される場合に使用される関数１５３０２を含む。それは、映像が副画素最適化され得る様に、映像を解凍する。
【０４８２】
関数１５３０４は、映像のキーフレームをスケールダウン及び副画素最適化する。関数１５３０４は、スケールダウンするが、キーフレーム間で改竄された変更を副画素最適化しない。図１５３に示された、本発明のこの特徴の幾つかの実施形態では、このような改竄された変更は、副画素最適化され得るが、こうすることによる利益はほとんど無い。なぜならば、これらの変更が認識できないほどの速さで画面上に現れるからである。また、それらの副画素最適化を避けることが演算時間を削減するからである。
【０４８３】
関数１５３０８は、スケールダウンされた映像を副画素アドレス可能な表示（装置）上に、副画素最適化されたキーフレーム及び副画素最適化されていないフレーム間の改竄と共に表示する。
【０４８４】
他の実施形態では、明確に認識されるに充分な長さの位置で画面上でに現れる映像の部分のみを副画素最適化する、この概念は、他の方法でも使用され得る。
【０４８５】
図１５４は、表示フレームに描画されるべき連続した副−全体−フレーム画像要素によって全体的又は部分的に表現された副画素最適化映像に対して使用され得る。一般的に、その様な映像もまた全体フレーム画像を含み、１又は複数のオブジェクトの動きを表すのに必要とされる画面を付加的に変更するために、一連の副−全体−フレームを使用する。これは、図１４９で上述した種類のアニメーションを含む。それは、また、図１５３で上述した一般的な種類のキーフレーム及びフレーム間の改竄を持つ映像を含む、映像圧縮の様々な圧縮を含む。
【０４８６】
図１５４のプログラムは、副画素最適化されるべき映像が圧縮フォーマットで受信され、その場合にそれを解凍する場合に使用される関数１５４０２を含む。次に、関数１５４０４は、フレーム画像をスケール・ファクタによってスケーリングして、映像に含まれるフレーム画像をスケーリング及び副画素最適化しする。次に、関数１５４０６は、変更されたビットマップを、画像のサイズ及び位置の両方をスケールファクタによってスケーリングすることによって、スケーリング及び副画素最適化する。
【０４８７】
関数１５４０７及び１５４０８は、映像シーケンスにおけるスケーリング副画素最適化された映像フレームを、副画素アドレス可能な画面上に繰り返し表示する。映像フレームの表示後、フレームのビットマップ上における１又は複数の副画素最適化された変更ビットマップを、関数１５４０６によって変更ビットマップに関連付けられたスケーリング位置において表示する。
【０４８８】
図１５４の方法によって、副画素最適化映像及び／又はアニメーションが副画素最適化に要求される演算量を低減する方法で描画され得ることが分かる。なぜならば、その方法では、映像画像に変更が加えられる度に全体フレームの副画素最適化を必要としないからである。
【０４８９】
図１５５及び１５６は、フレームに対して動く副画素最適化画像を表示し得る２つの異なる方法を図示している。
【０４９０】
図１５５は、固定された副画素処理を持つ画像を、副画素アドレス可能な表示（装置）上に、より大きな画像に対して全体画素の増大で動く様に表示する、プログラム１５５００を含む。それは、上述したものを含む任意の方法で生成され得る副画素最適化画像を蓄積し得る関数１５５００２を含む。各連続するフレーム時間に対して実行されるループ１５５０３を含む。このループは、関数１５５０４及び１５５０６から成る。関数１５５０４は、より大きな画像に対する動きを計算する。この動きの計算では、各表示フレームでオブジェクトに対して計算された位置は、最も近い水平及び垂直方向の全体画素位置に近似され、画像のサイズ及び向きは変更されない。関数１５５０６は、関数１５５０４によって計算された全体画素解像度位置で画像を表示する。画像の副画素ビットマップを１つだけ計算すれば良く、画像が画面上を動くに従って単一の画像が繰り返し使用されるので、この方法は極めて演算にとって効率的である。
【０４９１】
図１５６は、副画素処理の変更によって動画を表示するプログラム１５６００を示している。それは、動かされるべき画像の高解像度のソース画像を蓄積する関数１５６０２を含んでいる。それは、また、各連続するフレーム時間に対して実行されるループ１５６０３を含んでいる。このループは関数１５６０４を含んでおり、関数１５０６４は、現在のフレームに対して、もし在れば、現在の変形、回転及び／又は高解像度のソース画像の変形を計算する。次に、そのループの関数１５６０６は、変形、回転及び／又は変換されたビットマップのスケールダウン、副画素最適化ビットマップを生成する。この副画素最適化は、全体画素解像度よりも高い解像度で表示する副画素配列に対して、変換ビットマップの位置を考慮する。次に、フレームループの関数１５６０８は、副画素アドレス可能なディスプレイ上に、結果の副画素最適化ビットマップを表示する。
【０４９２】
図１５５又は１５６で上述された方法の何れも、アニメーションテキストに加えて、ゲーム中でＣＧの移動する前景（スプライト）、又は、より大きなフレームに対して移動される他の任意のビジュアル表現を表示することに使用され得る。
【０４９３】
図１５５の方法は、より精度の低いビジュアルオブジェクトの動きの表現を提供する傾向があるが、演算処理的にはより効率的である。例えば、オブジェクトと副画素配列との間の可能なマッピングの小さなサブセットは蓄積され得り、オブジェクトが動くと、それが表示されるべき副画素配列に対する現在位置のより高解像度の表現を最も近く表す、蓄積されたマッピングの１つで表示する。
【０４９４】
図１５７及び／又は１５８は、副画素アドレス可能な画面上での表示のために、ＤＶＤ又はＨＤＴＶ映像の表示をダウンスケール及び副画素最適化することによって、ＤＶＤ又はＨＤＴＶ映像を最適化することに使用され得る、本発明の特徴を図示している。これは、垂直方向よりも水平方向においてより高い副画素解像度を持つ副画素アドレス可能な画面と共に使用されるときに特に有用である。なぜらならば、ＤＶＤもＨＤＴＶも、共通に高いと言うよりは実質的に幅広いアスペクト比を持っているからである。
【０４９５】
図１５９は、異なる属性を持つ別個のオブジェクトとして映像画像の副要素を表す映像フォーマットに適用され得る、本発明の特徴を図示している。図１５９の特別な例は、ＭＰＥＧ−４の映像の表示を副画素最適化するプログラム１５９００を含んでいる。
【０４９６】
図１５９に示されたプログラムは、ＭＰＥＧ−４映像を受信及び解凍する関数１５９０２を含んでいる。それは、ＭＰＥＧ−４映像において異なる種類のオブジェクトをスケールダウンするときに、異なる副画素最適化方法を使用する関数１５９０４及び１５９０６を含んでいる。この関数は、２色オブジェクトに対して、好ましくは非線形カラー・バランスで、２色副画素最適化を使用し、多色オブジェクトに対しては多色副画素最適化を使用する。関数１５９０８は、図１５５及び／又は１５６で上述された種類の方法を使用して、副画素最適化オブジェクトを画面に対してＭＰＥＧ―４表現によって指示される様に動かして、２色及び多色オブジェクトの組み合わせを副画素最適化画面上に表示する。
【０４９７】
本発明の幾つかの特徴は、ＭＰＥＧ―４データストリームにおける異なるオブジェクトタイプに対する異なる副画素最適化アルゴリズムの使用に限定されない。しかし、異なる副画素最適化アルゴリズムの使用は、テキストの様な２色オブジェクトに対して、より高い知覚解像度を提供し、それ故、幾分向上した画像を提供できる利点がある。
【０４９８】
図１６０及び１６１は、ユーザがコンピュータネットワーク上の副画素最適化映像にアクセスするシステムに関する。
【０４９９】
図１６０は、副画素最適化、スケールダウンされた映像を提供するサーバコンピュータによって使用されるプログラム１６００を図示している。そのようなサーバは、さらに他のサーバから、クライアントから要求された映像にアクセスし、そして、クライアントにダウンロードする前に、ダウンスケール及び副画素最適化するプロキシサーバであり得る。他の実施形態では、副画素最適化画像の提供は、中間のプロキシサーバなしに実行される。
【０５００】
図１６０のプログラムは、映像を得るための要求をクライアントコンピュータから受信する関数１６００２を含む。多くの実施形態では、図１６０に示された様に、この要求は、映像が副画素最適化されるべき、水平方向及び垂直方向の副画素解像度をも記述している。サーバが、固定された副画素解像度を持つクライアントのセットにのみ提供する様な実施形態では、上記の様な解像度の情報は要求の一部として必要ない。
【０５０１】
関数１６００４は、要求された映像コンテンツを受信する。これは、以下の様に実行される。即ち、上述したリモートサーバからコンテンツにアクセスすることによって；サーバコンピュータに備わったＲＡＭ又は大規模記憶手段のコンテンツにアクセスすることによって；コンテンツを動的に生成することによって；又は、幾つかのソースから供給された映像を選択することによって、実行される。
【０５０２】
関数１６００６は、関数１６００２の要求に伴う副画素解像度に、受信映像をスケールダウン及び副画素最適化する。次に、関数１６００８は、副画素最適化映像を圧縮し、関数１６０１０は、要求している装置に、圧縮映像をダウンロードする。
【０５０３】
このような副画素最適化画像に使用される圧縮アルゴリズムは、副画素最適化画像における任意の画素に伴う色値の位置が、ＲＧＢ色空間内において相対的に制限された色距離よりも大きく移動しない限り、副画素最適化によって可能にされる増大された空間解像度を実質的に減少することなく、かつある量の損失を持つ圧縮を含む副画素最適化画像に対して使用される。
【０５０４】
図１６１は、図１６０に記載された本発明の特徴に使用されるシステム１６１００を表している。このシステムは、図１６１において大幅に簡略化された擬似コード表記で図示されたプロキシコンピュータコード１６１００及びクライアントコンピュータコード１６１１２を含んでいる。
【０５０５】
薄型クライアントが映像に対するユーザの要求を受信したとき、関数１６１１３は、映像がプロキシに表示されるべき副画素解像度を含む、映像に対する要求を送ることによって応答する。プロキシが映像要求を受信すると、関数１６１００は、関数１６１０３によって、映像を取得するサーバに、対応する映像要求を送る。多くの実施形態では、これは、その様な要求のＵＲＬ中で同定されたサーバである。
【０５０６】
要求映像がプロキシサーバに受信されると、関数１６１０４は、関数１６１０６乃至１６１１０を実行する。関数１６１０６は、映像を、クライアントからの要求に伴う副画素解像度にスケーリング及び副画素最適化する；関数１６１０８は、副画素最適化された映像を圧縮する；関数１６１１０は、要求したクライアントに圧縮映像をダウンロードする。
【０５０７】
クライアントが要求映像をプロキシから受信すると、関数１６１１４は、関数１６１１５によって映像を解凍し、関数１６１１６によって映像を副画素アドレス可能なディスプレイ上にダウンスケーリング及び解凍する。
【０５０８】
図１６２乃至１６６は、本発明の特徴がデジタルインクの出現を向上させることに如何に使用されるかを図示している。デジタルインクは、通常、ユーザがポインティングデバイスによって書く又は描画しようとすることに応答して画面上に描画される黒白のビットマップである。過去には、デジタルインクビットマップは、通常、各画素が黒、白又は幾つかのデバイスではグレースケールの値として示される全体画素解像度で表現されていた。
【０５０９】
本発明の１つの特徴は、デジタルインクをより高解像度で表現するための副画素最適化の使用である。デジタルインクがコンピュータメモリ内で点、及び線又は点の間の曲線によって表現された場合、結果的として生じる、点の間の線の数学的な表現は、画面の全体画素解像度よりも遙かに高い解像度を持ち得る。
【０５１０】
図１６２は、デジタルインクを見る明瞭さを最適化することに使用され得るプログラムの、大幅に簡略化された擬似コード表記である。
【０５１１】
デジタルインク・コード１６２００（図１６２に示された）は、ポインティングデバイスのストロークを一連の点、及び点の間の線又は曲線として記録することによって、デジタルインク描画モードの間のポインティングデバイスでのユーザ入力に対して応答する関数１６２０２を含む。関数１６２０６は、線及び曲線の副画素最適化を使用して、画面上にインクを描画する。これは、実質的に任意の副画素最適化方式によって実行され得るが、例えば、非線形カラー・バランスを使用する２色副画素最適化方式の様な２色副画素最適化によって実行されることが好ましい。
【０５１２】
図１６３は、ハンドヘルドコンピュータ１６３００の画面上に描画されたデジタルインク１６３０２を図示している。この図示は、全体画素輝度値のみを表現可能なプリンタで印刷されるので、図１６３に図示されたデジタルインクは、グレースケール・アンチエイリアスの様な副画素最適化を表示する。副画素アドレス可能なディスプレイ上で見られる場合には、画像は図１６３に示すよりもより明瞭にさえ現れる。
【０５１３】
デジタルインクプログラムのユーザがデジタルインクの部分の表現のスケールアップを選択すると、関数１６２０８は、関数１６２１２によって、非線形カラー・バランスを伴う２色副画素最適化を使用して、デジタルインクの線及び曲線の副画素最適化ビットマップをユーザが選択したスケールアップサイズで生成する。次に、関数１６２１２は、ユーザの画面にスケールアップ画像を表示する。
【０５１４】
図１６４は、図１６３に示されたデジタルインク１６３０２の部分のスケールアップ表現１６３０２Ａを図示している。これは、図１６５に示されたビットマップ１６３０２Ｂによって図示された様に図１６３に示されたデジタルインク表現１６３０２の画素処理を単に拡大することによって生成されるよりも、実質的により明瞭なデジタルインク表現を提供する。
【０５１５】
図１６５に示されたビットマップは、実際には、デジタルインクの幾分スケールアップされた表現よりも感じが良い。なぜならば、図１６３で示されたビットマップは、幾つかのデジタルインク表現では使用されないアンチエイリアスを伴う全体画素グレースケールで印刷されているからである。
【０５１６】
ユーザがデジタルインク表現のスケールダウンを選択すると、関数１６２１４は、関数１６２１６によって、非線形カラー・バランスを伴う２色副画素最適化を選択されたスケールダウンサイズで使用して、インクの線及び曲線の副画素最適化画像を生成し、関数１６２１８によって副画素アドレス可能なディスプレイ上にスケールダウンビットマップを表示する。このような処理の結果は、図１６６に示されたビットマップ１６３０２Ｃによって図示されている。
【０５１７】
本発明のこれらの特徴は、オン又はオフの何れでかになる全体画素として記録されたデジタルインクを扱う様に修正され得る。これは、ルーチンに“オン”画素によって表現された各ストロークの中心線を評価させ、上述したように様々なスケールで、デジタルインクの副画素最適化・中心線画像を生成することによって実行される。より正確ではあるが演算能力を要するアプローチは、デジタルインクの連続的な部分と、線及び曲線（ベジェ曲線の様な）の対応連続部分との間の最適適合を求めることであり得る。
【０５１８】
他の実施形態では、副画素最適化は、ビットマップ上で副画素最適化、スケールアップ又はスケールダウンが単に実行することによって描画するデジタルインクによって生成されたビットマップ上で実行され得る。
【０５１９】
デジタルインクに関する本発明の幾つかの実施形態は、副画素最適化をグレースケールアンチエイリアスで置き換えることによって、副画素最適化されていない表示に使用される。
【０５２０】
図１６７は、上述した様なサーバ、クライアント、プロキシサーバ、薄型クライアント、リモート、デスクトップのコンピュータの多くにおいて含まれ得る要素を図示している。図１６７に示した要素の全てが、上記全てのコンピュータに在る必要はなく、ほとんどのその様なコンピュータは、図１６７に示したもの以外の他の要素を含む。
【０５２１】
この図は、本発明の様々な特徴で使用されるほとんどのコンピュータが、本発明の様々な特徴の機能を実行し、様々な特徴の方法に従ってデータ１６７０４を読み書きするプログラム１６７０２を実行可能な種類のプロセッサ１６７１６を含むことを明白にするために提供される。本発明は、方法だけでなくその様な方法のコンピュータプログラムにも関し、さらには、方法を実行又はデータを使用する様にプログラム及び／又はハードウェア構成されたコンピュータシステムに関する。
【０５２２】
ほんんどのその様なコンピュータでは、本発明のプログラムは、RＡM１６７０６；ROM１６７０７；又は大規模記憶手段（ハードディスクドライブ１６７０８、フロッピドライブ１６７０９、ＣＤ−ROMドライブ１６７１１及び／又はＤＶＤドライブ１６７１３）に蓄積される。プログラムは、また、機械読み取り可能な媒体（フロッピディスク１６７１０、ＣＤ  ROM１６７１２、ＤＶＤ  ROM１６７１４、又は実質的に他の任意の機械読み取り可能な媒体）に蓄積され得る。本発明のプログラム及び／又はデータは、ネットワークインターフェース１６７２０の様なある種の通信ポートを通じてコンピュータによって受信され得る伝送信号（符号１６７１９によって示される）としての表現され得る。
【０５２３】
図１６８は、図６０乃至９７で上述された非線形カラー・バランス法を使用して生成された小さな副画素最適化フォントを示す、３２０×２４０画面による全体画素グレースケール表現を提供している。この図は、テキストの部分が破線１６８００で囲まれている点以外は、図５６と同じである。
【０５２４】
図１６９は、破線１６８００内における、図１６８に示したビットマップの部分の８倍拡大図である。図１６８で示した垂直ストロークのほとんどは、フォントの明瞭さをぼかす左側でのカラー・バランス分配を含んでいる。
【０５２５】
副画素最適化フォントビットマップを生成する非線形カラー・バランス法の主な利点は、非線形法（カラー・バランスに必要のないカラー・バランス値の分配を実質的に防止することを目的とする）によって文字・フォント形状の不明瞭さを低減できる能力である。
【０５２６】
図１６９に示された種類のフォントの主なストロークの左に色値の拡散を観察することによって、本発明のこの特徴の発明者は、その様な拡散が低減され得るか否かを確かめようとしている。発明者は、その様な拡散のソースが何であるかを決定しようとしていた。
【０５２７】
図１７０を参照すると、非線形カラー・バランスビットマップの生成に使用されるアルゴリズムは、副画素１７０００の２つのパッディング列を、文字・フォント形状のラスタ化における左端の副画素列１７００２（実際の非ゼロカバレージ値１７００４（例えば、ラスタ化で表現されている文字・フォント形状の部分によって実際にカバーされている）を含む）の左に自動的に配置する様に設計されていたことを発見した。これは、カラー・バランスの色値の拡散を、非ゼロカバレージ値を含む左端の副画素の左に２つの副画素列に入れるスペースを、左方向の拡散が上述の非線形カラー・バランスアルゴリズム（全体的又は部分的にカバーされた副画素の左に２つの画素にカラー・バランスの分配をすることができる）によって要求されたときに提供する。
【０５２８】
不運なことに、ラスタ化副画素配列に２つの副画素列１７０００を当てることは、そのようなカバレージ値を持つ左端の副画素列１７００２を２つのパッディング画素列を含む画素列の右端の副画素列にするという、好ましくない効果を持つことになる。ＲＧＢ表示では、これは、実際のカバレージ値を持つ左端の副画素列が青色副画素に対応することを招く。
【０５２９】
これは好ましくない。なぜならば、フォントビットマップの左端画素列の画素が、カラー・バランスを達成するために非ゼロカバレージ値の分配を要求し、実際のカバレージ値を持たない２つの最左側副画素と非ゼロカバレージ値を含む最右側副画素とを含むことになるからである。これが、図１６９に示された主たる垂直ストロークの左方向へのぼけである。
【０５３０】
本発明者は、垂直ストロークの境界が、副画素列の幅よりも鋭い増分に位置されるシステムでヒンティングされた文字・フォント形状は、図１７１の端（エッジ）１７１００（非ゼロカバレージ値１７００２を持つ最左側副画素列中に僅かな長さしか持たない）の様な最左側垂直ストロークの最左側端から始まるように文字・フォント形状をヒンティングする者によって設計されているということを強調する。これは、非ゼロカラー・バランスによって分配されるべき副画素列１７００２内に含まれる非ゼロ値の大きさを実質的に低減し、それ故、文字の副画素最適化表現における好ましくない不明瞭さを大幅に低減する。
【０５３１】
例えば、最良のヒンティングの組み合わせによって（その様なアルゴリズムで用いられたとき）、結果ビットマップにおける２番目の最左側画素列１７１０３が、カラー・バランス拡散を要求しないために全体をカバーされた１又は複数の画素を持つ様に、文字の最初の垂直ストローク（図１７１の垂直ストローク１７１０２の様な）が、右側で３つの連続する副画素列における全体カバレージ値を持って、１つの副画素列に僅かに入る最左側端を持つ様にすることを本発明者は発見した。
【０５３２】
その様な最適化されたヒンティング処理では、最初のストロークの最右側端から３，６，又は９副画素列の距離で開始する３つの隣接する副画素列に重なる様に、連続する垂直ストロークは並べられる。これによって、図１７１の垂直ストローク１７１０４及び１７１０６の様な連続する垂直ストロークが、カラー・バランスを要求しない様に、全体的に重なる複数の画素を持つ様になる。
【０５３３】
図１６８乃至１７１に示された種類のフォントは、従来技術の方法によって生成されたほとんどの副画素最適化フォントビットマップよりも判読性が高いが、これらの調査の結果、本発明者は、図１７２乃至１７４に示される様な、より明瞭でさえある副画素最適化フォントの生成方法を想到した。
【０５３４】
図１７２は、図１６８に示す種類のウェブページの、副画素最適化された、３２０×２４０画素ディスプレイを表現する、全体画素グレースケール・ビットマップを示している。但し、ここでは、フォントビットマップを生成及び表示するための新たな、より明瞭な方法を使用している。
【０５３５】
図１７３は、破線ボックス１７２００において示された、図１７２の部分の４倍拡大図を示している。
【０５３６】
図１７４は、図１７３の破線１７３００において示されたテキストの部分をさらに４倍拡大した図を示している。
【０５３７】
図１７２乃至１７４を見ると分かる様に、これらの図において示されたフォントビットマップに含まれる垂直ストロークの多くから発生する色値の水平方向の拡散が相対的に殆ど無い。カラー・バランスのための拡散によるものではなく、これらの図中のテキストが、背景色を持つ図１７２のウェブページの部分から採られたため、図１７３及び１７４における規則的な薄いグレー背景が生じることを強調する。これらの図に示されたフォントは、図１６８及び１６９に示されたものよりも実質的に明瞭である。
【０５３８】
本発明者は、文字の最左側垂直ストロークの最左側端を画素境界の左端に揃えることによって、この改善を行った。多くの実施形態では、図１７５に示される３つのパッディング副画素列１７５００を、非ゼロカバレージ値を含む最左側副画素列の前に挿入することによって、これが実行される。これは、文字のアウトラインによって全体的又は部分的に重なる最左側ラスタ化ユニット（例えば、副画素）を、画素列の最左側端に自動的に揃える。最左側のアウトライン・端がラスタ化ユニットの最左側端に揃えられたとき、これは、最左側アウトライン・端が、結果として生じるフォントビットマップにおける画素の最左側端に自動的に揃える。フォント・アウトラインの最左側端が垂直ストロークである場合、これによって、非線形カラー・バランス後でさえ、明瞭な最左側の垂直ストロークを持つフォントビットマップを簡単に生成することができる。
【０５３９】
図１７６は、本発明で使用され得る多くの可能なヒンティング・インターフェースの１つを示している。このヒンティングインターフェースでは、破線１７６０２は、所望の文字に対して最左側ベアリングを相互に決定するために、ユーザによって移動され得る線である。破線１７６０４は、右側ベアリングを決定する移動可能な線である。左側ベアリングは、文字が描画される初期の参照ポイント（時にはペンポジションと呼ばれる）と、描画される文字のビットマップの最左側端との間の距離にある。ライン１７６０４は、テキストのラインに沿って次の連続する文字の描画の開始点に通常配置されるペンポジションにおけるビットマップに対する位置に一致する。右側ベアリングは、ライン１７６０４と描画される文字のビットマップの最右側端との間の距離に置かれる。改善後の幅は、ライン１７６０４とライン１７６０２との間の距離として定義される。これは、文字のビットマップの描画前のペンポジションと後のペンポジションとの間の通常の全幅を表している。幾つかの実施形態では、左側ベアリングと改善後の長さとは、複数の画素幅の全体に近似される。但し、他の実施形態ではそうである必要はない。幾つかの場合には、左及び／又は右側ベアリング値は負になり得る。例えば、連続する文字に関連するビットマップがしばしば互いの改善幅の部分に重なる様なイタリックフォントでは、これがしばしば起こる。
【０５４０】
図１７６に示された小さな矩形ドット１７６０６の夫々は、副画素最適化フォントビットマップにおいて、個々の副画素に対応するラスタ化ユニットの中心に一致する。この特別なヒンティング・インターフェースでは、文字・フォント形状のアウトラインに半分以上重なるラスタ化ユニットは、黒で示される。但し、さらに改善されたインターフェースでは、ラスタ化ユニットはグレースケール・カバレージ値で示され得る。文字・フォント形状のアウトラインは図に示されており、アウトライン中のセグメントを定義する各点は、コントロールポイントであるかセグメントエンドポイントであるかがナンバリングされている。
【０５４１】
図１７７乃至１８１は、図１８２に含まれる大幅に簡略化された擬似コード表記において記載されたステップの幾つかの説明の助けに使用される。
【０５４２】
図１８２は、プログラム６０００Ａの大幅に簡略化された擬似コード表記であり、以下の点を除いて図６０の擬似コードに一般的に一致する。即ち、図１８２に示された擬似コードは、図１７２乃至１７６で上述された、より明瞭に非線形カラー・バランスされ副画素最適化されたビットマップを生成する改善方法に関する演算面に焦点を置いている。
【０５４３】
この擬似コードは関数１８２０２を含んでおり、これは、ヒンティングによって定義されたラスタ化ユニットに対する形状の並びを考慮して、文字・フォント形状が配置され得るラスタ化ユニットの最も緊密な矩形配列を決定する。
【０５４４】
ラスタ化が起こる個々のラスタ化ユニットに対するフォント・アウトラインの位置は、この関数によっては変化しない。それ故、もし、アウトラインの最左側ポイントがラスタ化ユニットの最左側端以外で発生すると、ラスタ化ユニットは、関数１８２０２によって生成される最も緊密な矩形配列の最左側端に発生し、アウトラインの最左側端は、その矩形の最左側ラスタ化ユニット列内で発生するが、最左側列の最左側端では発生しない。
【０５４５】
図１７７及び１７８は、この関数の説明の助けとなる。図１７７は、ヒンティングされた文字・フォント形状のアウトラインに対応する。図１７８は、図１７７に示された文字アウトラインに対する関数１８２０２によって返される、ラスタ化ユニット（夫々副画素のサイズに一致する）の矩形を示している。このグリッドは、文字・フォント形状を含むラスタ化ユニットが適合する最も緊密な、最も小さい、矩形に一致する。
【０５４６】
一旦、関数１８２０２が完了すると、関数６００２Ａ乃至６００６が実行される。これらは、図６０のステップ６００２乃至６００６に一致する。それらは、関数１８２０２によって返される、矩形に含まれる各ラスタ化ユニットに対するカバレージ値を決定することに使用される。
【０５４７】
図１７９は、図１７８に示された配列における各ラスタ化ユニットに対して計算されるカバレージ値を図示している。そこでは、黒に色付けられたラスタ化ユニットの割合によって表現される。図１７９では、文字・フォント形状アウトラインによってカバーされるユニットの対応する部分がラスタ化ユニットの最上部に発生するとき、カバー範囲を表す各ラスタ化ユニットにおける結果の棒グラフの部分は、ユニットの最上部に置かれている。
【０５４８】
図１８０では、個々のラスタ化ユニットの全てについての棒グラフは、上述した図４６乃至５２、及び９２乃至９３に示されたカバレージ値の表現により近く対応させるために、対応する副画素ユニットの最下部において開始される。
【０５４９】
一旦、文字・フォント形状がラスタ化されると、ステップ１８２０４は、副画素カバレージ値の結果配列を副画素アドレス可能な画素にマッピングする。これは、上述の緊密な矩形におけるラスタ化ユニットの最初の列を画素列の左端に揃えることによって行われる。これによって、非ゼロカバレージ値を持つラスタ化ユニットの左端列が、図１７５で上述された全体画素において最左側副画素列として配置される様になる。図１７７乃至１８１で図示された例では、これによって、結果として生じる副画素配列が、図１８１において１８１０２と付された中央の画素列において示される様に現れる様になる。
【０５５０】
次に、ステップ１８２０６は、現在文字に対して生成されているビットマップ配列を、実際の非ゼロカバレージ値を持つ最左側副画素列を含む画素の左にある３つの副画素列から成る画素列に当てる。これによって、この例の副画素配列が、図１８１の画素列１８１０４及び１８１０２の組み合わせによって示される様に現れる。
【０５５１】
次に、ステップ１８２０８は、画素列の合計が３の偶数倍（全体画素列の偶数倍）になる様に、ビットマップ配列の右に２以上の副画素列を当てる。これによって、この例の副画素列が、図１８１の画素列１８１０４，１８１０２，及び１８１０６の組み合わせによって示される様になる。
【０５５２】
ステップ１８２１０は、パッドされた画素列の追加を補償するように、左及び／又は右側ベアリング値を調整する。それ故、例えば、１画素幅の左側ベアリングを追加で有するビットマップは、左側のパッディング列の追加を補償するためにゼロの左側ベアリングを持つ様に変更される。同様に、右側に追加された余分の画素列を持つビットマップは、１画素幅だけ右側ベアリングを減少させる。
【０５５３】
次に、関数１８２１２は、非線形カラー・バランス（多くの実施形態において、上記図６０のループ６００８で記載されたステップに一致する）を実行する。
【０５５４】
一旦、これが実行されると、上記図９６で記載した種類のパック色値を使用する実施形態では、ステップ１８２１４は、カラー・バランス処理後に生じる画素色値を、より制限された色パレットの対応値に変換する。
【０５５５】
図１８２の方法によれば、図１６８乃至１６９で上述した不要な色拡散を生じることなく、カラー・バランスに必要な空間を与える。ラスタ化されるフォント形状に重なる領域に対応する副画素の左及び右の少なくとも２つの副画素が存在することを確実にすることによって、これを実行する。
【０５５６】
本発明の本特徴の他の実施形態では、非線形カラー・バランスが不明瞭さを低減する能力を最大限に利用するために、他の方法が、フォント形状の最左側端及び最右側端と、垂直ストロークとを全体画素の境界に揃えることに使用される。そのような幾つかの実施形態では、パッディング画素列がフォントビットマップの左側又は右側の何れに追加されるかは、カラー・バランス分配がその列において必要とされるか否かの関数であり得る。
【０５５７】
図１８３は、図１８２で記載された方法によって生成されたビットマップを使用して、文字のストリングを描画するための関数を記載している。この擬似コードは、以下の点を除いて、図９７で上述したものに類似している。相違点は、図１８２で記載したより明瞭な非線形カラー・バランスされた副画素最適化フォントを生成するための方法に極めて有用な本発明の特徴に焦点を置いていることである。
【０５５８】
図１８３に示される描画ストリング・関数が呼び出されると、ステップ１８２０２は、ペンポジションを、ストリングの表示が開始する場所を示す描画ストリングコールによって特定される開始点に設定する。
【０５５９】
次に、ループ９７１４Ａ（図９７で記述されたループ９７１４に類似する）が、表示する各文字のストリングについて実行される。
【０５６０】
このループにおいて、ステップ９７１６は、現在文字のフォントビットマップにアクセスする。次に、ステップ１８２０４は、文字の開始点を現在のペンポジションに設定する。次に、ステップ１８３０６は、左側ベアリングによって現在のペンポジションを調整する。上記で述べた様に、左側ベアリングは、文字ビットマップが左側に余分な１つの画素列が当てられている事実を考慮するために通常のものから変更されており、それ故、１画素列の幅だけ減少されている。
【０５６１】
次に、ステップ９７１８Ａは、フォントビットマップにおいて各画素に対して実行される。これは、現在画素の値が非ゼロであるか否かをテストするサブステップ１８２０８を含んでいる。もし、現在画素の値が非ゼロであれば、画面上で、現在のペンポジションの関数として定義された位置に画素を描画する。
【０５６２】
もし、現在画素の値がゼロであれば、それは全体的に透明な画素を表している。現在画素の位置において先に背景色が変わらずに残されていることを意味する。本発明のこの実施形態では、図９６に記載された関数は、その様に全体的に透明な画素を表すために、ゼロの値を保持している。
【０５６３】
透明な画素を書き込まないこの実施方法は、図１８３で記載された実施形態において、ビットマップの全ての画素に適用される。この実施方法は、図１８２で上記したステップ１８２０６によって、文字・フォントビットマップの最左側端に置かれるパッディング列における画素に関して特に重要である。これは、その様なパッディング列の画素は、一般に垂直ストローク境界が垂直画素境界に揃えられる場合に非線形カラー・バランスの結果としてそれらの画素に拡散される色値を持たないからである。その結果、そのような画素は透明であり、文字による位置においてその画素の左に置かれている色値は変化しない状態であり、カバー範囲又はカラー・バランス情報を含む隣接する文字の画素列が互いに近接して置かれる様になる。
【０５６４】
これは、例えば、図１７３の符号１７３０２によって示される位置において見られる。ここでは、単語“Ｗｅｂ”の“ｗ”と“ｅ”の間の画素列は、“ｗ”からの色値を含んでいる。“Ｗｅｂ”は、透明な、それ故書き込まれていない、“ｅ”の左側パッディング列を通じて示されうる様になっている。これは、図１７４の符号１７４０２によって示された位置でも見られ、そこでは、“ｒ”と“ｅ”との間の画素列は、“ｅ”の透明なパッディング画素列に重なっていない“ｒ”からの色値を含んでいる。
【０５６５】
当業者が認識する様に、関数９７１８Ａは、ビットマップの夫々を適切な位置に描画するために、画素が描画される位置がフォントビットマップの各行に対して繰り返される様に制御するある種の反復を要する。
【０５６６】
本発明の他の実施形態では、単に、連続する文字の対応画素が透明である場合に１文字からの非透明色値が透けて見えることを許可するよりも、隣接文字からの非透明画素値が結合される様に重ねることを許可する機能が提供され得る。
【０５６７】
このような処理は、副画素対副画素に基づいて透明度値の結合を許可することが好ましい。このような処理は、より演算能力を要するとしても、接近して配置された文字のさらにより高い精度の表現を提供し得る。
【０５６８】
この結果を得る１つの方法は以下の通りである。文字間で重なる画素の３つの対応アルファ要素値の夫々を、要素値を最大可能値で切り捨てて加算する。そして、その後、幾らの前景値及び背景値でその場所に描画されるかを決定するために、組み合わされた要素アルファ値を使用して、結果として得られる画素の夫々を描画する。
【０５６９】
図１８４は、より明瞭な非線形カラー・バランスフォントビットマップを提供する方法における他の実施形態を図示している。それは、以下の点を除いて、図１７６で上述したものと同様のヒンティング・インターフェースを図示している。その点は、ユーザによって移動可能な線又はコントロールから成るインターフェース機能１８４０２を含む点である。このコントロールによって、ユーザは、最左側パッディング画素列に続く画素列の最左側端に揃う様な場所を、文字・フォント形状アウトラインに対して選択的に配置出来る様になる。
【０５７０】
この様なインターフェース機能は、垂直ストローク以外の最左側端を持つフォントをヒンティングする際に、より求められる。例えば、全画素幅以下の範囲で左側端から突き出した小さな上下の髭線（セリフ）を持つ最左側主垂直ストロークを持つ文字・フォント形状を扱う場合、ヒンティング者は、垂直ストロークの主たる最左側端を、より左のセリフよりも、全体画素境界に揃えたいと考える。図１８４に示されたこのインターフェース機能は、このような整列をヒンティング者にとって容易なものにしている。
【０５７１】
ヒンティング者に均等な能力を与える他の方法は、図１７０又は１７１に上述された様に、２つの副画素パッディング列だけの追加、又は図１７５、１８１及び１８２に上述された様に３以上のその様な副画素パッディング列の追加の何れかを選択出来る様にすることである。
【０５７２】
非線形カラー・バランス副画素最適化画像をより明瞭にするための今述べられた方法は、図１７２乃至１７４に示された種類の小さなフォントに適用可能であるだけではなく、図５５に示された比較的大きなフォントの様な、より大きなフォントにも適用可能である。
【０５７３】
副画素最適化は、通常、フォントビットマップを３つの異なる種類の副画素：前景画素、背景画素、及び中間的にカラー・バランスされた画素だけで表現する。前景画素は、表現されるフォント形状によって全体的に覆われるフォント画像の部分を表現し、文字が表現される前景色で描画される。背景画素は、フォント形状によって全体的に（ほとんど）覆われないフォント画像の部分を表現し、その上にフォントが示される背景の色で描画される。中間画素は、フォント形状によって部分的に覆われ、及び／又は近傍の画素に対するカラー・バランス分配を受け取った画素を表現している。副画素の夫々の色は、カラー・バランスによって別々に決定される。
【０５７４】
図４６，４７，５２及び９３で上述された種類の従来技術の線形カラー・バランスがフォントに適用された場合には、文字形状の端が画素境界に完全に揃えられているときでさえ、カラー・バランスが、副画素色変化の方向で文字形状の各端を横切って実行される。如何に良好にヒンティングしても、これによって全ての文字形状の空間不明瞭度を生じる。
【０５７５】
図４８，４９，５１，及び９１で上述された種類の非線形カラー・バランスが適用された場合には、カラー・バランスによって生じる空間的な不明瞭さを大幅に低減する様にヒンティングが使用され得る。端が画素境界に揃えられている文字形状の部分では、カラー・バランス分配が画素境界を越えて要求されないことが多い。これは、非線形カラー・バランスが、所定の副画素内で発生するカラー・アンバランスを分配するのみであるからである。これによって、前景画素は、その場所における副画素色変化の方向に沿って背景画素の次に配置され、フォント形状の知覚可能な明瞭度を大幅に向上させる。これは、図１７３及び１７４において示され、そこでは、これらの図で示された８画素／ｅｍにおける垂直ストロークの実質的な部分は、これらのストロークの端が画素境界に揃えられる様にヒンティングされる。その結果、前景画素は、多くのその様な垂直ストロークの実質的な部分に沿って、水平方向において背景画素の次に配置される。図１６８及び１６９で示された、最左側垂直ストローク端の最適ではないヒンティングでさえ、カラー・バランス不明瞭度の大きさは、従来技術の線形カラー・バランスから生じる不明瞭度の大きさよりも実質的に小さい。
【０５７６】
図１８５乃至１９０は、大幅に簡略化された擬似コード表記であり、この擬似コード表記は、特に、比較的小さい又は比較的低解像度の画面上でブラウズが実行される場合に、ウェブページのブラウズの向上に使用されるユーザインターフェースの改善に関するものである。
【０５７７】
図１８５は、図１２９乃至１３４で上述された選択テキストリフロー方法のより高度なレベルの表現である。この方法１８５００は、ウェブページのコンテンツにアクセスする関数１８５０２と、ウェブページ内のテキストについて示された異なる水平方向の場所にテキストを置いて、ウェブページのコンテンツの最初のレイアウトを実行する関数１８５０４とを含む。ウェブページの記述に使用されるマークアップ言語は、テキストの異なる部分が、異なる水平方向の場所又はウェブページの異なる水平方向の範囲に描画される様に指示する複数の方法（２つだけ挙げるとテーブルとフレームの使用を含む）を有している。
【０５７８】
一旦、その様なレイアウトが実行されると、関数１８５０６は、レイアウトの要素を、所定のスケール及び最初のレイアウトで決定される相対的な位置に表示する。この表示が実行された後、ステップ１８５０８は、最初のレイアウトの表示における所定の水平方向位置でテキストの部分を、ユーザが選択出来る様にする。これを可能にする１つの方法は、図１３０で上述されている。
【０５７９】
その様な選択が成されると、関数８５１０は、関数１８５１２及び１８５１４を実行する。関数１８５１２は、ユーザによって選択された２番目のレイアウトを実行する。２番目のレイアウトは、新しい列のラインを横切って選択テキストをリフローする。そこでは、テキストは、異なる、通常、列のラインの幅に対してより大きいフォントサイズを持つ。この２番目のレイアウトが実行されると、関数１８５１４は、新しい列のレイアウトを、ウェブページが表示される画面又は画面ウィンドウの幅の少なくとも２／３を満たすスケールで表示する。
【０５８０】
図１３５乃至１３７で上述した様に、選択テキストリフロー方法での２番目のレイアウトによれば、ユーザは、ウェブページのレイアウトの選択部分を、大きく容易に読めるフォントサイズで見ることができる。これは、低解像度画面、小さな画面、及び／又は視認者から相対的に遠い画面上において大きな利点である。その方法の最初のレイアウトによって、より通常に近い画面ではウェブページがどの様に見えるように設計されているかをユーザが見ることが可能になり、より大きいフォントで再表示して見たいテキストの部分をユーザがより素早く選択可能になる。
【０５８１】
図１８６は、図１１８乃至１２０で上述した一般的な種類のズーム・ツー・フィット方法１８６００の、高度な水準の擬似コード表記である。
【０５８２】
この方法は、ウェブページのコンテンツにアクセスする関数１８６０２と、ウェブページのコンテンツをレイアウトする関数１８６０４とを含んでいる。
【０５８３】
一旦、その様なレイアウトの表示が画面に示されると、関数１８６０８によって、ユーザは、この画面を横切ってポインティングデバイスをドラッグ出来る様になる。その様なドラッグ中、もし、画面端に在る境界を横切ってドラッグが続くと、関数１８６１０は、関数１８６１２によって、画面端の他の側で以前には画面になかったレイアウトの部分を画面中にスクロールする。これが実行されると、ユーザは、現在の画面スケールでは画面に全体的に適合するには大きすぎる、又はドラッグの開始点にあって一部のみが画面上にある、レイアウトの部分をドラッグによって選択出来る様になる。
【０５８４】
ユーザがドラッグを離すと、関数１８６１４は、関数１８６１６及び１８６１８を実行する。これらの最初は、レイアウトの一部をドラッグの開始と終了とに一致するレイアウトにおける位置に基づいて選択されて定義される様にする。その様な選択部分は、ドラッグの水平又は垂直方向の範囲を持つレイアウトの部分、又は、ドラッグの開始及び終了に対応する対角上の隅を持つ領域に一致し得る。そして、関数１８６１８は、レイアウトの選択部分を、実質的に画面に適応する様なスケールで表示する。
【０５８５】
図１８７は、ユーザがウェブページのレイアウトの表示内で容易に探索できるドラッグスクロール方法１８７００の高水準の擬似コード表記である。
【０５８６】
この方法は、ウェブページのコンテンツにアクセスする関数１８７０２、ウェブページのコンテンツのレイアウトを実行する関数１８７０４、及び所定のスケールファクタでレイアウトの全部又は一部を表示する関数１８７０６を含んでいる。その後、関数１８７０８は、ユーザが、レイアウトの表示を横切って、ポインティングデバイスをドラッグできるようにする。関数１８７１０は、画面端の境界を横切るドラッグに応答し、画面端を超えて、以前には画面に無かったレイアウトの部分を画面上にスクロールする。
【０５８７】
この方法は、ズーム選択関数の一部又はそれから独立して使用され得る。これの利点は、表示画面の端、又は表示画面の端の近傍を横切ってポインティングデバイスを単にドラッグさせることにより、ウェブページのレイアウトの表示を、ユーザがスクロール出来る様になる点である。
【０５８８】
図１８８は、クリック−ズーム方法１８８００の高水準擬似コード表記であり、この方法では、ユーザは、ウェブページのレイアウトの所望の部分に素早くズームインすることを選択できる。この方法は、ウェブページのコンテンツにアクセスする関数１８８０２、ウェブページのコンテンツのレイアウトを実行する関数１８８０４、及びウェブページのレイアウトの全部又は一部を最初のスケールで表示する関数１８８０６を含んでいる。関数１８８０８は、ユーザがクリックして、最初のスケールでのレイアウトの表示において選択部分にデバイスを指定可能にし、関数１８８１０は、クリックが実行されたレイアウト中の場所の周囲のレイアウトの部分のズームイン表示を実行することにより、クリックに応答する。一般的に、ズームイン表示は、クリックされたレイアウトの場所を中心に置かれる。
【０５８９】
図１８９は、ズームクリック方法１８９００の大幅簡略化擬似コード表記であり、これは図１２１乃至１２８で上述されている。
【０５９０】
この方法は、ウェブページのコンテンツにアクセスする関数１８９０２、コンテンツのレイアウトを実行する関数１８０９４、及び連携するポインティングデバイスを持つ表示画面上に最初のスケールで、ウェブページのレイアウトの一部又は全部を表示する関数１８９０６を含む。図１８９に記載された、この方法の特定の実施形態では、画面はタッチスクリーンであり、ポインティングデバイスが人の指であり得ることを意図している。
【０５９１】
一旦、最初のスケールでのレイアウトの表示が実行されると、タッチ画面ディスプレイに対して押下が実行された場合に、関数１８９０８が応答する。その様な押下が発生すると、この関数は、関数１８９１０乃至１８９２２を実行する。
【０５９２】
関数１８９１０は、画面上で、最初のスケールでのウェブページの部分の表示を、より大きなスケールでのウェブページの部分のズームイン表示に置き換える。このズーム部分は、タッチ画面押下によるレイアウトでの選択位置を含む。選択レイアウト位置は、最初のスケールでの選択時において持っていたのと実質的に同じ位置を、ズームイン表示での画面上で持つことが好ましい。実質的に同じ位置によれば、選択位置は、画面上で同じ位置の接触に対応するズームの直前及び直後の両方での画面上で場所を持つはずである。選択位置の画面の場所での変化は、ズームの直後で、画面の幅又は高さの２０％以上を変更しない。
【０５９３】
一旦、ズームイン表示が示されると、関数１８９１２は、ウェブページレイアウト中の接触による選択場所を示すために、画面が接触されている場所の上方にカーソルを表示する。幾つかのタッチ画面デバイスでは、特に、比較的精密な点を持つスタイラスでの使用に設計されたデバイスでは、その様なカーソルの必要はない。なぜならば、ユーザは、画面が接触されている点を極めて正確に見ることができるからである。しかし、ポインティングデバイスとして指での使用に設計されたタッチ画面では、ユーザが、接触による画面表示での位置を正確に確認出来る様に、画面が接触される位置上方にカーソルを配置することが、しばしば好ましい。これは、図１２１乃至１２８で表示された様なディスプレイ、即ち人間の指のサイズに比べると比較的小さい表示でこの方法が使用される場合に、特に好ましい。
【０５９４】
接触が続く間、関数１８９１４は、対応してズーム表示中でカーソルを移動させることによって、接触のどんな動きにも応答する。また、接触が続く間、関数１８０１６は、画面端の境界を横切る接触の動きに応答し、画面上に、画面端を越えて、以前は画面に表示されていなかったレイアウトの部分をズームスケールでスクロールする。これによって、ユーザは、ズームクリックモード中、ウェブページのズーム画面内で素早くかつ便利にスクロール出来る様になる。
【０５９５】
関数１８９１８は、ユーザが、ウェブページのズーム表示中の所定の位置で接触を離した場合に応答する。もし、接触を離した場合、関数１８９２０は、あたかも離した位置に一致するウェブページ中の位置においてポインティングデバイスのクリックが発生したかの様に動作する。例えば、ウェブリンクに対応するレイアウト位置で離した場合、システムはリンクを選択することによって応答する。又は、ラジオボタンの位置で離した場合には、システムは、ラジオボタンの状態を反転させる。
【０５９６】
一旦、これが実行されると、関数１８９９は、画面上のズームインレイアウトの表示を、ポインティングデバイスの押下が関数１８９０８によって検知される前にウェブページが表示されていた同じ最初のスケールファクタでのレイアウトの表示に置き換える。
【０５９７】
図１２１乃至１２８で上述した様に、ズームクリックは、選択部分のコンテンツを読みやすくかつポインティングデバイスで正確に選択し易くするズームインスケールで、ウェブページの所望の部分を素早く見ること及び選択することが、ユーザにとって可能に成る様にする重要な技術を提供する。
【０５９８】
図１９０は、方法１９０００の大幅簡略化・擬似コード表記であり、この方法によれば、ユーザは、テキストラインを表現するためにグリーキングを使ってウェブページのズームアウトビューを見ることができる。グリーキングは、判読不能なグラフィック表現でテキストの部分が文書中にレイアウトされるサイズの表現である。
【０５９９】
この方法は、ウェブページのコンテンツにアクセスする関数１９００２、ウェブページのコンテンツのレイアウトを実行する関数１９００４、及びウェブページのコンテンツのレイアウトを表示するためにユーザが選択したスケールを検知する関数１９００６及び１９０１４を含む。
【０６００】
もし、ユーザがウェブページのレイアウトを所定のより大きいスケールで表示させることを選択した場合、関数１９００６は、関数１９００８によって、ウェブページのレイアウトの部分をそのより大きなスケールで表示させる。これは、レイアウト画像をより大きなスケールでの表示のためのビットマップ画像で表現する関数１９０１０と、より大きなスケールでの表示に適したサイズを持つ別のフォントビットマップから構成されたビットマップでウェブページのストリングのレイアウトを表現する関数１９０１２とを実行することを含む。
【０６０１】
一方、もし、ユーザが、所定のスケール、少なくとも幾つかのウェブページのテキストが判読可能なサイズのスケールで表示できない程小さいスケールを選択すると、関数１９０１４は、関数１９０１６によって、ウェブページのレイアウトの部分をより小さいスケールで表示させる。これは、より小さいスケールでの表示のためにスケールダウンされたビットマップ画像でレイアウト画像を表現する関数１９０１８と、少なくとも幾つかのストリングを、グリーキングテキスト表現（より小さいスケールでの表示における個々のストリングのサイズ及び位置を指示する）で表現する関数１９０２０とを実行することを含む。
【０６０２】
多くの場合、グリーキングにおけるストリングの表現に使用されるビットマップは、小さいスケールでのウェブページのレイアウトにおける対応するストリングのサイズに一致する幅及び／又は高さを持つ単なる線又は矩形である。
【０６０３】
テキストが小さすぎて読めないサイズでレイアウトが表示された場合、テキストのグリーキング表現は、表示をより容易かつ快適に見れる様にし、グリーキングは、一般に、判読不能に小さなフォントビットマップから対応するストリング画像を生成するよりも、少ない演算能力を使う。
【０６０４】
図１９０に示された方法の主な使用の１つは、ユーザがウェブページのレイアウトの概略を見ることを可能すること、及び、ウェブページの異なる部分を素早く選択可能にすることである（図１３６乃至１３７で上述した様に）。
【０６０５】
コンピュータユーザインターフェースの当業者は、図１８５乃至１９０に記載された方法の幾つかは、互いに組み合わせた形態、及び単一ユーザインターフェースモードの一部として上述した本発明の他の特徴を組み合わせた形態で使用され得ることが分かるであろう。しかしながら、他のものは、異なるユーザインターフェース又は異なるユーザインターフェースモードで通常使用され得る。
【０６０６】
前述の記載及び図面は、単に説明及び図示のために使用したものであり、本発明は、添付の特許請求の範囲の解釈がそう限定することを除いて、前述の記載及び図面に限定するものではない。開示を得た当業者は、本発明の目的を逸脱しない範囲でそこに修正及び変形をなし得る。
【０６０７】
本出願に係る本発明は、広く特許請求した様に、任意の１種類のオペレーティングシステム、コンピュータハードウェア、又はコンピュータネットワークでの使用に限定されず、それ故、本発明の他の実施形態は、異なるソフトウェア及びハードウェアシステムを使用可能である。
【０６０８】
さらに、以下の特許請求の範囲に記載されたプログラムの動作、実質的には全てのプログラムの動作は、多くの異なるプログラム、データ構造によって、実質的に異なる組織又は手順で実行され得る。これは、プログラムが極端に柔軟な技術であり、複雑な発想も、一旦、当業者に理解されてしまえば、実質的に無制限の方法で現れるからである。特許請求の範囲は、図面に記載されたステップ及び／又はステップの順番そのものに限定することを意味している訳ではない。上記記述において記載された擬似コードは、当業者が、不要な詳細で負担を負うことなく、本発明を実施するために知る必要のある事項をより効率的に伝えるために大幅に簡略化している点で、特に顕著である。その様な簡略化の点では、上述した擬似コードの構造は、プログラマーである当業者が本発明を実施する際に使用する実際のコードの構造からは大きく異なる。さらに、明細書中のソフトウェアで実行されるプログラムされた動作の多くは、他の実施形態ではハードウェアで実行され得る。
【０６０９】
上記で議論した多くの実施形態では、本発明の様々な特徴は、共に発生する様に示されているが、本発明のこれらの特徴の他の実施形態では別々に発生しても良い。本明細書の様々な部分において記載された副画素最適化及び非線形カラー・バランスの様々な図示は、垂直方向の副画素ストライプを持つＲＧＢ副画素アドレス可能な表示に関する。非線形カラー・バランス及び副画素最適化に関連する本発明の改善の多くは、水平方向の副画素ストライプを持つ副画素表示（装置）と同様に、ＢＧＲ又は他の種類の副画素アドレス可能性を持つ副画素表示（装置）でも使用され得る。
【０６１０】
上記で示した非線形カラー・バランスにおいて、カラー・バランスによって分配された副画素の輝度の部分は、画素内での最小副画素輝度よりも高い部分のみである。しかし、他の実施形態では、画素内でカラー・アンバランスを引き起こす副画素の輝度の他の部分（画素における中間又は最大の副画素輝度からの差分）が分配され得る。この様な実施形態では、中間又は最大より低い副画素輝度は、結果として、副画素の近傍において副画素輝度の重み付けられた減少分によって分配される負の輝度値である。上記に示した非線形カラー・バランス法は、副画素に対応する画素内でのカラー・アンバランスを引き起こす副画素輝度の部分を分配するのみである。これは、全体画素内で共通に発見される３つの連続するＲＧＢ又はＢＧＲ副画素の配列は知覚的に良好にカラー・バランスされているからである。もし、全体画素の副画素が同じ輝度を持っていれば、緑色が真ん中でない順番で同じ強度で示された同じ色の副画素の孤立したセットよりも人の目にカラー・バランスして見える。これは、全体画素の境界以外で現れるフォントの端がカラー・アンバランスして見える理由の１つである。
【０６１１】
しかし、他の非線形カラー・バランスの実施形態は、個々の全体画素内でのカラー・アンバランスを引き起こす副画素輝度の分配に制限する必要はない。他の非線形カラー・バランスの実施形態は、全体画素以外の領域内での副画素カラー・アンバランスの程度を決定し、そのような領域でのカラー・アンバランスに全体的又は部分的に基づいて副画素カラー・アンバランス値を分配することができる。例えば、一般に起こる複数のカラー・アンバランスのパターンに対して、カラー・バランスの知覚を維持しつつ、最小の空間的な拡散を生成する、カラー・アンバランスの分配を見つける調査が実行され、知覚的に選択された分配が全体画素以外の空間的な領域で発生するカラー・アンバランスを分散するために使用され得る。
【０６１２】
本発明のある特徴は、個々の画素に対してライン・カバレージ値によって輝度値を計算する副画素最適化画像の生成及び使用に関する。ライン又はエリアによるカバー関数の特定の記載なしに以下に請求した本発明の他の特徴は、副画素輝度を決定する方法に限定されるものではなく、例えば、カラービットマップ、グレースケールビットマップ、フォント、及び他の形状から成るソース画像のカバレージ値を決定する他の公知の方法（領域サンプリング技術を含むが、これに限定されない）を使用することができる。
【０６１３】
上記議論では、輝度値又はカバレージ値の副画素最適化ビットマップへの割り当てに使用されるソース画像ウィンドウは、矩形であり、多色副画素最適化画像において全体画素に一致するサイズを持ち、２色最適化画像において副画素に一致するサイズを持つ。他の実施形態では、異なる形状及びサイズのウィンドウが使用され得る。例えば、多色副画素最適化画像のソース画像ウィンドウは、全体出力画像画素に一致するサイズよりも幾分小さいサイズを持っても良い。幾つかの実施形態では、不規則な重み付け関数は、ソース画像ウィンドウ内のカバレージ値又は輝度値を出力画像のカバレージ値又は輝度値に変換することに使用される。例えば、多色副画素最適化画像では、サイズ及び位置が、輝度を決定する副画素に一致するソース画像ウィンドウの部分における輝度により重み付けをすることが好ましい。事実、図１７乃至１９で上述したライン・カバレージ配置は、中心重み付けを提供している。なぜならば、ライン・カバレージ値を決定しようとしている副画素の位置に一致するソース画像ウィンドウの部分を通じてのみ垂直線が延びているからである。
【０６１４】
本発明の多くの特徴は、副画素最適化の使用に明確に関連しているが、多くの他の特徴は副画素最適化に基づいていない。本発明の幾つかのその様な特徴では、副画素最適化を含まないアンチエイリアスの形態が使用され得る。副画素最適化を含まないアンチエイリアスの形態では、アンチエイリアスなしに提供され得るよりも高い解像度を持つ様に画像を表す。フォント画像の場合には特に顕著である。例えば、ｅｍ当たり７画素の大きさのフォントは、正しい形状を持ち、適切にヒンティングされ、アンチエイリアスを使用した（副画素最適化と共に又は副画素最適化なしに）場合には、比較的容易に判読可能である。但し、適切な副画素最適化は、小さなフォントをより判読容易にする。
【０６１５】
“ｓｃｒｅｅｎ”を参照する明細書及び請求の範囲では、特に、スケールダウン画像、テキスト、又はウェブページのレイアウトが表示される画面は、一般には、画面全体又は画面上のグラフィックウィンドウの様な画面の部分も含む。例えば、参照されるスケールダウン画面画像は、かなり大きな画面上のウィンドウの中に示され、又は例えば図１１４に示すツールバーの様なある種のグラフィカル・ユーザ・インターフェースにスペースが使用された後に残った小さな画面の部分上に示されても良い。また、本発明のある副画素最適化の特徴は、非副画素最適化技術で可能なより高い空間解像度でコンテンツを見せる様に、大型画面の全部又は実質的な部分を横切って画像及び／又はテキストを表示することに使用され得る。
【０６１６】
本発明の幾つかの実施形態は、特に、デジタル・コンテンツを仮想解像度でレイアウトし、スケールダウン解像度で表示することに関連している。本発明の他の特徴では、デジタル・コンテンツの画像及びテキストは、レイアウト前にスケールダウンされ、それらが見られるべき実際の解像度でレイアウトされることが好ましい。
【図面の簡単な説明】
【０６１７】
【図１】特に、比較的低解像度のシステム上における、ウェブブラウズ及び／又は他の種類のコンピュータで作成されたコンテンツの表示を向上させるための本発明の１つの特徴に従って使用される処理を示す図。
【図２】携帯ブラウザ、プロキシサーバ、ウェブサーバ及びフォントサーバを有する、本発明が実行可能なネットワークコンピューティング環境を示す図。
【図３】ブラウザ及びウェブサーバを有する、本発明が実行可能なネットワークコンピューティング環境を示す図。
【図４】ブラウザ及びウェブサーバを有する、本発明が実行可能な第２のネットワークコンピューティング環境を示す図。
【図５】ブラウザ及びウェブサーバを有する、本発明が実行可能な第３のネットワークコンピューティング環境を示す図。
【図６】表示されるべき標準のウェブコンテンツと、そのコンテンツをスケーリング及び／又は副画素最適化するための処理を含むブラウザ機能とを有する、本発明が実行可能なコンピュータシステムを示す図。
【図７】表示されるべきコンテンツ、そのコンテンツをスケーリング及び／又は副画素最適化するためのプロキシ処理、及びブラウザ機能を有する、本発明が実行可能な他のコンピュータシステムを示す図。
【図８】前もってスケーリング及び／又は副画素最適化されたコンテンツを有する、本発明が実行可能な第２の他のコンピュータシステムを示す図。
【図９】従来の垂直ストライプ型ＲＧＢ液晶表示装置を示す図。
【図１０】図１のステップ１０８及び１１２のそれぞれに関して参照された画像及びテキスト両方の副画素最適化の実行に含まれる、本発明の特徴の幾つか。
【図１１】３２０×２４０カラー表示（装置）上で標準のウェブコンテンツを表示させる場合における本発明の本実施形態によって、提供される判読性の水準を示す図。
【図１２】ソース画像１０２の一部に渡る、画素と副画素グリッドとのマッピングを示す図。
【図１３】図１２のマッピンググリッドの部分の拡大図。
【図１４】低解像度の表示（装置）の赤（Ｒ）の副画素の輝度を算出するために用いられるソース画像上のウィンドウを示す図。
【図１５】低解像度の表示（装置）の緑（Ｇ）の副画素の輝度を算出するために用いられるソース画像上のウィンドウを示す図。
【図１６】低解像度の表示（装置）の青（Ｂ）の副画素の輝度を算出するために用いられるソース画像上のウィンドウを示す図。
【図１７】異なる色の１又は複数の画素に重なるソース画像ウィンドウにおいて、赤（Ｒ）副画素のカバレージ値の部分を評価することにより、赤（Ｒ）副画素の副画素輝度を算出する走査ライン・カバレージ値方法において使用される、走査線を示す図。
【図１８】低解像度の表示（装置）の緑（Ｇ）副画素の輝度を算出するために使用される類似の走査線を示す図。
【図１９】低解像度の表示（装置）の青（Ｂ）副画素の輝度を算出するために使用される類似の走査線を示す図。
【図２０】図１７を再度示した図。
【図２１】赤画素ソース画像ウィンドウ内において異なるソース画像画素に重なる図２０に示した水平走査線の複数の部分を示す図。
【図２２】赤画素ソース画像ウィンドウ内において異なるソース画像画素に重なる図２０に示した垂直走査線の複数の部分を示す図。
【図２３】図１８と同じ図。
【図２４】緑画素ソース画像ウィンドウ内において異なるソース画像画素に重なる図２３に示した水平走査線の複数の部分を示す図。
【図２５】緑画素ソース画像ウィンドウ内において異なるソース画像画素に重なる図２３に示した垂直走査線の複数の部分を示す図。
【図２６】図１９と同じ図。
【図２７】青画素ソース画像ウィンドウ内において異なるソース画像画素に重なる図２６に示した水平走査線の複数の部分を示す図。
【図２８】青画素ソース画像ウィンドウ内において異なるソース画像画素に重なる図２６に示した垂直走査線の複数の部分を示す図。
【図２９】図１７乃至図２８に示したようなライン・カバレージ値に基づいて副画素輝度を算出する副画素最適化方法の、大幅に簡略化された擬似コード表記を示す図。
【図３０】副画素最適化・スケーリング画像において画素の色を算出するための“ライン・カバレージ値”方法の他の実施形態において、２本の水平走査線及び２本の垂直走査線がどのように使用され得るかを示す図。
【図３１】副画素最適化・スケーリング画像において画素の色を算出するための“ライン・カバレージ値”方法の他の実施形態において、２本の対角走査線がどのように使用されるかを示す図。
【図３２】副画素最適化・スケーリング画像において画素の色を算出するための“ライン・カバレージ値”方法の他の実施形態において、２本の対角走査線、２本の水平走査線及び２本の垂直走査線がどのように使用されるかを示す図。
【図３３】１／２水平及び垂直スケーリングにおいて、２本の水平カバレージ線に対するライン・カバレージ値を示す図。
【図３４】１／２水平及び垂直スケーリングにおいて、２本の垂直カバレージ線に対するライン・カバレージ値を示す図。
【図３５】約２／５水平及び垂直スケーリングにおいて、２本の水平カバレージ線に対するライン・カバレージ値を示す図。
【図３６】約２／５水平及び垂直スケーリングにおいて、２本の垂直カバレージ線に対するライン・カバレージ値を示す図。
【図３７】約２／３水平及び垂直スケーリングにおいて、２本の水平カバレージ線に対するライン・カバレージ値を示す図。
【図３８】約２／３水平及び垂直スケーリングにおいて、２本の垂直カバレージ線に対するライン・カバレージ値を示す図。
【図３９】副画素最適化・スケーリング画像の色の値を算出するための“エリア・カバレージ値”方法において使用されるソース画像画素領域を示す図。
【図４０】“エリア・カバレージ値”方法による副画素の輝度の値を算出するために使用されるソース画像ウィンドウ内での、異なるソース画像画素の領域を示すために、異なるハッチングを使用した以外は、図３９と同じ図。
【図４１】図３９及び図４０において議論されたようなカバレージ値に基づいて副画素輝度値を算出する副画素最適化方法の、大幅に簡略化された擬似コード表記を示す図。
【図４２】赤副画素に輝度の値を対応させることによって、ビットマップ画像のスケーリング・副画素最適化画像を作成する方法を示す図。
【図４３】緑副画素に輝度の値を対応させることによって、ビットマップ画像のスケーリング・副画素最適化画像を作成する方法を示す図。
【図４４】青副画素に輝度の値を対応させることによって、ビットマップ画像のスケーリング・副画素最適化画像を作成する方法を示す図。
【図４５】ＲＧＢグリッド下におけるグレースケールを示す図。
【図４６】個別の画素に対応する輝度が、従来の線形フィルタリング法によってどのように分配されるかを示す図。
【図４７】従来の線形フィルタリング法の結果として求められる副画素輝度の値を示す図。
【図４８】非線形フィルタリング法の下で、最小ソース画像輝度の値の分配を示す図。
【図４９】非線形フィルタリング法の下で、超過ソース画像輝度の値の分配を示す図。
【図５０】元のソース画素輝度に対する線形及び非線形フィルタリング法の結果の比較を示した図。
【図５１】元のソース画素輝度に対する線形及び非線形フィルタリング法の結果の比較を示した図。
【図５２】元のソース画素輝度に対する線形及び非線形フィルタリング法の結果の比較を示した図。
【図５３】２色ビットマップの副画素最適化された表現を作成するためのソフトウェアの大幅に簡略化した擬似コード表記を示した図。
【図５４】色と位置的な解像度との間のトレードオフをユーザが動的にできるようにするフローダイアグラムを示した図。
【図５５】アウトラインフォント形状により定義された文字・フォント形状と、副画素アドレス可能な表示（装置）にその形状を表現するために用いられる副画素を含む画素配列との間のマッピングを示した図。
【図５６】本発明の一実施形態に係るウェブページの３２０×２４０画面の画面ショットを示した図。
【図５７】図５６に示した画面ショットの２倍拡大図。
【図５８】コンピュータが如何にフォントビットマップ又はフォントサーバからのフォント・アウトラインにアクセスするかを示した図。
【図５９】コンピュータが如何にフォントビットマップ又はフォントビットマップに蓄積されたフォント・アウトラインにアクセスするかを示した図。
【図６０】図４８乃至図５２に記載された種類の非線形カラー・バランスを使用する文字・フォントの形状の副画素最適化されたビットパップを算出するための、大幅に簡略化されたアルゴリズムの表現を示した図。
【図６１】図５５に示されたような画素配列の個々の画素において３副画素の各々に対してカバレージ値を決めるのに使用され、図５５に示されたような文字・フォント形状画像におけるウィンドウのサイズを示した図。
【図６２】図５５に示されたような画素配列の個々の画素において３副画素の各々に対してカバレージ値を決めるのに使用され、図５５に示されたような文字・フォント形状画像におけるウィンドウのサイズを示した図。
【図６３】図５５に示されたような画素配列の個々の画素において３副画素の各々に対してカバレージ値を決めるのに使用され、図５５に示されたような文字・フォント形状画像におけるウィンドウのサイズを示した図。
【図６４】非矩形ラスタ化ユニットに対するカバレージ値を計算するために使用されている幾つかの従来技術を示した図。
【図６５】非矩形ラスタ化ユニットに対するカバレージ値を計算するために使用されている幾つかの従来技術を示した図。
【図６６】非矩形ラスタ化ユニットに対するカバレージ値を計算するために使用されている幾つかの従来技術を示した図。
【図６７】非矩形ラスタ化ユニットに対するカバレージ値を計算するために使用されている幾つかの従来技術を示した図。
【図６８】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図６９】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図７０】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図７１】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図７２】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図７３】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図７４】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図７５】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図７６】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図７７】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図７８】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図７９】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図８０】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図８１】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図８２】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図８３】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図８４】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図８５】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図８６】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図８７】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図８８】図６８乃至図８７に関して上述した一般的な種類の加重ライン・カバレージ値について使用され得る、他の配置のカバレージ線を示した図。
【図８９】図６８乃至図８７に関して上述した一般的な種類の加重ライン・カバレージ値について使用され得る、他の配置のカバレージ線を示した図。
【図９０】図６８乃至図８７に関して上述した一般的な種類の加重ライン・カバレージ値について使用され得る、他の配置のカバレージ線を示した図。
【図９１】画素の配列と、各々の副画素とをフォント・アウトラインの一部の画像にマッピングした図。
【図９２】図９１に示された配列の副画素に対して計算されている対応するカバレージ値を示した図。
【図９３】図４６に対応する図。図４６のように、所定の画素行内で各々の副画素カバレージ値の全てを、連続して近傍にある副画素に渡って分配する、従来技術の線形カラー・バランス法を示した図。
【図９４】図６０に関して記載された非線形カラー・バランス法に使用され得るカラー・バランスフィルタを示した図。
【図９５】図６０に関して記載された非線形カラー・バランス法に使用され得るカラー・バランスフィルタを示した図。
【図９６】図６０に関して全体画素のアルファ値のより制限された色空間に表現されたような方法によって、フォントビットマップに対して計算された全体画素のアルファ値を表現するために使用され得る、大幅に簡略化されたアルゴリズムの擬似コード表記。
【図９７】図６０及び図９６に示された方法の組み合わせによって作成されたフォントビットマップを使用する副画素アドレス可能な表示（装置）におけるテキストストリングを表示するための、大幅に簡略化されたアルゴリズムの擬似コード表記。
【図９８】本発明によってウェブページを３２０×２４０の画面に如何に上手く表示できるかを示した図であり、ウェブページの６４０×４８０のレイアウトの画面ショットを示した図。
【図９９】本発明が如何に図９８のウェブページを３２０×２４０の画面上に表示することができるかを示した図。
【図１００】図９８とは異なるウェブページの６４０×４８０のレイアウトの画面ショットを示した図。
【図１０１】図９９とは異なるウェブページの６４０×４８０のレイアウトの画面ショットを示した図。
【図１０２】幾つかのデータ構造と、プロキシサーバ及び薄型クライアントコンピュータによって薄型クライアントコンピュータのユーザがスケーリング、副画素最適化された画面上のウェブコンテンツにアクセスできるようにするために使用されるプログラムとの概略ブロック図。
【図１０３】図９８及び図９９で説明されたウェブページのＨＴＭＬコードの一部。
【図１０４】プロキシサーバによって作成されたウェブページのレイアウト及びプロキシサーバの仮想画面内にあるそのレイアウトの一部を示した図。この例では、そのレイアウトの一部は、図９９に示されたウェブページの一部に一致している。
【図１０５Ａ】図１０２に示されたプロキシサーバ上でのプログラムの、大幅に簡略化された擬似コード表記。
【図１０５Ｂ】図１０２に示されたプロキシサーバ上でのプログラムの、大幅に簡略化された擬似コード表記。
【図１０６Ａ】スケーリング及び副画素最適化されたウェブページの一部の表現を薄型クライアントにキャプチャ及びダウンロードするためのプログラムの大幅に簡略化された擬似コード表記を示した図。
【図１０６Ｂ】スケーリング及び副画素最適化されたウェブページの一部の表現を薄型クライアントにキャプチャ及びダウンロードするためのプログラムの、大幅に簡略化された擬似コード表記を示した図。
【図１０６Ｃ】スケーリング及び副画素最適化されたウェブページの一部の表現を薄型クライアントにキャプチャ及びダウンロードするためのプログラムの、大幅に簡略化された擬似コード表記を示した図。
【図１０７】図１０６Ａ乃至図１０６Ｃのプログラムによってキャプチャされたウェブページの表現の実際のダウンロードのためのプログラムの、大幅に簡略化された疑似コード表記を示した図。
【図１０８】図１０７で説明されたプログラムによって薄型クライアントにダウンロードされたデータの大幅に簡略化された表現を示した図。
【図１０９Ａ】図１０２に示された薄型クライアントにおけるプログラムの、大幅に簡略化された擬似コード表記を示した図。
【図１０９Ｂ】図１０２に示された薄型クライアントにおけるプログラムの、大幅に簡略化された擬似コード表記を示した図。
【図１０９Ｃ】図１０２に示された薄型クライアントにおけるプログラムの、大幅に簡略化された擬似コード表記を示した図。
【図１１０】図１０２に示された薄型クライアントにおけるウェブページ表示上のテキスト入力フィールド上をユーザがクリックした場合、ユーザがテキスト入力フィールドにテキストを入力できるようにするポップアップメニューが如何に示されるかを説明する図。
【図１１１】図１０２に示された薄型クライアントにおけるウェブページ表示上のテキスト入力フィールド上をユーザがクリックした場合、ユーザがテキスト入力フィールドにテキストを入力できるようにするポップアップメニューが如何に示されるかを説明する図。
【図１１２】図１０２に示された薄型クライアントにおけるウェブページ表示上のテキスト入力フィールド上をユーザがクリックした場合、ユーザがテキスト入力フィールドにテキストを入力できるようにするポップアップメニューが如何に示されるかを説明する図。
【図１１３】所望のウェブページにアクセスするためのＵＲＬを入力するために、同じポップアップキーボードをユーザがどのように使用するかを説明する図。
【図１１４】グラフィカル・ユーザ・インターフェース、及びＵＲＬのテキスト入力フィールドを含む薄型クライアントコンピュータの画面の最上部にツールバーを有する、本発明の一実施形態を説明している点以外は、図１３と同一である図。
【図１１５】クライアントコンピュータがウェブページに対してスクロール及びズームできるようにウェブページ全体のレイアウトを蓄積する本発明の他の実施形態において、プロキシサーバと薄型クライアントコンピュータとのそれぞれにおけるプログラムの、大幅に簡略化された疑似コード表示を説明する図。
【図１１６】クライアントコンピュータがウェブページに対してスクロール及びズームできるようにウェブページ全体のレイアウトを蓄積する本発明の他の実施形態において、プロキシサーバと薄型クライアントコンピュータとのそれぞれにおけるプログラムの、大幅に簡略化された疑似コード表示を説明する図。
【図１１７】図１１５及び図１１６で説明された擬似コードの実行を説明するために助けとなる概略図。
【図１１８】本発明によって、ユーザがどのようにウェブページ及び画面のコンテンツの一部を速やかに選択できるようになるかを説明した図。
【図１１９】本発明によって、ユーザがどのようにウェブページ及び画面のコンテンツの一部を速やかに選択できるようになるかを説明した図。
【図１２０】本発明によって、ユーザがどのようにウェブページ及び画面のコンテンツの一部を速やかに選択できるようになるかを説明した図。
【図１２１】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの１つの特徴を説明する図。
【図１２２】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの１つの特徴を説明する図。
【図１２３】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの１つの特徴を説明する図。
【図１２４】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの１つの特徴を説明する図。
【図１２５】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの１つの特徴を説明する図。
【図１２６】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの１つの特徴を説明する図。
【図１２７】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの１つの特徴を説明する図。
【図１２８】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの１つの特徴を説明する図。
【図１２９】ユーザが、所定の画面を横切って再び流れるテキストを大きなスケールで選択できるようにするための、大幅に簡略化された擬似コード表記。
【図１３０】図１２９に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図１３１】図１２９に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図１３２】図１２９に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図１３３】図１２９に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図１３４】図１２９に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図１３５】図１２９に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図１３６】図１２９に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図１３７】図１２９に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図１３８】多数のクライアントコンピュータが共通のフォントサーバ及び／又は共通のプロキシサーバにアクセスするようにどのようにプログラムされ得るのかを説明する図。
【図１３９】１又は複数のフォントサーバ上で使用され得るプログラムの大幅に簡略化された擬似コード表記を説明する図。
【図１４０】リモートコンピュータ上で実行されているアプリケーションプログラム（例えば１又は複数のウェブブラウザを含むがこれに限定されない）によって、このアプリケーションによるリモートコンピュータのオペレーティングシステムへの割り込み要求によってスケーリング・副画素最適化の方法で描画された画面を、クライアントコンピュータに表示させるように、本発明のある特徴が如何にして使用されるのかを説明する図。
【図１４１】副画素最適化、縮小の表示がどのようにして、所定のコンピュータ上で実行されているアプリケーションプログラムによって作成された画面を（このアプリケーションによって生成されたコンピュータのオペレーティングシステムへの割り込み要求によってこのような表示を作成するように、このアプリケーションがプログラムされていない場合であっても）出力し得るかを説明する図。アプリケーションプログラムは、例えば１又は複数のウェブブラウザを含むが、これに限定されない。
【図１４２】携帯型の小型画面の薄型クライアントコンピュータが、ローカル及び／又はインターネットのワイヤレス通信を通じて、ウェブコンテンツ及び／又は種々のアプリケーションプログラムの画面出力にアクセスできるように、本発明のある特徴が如何に使用されるかを説明する図。
【図１４３】本発明の幾つかの実施形態において、ポートレイト方向で実行されるようにプログラムされたオペレーティングシステムをもつコンピューティングデバイス回転させることによって、副画素最適化の出力がどのようにランドスケープ方向で表示されるのかを説明する図。
【図１４４】本発明の幾つかの実施形態において、ポートレイト方向で実行されるようにプログラムされたオペレーティングシステムをもつコンピューティングデバイス回転させることによって、副画素最適化の出力がどのようにランドスケープ方向で表示されるのかを説明する図。
【図１４５】副画素最適化の解像度で単純な形状を描写するために使用される、大幅に簡略化された擬似コード表記を説明する図。
【図１４６】コンピュータの画面上に副画素最適化された要素を描画するためにウェブアプレットがどのように使用されるかの、大幅に簡略化された擬似コード表記。
【図１４７】ロールオーバ画像がどのように副画素最適化されるを説明する大幅に簡略化されたブロック図。
【図１４８】ＧＩＦＦアニメーションがどのように副画素最適化され得るかを説明する大幅に簡略化されたブロック図。
【図１４９】３−Ｄアニメーションがどのように副画素最適化される得るかを説明する大幅に簡略化されたブロック図。
【図１５０】クライアントサーバ上に副画素最適化された画像を提供するために、クライアント／サーバ・ゲームシステムがどのように使用され得るかを説明する大幅に簡略化されたブロック図。
【図１５１】クライアントサーバ上に副画素最適化された画像を提供するために、クライアント／サーバ・ゲームシステムがどのように使用され得るかを説明する大幅に簡略化されたブロック図。
【図１５２】副画素最適化された表示が、どのようにして、対応する透過マップを持つ画像から作成されるのかを説明する概略ブロック図。
【図１５３】キーフレーム間の補完を使用した映像が、どのようにして、副画素最適化され得るかを説明する概略ブロック図。
【図１５４】全体よりも少ない部分への画面変化の描画を含む表示による映像が、どのようにして、副画素最適化され得るかを説明する図。
【図１５５】表示ウィンドウに対して移動する画像を表示する他の方法を表す大幅に簡略化された疑似コード表示。
【図１５６】表示ウィンドウに対して移動する画像を表示する他の方法を表す大幅に簡略化された疑似コード表示。
【図１５７】種々の圧縮技術によって表現された映像に対して副画素最適化が如何に適用されるかを説明する大幅に簡略化された疑似コード表示。
【図１５８】種々の圧縮技術によって表現された映像に対して副画素最適化が如何に適用されるかを説明する大幅に簡略化された擬似コード表記。
【図１５９】種々の圧縮技術によって表現された映像に対して副画素最適化が如何に適用されるかを説明する大幅に簡略化された擬似コード表記。
【図１６０】サーバコンピュータが、副画素最適化、縮小映像をクライアントコンピュータにダウンロードできるようにするためのプログラムの大幅に簡略化された擬似コード表記。
【図１６１】クライアントコンピュータが、他のサーバ及びプロキシサーバを通じて副画素最適化、縮小映像にアクセスできるようにするための、クライアントサーバ及びプロキシサーバ上におけるプログラムの大幅に簡略化された擬似コード表記。
【図１６２】電子インクがより明瞭に認識され得るようにするプログラムの大幅に簡略化された擬似コード表記。
【図１６３】図１６２に関して記載されたプログラムの利点を説明するための図。
【図１６４】図１６２に関して記載されたプログラムの利点を説明するための図。
【図１６５】図１６２に関して記載されたプログラムの利点を説明するための図。
【図１６６】図１６２に関して記載されたプログラムの利点を説明するための図。
【図１６７】本発明が、方法に関連するのみでなく、その方法に対して機械読み取り可能な形式で蓄積されるか又は伝送信号で実施されるプログラム及びデータ、その方法を実行するため、及び／又は、そのプログラム及び／又はデータを使用するためのプログラム又はハードワイヤー結線されたコンピュータシステムに関連することを説明する図。
【図１６８】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図１６９】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図１７０】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図１７１】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図１７２】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図１７３】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図１７４】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図１７５】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図１７６】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図１７７】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図１７８】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図１７９】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図１８０】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図１８１】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図１８２】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図１８３】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図１８４】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図１８５】図１２９乃至図１３４に関して記載された選択テキストリフロー法のより詳細な説明。
【図１８６】図１１８乃至図１２０に関して記載された一般的な種類の、ズーム・ツー・フィット法の詳細な疑似コード表示。
【図１８７】ユーザがウェブページのレイアウトの表示内で容易にナビゲートすることができる、ドラッグ・スクロール法の詳細な擬似コード表記。
【図１８８】ユーザがウェブページのレイアウトの表示の所望の部分に速やかにズームを選択できるようにする、クリック・ズーム法の詳細な擬似コード表記。
【図１８９】図１２１乃至図１２８に関してある程度詳細に記載されたズームクリック法の概略擬似コード表記。
【図１９０】ユーザが、グリーキングを使用しているウェブページのズームアウト表示を見ることができるようにする方法の概略擬似コード表記。
【符号の説明】
【０６１８】
100：標準的なウェブ・コンテンツ
138：ネットワーク
200：薄型クライアント・ブラウザ
210：プロキシ・サーバ
216：プロキシ・プロセス
220：サーバ
230：フォント・サーバ
232：フォント・ビットマップ
【図１】
2005501310.tif 000003
【図２】
2005501310.tif 000004
【図３】
2005501310.tif 000005
【図４】
2005501310.tif 000006
【図５】
2005501310.tif 000007
【図６】
2005501310.tif 000008
【図７】
2005501310.tif 000009
【図８】
2005501310.tif 000010
【図９】
2005501310.tif 000011
【図１０】
2005501310.tif 000012
【図１１】
2005501310.tif 000013
【図１２】
2005501310.tif 000014
【図１３】
2005501310.tif 000015
【図１４】
2005501310.tif 000016
【図１５】
2005501310.tif 000017
【図１６】
2005501310.tif 000018
【図１７】
2005501310.tif 000019
【図１８】
2005501310.tif 000020
【図１９】
2005501310.tif 000021
【図２０】
2005501310.tif 000022
【図２１】
2005501310.tif 000023
【図２２】
2005501310.tif 000024
【図２３】
2005501310.tif 000025
【図２４】
2005501310.tif 000026
【図２５】
2005501310.tif 000027
【図２６】
2005501310.tif 000028
【図２７】
2005501310.tif 000029
【図２８】
2005501310.tif 000030
【図２９】
2005501310.tif 000031
【図３０】
2005501310.tif 000032
【図３１】
2005501310.tif 000033
【図３２】
2005501310.tif 000034
【図３３】
2005501310.tif 000035
【図３４】
2005501310.tif 000036
【図３５】
2005501310.tif 000037
【図３６】
2005501310.tif 000038
【図３７】
2005501310.tif 000039
【図３８】
2005501310.tif 000040
【図３９】
2005501310.tif 000041
【図４０】
2005501310.tif 000042
【図４１】
2005501310.tif 000043
【図４２】
2005501310.tif 000044
【図４３】
2005501310.tif 000045
【図４４】
2005501310.tif 000046
【図４５】
2005501310.tif 000047
【図４６】
2005501310.tif 000048
【図４７】
2005501310.tif 000049
【図４８】
2005501310.tif 000050
【図４９】
2005501310.tif 000051
【図５０】
2005501310.tif 000052
【図５１】
2005501310.tif 000053
【図５２】
2005501310.tif 000054
【図５３】
2005501310.tif 000055
【図５４】
2005501310.tif 000056
【図５５】
2005501310.tif 000057
【図５６】
2005501310.tif 000058
【図５７】
2005501310.tif 000059
【図５８】
2005501310.tif 000060
【図５９】
2005501310.tif 000061
【図６０】
2005501310.tif 000062
【図６１】
2005501310.tif 000063
【図６２】
2005501310.tif 000064
【図６３】
2005501310.tif 000065
【図６４】
2005501310.tif 000066
【図６５】
2005501310.tif 000067
【図６６】
2005501310.tif 000068
【図６７】
2005501310.tif 000069
【図６８】
2005501310.tif 000070
【図６９】
2005501310.tif 000071
【図７０】
2005501310.tif 000072
【図７１】
2005501310.tif 000073
【図７２】
2005501310.tif 000074
【図７３】
2005501310.tif 000075
【図７４】
2005501310.tif 000076
【図７５】
2005501310.tif 000077
【図７６】
2005501310.tif 000078
【図７７】
2005501310.tif 000079
【図７８】
2005501310.tif 000080
【図７９】
2005501310.tif 000081
【図８０】
2005501310.tif 000082
【図８１】
2005501310.tif 000083
【図８２】
2005501310.tif 000084
【図８３】
2005501310.tif 000085
【図８４】
2005501310.tif 000086
【図８５】
2005501310.tif 000087
【図８６】
2005501310.tif 000088
【図８７】
2005501310.tif 000089
【図８８】
2005501310.tif 000090
【図８９】
2005501310.tif 000091
【図９０】
2005501310.tif 000092
【図９１】
2005501310.tif 000093
【図９２】
2005501310.tif 000094
【図９３】
2005501310.tif 000095
【図９４】
2005501310.tif 000096
【図９５】
2005501310.tif 000097
【図９６】
2005501310.tif 000098
【図９７】
2005501310.tif 000099
【図９８】
2005501310.tif 000100
【図９９】
2005501310.tif 000101
【図１００】
2005501310.tif 000102
【図１０１】
2005501310.tif 000103
【図１０２】
2005501310.tif 000104
【図１０３】
2005501310.tif 000105
【図１０４】
2005501310.tif 000106
【図１０５Ａ】
2005501310.tif 000107
【図１０５Ｂ】
2005501310.tif 000108
【図１０６Ａ】
2005501310.tif 000109
【図１０６Ｂ】
2005501310.tif 000110
【図１０６Ｃ】
2005501310.tif 000111
【図１０７】
2005501310.tif 000112
【図１０８】
2005501310.tif 000113
【図１０９Ａ】
2005501310.tif 000114
【図１０９Ｂ】
2005501310.tif 000115
【図１０９Ｃ】
2005501310.tif 000116
【図１１０】
2005501310.tif 000117
【図１１１】
2005501310.tif 000118
【図１１２】
2005501310.tif 000119
【図１１３】
2005501310.tif 000120
【図１１４】
2005501310.tif 000121
【図１１５】
2005501310.tif 000122
【図１１６】
2005501310.tif 000123
【図１１７】
2005501310.tif 000124
【図１１８】
2005501310.tif 000125
【図１１９】
2005501310.tif 000126
【図１２０】
2005501310.tif 000127
【図１２１】
2005501310.tif 000128
【図１２２】
2005501310.tif 000129
【図１２３】
2005501310.tif 000130
【図１２４】
2005501310.tif 000131
【図１２５】
2005501310.tif 000132
【図１２６】
2005501310.tif 000133
【図１２７】
2005501310.tif 000134
【図１２８】
2005501310.tif 000135
【図１２９】
2005501310.tif 000136
【図１３０】
2005501310.tif 000137
【図１３１】
2005501310.tif 000138
【図１３２】
2005501310.tif 000139
【図１３３】
2005501310.tif 000140
【図１３４】
2005501310.tif 000141
【図１３５】
2005501310.tif 000142
【図１３６】
2005501310.tif 000143
【図１３７】
2005501310.tif 000144
【図１３８】
2005501310.tif 000145
【図１３９】
2005501310.tif 000146
【図１４０】
2005501310.tif 000147
【図１４１】
2005501310.tif 000148
【図１４２】
2005501310.tif 000149
【図１４３】
2005501310.tif 000150
【図１４４】
2005501310.tif 000151
【図１４５】
2005501310.tif 000152
【図１４６】
2005501310.tif 000153
【図１４７】
2005501310.tif 000154
【図１４８】
2005501310.tif 000155
【図１４９】
2005501310.tif 000156
【図１５０】
2005501310.tif 000157
【図１５１】
2005501310.tif 000158
【図１５２】
2005501310.tif 000159
【図１５３】
2005501310.tif 000160
【図１５４】
2005501310.tif 000161
【図１５５】
2005501310.tif 000162
【図１５６】
2005501310.tif 000163
【図１５７】
2005501310.tif 000164
【図１５８】
2005501310.tif 000165
【図１５９】
2005501310.tif 000166
【図１６０】
2005501310.tif 000167
【図１６１】
2005501310.tif 000168
【図１６２】
2005501310.tif 000169
【図１６３】
2005501310.tif 000170
【図１６４】
2005501310.tif 000171
【図１６５】
2005501310.tif 000172
【図１６６】
2005501310.tif 000173
【図１６７】
2005501310.tif 000174
【図１６８】
2005501310.tif 000175
【図１６９】
2005501310.tif 000176
【図１７０】
2005501310.tif 000177
【図１７１】
2005501310.tif 000178
【図１７２】
2005501310.tif 000179
【図１７３】
2005501310.tif 000180
【図１７４】
2005501310.tif 000181
【図１７５】
2005501310.tif 000182
【図１７６】
2005501310.tif 000183
【図１７７】
2005501310.tif 000184
【図１７８】
2005501310.tif 000185
【図１７９】
2005501310.tif 000186
【図１８０】
2005501310.tif 000187
【図１８１】
2005501310.tif 000188
【図１８２】
2005501310.tif 000189
【図１８３】
2005501310.tif 000190
【図１８４】
2005501310.tif 000191
【図１８５】
2005501310.tif 000192
【図１８６】
2005501310.tif 000193
【図１８７】
2005501310.tif 000194
【図１８８】
2005501310.tif 000195
【図１８９】
2005501310.tif 000196
【図１９０】
2005501310.tif 000197
【国際公開パンフレット】
2005501310.tif 000198
2005501310.tif 000199
2005501310.tif 000200
2005501310.tif 000201
2005501310.tif 000202
2005501310.tif 000203
2005501310.tif 000204
2005501310.tif 000205
2005501310.tif 000206
2005501310.tif 000207
2005501310.tif 000208
2005501310.tif 000209
2005501310.tif 000210
2005501310.tif 000211
2005501310.tif 000212
2005501310.tif 000213
2005501310.tif 000214
2005501310.tif 000215
2005501310.tif 000216
2005501310.tif 000217
2005501310.tif 000218
2005501310.tif 000219
2005501310.tif 000220
2005501310.tif 000221
2005501310.tif 000222
2005501310.tif 000223
2005501310.tif 000224
2005501310.tif 000225
2005501310.tif 000226
2005501310.tif 000227
2005501310.tif 000228
2005501310.tif 000229
2005501310.tif 000230
2005501310.tif 000231
2005501310.tif 000232
2005501310.tif 000233
2005501310.tif 000234
2005501310.tif 000235
2005501310.tif 000236
2005501310.tif 000237
2005501310.tif 000238
2005501310.tif 000239
2005501310.tif 000240
2005501310.tif 000241
2005501310.tif 000242
2005501310.tif 000243
2005501310.tif 000244
2005501310.tif 000245
2005501310.tif 000246
2005501310.tif 000247
2005501310.tif 000248
2005501310.tif 000249
2005501310.tif 000250
2005501310.tif 000251
2005501310.tif 000252
2005501310.tif 000253
2005501310.tif 000254
2005501310.tif 000255
2005501310.tif 000256
2005501310.tif 000257
2005501310.tif 000258
2005501310.tif 000259
2005501310.tif 000260
2005501310.tif 000261
2005501310.tif 000262
2005501310.tif 000263
2005501310.tif 000264
2005501310.tif 000265
2005501310.tif 000266
2005501310.tif 000267
2005501310.tif 000268
2005501310.tif 000269
2005501310.tif 000270
2005501310.tif 000271
2005501310.tif 000272
2005501310.tif 000273
2005501310.tif 000274
2005501310.tif 000275
2005501310.tif 000276
2005501310.tif 000277
2005501310.tif 000278
2005501310.tif 000279
2005501310.tif 000280
2005501310.tif 000281
2005501310.tif 000282
2005501310.tif 000283
2005501310.tif 000284
2005501310.tif 000285
2005501310.tif 000286
2005501310.tif 000287
2005501310.tif 000288
2005501310.tif 000289
2005501310.tif 000290
2005501310.tif 000291
2005501310.tif 000292
2005501310.tif 000293
2005501310.tif 000294
2005501310.tif 000295
2005501310.tif 000296
2005501310.tif 000297
2005501310.tif 000298
2005501310.tif 000299
2005501310.tif 000300
2005501310.tif 000301
2005501310.tif 000302
2005501310.tif 000303
2005501310.tif 000304
2005501310.tif 000305
2005501310.tif 000306
2005501310.tif 000307
2005501310.tif 000308
2005501310.tif 000309
2005501310.tif 000310
2005501310.tif 000311
2005501310.tif 000312
2005501310.tif 000313
2005501310.tif 000314
2005501310.tif 000315
2005501310.tif 000316
2005501310.tif 000317
2005501310.tif 000318
2005501310.tif 000319
2005501310.tif 000320
2005501310.tif 000321
2005501310.tif 000322
2005501310.tif 000323
2005501310.tif 000324
2005501310.tif 000325
2005501310.tif 000326
2005501310.tif 000327
2005501310.tif 000328
2005501310.tif 000329
2005501310.tif 000330
2005501310.tif 000331
2005501310.tif 000332
2005501310.tif 000333
2005501310.tif 000334
2005501310.tif 000335
2005501310.tif 000336
2005501310.tif 000337
2005501310.tif 000338
2005501310.tif 000339
2005501310.tif 000340
2005501310.tif 000341
2005501310.tif 000342
2005501310.tif 000343
2005501310.tif 000344
2005501310.tif 000345
2005501310.tif 000346
2005501310.tif 000347
2005501310.tif 000348
2005501310.tif 000349
2005501310.tif 000350
2005501310.tif 000351
2005501310.tif 000352
2005501310.tif 000353
2005501310.tif 000354
2005501310.tif 000355
2005501310.tif 000356
2005501310.tif 000357
2005501310.tif 000358
2005501310.tif 000359
2005501310.tif 000360
2005501310.tif 000361
2005501310.tif 000362
2005501310.tif 000363
2005501310.tif 000364
2005501310.tif 000365
2005501310.tif 000366
2005501310.tif 000367
2005501310.tif 000368
2005501310.tif 000369
2005501310.tif 000370
2005501310.tif 000371
2005501310.tif 000372
2005501310.tif 000373
2005501310.tif 000374
2005501310.tif 000375
2005501310.tif 000376
2005501310.tif 000377
2005501310.tif 000378
2005501310.tif 000379
2005501310.tif 000380
2005501310.tif 000381
2005501310.tif 000382
2005501310.tif 000383
2005501310.tif 000384
2005501310.tif 000385
2005501310.tif 000386
2005501310.tif 000387
2005501310.tif 000388
2005501310.tif 000389
2005501310.tif 000390
2005501310.tif 000391
2005501310.tif 000392
2005501310.tif 000393
2005501310.tif 000394
2005501310.tif 000395
2005501310.tif 000396
2005501310.tif 000397
2005501310.tif 000398
2005501310.tif 000399
2005501310.tif 000400
2005501310.tif 000401
2005501310.tif 000402
2005501310.tif 000403
2005501310.tif 000404
2005501310.tif 000405
2005501310.tif 000406
2005501310.tif 000407
2005501310.tif 000408
2005501310.tif 000409
2005501310.tif 000410
2005501310.tif 000411
2005501310.tif 000412
2005501310.tif 000413
2005501310.tif 000414
2005501310.tif 000415
2005501310.tif 000416
2005501310.tif 000417
2005501310.tif 000418
2005501310.tif 000419
2005501310.tif 000420
2005501310.tif 000421
2005501310.tif 000422
2005501310.tif 000423
2005501310.tif 000424
2005501310.tif 000425
2005501310.tif 000426
2005501310.tif 000427
【国際調査報告】
2005501310.tif 000428
2005501310.tif 000429