(57)【要約】本発明の一つの特徴によれば、固定解像度スクリーン上に第１縮尺ビュー及び第２縮尺ビューでウェブページを選択的に表示することが出来る。第２縮尺ビューはより小さなコラム幅を有するが、コラム幅に関連してより大きなフォントサイズを有する。第１及び第２縮尺ビューは、それらの表示解像度に対して最適化されたフォントを使用する文字列を表示する。本発明の他の特徴はよく似ているが、固定解像度表示上での使用に限定されず、この特徴によって、ユーザが画像サイズ、コラム幅、及び、グループとしての相対フォントサイズの変更を選択することが出来る。本発明の第１及び第２の特徴を組み合わせることが出来る。また、画像サイズ及び水平置換を拡大／縮小することが出来る。本発明の第３の特徴によれば、縮小されたコラムの幅及び水平置換、及び、ピクセル最適化されたフォントで固定ピクセル解像度スクリーン上にウェブページを表示する。
2006524367.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが一つ又は複数の入力に関する第１セットを生成することを選択可能であり、一つ又は複数の入力に関する第２セットを生成することを選択可能であるユーザインターフェイスを提供することと、
第１縮尺ビュー、又は、第２縮尺ビューを用いて、前記スクリーン上に所定のウェブページを表示することによって、ユーザが入力に関する第１セット、又は、入力に関する第２セットをそれぞれ生成しているか否かに対応することと、で構成され、
前記第１縮尺ビューに於いて、テキストを含むコラムが第１幅を有し、テキスト文字列が前記第１コラム幅に関連した第１フォントサイズを有し、
前記第２縮尺ビューに於いて、前記コラムがより小さな第２幅を有し、前記テキスト文字列が、前記第１コラム幅に関連した前記第１フォントサイズよりも大きな、前記第２コラム幅に関連した第２フォントサイズを有し、
前記テキスト文字列のそれぞれの文字は、前記ビューで前記スクリーン上に表示されるピクセル解像度で、可読性を向上させるために文字の形状及びピクセル配置が選択されているフォントビットマップを用いて、それぞれの縮尺ビューで表示される、固定ピクセル解像度スクリーン上にウェブページを表示する方法。
【請求項２】
前記第１入力、及び、前記第２入力の生成によって、グループとしてコラム幅及び相対フォントサイズの表示パラメータを、それぞれのそうした表示パラメータを別々に変更するために別々に選択する必要なく、ユーザが変更可能な、請求項１に記載の固定ピクセル解像度スクリーン上にウェブページを表示する方法。
【請求項３】
前記第１縮尺ビューで、前記コラムが第１水平置換を有し、
前記第２縮尺ビューで、前記コラムがより小さな第２水平置換を有し、前記第２フォントサイズが、前記第２水平置換に関連して、前記第１水平置換に関連した前記第１フォントサイズよりも大きい、請求項１に記載の固定ピクセル解像度スクリーン上にウェブページを表示する方法。
【請求項４】
前記ウェブページが、一つ又は複数のコラムが他のコラムの右側に水平に置換されるマルチコラムレイアウトで表示され、
前記水平置換は、そうした水平方向に置換されたコラムの水平位置を決定する、請求項３に記載の固定ピクセル解像度スクリーン上にウェブページを表示する方法。
【請求項５】
前記第１縮尺ビューに於いて、画像は第１サイズを有し、
前記第２縮尺ビューに於いて、前記画像はより小さな第２サイズを有し、前記第２フォントサイズは、前記第２画像サイズに関連して、前記第１画像サイズに関連した前記第１フォントサイズよりも大きい、請求項１に記載の固定ピクセル解像度スクリーン上にウェブページを表示する方法。
【請求項６】
ユーザが一つ又は複数の入力の第１セットを生成することを選択することが可能であり、一つ又は複数の入力の第２セットを生成することを選択することが可能なユーザインターフェイスをユーザに対して提供することと、
第１縮尺ビュー、又は、第２縮尺ビューを用いて、前記スクリーン上に所定のウェブページをそれぞれ表示することによって、入力の前記第１セット、又は、入力の前記第２セットをユーザが生成したか否かに対応することと、を含み、
前記第１縮尺ビューに於いて、画像が第１サイズを有し、テキストを含むコラムが第１幅を有し、テキスト文字列が、前記第１画像サイズ及びコラム幅に関連した第１フォントサイズを有しており、
前記第２縮尺ビューに於いて、前記画像がより小さな第２サイズを有し、前記コラムがより小さな第２幅を有し、前記テキスト文字列が、前記第２画像サイズ及びコラム幅に関連して、前記第１画像サイズ及び前記コラム幅に関連した前記第１フォントサイズよりも大きな第２フォントサイズを有しており、
前記第１入力、及び、前記第２入力の生成によって、グループとして画像サイズ、コラム幅、及び、相対フォントサイズの表示パラメータを、ユーザが２つ又はそれを超えるそうした表示パラメータを変更するために別々に選択する必要なく変更可能な、スクリーン上にウェブページを表示する方法。
【請求項７】
前記第１縮尺ビューに於いて、前記コラムが第１水平置換を有しており、
前記第２縮尺ビューに於いて、前記コラムがより小さな第２水平置換を有し、前記第２フォントサイズが前記第２水平置換に関連して、前記第１水平置換に関連した前記第１フォントサイズよりも大きく、
前記第１及入力、及び、前記第２入力の生成によって、画像サイズ、コラム幅、コラム水平置換、及び、グループとしての相対的なフォントサイズに関する表示パラメータを、ユーザが２つ又はそれを超えるそうした表示パラメータの変更を別々に選択する必要なく変更可能である、請求項６に記載のスクリーン上にウェブページを表示する方法。
【請求項８】
前記ウェブページは、一つ又は複数のコラムが他のコラムの右側に水平方向に置換されるマルチコラムレイアウトで表示され、
前記水平置換は、そうした水平方向に置換されたコラムの水平位置を決定する、請求項７に記載のスクリーン上にウェブページを表示する方法。
【請求項９】
前記第１縮尺ビューに於いて、前記画像は第１水平置換を有しており、
前記第２縮尺ビューに於いて、前記画像はより小さな第２水平置換を有しており、前記第２フォントサイズは、前記第２画像水平置換に関連して、前記第１画像水平置換に関連した前記第１フォントサイズよりも大きく、
前記第１入力、及び、前記第２入力の生成によって、画像サイズ、コラム幅、コラム水平置換、画像水平置換、及び、グループとしての相対フォントサイズに関する表示パラメータを、ユーザが２つ又はそれを超えるそうした表示パラメータを変更するために別々に選択する必用なく、変更することが可能である、請求項７に記載のスクリーン上にウェブページを表示する方法。
【請求項１０】
前記ウェブページは、前記画像に対して特定されたピクセルサイズ、及び、前記コラムに対して特定されたピクセル幅を含み、
前記第２画像サイズは、前記特定されたピクセルサイズよりも小さなピクセルサイズであり、
前記第２コラム幅は、前記特定されたコラム幅よりも小さなピクセル幅である、請求項６に記載のスクリーン上にウェブページを表示する方法。
【請求項１１】
前記画像に関する前記特定されたピクセルサイズ、及び、前記コラムに関する前記特定されたピクセル幅の両方が、前記第２ビューで同一倍率によって縮小される、請求項１０に記載のスクリーン上にウェブページを表示する方法。
【請求項１２】
前記第１画像サイズは、前記特定されたピクセルサイズよりも小さく、前記第２画像サイズよりも大きなピクセルサイズであり、
前記第１コラム幅は、前記特定されたコラム幅よりも小さく、前記第２コラム幅よりも大きなピクセル幅である、請求項１０に記載のスクリーン上にウェブページを表示する方法。
【請求項１３】
前記画像に関する前記特定されたピクセルサイズ、及び、前記コラムに関する前記特定されたピクセル幅の両方は、前記第１ビューで同一の第１総量、及び、前記第２ビューで同一のより大きな第２総量によって縮小される、請求項１２に記載のスクリーン上にウェブページを表示する方法。
【請求項１４】
前記第１ビュー、及び、前記第２ビューの両方で、前記文字列の表示に対して同一のフォントサイズが使用される、請求項６に記載のスクリーン上にウェブページを表示する方法。
【請求項１５】
ユーザによって一つ又は複数の入力に関する第１セットを形成することが可能であり、一つ又は複数の入力に関する第２セットを形成することが可能であるユーザインターフェイスを提供することと、
第１縮尺ビュー、又は、第２縮尺ビューを用いて、スクリーン上に所定のウェブページを表示することによって、ユーザが入力の前記第１セット、又は、入力の前記第２セットをそれぞれ形成したか否かに対応することと、で構成され、
前記第１縮尺ビューに於いて、画像が第１サイズ及び第１水平置換を有し、テキストを含むコラムが第１幅及び第１水平置換を有し、テキスト文字列が前記第１画像サイズ、コラム幅、及び、水平置換に関連した第１フォントサイズを有し、
第２縮尺ビューに於いて、前記画像がより小さな第２サイズ、及び、より小さな第２水平置換を有し、前記コラムがより小さな第２幅、及び、より小さな第２水平置換を有し、前記テキスト文字列が、前記第２画像サイズ、コラム幅、及び、水平置換に関連して、前記第１画像サイズ、コラム幅、及び、水平置換に関連した前記第１フォントサイズよりも大きい第２フォントサイズを有し、
文字の形状及びピクセル配置が、フォントビットマップが前記ビューで前記スクリーン上に表示されるピクセル解像度で、可読性を向上させるために選択されているフォントビットマップを用いて、前記テキスト文字列のそれぞれの文字がそれぞれの縮尺ビューで表示され、
前記第１入力、及び、前記第２入力の生成によって、画像サイズ、コラム幅、水平置換、及び、グループとしての相対的なフォントサイズに関する表示パラメータを、ユーザが２つ又はそれを超えるそうした表示パラメータを変更させるために別々に選択する必用なく、変更することが可能であり、
一つ、又は、複数のコラムが他のコラムの右側に水平方向に置換されるマルチコラムレイアウトを用いて、前記ウェブページがそれぞれの縮尺ビューで表示され、
前記第１水平コラム置換、及び、前記第２水平コラム置換が、前記第１縮尺ビュー及び前記第２縮尺ビューで、そうした水平方向に置換されたコラムの水平位置をそれぞれ決定する、固定ピクセル解像度スクリーン上にマルチコラムェブページを表示する方法。
【請求項１６】
前記ウェブページは、前記画像、コラム幅、及び、水平置換に対した特定されたピクセルサイズを含んでおり、
前記第２画像サイズ、コラム幅、及び水平置換は、前記画像、コラム幅、及び、水平置換に関する前記特定されたピクセルサイズよりも小さなピクセルサイズをそれぞれ有する、請求項１５に記載の固定ピクセル解像度スクリーン上にマルチコラムウェブページを表示する方法。
【請求項１７】
前記画像、コラム幅、及び、水平置換に関する前記特定されたピクセルサイズの両方が前記第２ビューで同一倍率によって縮小される、請求項１６に記載の固定ピクセル解像度スクリーン上にマルチコラムウェブページを表示する方法。
【請求項１８】
前記第１画像サイズ、コラム幅、及び、水平置換は、前記画像、コラム幅、及び、水平置換に関する特定されたピクセルサイズよりも小さいが、前記第２画像サイズ、コラム幅、及び、水平置換のそれぞれのピクセルサイズよりも大きなピクセルサイズをそれぞれ有する、請求項１６に記載の固定ピクセル解像度スクリーン上にマルチコラムウェブページを表示する方法。
【請求項１９】
前記画像、コラム幅、及び、水平置換に関する特定されたピクセルサイズの両方が、前記第１ビューで同一の第１総量によって、及び、前記第２ビューでより大きな同一の第２総量によって縮小される、請求項１８に記載の固定ピクセル解像度スクリーン上にマルチコラムウェブページを表示する方法。
【請求項２０】
前記第１ビュー、及び、前記第２ビューの両方に於いて、同一フォントサイズが前記文字列の表示用に使用される、請求項１５に記載の固定ピクセル解像度スクリーン上にマルチコラムウェブページを表示する方法。
【請求項２１】
文字列がレイアウトされるコラムに対するウェブページに関連して、テキスト文字列、特定されたピクセル幅、水平ピクセル置換を含む、ウェブページのコンテンツにアクセスすることと、
前記特定されたピクセル幅に関連して比例的に縮小されたピクセル幅、及び、前記特定された水平ピクセル置換に関連して比例的に縮小された水平ピクセル置換を用いて、前記コラムがスクリーン上に表示され、
前記スクリーン上に表示されるピクセル解像度で可読性を向上させるために、文字の形状、及び、文字のピクセル配置が選択されているフォントビットマップを用いて、前記コラムに、前記テキスト文字列のそれぞれの文字が表示され、
フォント文字列の文字を表示するために使用されるフォントが、少なくとも１ピクセル行に於いて、２つの水平方向に分離されたストロークを表現する、それぞれの側に於ける一つ又は複数の比較的覆われているピクセルの間に水平方向に設置された、少なくとも一つの比較的覆われていないピクセルを有することによって、形状が前記２つの水平方向に分離された垂直ストロークを有するそれぞれの文字を表現するように、前記スクリーン上に前記ウェブページをレイアウトし、表示することと、で構成される、固定ピクセル解像度スクリーン上にウェブページを表示する方法。
【請求項２２】
前記表示されたコラム幅、及び、表示された水平置換の縮小によって、前記コラム幅及び水平置換のピクセルサイズを２倍以上減少させる、請求項２１に記載の固定ピクセル解像度スクリーン上にウェブページを表示する方法。
【請求項２３】
前記文字列の文字を表示するために使用される前記フォントは、４ピクセルコラムのアドバンス幅によって表現された２つの水平方向に分離された垂直ストロークを有する多数の小文字を備えた、請求項２２に記載の固定ピクセル解像度スクリーン上にウェブページを表示する方法。
【請求項２４】
前記表示されたコラム幅、及び、表示された水平置換の縮小によって、前記コラム幅及び水平置換のピクセルサイズを少なくとも２．５倍減少させる、請求項２２に記載の固定ピクセル解像度スクリーン上にウェブページを表示する方法。
【請求項２５】
前記文字列の文字を表示するために使用される前記フォントは、４ピクセルコラムのアドバンス幅で表現された２つの水平方向に分離された垂直ストロークを有する多数の小文字を備えた、請求項２４に記載の固定ピクセル解像度スクリーン上にウェブページを表示する方法。
【請求項２６】
ウェブページの内容は、特定されたピクセルサイズ、及び、特定された水平ピクセル置換を有する画像を備えており、
前記スクリーン上で前記ウェブページの前記レイアウト及び表示によって、前記特定されたピクセルサイズに関連して比例的に縮小されたピクセルサイズ、及び、前記画像の特定された水平ピクセル置換に関連して比例的に縮小された水平ピクセル置換と、を用いて、前記スクリーン上に前記画像を表示させる、請求項２１に記載の固定ピクセル解像度スクリーン上にウェブページを表示する方法。
【請求項２７】
一つ又は複数のコラムが他のコラムの右側に水平に置換されるマルチコラムレイアウトを用いて前記ウェブページが表示され、
前記水平置換が、そうした水平方向に置換されたコラムの水平位置を決定する、請求項２１に記載の固定ピクセル解像度スクリーン上にウェブページを表示する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブページの拡大／縮小されたビューを表示するための方法、システム、及び、プログラムに関する。
【背景技術】
【０００２】
本出願は、ウェブページの拡大／縮小されたビューを提供することに関する。これが特に重要になるのは、例えばハンドヘルドコンピュータ、携帯電話コンピュータ、頭部又は手首装着型ディスプレイを有するコンピュータなど、小型又は低解像度スクリーンを備えたコンピュータデバイスを使用する場合である。
【０００３】
本出願の出願時点に於いて、約対角４インチの約２４０×３２０ピクセルスクリーンを有する複数のハンドヘルドコンピュータが存在する。これらは、コンパック社のｉＰａｑ  Ｈ３６５０  Ｐｏｃｋｅｔ  ＰＣ、カシオ社のＣａｓｓｉｏｐｅｉａ、ヒューレットパッカード社のＪｏｒｎａｄｏ５２５等である。残念ながら、そうした解像度では低すぎて、現在の殆どのウェブページを表示することは出来ない。現在、殆どのウェブページを６４０×４８０解像度スクリーンで見ることが可能であるが、多数のウェブページは８００ピクセルの最小幅でレイアウトされており、このように、８００×６００又はそれを超える解像度で最適に視認することが出来る。殆どのウェブページをハンドヘルドデバイス上で見る場合には、該ウェブページをあたかも８００×６００解像度でレイアウトするかのように視認可能であることが望ましい。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
現在、液晶ディスプレイメーカーは、現在発売中のスクリーンよりも実質的に高解像度を有するスクリーンを製造可能である。有機ＬＥＤメーカーは、さらに高解像度を達成可能であると主張している。これは、現在、上記リストアップされたハンドヘルドコンピュータに於けるサイズの対角４インチスクリーンが、４８０×６４０解像度、又は、それを超える解像度を有することが可能であり、そうした解像度は、間もなく直径２．５インチと同程度の小型スクリーンにも搭載される可能性があることを意味する。そうしたスクリーンは、多くのウェブサイトで受容可能な解像度を提供するであろうが、多くのウェブページを視認するためには、さらにはっきりとした高解像度が望ましい。
【課題を解決するための手段】
【０００５】
本発明の一つの特徴によれば、固定ピクセル解像度スクリーン上にウェブページを表示する方法が提供される。この方法は、ユーザが一つ又は複数の入力の第１セットを生成することを選択可能であり、一つ又は複数の入力の第２セットを生成することを選択可能なユーザインターフェイスを提供することを含む。この方法は、第１縮尺ビュー、又は、第２縮尺ビューでスクリーン上に所定のウェブページを表示することによって、ユーザが入力の第１セット、又は、入力の第２セットをそれぞれ生成したか否かということに対応する。第１縮尺ビューに於いて、テキストを含むコラムは第１幅を有し、テキスト文字列は第１コラム幅に関連して第１フォントサイズを有する。第２縮尺ビューに於いて、コラムはより小さな第２幅を有しており、テキスト文字列は、第２コラム幅に関連して、第１コラム幅に関連した第１フォントサイズよりも大きな第２フォントサイズを有する。テキスト文字列のそれぞれの文字は、フォントビットマップが各縮尺ビューでスクリーン上に表示されるピクセル解像度で文字の形状及びピクセル配列が可読性を向上させるために選択されているフォントビットマップを用いて、各縮尺ビューで表示される。
【０００６】
本発明のこの特徴に関する幾つかの実施形態に於いて、第１入力及び第２入力の生成によって、ユーザはコラム幅及びグループとしての相対フォントサイズの表示パラメータを、ユーザはそれぞれのそうした表示パラメータを別々に変更することを別々に選択する必用なく変更することが出来る。
【０００７】
第１縮尺ビューに於ける幾つかの実施形態に於いて、コラムは第１水平置換を有しており、第２縮尺ビューに於いて、コラムはより小さな第２水平置換を有している。これらの実施形態に於いて、第２水平置換に関連して、第２フォントサイズは、第１水平置換に関連した第１フォントサイズよりも大きい。幾つかのそうした実施形態に於いて、一つ又は複数のコラムが他のコラムの右側に水平方向に置換されるマルチコラムレイアウトでウェブページが表示され、水平置換はそうした水平方向に置換されたコラムの水平位置を決定する。
【０００８】
幾つかの実施形態に於いて、第１縮尺ビューで画像は第１サイズを有し、第２縮尺ビューで画像はより小さな第２サイズを有する。これらの実施形態に於いて、第２画像サイズに関連して、第２フォントサイズは、第１画像サイズに関連した第１フォントサイズよりも大きい。
【０００９】
本発明の第２の特徴によれば、スクリーン上にウェブページを表示するための幾分類似した他の方法が提供される。この方法は、ユーザが一つ又は複数の入力の第１セットを生成することを選択可能であり、一つ又は複数の入力の第２セットを生成することを選択可能なユーザインターフェイスを提供することを含む。この方法は、第１縮尺ビュー又は第２縮尺ビューを備えたスクリーン上に所定のウェブページを表示することによって、ユーザが入力の第１セット又は入力の第２セットをそれぞれ生成したか否かということに対応する。第１縮尺ビューで画像は第１サイズを有し、テキストを含むコラムは第１幅を有し、そして、テキスト文字列は第１画像サイズ及びコラム幅に関連して第１フォントサイズを有する。第２縮尺ビューに於いて、画像はより小さな第２サイズを有し、コラムはより小さな第２幅を有し、テキスト文字列は、第２画像サイズ及びコラム幅に関連して、第１画像サイズ及びコラム幅に関連した第１フォントサイズよりも大きな第２フォントサイズを有する。第１入力及び第２入力の生成によって、画像サイズ、コラム幅、及び、グループとしての相対フォントサイズの表示パラメータを、ユーザが２つ又はそれを超えるそうした表示パラメータを変更することを別々に選択する必要なく、変更可能である。
【００１０】
本発明のこの第２の特徴に関する幾つかの実施形態に於いて、第１縮尺ビューでコラムは第１水平置換を有し、第２縮尺表示でコラムはより小さな第２水平置換を有し、第２フォントサイズは、第２水平置換に関連して、第１水平置換に関連した第１フォントサイズよりも大きい。そうした実施形態に於いて、第１入力及び第２入力の生成によって、画像サイズ、コラム幅、コラム水平置換、及び、グループとしての相対フォントサイズの表示パラメータを、ユーザは２つ又はそれを超えるそうした表示パラメータを変更するために別々に選択する必要なく変更することが出来る。
【００１１】
幾つかのそうした実施形態に於いて、ウェブページは一つ又は複数のコラムが他のコラムの右側に水平方向に表示されるマルチコラムレイアウトで表示され、水平置換はそうした水平方向に置換されたコラムの水平位置を決定する。
【００１２】
また、幾つかのそうした実施形態に於いて、第１縮尺ビューで画像は第１水平置換を有し、第２縮尺ビューで画像はより小さな第２水平置換を有し、第２フォントサイズは、第２画像水平置換に関連して、第１画像水平置換に関連した第１フォントサイズよりも大きい。そうした実施形態に於いて、第１入力及び第２入力の生成によって、画像サイズ、コラム幅、コラム水平置換、画像水平置換、及び、グループとしての相対フォントサイズの表示パラメータを、ユーザが２つ又はそれを超えるそうした表示パラメータを変更するために別々に選択する必要なく変更することが出来る。
【００１３】
本発明の第２の特徴に関する幾つかの実施形態に於いて、ウェブページは、画像に対して特定されたピクセルサイズ、及び、コラムに対して特定されたピクセル幅を含み、第２画像サイズは、特定されたピクセルサイズよりも小さなピクセルサイズであり、第２コラム幅は、特定されたコラム幅よりも小さなピクセル幅である。幾つかのそうした実施形態に於いて、画像に関する特定されたピクセルサイズ、及び、コラムに関する特定されたピクセル幅は、第２ビューで同一の倍率によって縮小される。他のそうした実施形態に於いて、第１画像サイズは特定されたピクセルサイズより小さく、第２画像サイズよりも大きなピクセルサイズであり、第１コラム幅は、特定されたコラム幅より小さく、第２コラム幅よりも大きなピクセル幅である。画像に関する特定されたピクセルサイズ、及び、コラムに関する特定されたピクセル幅の両方は、第１ビューで同一の第１総量、及び、第２ビューで同一のより大きな第２総量によって縮小することが出来る。
【００１４】
本発明の該第２の特徴に関する幾つかの実施形態に於いて、同一フォントサイズが第１ビュー及び第２ビューの両方で文字列の表示に使用される。
【００１５】
本発明の第３の特徴によれば、第１の特徴及び第２の特徴に関する特性が組み合わせられる。
【００１６】
本発明の第４の特徴によれば、文字列がレイアウトされるコラムに対するウェブページに関連して、テキスト文字列、特定されたピクセル幅、及び、水平ピクセル置換を含む、ウェブページのコンテンツへのアクセスを含む、固定ピクセル解像度スクリーン上でウェブページを表示する方法が提供される。その方法は、（１）コラムが、特定されたピクセル幅に関連して、比例的に縮小されたピクセル幅、及び、特定された水平ピクセル置換に関連して、比例的に縮小された水平ピクセル置換で、スクリーン上に表示され、（２）ビットマップがスクリーン上に表示されるピクセル解像度で、文字の形状及びピクセル配置が可読性を向上させるために選択されているフォントビットマップを用いて、テキスト文字列のそれぞれの文字がコラムに表示され、（３）文字列の文字を表示するために使用されたフォントは、少なくとも１ピクセル行に於いて、２つの水平方向に分離されたストロークを示すそれぞれの側に、一つ又は複数の比較的覆われたピクセルの間に水平方向に配置された、少なくとも１つの比較的覆われていないピクセルを有することによって、形状が２つの水平方向に分離された垂直ストロークを有するそれぞれの文字を示すように、スクリーン上にウェブページをレイアウト、表示する。
【００１７】
本発明の第４の特徴に関する幾つかの実施形態に於いて、表示されたコラム幅、及び、表示された水平置換の縮小によって、コラム幅及び水平置換のピクセルサイズが２倍以上減少される。幾つかのそうした実施形態に於いて、文字列の文字を表示するために使用されるフォントは、４ピクセルコラムのアドバンス幅で表現される２つの水平方向に分離された垂直ストロークを備えた多数の小文字を有する。また、幾つかのそうした実施形態に於いて、表示されたコラム幅、及び、表示された水平置換の縮小によって、コラム幅、及び、水平置換のピクセルサイズは、少なくとも２．５倍減少される。幾つかのそうした実施形態に於いて、文字列の文字を表示するために使用されるフォントは、４ピクセルコラムのアドバンス幅によって表現された２つの水平方向に分離された垂直ストロークを備えた多数の小文字を有する。
【００１８】
本発明の第４の特徴に関する幾つかの実施形態に於いて、ウェブページのコンテンツは、特定されたピクセルサイズ及び特定された水平ピクセル置換を有する画像を含み、スクリーン上のウェブページのレイアウト及び表示によって、特定されたピクセルサイズに関連して、比例的に縮小されたピクセルサイズを用いて、そして、画像の特定された水平ピクセル置換に関連して、比例的に縮小された水平ピクセル置換を用いて、画像がスクリーン上に表示される。
【００１９】
本発明の第４の特徴に関する幾つかの実施形態に於いて、ウェブページは、一つ又は複数のコラムが他のコラムの右側に水平方向に置換されるマルチコラムレイアウトで表示され、水平置換は、そうした水平方向に置換されたコラムの水平位置を決定する。
【００２０】
また、本発明は、装置、及び、上記方法を実行する為に機械可読メモリに記録されたコンピュータプログラムに関する。
【００２１】
本発明に関するこれらの特徴及びその他の特徴は、下記に付随する図面に関連して、最良の実施形態に関する下記の記述を読むことで、より明白になるであろう。
【発明を実施するための最良の形態】
【００２２】
図１は、特に、低解像度の表示装置を有するシステム上で、ウェブブラウズ、及び／又は、他の種類のコンピュータによって生成されたコンテンツの表示を改善するために、本発明の幾つかの特徴に従って使用される可能性のある、基本的な処理及びデータ表示を示す高レベルの図面である。
【００２３】
図１の最上部に図示された１つ又は複数のビットマップ画像１０２及びテキスト１０４を含むデジタルコンテンツ１００は、その図面の最下部に表示されたサブピクセル最適化され縮小されたフォーマット１０６で表示されている。
【００２４】
本発明の一実施形態において、ステップ１０８で構成される差分処理は、テキストコンテンツの表示をサブピクセル最適化するために使用されるというよりは、むしろ、ビットマップ画像１０２の表示をサブピクセル最適化するために使用される。ステップ１０８は、特に、カラービットマップからのサブピクセル最適化された画像の生成に適したサブピクセル最適化ルーチンを使用している。また、処理１０８は、現在殆どのウェブコンテンツが表示されている解像度よりも低い解像度を有するスクリーン上での表示のために、ビットマップを縮小する。
【００２５】
デジタルコンテンツ１００に含まれるテキスト１０４は、ステップ１１０及び１１２を使用することによって、低解像度サブピクセルアドレス可能スクリーン上での表示を行うために処理される。ステップ１１０は、通常テキスト表示に使用されるフォントを、サブピクセル最適化スクリーン上で低解像度の表示を行うために最適化されたフォントと置換する。ステップ１１２は、例えばフォント形状の定義に一般的に使用される数学的に定義されたアウトラインの様な、同一色の形状の高解像度画像の表現に特に適したサブピクセル最適化ルーチンによって生成された代替フォントからのフォントビットマップを使用する。
【００２６】
本発明に関する一つの利用方法としては、インターネットからダウンロードされているマークアップ言語によって表現された、画像、及び／又は、テキストを表示するポータブルで、低解像度のウェブブラウザのコンテンツに於ける利用がある。
【００２７】
現在まで、多数の所謂マークアップ言語が存在している。最も古く、最も支持された言語の１つがＳＧＭＬ(Ｓｔａｎｄａｒｄ  Ｇｅｎｅｒａｌ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ)である。ＳＧＭＬは、データに関する情報を提供する記述的な「メタデータ」を用いてデータを「マークアップ」するために使用可能なテキストベースの言語である。例としては、データが意図する目的、又は、データが配置される文書の視覚的提示の範囲内の位置を示すためにマークアップメタデータを使用することが出来る。また、それは、テキスト中、又は、マークアップ言語で記述された文書中の所定の位置に挿入される、例えば画像のような他の種類のデータへのリンクを示すために使用可能である。今日一般的に使用されている、例えばＨＴＭＬやＸＭＬ等の幾つかのマークアップ言語は、ＳＧＭＬから派生したものである。
【００２８】
本発明の最良の一実施形態に於いて、上記図１において参照されたデジタルコンテンツ１００は、例えばＨＴＭＬのようなマークアップ言語で表現された画像、及び／又は、テキストを含む標準的なウェブコンテンツであっても良い。おそらくウェブサイトのホームページを表現する、この標準的なウェブコンテンツ１００は、図２乃至図４に図示されたポータブル低解像度ブラウザ装置２００上に表示するために、下記に記述された様々な装置及び方法でダウンロードすることが可能である。ブラウザ装置２００上に表示する前に、デジタルコンテンツ１００は、判読性向上のために、例えば以下に記述するような様々な方法や処理によって拡大／縮小、及び／又は、サブピクセル最適化される可能性がある。
【００２９】
図２は、本発明の一実施形態に従って実施される、ネットワークコンピュータ環境を図示している。薄型クライアントブラウザ２００のプログラムは、例えば液晶表示装置（ＬＣＤ）スクリーンのような小型表示スクリーン上にテキスト及び／又はグラフィックの取り込み、及び、表示を実行することが可能なハンドヘルドコンピュータデバイス、又は、他の小型コンピュータデバイスに於いて実行される。このブラウザによって、ユーザはリモートソース（例えばインターネット）からのデジタル情報を要求し、それをスクリーン上に表示させることが出来る。
【００３０】
図２に図示された本発明の実施形態に於いて、ユーザは薄型クライアントブラウザ２００のコントロールボタンを操作することによって、画像、及び／又は、テキストを含むデジタルコンテンツの取り込み、及び、表示を要求する。要求されるデジタルコンテンツは、インターネットを介してアクセス可能な特定のウェブページであっても良い。そして、薄型クライアントブラウザ２００は、例えばＬＡＮ、ＷＡＮ、又は、インターネットであり得るネットワーク１３８上で物理的に遠隔にあるプロキシサーバ２１０を介してコンテンツに対する要求２０２を実行する。
【００３１】
プロキシサーバ２１０は、ユーザによって要求されたデジタルコンテンツ１００を有する物理的に遠隔にあるウェブサーバ２２０に対応する要求２１４を生成することによって、デジタルコンテンツの要求に対するプロキシプロセス２１６を実行する。プロキシサーバ２１０に対するネットワーク１３８上のデジタルコンテンツ１００のダウンロード２２２によって、サーバ２２０はプロキシサーバの要求２１４に応答する。
【００３２】
次に、プロキシサーバ２１０内のプロキシプロセス２１６は、図１に図示された機能１０８及び１１０の実行を含む、デジタルコンテンツ１１０を拡大／縮小、及び、サブピクセル最適化するための計算リソースを使用する。拡大／縮小、及び、サブピクセル最適化は、小型表示装置上で例えばテキスト及び／又はグラフィックのような画像の判読性向上を生み出す本発明の特徴である。これらについては、次のセクションに於いてより詳細に議論する。
【００３３】
プロキシサーバ２１０は、ここで拡大／縮小され、サブピクセル最適化されたコンテンツのブラウザ２００へのダウンロード２１２を完了させる。この時点で、ユーザはブラウザ２００のスクリーン上でコンテンツを見ることが出来る。
【００３４】
図２に図示された本発明の実施形態に於いて、デジタルコンテンツのテキスト部分は、１つ又は複数の文字の文字列、及び、フォントファミリー、フォントサイズ、及び、他のフォント属性の関連指定を含む形式でブラウザにダウンロードされる。個々のサブピクセル最適化されたフォントビットマップで構成された画像を用いて文字列を表示することによって、薄型クライアントブラウザは、図１に図示された関数１１２を実行する。指定されたフォントサイズ及びフォントファミリーに於けるそうした文字列で、任意の文字に対するビットマップを有していなければ、薄型クラインアントはフォントサーバ２３０から一つ又は複数のそうしたビットマップを要求する。図２乃至図８に図示された本発明の様々な実施形態に於いて、プロキシサーバはそうしたフォントビットマップを提供することが可能であり、又、薄型クライアントは（ブラウザソフトウェアのサイズを増大させることになるが、）それらのビットマップをソフトウェアの標準的な部分として有することも可能である。他の実施形態に於いてもなお、フォントはアウトラインフォントになり得る。フォントビットマップの一つ利点は、フォント取り扱い業者の中には、そうしたフォントのアウトラインに比して、それらのフォントのビットマップをより自由に頒布可能にすることを望む傾向の強い業者が存在するという点である。
【００３５】
本発明に関する代替実施形態の一つが図３に図示されている。この実施形態に於いては、図２のプロキシサーバ２１０及びウェブサーバ２２０が１台のリモートサーバ２２０Ａに置き換えられている。薄型クライアントブラウザ２００は、ネットワーク１３８上のリモートサーバ２２０Ａに対して、デジタルコンテンツ１００の要求２０２Ａを実行する。例えば、ネットワーク１３８はインターネット又はＬＡＮであっても良く、デジタルコンテンツ１００は特定のウェブページであっても良い。リモートサーバ２２０Ａは、要求されたデジタルコンテンツ１００を有しており、要求２０２Ａに応答するプロキシプロセス２１６Ａを実行する。プロキシ処理２１６Ａは、クライアントブラウザ上に表示するために、ウェブコンテンツを動的に拡大／縮小、及び／又は、サブピクセル最適化するサーバ上で実行される如何なる処理であっても良い。プロキシ処理２１６Ａは、保存されたデジタルコンテンツ１００に対して実行され、図１のステップ１０８及び１１０を実行することによって、デジタルコンテンツ１００を図１に図示された形式１０６に動的に変換する。リモートサーバ２２０Ａは、薄型クライアントブラウザ２００への拡大／縮小、及び／又は、サブピクセル最適化されたコンテンツのダウンロード２１２を完了する。
【００３６】
本発明に係る他の代替実施形態は図４に図示されている。図３と同様に、薄型クライアントの要求は、ネットワーク１３８上で、リモートサーバ（ここでは、サーバ２２０Ｂ）に直接要求される。
【００３７】
この実施形態に於いて、リモートサーバ２２０Ｂは、標準的なブラウザコンピュータで使用される標準形式１００と、拡大／縮小、及び／又は、サブピクセル最適化されたコンテンツ１００Ａとの両方の状態で、要求されたデジタルコンテンツを有している。標準的なデジタルコンテンツ１００から拡大／縮小、及び／又は、サブピクセル最適化された形式への変換は予め実行されており、これにより、プロキシ処理が動的にそれを変換する必要がなくなる。薄型クライアントは、要求されたコンテンツの拡大／縮小、及び／又は、サブピクセル最適化されたバージョンを受け取るはずだということを示す情報をサーバに提供する。リモートサーバ２２０Ｂは、薄型クライアントブラウザ２００に対して、拡大／縮小、及び／又は、サブピクセル最適化されたコンテンツ１００のダウンロード２１２を完了する。
【００３８】
さらなる代替実施形態が図５に図示されている。ブラウザ２００Ａは、拡大／縮小、及び／又は、サブピクセル最適化処理５１０をさらに含むフルスケールブラウザである。ブラウザ２００Ａは、ネットワーク１３８上のリモートサーバ２２０Ｃに対して、デジタルコンテンツ１００の要求２０２Ｂを行う。サーバ２２０Ｃは、ブラウザ２００Ａに対して要求されたデジタルコンテンツ１００のダウンロード２１２Ａを完了する。デジタルコンテンツ１００の拡大／縮小、及び／又は、サブピクセル最適化された形式への変換は、ブラウザ２００Ａで実行される処理５１０によって取り扱われる。
【００３９】
図６は、デジタルコンテンツ１００を拡大／縮小、及び／又は、サブピクセル最適化することが可能な単一のコンピュータシステム６００を図示している。この最良の実施形態に於いて、デジタルコンテンツは予めコンピュータシステム６００に於いて生成されるか、又は、読み込まれている。コンピュータシステム６００は、サブプロセス６４０を拡大／縮小、及び／又は、サブピクセル最適化することを含む、ブラウザ処理６２０を有している。ここで、ユーザは、付属の入力装置（例えばキーボード又はマウス）によって、コンピュータシステム６００に対してデジタルコンテンツ１００を表示する要求を行う。ブラウザプロセス６２０は、コンピュータシステムの記憶素子（例えば、電気的なメモリやディスク記憶装置）の１つから、要求されたデジタルコンテンツ１００を取り込む。次に、ブラウザプロセス６２０は、デジタルコンテンツ１００を取り込んだ時点で、これを拡大／縮小、及び／又は、サブピクセル最適化するサブ処理６４０に送信する。変換が完了すると、変換されたコンテンツは、コンピュータシステム６００の表示スクリーン上に表示される。本発明に係るこの実施形態は、ネットワーク又はリモートサーバを必要とすることなく動作する。
【００４０】
図７は単一のコンピュータシステムに関する代替実施形態を図示している。この実施形態に於いて、コンピュータシステム７００は、予め形成、又は、読み込まれている（例えば、特定のウェブページのコンテンツ）等のデジタルコンテンツ１００、プロキシ処理７４０、及び、ブラウザ処理７２０を有している。プロキシ処理７４０は、拡大／縮小、及び／又は、サブピクセル最適化プログラム７６０を実行する。ブラウザ処理は、デジタルコンテンツ１００を表示するためのユーザ要求をプロキシ処理７４０に送信する。次に、プロキシ処理７４０は、コンピュータシステム７００の記憶素子からデジタルコンテンツ１００を取り込む。デジタルコンテンツ１００が取り込まれた時点で、プログラム７６０は、後にコンピュータシステム７００の表示装置で表示するためのブラウザプロセス７４０に送信される、拡大／縮小、及び／又は、サブピクセル最適化された形式にデジタルコンテンツ１００を変換する。
【００４１】
図８は、単一のコンピュータシステムに関する第２の代替実施形態を図示している。ここでは、コンピュータシステム８００は、拡大／縮小、及び／又は、サブピクセル最適化されたウェブコンテンツ８１０を有している。ブラウザ処理８２０は、ユーザからのコンテンツ１００Ａを表示する要求を処理し、コンピュータシステム８００の記憶素子からそれを取り込み、コンピュータシステム８００のスクリーン上にこれを表示する。
【００４２】
上記に示した本発明に係る実施形態に於いては、ソースの画像の解像度からサブピクセルでアドレスされたスクリーンの解像度への画像の拡大／縮小は、部分的に、ソース画像及びサブピクセルでアドレスされた表示スクリーンの各解像度によって決定されている。
【００４３】
本発明の幾つかの実施形態に於いて、ソース画像の解像度とサブピクセルアドレス可能表示スクリーン上に表示される解像度との間の倍率決定は、ブラウザ装置のユーザにより特定可能である。この実施形態に於いて、ブラウザのユーザは、記憶装置から読み出される画像を縮小する処理に倍率を伝達することにより、複数倍率の中から倍率を選択する。次に、記憶装置から読み出された画像を縮小する処理は、選択された倍率に比例する水平及び垂直方向の倍率で、画像を縮小、及び／又は、サブピクセル最適化する。
【００４４】
殆どの他のユーザがブラウザ装置に入力する場合と同様に、このような縮尺の選択は、物理的な又はＧＵＩのボタン、メニュー項目、ダイアログボックス、又は、ブラウザ装置上のその他周知のユーザインターフェース装置を使用することにより実行可能である。
【００４５】
そうした幾つかの実施形態に於いて、ブラウザ装置のユーザは、画像が以前に記憶装置から取り込まれ、第１倍率でサブピクセル最適化された形式で表示された後、デジタルコンテンツが再度、拡大／縮小、及び、サブピクセル最適化されて、再表示されることに応じて、複数倍率の中から第２倍率を選択しても良い。
【００４６】
そうした実施形態に於いて、第１の拡大／縮小、及び、サブピクセル最適化された表示に於いて使用される倍率は、デフォルト又は所望の倍率の結果生じたものであっても良く、又、ブラウザ装置のユーザによって以前選択された倍率の結果生じたものであっても良い。ブラウザ装置のユーザは、ブラウザ装置の入力装置を操作する方法で、デジタルコンテンツを再表示する複数倍率から倍率を選択しても良い。そうしたブラウザ装置の入力装置の操作によって、第２の選択された倍率に従って画像が表示される。
【００４７】
そうした第２の拡大／縮小は、ブラウザ装置内、又は、物理的に離れたサーバ内の何れかで実行される処理の結果生じるものとしても良い。ブラウザ装置のユーザは、引き続き再表示するために複数倍率の中から倍率を継続して選択しても良い。
【００４８】
整数倍の縮小では、ソース画像に於ける整数のピクセルを結果として生じる縮小画像に於ける所定のピクセルに適合させる整数倍によって、デジタル画像を縮小することが最も簡単である。例えば、６４０×４８０解像度から３２０×２４０解像度への縮尺は、倍率２の縮小である。本発明に係る幾つかの実施形態では、非整数の縮小倍率を含む複数の縮小倍率からユーザが倍率を選択することが出来る。非整数の縮小倍率の例は、６４０×４８０解像度のソース画像の４８０×３６０ピクセル部分を、３２０×２４０解像度表示スクリーン上に表示するために拡大／縮小、及び／又は、サブピクセル最適化する、縮小倍率２分の３の例である。
【００４９】
本明細書に於いてウェブページの解像度について言及する場合、通常、レイアウトを実施するブラウザプログラムがウェブページのコンテンツをレイアウトするよう要求されている解像度のことを意味する。下記に示す通り、特定の最小レイアウト幅を必要とする複数要素を有するウェブページもあり、ウェブページをそうした最小レイアウト幅よりも短い幅で表示するよう要求される場合、要求されたレイアウト幅よりもその幅が長い場合であっても、それらの要素は自身に必要な最小幅でレイアウトされる。
【００５０】
例えば陰極線管（ＣＲＴ）のようなコンピュータグラフィック表示装置や、液晶表示装置（ＬＣＤ）スクリーンは、ほぼ例外なく色空間に関するＲＧＢモデルを使用している。但し、該発明は、例えばＣＭＹＫカラーモデルのような他のカラーモデルに適用可能である。ＲＧＢモデルでは、加法３原色、赤、緑、青が混合され、人間の目で認識されるように所望の色を形成する。
【００５１】
ほとんどのポータブルコンピュータデバイス、又は、画像装置は、ＲＧＢモデルを使用するＬＣＤスクリーンを有する。そうしたＬＣＤスクリーンは、何千ものグリッド素子からなるピクセルと呼ばれる矩形配列で構成されており、該ピクセルは全体として認識される場合には画像を形成し、各ピクセルはＲＢＧ色空間からの多くの色値の内、一つを表示可能である。ＬＣＤスクリーンは、該スクリーンが有する水平及び垂直ピクセルの数により特徴付けられている。
【００５２】
同様に、各ピクセルは、ここではサブピクセルと称す、個々にアドレス可能な３つのサブコンポーネントによって構成されている。最も一般的には、サブピクセルは赤、緑、青の矩形要素である。最も一般的な実施形態に於いて、赤、緑、青の３つのサブピクセルは、サブピクセルが混合されてピクセル全体が所望の色に見えるように、各々に光度の値が割り当てられている。同様に、ＬＣＤスクリーン上の全てのピクセルが混合され、所望の画像が見えるようになる。
【００５３】
該サブピクセルは個々にアドレス可能であるとされているが、これは、個々のピクセルに割り当てられた色値が、別々の赤、緑、青のカラーコンポーネント、又は、輝度値を有しており、ピクセルの赤、緑、青のサブピクセルによってそれぞれ表示されるからである。それ故、ピクセルに割り当てられた色値に於いて、関連付けられたカラーコンポーネントの輝度値の値を制御することによって、各サブピクセルの輝度を別々に制御することが可能である。
【００５４】
ＬＣＤ装置、及び、例えばカラーＬＥＤ（有機発光ダイオード（ＯＬＥＤ）を使用するスクリーンを含む）やガスプラズマ表示装置のような、他の「サブピクセルアドレス可能」表示装置では、各サブピクセルのそれぞれが、表示上に固定の既知の位置を有する。例えば、殆ど全ての陰極線管（ＣＲＴ）等の多くの表示装置は、サブピクセルアドレス可能ではない。例えば、ＣＲＴの各ピクセルは赤、緑、青のカラーコンポーネントのそれぞれに対して個別に輝度値を有しているが、それらの異なる色値に関連する光を生成する要素のそうした各ピクセル内での正確な物理的配置は、通常知られていない。これは、スクリーンの個々の発光パターン、水平及び垂直スキャンの解像度、個々のピクセルがスクリーン上に描画される正確な位置を制御する電圧に関する現在の正確な状態、に関する関数に比例するからである。
【００５５】
図９は、複数のピクセル行（Ｒ１−Ｒ１２）、及び、ピクセル列（Ｃ１−Ｃ１２）で構成されるＬＣＤスクリーン９００の１２×１２の部分を図示している。行と列のそれぞれの交点がピクセル要素を構成している。実際のＬＣＤスクリーンは、任意の数の行列を有することが可能である。但し、頻繁に見られるのは、３２０×２４０、６４０×４８０、８００×６００、１０２４×７６８、１２８０×１０２４のグリッドである。
【００５６】
波線の円部９１０内にピクセルＲ１−Ｃ１が図示されている。ピクセルＲ１−Ｃ１は、それ自身が３つのピクセルサブコンポーネント（以下、サブピクセル要素と称す）で構成されている。ピクセルＲ１−Ｃ１の拡大図は、図９の最下部の拡大されたピクセル９２０として図示されている。サブピクセル要素９０２は赤として表示され、サブピクセル要素９０４は緑として表示され、サブピクセル要素９０６は青として表示される。個々のサブピクセル要素９０２、９０４、９０６は、幅がピクセル全体の約３分の１の幅であり、高さがピクセル全体の高さに等しい。
【００５７】
ＬＣＤスクリーン９００に図示されているように、そうした複数ピクセルが格子状に配列される場合、垂直のカラーストライプがＬＣＤスクリーン９００上に現れる。この周知のピクセル配列は、垂直ＲＧＢストライプと呼ばれることがある。他の周知の配列では、水平ストライプが生じるような直角方向で、ピクセル要素がレイアウトされる（この場合、スクリーンを９０°回転することによって、水平ストライプスクリーンを垂直ストライプスクリーンに変換される）。
【００５８】
一般的な使用に於いては、ピクセルの３つのサブピクセル要素に関する光度は、ピクセルが人間の目に所望の色合い、彩度、及び、明度で認識されるように設定される。ＲＧＢサブピクセル要素は、表示される画像の１つのサンプルを表現するために、単一のカラーピクセルを形成するために同時に使用される。
【００５９】
本発明の１つの特徴は、例えば３２０×２４０、又は、２４０×３２０（この場合、３２０×２４０の解像度を有するために、９０度回転することが可能）の行列ピクセル比を有する表示のような低解像度スクリーン上での、ダウンロードされたウェブコンテンツ、テキスト及び画像を含むその他のデジタルコンテンツの可読性の向上に関する。詳細に議論し、図示した本発明に係る実施形態の多くは、６４０×４８０の仮想レイアウト解像度から３２０×２４０ピクセル解像度を有するスクリーン上に画像及びテキストをマッピングする。しかし、他の解像度スクリーンに本発明を使用することが出来る。ほんの２、３例を挙げると、５１２×３８４解像度スクリーンで１０２４×７６８解像度を見るように凡そレイアウトされたコンテンツを表示するために使用可能であり、又、４００×３００スクリーンで８００×６００ピクセルを見るように凡そレイアウトされたコンテンツを表示するために使用可能である。他の実施形態に於いては、本発明はパーソナルコンピュータのスクリーン上で一般的な偶数比の水平ピクセル次元、及び／又は、垂直ピクセル次元以外のピクセル次元を有する比較的低解像度の表示で使用される。
【００６０】
概して、低解像度スクリーンについて言及する場合には、所定のデジタルコンテンツやデジタルコンテンツの所定のレイアウトが通常表示される予定のスクリーンよりも低解像度のスクリーンを意味する。また、そうした小型スクリーンによって そうした低解像度を有する、例えば、より大型のスクリーン上のウインドウ等、大型スクリーンの一部を含むことを意味する。
【００６１】
図１０に於いて、画像コンテンツ１０５、及び／又は、テキストコンテンツ１０７は、図１のサブピクセル最適化された表示の一部を示している。図１に図示された画像は、テキスト及び画像の両方のサブピクセル最適化された表示に関連した実際の色値のグレースケール拡大図である。図１０の矩形部１０００内の画像コンテンツ１０５の部分は、個々のピクセルをより見易くするために１０２０で拡大図示されている。これに対応して、矩形部１０４０内に含まれるテキストコンテンツ１０７の一部が１０６０で拡大図示されている。
【００６２】
１０２０及び１０６０で図示されたピクセルがピクセル全体を表現していることに留意しておくことが大切であるが、これは、画像１０２０及び１０６０を生成するために使用されるソフトウェアが、全ピクセルのそれぞれに関連付けられたＲＧＢ色値に対応するグレースケールを単に表現しているからである。サブピクセル拡大表示１０２０Ａ及び１０６０Ａは、それぞれ、拡大表示１０２０及び１０４０における各ピクセルに関連付けられた３つのサブピクセルの各々の明度を表現しようとしている。１０２０Ｂは、縮尺及び位置が拡大表示１０２０Ａ及び１０２０に対応する拡大表示である。そこでは、画像のピクセル格子が相対的に太い線で表示され、それぞれの各ピクセル内の３つのサブピクセル区分が相対的に細い線で表示されている。この合成格子は、拡大表示１０２０及び１０２０Ａに図示されたピクシレーションパターンが由来する図１の元々の高解像度カラービットマップ画像１０２の最上部に重ね合わされる。図示された特定の画像において、カラービットマップ１０２の解像度は、垂直及び水平方向の両方向において、図１０の最下部に図示された画像１０５に於ける全ピクセル解像度の２倍程度の解像度である。
【００６３】
拡大表示１０６０Ｂは、含まれる１つ又は複数の文字の高解像度フォントアウトラインの適用を受ける各サブピクセルの領域の一部を決定することにより、サブピクセル最適化されたフォントの画像が如何に生成されるかを図示している。
【００６４】
サブピクセル解像度の拡大表示１０２０Ａ及び１０６０Ａと、それぞれに対応する全ピクセルの拡大表示１０２０及び１０６０とを比較することから分かるように、サブピクセル解像度での画像及びテキストのサブピクセル最適化された表現による表示は、より適切な空間解像度を提供する。
【００６５】
図１１は、標準的なウェブコンテンツを３２０×２４０カラー表示上で表示した際に、本発明の一実施形態によって提供される可読性の質を表現するものである。同図の最上部に図示されたビットマップ１１００はグレースケールであり、ウェブページ「ｐｒｉｎｃｅｌｉｎｅ．ｃｏｍ」の一部の標準的な６４０×４８０レイアウトから生成された実際のビットマップに関する全ピクセルの拡大表示である。この画像は、図１１の最下部に図示されたウェブページの全画面３２０×２４０画像に図示された矩形部１１３０内に含まれるウェブページの一部に対応している。同図の真ん中に図示されたビットマップ１１２０はグレースケールであり、上記３２０×２４０画像の同一部分のカラービットマップの全ピクセルの拡大表示である。図１１の最下部に図示された２００Ｂは、図２に関して記載された種類の薄型クライアントブラウザとして機能するハンドヘルドコンピュータ装置を表している。ウェブページの６４０×４８０レイアウトを表現する３２０×２４０サブピクセル最適化ビットマップの表現が、このブラウザのスクリーン上に図示されている。図１０の拡大表示１０２０のように、図１１の最下部に図示されたビットマップ１１３０は、全ピクセルの平均輝度に対応するグレースケールレベルで個々のピクセルを図示している。図１０に於ける拡大表示１０２０Ａ及び１０６０Ａに示されているように、横方向に於ける垂直サブピクセルストライプを有する３２０×２４０スクリーン上でこの画像を見ると、実際の画像は、むしろ高解像度を有するように見える。
【００６６】
本発明の多くの特徴に関する目的に対して、カラービットマップのサブピクセル最適化された画像を得る任意の周知のアルゴリズムを使用することが出来る。本発明の一実施形態に於いて、所定の色の所定のサブピクセルのそれぞれに割り当てられた輝度は、所定のサブピクセルに関連するソース画像に於ける矩形ウインドウ内に完全、又は、部分的に存在するソース画像のそれぞれのピクセルに於ける所定の色値の平均強度で決定される。このソース画像ウインドウは、その縮小された画像に於ける所定のサブピクセルの位置を中心に存在する縮小画像に於ける全ピクセルの領域に対応するソース画像に関連したサイズ及び位置を有している。サブピクセルに割り当てられた平均強度は、全体又は部分的にソース画像ウインドウを覆う各ソース画像ピクセルの強度と、そうしたソース画像ピクセルのそれぞれによって覆われたウインドウの領域の割合との乗算によって算出される。
【００６７】
図１２は、解像度が低減された表示装置のサブピクセルグリッドへの、より高解像度のソース画像１０２のマッピングを図示している。この図は、図１に図示された元のより高解像度のカラービットマップ１０２の一部に重ねられているサブピクセルグリッド１２１０を図示している。円部１２２０は、所望のより低解像度の表示装置に於ける１ピクセルに対応するグリッドの領域を囲んでいる。グリッドパターンの位置及びサイズは、より高解像度のソースビットマップ画像と、結果として得られるサブピクセル最適化画像のピクセルグリッドとの関係によって決定される。図１２に図示された特定のグリッドパターン１２１０は、カラービットマップ画像１０２のピクセル解像度から、水平及び垂直方向の両方向においてソース画像の２分の１程度のピクセルを有する表示スクリーン解像度への拡大／縮小を表現している。この拡大／縮小の一例として、６４０×４８０表示上の表示に適切なピクシレーションを有する画像を、３２０×２４０表示スクリーン上に比例して表示するために縮小する例がある。このように、グリッドパターン１２１０のそれぞれの太い線の区分は、カラービットマップ画像１０２の４ピクセルに及んでいる。破線円部１２２０は、４つのより高解像度のソースのソースピクセルを含む、そうした太い線の区分の一つを囲んでいる
図１３は、図１２のサークル１２２０を中心とした９つの太い線の区分（即ち、９つの全ピクセル）の拡大図である。円部１３００内のピクセルは、所望の表示装置の１つのピクセルを表現している。図１３が明らかにしているように、グリッドパターン１２１０の太い線の区分のそれぞれは、４つのより高解像度のソース画像を囲んでいる。また、図１３は、所望の表示装置のそれぞれのピクセルが、夫々「Ｒ」、「Ｇ」、「Ｂ」とラベル付与された赤、緑、青のサブピクセルを含む、３つのカラーサブピクセルで構成されていることを図示している。
【００６８】
図１４、１５、及び１６は、それぞれ、所望の表示装置に於ける、赤、緑、青のカラーサブピクセルの輝度が決定されるソース画像に於ける矩形ウインドウの位置を説明している。そうした各ソース画像ウインドウの領域は、輝度を算出するために使用されるサブピクセルに対応するソース画像の一部を中心とした、縮小画像に於ける全ピクセルの領域に対応する。
【００６９】
図１４の矩形部１４００は、より低解像度の表示装置の赤色サブピクセルの輝度を算出するために使用されるソース画像ウインドウの領域を囲んでいる。同様に、図１５及び図１６は、所望の表示装置の緑及び青色サブピクセルのそれぞれ対応するソース画像ウインドウを囲んでいる。
【００７０】
上述したように、所定の色のサブピクセルに割り当てられた輝度は、以下の関数、又は、関数の近似によって決定される。この輝度は、全体又は部分的にサブピクセルの対応するソース画像ウインドウ内にあるソース画像の各ピクセルに於けるピクセルの色の強度と、そうした各ソース画像ピクセルよって覆われたウインドウの領域の割合との乗算に一致するように設定される。
【００７１】
図１７、１８、及び１９において、赤、緑、青のサブピクセルの輝度は、所定のサブピクセルに対応するソース画像の一部を中心とした、ソース画像ウインドウ内に含まれた全体又は部分的なソース画像ピクセルの各色の輝度に関する関数である。これは、ウインドウ領域１７００がそのサブピクセルに対応するソース画像の一部を中心とする赤色（Ｒ）サブピクセルに関して、図１７に図示されている。図１８のウインドウ１８００は、緑色（Ｇ）サブピクセルに対して同一内容を図示しており、図１９のウインドウ領域１９００は、青色（Ｂ）サブピクセルに対して同一内容を図示している。
【００７２】
各サブピクセルに対するソース画像ウインドウ間に於ける移動の結果として、各サブピクセルに対して得られる色値は、全体としてそのピクセルの位置に対応するというよりは、むしろ、各サブピクセル自体の位置に対応するソース画像の位置に於けるサブピクセルの対応する色を表している。その結果、所定のピクセルの異なるサブピクセルに対して異なるソース画像ウインドウを使用することによって、結果として生じる画像の空間解像度が向上する。
【００７３】
図１７、１８、及び１９に図示された本発明の実施形態では、何れのピクセルがサブピクセルのソース画像ウインドウに含まれるか、及び、そうしたピクセルが覆うウインドウの割合は、そうしたソース画像で覆われた水平及び垂直方向のスキャンラインの割合に基づいて決定される。図１７では、赤色サブピクセルの色値は、個々のソース画像ピクセルに覆われた水平カバレッジライン１７２０及び垂直カバレッジライン１７４０の割合と、そうした各ピクセルの赤色の色値とを乗算した結果として決定される。これは、各色値に関して、即ち、図１８の拡大／縮小された画像の緑色（Ｇ）サブピクセル、及び、水平及び垂直カバレッジライン１８２０及び１８４０のそれぞれ、並びに、図１９の拡大／縮小された画像の青色（Ｂ）サブピクセル、及び、水平及び垂直カバレッジライン１９２０及び１９４０のそれぞれに関しても同様である。注目すべきは、水平カバレッジライン１７２０、１８２０、１９２０は、それらに対応する矩形領域の垂直方向に於ける中点の上方及び下方の垂直位置を表すことを目的としているということである。このため、カバレッジラインは、垂直ピクセル間の境界を表すソース画像に於ける位置とは完全に一致しない。同様に、垂直カバレッジライン１７４０は、矩形領域１７００の水平方向の中点の直左及び直右の水平位置を表すことを目的としている。
【００７４】
上記で定義されたカバレッジラインは、所定のサブピクセルに関連付けられた元の画像の領域が、所定の色又は形状で覆われる程度を決定するための連続関数（例えば、５ビット解像度、又は、それを越えるビット解像度を有するもの等、連続関数に相当する任意の適度に高解像度であるものを含む）の使用に関連する本発明の１つの特徴に関する実施形態を表している。連続カバレッジ関数に於いては、カバレッジ値がサンプリングではなく、むしろ、１次元、又は、それを越える次元で所定のカバレッジが開始、及び、終了する境界位置を決定し、そうした１つ又は複数の境界間、又は、そうした境界と所定のサブピクセルに関連付けられたソース画像ウインドウの境界との間の、長さ又は面積の関数としてカバレッジを計算する数学的な関数によって決定される。
【００７５】
図１７、１８、１９、並びに、図３０、３１、３２に図示された本発明に関する実施形態に於いて、この連続カバレッジ関数の計算は、ウインドウ内の１つ又は複数のソース画像のピクセルのそれぞれによって覆われたソース画像ウインドウ内の一つ又は複数のスキャンライン部分を決定することにより、所定のサブピクセルに対応するソース画像ウインドウ領域に存在する各ソース画像ピクセルの領域を評価することによって、加速される。所定のピクセルによって覆われたウインドウのスキャンライン全体の長さの割合は、そのピクセルに於けるサブピクセルの色値で乗算される。そうした計算結果は、サブピクセルの色値を生成するために、任意のウインドウのスキャンラインを覆う全ピクセルに対して総和される。このようにして、カラービットマップの拡大／縮小された画像の生成時に、サブピクセルの輝度を決定するために「ラインカバレッジ」型の連続カバレッジ関数を使用することが出来る。
【００７６】
図２０、２１、２２は、より低解像度の表示スクリーンに於ける赤色（Ｒ）サブピクセルに関連するソース画像ウインドウ２０００内の単一の水平カバレッジライン、及び、単一の垂直カバレッジラインの使用を図示している。図２１に於いて、水平スキャンライン２０２０に関連付けられたカバレッジ値は、ブラケット（括弧）２１２０で覆われたピクセルの赤色の値と、ブラケット（括弧）２１２０によって覆われた図２０の水平スキャンライン２０２０の１／３の部分との乗算値）＋（中ブラケット２１４０によって覆われたピクセルの赤色の値と、ブラケット２１４０によって覆われた水平スキャンライン２０２０の２分の１の部分との乗算値）＋（ブラケット２１６０によって覆われたピクセルの赤色の値と、ブラケット２１６０によって覆われた水平スキャンライン２０２０の６分の１の部分との乗算値）によって得られる合計である。
【００７７】
同様に、垂直スキャンライン２０４０に関連付けられたカバレッジ値は、（ブラケット２２２０によって覆われたピクセルの赤色の値と、ブラケット２２２０によって覆われた図２０の垂直スキャンライン２０４０の２分の１の部分との乗算値）＋（ブラケット２２４０によって覆われたピクセルの赤色の値と、ブラケット２２４０によって覆われた垂直スキャンライン２０４０の２分の１の部分との乗算値）によって得られる合計である。
【００７８】
赤色サブピクセルに対する全カバレッジ値は、水平スキャンラインについて計算されたカバレッジ値の２分の１と、垂直スキャンラインについて計算されたカバレッジ値の２分の１との和である。
【００７９】
同様に、図２３、２４、２５は、より低解像度の表示スクリーンに於ける緑色（Ｇ）サブピクセルに関連付けられたソース画像ウインドウ２３００内にある単一の水平カバレッジライン、及び、単一の垂直カバレッジラインの使用を図示したものであり、図２６、２７、２８は、より低解像度の表示スクリーンに於ける青色（Ｂ）サブピクセルに関連付けられたソース画像ウインドウ２６００内にある単一の水平カバレッジライン、及び、単一の垂直カバレッジラインの使用を図示したものである。
【００８０】
図２９は、上記図１７乃至２８に関して記載された種類のラインカバレッジを使用するソースビットマップ画像から、拡大／縮小された、サブピクセル最適化された画像を得るための、アルゴリズム２９００に関する高度に簡略化された擬似コード表記である。
【００８１】
このアルゴリズムは、出力画像（即ち、拡大／縮小され、サブピクセル最適化された画像）の各ピクセル行に対して、ループ２９０１を実行する。
【００８２】
このループは、現在の行に於ける各ピクセルに対して、インナーループ２９０２を実行する。そうした各ピクセルについて、ループ２９０２は、ループ２９０４及び関数２９１４を実行する。
【００８３】
ループ２９０４は、ループ２９０２の現在のピクセルの各サブピクセルに対して実行される。ループ２９０４は、例えば、図１７乃至２８に図示されたスキャンライン等、現在のサブピクセルのスキャンラインのそれぞれに対して実行されるインナーループ２９０６で構成されている。
【００８４】
ループ２９０６は、関数２９０８及びループ２９１０を含んでいる。関数２９０８は、スキャンラインとピクセル境界との各交点を計算する。通常、そうした交点計算、及び、このアルゴリズムに於けるその他の計算は、そうした演算処理に関する記憶容量及び計算要件を低減するために、例えば、６〜８ビットの精度等、限られた精度で実行される。
【００８５】
その後、ループ２９１０は、スキャンラインの両端、スキャンラインの端部、及び、ピクセル境界、又は、両ピクセル境界に於いて生じるスキャンラインの各部分に対して関数２９１２を実行する。関数２９１２は、ループ２９１０の現在の部分に覆われたスキャンラインの割合に、現在のサブピクセルの色に対応する部分を覆うピクセルのカラーコンポーネント値を乗算したものの倍数をサブピクセルのスキャンラインの数で除算し、ループ２９０４の現在のサブピクセルに関連付けられたカバレッジ値に加算する。
【００８６】
ループ２９０４が現在のピクセルの各サブピクセルについてサブピクセル輝度値を計算した時点で、関数２９１４は、それらの計算されたサブピクセル輝度値に等しい赤、緑、青のコンポーネント値を有する複合ＲＢＧ値を備えた色と同様に現在のピクセルの色値を設定する。
【００８７】
本発明に係る他の実施形態に於いて、例えば、２４ビット、１６ビット、１２ビットの色値等、異なる長さの色値を使用することが出来る。このシステムは、限られたカラーパレットで使用することが可能であるが、赤、緑、青のサブピクセルのそれぞれについて、少なくとも４ビットのばらつきを有するトゥルーカラーで最適に機能する。通常、赤色と青色に５ビットを割り当て、（緑色に対して目が敏感であるため）緑色に６ビットを割り当てる１６ビットカラーは、より良好な視覚効果を提供する。
【００８８】
上記図１７乃至２８で記述された本発明に関する実施形態では、単一の水平スキャンラインと単一の垂直スキャンラインを利用しているが、本発明の該特徴に関する他の実施形態では、より多くのスキャンライン、及び／又は、水平及び垂直方向以外の方向のスキャンラインを使用しても良い。
【００８９】
図３０は、サブピクセル最適化された画像の赤色（Ｒ）サブピクセルに関連付けられたカラーカバレッジ値を評価するために使用可能な、ソース画像ウインドウ３０２０内の２本の水平カバレッジラインと２本の垂直カバレッジラインの使用を図示している。
【００９０】
図３１は、サブピクセル最適化された画像の緑色（Ｇ）サブピクセルに関連付けられたソース画像ウインドウ３１２０内にある２本の対角カバレッジラインの使用を図示している。
【００９１】
図３２は、サブピクセル最適化された画像の青色（Ｂ）サブピクセルに関連付けられたソース画像ウインドウ３２２０内にある２本の対角カバレッジライン、１本の水平カバレッジライン、１本の垂直カバレッジラインの使用を図示している。
【００９２】
言うまでもなく、図３０乃至３１の各図に図示されたカバレッジラインの各配置は、赤、緑、青のサブピクセルに使用することが可能である。
【００９３】
図３３乃至３８は、サブピクセルの輝度値を計算するラインカバレッジ法が、ソース画像のサイズ、及び、結果として生じるサブピクセル最適化された画像のサイズとの間に於ける、より広い範囲の異なる拡大／縮小に適用することが出来ることを図示している。例えば、多くのサンプリング技術と比較しても、ラインカバレッジ法がラインカバレッジをかなり高解像度で測定するので、このことは正しいと言える。これは、非整数比の倍率の使用時に多くの場合生じるように、サブピクセルのソースピクセルウインドウに於いて部分的にのみ存在するピクセルのカバレッジの測定が比較的上手くいくことを意味している。
【００９４】
本発明のこの特徴に関する実施形態に於いて、７ビット解像度がラインカバレッジ値の計算に使用され、十分な結果を生んでいる。より高解像度、又は、より低解像度を使用することは可能であるが、通常、ラインカバレッジ解像度は、１６（４×４）〜２５６（１６×１６）ポイントの配列で、サブピクセルのソース画像ウインドウ内のサンプリングカバレッジによってカバレッジを計測する技術に使用される、２〜４ビット／次元の解像度よりも高解像度であることが望ましい。
【００９５】
図３３は、ソース画像解像度から、水平ピクセル及び垂直ピクセルの半分を有する目的のピクセル最適化された画像へのマッピングのために、青色（Ｂ）サブピクセルに関連付けられたソース画像ウインドウ内の様々なソース画像ピクセルによる２本の水平カバレッジラインのカバレッジを図示するために、ブラケット（括弧）を使用している。図３４は、そうしたサブピクセル輝度計算方法を用いて使用される２本の垂直カバレッジラインについて同一の内容を図示している。図３３及び３４は、ソース及び低減された画像におけるピクセル数間の整数比を図示している。
【００９６】
図３５及び３６は、低減されたサブピクセル最適化された画像がソース画像の約４０％の水平及び垂直ピクセルのみを有している倍率に対して、同一ソース画像のピクセルによって、水平及び垂直スキャンラインのカバレッジをそれぞれ図示している。
【００９７】
図３７及び３８は、サブピクセル最適化された画像がソース画像の約６６．６６％の水平及び垂直サブピクセルを有する倍率に対して、同一内容を図示している。
【００９８】
図３３乃至３８に図示されたスキャンラインカバレッジ技術は、比較的少ない演算能力で、それぞれの異なる縮尺の各ソース画像に覆われた各ソース画像ウインドウの割合に関する正確な推定値を提供することが分かる。
【００９９】
図３９及び４０は、「領域」タイプの連続カバレッジ関数に関する図を図示している。本発明の幾つかの実施形態に於いては、それぞれの関連するソース画像ピクセルで覆われた所定のサブピクセルのソース画像ウインドウの割合が、上述したラインカバレッジ近似ではなく、むしろ、サブピクセルのソース画像ウインドウ内に位置するそうした各ソース画像のその部分の領域の実際の計算によって算出される。そうした各ソースピクセルに対して、現在のサブピクセルの色に対応するピクセルのコンポーネント色値が決定される。次に、各サブピクセルの輝度値は、カバレッジ値の割合の倍数と、そのソース画像ウインドウ内に現れる各ソース画像ピクセルに対するサブピクセルの色値とを合計して算出される。
【０１００】
図３９は、青色（Ｂ）サブピクセルに関連付けられたソース画像ウインドウ領域３９００を図示している。ソースピクセル３９２０は、８つの他のソースピクセルの一部と同様に、ソース画像ウインドウ３９００内に含まれている。ソースピクセル３９２０によって覆われたソース画像ウインドウ３９００の割合は、全ソース画像ウインドウ４０００の領域に対する図４０の網掛け部４０２０の領域の比率を獲得することによって計算される。同様に、そこに含まれる他のソースピクセルによって覆われたソース画像ウインドウ４０００の割合は、ウインドウ４０００の異なる網掛け領域によって示されているように、ソース画像ウインドウの全領域に対するソース画像ウインドウ内に存在するそれらの領域の割合を獲得することによって計算される。
【０１０１】
図４１は、図３９及び４０に関して議論された種類のエリアカバレッジ関数を実行するために使用可能なアルゴリズム４１００に関する高度に簡略化された擬似コード表記を提供している。
【０１０２】
このアルゴリズムは、生成されるサブピクセル最適化された画像に於いて各ピクセル行に対して実行されるループ４１０２を含んでいる。そうした各行に対して、ループ４１０２は、その行に於ける各ピクセルに対するインナーループ４１０４を実行する。
【０１０３】
このインナーループ４１０４は、ループ４１０６と関数４１１６で構成されている。ループ４１０６は、ループ４１０４の現在のピクセルに於ける各サブピクセルに対して実行される。このインナーループ４１０６は、関数４１０８及びループ４１１０とで構成されている。関数４１０８は、上述したように、ソース画像のどのピクセルが、サブピクセルに関連付けられたソース画像ウインドウ内に存在するかを決定する。これが実行された時点で、ループ４１１０は各ソース画像ピクセルに対して実行される。
【０１０４】
ループ４１１０は、関数４１１２及び関数４１１４とで構成されている。関数４１１２は、ループ４１１０の現在のソース画像ピクセルによって覆われたサブピクセルの対応するソース画像ウインドウ領域の割合を計算する。ステップ４１１４は、ループ４１０６の現在のサブピクセルに対して計算されている輝度値に、現在のソース画像ピクセルで覆われたサブピクセルのソース画像ウインドウ領域の割合の倍数と、現在のサブピクセルの色に対応するソース画像ピクセルのカラーコンポーネント値とを乗算したものを加える。
【０１０５】
ループ４１０６が現在のピクセルに於ける各サブピクセルに対して実行された時点で、
関数４１１６は現在の画素の色値を、ループ４１０６で計算された赤、緑、青のサブピクセル輝度値に一致するＲＧＢカラーコンポーネント値を有する色と同様に設定する。
【０１０６】
図４２乃至５３は２色サブピクセル最適化された画像に関する本発明の特徴に関する。
【０１０７】
「２色」画像は、個々のピクセル色が２つの異なる色値の間で変化する画像である。一般に、これらの２つの異なる色値は黒と白であり、ソースのピクセル及びサブピクセル画像のピクセルは、黒及び白に限定された値を有しており、場合によっては、黒及び白の中間のグレースケールに限定された値を有する。しかしながら、幾つかの実施形態に於いて、２つの異なる色値によって、任意の均一な前景色及び背景色と、それらの中間色とを表現することが出来る。多くの場合、テキストの表示は前景色及び背景色を含む色で色付けされているので、多くの場合、２色画像がテキストを表現するために使用される。しかし、他の２色形状、２色ビットマップ、色づけされた多色ビットマップの一部、又は、例えばグレースケール画像のような２色出力で表現される多色ビットマップを表現するために、２色画像を使用することも可能である。例えば、３色コンポーネントの各々の平均輝度に対応するグレースケール値を有するピクセルのそれぞれを単に処理することによって、グレースケール画像として多色ソース画像を処理することが可能である。
【０１０８】
そうした２色サブピクセル最適化された出力画像を使用する利点は、多くの場合、該画像が多色サブピクセル最適化された出力画像に比して、より高度な空間解像度を提供することが出来るという点にある。そうしたより高度な解像度は、２色が黒及び白、グレースケール値、又は、不透明及び透明である場合に許容されるが、これは、そうした各２色ペアの各色が、赤、緑、青の同等のコンポーネントを有しているので、各サブピクセルが、そうした２色ペアの前景及び背景の両方を他のものと同様に表現することが可能であるからである。カラーバランスを実行する必要を除いて、以下に示すように、各サブピクセルの輝度は、出力画像中の自身の領域に一致するソース画像の一部が前景色又は背景色で覆われる程度に関する関数として決定される。より小さなソースウインドウ（即ち、ピクセルのサイズよりも、むしろサブピクセルのサイズに一致するソースウインドウ）をこのように使用することによって、ソース画像のより正確な空間解像度を実現することが出来る。
【０１０９】
前景色及び背景色が黒及び白ではない場合、前景色及び背景色のそれぞれが比較的輝度の等しい赤、緑、青の値を有し、可能な限り異なった前景色及び背景色の平均輝度を有すれば、２色サブピクセル最適化画像で生成される解像度は最良となる。実際、２色サブピクセル最適化画像に関する本発明の特徴に関する幾つかの実施形態に於いては、出力画像の空間解像度を向上させるために、対応するグレースケール色に移行することで、出力の２色の一方又は両方が、対応する入力の２色から変更される。
【０１１０】
２色サブピクセル最適化された出力画像のサブピクセルが前景色を表示する程度は、アルファ値、又は、不透明値によって表現されることがある。そうしたアルファ値は、サブピクセルの輝度が前景色又は背景色に於けるサブピクセルのカラーコンポーネントに対応すべき程度を示している。アルファ値「１」は、サブピクセルのカラーコンポーネント値が、前景色に於ける対応するカラーコンポーネントに等しくなることを意味している。アルファ値「０」は、サブピクセルのカラーコンポーネント値が、背景色に於ける対応するカラーコンポーネントに等しくなることを意味している。中間のアルファ値は、サブピクセルのカラーコンポーネント値が、前景色及び背景色の両方に於ける対応するカラーコンポーネントの加重された混合値となることを意味している。サブピクセル最適化ビットマップがアルファ値の観点で表現される時点で、異なる前景色及び背景色を使用する所定のパターンの２色画像を表現するために、アルファ値を使用することが出来る。フォントの表示に於いて、所定のサイズの所定の文字フォント形状のビットマップパターンは、多くの場合、異なる前景色及び背景色で表示されるので、これは一般的にフォント形状を表現するために使用される。
【０１１１】
ビットマップ画像の２色サブピクセル最適化に関する本発明の特徴に関する幾つかの実施形態に於いて、ビットマップ画像の拡大／縮小されたサブピクセル最適化された画像は、以下の（ａ）〜（ｃ）の関数として、前景又は背景２色カバレッジ値と、拡大／縮小された画像の各サブピクセルとを関連付けることによって生成される。即ち、（ａ）サブピクセルの領域に対応するソース画像ウインドウに於ける各ソース画像ピクセルに対する前景色又は背景色の比率、（ｂ）そうした各ソース画像ピクセルによって覆われたそのウインドウの割合、（ｃ）カラーアンバランスを低減するためにサブピクセルカバレッジ値を分散するカラーバランス関数、である。２色出力画像がグレースケール入力画像、又は、多色入力画像に対して生成される場合には、そのソース画像ウインドウを覆うソース画像ピクセルの全ピクセル輝度に関する関数として、個々のサブピクセル対して計算されるカバレッジ値を獲得することが出来る。幾つかの実施形態に於いては、所定のサブピクセルのソース画像ウインドウに関連付けられた所定の輝度値が他のサブピクセルに分配される程度は、輝度値がカラーアンバランスを発生させる程度に関する関数である。
【０１１２】
図４２乃至４４は、ビットマップ画像のグレースケール２色画像の各サブピクセルの輝度を決定する方法に関する。図４２に於いて、矩形部４２００は、拡大／縮小された画像の赤色（Ｒ）サブピクセルに関連付けられるソース画像のウインドウを囲んでいる。そうした赤色（Ｒ）サブピクセルに関連付けられた輝度は、そうした各ソース画像ピクセルによって覆われたソース画像ウインドウの割合でそれぞれ乗算された、ソース画像ウインドウ４２００を覆う１つ又は複数のソース画像ピクセルの全ピクセル輝度に関する関数である。そうしたカバレッジの割合を計算又は推定する任意の周知の方法を使用することが出来る。
【０１１３】
図４２に図示された実施形態に於いて、ソース画像ウインドウ４２００は、２本の水平スキャンライン４２１０及び４２２０、及び、２本の垂直スキャンラインをそれと関連付けている。図４３及び４４は、緑色及び青色のサブピクセルのそれぞれに対する、ソース画像ウインドウ４３００及び４４００に対応するカバレッジラインを図示している。前述の通り、ソース画像ウインドウ領域がソースピクセルによって覆われた程度を推定するために、各スキャンラインに沿って所定のカバレッジが開始及び停止する境界位置を決定する数学的な関数が実行される。１つ又は複数のそうした境界の間の長さ、又は、そうした境界と所定のサブピクセルに関連付けられたソース画像ウインドウの境界との間の長さに関する関数として、カバレッジが計算される。これは、図２９に於いて上述した方法と同様の方法で実行することが出来る。
【０１１４】
２色サブピクセル最適化された画像の計算時に、カラーアンバランスが発生する可能性がある。これは、２色法が前景色及び背景色、及び、ソース画像が中間色を有する場合には、前景色及び背景色との間のスペクトルに於ける色のみで構成されているものとして、ユーザに知覚される出力画像を生成しようとしているからである。しかし、ピクセルの個々の赤、緑、青のサブピクセルのカバレッジ値は、そうした各サブピクセルに於ける前景色の割合によって決定され、このことは、多くの場合、個々の出力ピクセルの色が、そうしたカラーバランスの無い状態で、所望の２色スペクトル（通常はグレースケール）とは関連性が無いことを意味している。
【０１１５】
例えば、グレースケール画像では、ソース画像が、サブピクセル最適化された出力画像に於ける赤及び緑のサブピクセルの間の境界に対応する位置で、全体的に白色から全体的に黒色に変化する場合、出力画像に於ける対応するピクセルは、そのサブピクセルを全体的にオンの状態に切り換える傾向のある赤色サブピクセルカバレッジ値と、そうしたサブピクセルを全体的にオフの状態に切り換える傾向のある緑色及び青色サブピクセルカバレッジ値とを有する。この例では、出力画像がグレースケール画像であるということになっているのだが、これによってピクセルに対する視認可能な赤色が生じる結果となる。
【０１１６】
図４５乃至４７は、２色ビットマップから生成されるカバレッジ値をカラーバランスするために、フォントアウトラインのラスタ化に基づいて計算されたサブピクセルカバレッジ値をカラーバランスするための従来技術で使用されている種類の従来の線形カラーバランス法を、如何にして使用することが出来るかを図示している。
【０１１７】
図４５は、ＲＧＢグリッド４６００下での一組のグレースケールソース画像ピクセルを図示している。グリッド４６００は、太い線の区分で囲まれた４つのピクセル領域を有する。そうした各ピクセル領域は、出力画像が表示されるサブピクセルアドレス可能スクリーンに於ける全ピクセルに関連付けられている。各ピクセル領域は、サブピクセルアドレス可能スクリーン上で関連付けられたピクセルのサブピクセルに関連付けられた３つの領域にさらに分割される。サブピクセルに関連付けられた領域４６１０は、赤色（Ｒ）サブピクセルに関連付けられており、サブピクセルに関連付けられた領域４６１２は、緑色（Ｇ）サブピクセルに関連付けられており、サブピクセルに関連付けられた領域４６１４は、青色（Ｂ）サブピクセルに関連付けられている。同様に、サブピクセルに関連付けられた領域４６１６乃至４６３２は、それぞれの表示スクリーンサブピクセルに関連付けられている。
【０１１８】
サブピクセルに関連付けられた領域４６１４乃至４６３０は、今回の例では黒色の前景色の様々な程度に対応する、非白色輝度値を有するソース画像ピクセルによって、全体的又は部分的に覆われている。サブピクセルに関連付けられた領域４６１４乃至４６３０のそれぞれに於けるソース画像ピクセルの黒色輝度値の合計（白色を差し引いた値、又は、通常の輝度値に相当）は、図４６のＲＧＢグリッド４７００に於ける対応するサブピクセル領域にマッピングされる。各サブピクセル領域４７４４乃至４７６０内の斜線領域の高さは、対応するサブピクセル領域４６１４乃至４６３０の非白色輝度値の合計によって決定される。
【０１１９】
図４６の最下部は、例えば、サブピクセル４７５０等、所定のサブピクセルに関連付けられたカバレッジ値を、その所与のサブピクセル４７５０を中心とする５つのサブピクセルに対して分配するために使用可能な、中央部重点対称カラーフィルタの使用を図示している。サブピクセル４７５０のカバレッジ値の９分の３は、サブピクセル４７５０自身に分配される。サブピクセル４７５０のカバレッジ値の９分の２は、サブピクセル４７５０の直左及び直右にそれぞれ位置するサブピクセル４７４８及び４７５２に分配される。サブピクセル４７５０の色分配を完了するために、カバレッジ値の９分の１は、それぞれ、サブピクセル４７５０の左側２つ目のサブピクセル、及び、右側２つ目のサブピクセルであるサブピクセル４７４６及び４７５４に分配される。
【０１２０】
概して、カラーバランスは、近傍のサブピクセルの近傍圏内にある色値を割り当てる。例えば、図４６に示された実施形態等、多くの実施形態に於いては、そうした割り当てが実施される近傍サブピクセルは、輝度が割り当てられているサブピクセルからピクセル一つ分の距離に過ぎないが、今回の例では、輝度が割り当てられているサブピクセルからピクセル２つ分に相当する距離内にあるものとして近傍サブピクセルが定義されている。
【０１２１】
図４７は、図４６の中央部重点対称カラーバランスフィルタが、図４６の上半分に図示されたサブピクセル４７４４乃至４７６０のそれぞれに対して計算されたカバレッジ値に、直線的に適用された場合の結果を図示している。
【０１２２】
図４７に於いては、図４７の最上部に図示された各サブピクセル４７４４乃至４７６０に関連付けられたカバレッジ値は、自身のサブピクセルに対して、そして、図４６に図示されているように、左側及び右側にある２つのサブピクセルに対して、同一の比率でカバレッジ値が分配されるカラーバランスフィルタを使用して分配される。図４７の中央のグリッド４８０２は、そうした分配がサブピクセル４７４０乃至４７６２のそれぞれに対して行われる寄与分の大きさを図式化して説明している。所定のサブピクセル４７４４乃至４７６０のそれぞれに関連付けられた分配は、各サブピクセルの直下に位置する垂直コラムを中心に配置されている。
【０１２３】
図４７の最下部に図示されたＲＧＢサブピクセルグリッドパターン４８０４は、中央のパネル４８０２に図示された全てのカバレッジ値の分配によって行われた、全ての寄与分を合計することによって、サブピクセル４７４０乃至４７６２のそれぞれに対して計算される輝度値を図示している。この方法を完了するために、グリッド４８０４に於ける各ピクセルの赤、緑、青のサブピクセルの輝度値が、そうした各サブピクセルの色を特定する３つのカラーコンポーネント値として使用される。
【０１２４】
この線形法で拡大／縮小された画像のカラーアンバランスは低減されるが、これは空間解像度に於ける実質的な低下を代償に実行される。これは、サブピクセル最適化された出力画像に於けるサブピクセル輝度値を表す図４７の最下部のＲＧＢグリッドパターン４８０４における値と、出力画像のサブピクセルに対応する領域に於けるソース画像ピクセルに関する、輝度又は前景色カバレッジを表す図４７の最上部に位置するＲＧＢグリッドパターン４８００に於ける値とを、比較することによって理解することが出来る。図４７から判る通り、出力画像の空間解像度はソース画像の空間解像度に比して不鮮明である。
【０１２５】
本発明は、サブピクセル最適化出力画像に関する類似のカラーバランスを提供するが、多くの場合、出力画像に関して不鮮明度をより少なくしてカラーバランスを提供する技術革新を含んでいる。これは、非線形カラーバランスフィルタリング法の使用により実行される。該非線形フィルタリングを適用する方法は、図４８及び４９に図示されている。
【０１２６】
図４８のＲＧＢグリッドパターン４９００は、図４６のＲＧＢグリッドパターン４７００の複写である。今回の場合も、総合輝度、又は、前景色カバレッジ、即ち、関連するサブピクセルに対応するソース画像ピクセルの値は、斜線領域の高さで表現されている。
【０１２７】
非線形カラーバランス法の第１段階が、図４８に図示されている。前述の通り、ＲＧＢグリッドパターン４９００は、太い線の区分によって４分割されており、４等分された各部分、即ち、括弧４９０２、４９０４、４９０６、４９０８は、拡大／縮小された、又は、出力された画像の全ピクセルに関連付けられている。ピクセル領域４９０２、４９０４、４９０６、４９０８のそれぞれは、生成される出力画像に於けるサブピクセルに対応するサブピクセルソース画像ウインドウにさらに分割されている。各ピクセルに対して、サブピクセルの対応するソース画像ウインドウの何れが最も低いサブピクセル輝度、又は、前景カバレッジ値を有しているのかが決定される。最小輝度／カバレッジ値に等しい輝度（又はアルファ）値は、図４８の下半分に図示されたＲＧＢグリッドパターン４９１０の出力画像ピクセル４９１２、４９１４、４９１６、４９１８の各サブピクセルに対して計算される輝度／アルファ値に加算される。
【０１２８】
図４８の上部半分に於いて、破線４９２０は、ピクセル領域４９０２の最小輝度値／アルファ値がゼロであることを示しているが、これは、そのピクセルの最初の２つのサブピクセルソース画像ウインドウが輝度値「ゼロ」を有しているからである。このように、図４８に図示されたステップは、ピクセル４９１２の赤、緑、青のサブピクセル領域に対して輝度値／アルファ値をゼロに設定する。同様にして、ピクセル領域４９０４の最小輝度値は、ピクセル４９０４の赤色サブピクセルソース画像ウインドウ４９２２の値によって決定される。この最小輝度値は、同図の下半分に図示された対応するピクセル領域４９１４にマッピングされる。同様に、ピクセル領域４９０６及び４９０８の最小輝度値は、図４８の下半分に図示されたピクセル領域４９１６及び４９１８にマッピングされる。このステップの完了後に生じる部分的に計算された輝度値／アルファ値は、図４８の最下部のＲＧＢグリッドパターン４９１０によって表されている。
【０１２９】
非線形カラーバランス法の第２段階は、図４９に図示されている。第２段階に関するこの例では、関連するピクセルの最小輝度値／アルファ値を超える各サブピクセルの輝度値／アルファ値の一部は、図４６及び４７に関して上述された種類のカラーバランス分配フィルタを利用することによって、ＲＧＢグリッドパターン４９１０にマッピングされている。
【０１３０】
図４９の最上部のピクセルグリッド５０００は、対応するピクセルに対する最小サブピクセル輝度値／アルファ値の値（低密度の斜線で示す）が除かれた後に残存する各サブピクセルの輝度値／アルファ値（高密度の斜線で示す）の部分が表現されている点を除いて、図４８の最上部のピクセルグリッド４９００に対応する（そして、同一サブピクセル４７４０乃至４７６２を有する）。
【０１３１】
図４９に於いては、高密度の斜線を有する図４９の最上部に図示されたサブピクセル輝度値／カバレッジ値の超過部分のみが、図４６に図示された種類のカラーバランスフィルタを使用して分配されるという点を除いて、  図４９の中央に位置するサブピクセルグリッド５００２は、図４７の中央に位置する類似の形状のピクセルグリッド４８０２に対応している。
【０１３２】
同図のこの部分から判る通り、各サブピクセルに対する超過分の輝度値／アルファ値は、図４６に図示された同一の比率のフィルタを使用して、そのサブピクセル自身、左側の２つのサブピクセル、及び、右側の２つのサブピクセルに分配される。図４９の最下部近傍の数字５００４が付与された部分は、非線形法に関するこの例に於いて、サブピクセル４７４０乃至４７６２のそれぞれに分配される輝度値／アルファ値のそうした超過分の合計を図示している。
【０１３３】
図４９の最下部に図示したように、出力画像に於ける各サブピクセルに対して使用される輝度値／アルファ値の合計を生成するために、各サブピクセルに対して計算された輝度値／アルファ値の超過分の合計は、図４８に図示されたステップによって以前にそのサブピクセルに加算された最小輝度値／アルファ値に加算される。非線形カラーバランス処理を完了するために、ＲＧＢグリッドパターン４９１０の各サブピクセルに対して合計された輝度値／アルファ値は、それが関連付けられたピクセルの赤、緑、青のカラーコンポーネント値を決定するために使用される。そうした表示に於ける個々の各ピクセルの赤、緑、青の色値は等しくない可能性があるが、ピクセル行の５つ分程度隣接するサブピクセルの任意の近傍における赤、緑、青の色値の合計は、実質的に等しい、又は、バランスが取れているはずだ。
【０１３４】
線形及び非線形カラーバランスフィルタリング法の使用により達成された結果の比較は、図５０、５１、５２に図示されている。
【０１３５】
図５０は、図４６のＲＧＢグリッドパターン４７００、及び、図４８のＲＧＢグリッドパターン４９００に最初にマッピングされたように、元々のフィルタ処理されているソースピクセル輝度値／カバレッジ値を図示している。
【０１３６】
図５１は、図４９の最下部に図示されているように、非線形フィルタリング法の結果を示している。
【０１３７】
図５２は、図４７のＲＧＢグリッドパターン４８０４に図示されているように、線形フィルタリング法の結果を示している。
【０１３８】
図５１が示すように、非線形カラーバランス法の出力は、図５２に示されている線形法の結果よりも、図５０の輝度値／アルファ値に関する元々の空間分布によく似ている。図５１の非線形法によって生成された輝度値は、かなり不鮮明度が低く、これにより、線形法で生成された出力よりもより高度で可視的な空間解像度を提供する。これは、比線形法が空間解像度をぼかす有害な結果を有するカラーバランス分配を実行しようとしており、カラーアンバランスを防止するためにそうした分配を必要とする、サブピクセル輝度値／カバレッジ値のそうした部分に対してのみ実行しようとしているからである。これは、図４９の数字５００４で示されるような、非線形方法を使用して各サブピクセルに分配されたサブピクセル輝度値／カバレッジ値の合計と、図４７の最下部の各サブピクセルに対して図示されたクロスハッチ模様の領域全体で示されるような、線形法を使用して各サブピクセルに分配された対応する合計とを比較することで理解できる。
【０１３９】
図５３は、非線形カラーバランス法を使用して、ビットマップソース画像からサブピクセル最適化された２色出力ビットマップを生成する方法の一実施例を、高度に簡略化した擬似コード記述で表したものである。
【０１４０】
同図に於けるアルゴリズム５３００は、画像の各ピクセル行に対して実行されるループ５３０１で構成されている。このループは、各ピクセル行に対して、２つのサブループ５３０２及び５３２２を実行する。
【０１４１】
ループ５３０２は、ループ５３９１の現在の行に於ける各ピクセルに対して実行される。そうした各ピクセルに対して、ループ５３０２はループ５３０４、関数５３１４、及び、ループ５３１６を実行する。
【０１４２】
ループ５３０４は、ループ５３０２の現在のピクセルに於ける各サブピクセルに対して実行される。そうした各サブピクセルに対して、ループ５３０４は、関数５３０６及びループ５３０８を実行する。
【０１４３】
関数５３０６は、ソース画像の何れかのピクセルが、拡大縮小された画像に於けるサブピクセルの領域に対応するソース画像のウインドウ内に位置するかを決定する。これは、図１７乃至４４に関して上述したものを含む、任意の周知のカバレッジ計算及び推定関数によって実行することが可能である。
【０１４４】
関数５３１０及び５３１２で構成されるループ５３０８は、現在のサブピクセルのソース画像ウインドウ内に全体的又は部分的に含まれる各ソース画像ピクセルに対して実行される。関数５３１０は、ソース画像ピクセルの領域によって覆われたソース画像ウインドウの領域の割合を計算する。関数５３１２は、ソース画像ピクセルによって覆われたウインドウ領域の割合の倍数と、ソース画像ピクセルの平均前景色強度との乗算を、現在のサブピクセルに対して計算された輝度値／カバレッジ値に加える。
【０１４５】
２色画像がグレースケール画像である場合には、前景色強度（上記に於いて、多くの場合、輝度、又は輝度値／カバレッジ値、と称した）は、白又は黒のそれぞれが前景色であるかに応じて、全ソース画像ピクセルのそれぞれに関する一般に輝度と称されるものか、一般に輝度と称されるものの逆数の何れかに対応することが可能である。ソース画像が多色画像である場合、関数５３１２の目的のために前景色強度の計算する際に、ソース画像ピクセルに対して使用可能な輝度値を決定するために、各ソース画像ピクセルのカラーコンポーネントの平均輝度値を使用することが出来る。
【０１４６】
図４６に図示された種類の輝度値／カバレッジ値を決定するために、ループ５３０４を使用することが出来る。
【０１４７】
ループ５３０４が現在のピクセルに於ける各サブピクセルに対して実行される時点で、関数５３１４は、図４８の上半分に図示されているように、現在のピクセル対して計算された最小のサブピクセル輝度値／カバレッジ値を求める。
【０１４８】
これが実行された時点で、関数５３１８及び５３２０で構成されるループ５３１６は、現在のピクセルに於ける各サブピクセルに対して実行される。
【０１４９】
図４８の下半分に図示されているように、関数５３１８は、サブピクセルに対して計算されている輝度値／アルファ値を、関数５３１４によって当該ピクセルに対して決定された最小のサブピクセル輝度値／カバレッジ値に設定する。
【０１５０】
図４９に示されているように、関数５３２０は、ピクセルの最小のサブピクセル輝度値／カバレッジ値を超過する、サブピクセル輝度カバレッジ値の一部を、カラーバランス分配フィルタを使用して現在のピクセル行に於けるサブピクセル及び近傍のサブピクセルに対して計算されている輝度値／アルファ値に分配する。
【０１５１】
本発明の一実施形態に於いて、所定のサブピクセルに対して実行されたそうした分配の合計が、最大限に許容された輝度値／出力値を超える場合、サブピクセルの輝度値／アルファ値はその最大値に制限される。こうしたクリッピングによって何らかのカラーアンバランスが生じる可能性があるが、本発明者には、結果として生じるアンバランスが殆ど注目に値しないものであることが判っている。
【０１５２】
輝度値／アルファ値が当該行の各サブピクセルに対して計算され、ループ５３０２が完了した時点で、ループ５３２２によって、関数５３２４が当該行の各ピクセルに対して実行される。この関数は、ピクセル色値を、ピクセルの赤、緑、青のサブピクセルのそれぞれに対して計算された輝度値／アルファ値に対応する赤、緑、青のコンポーネント値を備えた複合ＲＧＢ値を有する色に等しくなるように設定する
図５４は、ソース画像から生成されたサブピクセル最適化された画像が、多色サブピクセル最適化処理又は２色サブピクセル最適化処理によって生成される範囲に於けるトレードオフを、表示装置のユーザが動的に実行可能な本発明の１つの特徴を図示している。この例に於ける２色サブピクセル最適化によって、グレースケール出力画像のみを生成可能である一方で、多色サブピクセル最適化により生成された出力画像によって、妥当な色の精度で縮小カラー画像を表現可能である。しかし、場合によっては、そうしたグレースケール出力画像は、多色サブピクセル最適化によって生成された出力画像に比して、より精度の高い空間解像度を有し、特にソース画像がくっきりとした縁部を備えた白色部分及び黒色部分を有する場合には、知覚し難いカラーアンバランスを有する。
【０１５３】
拡大／縮小、及び、サブピクセル最適化されたグレースケールビットマップ５４４０を生成するために、例えば図４２乃至５３に関して上述された一例など、２色サブピクセル最適化法を使用する関数５４１０及び５４３０を利用することによって、カラービットマップ画像５４００を拡大／縮小、及び、サブピクセル最適化することが出来る。拡大／縮小、及び、サブピクセル最適化されたカラービットマップ５４５０を生成するために、図１７乃至４１に関して上述された一例など、多色サブピクセル最適化法を使用するプロセス５４２０によって、カラービットマップ５４００を拡大／縮小、及び、サブピクセル最適化することも可能である。
【０１５４】
図５４に図示された本発明の実施形態によれば、表示装置のユーザは、カラービットマップ５４５０及びグレースケールビットマップ５４４０の混合を実現するために、関数５４６０を使用して、例えばポインティングデバイス、キーボード、又は、他の入力装置など、表示装置の制御装置を操作することが可能である。例えば、スライドバーの操作によってこれを実行することが出来る。関数５４８０は、グレースケールビットマップ５４４０及びカラービットマップ５４５０と、ユーザが選択したカラー／グレースケールトレードオフ情報を受け付け、ユーザが選択したカラー／グレースケールトレードオフ５４６０の関数として、各々の色値に重み付けをして、グレースケールビットマップ５４４０及びカラービットマップ５４５０からの対応するピクセルの色値を混合する。
【０１５５】
図５４に図示された種類の幾つかの実施形態に於いて、ユーザがカラー／グレースケールスペクトルの何れかの極限でトレードオフ値を選択する場合、この処理によって、選択された極限に対応するビットマップ５４４０又は５４５０を計算するだけで、演算処理を低減することが出来る。
【０１５６】
本発明の該特徴に関する利点は、カラーバランス、及び／又は、位置的精度が最重要である場合、又は、それがより容易に読み取り可能な表示を求めるためにトレードオフ選択を単純に変化させる場合に、それが最重要であるか、色に正確であれば、表示装置のユーザがそれを支持することが出来るという点にある。
【０１５７】
本発明の全ての特徴がサブピクセル最適化されたテキストを必要とする訳ではなく、そうするものの多くは、サブピクセル最適化されたフォントのフォント形状を生成する従来技術の方法を使用することが出来る。しかしながら、本発明の幾つかの特徴は、サブピクセル最適化されたフォントビットマップを生成するための改良された方法に関する。
【０１５８】
図５５乃至９７は、サブピクセル最適化されたフォントビットマップの形成及び使用に関連する本発明の特徴に関する。
【０１５９】
図５５は、フォントアウトライン５５００を図示しており、この例では、タイムズローマンフォントの大文字「Ｂ」のアウトラインを図示している。このアウトラインは、それぞれが赤、青、緑のサブピクセル５５０６、５５０８、５５１０をそれぞれ含む個々の全ピクセル５５０４を複数用いて構成されるサブピクセルグリッド５５０２上に重ねて表示されている。
【０１６０】
図５５に図示されたフォントアウトラインは、比較的通常のテキストサイズでの表示に使用可能なアウトラインであり、本発明者のサブピクセル最適化文字フォント形状の方法が、広範囲のアプリケーションで適用可能であり、図１１の最下部に図示された種類の小型スクリーン表示に限定されないことを示している。しかしながら、本発明のこの特徴が小型スクリーン表示、及び／又は、極めて小さいピクセルサイズでのフォントの表示に適用される場合、例えば、幾つかの実施形態では１０ピクセル／ｅｍまたはそれ未満のサイズで、そして、他の実施形態では８ピクセル／ｅｍまたはそれ未満のサイズで、使用されるフォントを小さなサイズで表示するために最適化することが望ましい。
【０１６１】
図５６は、サブピクセルアドレス可能スクリーン上に於けるそうした小型表示のために最適化されたフォントを図示したものである。図５７は、同一ビットマップを２倍のサイズで図示している。残念ながら、図５６及び５７に図示されたビットマップの印刷物は、全ピクセルの平均輝度を表示しており、そうしたビットマップがサブピクセルアドレス可能表示上に表示された際に可能となる、より高い解像度を獲得することが出来ていない。
【０１６２】
図５６及び５７に図示されたフォントは、選択された個々のフォントアウトライン境界を、ピクセル境界、サブピクセル境界、及び、サブピクセル境界間の水平及び垂直次元の中間に変更するヒンティング処理によって生成されている。そうした高解像度ヒンティングは、サブピクセル表示上で最適な可読性を達成するために使用される。文字がそうした小型フォントサイズで表示される際に、文字が可能な限り鮮明であるとユーザが比較的満足感を覚えるまで、フォントデザイナーに様々なヒンティング値を用いて個々の文字のサブピクセル最適化ビットマップを見させることによって、これを実行する。そうしたフォントヒンティングの有識者が理解しているように、フォントは、そのフォントの全てのサイズのレンダリングを越えてフォントアウトラインの個々の部分の配置を命令するヒントと、特定のピクセルサイズで文字フォント形状に適用される特別ヒントを有することが出来る。図５６及び５７に図示されたフォントは、８ピクセル／ｅｍでのそれらの表示を最適化するようにヒンティングされており、それらの幾つかは、そうした小さなサイズでのみ適用される特定のヒントを有している。
【０１６３】
実際、本出願の同図に図示された、３２０×２４０ピクセル解像度のスクリーンショットに於ける殆どのフォントは、そのサイズで表示するために特別にヒンティングされた８ピクセル／ｅｍのフォントである。比較的高水準の可読性が可能となる一方で、これらのフォントによって、比較的大量のウェブテキストは小型スクリーン上に適合可能である。これらのフォントによって、ラテンアルファベットの小文字の大多数を、隣接する文字同士を隔てるスペースが在ればそれを含んで、４ピクセルコラム又はそれ未満で表示することが出来る。これらのフォントによって、大文字の大部分は５ピクセルコラム又はそれ未満で表示することが出来る。
【０１６４】
そうした小さなフォントの可読性は、サブピクセル最適化、又は、アンチエイリアスの何れかを使用することによって大幅に向上されるのであるが、これは、これらの技術によって、文字形状が所定のピクセルを覆う程度に関する情報が、全ピクセルレベルでの２進法表示以上の方法で表現可能であるからである。実際、サブピクセル最適化はアンチエイリアスの一種であるが、これは、従来のアンチエイリアスと同様に、サブピクセル最適化によって、フォント形状により部分的に覆われたピクセルが、そうしたカバレッジの程度に関する関数に比例する色値を有するからである。
【０１６５】
図５８及び５９は、本発明によって生成されたサブピクセル最適化ビットマップを、フォントアウトライン、及び／又は、フォントビットマップとして表現することが可能であるということを図示している。フォントアウトライン記述５８０２は、好ましくは、文字アウトラインの境界を１つ又は複数の異なるフォントサイズで最適に配置するように設計されたヒンティング情報と共に、所定のフォントの１つ又は複数の文字の形状に関する数学的幾何学的記述を含んでいる。これらのフォントアウトラインは、例えばここで議論されたような、サブピクセルアドレス可能表示上で最適にレンダリングされるように設計され、及び／又は、サブピクセルアドレス可能表示上で表示するために最適化されているヒンティングを有するものであっても良い。
【０１６６】
以下に記述されるように、フォントレンダラ５８０６をそうしたアウトラインからサブピクセル最適化ビットマップ５８０４を生成するために使用することが出来る。
【０１６７】
本発明の幾つかの実施形態に於いて、図５８に図示されているように、コンピュータ５８０８、及び／又は、そのコンピュータ上で実行するアプリケーションは、フォントサーバ５８１２からコンピュータネットワーク５８１４を介してアクセスされたフォントビットマップ又はフォントアウトラインを使用して、テキストを表示する。他の実施形態に於いて、図５９に図示されているように、コンピュータ５９００、及び／又は、そのコンピュータ上で実行されるアプリケーション５９０２は、それらの中に保存されたテキストをレンダリングするために必要なフォントビットマップ５８０４を有している。そうしたコンピュータ、及び／又は、アプリケーションは、フォントビットマップのみを保持可能であるか、又は、それらは拡大／縮小可能なフォントアウトライン５８０２を保存し、異なるサイズで随時フォントビットマップ５８０４をレンダリングすることが出来る。
【０１６８】
フォントビットマップのみを保存する利点は、コンピュータ５９００上にフォントアウトライン及びフォントレンダラを保存する必要性がなくなる点にある。また、それによりフォントレンダリングに関わる演算も必要性なくなる。さらに、多くのフォント業者は、フォントビットマップが比較的自由にインターネット上で使用可能になり、その後フォントアウトラインも使用可能になることをさらに望んでいる。
【０１６９】
フォントアウトラインを保存する利点は、ユーザが各種サイズでフォントをレンダリングすることに関心を持っている場合、全ての異なるサイズの文字に対してフォントビットマップを保存することに比して、フォントレンダラに必要なコードを保存することと、拡大／縮小可能なフォントアウトライン記述を保存することの方が、実際には効率的であるという点にある。
【０１７０】
図５８に図示されているように、フォントサーバからフォントを受信する利点は、それによって、クライアントコンピュータ５８０８が、例えば図５８に表現されているように、大容量のフォントライブラリを保存する必要なく、随時そうしたフォントをダウンロードすることによって、多数の異なるフォント及びサイズの任意のもので、テキストを表現することが可能であるという点にある。クライアントコンピュータ５８０８は、文字列を表示しようとする度にネットワーク５８１４を介して通信する必要がないように、妥当な数の文字フォントビットマップをキャッシュすることが望ましい。
【０１７１】
図６０は、サブピクセル最適化フォントビットマップの生成に関する本発明の特徴に関する幾つかの実施形態で使用されたアルゴリズム６００の高度に簡略化された擬似コード記述である。このアルゴリズムは、図４８及び４９に関して上述された種類の非線形カラーバランスを使用している。そうしたサブピクセル最適化アルゴリズムは、テキスト文字の表示に使用する際に特に最適であるが、これは、全ピクセル境界を有するテキストアウトライン境界の配置が、ヒンティングの使用のために、ラスタ化されたフォント形状に於いて極めて一般的であるからである。
【０１７２】
図６０のアルゴリズム６０００は、所定のピクセル解像度での個々の文字フォント形状のラスタ化に於いて、各ピクセル行に対して実行されるループ６００２を含んでいる。このループ６００２は、各ピクセル行に対して順次実行される３つのサブループ６００４、６００８、６０２０で構成されている。
【０１７３】
ループ６００４は、ループ６００２の現在の繰り返しが実行されているピクセル行に於ける各サブピクセルに対して実行される。そうした各サブピクセルに対して、ループ６００４は、画像が生成されている文字フォント形状によって覆われるサブピクセルの領域の割合に関する関数として、そうした各サブピクセルに対するカバレッジ値を決定する、関数６００６を実行する。
【０１７４】
図６１乃至９０は、図６０のステップ６００６における各サブピクセルのカバレッジ値を決定するために使用可能な方法を議論するために使用される。
【０１７５】
図６１、６２、６３に示されているように、そうしたカバレッジ値が所定のピクセル５５０４に対して計算される、文字フォント形状の画像に於ける領域は、赤、緑、青のサブピクセル５５０６、５５０８、５５１０によってそれぞれ表示される画像の領域に対応している。これは、上記図１４乃至１６に於いて示されているように、通常、各サブピクセルに対応するソース画像ウインドウがより大きいサブピクセル最適化された多色画像の場合とは異なっている。図６０の方法で使用されたソース画像ウインドウは、図４２乃至４４に関して上述された２色ビットマップに使用されたソース画像ウインドウの領域と同一サイズを有する。
【０１７６】
そうしたより高い解像度のソース画像ウインドウを使用可能であるのは、殆どのフォントアウトライン記述によって記述された文字フォントの形状は、前景色（殆どの場合、アルファ値「１」で表現される）に関連していると見なされるフォントアウトラインと、背景色（殆どの場合、アルファ値「０」で表現される）に関連している画像の全ての他部分とに覆われた領域を備えた２色画像であるからである。
【０１７７】
図６０の関数６００６に於けるカバレッジ値の計算は、図５５に図示されたグリッド５５０２のサブピクセルの解像度と同一の空間解像度を有するピクセル配列に関連して、文字フォントアウトラインをラスタ化可能な任意の従来技術の方法を使用して実行することが出来る。
【０１７８】
図６４乃至６７は、フォント形状６４０２によって覆われたラスタ化グリッドに於けるユニットの割合を計算するために使用されている従来の方法の幾つかを図示している。この従来技術に於いて、ラスタ化ユニット６４００は、通常、出力画像に於ける全ピクセルに対応している。図６０の方法に於いては、それは出力画像のサブピクセルに対応している。
【０１７９】
図６４は、フォント形状６４０２によって覆われたユニットの領域を正確に計算するための数学的技術を使用するラスタ化ユニット６４００のカバレッジ値を決定するための一方法を図示している。これは比較的コンピュータの費用がかかるので、かつて殆ど使用されたことはない。
【０１８０】
実質的によりコンピュータを効果的に使用出来る方法は図６５に記載されており、この方法は、フォント形状の境界に関する区分的線形近似６５０４を使用することによって、フォント形状６４０２で覆われたラスタ化ユニット６４００の割合を計算する。
【０１８１】
図６６は、実質的により制度の低い結果を生み出しているが、さらにコンピュータを効果的に使用できる方法を図示している。この方法により、サンプルポイント６６００一式がどの程度の割合でフォント形状６４０２内に収まるかを決定することによって、ラスタ化ユニット６４００のカバレッジ値の割合が決定される。
【０１８２】
図６７は、図６６の方法と同一の、比較的低度の演算処理に対してより正確な結果を提供するカバレッジ値を決定する方法を図示している。それは、フォント形状６４０２によって覆われた多数のスキャンライン６７００及び６７０２の平均的な割合に関する関数として、ラスタ化ユニットのカバレッジを決定する。
【０１８３】
図６８乃至８７は、ラスタ化ユニットのカバレッジ値を計算する、コンピュータを極めて効果的に使用可能な方法を図示しており、該方法は、例えば同一量の演算処理に対して図６６に図示された方法など、サンプリング法に比して一般的に良い結果を生む。
【０１８４】
この方法に関する一実施形態は、本発明の発明者の一人、サンポ・ジェイ・カーシラの名義で出願された米国特許出願に於いて、より詳細に記載されている。この米国特許出願は、出願番号０９／３６３，５１３である。該米国特許出願は、１９９９年７月２９日に出願され、名称は「Ｓｙｓｔｅｍｓ  Ｆｏｒ  Ｒａｐｉｄｌｙ  Ｐｅｒｆｏｒｍｉｎｇ  Ｓｃａｎ  Ｃｏｎｖｅｒｓｉｏｎ  Ｗｉｔｈ  Ａｎｔｉ−Ａｌｉａｓｉｎｇ  Ｕｐｏｎ  Ｏｕｔｌｉｎｅ  Ｆｏｎｔｓ  Ａｎｄ  Ｏｔｈｅｒ  Ｇｒａｐｈｉｃ  Ｅｌｅｍｅｎｔｓ」である。この出願は、２００２年８月２０日付けで、米国特許第６，４３７，７９３号として特許が発行された。また、この出願は、ＰＣＴ出願「ＰＣＴ／ＵＳ００／２１５５９」で公開された発明の開示を有している。この出願及び該出願から取得された特許は、それらの全文を参照することにより本書に組み込まれる。
【０１８５】
図６８乃至８７の方法に於いて、ラスタ化ユニットに対するカバレッジ値は、フォントアウトラインの形状６４０２によって覆われる２本のスキャンライン、即ち、水平スキャンライン６８０４又は垂直スキャンライン６８０２の１本の割合によって決定される。カバレッジ値がラスタ化ユニットに対するカバレッジ値として使用されるスキャンラインは、より中間的なカバレッジ値を有するスキャンラインである。例えば、水平及び垂直スキャンラインのカバレッジが０〜１２６の値の範囲で計算される実施形態に於いて、選択されるスキャンラインは、５０％のカバレッジを示す、値が６３に最も近いスキャンラインである。
【０１８６】
図６８乃至７１に於いて、ラスタ化ユニット６４００のカバレッジの割合を表すために使用されるのは、垂直スキャンライン６８０２のカバレッジの割合である。図７２乃至７５に於いて、最も中間に近い値を有するのは水平スキャンライン６８０４であり、それ故、それは全ラスタ化ユニットに関する実際のカバレッジの割合を表現するのに使用されるかバレー時の割合を有している。
【０１８７】
図７６乃至８７の残り全てに於いて、より中間に近いカバレッジ値を有するスキャンラインのカバレッジ値は、通常、全ラスタ化ユニットに対する実際のカバレッジ値に非常に近く、それは、通常、全ラスタ化ユニットに関する実際のカバレッジ値から２５％以上は決して変化しないということがわかる。
【０１８８】
図８８乃至９０は、それらのラインカバレッジ値がより多くの中間カバレッジ値を有する関数として、それらの関連するラスタ化ユニットに関する推定されたカバレッジ値に対して、個々のスキャンラインに関するカバレッジ値の寄与を重み付けする方法に従って使用可能な、スキャンラインの他の組み合わせを示している。そうした方法に於いて、全ラスタ化ユニットに対して計算されたカバレッジ値は、各スキャンラインのカバレッジ値の合計と、そのカバレッジラインの中間とを乗算し、各スキャンラインの中間の合計で除算したものに等しく設定することが出来る。この計算では、スキャンラインの中間は、スキャンラインの真ん中の取り得る割合のカバレッジ値から、真ん中の割合のカバレッジ値とスキャンラインの実際の割合のカバレッジ値との差の絶対値を減算したものに等しい。
【０１８９】
図９１は、ピクセル５５０４の行９１００の赤、緑、青色のサブピクセル５５０６、５５０８、５５１０のそれぞれに対してマッピングされた、仮想フォントアウトライン９１０２を図示している。
【０１９０】
図９２は、行９１００におけるサブピクセルのそれぞれに対して計算されている、対応するカバレッジ値９２０２を図示している。
【０１９１】
図９３は、個々のサブピクセルに対して決定されたカバレッジ値が、線形カラーバランス法を使用して、どのように分配することが可能かを図示している。ビットマップソース画像のサブピクセル最適化表示というよりは、フォントアウトラインのサブピクセル最適化表示に適応されている点を除いて、該線形カラーバランスは、図４６に関して上述したものと同一である。
【０１９２】
ここで再び図６０を簡単に参照すると、同図のステップ６００６が１行の各サブピクセルに対するカバレッジ値を計算又は推定した時点で、図９２に示されているように、ループ６００８がその行における各ピクセルに対して実行される。このループ色は、１行のサブピクセルに対して計算されたカバレッジ値のバランスをとる。それは、図９３に図示され、図４６及び４７に関して上述された種類の線形カラーバランスルーチンを使用しない。その代わりに、それは、図４８乃至５３に関して上述された技術に類似した非線形カラーバランス技術を使用することによって、より高度に知覚可能な空間解像度を達成する。
【０１９３】
ループ６００８は、そうした各ピクセルに対して、２つの関数６０１０及び６０１２と、ループ６０１４を実行する。
【０１９４】
関数６０１０は、現在のピクセルのサブピクセルがそのサブピクセルに対して計算された最小カバレッジ値を有していることを求める。次に、ステップ６０１２は、この最小カバレッジ値を、現在のピクセルの各サブピクセルに対して計算されている、暫定的なアルファ地、又は、不透明値に加算する。これは、図４８に図示された関数に類似している。
【０１９５】
次に、ループ６０１４は、現在のピクセルの各サブピクセルに対して関数６０１６及び６０１８を実行する。関数６０１６は、ループ６０１４の現在のサブピクセルに対して、サブピクセルが一部を成すピクセルに対して求められた最小カバレッジ値を超える、それに対して計算されたカバレッジ値の超過分を決定する。次に、関数６０１８は、この超過値を、現在のピクセル行に於ける現在のサブピクセルと、その左側の２つのサブピクセルと、その右側の２つのサブピクセルに対して計算されているサブピクセルアルファ値に分配する。この関数は、図４９に関して上述された関数に対応する。
【０１９６】
図９４及び９５は、本発明の一実施形態に於いて使用される、２つの異なるカラーバランス分配フィルタを図示している。この実施形態に於いて、図９４に図示された非対称中央部重点カラーバランスフィルタが、赤色及び緑色のサブピクセルに関連付けられたカバレッジ値を分配するために使用される。一方、図９５に図示された非対称カラーバランスフィルタは、青色のサブピクセルに関連付けられたカバレッジ値を分配するために使用される。それ故、本発明のこの実施形態は、ある色に対して、他の色に対する分配フィルタとは形状が異なる分配フィルタを使用している点で、図４９に関して上述された処理とは異なっている。
【０１９７】
本出願の発明者の一人は、人間の目では青色に比して緑色を知覚し易いので、異なる色のサブピクセルに関連するカラーバランスカバレッジ値は、そうした異なる分配フィルタを使用するはずだということを発見した。非線形カラーバランス（２色画像に関する非線形カラーバランスを含む）に関連する本発明の異なる実施形態に於いて、異なるカラーバランスフィルタを、各異なるサブピクセル色に対して使用することが可能な、同一カラーバランスフィルタを、そうした色のすべてに対して使用することが可能であり、対称カラーバランスフィルタ、又は、非対称カラーバランスフィルタの何れかを使用することが出来る。
【０１９８】
図９４及び９５に図示された特定のカラーバランスフィルタは、０〜１２６の尺度で計算されるカバレッジ値を用いて使用するために設計されている。０〜１２６の値を有する所定の計算されたカバレッジ値は、テーブルの左側にある関連するカバレッジ値が、それ自身のカバレッジ値に最も近い、図９４及び９５のテーブルの右側にある、５つの分配値から成る分配値一式に関連付けられている。例えば、所定の赤色又は青色のサブピクセルに対して計算されたカバレッジ値が１２６である場合、所定のサブピクセルの左側２つ、及び、右側２つのサブピクセルに対して計算されているアルファ値に「１」加算され、所定のサブピクセルの左側１つ、及び、右側１つにあるサブピクセルに対して計算されているアルファ値に「３」加算され、所定のサブピクセル自体に対して計算されているアルファ値に「４」加算される。この特定の実施形態では、アルファ値は０〜１２のスケールで計算される。
【０１９９】
図９４及び９５の最後の行に図示されたカラーバランス分配の相対的なサイズは、所望の分配比率をより正確に反映している。これは、これらの最後の行のそれぞれに於いて分配されたより大きな値が、最後の行のそれぞれの上方に位置する行で見られるよりも、大きな数値の解像度を許容するからである。
【０２００】
当然のことながら、バランスがとられているカバレッジ値又は輝度値を記述するために、より高い数値精度を使用する幾つかの他の実施形態において、広範囲の輝度で使用されるバランス分配は、図９４及び９５の最後の行に於いて反映されたそれらの比率にむしろ近い、異なるサブピクセルへの寄与間の比率を有する。このことが特に当てはまるのは、図９４、及び／又は、図９５に図示された一般的な種類のフィルタが、図４８乃至５２に関して上述されているように、画像の２色サブピクセル最適化に関するカラーバランスに使用される場合である。これは、ビットマップ画像に関するそうした２色サブピクセル最適化に於いて、サブピクセル最適化されているビットマップに於いて使用されるものに比して、低い解像度で出力画像の輝度を算出することが、一般的に望ましくないからである。
【０２０１】
図６０のループ６００８によって、ステップ６０１８が１行の各ピクセルの各サブピクセルに対して実行された時点で、そうした各ピクセルは、その３つのサブピクセルのそれぞれに対して計算された別々のアルファ値を有し、そうした各アルファ値は１３の不透明度レベルの内、１つを有する。このことは、各ピクセルが異なる２１９７の取り得る結合アルファ値の内、一つ（即ち、１３の２乗）を有することが可能であることを意味する。本発明の他の実施形態に於いては、より高い又はより低い解像度を有するアルファ値を使用することが出来る。
【０２０２】
本発明の多くの実施形態に於いて、特に、制限された演算能力を有するコンピュータ上に於いて、又は、フォントビットマップを保存又はダウンロードするために必要な回線容量又は記憶容量を低減することが望ましいシステムに於いて実行するように設計された実施形態に於いては、そうしたカラーバランス後に取り得る異なるサブピクセルアルファ値の２１９７の組み合わせである比較的大きな色空間から、より小さな色空間にマッピングすることが好ましい。
【０２０３】
図６０に於ける本発明の実施形態は、ループ６０２０に於けるそうしたマッピングを実行する。ループ６００８が現在の行に於ける各ピクセルに対して実行された時点で、ループ６０２０はそうした各ピクセルに対してさらなる関数６０２２を実行する。関数６０２２は、ピクセルのサブピクセルのそれぞれに対して計算された３つのアルファ値を取得し、それらを、ピクセルの３つのアルファ値の取り得る組み合わせによって定義された２１９７の取り得る色値のそれぞれから、１２２の値の内、１つの値にマッピングするルックアップテーブルの入力値として使用する。この実施形態に於いては、色空間はそうした少数の色に低減されている。その結果、２５６値の色空間を有する機械装置が、そのように制限された色空間の半分以上をその他で利用するために、なお有している一方で、サブピクセル最適化されたフォントの表示に於ける使用のために選択された１２２の値のそれぞれを表示することが出来る。フォントビットマップを表示するためのそうした小さなカラーパレットを使用することによって、そうしたフォントビットマップを保存するために必要とされるビット数が低減され、ダウンロードするためにより効率的になる。本発明のこの特徴に関する他の実施形態に於いて、そうしたマッピングで使用されるソース及び送信先の色空間は、異なるサイズを有する可能性がある。
【０２０４】
図９６は、本発明の一実施形態に於いて、そうしたカラーマッピングを生成するために使用されている方法９６００を図示している。当然のことながら、他の実施形態に於いては、他の種類のマッピングを使用することが可能である。幾つかの実施形態に於いては、より小さな色空間へのそうしたマッピングを全く必要としない。
【０２０５】
図９６の方法は、図６０乃至９５に関して上述した非線形カラーバランス・サブピクセル最適化アルゴリズムによって計算される制限された色空間を使用してビットマップが表示される、一つ又は複数のフォントから複数文字を実行するステップ９６０２で始まる。これが実行される場合、ヒストグラムは、それぞれの取り得る２１９６の異なる複合ピクセルアルファ値が任意のピクセルに対して計算される回数を保持する。このヒストグラムは有用であるが、これは、サブピクセル最適化ビットマップに於けるピクセルに対して計算された３色のアルファ値の殆どが、２１９６のそうした３色アルファ値の取り得る色空間全体の様々な小さな領域に集中する傾向があるからである。この集中は恐らく非線形カラーバランスに関してより顕著になるが、これは、それがカラーバランスに起因する輝度分配の量を実質的に低減するからである。
【０２０６】
次に関数９６０４は、関数９６０６及び９６０８を実行することによって、この例では１２２色を有する制限されたカラーパレットを生成する。関数９６０６は、形成されているパレットの一部として、各サブピクセルが１３のアルファレベルの内、１つのレベルを有することが可能な場合、全ピクセルアルファ値に対して取り得る、１３のグレースケール値を選択する。次に、関数９６０８は、以前ステップ９６０２によって計算されたヒストグラムに於ける最も頻繁に出現する１０９の他の色を選択する。
【０２０７】
制限されたカラーパレットが選択された時点で、ループ９６１０が２１９６の取り得る全ピクセルアルファ値のそれぞれに対して実行される。そうしたそれぞれの取り得るアルファ値に対して、条件９６１２は、その入力色が１２２色の内の１色と正確に一致するかを確認するためにテストを行う。一致する場合、関数９６１４は、入力色と、構成されたルックアップテーブルに於けるその同一出力色とを関連付ける。条件９６１２が満たされない場合、ループ９６１８及び関数９６２８は、ループ９６１０の現在の入力色に対して実行される。
【０２０８】
ループ９６１８は、パレットに於ける１２２の出力色のそれぞれに対して実行される。それは、マッピングされる入力色の赤のアルファ値とループ９６１８の現在の出力色との差（ｒｉ−ｒｏ）が、現在の入力色の緑のアルファ値と現在の出力色に対する緑の出力アルファ値との差（ｇｉ−ｇｏ）と同一符号であるかを確認するためにテストを行う条件９６２０を有している。また、条件９６２０は、現在の出力色に関する赤のアルファ値と緑のアルファ値との差（ｒｏ−ｇｏ）が、入力色に関する赤のアルファ値と緑のアルファ値との差（ｒｉ−ｇｉ）（いくらかの余裕を持たせる為に、取り得る値Ｘを加算）よりも小さいかを確認するためにテストを行う。入力色と該入力色がマッピングされる出力色間の比較的顕著な差を防止することを目的とした、これら２つの条件が満たされる場合、関数９６２２乃至９６２６が実行される。
【０２０９】
関数９６２２は、入力色から出力色までの距離を計算する。関数９６２４は、その距離が現在のループ９６１８に於ける入力色までのこれまでで最短距離であるかを確かめるためにテストを行う。関数９６２４のテストが満たされる場合、ステップ９６２６はループ９６１８の現在の出力色を、許容可能な最も近いパレット色として保存する。ループ９６１８が制限されたパレットの１２２の出力色のそれぞれに対して実行された後、ステップ９６２８は、ループ９６１０の現在の入力色を、ループ９６１８で計算された許容可能な最も近いパレット色に関連付ける。
【０２１０】
ループ９６１０が、取り得る入力色のそれぞれに対して実行された時点で、それらの入力色のそれぞれは、１２２出力色の１色にマッピングされる。
【０２１１】
図９６に図示された特定のカラーマッピングスキームでは、カラーバランスによって生成された非グレースケールピクセルの色値がステップ９６０８で選択された１０９の最も頻繁に発生する非グレースケールの色値の内の１つにマッピングされなければ、グレースケールの色値にマッピングされる。一般に、これは全てのビットマップをグレースケールアルファ値で表示する従来のアンチエイリアスと、少なくとも同程度に良好な結果をもたらす。
【０２１２】
図９７は、図６０及び９６の方法で生成される種類のフォントビットマップをサブピクセルアドレス可能スクリーン上に表示するために使用されるアルゴリズム９７００を図示している。
【０２１３】
関数９７０４と、ループ９７０６及び９７１４で構成されたループ９７０２は、表示される各文字列に対して実行される。
【０２１４】
関数９７０４は、文字列が、その文字列に対する平均背景色値を決定するために描画されるビットマップの矩形に於けるポイント一式をサンプリングする。他の実施形態に於いては、背景色が各文字に対して、又は、各文字の各ピクセルに対して別々に決定されるが、図示された実施形態に於いては、演算処理を節約するために背景色が各文字列に対して１回だけ決定される。
【０２１５】
文字列に対する背景色が決定された時点で、ループ９７０６は、図９６に関して上述された１２２の全ピクセルアルファ値のそれぞれに対して、サブループ９７０８及び関数９７１２を実行する。
【０２１６】
ループ９７０８は、３つのサブピクセル色のそれぞれに対して関数９７１０を実行する。この関数９７１０は、現在のサブピクセル色に対応する現在の全ピクセルアルファ値のコンポーネントに関する関数として、現在のサブピクセル色に対して輝度値を算出する。
関数９７１０は、算出している輝度値を、描画される文字列の前景色に於ける現在のサブピクセルの対応する色に関する輝度によって乗算されたサブピクセルのアルファ値に、関数９７０４によって決定された背景色に於ける現在のサブピクセルの対応する色に関する輝度によって乗算された現在のサブピクセルのアルファ値を減算したものを加えた値に等しく設定する。
【０２１７】
このループが３つのサブピクセルのそれぞれに対して実行された時点で、関数９７１２は、ループ９７０６の現在の全ピクセルアルファ値を、ループ９７０８で計算された３つのサブピクセル輝度で構成された全ピクセルの色値にマッピングする。
【０２１８】
次に、ループ９７１４は、サブピクセルアドレス可能な表示上に表示される現在の文字列の各文字に対して、関数９７１６及びループ９７１８を実行する。
【０２１９】
関数９７１６は、現在の文字に対するフォントビットマップにアクセスする。次に、ループ９７１８はそのビットマップの各ピクセルに対して、関数９７２０及び９７２２を実行する。関数９７２０は、文字のフォントビットマップに於ける現在のピクセルに対して示された、ループ９７０６によって現在の全ピクセルアルファ値にマッピングされている色値を求める。この色値が求められた時点で、関数９７２２は、サブピクセルアドレス可能表示に於ける対応するピクセルを全ピクセルの色値に設定する。
【０２２０】
ループ９７１８が文字列の各文字の各ピクセルに対して実行された時点で、文字列がサブピクセル最適化法で完全に表示される。
【０２２１】
図９８乃至１０１は、画像及びフォントの拡大／縮小、及び、サブピクセル最適化に関する技術が如何にうまくいくかを図示している。図９８及び１００は、一般的なブラウザプログラムを使用して、６４０×４８０ピクセルでレイアウトされ、表示された２つの異なるウェブページの概要を図示している。図９９及び１０１は、それらの画像及びテキストが３２０×２４０表示上に適合するように上述した方法で拡大／縮小された後に於ける、同一ウェブページを図示している。残念ながら、３２０×２４０ピクセル画像は全ピクセルの平均輝度によって決定されたグレースケール値で印刷されおり、それ故、サブピクセル解像度によって加えられた実際の明瞭さは、これらの画像に於いて示されていない。
【０２２２】
図１０２乃至１１３は、本発明の一実施形態に於けるプロキシサーバと薄型クライアントコンピュータとの間の相互作用をより詳細に図示している。
【０２２３】
図１０２は、図２に関して上述した種類のプロキシサーバ２１０及び薄型クライアント２００を含むシステムの高度に概略化したブロック図である。
【０２２４】
プロキシサーバ２１０は、完全なウェブブラウザの標準機能を実行するためのプログラム１０２０２を含むブラウザ１０２００を有している。このプログラムが変更されているのは、ブラウザが薄型クライアントに対するプロキシとして動作するからである。プロキシブラウザが要求されたウェブページのＨＴＭＬ記述１０２０４をネットワーク上で受信する場合、それはそのウェブページの２次元レイアウト１０２０６を生成する。
【０２２５】
図１０３は、表示が図９８及び９９に図示されたウェブページのＨＴＭＬ記述の一部を図示している。図１０３に図示された数字１０３００は、図９８及び９９に図示されたウェブページの左側コラムに図示されたＨＴＭＬに於けるテキスト部分を図示している。数字１０３０２は、同一コラムに図示された単語「Ｓｅｃｔｉｏｎ」を表示するために使用されたビットマップを識別する画像タグを指し示している。
【０２２６】
プロキシブラウザコードがウェブページのダウンロードを受信する場合、それは仮想レイアウト解像度でウェブページのレイアウト１０２０６を作成しようとする。仮想レイアウト解像度は多くの場合、それがウェブページの全て又は一部を表示しているとプロキシブラウザが見なすウインドウのサイズとなっている仮想スクリーンサイズの幅に対応する。それがウェブページを表示しているとブラウザが見なすウインドウを、仮想スクリーン１０２０８と呼ぶことにする。
【０２２７】
図１０４は、図９８及び９９に図示されたウェブページのレイアウト１０２０６を図示しており、それは、黒色太線矩形部１０２０８に於いて、そのレイアウトへの仮想スクリーン画面のマッピングを図示している。レイアウト１０２０６に対する図１０４に図示され仮想スクリーンの位置を前提として、１０２２０は薄型クライアント上に表示された仮想スクリーン画像を図示している。
【０２２８】
今日のウェブページの多くは、記載例のシステムに於いて使用された６４０×４８０の仮想スクリーン解像度よりも大きな要素を有している。そのレイアウトは、ウェブページのオブジェクトをレイアウトするために必要な最小ピクセル幅、又は、仮想スクリーン幅の何れかの内、何れか大きい方を有する。例えば、今日、多くのウェブページが８００ピクセルの最小可能幅の解像度でレイアウトされることは一般的である。この場合、仮想画面はレイアウトよりも小さなピクセル幅を有する。これは、図１０４に図示された例の場合である。仮想レイアウト幅を前提として、仮想レイアウトの高さは、ウェブページのすべてを表示するために必要な高さである。
【０２２９】
図１０２に図示されたビューウインドウ１０２１０は、薄型クライアントのスクリーン上に実際に表示される仮想スクリーンの一部を表している。図９９、１０１、１０４に図示されたビューに於いては、ビューウインドウは仮想スクリーンに相当する。
【０２３０】
しかし、ユーザが仮想スクリーンの部分上で拡大表示する場合、図１０２に図示されたズームの倍率制御１０２１６が変化し、ビューウインドウは仮想スクリーンのサブセットにマッピングされる。
【０２３１】
図１０２に図示されたスクロール制御１０２１８によって、ビューウインドウはレイアウトに対応して移動する。ビューウインドウが仮想スクリーン上の現在位置に位置していないレイアウトの部分を含むように移動される場合、仮想スクリーンをスクロールするためにブラウザソフトウェアに命令が送信される。イベント待ち行列１０２２０は、イベント、即ち、薄型クライアント上で受信され、ブラウザによって対応するアクションに対するプロキシサーバにアップロードされているユーザ入力を保存する。薄型クライアントのスクリーン上で発生するイベントは、ビューウインドウを介して仮想スクリーン上の対応する位置にマッピングされ、その後、プロキシブラウザのイベント待ち行列に配置されるので、プロキシブラウザは、あたかもそれが映像出力装置上に直接描画していると見なす仮想スクリーン上の適切な位置で受信されたかのように、そうした入力に対応する。
【０２３２】
図１０２のブラウザプログラム１０２０２は、それが仮想スクリーン上にオブジェクトを描画しているとみなす度に、ダウンロード表示リスト１０２１２に於ける、これに対応する拡大／縮小された位置に、対応する縮小されたオブジェクトを生成するように変更される。
【０２３３】
この表示リストは、ネットワーク１０２２２を介して、数字１０２１２Ａによって示されるように、表示リストを保存するクライアントコンピュータにダウンロードされる。この表示リストによって参照される縮小された画像１０２１４もダウンロードされる。薄型クライアント上に位置するプログラム１０２１８は、表示リストに含まれる文字列、画像、及び、他の要素を、薄型クライアントスクリーン１０２２１上に表示する。ユーザが薄型クライアントスクリーン上でクリックする場合、薄型クライアントのオペレーティングシステム１０２２２は、薄型クライアントスクリーン上でのそうしたクリック、及び、クリック位置を、イベント待ち行列１０２２４にセットする。薄型クライアント上でローカルに取り扱われるプログラムに関係しないそうした各イベントは、上述の通り、プロキシサーバのイベント待ち行列１０２２０にアップロードされる。
【０２３４】
図１０５Ａ乃至１１０は、薄型クライアントがプロキシを介してウェブページをブラウズすることが出来るように、これらの相互作用を制御するために設計された、ブラウザ及び薄型クライアントコンピュータ上のプログラム及びデータ構造に関する高度に簡略化された擬似コード記述である。
【０２３５】
図１０５Ａ及び１０５Ｂは、薄型クライアントに対するプロキシとして機能することを促進するために使用される、図１０２に図示されたブラウザのコード１０２０２の一部に関する高度に簡略化された擬似コード表記である。
【０２３６】
これらの図で図示された特定の実施形態に於いて、通常使用するために設計された大規模ウェブブラウザは、それがプロキシとして機能するようにパッチ修正されている。当然のことながら、本発明の他の実施形態に於いて、プロキシとしてブラウザを動作させるのに必要な機能を、より密接かつ見事にブラウザのコードに統合することが出来る。さらに他の実施形態では、オペレーティングシステムに於けるコード、又は、オペレーティングシステムの呼び出しに割り込む関数に於けるコードは、薄型クライアントに対するプロキシとして標準ウェブブラウズプログラムを動作させるために使用することが出来る。
【０２３７】
図１０５Ａに図示された実施形態に於いて、プロキシブラウザがウェブページに対する薄型クライアントからの要求を受信する場合、ステップ１０５０２及び１０５０４は、その要求を当該要求のＵＲＬに示されたサーバコンピュータに伝達する。
【０２３８】
ブラウザが図１０２に関して上述された仮想スクリーン１０２０８の描画又は再描画を完了したという指示を自身のコードから受信する場合、関数１０５０６及び１０５１０は、図１０６Ａ乃至１０６Ｃに図示されたスクリーンキャプチャ及びダウンロードルーチンを呼び出す。
【０２３９】
図１０６Ａ乃至１０６Ｃは、スクリーンキャプチャ及びダウンロードルーチン１０６００に関する高度に簡略化された擬似コード記述である。
【０２４０】
このルーチンが、前述の図１０５Ａの関数１０５１０によって呼び出される場合、そのステップ１０６０２は、仮想スクリーン内に全体的又は部分的に適合するウェブページのレイアウトに於ける各要素を描画するためのルーチンがブラウザによって呼び出される、スクリーン再描画をブラウザに対して要求する。図１０６Ａ乃至１０６Ｂのルーチンは、これらの描画呼び出しの各々に含まれる情報を記録し、図１０２に図示されたダウンロード表示リスト１０２１２を生成するためにこれを使用する。
【０２４１】
ブラウザが図１０６Ａの測定文字列ルーチン１０６０６を呼び出す場合、このルーチンによって関数１０６０８乃至１０６１８が実行される。そうした呼び出しは、仮想スクリーンにレイアウトしようとしているテキストのサイズを決定するために、ブラウザによって形成される。図示されていないが、図１０６Ａ乃至１０６Ｂに図示されたスクリーンキャプチャ及びダウンロードルーチンが実行中ではないとしても、これら同一の関数１０６０８乃至１０６１８は、ブラウザが文字列のサイズを測定するために呼び出しを行う際は何時でも実行される。これにより、ウェブページの全ての仮想レイアウトは関数１０６８乃至１０６１８によって提供されたフォントマトリクスを使用する。 
【０２４２】
関数１０６０８は、測定文字列呼び出しに於いて特定されたフォントを、異なるフォントファミリー、及び、異なるフォントサイズを有するフォントにマッピングする。このフォント置換は、数字１０６１０乃至１０６１６によって示された３つの事項によって制御される。
【０２４３】
事項１０６１０は、測定文字列ルーチンに対する呼び出しに於ける、要求されたフォントサイズの関数として、置換フォントに対するサイズを選択し、表示倍率を選択しようとする。
【０２４４】
表示倍率は、ビューウインドウが薄型クライアント上に表示される同一次元に沿った、ビューウインドウ及び解像度に対応する仮想スクリーン１０２８の一部に関する所定の次元に沿った解像度の比率である。場合によっては、表示倍率は水平及び垂直方向に沿って使用される異なる縮尺比率を表すための異なるコンポーネントを有するが、多くの場合、表示倍率は、水平及び垂直解像度の両方に対して使用される単一縮尺比率で構成される。
【０２４５】
記載されている特定の実施形態に於いて、ウェブページのレイアウトが実行される場合、該レイアウトは非ズーム表示倍率に対して実行される。非ズーム表示倍率は、図１０２のビューウインドウ１０２１０が仮想スクリーン１０２０８と同一サイズである倍率である。その結果、非ズーム表示倍率は、仮想スクリーンが表示されるスクリーンの解像度に対する、仮想スクリーンの解像度の比率と等しい。ウェブページの表示後、ユーザがレイアウトの一部に於いて拡大表示を行う場合、ビューウインドウ１０２１０は仮想スクリーンの下位部分にのみ対応し、表示倍率は  レイアウト要素がより大きなサイズで表示される事実を反映させるために、その非ズーム値から変更する。現在の実施形態は、仮想スクリーン全体の表示に対して、テキストのレイアウトを最適化するための非ズーム表示倍率を使用する内容をレイアウトするのだが、これは、このようにしてユーザが一般にレイアウトを見たいと考えているのだということを仮定しているからである。他の実施形態に於いて、仮想レイアウトを非ズーム表示倍率以外の表示倍率に対して最適化することが出来る。
【０２４６】
図１０２に図示された実施形態に於いて、この倍率がズーム／倍率制御１０２１６に保存されている。仮想スクリーンが６４０×４８０の解像度を有し、ビューウインドウが仮想スクリーンのサイズに等しく、ビューウインドウが３２０×２４０表示の全体に表示される場合、倍率は「２」であり、このことは、ブラウザがその仮想スクリーン上に要素を描画しているとみなす２分の１ピクセル解像度で、薄型クライアントのスクリーン上に要素が描画されることを意味している。
【０２４７】
図１０６Ａの事項１０６１２は、事項１０６１０のみによって選択されるフォントの平均ピクセルサイズよりも狭く高いフォントファミリーで、薄型クライアントスクリーン上に表示された場合に小さくなる、全てのフォントサイズを置換する。６４０×４８０仮想スクリーンから３２０×２４０表示スクリーンに低減する場合、ビットマップ形式とは対照的に、これは文字に於いて表現された殆ど又は全てのウェブページテキストを有することが出来る。この置換が実行されるのは、一つには、本発明の本実施形態を用いて使用されるサブピクセルアドレス可能表示が、垂直方向に於けるサブピクセル解像度に比して、３倍の水平方向に於けるサブピクセル解像度を有するからである。この理由により、文字幅の低減は、文字高の低減に比して、可読性に与える負の影響が少ない。このように、そうしたサブピクセルアドレス可能表示スクリーン上に比較的容易に読み取り可能なテキストの最大量を表示するために、この置換によって、文字幅が表示倍率を超える倍率で効果的に縮小され、そうした文字の高さは、表示倍率未満の倍率で効果的に縮小される。例えば、図５６、５７、９９、１０１、１６８、１６９、１７２、１７３、１７４に図示された小型スクリーン表示のフォントは、そうした方法で拡大／縮小されたフォントによって全て置換されている。
【０２４８】
これらの図中のフォントは、８ピクセル／ｅｍのピクセルサイズを有している。このフォントに於ける殆どの小文字は、４ピクセルコラム又はそれ未満のアドバンス幅内に適合する。４ピクセル又はそれ未満の幅は、あるとすれば、そうした幅を有する文字の形状の間に発生する間隔を含む。これらの特別なフォントでは、ローマ字の小文字の内、８０％を越える小文字がそうしたアドバンス幅内に適合する。これらの文字は、一般に幅よりもかなり高くする、４ピクセル行以上の高さ「ｘ」を有する。一般に、そうした比較的幅の狭いフォントは、幅の広いフォントに比して、所定の可読性レベルで所定の領域内にあるより多くのテキストを表示することが出来る。
【０２４９】
数字１０６１４及び１０６１６によって表現された事項は、最小フォントサイズを制限するためにフラグが設定されているか否かを確かめるためにテストを行うが、このテストは、所定のピクセルサイズ未満で薄型クライアントの表示上に表示されるフォントは存在しないはずだということを示している。一般に、このフラグは、小さ過ぎて読むことが出来ないテキストの表示を防止するために設定される。仮想スクリーンサイズを有する表示上に実際に表示される場合、ウェブページテキストを通常、どのように表示するかということに関して、より正確な縮小表現をユーザが見たいと考える際には、それは設定されない。表示倍率が大きい、即ち、テキストサイズに対してそうした最小制限を行うことで、ウェブページのレイアウトの概観を劇的に変化させる場合、そうした要求が特に起こり易い。
【０２５０】
大抵の場合、システムが最小フォントサイズを制限している場合、ステップ１０６１４及び１０６１６は、置換フォントサイズが最小ピクセルサイズ未満になることを防止する。本発明の現在の実施形態に於いて、この最小ピクセルサイズは８ピクセル／ｅｍである。本実施形態の開発者は、７ピクセル／ｅｍでのサブピクセル表示用のヒントフォントを開発し、そうしたフォントが比較的読み易いと考えたのだが、そうした小さなフォントは読み難いというフィードバックを他のユーザから受け付けた。
【０２５１】
最小フォントサイズへの制限は、多くの場合、ウェブページの様々なサイズのフォントが実際に表示される相対的なフォントのサイズを実質的に変更する。
【０２５２】
本発明の幾つかの実施形態に於いて、全てのウェブテキストは１つのフォントサイズで表示される。殆どのウェブページに於いては、実際に大きなフォントがビットマップによって表現されるので、実際にこの方法は殆どのウェブページで非常にうまくいっている。
【０２５３】
測定文字列ルーチンが呼び出されたフォントが何れのフォントファミリーとフォントサイズに置き換わるのかを、関数１０６０８が決定した時点で、その測定が非ズーム表示倍率によって拡大された後に、置換されたフォント及びフォントサイズにおける文字列の個々の文字のサイズを前提として、関数１０６１８がルーチンが呼び出された文字列の文字列測定に戻る。
【０２５４】
この値に戻ることによって、ブラウザのレイアウトエンジンは、非ズーム表示倍率、即ち、仮想スクリーンが薄型クライアントスクリーン上に表示される仮想スクリーンの解像度と実際の解像度の比率によって、それらの文字が実際に表示されるピクセルサイズに関連して、拡大／縮小される文字に対するフォントマトリクスを使用するウェブページをレイアウトする。このことは、仮想スクリーンが、そのレイアウトの結果として表示される実際のフォントマトリクスとは異なるフォントマトリクスを使用してレイアウトされていることを意味している。
【０２５５】
スクリーンキャプチャ及びダウンロードルーチンが、図１０６Ａの文字列描画ルーチン１０６２０に対する呼び出しを受信する場合、このルーチンによって関数１０６２１及び１０６２４が実行される。
【０２５６】
関数１０６２１は、文字列の描画が始まるスクリーン位置を文字列が最終的に表示される薄型クライアントスクリーン上の対応する位置に変換する。この変換は、ビューウインドウ１０２１０、及び、図１０２に図示された仮想スクリーン１０２０８との間のマッピングを考慮している。このマッピングは、制御１０２１６によって保存された現在のズーム設定と、図１０２に図示されたスクロール制御１０２１８によって保存された現在のスクロール設定の両方を反映している。
【０２５７】
関数１０６２２は、数字１０６０６乃至１０６１８に関して上述された、測定文字列ルーチンに対する以前の呼び出しによる、文字列に関連付けられた置換されたフォントファミリー及びサイズと、現在の文字列を表示するために要求された任意の他の属性とが、そうしたフォント属性に対する現在の値と異なるかどうかを確認するためにテストを行う。そうした各フォント属性に対する現在の値は、図１０２に図示されたダウンロード表示リスト１０２１２に既に記録されたフォントコマンドによって定義された、そうした各属性に対する最後の値によって決定される。そうした相違が発見される場合、関数１０６２３は、そうしたフォント属性を現在の文字列の表示に適した属性に変更する表示リストの現在の最後に、フォントコマンドを保存する。
【０２５８】
関数１０６２４は、文字列描画ルーチンが呼び出された文字列と、図１０２に図示された、ダウンロード表示リスト１０２１２の最後に、ステップ１０６２２によって計算され、変換されたスクリーン位置を保存する。図１０８に関して後述するように、文字列の変換された開始位置とその文字を含む表示リストに於ける文字列コマンドを設定することによって、これを実行する。
【０２５９】
スクリーンキャプチャ及びダウンロードルーチンが矩形描画ルーチン１０６２６に対する呼び出しを受信する場合、このルーチンによって関数１０６２８乃至１０６３４が実行される。異なる背景色を有するウェブページの領域を生成するだけでなく、テキストの下線、又は、ウェブページのレイアウトの別々の部分の間の境界として使用可能な水平及び垂直ラインを描画するために、通常、ブラウザが矩形描画コマンドを呼び出す。
【０２６０】
関数１０６２８は、呼び出しに含まれた幾何学的な値を、対応する矩形が薄型クライアントの表示上に描画される、対応する幾何学的な値に変換する。これは、矩形の開始スクリーン位置、矩形の幅、及び、矩形の高さを変換することを含む。
【０２６１】
関数１０６３０は、矩形の色が、表示リストに於ける現在（即ち、最後）の矩形色と異なるかどうかを確認するためにテストを行う。異なる場合、関数１０６３２は、現在の背景色を矩形描画ルーチンに対する現在の呼び出しに於いて指定された色に変更する表示リストの最後に背景色コマンドを追加する。
【０２６２】
次に、関数１０６３４は、矩形と、矩形の変換されたスクリーン位置、幅、高さを、矩形コマンドとともに、ダウンロード表示リストの最後に保存する。
【０２６３】
スクリーンキャプチャ及びダウンロードルーチンが、図１０６Ｂに図示されたビットマップ描画ルーチン１０６３６に対する呼び出しを受信する場合、このルーチンによって、関数１０６３８乃至１０６７０が実行される。図形、フォントの図形、バナー広告、及び、ホットゾーン及びページの他のグラフィカルユーザインターフェース（ＧＵＩ）ビットマップに関連した画像を表示するために、ブラウザはビットマップ画像ルーチンを呼び出す。
【０２６４】
幾つかの実施形態に於いて、ウェブページを表示するために必要な回線容量を低減するために、所定のアニメーションに関する第１スクリーンのみがダウンロード表示リストに取り込まれ、記録される。他の実施形態に於いては、特に、より高度な回線容量リンクに対してそうした制約を適用する必要はない。
【０２６５】
図１０６Ａ乃至１０６Ｃに関して上述された本発明の実施形態に於いては、特定のグラフィカルユーザインターフェース（ＧＵＩ）に関連付けられたビットマップ描画が無視されるが、これは、薄型クライアントのプログラムがそうした制御に対してサブピクセル最適化され、縮小されたビットマップを保存するからである。
【０２６６】
ステップ１０６３８は、ビットマップ描画ルーチンが呼び出された画像のＵＲＬが、ダウンロード表示リストにおいて参照された画像のそれぞれを含むダウンロード画像リスト（図示せず）に既に存在するかどうかを確かめるためにテストを行う。存在しない場合、要求されたビットマップは、まだ現在のダウンロードに対して処理されておらず、関数１０６４２乃至１０６６２をそれに対して実行する必要はない。
【０２６７】
関数１０６４２は、ビットマップがカラービットマップかどうかを確かめるためにテストを行う。カラービットマップの場合、関数１０６４２によって、関数１０６４４乃至１０６５４が実行される。関数１０６４４は、それぞれが単一の２色スペクトルからの色のみを含む別々の処理を正当化するために、十分なサイズの１つ又は複数の個々の領域に対してカラー画像をスキャンする。２色スペクトルは、ＲＧＢカラーキューブにおけるラインにある色一式に対応する（即ち、赤、緑、青の値によって定義されたカラーキューブは、３つの主要な次元のそれぞれに分布している）。
【０２６８】
個々の処理を正当化するには十分大きいと思われる画像の２色部分のそれぞれに対して、関数１０６４６によって、関数１０６４８及び１０６５０が実行される。関数１０６４８は、画像の現在の部分に於いて、その前景色及び背景色として、その２色スペクトルの最も極端な端部を使用し、それが画像のその部分を縮小する程度を決定するための現在の表示倍率を使用して、図４２乃至５３に関して上述した種類の２色サブピクセル最適化を実行する。下記の数段落に記載されたステップ１０６５４及び１０６５８に於いて実行されるサブピクセル最適化は、プロキシブラウザの仮想レイアウトに於ける画像の解像度と、薄型クライアントのスクリーン上に表示される解像度との比率である表示倍率によって画像を縮小する。
【０２６９】
このサブピクセル最適化が実行された後、関数１０６５０は、前景色が色彩的にあまりにもアンバランスであるかどうかを決定する。即ち、それが純粋な赤、緑、又は、青に近いということである。この場合、そうした色の純粋さによって、それがカラー画像の空間解像度を表示可能な精度が低減される。この場合、グレースケール値により似通った対応する色によって、前景色を置換することが可能であり、それ故、より正確な空間解像度を可能にする。
【０２７０】
本発明の幾つかの実施形態に於いて、そうした前景色の置換は使用されないが、これは、それによってカラー画像の色のバランスが乱されるからである。一般に、前景色がカラー画像全体のかなりの部分に現れていない限り、そうした前景色の置換を使用しない方が良い。小型フォント又は他の形状が最適化されているビットマップ画像によって表現されている場合、そうした色の置換が最もうまくいく。 本発明の他の実施形態に於いて、２色画像に関連付けられた背景色を変更することが出来る。しかし、ウェブページ上で画像の背景色を変更することは、多くの場合勧めることは出来ない。
【０２７１】
現在の画像の非２色部分のそれぞれに対して、関数１０６５２によって、ステップ１０６５４は、現在の表示倍率でビットマップのその部分に於いて、図１４乃至４１に関して上記した種類の多色サブピクセル最適化を実行する。
【０２７２】
ビットマップ描画ルーチンが呼び出されたビットマップが、グレースケールビットマップである場合、関数１０６５６によって、ステップ１０６５８は、現在の表示倍率で前景色及び背景色として黒及び白を使用するビットマップ上で、２色サブピクセル最適化を実行する。
【０２７３】
関数１０６６２は、縮小され、サブピクセル最適化されたビットマップを、固有の画像ＩＤ、そのＵＲＬ、及び、拡大／縮小された幅と高さとともに、画像リストの最後に保存する。
【０２７４】
ビットマップ描画ルーチンが呼び出された画像が予め画像リストに存在したか否かに関わらず、プログラムが関数１０６６４まで進む時までには、それはそのリストに存在し、ＩＤ番号、及び、変換された幅及び高さが割り当てられている。この時、関数１０６６４は、ビットマップ描画ルーチンが画像に対して呼び出されたスクリーン位置を、薄型クライアントのスクリーンに適用可能な位置に変換し、次に、画像の画像ＩＤ、その変換されたスクリーン位置、及び、ダウンロード表示リストの最後にあるその変換された幅及び高さを有する、図１０８に図示された種類の画像位置コマンドを保存する。
【０２７５】
本発明の幾つかの実施形態に於いて、全てのビットマップ画像は、多色サブピクセル最適化ルーチンを使用して、サブピクセル最適化されている。他の実施形態に於いては、グレースケールビットマップのみが任意の２色サブピクセル最適化処理を受ける。
【０２７６】
本発明の幾つかの実施形態に於いて、ベクトル記述によって定義された形状に対してサブピクセル最適化を実行することによって、ベクトル画像を処理することが出来る。そうした幾つかの実施形態に於いて、サブピクセル最適化がプロキシ上で実行されるが、他の実施形態に於いては、薄型クライアント上で実行される。ベクトル、又は幾何学的に定義された描画の利点の１つは、それらの記述によって画像を表現することが可能であるという簡潔さにある。このように、薄型クライアントに対する回線容量が第一の制限である場合、画像に関するベクトル記述をダウンロードし、その後、薄型クライアントにサブピクセル最適化を使用してそれらをレンダリングさせることはあり得ることである。
【０２７７】
幾つかの実施形態に於いて、画像に対して画像認識を実行し、その後、認識された画像を記号表記で薄型クライアントにダウンロードすることが可能である。例えば、多くのウェブページに於いて大きなテキストをビットマップで表示することが一般的である。そうしたビットマップ上で光学的文字認識を実行することができ、該当する文字及びそれらのフォント、又は、それらのフォントの近似が、そのページを記述するために必要な回線容量を低減するために、薄型クライアントに記号的にダウンロードされる。
【０２７８】
スクリーンキャプチャ及びダウンロードルーチンが、例えば、ラジオボタン、チェックボックス、テキストフィールド、又は、ブラウザからのボタンなど、制御オブジェクトを生成するルーチンに対する呼び出しを受信する場合、図１０６Ｃに図示された制御生成ルーチン１０６６６によって、関数１０６６７乃至１０６７０が実行される。関数１０６６７は、ブラウザが描画される制御を要求したスクリーン位置を、それが薄型クライアントのスクリーンに描画される位置に変換する。図１０８に図示されているように、関数１０６６８は、対応するテキストラベルを含むダウンロード表示リストに対応する制御生成コマンドをセットし、関数１０６７０は制御オブジェクトの対応するブラウザ側の部分を生成する。
【０２７９】
本発明の本実施形態に於いて、薄型クライアントのスクリーンに表示された制御オブジェクトの機能性は、プロキシと薄型クライアントとの間で共有されている。例えば、チェックボックスがチェックされたかどうか、どのラジオボタン一式が押下されたかどうか等の状態情報は、薄型クライアントに保存されている。これにより、ユーザが制御オブジェクトに情報を入力する度に、薄型クライアントからプロキシに通信する必要性が回避される。一般に、クライアントがそうしたサーバへの中継のために、そうした情報をプロキシに送信する必要があるのは、そうした制御に対して保存された情報が、元々ウェブページを生成したリモートサーバコンピュータに送信されることを示す、何らかのボタンをユーザがクリックする場合に限られる。
【０２８０】
薄型クライアントにリンクする、より高い回線容量を有する本発明の他の実施形態に於いて、プロキシ上で実行される個々の制御オブジェクトに関連付けられた機能性をより多く、又は、実質的に全て有することによって、薄型クライアントのコードを簡略化することが望ましい。
【０２８１】
スクリーンキャプチャ、及び、ダウンロードルーチンが、図１０６Ａの関数１０６０２によって要求されたスクリーン再描画の完了を決定する場合、図１０６Ｃの関数１０６７２によって、関数１０６７４が図１０７に図示されたダウンロード表示リストルーチン１０７００を呼び出す。
【０２８２】
図１０７に示すように、ダウンロード表示リストルーチンは、ダウンロードストリームで新たな薄型クライアントのスクリーン上に新たに全部又は一部が表示される、ダウンロード表示リストに全ての要素をセットする関数１０７０２を含んでいる。通常、これは、現在のビューウインドウ内で発生するブラウザの仮想スクリーンに於ける任意の要素を含んでいる。しかしながら、以下で説明するように、薄型クライアントのスクリーン上で先のビットマップのかなりの部分を再利用可能なスクロールの場合に於いては、薄型クライアントスクリーンの現在のビットマップの再利用可能な部分に存在しないビューウインドウの部分に於いて、少なくとも部分的に発生する要素のみがダウンロードストリームにセットされる。
【０２８３】
本発明の多くの実施形態に於いて、ダウンロード表示リストを生成する図１０６Ａ乃至１０６Ｃの関数は、それがビューウインドウ内に適合しない場合、ダウンロード表示リスト上の要素を入力しない。他の実施形態に於いて、このフィルタリングは関数１０７０２に於いて行われる。
【０２８４】
本発明の多くの実施形態に於いて、薄型クライアントスクリーン内に実際に適合するそうした要素の部分のみをダウンロードするために、ダウンロードされる要素が切り取られる。これは、ダウンロードに必要なビット数を低減するという利点を有するが、演算の複雑化を招く。
【０２８５】
薄型クライアントスクリーン上に表示されるダウンロード表示リスト上の全ての要素がダウンロードストリームにセットされた時点で、図１０８に於ける数字項目１０８１８によって示されているように、関数１０７０４は、ダウンロードストリームに於ける対応する画像位置コマンドを有する全ての画像のビットマップを、ダウンロードストリームの最後に設置する。そうしたビットマップをダウンロードストリームの最後にセットする前に、本発明の幾つかの実施形態はそれらに非可逆圧縮を実行する。幾つかの実施形態に於いて、使用されるアルゴリズムは、緑の色値の差異が赤の色値の差異に比してより知覚可能であり、赤の色値の差異が青の色値の差異に比してより知覚可能である事実を考慮したメトリックを使用し、画像中の色値を、ＲＧＢ色値に於ける視覚的に知覚不能な差異を有する色のクラスタに集合させるアルゴリズムである。
【０２８６】
次に関数１０７０５は、可逆圧縮アルゴリズムを使用して、非可逆アルゴリズムによって以前圧縮された画像を含むダウンロードストリームを圧縮する。この目的のために、標準的な従来技術の可逆圧縮アルゴリズムを使用することが出来る。
【０２８７】
図１０８は、そうしたダウンロード表示ストリームに関する概略図である。幾つかの実施形態に於いて、そうしたストリームは実際にはマークアップ言語を使用して表現される。
【０２８８】
図１０８に図示されたフォントコマンド１０８１２は、図１０６Ａの関数１０６２３による表示リストに記録されたフォントコマンドを表している。
【０２８９】
図１０８の文字列コマンド１０８１４は、図１０６Ａのステップ１０６２４によるダウンロード表示リストに記録されたコマンドを表している。
【０２９０】
図１０８の背景色コマンド１０８０６は、図１０６Ａに図示された関数１０６３２によって入力された背景色コマンドを表している。
【０２９１】
図１０８の矩形コマンド１０８０８は、図１０６Ａの関数１０６３４によって保存された矩形情報を表している。
【０２９２】
図１０８に図示された画像位置コマンド１０８１０は、図１０６Ｂの関数１０６６４によって記録された画像位置コマンドを表している。
【０２９３】
図１０８の制御コマンド１０８１６は、図１０６Ｃの関数１０６６８によってダウンロード表示リストにセットされた制御コマンドを表している。
【０２９４】
ここで図１０７を再び参照すると、ダウンロードストリームに対する全ての要素が選択され、送信する準備が完了する時点で、関数１０７０６は、ブラウザコンピュータと薄型クライアントとの間のソケット接続を開き、次に、関数１０７０８は、薄型クライアントに、ダウンロードストリームの表示リスト情報を送信する。次に、薄型クライアントは、図１０９Ａ乃至１０９Ｃに関して以下で詳細に記載するように、情報を表示する。
【０２９５】
ここで図１０６Ｃを再び参照すると、関数１０６７４に於けるダウンロード表示リストルーチンへの呼び出しが完了する時点で、関数１０６７６は表示リストをクリアし、薄型クライアントにダウンロードされる次のスクリーンに対して、新たな表示リストを生成することが可能である。
【０２９６】
ここで図１０５Ａを再び参照すると、同図に図示された関数１０５１０によって呼び出されたスクリーンキャプチャ及びダウンロードルーチンの完了については今説明した通りである。
【０２９７】
図１０５Ａに図示されているように、ブラウザのプロキシコードが、薄型クライアントのスクリーン上に表示された１つ又は複数の制御オブジェクトの状態に関してブラウザコードの他の部分からクエリを受信する場合、関数１０５１４によって、関数１０５１６及び１０５１８が実行される。関数１０５１６は、その一つ又は複数の制御オブジェクトの状態に関して、薄型クライアントにクエリを送信する。そうした状態情報を薄型クライアントから受信する場合、関数１０５１８は、そうした状態情報に対する要求を行ったプログラムにそれを戻す。
【０２９８】
図１０６Ｃの関数１０６６６乃至１０６７０に関して上述したように、本発明のこの実施形態は、そうした制御が表示されるウェブページのウェブサイトに送信されたそうした状態情報を有する選択を行う前に、ユーザが情報を変更するので、通信回線容量を低減するために、例えばラジオボタン、チェックボックス、及びテキスト入力フィールドなど、個々の制御オブジェクトに関する状態情報について実際にクライアントに描画及び保存をさせる。一般に、ユーザが送信ボタンをクリックする場合、関連するクリックイベントがプロキシコンピュータまで送信され、それによりスクリーン座標が仮想レイアウトスクリーン上に於ける対応する座標に変換され、次に、仮想スクリーン解像度を有し、ブラウザが表示していると見なすスクリーン上であたかもクリックイベントが生成されているかのように、そのクリックイベントに対応するためのブラウザコードに対して、ブラウザのイベント待ち行列にそれがセットされる。これが実行される時点で、ブラウザコードは従来、現在のウェブページの全ての制御オブジェクトに関する状態を要求し、これにより、現在のウェブページが由来するウェブサーバに情報が戻ることを知らせることが出来る。関数１０５１４乃至１０５１８の操作を引き起こすのは、そうした要求である。
【０２９９】
ブラウザのプロキシコードがスクロール又は移動コマンドを薄型クライアントから受信する場合、関数１０５２０によって、図１０５Ａの関数１０５２２乃至１０５３４が実行される。
【０３００】
関数１０５２２は、スクロール又は移動に対応して、図１０２に図示されたビューウインドウ１０２１０をブラウザのレイアウト１０２０６に関連して移動させる。次に、関数１０５２６は、移動前にビューウインドウに存在したビューウインドウの任意のかなりの部分が、移動後に未だビューウインドウに存在するかどうかを確認するためにテストを行う。かなりの部分がビューウインドウに存在する場合、このことは、薄型ブラウザスクリーン上に現在表示されているビットマップの実質的な部分が、要求されたスクロール又は移動の実行後に、表示に於いて再利用可能であることを意味する。この場合、関数１０５２８は、図１０８に於けるダウンロードストリームの最上部付近に図示されたスクロールコマンド１０８０４を、スクロールされたスクリーンに対して生成される新しい表示リストの開始位置にセットする。そうしたスクロールコマンドは、薄型クライアントの画面の以前のスクリーンビットマップのどの部分を再利用するかを示すＸＹシフト値を含んでいる。
【０３０１】
図１０８に於いて、クリアコマンド１０８０２及びスクロールコマンド１０８０４は、ダウンロードストリームの開始位置に図示されており、これにより、両コマンドを説明することが出来る。本実施形態に於いて、２つのコマンドの内、クリアコマンド又はスクロールコマンドの一つだけが所定のダウンロードストリームを開始し、クリアコマンドは、薄型クライアントのスクリーンが全体的に再描画される場合に使用され、スクロールコマンドは、薄型クライアントの先のビットマップの部分が新しいスクリーンで再利用するためにシフトされる場合に使用される。
【０３０２】
以前ダウンロード及び描画が実行され、スクロールコマンドを使用可能となる、スクリーン表示の実質的な部分を再利用することによって位置を比較的小さく変更することを含むスクロールに於いて、薄型クライアントにダウンロードされるデータ量を実質的に低減することが出来る。例えば、本出願の出願時点に於いて一般的な、比較的低速度のデジタル携帯電話リンクを介してブラウザと薄型クライアントが通信する状況など、特に、ブラウザと薄型クライアント間の回線容量が制限されている状況に於いて、これは、スクロールされたスクリーンが薄型クライアント上に表示可能な割合を実質的に向上させることが出来る。
【０３０３】
スクロールコマンド又は移動コマンドの結果生じる移動されたビューウインドウが、図１０２に概略的に図示された、仮想スクリーン１０２０６に現在存在しないウェブページのレイアウトの部分を含む場合、図１０５Ａの関数１０５３０によって、関数１０５３２及び１０５３４が実行される。関数１０５３２は、ビューウインドウの全てがブラウザの仮想スクリーン内に含まれるように、ブラウザの仮想スクリーンをスクロールさせ、次に、関数１０５３４が新たに移動された仮想スクリーンに対して、ブラウザからの再描画を要求する。この描画が完了する時点で、関数１０５０６及び１０５１０は、図１０６Ａ乃至１０６Ｃに関して上述されているように、新たに描画された要素を取り込み、描画する。
【０３０４】
ブラウザのプロキシが薄型クライアントからズームコマンドを受信する場合、図１０５Ａの関数１０５３６によって、関数１０５３８乃至１０５５２が実行される。
【０３０５】
関数１０５３８は、ズーム変更に従って表示倍率を変更する。
【０３０６】
関数１０５４０は、選択されたズームに従って、ビューウインドウをブラウザの仮想ウインドウに関連して拡大／縮小する。
【０３０７】
関数１０５４２は、拡大／縮小されたビューウインドウが仮想スクリーン内に現在含まれていないウェブページのレイアウトの部分を含むかどうかを確かめるためにチェックを行う。ウェブページのレイアウト部分を含む場合、関数１０５４２によって、関数１０５４４が仮想スクリーンをスクロールする、又は、縮尺ビューウインドウを仮想スクリーン内に適合させるために解像度を変更する。
【０３０８】
仮想スクリーンをスクロールすることによって、新しいビューウインドウが仮想スクリーンに適合することが出来る場合、ウェブページを再びレイアウトする必要がなく、仮想スクリーン内にある異なる場所を表示すること、及び／又は、異なる倍率で仮想スクリーン表示することによって、ズーム前に存在した同一レイアウトを表示するために、ズームを使用することが出来る。しかし、ズームが、図１０５Ａに図示された実施形態に於いて、ビューウインドウを仮想スクリーンサイズに比して大きくするズームアウトである場合、プロキシブラウザはクライアント上に表示されたビューウインドウの任意の部分に供給された任意の入力を、それがあたかもプロキシブラウザの仮想スクリーン上の対応する位置で発生したかのように処理することが出来るように、ビューウインドウが仮想スクリーン内に完全に適合可能な新たな仮想スクリーンサイズで、ウェブページを表示することが必要となる。記載されている実施形態に於いて、新しい仮想スクリーン解像度が先のレイアウトに於いて使用されたレイアウト解像度に比して大きい場合、これによりウェブページは新しいレイアウトで表示され、異なる位置で改行させることが出来る
例えば、プロキシブラウザがパッチを適用されるというよりは、ズームされた表示をサポートするために設計された実施形態、レイアウト全体のダウンロードに関連してクライアントが直接ズームを行う図１１５に関して上述された実施形態など、本発明に関する他の実施形態に於いて、極端なズームアウトはウェブページの再レイアウトを必要としない。
【０３０９】
最後に、関数１０５５２は、スクリーン再描画を呼び出す。これにより、スクリーンキャプチャ及びダウンロードルーチンが、新しいズーム倍率で現在のビューウインドウの再描画を取得し、対応する表示情報を薄型クライアントにダウンロードするので、新しいズーム設定でウェブページを表示することが出来る。
【０３１０】
図１０５Ｂに示されているように、ブラウザのプロキシが薄型クライアントから仮想解像度変更コマンドを受信する場合、関数１０５５４によって、関数１０５５６乃至１０５６０が実行される。関数１０５５６は、図１０２に図示された仮想解像度制御１０２１４に保存されたブラウザの仮想スクリーン解像度を要求された解像度に変更する。次に、ステップ１０５６０は、スクリーン再描画を要求する。これは、ブラウザが新しい仮想スクリーン解像度で現在のウェブページを再びレイアウトし、ビューウインドウが薄型クライアントスクリーン上に有するピクセル数に対する、ビューウインドウが仮想スクリーンに有するピクセル数の比率に対応する表示の倍率で、仮想スクリーンの全てを再描画するからである。
【０３１１】
仮想解像度に於けるそうした変更によって、そうしたレイアウト内の画像及びテキストのサイズに関連してレイアウトが実行されるサイズを変更する。ユーザが、サイズに於けるそうした変更をキャンセルする仮想スクリーンに関連して、ビューウインドウの相対的なサイズに於ける変更をユーザが行わない限り、相対的なレイアウトサイズに於けるそうした変更によって、スクリーン上に表示される画像及びテキストのサイズを変更する。相対的なビューウインドウサイズに於けるそうした補償的な変更がない場合、仮想解像度を低減することによって、画像及びテキストがスクリーン上に表示されるサイズを大きくし、テキストラインのより多くをより大きなテキストサイズで一度にスクリーン上に適合させるように、それらに表示されたフォントのサイズに関連して、テキストラインをより短くする傾向がある。それ故、ある特定の種類のズーム機能をウェブページの表示に供給するために、仮想レイアウトサイズに於ける変更を使用することが出来る。
【０３１２】
発明者は、倍率２でレイアウトを縮小することを含む、典型的なＰＤＡのサイズである３２０×２４０スクリーン上にウェブページを表示する際に、６４０×４８０の仮想スクリーンを使用して、極めて良好な可読性を供給することが出来るということを発見した。しかしながら、より大きな解像度表示に対して表示された場合に、ウェブページがどのように見えるかをユーザが見ることが出来るようにするためには、可読性が犠牲になるとしても、例えば、ＰＤＡサイズの３２０×２４０画面上に８００×６００の仮想スクリーン解像度を表示する場合など、ウェブページをさらに低減された縮尺で表示することに本発明を利用することが出来る。言うまでもなく、ページのレイアウトは、結果的に生じるフォントサイズに於ける相対的な増大のために、そうした解像度で表示するために元々意図したレイアウトとは全く異なるが、最小フォントサイズが制限されることをユーザが選択する場合、図１０６Ａの関数１０６１４に関して上述されたように、より大きな仮想解像度を有するテキストでさえ、読み取り可能なフォントで表示される。
【０３１３】
図１０５Ｂの関数１０５６２によって示されているように、ブラウザのプロキシコードが、薄型クライアントのスクリーン上でのクリックに関連して薄型クライアントから他のユーザ入力を受信する場合、関数１０５６４は、仮想スクリーン上の対応する位置に対するクリックに関連して、薄型クライアントスクリーンの位置を変換し、殆どのブラウザのコードが、それがレイアウトしていると見なす仮想スクリーン上でユーザが実際にクリックしたかのように、ブラウザがイベントに対応することが出来るように、関数１０５６６はこのイベントをブラウザのイベント待ち行列に中継する。
【０３１４】
これが、ウェブリンクがテキストリンクであろうと画像リンクであろうと、薄型クライアント上に表示されたウェブページ上のウェブリンクを選択するために、プロキシ上のブラウザが薄型クライアントのユーザからの入力に対応する方法である。例えば、ユーザが薄型クライアントスクリーン上に表示されたリンクをクリックする場合、それが表示していると見なす仮想スクリーンに於ける同一リンクをユーザがクリックしたかのように動作するプロキシ上のブラウザに対応するクリックが中継される。次に、プロキシのブラウザは、リンクに対応してインターネットを介してＨＴＴＰ要求を発することによって対応する。そのリンクに対応するウェブページが受信される場合、ブラウザはそれを仮想画面上にレイアウトし、表示しようとし、これによって、図１０５Ａの関数１０５０６及び１０５１０が、ビューウインドウに対応するレイアウトのその部分に含まれた情報を取り込み、そのスクリーン上に表示するために薄型クライアントにそれをダウンロードさせる。その結果、薄型クライアントのユーザは、通常のブラウズコンピュータのユーザと略同一の方法で、ウェブをブラウズすることができる。
【０３１５】
図１０９Ａ乃至１０９Ｃは、薄型クライアントコンピュータのユーザがそのスクリーンを使用して、ワールドワイドウェブ（ＷＷＷ）をブラウズ出来るように、プロキシブラウザに関連して動作するのに役立つように設計された、薄型クライアントコンピュータ上に於けるコード１０９００に関する高度に簡略化された擬似コード表記である。
【０３１６】
図１０９Ａの関数１０９０２は、図１０７の関数１０７０８によって薄型クライアントに送信されたダウンロードストリームの全て又は最初の部分の受信に対応する。関数１０９０２は、受信される順番でそのストリームに含まれた、図１０８に図示された種類の個々のコマンドへの対応を開始することにより、このような対応を行う。ダウンロードストリームが完全に受信されるまで、新しいスクリーンの描画作業を遅延する必要がないように、関数１０９０２は、１つ又は複数のコマンドが受信され次第、これを開始する。ダウンロードストリームに含まれた各種異なるコマンドへの対応については、図１０９Ａ乃至１０９Ｂに於いて数字１０９０４乃至１０９５６が付与された関数によって示されている。
【０３１７】
関数１０９０４及び１０９０６によって示されているように、薄型クライアントがダウンロードストリームに於けるクリアコマンドを読み取る場合、例えば、全体的に白の値に設定されることによって、スクリーン上に表示されたビットマップがクリアされる。
【０３１８】
薄型クライアントが、ダウンロードストリームに於けるスクロールコマンドを読み取る場合、関数１０９０８によって、関数１０９１０及び１０９１２が実行される。関数１０９１０は、コマンドに含まれたＸＹシフト値によって示されたスクリーン上の新しい位置へのスクロールコマンドに於いて指定されたスクロールの後で再利用される薄型クライアントスクリーンのビットマップの一部をコピーする。そして、関数１０９１２は、スクリーンの残りの部分をクリアする。
【０３１９】
薄型クライアントが、ダウンロードストリームに於ける背景色コマンドを読み取る場合、関数１０９１４及び１０９１６は、現在の矩形背景色変数を、コマンドで指定された色に設定する。これにより、背景色の値が変更されるまで、矩形コマンドに対応して薄型クライアントによって描画された全ての矩形は、その特定の色値を有する。
【０３２０】
薄型クライアントがダウンロードストリームに於ける矩形コマンドを読み取る場合、関数１０９１８及び１０９２０は、現在の背景色を使用し、コマンドに於いて指定されたスクリーン位置、幅、及び、高さを有する矩形を描画する。
【０３２１】
薄型クライアントが画像位置コマンドを読み取る場合、関数１０９２２及び１０９２３はこの時点で何も実行しない。これは、通常、そうした画像位置コマンドに於いて参照された画像を描画するために必要なビットマップが、そうした場合に受信されていないからである。他の実施形態に於いて、ブラウザは矩形描画コマンドを画像に関連付け、これにより、画像に関連付けられたブラウザスクリーンの一部が、ビットマップ画像の表示位置を示す画像上に描画された矩形を有することになる。
【０３２２】
薄型クライアントがフォントコマンドを読み取る場合、関数１０９２４及び１０９２６は、フォントコマンドに記載された全てのフォント属性を、そのコマンドに於けるそれらの属性に対して記載された値に設定する。
【０３２３】
本発明の異なる実施形態に於いて、異なるフォント属性を使用することが出来る。少なくとも、フォントファミリー、フォントサイズ、及び、フォントの前景色が、フォント属性でサポートされることが好ましい。
【０３２４】
薄型クライアントがダウンロードストリームに於ける文字列コマンドを読み取る場合、関数１０９２８によって、関数１０９３０乃至１０９４０が実行される。
【０３２５】
関数１０９３０は、薄型クライアントがフォントビットマップキャッシュに於いて、現在のフォント属性値によって指定された現在のサイズ及びフォントファミリーに於ける現在の文字列の各文字に対するビットマップを有するかどうかを確認するためにテストを行う。このビットマップを有していない場合、関数１０９３２乃至１０９３６が実行される。
【０３２６】
関数１０９３２は、図２に関して上述したフォントサーバ１３４に、クライアントのインターネット接続を介してＨＴＴＰ要求を送信する。要求されたフォントがフォントサーバから受信される場合、関数１０９３４及び１０９３６は、それを薄型クライアントのフォントビットマップキャッシュにセットする。
【０３２７】
注目すべきは、本発明の幾つかの実施形態では、関数１０９３０及び１０９３６を使用する必要がないように、薄型クライアントブラウザソフトウェアの一部として、永続的にフォントビットマップを十分に保存することである。他の実施形態に於いては、図１０９Ａに図示された例に於けるフォントビットマップに図示されているように、サブピクセル最適化フォントアウトラインは、薄型クライアントによって永続的に保存されるか、必要に応じて要求される。
【０３２８】
薄型クライアントが現在の文字列をレンダリングするために必要なフォントビットマップの全てを有する場合、関数１０９３８及び１０９４０は、前景色を含む現在のフォント属性値を使用して、文字列を指定されたスクリーン位置でスクリーン上に描画する。現在の実施形態に於いて、フォントビットマップは、図６０、９６、９７に関して上述された種類のアルファ値ビットマップとして表される。そのように実行する場合、文字列が描画されるスクリーンビットマップの一部から、背景色が抽出される。
【０３２９】
幾つかの実施形態に於いて、演算を低減するために、文字列が描画されるスクリーンの部分の色値は、比較的少ない数のポイントでサンプリングされ、これらのサンプリングされた色値の平均値は、図９７に関して上述しているように、文字列表示全体に対する背景色として使用される。
【０３３０】
記載されている実施形態に於いて、ダウンロードストリームに含まれる文字列の全ては、単一のラインテキスト文字列であり、これらの多くがプロキシブラウザのレイアウトエンジンによるライン境界を越えた連続テキストのラッピングから生じている。結果として、この実施形態では、薄型クライアントがそうしたテキストの任意のラッピングを実行する必要はない。
【０３３１】
関数１０９４０は、文字列のビットマップ画像を、文字列の文字に対応する別々の複数のフォントビットマップで構成することによって描画する。通常、そうした構成では、各種別々の文字は、異なる別々のフォントビットマップによって表される。
【０３３２】
異なるフォントサイズ（例えば表示倍率に於ける変化によって生じた異なるフォントサイズ）でのそうした構成に於いて使用されたフォントは、そうした各フォントサイズで可読性を向上させるために選択された各文字の形状及びピクセル配列を有している。殆どの実施形態に於いて、ビットマップのピクシレーションを用いて文字形状の配列を改善するために、フォントビットマップに関連して、文字の形状及び位置を選択することによって、こうした改善された可読性を実現する。そのような形状及びピクセル配列は、１０ピクセル／ｅｍ又はそれ未満のフォントビットマップを扱う場合に特に重要であるが、８ピクセル／ｅｍ又はそれ未満では、さらに重要である。これは、フォントビットマップのより粗いピクシレーションのために、フォントビットマップが小さくなるにつれて読み難くなるからであり、それ故、フォントビットマップがそうしたピクシレーションに適合するために選択された文字の形状及び配置を有することがより一層重要になる。
【０３３３】
本発明の多くの実施形態に於いて、より小さな縮尺のステップ１０９４０によって使用されたフォントビットマップは、ピクセル内で発生するカラーアンバランスのみが分配される、上述の種類の非線形カラーバランスによって生成されたサブピクセル最適化されたビットマップである。そうしたサブピクセル最適化が、それらの粗いビットマップピクシレーションにうまく適合するように、適切に形成され、配置されたアウトラインに組み合わされる場合、描画された結果として生じるビットマップは、それらの小さなピクセルサイズを考慮すると、極めて読み易い。本発明の他の実施形態に於いて、そうした小さなピクセルサイズでの可読性を改善するために形成され、位置されたアウトラインを同様に有する非サブピクセル最適化されたアンチエイリアスフォントが使用される。
【０３３４】
ここで図１０９Ｂを参照すると、薄型クライアントがダウンロードストリームからの制御コマンドを読み取る場合、関数１０９４２によって関数１０９４４乃至１０９４８が実行される。関数１０９４４は、現在の制御コマンドに於いて指定された制御ＩＤに対応するデータ、又は、プログラムオブジェクトを既に生成しているかどうかを確認するためにテストを行う。生成していない場合、関数１０９４６は、制御コマンドに於いて指定された種類のデータ又はプログラムオブジェクトを生成し、それをそのコマンドで指定された制御ＩＤに関連付ける。
【０３３５】
次に、ステップ１０９４８は、指定された種類の制御オブジェクトのサブピクセル最適化されたビットマップを、制御コマンドに於いて指定された位置に於いて、薄型クライアントのスクリーン上に描画する。次に、ステップ１０９４８は、サブピクセル最適化されたフォントを使用して、制御オブジェクトのビットマップ上に、制御に関連付けられたテキストを描画する。次に、ステップ１０９４８は、制御のビットマップに対応する表示スクリーン位置を有するホットゾーンを、薄型クライアント上で制御を表すデータオブジェクト又はプログラムオブジェクトと関連付ける。
【０３３６】
薄型クライアントがダウンロードストリームからの画像コマンドを読み取る場合、関数１０９５０によって、関数１０９５２乃至１０９５６が実行される。
【０３３７】
関数１０９５２は、現在の画像コマンドと同一の画像ＩＤを有する画像位置コマンドが発生する毎に、現在の表示ストリームをスキャンする。そうした各画像位置コマンドに対して、関数１０９５２によって、関数１０９５４は薄型クライアントのスクリーン上の画像位置コマンドで指定された位置にビットマップを描画する。全ての薄型クライアントの描画関数と同様に、薄型クライアントスクリーン上に適合しない画像の任意の部分は、そうした描画操作に於いて切り取られる。
【０３３８】
次に、関数１０９５６は、これらの描画された任意のビットマップと同一位置で発生する表示リストに於ける、他の全てのアイテムを再描画する。これが必要なのは、ウェブページがテキストを画像の最上部にセットすることが一般的であり、それ故、ビットマップ画像と同一位置に表示されるはずの任意の文字列は、これらの画像が描画された後で再描画されることが望ましい。本発明の一実施形態に於いて、薄型クライアントは、そのリストに於ける最初の画像位置コマンドの後に発生する、ダウンロードストリームの表示リストの全ての非画像要素を単に再描画する。
【０３３９】
図１１０に図示されているように、テキスト入力フィールドに関連付けられたホットゾーン上でユーザがクリックする場合、図１０９Ｂの関数１０９５８及び１０９６０によって、関数１０９６２乃至１０９７８で構成されるキーボードルーチンが実行される。
【０３４０】
関数１０９６２は、図１１１に図示されているように、薄型クライアントのスクリーン上に、ポップアップユーザキーボード１１１０２、及び、テキスト編集フィールド１１１０４を表示する。次に、ユーザがポップアップキーボードの「Ｅｎｔｅｒ（入力）」キーを押下するまで、ループ１０９６４が実行される。このループ中に、ユーザがテキスト文字を打ち込む度に、関数１０９６６によって、関数１０９６８は文字に関するサブピクセル最適化テキストビットマップをポップアップキーボードのテキスト編集ライン上の現在のカーソル位置にセットし、カーソルのビットマップを新たに描画された文字の後ろの位置に移動させる。そして、関数１０９７０は、ポップアップキーボードのプログラムに関連付けられた一時的なテキスト編集文字列に打ち込まれた文字を追加する。
【０３４１】
ユーザがポップアップキーボードの「Ｅｎｔｅｒ（入力）」キーを押下する場合、関数１０９７２によって、関数１０９７４乃至１０９７８が実行される。関数１０９７４は、ポップアップキーボードが引き起こされるテキスト編集制御に於けるポップアップキーボードに関連付けられた、一時的なテキスト編集文字列の値を保存する。関数１０９７６は、サブピクセル最適化ビットマップを使用して、図１１２に示されるように、薄型クライアントのスクリーン上の制御オブジェクトのテキスト入力フィールド１１０００のビットマップに、テキスト編集文字列の文字を描画する。
【０３４２】
次に、関数１０９７８は、ポップアップキーボードの上に、ポップアップキーボードが描画される前にスクリーン上に表示されたビットマップを描画することによって、薄型クライアントのスクリーンからポップアップキーボードを取り除く。
【０３４３】
図１１３は、ポップアップキーボードルーチンをテキスト入力フィールドにテキストを入力する以外の目的で使用することが出来ることを図示している。図１０９Ａ乃至１０９Ｃの擬似コードに表示されていないが、ポップアップキーボードは、薄型クライアントに表示されたユーザが見たいと考えているウェブページのＵＲＬを入力するために使用することも出来る。
【０３４４】
ボタンバー又はツールバーをグラフィカルユーザインターフェース（ＧＵＩ）の最上部に有する本発明の一実施形態を図示しているという点を除いて、図１１４は実質的に図１１３と同一である。このボタンバーは、その左端に、一般的にウェブブラウザで見られる種類の「Ｂａｃｋ（戻る）」ボタン及び「Ｆｏｗａｒｄ（進む）」ボタンを有している。またそれは、こちらも一般的にウェブブラウザで見られるボタンであるが、リフレッシュボタン、ブックマークボタン、及び、ヒストリーボタンにそれぞれ対応する「Ｒ」、「Ｂ」、「Ｈ」でラベル付けされたボタンを有している。また、ボタンバーは、クリックされた場合に図１１４に図示されたポップアップキーボードが現れるＵＲＬテキスト入力フィールドを有する。ポップアップキーボードが表示されていない場合、このテキスト入力フィールドは、薄型クライアントのスクリーン上に表示された現在のウェブページのＵＲＬを表示する。本発明の一実施形態に於いて、ユーザは、ハードウェアのボタンを押下することによって、そうしたツールバーの表示、非表示を選択することが出来る。この実施形態に於いて、そのようなツールバーが表示されていないとしても、ユーザは、例えばバックコマンドやフォーワードコマンドなど、より一般的なウェブブラウズ機能の幾つかを呼び出すために、ハードウェアボタンを使用することが出来る。
【０３４５】
本発明の他の実施形態に於いて、そうしたグラフィカルユーザインターフェース（ＧＵＩ）のツールバーもまた、ウェブページの表示のズーム、及び／又は、相対的なレイアウトサイズ（即ち、仮想レイアウト解像度）を含む、ブラウザの他の機能にユーザがアクセスすることが可能なボタン又はメニューを有することが好ましい。
【０３４６】
ここで図１０９Ｂを再び参照すると、ユーザが、ボタン又はメニューアイテム制御のホットゾーン上でクリックする場合、関数１０９８０によって関数１０９８１及び１０９８２が実行される。
【０３４７】
関数１０９８１は、ボタン又はメニューアイテムの外見を適切に変更する。ボタンの場合であれば、ボタンに関連付けられたビットマップがボタンが、押下されていることを示すために再描画される。メニューアイテムの場合であれば、最終的な選択がなされたか否かに応じて、サブメニューが表示されるか、又は、メニューアイテムの表示が取り除かれる。
【０３４８】
メニューアイテムの場合に於いて、最終的な選択が成された場合、又は、ボタンが押下され、解除された場合、関数１０９８２は、ボタンの制御ＩＤ又はメニューアイテムの制御ＩＤ、及び、それが選択されたという指示をブラウザに送信し、ブラウザはブラウザ上の対応するボタン又はメニューアイテムの制御オブジェクトをあたかも押下されたように動作させることによって対応する。
【０３４９】
ユーザが、他の種類の薄型クライアント制御に関連付けられたホットゾーン上でクリックする場合、関数１０９８３は、これに応じて、薄型クライアントの表示上の制御のビットマップの外見を変更する。例えば、チェックボックスの場合であれば、スクリーン上の制御の表示にチェックが表示されるか、又は、表示から取り除かれる。次に、ステップ１０９８５は、制御オブジェクトに対応して、対応する状態変更を保存する。上述したように、記載の実施形態に於いて、通信の要求を低減するために、ブラウザがそうした情報を要求するまでは、そうした制御オブジェクトの状態は、ブラウザに伝達されない。
【０３５０】
クライアントプログラム、又は、コンピュータの制御インターフェースに関連付けられていない薄型クライアントのスクリーンの他の部分上でユーザがクリックする場合、関数１０９８６及び１０９８７は、クリックが発生したスクリーン位置に加えて、そのクリックに関連するイベントを、プロキシブラウザに送信する。図１０５Ｂの関数１０５６２乃至１０５５６に関して上述されたように、ブラウザは、そうしたクリックの位置を仮想スクリーン上の対応する位置に変換し、仮想スクリーンの解像度で、それが描画しているとブラウザが見なすスクリーン上で、クリックがあたかも発生したかのように、そうしたクリックに対応する。幾つかの実施形態に於いて、通信の要求をさらに低減するために、他のクリックが、プロキシのブラウザが対応することになっているユーザ入力に一致すると考える根拠を薄型クライアントが有する場合に限り、薄型クライアントはそうした他のクリックをブラウザに報告する。
【０３５１】
ここで図１０９Ｃを再び参照すると、薄型クライアントが、一つ又は複数の制御オブジェクトの状態を要求するプロキシブラウザからのクエリを受信する場合、関数１０９８８によって、関数１０９８９は薄型クライアント上の対応する制御の状態を問い合わせ、関数１０９０９は、そうした状態情報をプロキシブラウザに送信する。図１０５Ａの関数１０５１８に関して上記されたように、次にプロキシブラウザは、あたかもその情報が、仮想スクリーンに関連した対応する制御オブジェクトの現在の状態の一部であるかのように、それを要求したブラウザの部分に、そうした要求された情報を返す。
【０３５２】
薄型クライアントのユーザが、そのスクリーンをスクロールするためにコマンドを入力する場合、関数１０９９１及び１０９９２は、そのスクロールコマンドをプロキシにアップロードする。これによって、図１０５Ａに関して上記された関数１０５２０乃至１０５３４は、新たにスクロールされた位置に、現在のウェブページを表示するために、新しいダウンロードストリームを生成し、ダウンロードする。
【０３５３】
ユーザが、薄型クライアント上に表示された画像のズーム（即ち、縮尺）を変更するためにコマンドを入力する場合、関数１０９９３及び１０９９４は、対応するズームコマンドをプロキシにアップロードする。これによって、図１０５Ａに関して上述された関数１０５３６及び１０５５２は、新しいズーム設定で現在のウェブページを表示するために、薄型クライアントにダウンロードされた新しいダウンロードストリームをもたらす。
【０３５４】
ユーザが薄型クライアントの表示に関する仮想解像度を変更するためにコマンドを入力する場合、即ち、プロキシブラウザ上の仮想スクリーンがレイアウトされる解像度を変更する場合、関数１０９９５及び１０９９６は、選択された仮想解像度をプロキシにアップロードする。これにより、図１０５Ｂに関して上述された関数１０５５４乃至１０５６０は、プロキシブラウザの仮想スクリーン解像度を変更し、新しい解像度で仮想スクリーンを再びレイアウトし、対応するダウンロードストリームを薄型クラインアントに送信するので、それは、ウインドウに対応する仮想スクリーンの一部を現在のズーム設定で薄型クライアントスクリーン上に表示することが出来る。仮想解像度に於ける変更は、仮想レイアウトの幅に関連して、例えばテキスト及びイメージ等のレイアウト要素の相対的なサイズを変更する傾向があるので、本明細書中では、仮想解像度は相対的なレイアウトサイズとして言及される場合がある。
【０３５５】
図１０９Ｃの最下部に図示されているように、ユーザが薄型クライアントの制御グラフィカルユーザインターフェース（ＧＵＩ）に関連付けられた他のコマンドを入力する場合、関数１０９９７によって、省略記号１０９９９によって示された、これに対する適切な応答が実行される。そのような他の関数は、ブックマークの選択、ブックマークされたウェブページへのアクセス、Ｂａｃｋ（戻る）及びＦｏｗａｒｄ（進む）機能、ブラウザのユーザインターフェースの一部となり得る任意の他の関数を含む。物理的なボタンの使用、又は、薄型クライアントコンピュータへの他の物理的入力、例えばボタン、メニューアイテム、又は、ダイアログボックス制御などのグラフィックオブジェクトの選択、又は、仮想のその他任意の周知のグラフィカルユーザインターフェース（ＧＵＩ）技術によって、そうした要求を選択することが出来る。
【０３５６】
図１１５乃至１１７は、薄型クライアントがプロキシサーバを介してウェブをブラウズ可能にする代替方法に関する。この実施形態に於いて、図１１７に図示されているように、プロキシコンピュータによって生成されたウェブページの全体的なレイアウト１０２０６は、薄型クライアントによってダウンロードされキャッシュされる。後述するように、これにより薄型クライアントは実質的により速くレイアウト内をスクロールすることが出来るのであるが、これにより、薄型クライアントが視認される各ウェブページに対してレイアウト全体及び全画像をダウンロードしようとするので、ダウンロードされる総ビット数を増加させる可能性がある。
【０３５７】
図１１５は、そうしたページレイアウトキャッシュスキームで使用可能なプロキシブラウザコード１１５００の一部を図示している。
【０３５８】
本発明のこの実施形態に於いて、プロキシブラウザは薄型クライアントからウェブページに対する要求を受信する場合、関数１１５０２によって関数１１５０４乃至１１５２４が実行される。
【０３５９】
図１１５の関数１１５０２に関連付けられた擬似コードによって図示されているように、この特別なウェブキャッシングに関する実施形態に於いては、薄型クライアントは、所望の仮想解像度、ズーム設定、及び、ビューウインドウ位置を含む、ページに対する所望のビュー設定でウェブページを要求することが出来る。これを実行するのは、ページが要求される度に、そうした設定値を別々に入力する必要なく、所望の仮想解像度、ズーム設定、及び、ビューウインドウ位置で、ユーザがそうしたウェブページを自動的に視認出来るように、ユーザがそうしたビュー設定を、特定のＵＲＬ又はＵＲＬパス名の部分を含むブックマークに関連付けることを可能にするためである。例えば、これにより、ユーザはそのページの所望箇所に於いて自動的にズームされた表示で、通常アクセスされたウェブページを視認することが出来る。
【０３６０】
ウェブページに対する要求が薄型クライアントから受信された時点で、プロキシブラウザ上の関数１１５０４は、薄型クライアントから要求されたＵＲＬに於いて識別されたサーバからそのウェブページを要求する。ウェブページがサーバから受信される場合、関数１１５０６によって、関数１１５０７乃至１１５１６が実行される。
【０３６１】
関数１１５０７によって、プロキシ上のブラウザのレイアウトエンジンは、ウェブページに対する薄型クライアントからの要求に於いて指定されたビュー設定に関連付けられた仮想スクリーン解像度で、受信されたウェブページをレイアウトする。図１０６Ａの関数１０６０６乃至１０６１８に関して上記されたものと同様の方法で、置換されたフォントに対して拡大／縮小された文字列測定を使用して、このレイアウトを実行する。使用される倍率は、現在のページに対する要求において指定されたビュー設定によって決定される。
【０３６２】
関数１１５０８は、現在の要求に関するビュー設定に於いて潜在的なビューウインドウを含む、結果として生じたレイアウトに関連して、仮想スクリーン位置を特定する。それ故、例えばビュー設定がレイアウトの一番右の６４０×４８０部分を見ることを要求し、レイアウトが８００ピクセル幅を有するように強制される場合、仮想スクリーン位置は、レイアウトに於いて、約ピクセルコラム１６０からピクセルコラム８００に拡張する。
【０３６３】
図１１７に於いて概略的に図示されているように、関数１１５１８によって、関数１１５２０はレイアウトされているウェブページに関連して受信されたそれぞれの画像１１７０２を拡大／縮小、及び、サブピクセル最適化する。
【０３６４】
ウェブページに於いて参照された全画像が受信され、拡大／縮小され、サブピクセル最適化された時点で、関数１１５２２によって、関数１１５２３はそのレイアウトに対して表示リストを作成し、その表示リスト、及び、全ての関連するサブピクセル最適化、拡大／縮小された画像を圧縮する。次に、関数１１５２４は、後に縮小されたサブピクセル最適化された画像が続く、ウェブページレイアウトを含むダウンロードストリームで、その圧縮されたデータを薄型クライアントに送信する。
【０３６５】
本発明の該特徴に関する他の実施形態に於いて、画像の全て又はその一部でさえもプロキシサーバにダウンロードされる前に、レイアウトの部分を薄型クライアントにダウンロードすることが出来る。これにより、薄型クライアントはウェブページのテキストの表示をより迅速に開始することが出来る。多くのウェブページは、それらの画像全てのサイズに関する記述を含んでいるので、多くの場合、そうしたレイアウトを実行するソフトウェアによって画像が受信される前に、ウェブページの適切なレイアウトを実行することが出来る。そうではない場合、そのページは全画像のサイズを確認する際に、再びレイアウトされなければならず、その後で、こうした新たなレイアウトをクライアントまで送信することが出来る。
【０３６６】
異なる縮尺で以前ダウンロードされた一つ又は複数の画像を再び拡大／縮小し、サブピクセル最適化するために、ユーザが薄型クライアントから要求を受信する場合、関数１１５２６乃至１１５３２は、そうした画像を再び拡大／縮小及びサブピクセル最適化し、圧縮し、そして薄型クライアントにダウンロードする。これにより、ユーザが異なるズーム設定でダウンロードされたウェブページレイアウトを見ようとする場合、ユーザは異なるサブピクセル最適化されたサイズでウェブページを見ることが出来る。
【０３６７】
スクリーン入力のイベントが薄型クライアントから受信されると、関数１１５３４によって、関数１１５３６乃至１１５４２が実行される。
【０３６８】
関数１１５３６は、コマンドに関連付けられたページレイアウト座標が、図１１７に示された、現在プロキシブラウザの仮想スクリーン１０２０８にマッピングされているウェブページレイアウト１０２０６の部分１０２０６Ａに一致するかどうかを確かめるためにテストを行う。一致しない場合、関数１１５３８は、そのコマンドに関連付けられたレイアウト座標を含むレイアウトの新しい部分１０２０６Ｂまで仮想スクリーンをスクロールする。
【０３６９】
関数１１５４０は、受信されたスクリーンイベントのページレイアウト座標に対応する仮想スクリーン座標を計算する。そして、あたかもユーザが仮想スクリーン自体に於ける対応する仮想スクリーン座標でクリックしたかのように、例えばリンクのクリック等のイベントにそれが対応出来るように、関数１１５４２は仮想スクリーン座標と共に入力スクリーンイベントをブラウザのイベント待ち行列にセットする。
【０３７０】
図１１６は、図１１５及び１１７に図示されたページレイアウトキャッシュスキームをサポートするために使用可能な薄型クライアントコードの一部に関する高度に簡略化された擬似コード記述である。
【０３７１】
薄型クライアントがページレイアウトの表示リストを含むダウンロードストリームを受信開始する場合、関数１１６０２によって、関数１１６０４及び１１６０６が実行される。
【０３７２】
関数１１６０４は、ビューウインドウ（例えば、図１１７に図示されたビューウインドウ１０２１０Ａ）のマッピングをページレイアウトに関連して設定し、次に、そのマッピングに基づいて現在のクライアント側の表示倍率を計算する。
【０３７３】
関数１１６２０は、現在のクライアント側の倍率を使用して、現在のビューウインドウ内に適合するダウンロードされたページレイアウトの任意の部分を表示する。このプロセスは、関数１１６２２乃至１１６３０を含む。
【０３７４】
関数１１６２２は、現在のクライアント側の倍率に関する関数であるフォントサイズを用いて、現在のビューウインドウ内に発生する各文字列要素を表示する。それが実行され場合、そうした文字が表示されるピクセルサイズが変化する際に、必要に応じて、それがフォントのヒンティングによる不均一な影響から生じる可能性のある、文字の相対的なサイズに於ける任意の不均一な変更に対して調整を行う。コンピュータスクリーン上でのテキスト表示と、さらに高解像度で印刷される際の該テキストの外観との間のＷＹＳＩＷＹＧ通信を提供するために、従来から使用されている技術に類似した、例えば文字間の間隔の変更など、不連続及び不均衡を補う技術を使用することによって、関数１１６２２はこれを実行する。以前表示されたサイズとは異なるサイズを有するフォントビットマップが要求される場合、そうした異なるサイズの文字に対するフォントビットマップに対して、薄型クライアント上の記憶装置からアクセスすることと、ネットワークフォントサーバからアクセスすることと、フォントアウトラインから必要なサイズでラスタ化することの何れかを行うことが出来る。
【０３７５】
関数１１６２０によって生成された表示が、ビットマップ画像１０８１８が縮小された倍率とは異なる倍率の場合、関数１１６２４によって、関数１１６２６乃至１１６３０が実行される。これらはプロキシサーバに対して、ビューウインドウ内に全体的又は部分的に存在する全画像を新しい倍率で再び拡大／縮小し、サブピクセル最適化するように要求する。その後、同一画像のビットマップは、そうした画像に対する一時的な表示を提供するために、薄型クライアント上に保存、表示された、以前縮小されたサブピクセル最適化画像１０８１８からローカルに再び拡大／縮小される。そして、元のサイズから再び拡大／縮小され、要求された画像、及び、ウェブページに関連付けられたより高い解像度のビットマップが、プロキシサーバから薄型クライアントにより受信された場合、それらは表示スクリーン上の適切な位置に描画される。
【０３７６】
幾つかの実施形態に於いて、ユーザが表示のズームを変更する場合、新しい倍率でスクリーン上のページの部分に対応する任意の画像のビットマップは、適切にサブピクセル最適化された画像がダウンロードされるまで、ユーザにそうした画像の一時的な表示を提供するために、薄型クライアント上に生成された画像に関する迅速であるが粗い表現で表示される。新しい倍率が以前ダウンロードされたビットマップの倍率の整数倍である場合、そうした迅速な表示を比較的生成し易い。ビットマップ倍率の整数倍ではない場合、多くの方法の内、任意の方法で一時的な表示を生成することが出来る。例えば、それらは図１２乃至５３に関して上述された方法の内一つの方法で生成されたサブピクセル最適化された画像になり得る。ソース画像が出力画像に比して低解像度である場合でさえも、これらの方法に記載された基本的な手順を適用することが出来る。さらにコンピュータ処理的に単純な方法は、整数の換算比を有する画像として、及び、以前の画像に対して描画されることを目的とする適切に拡大／縮小された画像よりも多くの空間を占めないように、適切な縮尺と同一、又は、それより小さなサイズで切り取られた画像、又は、拡大／縮小された画像として、以前の画像を表示することである。
【０３７７】
ユーザがプロキシブラウザに送信されるスクリーン入力を生成する場合、関数１１６３２乃至１１６３６は、その入力の薄型クライアントスクリーン座標を、対応するページレイアウト座標に変換する。そして、スクリーン入力及び対応するページレイアウト座標がプロキシブラウザにアップロードされる。次に、プロキシブラウザは図１１５に関して上述された関数１１５３４乃至１１５４２を使用して、そうした入力に対応する。これにより、あたかもユーザがプロキシブラウザの仮想スクリーン上のウェブページの対応する部分でクリックしたかのように、プロキシブラウザがそうしたスクリーン入力に対応する。
【０３７８】
ユーザがウェブページのコンテンツに関連してより迅速にスクロール、及び／又は、ズームを行うことが出来るように、例えば図１１５乃至１１７に関して上述したような、薄型クライアントが現在スクリーン上に表示されているウェブページの部分よりも多くの部分を保存可能なキャッシングスキームを使用することが出来る。このことが特に当てはまるのは、薄型クライアントがプロキシサーバに対して比較的低い回線容量を有する場合である。
【０３７９】
この出願の時点で一般的に利用可能な現在のデジタル携帯電話通信速度に関連した回線容量と同程度に低い回線容量を使用した場合でさえ、ウェブの比較的迅速なブラウズを可能にするために、ここで記載したそうしたキャッシングスキームに関する実施形態を実行することが出来る。これは、通常、殆どのウェブページに含まれる画像を除く全コンテンツを、３０００バイト、又は、それ未満に適合するように圧縮することが出来るからである。それ故、現在のデジタル携帯電話の通信速度で、殆どのウェブページのテキスト部分全体を数秒でダウンロードすることができ、テキストの最初の部分をさらに短い時間で描画することが出来る。言うまでもなく、画像のダウンロードにはより多くの時間を要する可能性はあるが、ウェブページの最初の画像の内、大型画像以外は、一般的に数秒以内で表示することが出来る。そして、より高速の通信回線でこの遅延を大幅に低減することが出来る。
【０３８０】
図１１８乃至１２０は、仮想的なウェブブラウズ環境に於いて使用可能であるが、小型スクリーン上でウェブをブラウズする際に特に有用である、本発明に関する特徴を図示したものである。これは、例えば、上記に於いて議論した薄型クライアントコンピュータなどの小型スクリーン装置上での使用を含む。本発明のこれらの特徴は、ウェブページの選択された部分へのズームイン又はズームアウトを含んでいるので、ここで説明したレイアウトキャッシングスキームを使用することによって、薄型クライアントコンピュータ上で迅速に動作させるために実行することが出来る。
【０３８１】
図１１８は、６４０×４８０の仮想解像度でレイアウトされ、その後、３２０×２４０スクリーン上で表示するために縮小され、サブピクセル最適化された、標準的なウェブページの図を示している。視力の良い人であれば、殆どの人が通常ハンドヘルドコンピュータを使用する距離でそうしたコンテンツを読み取ることが出来る。しかし、より大きなサイズで表示される場合には、殆どのウェブページのコンテンツをさらに容易に読み取り可能にすることが出来る。殆どのウェブページがマルチコラムでレイアウトされているので、多くの場合、ユーザが読み始めたいと考えるコラム部分の最上部に表示を迅速にズーム可能であることが好ましい。ユーザがズームされたビューで表示スクリーンの最上部付近に表示したいと考える垂直方向の位置に、所望のテキストコラムを越えて、ポインティングデバイス１１９０２をドラッグすることによって、ユーザはこれを実行することができる。表示がこの種類のズームを実行するモードの状態である場合、図１１９に図示された種類の水平線形ドラッグによって、その表示がスクリーンの幅に適合するように、ドラッグによって示されたウェブページレイアウトの幅を拡大／縮小する。図１１９に図示された例に於いて、このユーザ入力によって、図１２０に図示されたように、その表示がズームされる。
【０３８２】
また、ユーザインターフェースによって、ユーザはスクリーン上に図示されたウェブページレイアウトに於ける領域の周囲の選択ボックスをドラッグすることが可能となり、ウェブページに於いて選択された領域がスクリーンに適応するように、システムがウェブページの表示をズームすることが好ましい。
【０３８３】
また、そうしたドラッグに於いて、ユーザがスクリーンの所定の端部に関連付けられた境界を越えて、ポインティングデバイスをドラッグ可能であることが望ましく、これが実行される場合、これに対応して、そうしたドラッグの開始として、スクリーン内に全体的に適合するには大き過ぎる、又は、不適切に位置づけられているウェブページレイアウト内で、幅、高さ、又は、領域に適合させるためのズームをユーザが実行することを選択可能にするために、スクリーン上に表示されたウェブページの部分がスクロールするそうしたドラッグによって、大き過ぎてドラッグ中に表示される倍率でスクリーン上に適合出来ないレイアウトの部分が選択される場合、テキスト及び画像が表示されるサイズを低減するために倍率を変更する。
【０３８４】
レイアウトに於ける選択された幅、高さ、領域がスクリーンに適合するように拡大／縮小されるということは、その最大次元が、スクリーンの３分の２、及び、完全に対応する次元との間の範囲に分布するように拡大／縮小されるということを意味する。一般的には、そうした拡大／縮小によって、選択された長さ及び領域が、スクリーンの８０乃至９０％から完全に対応する次元の範囲まで分布する最大次元を有することが望ましい。
【０３８５】
図１２１乃至図１２８は、ズームクリックと呼ばれる本発明の特徴を図示している。この特徴によって、低解像度で見られるスクリーン、極めて小さなスクリーン、又は所望のスクリーン位置に関連して正確に容易に配置出来ないポインティングデバイスと共に使用されるスクリーン内で、ユーザがより簡単に、且つ、正確にアイテムを選択することが出来る。これが特に有用であるのは、携帯電話サイズのスクリーン、ポインティングデバイスとして指を使用するタッチスクリーンデバイス、及び／又は、ポインティングデバイスを正確にセットすることが困難な走行中の車などの環境で使用されるタッチスクリーンデバイスを取り扱う場合である。
【０３８６】
ズームクリックに於いて、ユーザがスクリーンに於ける所定の位置でクリックダウンする場合、ユーザがクリックしたスクリーンの部分が拡大された縮尺で表示される。その後、ユーザは、所望の位置にポインティングデバイスが位置するまで、この拡大された表示に於いて、押下されたポインティングデバイスで自由にナビゲートする。この時点で、ユーザはポインティングデバイスの押下を終了し、解除することができ、これにより、押下の解除に於ける現在の位置が、従来のグラフィカルユーザインターフェース（ＧＵＩ）のクリックに対応する目的の為に選択された位置として取り扱われる。
【０３８７】
ズームクリックを使用して、ダブルクリックを異なる方法で表現することが出来る。最も簡単な方法の一つは、単にズームクリック直後の素早い第２のクリック及び解除を記録し、ズームクリックをダブルクリックに変換するように、ズームクリックと同一位置に接近することということである。
【０３８８】
ズームクリックに関する他の実施形態では、異なって動作するが、好ましい実施形態によって、ズームクリックに於けるダウンクリック中の拡大図に於けるポインタの動きは、そうした拡大／縮小図に於ける通常のポインタナビゲーションと同一の割合で発生する。これは、例えば、表示解像度を２倍にするズームクリックに於いて、ユーザが他の場合に比して２倍のポインティング解像度を有することを意味する。また、ズームクリックモードでダウンクリックを維持する間にユーザがポインタを移動させると同時に、スクリーンの端部、又は端部付近に到達する場合、このモードでユーザがページ全体をナビデートすることが出来るように、画像がスクロールすることが望ましい。
【０３８９】
図１２１乃至１２８の例に於いて、２つ折りの携帯電話機／コンピュータ１２０Ｃが図示されている。この例では、携帯電話機が３２０×２４０全ピクセル解像度、及び、カラーサブピクセルアドレス指定能力を有することが想定されている。言うまでもなく、本発明の他の実施形態に於いては、他の解像度を使用することが出来る。使い易くするために、携帯電話機は、ユーザの指で操作可能なタッチセンシティブスクリーンを有すると仮定されている。他の実施形態に於いては、タッチパッド、消しゴム付きポインタ、マウス、ナビゲーションボタン、超音波ビジュアルタッチスクリーンポインタ位置検出装置など、他の種類のポインティングデバイスをズームクリックと共に使用することが出来る。
【０３９０】
図１２１は、図１１及び図１１０に示す「ｐｒｉｃｅｌｉｎｅ．ｃｏｍ」のウェブページと同一の画像を有する携帯電話機を図示している。
【０３９１】
図１２２は、ズームクリックモードで、ユーザが図１１０に関して議論したものと同一のテキスト入力フィールド１１０００を選択するために、スクリーン上にユーザの指１２１０２を押下しようとする場合に、何が起こるかを図示している。ユーザが自分の指をタッチスクリーンに接触させる際に、カーソルが置かれる正確な位置を前もって推定することは困難な場合が多い。ズームクリックがこれに対して役立つのは、任意の選択がなされる前に、タッチスクリーンを接触している指から生じるカーソル１７０の位置をユーザが確認することが出来るからである。また、それは、例えば図１２３に図示された所望のテキスト入力フィールド１１００など、ユーザが所望のリンクや制御の上にカーソル１２２０４を位置付けすることを容易にする、より大きな表示尺度のスクリーンを図示している。
【０３９２】
ユーザが図１２３に図示された位置に於けるカーソルを備えたタッチスクリーンから、指を離す時点で、図１２４に図示されているように、上述の図１１１に於いてポップアップキーボードが現れる場合と同様に、ポップアップキーボード１１１０２が現れる。
【０３９３】
図１２５に図示されているように、ズームクリックモードで、ユーザが、ポップアップキーボード１１１０２に於いて所望の文字（この例では「ｂ」）に接触しようとする場合、接触されたキーボードの部分の画像が大きく拡大される。図１２５に図示された例に於いて、ユーザは最初にタッチスクリーンを押下した時点では、カーソル１２２０４を正確に所望の位置に位置付けていない。ユーザは、図１２６に図示された位置にカーソル１１１０２を位置付けるために、指１２２０２をドラッグすることによって、ズームクリックモードに於けるこの問題を容易に修正することが出来る。その後、ユーザがスクリーンから指を離す場合、スクリーン画像は通常の縮尺に戻るが、これにより、次の文字がキーボード内の何処に位置しようが、ポップアップキーボード１１１０２の全体が表示されて、次の文字を迅速に選択することが可能となる。
【０３９４】
図１２７に図示されているように、図１２６に於ける選択された文字「ｂ」は、ポップアップキーボードのテキスト入力フィールド１１１０４に入力されたように表示される。      
【０３９５】
ユーザが、図１２５乃至１２７に図示された処理によって文字の選択を継続する場合、ユーザは、「Ｅｎｔｅｒ（入力）」キーの選択を受けて、テキストの全文字列を入力することが出来るようになり、これにより、図１２８に示されたように、ウェブページの所望の位置に所望のテキストが入力される。
【０３９６】
本発明の多くの実施形態に於いて、ズームクリックで使用されるズームは、スクリーン上の全部又は一部に以前表示されたビットマップを、例えば２倍、３倍などの整数倍で拡大することを含む。これにより、比較的処理能力の低いプロセッサを使用した場合でも、そうしたズーミングを実質的に瞬間に実行することが出来るので、ズームクリックは極めて速いユーザインターフェースとなる。
【０３９７】
図１２９乃至１３７は、ウェブブラウザのユーザが、実質的により大きな倍率でライン境界を越えて、リフロー、又は、再レイアウトされるウェブページからテキストの部分を選択することが出来る発明の特徴を図示している。そうしたテキストのリフローは、小型スクリーンを有する表示上で特に有用であるが、これは、テキストのリフローによって、選択されたウェブテキストが、さらに大きなフォントで表示され、同時に、そうしたテキストの全ラインがそうしたスクリーン内に適合することが出来るからである。これにより、そうしたテキストの連続するラインを読むために、繰り返し水平方向にスクロールを進めたり戻したりする必要がなく、そうしたラインを素早く読むことが出来る。
【０３９８】
小型スクリーン表示の解像度がどの程度高解像度であるかに関わらず、表示が比較的接近して保持されていない限り、人間の目では比較的大きな解像度でそれが表示するもののみを視認することが出来る。本発明のこの特徴によって、ウェブテキストを、比較的大きな倍率で表示の幅内に適合するラインを越えて一塊として表示することが出来る。例えば、それにより、対角４インチスクリーンを有するハンドヘルドコンピュータのユーザは、５、６フィート離れて立っている人のグループが見るのに充分な大きさの縮尺でテキストを表示することが出来る。同様に、それにより、ユーザは携帯電話や腕時計サイズの表示を顔の近くまで保持することなく、これらの表示上でテキストを視認することが出来る。また、スクリーンから比較的遠くに離れた人や、視力が正常ではない人に対して、ウェブテキストを表示するために、通常のサイズのコンピュータ表示スクリーンと共にそれを使用することが出来る。
【０３９９】
図１２９は、本発明の該特徴に従って、ウェブテキストを再表示するためにクライアントコンピュータで使用可能なプログラム１２９００に関する、高度に簡略化された擬似コード記述を示している。
【０４００】
当然のことながら、本発明の該特徴はクライアントコンピュータでの使用に制限されない。事実、図１４０乃至１４１に関して後述する種類のシステムに於いて見られるように、ウェブブラウザ以外のアプリケーションによって生成されたビジュアル出力を見る際に、変更を加えて、本発明の該特徴を使用することが出来る。
【０４０１】
多くのウェブページは、異なるコラムにテキストをレイアウトするように、即ち、そうしたレイアウトに関連して異なる水平方向の位置にテキストをレイアウトするように設計されている。ウェブページは、テーブルやフレームの使用を含む複数の異なる方法で、そうした異なる所望の水平置換を示すことが出来る。好ましい実施形態に於いて、異なる所望の水平置換に関するそうした指示を反映するために、そうした複数コラムレイアウトで、ウェブページのテキストを表示するオプションを有するウェブブラウザを用いて、そうしたテキストのリフローが使用される。ユーザが、新しい倍率で１つのコラムに於けるテキストのリフローに対して、そうしたマルチコラムウェブページレイアウトの領域を選択する場合、関数１２９０２によって、関数１２９０４乃至１２９０８が実行される。
【０４０２】
本発明の幾つかの実施形態に於いて、ユーザがより大きな縮尺でリフローしたいと考えているウェブページの幅の部分を越えて、例えば図１３０に図示されたスタイラス１１９０２等のポインティングデバイスをドラッグすることによって、そうした選択を実行する。現在議論している方法によって、テキストをライン境界を越えてリフローすることができ、テキストの選択されたコラムをさらに大きなフォントで表示し、同時にそうしたテキストのライン全体をスクリーン内に適合させるという点を除いて、これは、図１１９に関して既に議論した内容と同様である。
【０４０３】
図１２９の関数１２９０４は、選択されたレイアウト領域内に実質的に存在する、現在のウェブページのレイアウトに於ける全ての文字列と対応する下線部（即ち、リンクとしてのテキストのラベリング）を選択する。
【０４０４】
図１３１は、図１１７の下半分に示された図に類似した、図１３０に図示されたウェブページのレイアウト１０２０６Ａの最上部を図示している。図１３１に於いて、破線の矩形１３１０２は、図１３０に於いてユーザによって選択されたコラムに対応するウェブページのレイアウトの部分を表している。
【０４０５】
本発明の幾つかの実施形態に於いて、かなりの部分、例えば、その長さの３分の２、又は、４分の３が、ユーザによって選択された領域内に適合する場合、文字列は選択された領域内に存在すると見なされる。例えば、図１３０に於いて、ユーザは同図に表示されたスクリーンの右側部分でテキストを選択しようとしていた。しかし、図１３０の例では、ユーザは、スタイラスのドラッグで、意図したコラムの幅を正確に選択することが出来なかった。それにも関わらず、関数１２９０４は、選択された領域内に実質的に存在する全文字列を選択するので、あたかもユーザが意図したコラムを正確に選択したかのように、テキストリフローが実行される。
【０４０６】
図１３２は、選択された領域内に含まれる、図１３１に図示されたウェブページのレイアウトに於ける文字列の最初の部分を図示している。この図に於いて、下線部はリンクに対応するテキストの部分を示している。
【０４０７】
選択された領域の文字列の全てが選択された時点で、関数１２９０６は、レイアウトに於ける接近性又は他の特質によって、それらが同一パラグラフの一部であることを示す、１つ又は複数の連続する文字列の内、任意のグループをラベル付けする。これは、パラグラフブラケット（Ｐが付された括弧）１３２０２によって、図１３２に図示されている。
【０４０８】
図１３２に図示されたように、この方法は、パラグラフである文字の全グループ分けを検出しない可能性があるが、そのテキストに対応するＨＴＭＬを参照する必要なく、それらの多くを検出するのである。記載されている本発明の実施形態に於いて、そうしたＨＴＭＬがプロキシサーバに保存されるが、これは、そのようなアクセスがクライアントコンピュータ及びプロキシサーバ間の通信に関連付けられた遅延が必要となることを意味している。他の実施形態に於いて、特に、クライアントコンピュータが常駐するフルブラウザを有する実施形態、又は、プロキシコンピュータへの高いアクセス回線容量接続を有する実施形態に於いて、選択された文字列が如何にしてパラグラフに於いてグループ化されるべきかを、より正確に決定するために、ＨＴＭＬコードへのアクセスを使用することが出来る。他の実施形態に於いて、プロキシサーバにダウンロードされたレイアウト情報は、ウェブページのＨＴＭＬ内に含まれるパラグラフ境界に関する任意の情報を有することが出来る。幾つかの実施形態に於いて、そうしたリフローされたテキストを表示する薄型クライアント上ではなく、プロキシサーバ上で、そうしたテキストのリフローを実行することができ、これにより、プロキシサーバは、ウェブページの表示に含まれたパラグラフのグループ分けに関する任意の情報に直接アクセスすることが出来る。
【０４０９】
選択された文字列がパラグラフにグループ化された時点で、関数１２９０８は、表示スクリーン（又は、画像が表示スクリーン全体よりも小さい領域に表示されている場合には、表示ウインドウ）の幅を越えて、選択された拡大倍率を使用して、各パラグラムのテキストをリフローする。
【０４１０】
このテキストリフロー処理は、図１３２の最上部に於ける文字列が新しい倍率でレイアウトされている図１３３に図示されている。図示されている例に於いて、図１３０のテキストは、同一スクリーン内に於いて元のサイズの２倍でリフローするために選択されている。薄型クライアントのユーザインターフェースによって、ユーザが適度なフォントサイズから極端に大きなフォントサイズに及ぶ、選択されたテキストリフロー関数を用いて使用される、複数の異なる倍率を選択可能であることが好ましい。
【０４１１】
図１３３に於いて、下線部は図１３２の下線部とは異なるものを表示するために使用されている。図１３３に於いて、図１３２に於ける通常のレイアウト文字列から生じた各ライン上のテキストは、連続するアンダーラインで図示されている。図１３２に於ける異なる文字列から生じる、図１３３に於ける同一ライン上のテキスト部分の間に於ける下線部の間隔は、それらの違いをより簡単に見ることが出来るように誇張されている。
【０４１２】
図１３３に於いて、ラインの境界を越えて一塊になっている図１３２に図示された元のレイアウトから生じる個々の文字列の全てが、１つのライン上の部分から、次のライン上の継続する部分まで、矢印によって示されている。
【０４１３】
図１３４は、図１３０及び１３１に図示された元のレイアウトの選択された文字列が、薄型クライアントのスクリーン上に約２倍のサイズでリフローされた時点で、どのように見えるかを示す概略図である。図１３４を参照して分かる通り、ウェブテキストはそうしたテキストリフローによって、遠くから格段に見易くなる。２倍の代わりに、４倍又は６倍で同一テキストをリフローすることによって、表示スクリーンから相当離れた場所にいるユーザに対して、同一ウェブコンテンツを表示することが可能になる。
【０４１４】
図１３５乃至１３７は、リフローされるテキストの部分をユーザが選択可能な他の方法を図示している。
【０４１５】
図１３５は、他のテキストの一部分、又は、複数部分が侵入するテキストの中央コラムを有するウェブページの部分を図示している。
【０４１６】
図１３６は、ウェブページ全体のレイアウトの縮小ビューをユーザがどのように取得したかを図示している。多くの実際の実施形態に於いては、小さ過ぎるので個々の文字としてそうした縮小ビューで表示することが出来ないテキストの部分を示すために、テキストグリーキングが使用される。ウェブページ全体のレイアウトが薄型クライアント自体に保存された、図１１５乃至１１７に関して上述されたような、薄型クライアントコンピュータ上で、そうした縮小ビューを迅速に生成することが出来る。
【０４１７】
図１３６に於いて、多角形領域に於ける角部でウェブページの表示をクリックすることによって、ユーザが拡大ウェブページビュー上のそうした領域を定義可能なモードを、ユーザが選択している。これが実行される時点で、何れのテキストがリフローされるかを選択するために、選択された領域が図１２９に図示された関数１２９０４によって使用される。
【０４１８】
図１３７は、選択されたテキストがリフローされ、表示された時点で、選択されたテキストがどのように見えるかを図示している。
【０４１９】
図１３８乃至１３９は、図２に関して上述されたフォントサーバ２３０をより詳細に説明している。
【０４２０】
図１３８に於いては、複数のクライアントブラウザ２００が存在し、各クライアントブラウザが、同一のプロキシサーバ２１０を介して１つ又は複数のサーバ２２０からのコンテンツにアクセスし、同一フォントサーバ２３０からのフォントにアクセスするという点を除いて、図１３８は図２に対応している。
【０４２１】
これは、各薄型クライアントブラウザで使用するために販売され、ライセンスを受け、又は、頒布されたソフトウェアが、クライアントが有していないフォントを同一フォントサーバ２３０から検索するようにプログラムされ、同一プロキシサーバ２１０を介してウェブ要求を実行するようにプログラムされているからである。言うまでもなく、本発明の該特徴に関する他の実施形態に於いて、薄型クライアントは、それらの地理的位置、又は、インターネットサービスプロバイダなどの要因に基づいて、一般的な複数のプロキシサーバの内、何れのプロキシサーバを使用すべきかを選択するようにプログラムされている。フォントを要求、受信する一般的な複数のフォントサーバの内、何れかのフォントサーバを選択するために、薄型クライアントは同様の内容を検討することが出来る。
【０４２２】
図１３９は、図１３８に図示された種類のフォントサーバ上で使用可能なプログラム１３９００の高度に簡略化された擬似コード記述である。また、通常のブラウザコンピュータに加えて、ウェブブラウザ以外のアプリケーションを実行するコンピュータに対してフォントを供給するために、このフォントサーバを使用することが出来る。
【０４２３】
フォントサーバが、コンピュータから指定されたフォントの文字に対するＨＴＴＰ要求を受信する場合、関数１３９０２によって、ステップ１３９０４乃至１３９２２が実行される。
【０４２４】
図１３９に図示されたフォントサーバコードの特定の実施形態は、指定されたサイズで指定されたフォントに対して設計された各文字を別個のＨＴＴＰ要求で特定するプロトコルと共に使用するために設計されている。それは、所望のフォント、フォントサイズ、及び、文字を、ＵＲＬパス名の一部として指定する。言うまでもなく、他の実施形態に於いては、フォントサーバによって、ＨＴＴＰ要求が複数の文字、複数のフォントを指定可能であり、そして／又は、ＵＲＬパス名以外でフォントを指定することが可能である。
【０４２５】
各文字フォント形状を別々に要求するシステムに於いて、ＨＴＴＰプロトコル１．１又はそれ以降のプロトコルが使用されることが好ましいが、これは、そうした各要求を処理するために別個の接続をオープン、又は、クローズする必要なく、そうしたプロトコルによって、複数のＨＴＴＰ要求を所定のクライアントコンピュータからサーバによって処理することが出来るからである。
【０４２６】
図１３９に図示された本発明の実施形態に於いて、フォントサーバが、要求に於いて指定されたＵＲＬパス名に一致するフォントビットマップを現在保存していると判断する場合、関数１３９０４によって、関数１３９０６が、ＵＲＬ要求がなされたネットワークアドレスに対するＨＴＴＰの応答に於いて、そのフォントを送信し、その後、関数１３９０８が関連するアカウントに処理を命令する。そのようにダウンロードされたフォントは、フォントビットマップ、又は、フォントアウトライン記述の何れかであっても良い。
【０４２７】
そうしたアカウントの命令は、本発明のすべての実施形態に於いて使用される訳ではない。それが使用される実施形態の幾つかに於いて、命令されたアカウントは、フォントが送信されるコンピュータに関連するアカウントである。他の実施形態に於いては、命令は、そうしたフォントの仕様を含んだウェブページに関連付けられたグループのアカウントに対して行われる。さらに他の実施形態に於いては、命令は、上述した種類のプロキシサーバに関連付けられたアカウント、又は、そうしたプロキシサーバのサービスのユーザに対して行われる。
【０４２８】
要求されたフォントがフォントサーバの記憶装置に存在せず、要求されたフォントがフォントサーバの対応するアウトラインフォントを有するビットマップである場合、関数１３９１０によって、関数１３９１２乃至１３９２２が実行される。
【０４２９】
関数１３９１２は、ＨＴＴＰ要求のフォントパス名によって示されたサイズ及び実行可能な変換などの属性を有するビットマップを生成する。この関数は、要求されたフォントのパス名によって、サブピクセル最適化バージョンのフォントが望まれていることが示されたかどうかを決定することを含む。それが示された場合、関数１３９１４及び１３９１６は、好ましくは、図５５乃至９６に関して上述された非線形カラーバランス法を使用して、サブピクセル最適化バージョンのフォントを生成する。
【０４３０】
フォントビットマップが生成された時点で、関数１３９１８は、ネットワークを介して、要求中のアドレスに対するＨＴＴＰの応答に於いてビットマップを送信する。関数１３９２０は、要求に於いて指定されたパス名に対応するアドレスで、フォントビットマップをキャッシュする。関数１３９２２は、関数１３９１０に関して既に議論したように、命令が実行される実施形態に於いて、処理に関連するアカウントに命令する。
【０４３１】
図１４０は、リモートコンピュータ１４００上で起動する１つ又は複数のアプリケーションによって、薄型クライアントコンピュータ２００が、スクリーン出力として生成されたテキスト及び画像に対応するデジタルコンテンツを表示することが出来るように、本発明の特定の特徴を使用することが出来ることを図示している。そうしたアプリケーションは、ウェブブラウザ、表計算、ワードプロセッサ、データベースプログラム、又は、仮想スクリーン表示を生成可能な以如何なる種類のソフトウェアであっても良い。
【０４３２】
リモートコンピュータは、リモートコンピュータのオペレーティングシステム１４００４のディスパッチテーブル１４００８に於けるフックを含む、リモートスクリーン生成プログラム１４００６を含む。これらのフックは、所定の表示解像度でスクリーンに対して、テキスト、形状、ライン、制御オブジェクト、ビットマップを描画するために、一つ又は複数のアプリケーション１４００２によって実行されたオペレーティングシステムに対する呼び出しを遮る。幾つかの実施形態に於いて、そうした描画コマンドによって、コンテンツがリモートコンピュータに関連付けられたスクリーン上に実際に表示され、その他の実施形態に於いては、リモートコンピュータにはスクリーンが存在しないので、そうした描画コマンドが仮想スクリーンに対して実行される。以下のテキストに於いて、簡略化するために、仮想スクリーンとして、所定のクライアントコンピュータ上でグラフィック出力を表示し、ユーザ入力を受信しているとこれらのアプリケーションが判断する映像空間について言及する。
【０４３３】
アプリケーション１４００２の１つがオペレーティングシステムに対して表示要素を描画するように要求する場合、リモートスクリーンジェネレータの対応するルーチン１４０１０への対応する呼び出しを行うために、オペレーティングシステムのディスパッチテーブルに於けるフックの一つによって、その呼び出しが遮られる。図１０２、及び、１０６Ａ乃至１０６Ｃに関して上述した方法と同様の方法に於いて、これにより、図１０２及びそれに続く図に関して上述された表示リスト１０２１２と実質的に類似した、ダウンロード表示リスト１０２１２Ａが生成される。そうしたシステムに関する多くの実施形態に於いて、ビットマップ描画ルーチンの呼び出しによって、上述の種類の縮小及びサブピクセル最適化された画像がダウンロード用に生成され、測定文字列ルーチン及び文字列描画ルーチンへの呼び出しは、８ピクセル／ｅｍ又はそれ未満と同様に小さなサイズのフォントを含む、サブピクセル最適化されたフォント又は他のアンチエイリアス処理されたフォントの置換及びフォントマトリクスを含む。
【０４３４】
図１０２に図示された制御１０２１４乃至１０２１８に対応する、ズーム、スクロール、及び、仮想レイアウト制御１４１２は、仮想スクリーンへの薄型クライアントのビューウインドウのマッピングを制御し、したがって、アプリケーションによって仮想スクリーンに描画された要素が、ダウンロード表示リスト１０２１２Ａに描画され配置される表示倍率を制御する。これが画像ビットマップのサブピクセル最適化と、図１０６Ａ乃至１０６Ｃに関して上述された種類のフォント置換とを含むことが好ましい。
【０４３５】
ダウンロード表示リストが所定の仮想スクリーンに対して生成された時点で、図１０９Ａ乃至１０９Ｃに関して上述された方法と同様の方法で、後にそのスクリーン上にダウンロード表示リストを描画する、対応するクライアントコンピュータにダウンロード表示リストが圧縮され、ダウンロードされる。
【０４３６】
本発明の幾つかの実施形態に於いて、仮想スクリーンに対する個々の描画は、薄型クライアントにダウンロードされた対応する描画コマンドを有する。仮想スクリーンへの対応する変更に応答して、薄型クライアントスクリーンに対する僅かな変更を実行可能な速度を速めるために、これを利用することが出来る。
【０４３７】
図１４０に図示された実施形態に於いて、スクリーン位置に関連付けられたユーザ入力が、薄型クライアントからリモートコンピュータにアップロードされ、スクリーン位置は、薄型クライアントのビューウインドウと仮想スクリーン間のマッピングを反映するために、スクリーン座標を変換させる。これが実行される時点で、そうしたイベントは。それらの変換されたスクリーン座標を用いてリモートコンピュータオペレーティングシステムのイベント待ち行列にセットされ、これにより、関連するアプリケーション１４００２は、あたかもそれがリモートコンピュータの対応する仮想スクリーン上に入力されたかの様に、そのイベントに対応する。
【０４３８】
例えば、ラップリンク社（所在地：ＺＩＰコード９８０１１、アメリカ合衆国  ワシントン州  ボセル  ノースクリークパークウェイ  １８９１２  スイート１００）のＬａｐＬｉｎｋ、又は、シマンテック社（所在地：ＺＩＰコード９５０１４  アメリカ合衆国  カリフォルニア州  クパティーノ  スティーヴンスクリークブルバード  ２０３３０）のｐｃＡｎｙｗａｒｅ等の、スクリーン共有アプリケーションによって使用される技術の多くを、図１４０に図示された種類の本発明の実施形態と共に使用することが出来る。実際、同図に於けるリモートコンピュータが自身のスクリーンを有する場合、図１４０に図示された実施形態を、クライアントコンピュータとリモートコンピュータ間でのスクリーン共有を実行するために使用することが出来る。
【０４３９】
当然のことながら、クライアントコンピュータが十分な演算能力を有する実施形態に於いては、クライアント及びリモートコンピュータは、ピアツーピアの方法で動作可能である。リモートコンピュータは、専用のアプリケーションサーバコンピュータであっても良いし、例えば、デスクトップコンピュータ、ラップトップコンピュータ、又は、タブレットコンピュータを含むパーソナルコンピュータ等の如何なる種類のコンピュータであっても良い。
【０４４０】
図１４１は、上述した本発明の特徴に従って、そうしたアプリケーションによって生成されたスクリーン表示が、縮小、及び／又は、サブピクセル最適化されるように、１つ又は複数のアプリケーション１４００２によって生成されたオペレーティングシステムの呼び出しを遮るために、コンピュータのオペレーティングシステム１４００４のディスパッチテーブル１４００８に於いてフックを用いている点で、図１４０に図示された実施形態に幾分類似している本発明の実施形態を図示している。図１４１の実施形態が図１４０に図示されたクライアントサーバの実施形態と異なるのは、図１４１に図示されているように、それが１つのコンピュータシステム１４１００上で動作するように設計されている点である。それらの出力があたかも高解像度を有する仮想スクリーンに表示されているかのように、修正することなく、そうしたプログラムを実行するために、低解像度スクリーンであるが、デスクトップアプリケーションの起動に十分なパワーを備えるコンピュータ上で、このシステムのプログラミングを使用することが出来る。また、より大型のスクリーンの一部に、アプリケーションの出力スクリーンに関する縮小版を描画するために、それを使用することが出来る。 
【０４４１】
この実施形態に於いては、それらの出力がスクリーン１０２２０Ａ上に表示される解像度に比して、より大きな仮想解像度で、スクリーン上で動作していることがアプリケーション１４００２に報告される。そうしたアプリケーションが、スクリーンに対して要素を描画するために、オペレーティングシステムに対する呼び出しを行う場合、ＯＳディスパッチテーブル１４００８にセットされたフックによって、拡大／縮小されたサブピクセル最適化スクリーンジェネレータプログラム１４００６Ａの一部分１４０１０Ａ内の対応する描画ルーチンが起動される。この置換描画ルーチンは、上述されたように、縮小、及び／又は、サブピクセル最適化されたビットマップの作成を含む、仮想スクリーン表示リスト１０２０６Ｂに対応する要素を描画する。また、それによって、現在のビューウインドウ１０２１０Ｃ内に適合する仮想スクリーンの部分に描画されたそうしたスクリーン要素の任意の部分が、オペレーティングシステムで描画コマンドを呼び出すこと、又は、それら自身をそのスクリーン上に直接描画することによって、コンピュータ１４１００の表示スクリーン１０２２０Ａ上に、縮小、及び／又は、サブピクセル最適化された方法で即座に表示される。
【０４４２】
アプリケーションプログラムが測定文字列コマンドに対してオペレーティングシステムを呼び出す際に、そのコマンドも同様に遮られ、これにより、その呼び出しは、図１０６Ａの関数１０６０８乃至１０６１８に関して上述された方法で、置換されたフォントサイズに対するフォントマトリクスを返す。
【０４４３】
コンピュータのスクリーンへのスクリーンイベント入力は、オペレーティングシステムのイベント待ち行列から抽出され、そうしたイベントがスクリーン上で生成されたスクリーン座標を、そうした変換を制御するために、その仮想スクリーンへのビューウインドウのマッピングを使用して、表示リストによって表現された仮想スクリーンのレイアウトに於ける対応する位置に変換するイベント位置スケーラに送られる。イベントの座標が適切に変換された時点で、イベントはオペレーティングシステムのイベント待ち行列に戻され、オペレーティングシステムによって、あたかもイベントが仮想スクリーン上に入力されたかのように、アプリケーションがイベントに対応する。
【０４４４】
図１４１に図示された種類の本発明に関する実施形態によって、コンピュータのユーザは、標準的なコンピュータアプリケーション１４００２によって生成されたスクリーン上で、それらのアプリケーションが、選択されたテキストリフローをサブピクセル最適化、縮小、ズーム、及び、実行する機能をサポートするべく設計されていない場合であっても、これらの機能を行うことが出来る。
【０４４５】
図示しない本発明の他の実施形態に於いて、コンピュータのオペレーティングシステムは、図１４１に図示された拡大／縮小されたサブピクセル最適化スクリーンジェネレータ１４００６Ａに図示された種類の機能性を含むように変更することが出来る。さらに本発明の他の実施形態に於いて、ブラウザプログラムを含むアプリケーションプログラム１４００２を、そうした機能性の全部又は一部を直接的にサポートするために変更することが出来る。
【０４４６】
図１４２は、例えば、同図に図示された薄型クライアントコンピュータ２００Ａ乃至２００Ｄなどの薄型クライアントコンピュータを、ワイヤレスネットワークを介して、インターネットコンテンツ、又は、アプリケーションプログラムにアクセスするために使用することが出来るように、図１０２及び１４０に図示された本発明の実施形態を如何にして使用することが出来るかを図示している。
【０４４７】
この図に於いて、コンピュータ２００Ａ乃至２００Ｄは、図１０２及び１４０に図示された薄型ライアントコンピュータ２００に対応する。コンピュータ２００Ａはハンドヘルドコンピュータである。薄型クライアントコンピュータ２００Ｂは、携帯電話機である。薄型クライアントコンピュータ２００Ｃは、腕時計型コンピュータである。薄型クライアントコンピュータ２００Ｄは、頭部装着型コンピュータ、又は、ポータブルコンピュータ用の頭部装着型ディスプレイである。これらの薄型クライアントコンピュータのそれぞれは、サブピクセルアドレス可能な表示を有することが出来る。
【０４４８】
本出願の出願時に於いて、本発明の殆どの特徴で使用するのに充分高い解像度を有するうした種類の各装置に対して、現在スクリーンを製造することは可能である。例えば、現時点で、２インチ又はそれ未満の対角長を有する３２０×２４０カラーＬＣＤ表示を製造することは可能である。現在、さらに高解像度を有する有機ＬＥＤ装置を製造することが出来る。近い将来、そうした小型スクリーンのコストは低下するはずであり、それらの利用可能性及び解像度は増大するはずである。
【０４４９】
図１４２に図示された薄型クライアントコンピュータの全ては、図１０２に図示された種類のリモートプロキシサーバコンピュータ２１０、又は、図１４０に関して図示された種類のリモートアプリケーションサーバ１４０００に関して上述された種類の情報を、送受信可能にするワイヤレストランシーバを有している。そうしたトランシーバは、ワイヤレスＬＡＮトランシーバ１４２０４と通信するためのワイヤレスＬＡＮトランシーバであってもよく、ワイヤレスインターネットトランシーバ１４２０２と通信するためのデジタル携帯電話ワイヤレストランシーバであってもよく、また、両方の種類のワイヤレストランシーバと通信するように設計されたトランシーバであることが望ましい。他の実施形態に於いて、例えば、Ｂｌｕｅｔｏｏｔｈ又は赤外線通信など、他の種類の無線通信を使用することが出来る。
【０４５０】
図１４２に図示されたリモートコンピュータ１４０００ＡＡ乃至１４０００ＡＣは、図１４０に図示されたリモートサーバコンピュータ１４０００に対応する。
【０４５１】
図１４２に図示されたリモートアプリケーションサーバコンピュータ１４０００ＡＡは、ラップトップコンピュータ、デスクトップコンピュータ、サーバコンピュータ、又は、リモートアプリケーションサーバコンピュータ１４０００として動作するようにプログラム可能な他の種類のコンピュータを表現している。サブピクセル最適化されたアプリケーションサーバ１４０００ＡＢは、そうしたクライアントに関連したＬＡＮ又はＷＡＮに接続された複数の薄型クライアントコンピュータ用のアプリケーションを実行するために設計されている、図１４０に図示された一般的な種類のリモートコンピュータである。リモートコンピュータ１４０００ＡＡ及び１４０００ＡＢは、プライベートローカルエリアワイヤレストランスミッタ１４２０４を介して、薄型クライアントと通信可能であるか、又は、数字１０２２２及び１４２０２によって示されているように、ワイヤレスインターネットを介して薄型クライアントと通信可能である。
【０４５２】
サブピクセル最適化されたアプリケーションサーバ１４０００ＡＣは、複数の薄型クライアントコンピュータ２００がインターネットを介して、数字１４２０２によって示されたワイヤレストランスミッションネットワークによって、アプリケーションを使用することが出来るように、直接的にインターネットに接続されている点を除いて、サーバ１４０００ＡＢに類似したアプリケーションサーバである。
【０４５３】
図１４２に於いて、図１０２に関して上述された種類のプロキシサーバ２１０は、ＬＡＮ又はＷＡＮ１４２０４に接続されていることが図示されている。例えば、これは、企業がインターネットに接続しないことを希望するウェブブラウズを処理しようとするプロキシサーバであっても良い。当然のことながら、例えば、商業的なプロキシ提供サービスを供給する企業によって運営されているプロキシサーバなど、他のプロキシサーバは、通常、図１４２に於いても同様に図示されたインターネット１０２２２に直接的に接続される。
【０４５４】
図１４２に図示されたシステムによって、実質、常に都合良く持ち運び可能な小型コンピュータは、ウェブページ及び殆どのアプリケーションプログラムの出力にアクセスし、表示することが出来る。本出願の出願時に於いて、例えば、図１４２に図示されたＬＡＮトランシーバ１４２０４などの比較的安価なワイヤレスＬＡＮトランシーバの回線容量は、ケーブルモデムに接続されたデスクコンピュータ上でそうしたデジタルコンテンツを見ることが出来る速さと略同様の速さで、図１４２に図示された種類の薄型クライアントが、ウェブコンテンツ又はアプリケーションプログラムの出力を見ることが出来る程、充分に高速である。そして、これは、ポケットの中、手首の上、又は、眼鏡の一部として持ち運び可能な機械であり、スイッチがオンの状態になって数秒以内にそうしたメディアにアクセス可能な機械装置である。
【０４５５】
本出願の出願時にアメリカで一般的に利用可能なデジタル携帯電話の回線容量に於いて、通常、殆どのウェブページのテキスト全体をダウンロードするためには数秒かかり、ウェブページの画像をダウンロードするには、さらに時間がかる。言うまでもなく、本発明の多くの実施形態は、テキストの一部が受信され次第、テキストの表示を開始し、ユーザはダウンロードされたページの一部を極めて迅速に見始めることが出来る。
【０４５６】
本出願時に於いて、数十万ビット／秒、又は、数百万ビット／秒の範囲で回線容量を提供可能な、新規のより高速なデジタル携帯電話システムが開発されている。そのような、より高速のシステムが一般的に展開されるようになった時点で、本発明のユーザは、ＤＳＬやケーブルモデム接続を介して、デスクトップ又はラップトップ上でウェブページにアクセスする場合と殆ど同じスピードと快適さで、ユーザが移動する殆どの場所で数秒以内にスイッチをオンの状態にすることが可能な小型のポータブルデバイス上で、ウェブページ及びアプリケーションスクリーンを読み取ることができ、やり取りすることが出来る。
本発明のユーザは、ＤＳＬ又はケーブルモデムを介してデスクトップコンピュータ又はラップトップコンピュータ上でアクセスしているかのように、移動先の大抵の場所でスイッチオンから数秒以内に使用され得る小型の携帯装置上で、ウェブページやアプリケーション画面を読んで相互に対話出来る様になる。
【０４５７】
図１４３乃至１４４は、図１０２に関して上述された種類のプロキシサーバ、又は、図１４０に関して上述された種類のリモートアプリケーションサーバコンピュータの何れかに対して、薄型クライアントとして機能することが出来る、ハンドヘルドコンピュータ２００Ａに関する２つの図を示している。
【０４５８】
図１４３に於いて、コンピュータは、使用するために設計された縦方向で図示されている。コンピュータ上のネイティブオペレーティングシステムは、フォント及びグラフィカルユーザインターフェース（ＧＵＩ）要素を縦方向で描画するように設計されている。これは、本出願の出願時に販売されたハンドヘルドコンピュータの多くが設計され、構築された方法である。例えば、今日、２４０×３２０全ピクセル解像度を有するサブピクセルアドレス可能スクリーンを有する、複数のそうしたハンドヘルドコンピュータが市場に存在する。また、これらのコンピュータの多くは、表示が意図された縦方向に位置する時に、水平方向に走るサブピクセルストライプを有する。
【０４５９】
残念ながら、そうした縦方向では、殆どの人がコンピュータの使用時に慣れており、且つ、殆どのウェブページが設計されている横方向の縦横比の種類を提供しない。更に、そうしたコンピュータが水平方向のサブピクセルストライプを有する場合、そうしたストライプは、垂直方向に於いて、サブピクセル解像度の全ての潜在的増加をもたらす。残念ながら、テキストの表示は、そうした垂直方向の解像度に於ける増加に比して、水平方向の解像度に於ける増加から、実質的に恩恵を受ける傾向がある。
【０４６０】
これらの全ての理由のために、そうした縦向きの機械を使用する本発明の多くの実施形態は、図１４４に図示されているように、そうした機械を９０度回転させた場合に、それらを使用するように設計されており、それ故、殆どのコンピュータスクリーンのレイアウトに関する縦横比にむしろ近い、横方向の縦横比を有しており、その結果、それらのサブピクセルは、テキストの表示に最も有用な水平方向の解像度に於ける増加を提供する。そうした多くの実施形態に於いて、上述の薄型クライアント２００は、横方向の機械装置として見られるために回転され、縮小フォント及び画像ビットマップが横方向で描画される縦方向の携帯情報端末（ＰＤＡ）である。サブピクセル最適化を使用するそうした実施形態に於いて、そうしたＰＤＡを使用するために設計された縦方向でピクセルが見られる場合に現れるサブピクセルの直交配置というよりは、そうしたピクセルが横方向で見られる場合に現れる各ピクセル内のサブピクセルの空間配置に対してサブピクセル最適化された画像、及び／又は、フォントビットマップを使用して、ウェブページが表示される。
【０４６１】
図１４５は、サブピクセル最適化を使用して、例えば、矩形、楕円、線、及び、曲線などの基本的な形状を描画する要求に対応するために、本実施形態の幾つかの特徴を如何にして使用することが出来るかを示す、高度に簡略化された擬似コード表記である。多くの異なる種類のアプリケーション、オペレーティングシステム、及び、薄型クライアントソフトウェアに於いて、そうした機能を使用することが出来る。
【０４６２】
図１４５の例では、図示された擬似コードは、他の使用方法の中でも、図１０９Ａに関して上述された矩形コマンド１０９１８の代わりに使用可能な矩形描画関数１４５００に関連している。そうしたルーチンは、その位置、幅、及び／又は高さが、表示されるサブピクセルアドレス可能スクリーンの全ピクセル解像度に比して、より高度な解像度で定義された矩形を描画するための呼び出しによって、呼び出される。これに対応して、関数１４５０２は、そうしたより高度な解像度で定義された矩形の画像をレンダリングするために、サブピクセル解像度でサブピクセル最適化ルーチンを使用する。例えば上述のスキームのように、多くの場合、非線形カラーフィルタリングを有する２色最適化スキームが、最高の視認可能な空間解像度を提供する傾向のあるモノクロ矩形を別にすれば、仮想の任意のサブピクセル最適化スキームを使用して、これを実行することが出来る。
【０４６３】
図１４６は、サーバからダウンロードされたアプレットによって、クライアントのスクリーン上にサブピクセル最適化したスクリーン要素を描画可能とするための、サーバ及び／又はプロキシコンピュータ上で起動可能なコード１４６０２、及び、薄型クライアントコンピュータを含む、クライアントコンピュータ上で起動可能なコード１４６０４に関する高度に簡略化された擬似コード表記１４６００である。
【０４６４】
そうした実施形態に於いて、クライアントの関数１４６０６は、サーバからメディアを要求する。クライアントコンピュータ上で起動可能な１つ又は複数のアプレットプログラムを含む、メディア又はデータをダウンロードすることによって、サーバは関数１４６０８で対応する。関数１４６１０に於いて、クライアントコンピュータは、アプレットを含むメディアを受信し、関数１４６１２はそのアプレットをロード及び実行する。関数１４６１４に於いて、クライアントコンピュータ上のサブピクセルアドレス可能スクリーンにサブピクセル最適化された要素を描画する。
【０４６５】
サブピクセル最適化されたビットマップを複製又は生成すること、サブピクセル最適化されたフォントでテキストをレンダリングすること、例えばベクトル定義されたグラフィック、又は、例えばライン、矩形、及び、楕円などの比較的単純な幾何学的形状など、サブピクセル最適化された形状を描画すること、の何れかによって、アプレットはサブピクセル最適化された要素を描画することが出来る。
【０４６６】
図１４７及び１４８は、ロールオーバ画像、及び、ＧＩＦＦアニメーションのそれぞれに対して、サブピクセル最適化を如何にして適用することが出来るかを図示している。 
【０４６７】
図１４７に図示されたサブピクセル最適化ルーチン１４７００に於いて、ポインティングデバイスが検知出来るように、画像に関連付けられたスクリーンの部分に存在しない場合に表示される非ロールオーバ画像１４７０２と、ポインティングデバイスが検知出来るように、そのスクリーン部分に存在する場合に表示されるロールオーバ画像１４７０４は、両方とも、関数１４７０６によって縮小され、サブピクセル最適化される。これにより、拡大／縮小され、サブピクセル最適化された非ロールオーバ画像１４７０８、及び、拡大／縮小され、サブピクセル最適化されたロールオーバ画像１４７１０が生成される。次に関数１４７１２は、ポインタがそれらの関連付けられたスクリーン領域上に検出可能に存在するか否かということに基づいて、これらの２つのサブピクセル最適化された画像の内、何れを表示させるのかを選択するために使用される。これにより、２つのサブピクセル最適化された画像は、複合「ロールオーバ」グラフィックとして機能する。
【０４６８】
本発明のこの特徴に関する他の実施形態に於いて、同様の技術を、ボタンに関連付けられた２つの画像、即ち、ボタンが押下されてない場合に表示される画像と、ボタンが押下されている場合に表示される画像、に適用することが出来る。
【０４６９】
図１４８に図示された方法１４８００は、図１４７に関して上述された方法に類似している。それは、ＧＩＦＦアニメーションの別個の画像１４８０２乃至１４８９０６のそれぞれを取得し、縮小され、サブピクセル最適化された対応するＧＩＦＦアニメーション一式を生成するために、関数１４８０８に於いてサブピクセル最適化する。次に、関数１４８１６は、サブピクセル最適化されていないＧＩＦＦアニメーションが表示される方法と実質的に同一の方法で、サブピクセル最適化された画像を表示する。
【０４７０】
薄型クライアントコンピュータ上のスクリーンを含む、サブピクセルアドレス可能スクリーン上のウェブページへのアクセスを含む上述の発明に関する他の特徴を用いて、図１４７及び１４８に関して上述されたサブピクセル最適化を使用することが出来る。
【０４７１】
図１４９は、３Ｄアニメーションをサブピクセル最適化する方法１４９００を図示している。この方法は、アニメーションの連続フレームのそれぞれに対して、関数１４９０４乃至１４９０８一式を実行することを含んでいる。
【０４７２】
関数１４９０４は、現在のフレームのビットマップ、又は、最後のフレームから変更された画像の少なくともそれらの部分のビットマップを作成するために、３Ｄアニメーションエンジンを実行する。この関数は、そうしたビットマップのサブピクセル最適化されたバージョンが表示される全ピクセル解像度よりも高解像度で、そうしたビットマップを生成する。
【０４７３】
次に関数１４９０６は、フレームビットマップ、又は、少なくとも最終フレームからのフレームビットマップに於いて実行された変更を、縮小及びサブピクセル最適化するために、例えば上述された技術などの技術を使用する。
【０４７４】
次に、関数１４９０８は、フレームビットマップの、縮小され、サブピクセル最適化された画像、又は、少なくともフレームの変更された部分の、縮小され、サブピクセル最適化された画像を、サブピクセルアドレス可能スクリーン上に表示する。
【０４７５】
ユーザがゲームを実行することができ、サブピクセル最適化によって可能となるより高度な解像度で、そうしたゲームで生成される画像を視認することが出来るようにするためには、図１４９に図示された方法が特に有用である。小型スクリーンを有するハンドヘルドデバイスに於いて、そうした目的をその方法に使用することが出来る。リモートコンピュータ上で生成されたアニメーション画像を表示するクライアントコンピュータ、及び、そうした動画をローカルに生成するコンピュータの両方にその方法を使用することが出来る。
【０４７６】
図１５０及び１５１は、図１４９の方法がクライアントサーバのゲームアプリケーションで使用可能な一つの方法を図示している。
【０４７７】
図１５０は、そうした実施形態に於いて使用されるゲームサーバコンピュータ上でのプログラム１５０００を図示している。数字１５００２及び１５００４で示されているように、ゲームサーバが、１つ又は複数のゲームクライアントコンピュータからユーザ入力を受信する場合、入力をゲームエンジンに送信する。そうした入力がスクリーン入力の場合、ユーザのスクリーン解像度と、ゲームエンジンがスクリーン入力と関連付ける空間との差を補正するために、入力が適切に拡大／縮小される。
【０４７８】
関数１５００６に於いて、ゲームエンジンのコンピュータは、現在のフレーム、又は、以前の表示リストに対する現在のフレームに関連付けられた任意の変更に対する表示リストを算出する。次に、関数１５００８は、３Ｄレンダリングプログラムに、現在のフレームに対して生成された表示リストに対応するフレームビットマップをレンダリングさせ、現在のフレームのビットマップに必要な変更をレンダリングさせる。そうしたビットマップは、関数１５０１０によって生成されるサブピクセル最適化画像の解像度よりもより高度な解像度で生成される。
【０４７９】
クライアントが異なるクライアントに対して異なるスクリーン画像を生成する場合、これらの別個のビューのそれぞれに対して、関数１５００８が別個に実行される。
【０４８０】
次に、関数１５０１０は、現在のフレームのビットマップ、又は、フレームに対する現在の変更のビットマップを、縮小し、サブピクセル最適化する。また、この関数がそうした変更のビットマップのみを縮小している場合、これに対して、それはそれらの変更に関連付けられたスクリーン位置を縮小する。
【０４８１】
次に、関数１５０１２は、サブピクセル最適化されたビットマップを圧縮し、そして適切な場合には、それらの位置を圧縮し、関数１５０１４は、圧縮され、拡大／縮小され、サブピクセル最適化された画像と、クライアントに表示するための任意のそうした位置をダウンロードする。
【０４８２】
図１５１は、図１５０のプログラムに使用するために設計されたゲームクライアント上のプログラム１５１００を図示している。
【０４８３】
関数１５１０１は、ダウンロードされた画像を受信し、関数１５１０２はそれらを解凍する。次に、関数１５１０４は、拡大／縮小された、サブピクセル最適化されたアニメーションフレームビットマップを表示、又は、以前のアニメーションスクリーンの画像に対する変更のビットマップを、そうした変更に適用された位置に表示する。これはサブピクセルアドレス可能表示に於いて実行される。
【０４８４】
数字１５１０６及び１５１０８によって示されているように、クライアントがユーザ入力を受信する場合、そうした入力に関連付けられた任意のスクリーン座標が適切に変換されるように、その入力をゲームサーバにアップロードする。
【０４８５】
本発明の該特徴に関する他の実施形態に於いて、ゲームサーバとゲームクライアント間の機能性の配分は異なる可能性がある。幾つかの実施形態に於いて、プロキシサーバとは異なるゲームサーバ上で元々生成されたゲームコンテンツを薄型クライアント上に表示するために、一般的に上述のプロキシサーバに類似したプロキシサーバをサブピクセル最適化の実行に使用することが出来る。さらに他の実施形態に於いて、ゲームクライアント自身がサブピクセル最適化を実行することが出来る。
【０４８６】
図１５２は、関連付けられた透明マップを有する画像が、そうした画像、及び、関連付けられた透明マップの両方のサブピクセル最適化で表示することが可能な、本発明の特徴に関する高度に簡略化された擬似コード記述である。
【０４８７】
図１５２に図示されたプログラム１５２００は、前景画像、即ち、背景又は他の以前のビットマップの最上部の表示が関連付けられた透明ビットマップによって制御される画像、に関する拡大／縮小されサブピクセル最適化されたビットマップを生成する関数１５２０２を含む。使用されるサブピクセル最適化は、２色サブピクセル最適化、又は、多色カラーサブピクセル最適化の何れか、或いは、これら２つの組み合わせであっても良い。上述の方法を含めて、画像のサブピクセル最適化された表現を生成する方法として周知の任意の方法を使用することが出来る。
【０４８８】
関数１５２０４は、画像の関連付けられた透明マップのサブピクセル最適化を実行する。２色サブピクセル最適化を使用することが望ましいが、これは、アルファ値が０から１の範囲に及び、３コンポーネント色空間における直線に沿って変化する透明値を、透明マップの高解像度ソース画像が有するからである。そうしたソース画像アルファ値はグレースケールカラーに対応するが、これは、そのマップのサブピクセル最適化された出力画像に於ける任意のピクセルに対応する透明マップソース画像の領域が、一定の透明値で覆われる場合、その出力ピクセルのサブピクセルのすべてが同一のアルファ値を有する傾向があるからである。上述の非線形カラーバランスを使用して、透明マップの２色サブピクセル最適化を実行することが望ましい。
【０４８９】
前景画像、及び、それに関連付けられた透明マップに関するそうしたサブピクセル最適化が実行された時点で、関数１５２０６は、サブピクセル最適化表示にこの組み合わせを表示する。この処理は、表示された画像の各ピクセル列の各サブピクセルに対するループ１５２１０を含む、各ピクセル列に対するループ１５２０８を実行することを含む。関数１５２１０によって、関数１５２１２及び１５２１４が各サブピクセルに対して実行される。関数１５２１２は、現在のアルファ値をサブピクセル最適化透明マップの対応するサブピクセルのアルファ値に設定する。次に、関数１５２１４は、現在のサブピクセルの輝度を、「現在のアルファ値」に「サブピクセル最適化された前景画像の対応するサブピクセルの輝度値」を乗算した値に、「１から現在のアルファ値を減算した値」に「透明画像が描画されている背景ビットマップに於ける現在のサブピクセルの以前の輝度値」を乗算した値を加算した値に設定する。
【０４９０】
これは、前景画像が以前のビットマップ上に描画される場合に、個々のサブピクセルのそれぞれの輝度値が前景画像の対応するサブピクセル値、又は、以前のビットマップの対応するサブピクセル値から算出される程度が、サブピクセル最適化された透明マップの対応するサブピクセルアルファ値の関数として規定されることを意味する。
【０４９１】
本発明の幾つかの実施形態に於いて、透明マップに関連付けられた画像は、サーバ又はブラウザコンピュータ上で拡大／縮小及びサブピクセル最適化され、ダウンロードされ、そして、クライアントコンピュータ上に関数１５２０６によって表示される。本発明の他の実施形態に於いて、そうしたサブピクセル最適化透明画像は、記録されたデジタルメディア上で利用可能になる。さらに本発明の他の実施形態に於いて、上記画像は、それらを表示する同一のコンピュータによって生成される。
【０４９２】
本発明の他の実施形態に於いて、サブピクセル最適化されていない透明マップに含まれるアルファ値を使用して、サブピクセル最適化された前景画像を表示することが出来る。
【０４９３】
本発明の幾つかの実施形態に於いて、１つの色に知覚的に近い色のグループを表すために、非可逆カラー圧縮を使用する。１次元透明値、図７０、９６、及び、９７に関して上述された種類の３次元透明（即ち、不透明度又はアルファ）値、又は、ＲＧＢコンポーネント値と同様に、特別色次元として透明コンポーネント値を有する色値で、そうした圧縮を実行することが出来る。そうした圧縮に於いて、１又は０のアルファ値、或いは１又は０に極めて近い値を示す透明値又はコンポーネント色値が、それぞれ１又は０から懸け離れた透明値で表現されることを回避することが一般的には望ましい。これは、透明度の範囲の両極での不透明性に於ける僅かな変化に対して、透明度の範囲の他の部分に於けるそうした変化に比して、目はより敏感であるからである。
【０４９４】
サブピクセル最適化されていない画像が透明マップに使用される全ての目的のために、サブピクセル最適化された表示上で、透明マップを有するサブピクセル最適化画像を使用することが出来る。これは、アニメーション及びウェブページのレイアウトに於ける使用を含む。
【０４９５】
図１５３乃至１６２は、映像、及び／又は、アニメーションのサブピクセル最適化に関する本発明の特徴に関する、高度に簡略化された擬似コード記述である。映像及びアニメーションが使用される仮想の他のコンテンツだけでなく、ウェブブラウズのコンテンツに於いて、そうしたサブピクセル最適化を使用することが出来る。
【０４９６】
図１５３は、映像キーフレーム間の補間を使用して表示された映像をサブピクセル最適化するために使用されるプログラム１５３００を示している。このプログラムは、サブピクセル最適化される映像が圧縮フォーマットで受信される場合に使用される関数１５３０２を含む。それはそうした映像を解凍し、サブピクセル最適化することが出来る。
【０４９７】
関数１５３０４は、映像のキーフレームを縮小し、サブピクセル最適化する。関数１５３０６はキーフレーム間の補間された変更を縮小するが、サブピクセル最適化を行わない。図１５３に図示された本発明のこの特徴に関する幾つかの実施形態に於いて、そうした補間された変更をサブピクセル最適化することが出来るが、これを実行することによる利益は殆んどない。これは、そうした変更がスクリーン上にあまりにも速くあらわれるので、それらのサブピクセル最適化が認識されず、それらのサブピクセル最適化を回避することによって、コンピュータ上の負荷を低減するからである。
【０４９８】
関数１５３０８は、サブピクセル最適化されたキーフレーム、及び、サブピクセル最適化されていないフレーム間の補間を用いて、縮小された映像をサブピクセルアドレス可能表示上に表示する。
【０４９９】
本発明の他の実施形態に於いて、明確に認識するのに充分長い一つの位置で、スクリーン上に存在する映像の部分を単にサブピクセル最適化するというこの概念を、他の方法で使用することが出来る。
【０５００】
図１５４は、表示フレームに対して描画される、部分−全体−フレーム画像要素の連続によって、全体的又は部分的に表現された映像をサブピクセル最適化するために使用することが出来るプログラムを図示している。一般的に、そうした映像もまた、全体フレーム画像を含み、必要に応じて、その中に存在する１つ又は複数のオブジェクトの動きを表すためにスクリーンを徐々に変更するために、一部−全体−フレーム描画の連続を使用する。これは、図１４９に関して上述した種類のアニメーションを含む。またそれは、図１５３に関して上述した一般的な種類のキーフレーム及びフレーム間の補間を有する映像を含む、映像圧縮の様々な方法を含むことが出来る。
【０５０１】
図１５４のプログラムは、サブピクセル最適化される映像が圧縮形式で受信される場合に使用される関数１５４０２を含んでおり、この場合、その関数がその映像を解凍する。次に、関数１５４０４は、映像に含まれる任意のフレーム画像を拡大／縮小し、サブピクセル最適化し、表示倍率でそれらを縮小する。次に、関数１５４０６は、任意の変更ビットマップを拡大／縮小し、サブピクセル最適化し、そうした画像のサイズとそれらの位置を、その倍率で拡大／縮小する。
【０５０２】
関数１５４０７及び１５４０８は、映像シーケンスに於ける拡大／縮小及びサブピクセル最適化された任意の映像フレームを、サブピクセルアドレス可能スクリーン上に繰り返し表示する。そうした映像フレームの表示後、関数１５４０６によって、その変更ビットマップに関連付けられた拡大／縮小位置で、そのフレームのビットマップに対して、任意の一つ又は複数の拡大／縮小され、サブピクセル最適化された変更ビットマップを表示する。
【０５０３】
図１５４の方法によって、サブピクセル最適化された映像及びアニメーションが、サブピクセル最適化に必要な演算量を低減する方法で描画可能になるということが分かるが、これは、図１５４の方法では、その映像画像に対して変更が加えられる度に、フレーム全体のサブピクセル最適化を必要とする訳ではないからである。
【０５０４】
図１５５及び１５６は、フレームに関連して移動するサブピクセル最適化された画像を表示可能な２つの異なる方法を図示している。
【０５０５】
より大きな画像に関連して、サブピクセルアドレス可能表示上で、画像が全ピクセルの値を増加させて移動するように、図１５５は固定のサブピクシレーションで画像を表示するプログラム１５５００を含む。それは、上述した方法を含む任意の方法で生成可能なサブピクセル最適化画像を保存する関数１５５０２を含む。それは、各連続フレーム時間に対して実行されるループ１５５０３を含む。このループは、関数１５５０４及び１５５０６で構成されている。関数１５５０４は、より大きな画像に関連して、画像に対する動きを算出する。この移動計算に於いて、各表示フレームでオブジェクトに対して計算された位置は、最も近い水平及び垂直方向の全ピクセル位置に近似され、画像のサイズと方向は変更されない。関数１５５０６は、それに対して計算された全ピクセル解像度位置で、関数１５５０４によって画像を表示する。画像のサブピクセル最適化されたビットマップを１つだけ計算しなければならず、その単一の画像がスクリーン上を横切るように繰り返し使用されるので、この方法はコンピュータ処理的に極めて効率的である。
【０５０６】
図１５６は、サブピクシレーションの変更によって動画を表示するプログラム１５６００を図示している。それは、移動される画像の高解像度ソース画像を保存する関数１５６０２を含んでいる。またそれは、各連続フレーム時間に対して実行されるループ１５６０３を含んでいる。このループは、あるとすれば、現在のフレームに対して、現在の変換、回転、及び／又は、高解像度ソース画像の転換を計算する関数１５６０４を含む。次に、そのループの関数１５６０６は、そのように生じた、変換、回転、及び／又は、転換されたビットマップの、縮小及びサブピクセル最適化されたビットマップを生成する。このサブピクセル最適化では、それが全ピクセル解像度よりも高度な解像度で表示されるサブピクセル配列に関連して、この変換されたビットマップの位置が考慮される。次に、フレームループの関数１５６０８は、サブピクセルアドレス可能表示上に、結果として生じるサブピクセル最適化されたビットマップを表示する。
【０５０７】
ゲームアニメーションに於ける妖精に加えて、動画文字、又は、より大きなフレームに関連して移動されるその他の視覚表現を表示するために、図１５５又は１５６に関して上述された方法の何れかを使用することが出来る。
【０５０８】
図１５５の方法は、ビジュアルオブジェクトの動きに関するより精度の低い表現を提供する傾向にあるが、コンピュータ処理的にはより効率的である。図１５６の方法は、より精度の高い視覚表現を提供するが、コンピュータ処理的には費用がかかる。
【０５０９】
本発明の幾つかの実施形態に於いて、これら２つの方法の組み合わせを使用することが出来る。例えば、オブジェクトとサブピクセル配列間に於ける可能なマッピングの小さなサブセットを保存することができ、オブジェクトが移動すると、それが表示されるサブピクセル配列に関連して、その現在位置に関するより高度な解像度の表現を最も詳細に表現する、そうした保存されたマッピングの方法で表示される。
【０５１０】
図１５７及び／又は１５８は、サブピクセルアドレス可能スクリーン上に表示するために、ＤＶＤ又はＨＤＴＶ映像を縮小し、サブピクセル最適化することによって、ＤＶＤ又はＨＤＴＶ映像の表示を最適化するために使用される、本発明の特徴を図示している。これが特に有用であるのは、垂直方向よりも水平方向に於いて、より高度なサブピクセル解像度を有するサブピクセルアドレス可能スクリーンと共に使用される場合であり、これは、一般にＤＶＤ及びＨＤＴＶ映像が、高さが高いと言うよりは実質的に幅が広い縦横比を有しているからである。
【０５１１】
図１５９は、異なる属性を有する別個のオブジェクトとして、映像画像のサブコンポーネントを表す映像フォーマットに適用可能な本発明の特徴を図示している。図１５９に於ける特別な例は、ＭＰＥＧ４映像の表示をサブピクセル最適化するプログラム１５９００を含んでいる。
【０５１２】
図１５９に図示されたプログラムは、ＭＰＥＧ４映像を受信し、解凍する関数１５９０２を含んでいる。それは、ＭＰＥＧ４映像に於いて異なる種類のオブジェクトを縮小する際に、異なるサブピクセル最適化方法を使用する関数１５９０４及び１５９０６を含んでいる。この関数は、好ましくは非線形カラーバランスを用いて、２色オブジェクトに２色サブピクセル最適化を使用し、多色オブジェクトに多色サブピクセル最適化を使用する。関数１５９０８は、サブピクセル最適化スクリーン上に、２色オブジェクト及び多色オブジェクトの組み合わせを表示し、ＭＰＥＧ４の記述によって指示されているように、スクリーンに関連して、そうしたサブピクセル最適化オブジェクトを移動させ、図１５５及び／又は１５６に関して既に議論した種類の方法を使用する。
【０５１３】
本発明の幾つかの特徴は、ＭＰＥＧ４データストリームに於ける異なるオブジェクトタイプに対して、異なるサブピクセル最適化アルゴリズムを使用することに限定されない。しかし、そうした異なるサブピクセル最適化アルゴリズムを使用することによって、例えばテキストなど、２色オブジェクトに対してより高度な知覚解像度を提供することができ、これにより、幾分改善された画像を提供するという利点を有するのである。  
【０５１４】
図１６０及び１６１は、ユーザがコンピュータネットワーク上のサブピクセル最適化映像にアクセスするシステムに関する。
【０５１５】
図１６０は、サブピクセル最適化され、縮小された映像を提供するサーバコンピュータによって使用されるプログラム１６０００を図示している。そうしたサーバは、さらに他のサーバコンピュータから、クライアントによって要求された映像にアクセスし、その後、クライアントにダウンロードする前に、それを縮小し、サブピクセル最適化するプロキシサーバであっても良い。他の実施形態に於いて、サブピクセル最適化された映像の提供は、そうした仲介プロキシサーバを介さずに実行される。
【０５１６】
図１６０のプログラムは、クライアントコンピュータから特定の映像に対する要求を受信する関数１６００２を含む。例えば、図１６０に図示された実施形態など、多くの実施形態に於いて、この要求は、映像がサブピクセル最適化される水平及び垂直方向のサブピクセル解像度も記述する。１つの固定サブピクセル解像度を有するクライアント一式を提供するだけの実施形態に於いては、要求の一部として、そうした情報を必要としない。
【０５１７】
関数１６００４は、要求された映像コンテンツを受信する。上述したように、リモートサーバから映像コンテンツにアクセスすること、実行中のコンピュータに関連付けられたＲＡＭ又は大容量記憶装置から映像コンテンツにアクセスすること、そうしたコンテンツを動的に生成させること、又は、幾つかのソースから入力された映像を選択すること、によって、これを実行することが出来る。
【０５１８】
関数１６００６は、関数１６００２の要求に関連付けられたサブピクセル解像度に受信された映像を縮小し、サブピクセル最適化する。次に、関数１６００８は、サブピクセル最適化映像を圧縮し、関数１６０１０は、要求している装置に、その圧縮された映像をダウンロードする。
【０５１９】
そうしたサブピクセル最適化画像に使用される圧縮アルゴリズムは、そうしたサブピクセル最適化された画像に於ける任意のピクセルに関連付けられた色値の位置が、比較的限られた色の距離以上の距離でＲＧＢ色空間に於いて移動されない限り、サブピクセル最適化によって可能となる増大された空間解像度を実質的に減少させることなく、ある程度の損失を有した圧縮アルゴリズムを有することが出来る。
【０５２０】
図１６１は、図１６０に記載された本発明の特徴に使用可能なシステム１６１００を表している。このシステムは、プロキシコンピュータコード１６１００、及び、薄型クライアントコンピュータコード１６１１２を有しており、これらの両方が高度に簡略化された擬似コードによって図１６１に図示されている。
【０５２１】
薄型クライアントが所定の映像に対するユーザ要求を受信する場合、関数１６１１３は、映像がプロキシに表示されるサブピクセル解像度を含む、映像に対する要求を送信することによって対応する。プロキシがそうした映像に対する要求を受信する場合、その関数１６１００によって、関数１６１０３は、映像を取得可能なサーバに、映像への対応する要求を送信する。多くの実施形態に於いて、これは、そうした要求のＵＲＬに於いて識別されたサーバである。
【０５２２】
要求された映像がプロキシサーバによって受信される場合、関数１６１０４によって、関数１６１０６乃至１６１１０が実行される。関数１６１０６は、映像を、クライアントからの要求に関連図けられたサブピクセル解像度まで縮小し、サブピクセル最適化し、関数１６１０８は、そのサブピクセル最適化された映像を圧縮し、関数１６１１０は、それを要求したクライアントに、それをダウンロードする。
【０５２３】
クライアントがプロキシから要求された映像を受信する場合、関数１６１１４によって、関数１６１１５は映像を解凍し、関数１６１１６はサブピクセルアドレス可能表示上に、その縮小され、解凍された映像を表示する。
【０５２４】
図１６２乃至１６６は、デジタルインクの見た目を向上させるために、本発明の特徴をどのように使用することが出来るかを図示している。デジタルインクは、通常、ユーザがポインティングデバイスによって文字を書く、又は、図形を描画しようとすることに対応して、スクリーン上に描画される白黒のビットマップである。従来、デジタルインクビットマップは、各ピクセルが黒、白、又は、デバイスによってはグレースケール値として表示される全ピクセル解像度で通常表現されている。
【０５２５】
本発明の１つの特徴は、より高解像度でデジタルインクを表現するためのサブピクセル最適化を使用することにある。デジタルインクがコンピュータメモリ内に於いて、点及び線、又は、そうした複数点間の曲線で表現される場合、そうした複数点間の線に関する結果的として生じる数学的記述は、スクリーンの全ピクセル解像度に比して、遙かに高い解像度を有することが出来る。
【０５２６】
図１６２は、デジタルインクを視認可能な透明度を最適化するために使用することが出来るプログラムに関する高度に簡略化された擬似コード記述である。
【０５２７】
図１６２に図示されたデジタルインクコード１６２００は、点の集合、及び、そうした複数点間の曲線又は直線として、ポインティングデバイスのストロークを記録することによって、デジタルインク描画モードの状態で、ポインティングデバイスを用いてユーザ入力に応答する関数１６２０２を含む。関数１６２０６は、直線及び曲線のサブピクセル最適化を使用して、スクリーン上にインクを描画する。実質的に任意のサブピクセル最適化スキームを用いてこれを実行することが出来るが、例えば、上述の非線形カラーバランスを使用する２色サブピクセル最適化スキームなど、２色サブピクセル最適化スキームを用いて実行することが望ましい。
【０５２８】
図１６３は、ハンドヘルドコンピュータ１６３００のスクリーン上に描画された、幾つかのデジタルインク１６３０２を図示している。この図示は、全ピクセル輝度値のみを表現可能なプリンタで印刷されるので、図１６３に図示されたデジタルインクは、グレースケールアンチエイリアスとしてサブピクセル最適化を表示する。当然のことながら、サブピクセルアドレス可能表示上で画像を見る場合、図１６３に図示されている画像も、さらに明瞭に見える。
【０５２９】
デジタルインクプログラムのユーザが、デジタルインクの部分の表現を拡大することを選択する場合、関数１６２０８によって、関数１６２１２は、非線形カラーバランスと共に２色サブピクセル最適化を使用して、ユーザが選択した拡大サイズで、デジタルインクの直線及び曲線のサブピクセル最適化されたビットマップを生成する。次に、関数１６２１２は、ユーザのスクリーン上に、その拡大された画像を表示する。
【０５３０】
図１６４は、図１６３に図示されたデジタルインク１６３０２の一部分に関する拡大された表現１６３０２Ａを図示している。これにより、図１６５に図示されたビットマップ１６３０２Ｂによって図示されているように、図１６３に図示されたデジタルインクの表現１６３０２のピクシレーションを単に拡大することによって生成される表現に比して、実質的により明瞭なデジタルインクの表現が提供される。
【０５３１】
注目すべきは、図１６５に図示されたビットマップの表現は、実際には、デジタルインクの幾つかの拡大された表現に比して、より見易いということである。これは、幾つかのデジタルインクの表現で使用されていないアンチエイリアスを用いて、図１６３に図示されたビットマップが全ピクセルグレースケール値で印刷されているからである。
【０５３２】
関数１６２１４によって、関数１６２１６は、非線形カラーバランスと共に２色サブピクセル最適化を使用して、選択された縮小されたサイズで、インクの直線及び曲線のサブピクセル最適化されたビットマップを生成し、関数１６２１８は、サブピクセルアドレス可能表示上にその縮小されたビットマップを表示する。そうした処理の結果は、図１６６に図示されたビットマップ１６３０２Ｃによって図示されている。
【０５３３】
オン又はオフの全ピクセルとして記録されたデジタルインクに対応するために、本発明のこれらの特徴を修正することが出来る。そうした「オン」のピクセルで表現された各ストロークの中心線をルーチンに評価させ、その後、上述されているように、様々なスケールでデジタルインクの中心線のサブピクセル最適画像を生成することによって、これを実行することが出来る。さらに正確ではあるが、コンピュータ処理的に費用のかかるアプローチは、そうしたデジタルインクの連続部分と、例えばベジエ曲線などの対応する直線及び曲線の連続との間の最適な適合を求める。
【０５３４】
他の実施形態に於いて、そうしたビットマップ上でサブピクセル最適化された拡大／縮小を単に実行することによって、デジタルインク描画によって生成されたビットマップ上で、サブピクセル最適化を実行することが出来る。
【０５３５】
サブピクセル最適化をグレースケールアンチエイリアスで置換することによって、デジタルインクに関する本発明の幾つかの実施形態を、サブピクセル最適化されていない表示と共に使用することが出来る。
【０５３６】
図１６７は、サーバ、クライアント、プロキシサーバ、薄型クライアント、リモート、デスクトップ、又は、上述された他のコンピュータの多くが有することが出来るコンポーネントを図示している。当然のことながら、図１６７に図示されたコンポーネントの全てが、そうした全てのコンピュータに存在する訳ではなく、殆どのそうしたコンピュータは、図１６７に図示されたコンポーネント以外に他のコンポーネントを有する。
【０５３７】
本発明の様々な特徴を用いて使用される殆どのコンピュータが、本発明のそうした特徴に関する関数を実行し、そうした特徴の方法に従ってデータ１６７０４を読み出し及び書き出しをするために、プログラム１６７０２を実行可能な何らかの種類のプロセッサ１６７１６を有している、ということを明確にするために同図が示されている。本発明は、方法だけでなく、そうしたコンピュータプログラム及びデータに関し、さらには、そうした方法を実行、又は、そうしたデータを使用するために、プログラムされた、及び／又は、ハードウェアに組み込まれたコンピュータシステムに関する。
【０５３８】
殆どのそうしたコンピュータに於いて、本発明のプログラムは、機械可読形式で、ＲＡＭ１６７０６、ＲＯＭ１６７０７、又は、例えば、ハードドライブ１６７０８、フロッピドライブ１６７０９、ＣＤ−ＲＯＭドライブ１６７１１、及び／又は、ＤＶＤドライブ１６７１３など、大容量記憶装置に保存される。また、例えば、フロッピディスク１６７１０、ＣＤ−ROM１６７１２、ＤＶＤ−ROM１６７１４、又は、仮想の任意の他の機械可読記憶媒体に、本発明のプログラムを保存することが出来る。また、例えばネットワークインターフェース１６７２０など、ある種の通信ポートを介してコンピュータが受信可能な数字１６７１９で示された伝搬信号として、本発明のプログラム及び／又はデータを表現することが出来る。
【０５３９】
図１６８は、図６０乃至９７に関して上述された非線形カラーバランス法を使用して、生成された小型のサブピクセル最適化されたフォントを示す３２０×２４０スクリーンの全ピクセルグレースケール表現を提供している。同図は、そのテキストの部分が破線部１６８００で囲まれている点を除いて、図５６と同じである。
【０５４０】
図１６９は、破線部１６８００内の図１６８に図示したビットマップの部分に関する８倍の拡大図である。図１６９は、図１６８に図示されたフォントに於ける垂直ストロークの殆どが、その左側に、そうしたフォントの明瞭さをぼかすカラーバランス分配を含んでいることを図示している。この同一の僅かなぼかしが、図１、１０、１１、９９、１０１、１０４、１１０乃至１１４、１２１乃至１２８、１３０、及び、１４４に図示された小型フォントに於いて生じている。 
【０５４１】
サブピクセル最適化フォントビットマップを生成する非線形カラーバランス法の主な利点の一つが、そうした分配がカラーバランスに必要ない場合、輝度値の分配を防止しようとする非線形法によって、文字フォント形状のぼかしを低減するための能力である。
【０５４２】
図１６９に図示された種類のフォントの主なストロークの左に、色値の望ましくない拡散を観測した場合、本発明のこの特徴の発明者は、そうした拡散を低減することが出来るかどうかを確かめようとした。この発明者は、そうした拡散のソースが何かを割り出そうとした。
【０５４３】
ここで再び図１７０を参照すると、この発明者は、非線形カラーバランス処理が行われたビットマップの生成に使用されるアルゴリズムが、サブピクセル１７０００の２つのパディングコラムを、実際の非ゼロカバレッジ値１７００４を含む（即ち、ラスタ化で表現されている文字フォント形状の一部分によって実際に覆われた）文字フォント形状のラスタ化に於ける左端のサブピクセルコラム１７００２の左側に自動的に設定するよう設計されていたことを発見した。そうした非ゼロカバレッジ値を含む左端のサブピクセルコラムの左側にある、２つのサブピクセルコラムにカラーバランス色値を拡散可能にする余地を与えるために、これを実行する。これが望ましいのは、部分的に覆われたサブピクセルの左側２ピクセルにカラーバランス分配を可能にする、上述された非線形カラーバランスアルゴリズによって、そうした左側の分散が必要とされる場合である。
【０５４４】
残念ながら、２つのそうしたサブピクセルコラム１７０００のみを用いて、ラスタ化サブピクセル配列をパディングすることは、そうしたカバレッジ値を含む左端のサブピクセルコラム１７００２を、２つのパディングサブピクセルコラムを含むピクセルコラムの右端サブピクセルコラムにするという、好ましくない影響を有する傾向がある。ＲＧＢ表示では、これにより、実際のカバレッジ値を有する左端のサブピクセルコラムが青色サブピクセルに対応する。
【０５４５】
これが望ましくないのは、それによって、フォントビットマップに於ける一番左のピクセルコラムのピクセルが、実際のカバレッジ値を有していない２つの一番左のサブピクセルと、非ゼロカバレッジ値を有する一番右のサブピクセルを有し、カラーバランスを達成するために、その非ゼロカバレッジ値が分配されることが要求されるからである。これが、図１６９に図示された主要な垂直ストロークの殆どの左方向の不鮮明な状態に関する理由である。
【０５４６】
発明者は、サブピクセルコラムの幅に比して垂直ストロークの境界を適切に段階的に位置づけ可能なシステムでヒンティングされた文字フォント形状が、例えば図１７１に図示された端部１７１００など、一番左の垂直ストロークの一番左の端部を、非ゼロカバレッジ値１７００２を含む一番左のサブピクセルコラムへの極僅かな距離で開始するために、これらの文字フォント形状をヒンティングした者によって、多くの場合設計されていることを言及した。これは、非線形カラーバランスが分配しなければならなかったサブピクセルコラム１７００２内に含まれた非ゼロカバレッジ値の量を実質的に低減し、これにより、文字のサブピクセル最適化された表現に於ける好ましくない不鮮明な状態を大幅に低減する。
【０５４７】
例えば、発明者は、最良のヒンティングの組み合わせの多くがそうしたアルゴリズムに使用された場合、結果として生じるビットマップに於ける第２の一番左のピクセルコラム１７１０３に、如何なるカラーバランス拡散をも要求しないために、全体的に覆われた１つ又は複数のピクセルを有するように、例えば図１７１に図示された垂直ストローク１７１０２などの文字の第１垂直ストロークが、右側に３つの連続するサブピクセルコラムにおける合計カバレッジを用いて、１つのサブピクセルコラムに僅かに入る一番左の端部を有することを発見した。
【０５４８】
そうした最適化されたヒンティング処理に於いて、第１垂直ストロークの一番右の端部から３、６、又は、９サブピクセルコラムの距離で始まる３つの隣接するサブピクセルコラムを覆うように、次の垂直ストロークが配置される。これにより、例えば図１７１に図示された垂直ストローク１７１０４及び１７１０６など、次の垂直ストロークが、如何なるカラーバランスも必要としないように、全体的に覆われた複数のピクセルを有する。
【０５４９】
図１６８乃至１７１に図示された種類のフォントは、従来技術の方法によって生成された殆どのサブピクセル最適化フォントビットマップに比して読みやすいが、これらの調査の結果、本発明者は、図１７２乃至１７４に図示されているように、より明瞭なサブピクセル最適化フォントの生成方法を発見した。
【０５５０】
フォントビットマップを生成及び表示するための新たなより明瞭な方法を使用していることを除いて、図１７２は、図１６８に図示された種類のウェブページのサブピクセル最適化された３２０×２４０ピクセル表示を表現する、全ピクセルグレースケールビットマップを図示している。
【０５５１】
図１７３は、１７２００の数字が割り当てられた破線ボックスに図示された図１７２の部分の４倍拡大図を示している。
【０５５２】
図１７４は、図１７３の破線部１７３００に図示されたテキストの部分をさらに４倍拡大した図を示している。
【０５５３】
図１７２乃至１７４を見ると分かるように、これらの図に図示されたフォントビットマップに含まれる垂直ストロークの多くから発生する色値の水平方向の拡散は比較的少ない。注目すべきは、カラーバランスに起因する任意の拡散のためではなく、これらの図中のテキストが、背景色を有する図１７２のウェブページの部分から選択されたために、図１７３及び１７４における規則的な薄い灰色の背景が生じるということである。これらの図に図示されたフォントは、図１６８及び１６９に図示されたフォントに比して実質的に明瞭である。
【０５５４】
本発明者は、文字の一番左側の垂直ストロークの一番左の端部を、ピクセル境界の左端に揃えることによって、こうした改善を行った。多くの実施形態に於いて、図１７５に図示された３つのパディングサブピクセルコラム１７５００を、非ゼロカバレッジ値を有する一番左のサブピクセルコラムの前に挿入することによって、これを実行する。これは、文字のアウトラインによって全体的又は部分的に覆われた一番左のラスタ化ユニット（即ち、サブピクセル）を、ピクセルコラムの一番左の端部に自動的に揃える。一番左のアウトライン端部がラスタ化ユニットの一番左の端部に揃えられるように、文字がヒンティングされる場合、これにより、一番左のアウトライン端部が、結果として生じるフォントビットマップに於けるピクセルの一番左の端部に自動的に揃えられる。フォントアウトラインの一番左の端部が垂直ストロークである場合、これにより、非線形カラーバランスの後でさえ、明瞭な一番左の垂直ストロークを有するフォントビットマップを非常に簡単に生成することができる。
【０５５５】
図１７６は、本発明に使用可能な多くの可能なヒンティングインターフェースの１つを図示している。このヒンティングインターフェースに於いて、破線１７６０２は、所望の文字の左側ベアリングを対話形式で定義するために、ユーザによって移動可能なラインである。破線１７６０４は、右側ベアリングを定義する移動可能なラインである。左側ベアリングは、ペン位置と呼ばれることもある、文字が描画される位置に対する第１参照ポイントと、描画される文字のビットマップの一番左の端部との間の距離である。ライン１７６０４は、テキストのラインに沿って、ペン位置が次の連続する文字の描画開始点に通常配置されるビットマップに対する位置に対応する。右側ベアリングは、ライン１７６０４と描画される文字のビットマップの一番右の端部との間の距離である。アドバンス幅は、ライン１７６０４とライン１７６０２との間の距離として定義される。これは、文字のビットマップの描画前のペン位置と描画後のペン位置との間の通常の全幅を表している。他の実施形態に於いて該当する必要はないが、幾つかの実施形態に於いては、左側ベアリングとアドバンス幅は、複数のピクセル幅に近似される。場合によっては、左側ベアリング値、及び／又は、右側ベアリング値は負の値になり得る。例えば、連続する文字に関連付けられたビットマップは、多くの場合、互いのアドバンス幅の部分に重なるようなイタリック体のフォントでは、しばしばこのような事態が発生する。
【０５５６】
図１７６に図示された小型の矩形ドット１７６０６のそれぞれは、サブピクセル最適化フォントビットマップにおいて、個々のサブピクセルに対応するラスタ化ユニットの中心に対応する。この特別なヒンティングインターフェースに於いて、文字フォント形状のアウトラインに半分以上覆われたラスタ化ユニットが黒色で示される。但し、さらに進んだインターフェースでは、そうしたラスタ化ユニットをグレースケールカバレッジ値で表示することが出来る。文字フォント形状のアウトラインは同図に図示されており、アウトラインに於いてセグメントを定義する各ポイントは、制御ポイントであろうがセグメントエンドポイントであろうが、数字が割り当てられている。
【０５５７】
図１７７乃至１８１は、図１８２に含まれた高度に簡略化された擬似コードに記載されたステップの幾つかを説明する一助となるように使用される。
【０５５８】
図１８２に図示された擬似コードが、図１７２乃至１７５に関して上述された、より明瞭な非線形のカラーバランスサブピクセル最適化ビットマップを生成するための改良された方法に関連する計算上の特徴に焦点を当てていることを除けば、図１８２は、図６０に図示された疑似コードに一般的に対応するプログラム６０００Ａに関する高度に簡略化された擬似コード記述である。
【０５５９】
この擬似コードが、文字フォント形状を配置可能なラスタ化ユニットの最もタイトな矩形配列を決定する関数１８２０２を有しており、ヒンティングによって定義されたそうしたラスタ化ユニットに対する文字フォント形状の配列を考慮に入れている。
【０５６０】
それが発生する個々のラスタ化ユニットに対するフォントアウトラインの位置は、この関数によって変更されない。したがって、そうしたアウトラインの一番左側のポイントが、それが位置するラスタ化ユニットの左側端部以外で発生する場合、そのラスタ化ユニットは、関数１８２０２によって生成される最もタイトな矩形配列の一番左側の端部で発生し、アウトラインの一番左側のポイントは、その矩形の一番左側のラスタ化ユニットコラム内で発生するが、その一番左側のコラムの一番左側の端部では発生しない。
【０５６１】
図１７７及び１７８は、この関数を説明する一助となるべく使用される。図１７７は、ヒンティングされた文字フォント形状のアウトラインに対応する。図１７８は、図１７７に図示された文字アウトラインに対して、関数１８２０２によって返される、（それぞれのサイズがサブピクセルに対応する）ラスタ化ユニットの矩形を図示している。このグリッドは、文字フォント形状を含むラスタ化ユニットが適合する、最も緊密で、最小の矩形に対応する。
【０５６２】
関数１８２０２が完了した時点で、関数６００２Ａ乃至６００６が実行される。これらは、図６０のステップ６００２乃至６００６に対応する。それらは、関数１８２０２によって返された矩形に含まれる各ラスタ化ユニットに対するカバレッジ値を決定するために使用される。そうした各カバレッジ値は、ラスタ化されている高解像度文字フォント形状アウトラインによって覆われたサブピクセルの割合を表している。
【０５６３】
図１７９は、図１７８に図示された配列に於ける各ラスタ化ユニットに対して計算されたカバレッジ値を図示している。そこでは、カバレッジが黒に色付けされたラスタ化ユニットの割合で表現される。図１７９に於いて、文字フォント形状アウトラインによって覆われたユニットの対応する部分がラスタ化ユニットの最上部で発生する場合、カバレッジを表す各ラスタ化ユニットに於ける結果として生じる棒グラフの部分は、ラスタ化ユニットの最上部に設置される。
【０５６４】
図１８０に於いて、個々のラスタ化ユニットの全てに対する棒グラフは、上述した図４６乃至５２、及び、図９２乃至９３に図示されたカバレッジ値の表現により厳密に対応させるために、対応するサブピクセルユニットの最下部から設置される。
【０５６５】
文字フォント形状がラスタ化された時点で、ステップ１８２０４は、サブピクセルカバレッジ値の結果として生じる配列を、サブピクセルアドレス可能ピクセルの配列にマッピングする。上述のタイトな矩形に於けるラスタ化ユニットの第１コラムをピクセル行の一番左のサブピクセルに揃えることによって、ステップ１８２０４はこれを実行する。これによって、非ゼロカバレッジ値を有するラスタ化ユニットの一番左側のコラムが、図１７５に関して上述された全ピクセルに一番左のサブピクセルコラムとして配置される。図１７７乃至１８１で図示された例では、これによって、結果として生じるサブピクセル配列が、図１８１に於いて１８１０２とラベル付けされた中央の５つのピクセルコラムに図示されているように見える。
【０５６６】
次に、ステップ１８２０６は、現在の文字に対して生成されているビットマップ配列を、３つのサブピクセルで構成されるピクセルコラム１８０４に当てる。実際の非ゼロカバレッジ値を含む一番左側のサブピクセルコラムを有するピクセルの左側にこのパディングコラムを設置する。これにより、この例のサブピクセル配列が、図１８１のピクセルコラム１８１０４及び１８１０２の組み合わせによって示されるように見える。
【０５６７】
次に、ステップ１８２０８は、ビットマップのサブピクセルコラムの合計が３の偶数倍、即ち、全ピクセルコラムの偶数倍になるように、ビットマップ配列に右側の２つ又はそれを超えるサブピクセルコラムを当てる。これにより、この例のサブピクセル配列が、図１８１のピクセルコラム１８１０４，１８１０２，及び、１８１０６の組み合わせによって示されるように見える。
【０５６８】
ステップ１８２１０は、パディングピクセルコラムの追加を相殺するために、左側ベアリング値、及び／又は、右側ベアリング値を調整する。したがって、例えば、さもなければ１ピクセル幅の左側ベアリングを有するビットマップは、左側パディングコラムの追加を相殺するために、ゼロの左側ベアリングを有するように変更される。同様に、右側に追加された余分のピクセルコラムを有するビットマップは、１ピクセル幅だけ右側ベアリングを減少させる。
【０５６９】
次に、関数１８２１２は、多くの実施形態において、上記図６０に図示されたループ６００８によって記載されたステップに対応する非線形カラーバランスを実行する。
【０５７０】
これが実行された時点で、上述の図９６に記載された種類のパックト色値表現を使用する実施形態に於いて、ステップ１８２１４は、カラーバランス処理後に生じるピクセル色値を、より制限されたカラーパレットからの対応値に変換する。
【０５７１】
ここで留意すべきは、図１８２の方法によって、図１６８及び１６９に関して上述された不要な色拡散を引き起こしがちになることなく、必要となる可能性のある任意のカラーバランスのための余地が与えられるということである。図１８２の方法は、ラスタ化されているフォント形状によって覆われた領域に対応する任意のサブピクセルの左側及び右側に少なくとも２つのサブピクセルが存在することを確実にすることによって、これを実行する。
【０５７２】
本発明のこの特徴に関する他の実施形態に於いて、不鮮明さを低減する非線形カラーバランスの能力を最大限に利用するために、フォント形状及び垂直ストロークの一番左の端部及び一番右の端部を全ピクセル境界に揃えるための他の方法が使用される。幾つかのそうした実施形態に於いて、パッディングピクセルコラムがフォントビットマップの左側又は右側に追加されたかどうかは、カラーバランス分配がそうした位置で必要とされたかどうかという関数となり得る。
【０５７３】
図１８３は、図１８２に記載された方法によって生成されたビットマップを使用して、文字の文字列を描画するための関数を記載している。この擬似コードは、図１８２の方法で生成されたビットマップに使用された本発明の特徴に焦点を当てているという点を除いて、図９７に関して上述された擬似コードに類似している。
【０５７４】
図１８３に図示された描画文字列関数１８３００が呼び出される場合、ステップ１８３０２は、ペン位置を文字列の表示が先頭になっている場所を示す描画文字列呼び出しによって特定された開始位置に設定する。
【０５７５】
次に、図９７に記述されたループ９７１４に類似するループ９７１４Ａが、表示に対する文字列の各文字に対して実行される。
【０５７６】
このループに於いて、ステップ９７１６は、現在の文字のフォントビットマップにアクセスする。次に、ステップ１８３０４は、文字の開始点を現在のペン位置に設定する。次に、ステップ１８３０６は、左側ベアリングによって現在のペン位置を調整する。上記に於いて既に述べたように、左側ベアリングは、文字ビットマップに余分な１ピクセルコラムがその左側に当てられているという事実を考慮するために、通常の状態から変更されているので、左側ベアリングが１ピクセルコラムの幅だけ減少されている。
【０５７７】
次に、ステップ９７１８Ａがフォントビットマップに於ける各ピクセルに対して実行される。これは、現在のピクセルの値が非ゼロであるかどうかを確認するためにテストを行うサブステップ１８３０８を有する。現在のピクセルの値が非ゼロであれば、画面上に於いて、現在のペン位置の関数として定義された位置にピクセルを描画する。
【０５７８】
現在のピクセルの値がゼロの場合、それは全体的に透明なピクセルを表現し、これは、以前、現在のピクセルの位置に存在した背景色が変更されずに残されていることを意味する。本発明のこの実施形態に於いて、図９６に記載された関数は、そうした全体的に透明なピクセルを表現するために、ゼロの値を保持している。
【０５７９】
透明なピクセルを書き込まないようにすることは、図１８３に記載された実施形態に於いて、ビットマップの全てのピクセルに適用される。透明なピクセルを書き込まないようにすることは、図１８２に関して上記したステップ１８２０６によって、文字フォントビットマップの一番左側の端部に設置されたパディングコラムに於けるピクセルに関しては特に重要である。これは、そうしたパディングコラムに於けるピクセルが、垂直ストローク境界が垂直ピクセル境界に揃えられている場合に非線形カラーバランスの結果として、パディングコラムに拡散された色値を有さないからである。その結果、そのようなピクセルは透明になり、左側の文字によってピクセル位置に設置されている可能性のある色値は、変化のない状態を保持することが可能でり、これにより、カバレッジ又はカラーバランス情報を有する隣接文字のピクセルコラムを互いに近接して設置することが出来る。
【０５８０】
透明で、記載のない、「ｅ」に関連付けられた左側のパディングコラムを通じて表示可能となっている「ｗ」からの色値を有する場合、例えば、図１７３の数字１７３０２によって示された位置においてこれを確認することが出来る。また、「ｒ」と「ｅ」の間のピクセルコラムが、「ｅ」の透明なパディングピクセルコラムに重ねられていない「ｒ」からの色値を有する図１７４の数字１７４０２によって示された位置でこれを確認することが出来る。
【０５８１】
当業者には理解可能であるが、関数９７１８Ａは、ビットマップのそれぞれを適切な位置に描画するために、ピクセルが描画される位置を制御するある種の繰り返しが、フォントビットマップの各行に対して繰り返されることを要求する。
【０５８２】
当然のことながら、本発明の他の実施形態に於いて、次の文字の対応するピクセルが透明な場合に、一つの文字からの非透明色値を単に透けて見えるようにする関数というよりは、むしろ、隣接文字からの非透明ピクセル値との重なりを結合可能な関数を提供することが出来る。
【０５８３】
そうした処理がサブピクセル対サブピクセルに基づいて、そうした透明値の結合を可能にすることが望ましい。そうした処理は、さらに演算処理が必要ではあるが、間隔の近い文字のさらに正確な表現を提供することが出来る。
【０５８４】
この結果を達成する一つの方法は以下の通りである。即ち、文字間の任意の重複するピクセルに関連付けられた３つの対応するアルファコンポーネント値のそれぞれを追加し、任意のコンポーネント値を最大可能値で切り取る。そして、結果として生じるピクセルのそれぞれを描画し、前景色及び背景色がその位置でどの程度描画されるべきかを決定するために、結合されたコンポーネントアルファ値を使用する。
【０５８５】
ユーザによって移動可能なライン又は制御で構成されたインターフェース特性１８４０２を有するという点を除いて、図１８４は図１７６に関して上述されたインターフェースに類似したヒンティングインターフェースを図示している。この制御によって、ユーザは、自身の文字フォント形状アウトラインに対して、一番左側のパディングピクセルコラムに付随するピクセルコラムの一番左の端部に位置を揃えるように選択的に位置付けることが出来る。
【０５８６】
そうしたインターフェース特性が望ましいのは、単一の垂直ストローク以外の一番左の端部を有するフォントをヒンティングする場合である。例えば、最大ピクセル幅未満で、その左端部に突き出ている小型のセリフ活字を備えた一番左の主要な垂直ストロークを有する文字フォント形状を処理する場合、ヒンティング実行者が、より左側のセリフ活字ではなく、むしろ、全ピクセル境界に揃えられた主要な一番左の端部を有することを望んでいる可能性がある。図１８４に図示されたインターフェース特性は、ヒンティング実行者がそうした配列を選択し易いものにする。
【０５８７】
ヒンティング実行者に同等の能力を与える他の方法によって、図１７０又は１７１に関して上述されているように、２つのサブピクセルパディングコラムのみを追加するかどうか、または、図１７５、１８１、及び、１８２に関して上述されているように、３つ又はそれを超えるそうしたサブピクセルパディングコラムを追加するかどうかをユーザが選択することが出来る。
【０５８８】
今述べた非線形カラーバランスサブピクセル最適化画像をより明瞭にするための方法は、図１７２乃至１７４に図示された種類の小型フォントだけでなく、例えば図５５に図示された比較的大型のフォントなど、より大きなフォントにも適用することが出来る。
【０５８９】
当然のことながら、サブピクセル最適化は、通常、３つの異なる種類のピクセル、即ち、前景ピクセル、背景ピクセル、及び、中間的にカラーバランスされたピクセルで、フォントビットマップを表現することが出来る。前景ピクセルは、表現されているフォント形状によって全体的に覆われたフォント画像の部分を表現しており、文字が表現される前景色で描画される。背景画素は、フォント形状によって全体的に覆われていないフォント画像の部分を表現しており、背景色でフォントが表示される最上部に描画される。中間ピクセルは、フォント形状で部分的に覆われたピクセル、及び／又は、部分的に覆われた近傍ピクセルに対してカラーバランス分配を受け付けるピクセルを表現している。サブピクセルのそれぞれの色は、カラーバランスによって別々に決定される。
【０５９０】
図４６、４７、５２、及び、９３に関して上述された種類の従来技術の非線形カラーバランスがフォントに適用された場合、文字形状の端部が完全にピクセル境界に揃えられたとしても、文字形状の各端部を越えて、サブピクセルの色の変化の方向に、カラーバランスが実行される。ヒンティングがどんなに上手くいっても、これが全ての文字の形状の空間的な不鮮明さをもたらす。
【０５９１】
図４８、４９、５１、及び、９１に関して上述した種類の非線形カラーバランスがフォントに適用される場合、カラーバランスによって生じる空間的な不鮮明さを大いに低減するために、ヒンティングを使用することが出来る。端部がピクセル境界に揃えられている文字の形状の部分に於いて、カラーバランス分配がピクセル境界を越えて必要にならない場合が多い。これは、そうした非線形カラーバランスのみが所定のピクセル内で生じるカラーアンバランスを分配するからである。これは、前景ピクセルをそうした位置に於いて、サブピクセルの色の変化の方向に沿って背景ピクセルの次に配置させ、フォント形状の知覚される明瞭さを大幅に向上させる。このことは、図１７３及び１７４に図示されており、これらの図中で、垂直ストロークの端部がピクセル境界と一直線になるように、垂直ストロークの実質的な部分が図示された８ピクセル／ｅｍでヒンティングされている。その結果、前景ピクセルは、多くのそうした垂直ストロークの端部の実質的な部分に沿って、背景ピクセルの次に水平方向に配置される。図１６８及び１６９に図示された一番左側の垂直ストローク端部のそれ程最適ではないヒンティングを使用する場合でさえ、カラーバランスの不明瞭さの合計は、従来技術の線形カラーバランスから生じる不明瞭さの合計に比して実質的に小さい。
【０５９２】
図１８５乃至１９０は、特に、比較的小さい又は比較的低解像度のスクリーン上でブラウズが実行される場合に、ウェブページのブラウズを向上させるために使用可能なユーザインターフェースの技術革新に関する高度に簡略化された擬似コード記述である。
【０５９３】
図１８５は、図１２９乃至１３４に関して上述された選択テキストリフロー法に関するより高度なレベルの記述である。この方法１８５００は、ウェブページのコンテンツにアクセスする関数１８５０２と、ウェブページのコンテンツの最初のレイアウトを実行する関数１８５０４とを含み、ウェブページ内のテキストについて示された異なる水平方向の位置にテキストをセットする。
【０５９４】
ウェブページの記述に使用されるマークアップ言語は、テキストの異なる部分が異なる水平方向の位置、又は、ウェブページの異なる水平方向の範囲に描画されることを指示する複数の方法（２つだけ例を挙げると、テーブルとフレームの使用）を有している。
【０５９５】
そうしたレイアウトが実行された段階で、関数１８５０６は、レイアウトの要素を所定の縮尺、及び、最初のレイアウトで決定された相対的な位置に表示する。この表示が実行された後、ステップ１８５０８は、最初のレイアウトの表示に於ける所定の水平方向位置でテキストの一部を、ユーザが選択出来るようにする。これを可能にする１つの方法は、図１３０に関して上述されている。
【０５９６】
そうした選択が実行される場合、関数１８５１０によって、関数１８５１２及び１８５１４が実行される。関数１８５１２は、ユーザが選択したテキストの第２レイアウトを実行する。コラムのライン幅に比して、異なった、通常より大きなフォントサイズをテキストが有する新しいコラムのラインを越えて、この２番目のレイアウトが選択されたテキストをリフローする。この第２レイアウトが実行される場合、関数１８５１４は、ウェブページが表示されているスクリーン、又は、スクリーンウインドウ幅の少なくとも３分の２を満たす縮尺で、新しいコラムのレイアウトを表示する。
【０５９７】
図１３５乃至１３７に関して上述したように、そのように選択されたテキストリフロー法に於ける第２レイアウトによって、ユーザはウェブページのレイアウトの選択部分を、全体的に読み易いフォントサイズで見ることが出来る。小型スクリーン、及び／又は、視聴者から比較的離れたスクリーンの両方の低解像度スクリーンに関して、非常に大きな利点である。そうした方法に於ける第１レイアウトによって、ユーザはウェブページがより通常に近い表示でどのように見えるよう計画されているかを視認することができ、見たいと考えるテキストのどの部分をより大きなフォントサイズで再表示するかを、より迅速に選択することが出来る。
【０５９８】
図１８６は、図１１８乃至１２０に関して上述した一般的な種類のズーム・トゥ・フィット法１８６００に関する高水準の擬似コード記述である。
【０５９９】
この方法は、ウェブページのコンテンツにアクセスする関数１８６０２と、ウェブページのコンテンツをレイアウトする関数１８６０４を含んでいる。
【０６００】
そうしたレイアウトの表示がスクリーン上に表示される時点で、関数１８６０８によって、ユーザはこの表示を越えてポインティングデバイスをドラッグすることが出来る。そうしたドラッグ中、スクリーンの端部に関連付けられた境界を越えてドラッグが継続する場合、関数１８６１０によって、関数１８６１２がスクリーン端部の反対側で以前にはスクリーン上に存在しなかったレイアウトの部分を、スクリーン上でスクロールさせる。これを実行するのは、大き過ぎて現在の表示縮尺でスクリーン上に全体的に適合することが出来ないレイアウトの部分、又は、一部だけがスクリーン上に存在するように、ドラッグの開始時点で位置したレイアウトの部分を、ユーザがドラッグで選択できるようにするためである。
【０６０１】
ユーザがドラッグを解除する場合、関数１８６１４によって、関数１８６１６及び１８６１８が実行される。関数１８６１８によって、レイアウトの一部がドラッグの最初と最後に一致するレイアウト上の位置に基づいて選択されたものとして定義される。そのように選択された部分は、ドラッグの水平又は垂直方向の範囲を有するレイアウトの部分、又は、そうしたドラッグの最初と最後に対応する対角部を有する領域を備えたレイアウトの部分に対応することが可能である。そして、関数１８６１８は、レイアウトの選択された部分を実質的にスクリーンに適合する縮尺で表示する。実質的にスクリーンに適合するということは、選択された幅、高さ、又は、領域が、対応する寸法又はスクリーンの寸法、或いは、表示が実行されているスクリーンの部分の、少なくとも３分の２を占めることを意味する。 
【０６０２】
図１８７は、ユーザがウェブページのレイアウトの表示内で、容易にナビゲート可能なドラッグスクロール法１８７００に関する高水準の擬似コード記述である。
【０６０３】
この方法は、ウェブページのコンテンツにアクセスする関数１８７０２、ウェブページのコンテンツのレイアウトを実行する関数１８７０４、及び、所定の倍率でレイアウトの全部又は一部を表示する関数１８７０６を含む。その後、関数１８７０８によって、ユーザはレイアウトの表示を越えてポインティングデバイスをドラッグすることが出来る。関数１８７１０は、以前スクリーン上に存在しなかったレイアウトの部分を、スクリーン端部を越えてスクリーン上でスクロールすることにより、スクリーン端部に関連付けられた境界を越えて、そうした任意のドラッグに対応する。
【０６０４】
ズーム選択関数の一部、又は、ズーム選択関数から独立したものとして、この方法を使用することが出来る。この方法には、表示スクリーンの端部、又は、表示スクリーンの端部近傍で、境界を越えてポインティングデバイスを単にドラッグさせることにより、ユーザがウェブページのレイアウトの表示をスクロール出来るという利点を有する。この方法は、スクロールバーを利用したスクロールに比して、かなり自然で速い。
【０６０５】
図１８８は、ウェブページのレイアウトの所望の部分に於いて、ユーザが即座にズームインすることを選択可能なクリックズーム法１８８００に関する高水準の擬似コード記述である。この方法は、ウェブページのコンテンツにアクセスする関数１８８０２、ウェブページのコンテンツのレイアウトを実行する関数１８８０４、及び、ウェブページのレイアウトの全部又は一部を第１縮尺で表示する関数１８８０６を含む。関数１８８０８によって、ユーザは第１縮尺で表示されたレイアウトの表示に於いて、選択された位置でポインティングデバイスをクリックすることができ、関数１８８１０は、クリックが実行されたレイアウトに於ける位置の周囲でレイアウトの部分のズームイン表示を実行することによって、そうしたクリックに応答する。一般的に、ズームイン表示は、クリックが実行されたレイアウトに於ける位置を中心とする。
【０６０６】
図１８９は、図１２１乃至１２８に関して上述されたズームクリック法１８９００に関する高度に簡略化された擬似コード記述である。
【０６０７】
この方法は、ウェブページのコンテンツにアクセスする関数１８９０２、そのコンテンツのレイアウトを実行する関数１８０９４、及び、関連付けられたポインティングデバイスを有する表示スクリーン上に、ウェブページのレイアウトの前部又は一部を第１縮尺で表示する関数１８９０６を含む。図１８９に記載されたこの方法に関する特定の実施形態に於いて、スクリーンはタッチスクリーンであり、ポインティングデバイスを人の指にすることが可能であることが意図されている。
【０６０８】
第１縮尺でレイアウトの表示が実行された時点で、タッチスクリーン表示に対して押下が実行された際に、関数１８９０８が対応する。そうした押下が発生する場合、この関数によって、関数１８９１０乃至１８９２２が実行される。
【０６０９】
関数１８９１０は、スクリーン上で、第１縮尺のウェブページの部分の表示を、より大きな縮尺のウェブページの部分のズームイン表示に置換する。このズームされた部分は、タッチスクリーンの押下に関連付けられたレイアウトに於ける選択された位置を含む。選択レイアウト位置は、選択時の第１縮尺での表示に於いて有していた位置と、実質的に同一の位置をスクリーン上に有することが望ましい。実質的に同一位置ということは、選択された位置が、ズームの直前及び直後のスクリーン上に、スクリーン上に位置する同一の接触に対応するように見える位置を有するはずだということを意味する。これは、選択された位置のスクリーン位置に於ける変化が、そうしたズームの直後に於いて、スクリーンの幅又は高さの２０％を超える割合で（そして、望ましくは、その量に比してかなり少ない量で）変更しないことを意味することが望ましい。
【０６１０】
ズームイン表示が表示された時点で、関数１８９１２は、接触に関連付けられたウェブページのレイアウトに於ける選択された位置を示すために、スクリーンが接触されている位置の上方にカーソルを表示する。タッチスクリーンデバイスによっては、特に、比較的精密なポイントを有するスタイラスを用いて使用するように設計されたデバイスでは、そうしたカーソルを必要としないが、これは、スクリーンが接触されているポイントをユーザが相当正確に見ることが出来るからである。しかし、ポインティングデバイスとして指を用いて使用するように設計されたタッチスクリーンに於いて、ユーザがそうした接触に関連付けられたスクリーンの表示に於ける位置を正確に確認できるように、多くの場合、スクリーンが接触されている位置の上にカーソルをセットすることが望ましい。これが特に望ましいのは、例えば図１２１乃至１２８に図示された、人間の指の大きさに比して比較的小さな表示を用いてこの方法が使用される場合である。
【０６１１】
接触が続く間、関数１８９１４は、ズーム表示に於いてカーソルを対応させて移動させることによって、接触の任意の動きに対応する。また、そうした接触が続く間、スクリーンの端部を越えて、以前スクリーン上に表示されていなかったレイアウトの部分を、ズームされた縮尺でスクリーン上でスクロールすることによって、関数１８９１６はスクリーン端部に関連付けられた境界を越えて、接触の任意の動きに対応する。これにより、ユーザは、ズームクリックモードの状態でウェブページのズームされた表示内で迅速に、且つ、便利にスクロールすることが出来る。
【０６１２】
関数１８９１８は、ユーザがウェブページのズーム表示に於ける所定の位置で接触を解除する場合に応答する。接触が解除される場合、関数１８９２０は、あたかも解除位置に対応するウェブページに於ける位置でポインティングデバイスのクリックが発生したかのように動作する。例えば、ウェブリンクに対応するレイアウト位置で接触が解除される場合、システムはリンクを選択することによって対応し、ラジオボタンの位置で接触が解除される場合には、システムは、ラジオボタンの状態を切り替えることによって対応する。
【０６１３】
これが実行された時点で、関数１８９２２は、スクリーン上でズームインされたレイアウトの表示を、ポインティングデバイスの押下が関数１８９０８によって検知される前にウェブページが表示されていた同一の倍率でレイアウトの表示に置換する。
【０６１４】
図１２１乃至１２８に関して上述したように、ズームクリックによって、選択された部分のコンテンツを読み易く、且つ、ポインティングデバイスで正確に選択し易くするズームインの縮尺で、ウェブページの所望の部分をユーザが迅速に視認及び選択できるようにするための有益な技術を提供する。
【０６１５】
図１９０は、ユーザがテキストラインを表現するためにグリーキングを使用してウェブページのズームアウトビューを視認することが可能な方法１９０００に関する高度に簡略化された擬似コード記述である。グリーキングは、読み取り不可能なグラフィック表現でテキストの部分が文書中にレイアウトされるサイズに関する表現である。
【０６１６】
この方法は、ウェブページのコンテンツにアクセスする関数１９００２、ウェブページのコンテンツのレイアウトを実行する関数１９００４、及び、ウェブページのコンテンツ表示のレイアウトを有するようにユーザが選択した縮尺を検出する関数１９００６及び１９０１４を含む。
【０６１７】
ユーザがウェブページのレイアウトを所定のより大きな縮尺で表示することを選択した場合、関数１９００６によって、関数１９００８はウェブページのレイアウトの部分をそのより大きなスケールで表示させる。これは、より大きな縮尺で表示するために拡大／縮小されたビットマップ画像でレイアウトの画像を表現するための関数１９０１０を実行することと、より大きな縮尺での表示に適したサイズを有する別々のビットマップで構成されたビットマップでウェブページの文字列のレイアウトを表現する関数１９０１２を実行することを含む。
【０６１８】
一方、小さ過ぎるので、読み取り可能なサイズで、少なくとも幾つかのウェブページのテキストを所定のより小さな表示縮尺で表示することが不可能なそうした表示縮尺をユーザが選択した場合、関数１９０１４によって、関数１９０１６はより小さな縮尺でウェブページのレイアウトの部分を表示させる。これは、より小さな縮尺で表示するために縮小されたビットマップ画像を用いてレイアウト画像を表現する関数１９０１８を実行することと、より小さな縮尺での表示に於いて、個々の文字列のサイズ及び位置を示すグリーキングされたテキスト表現で構成されるビットマップを用いて、少なくとも幾つかの文字列を表現する関数１９０２０を実行することを含む。
【０６１９】
多くの場合、そうしたグリーキングに於ける文字列を表現するために使用されるビットマップは、小さな縮尺でウェブページのレイアウトに於ける対応する文字列のサイズに一致する幅、及び／又は、高さを有する直線又は矩形に過ぎない。
【０６２０】
テキストが小さすぎて読めないようなサイズでレイアウトを表示する場合、テキストのグリーキングされた表現を使用することによって、そうした表示をより容易、且つ、快適に見ることが出来るようになり、一般に、そうしたグリーキングは、読み取り不可能な小さなフォントビットマップから対応する文字列画像を生成する場合に比して、その生成に必要な演算処理が少ない。
【０６２１】
図１９０に図示された方法に関する主要な使用方法の１つは、ユーザに対してウェブページのレイアウトのオーバービューを即座に視認可能とさせ、例えば、図１３６及び１３７に関して上述されたウェブページなど、そうしたウェブページの異なる部分を即座に選択可能にさせることである。
【０６２２】
コンピュータユーザインターフェースの当業者は、図１８５乃至１９０に記載された方法の幾つかを、互いの組み合わせ、及び、単一ユーザインターフェースモードの一部として上述された本発明の他の特徴との組み合わせで使用することが出来るが、その他の方法を、一般的に異なるユーザインターフェース、又は、異なるユーザインターフェースモーで使用するということを評価するだろう。
【０６２３】
図１９１乃至２０３は、ユーザが第１縮尺ビュー、及び、第２縮尺ビューでウェブページを表示可能な本発明の一つの特徴を説明している。第１縮尺ビュー画像に於いて、コラム幅、及び、画像及びコラムの水平置換は、第１サイズセットを有する。第２縮尺ビューに於いて、そうした画像、コラム幅、及び、水平置換は、より小さな第２サイズセットを有しているが、画像、コラム幅、及び、そうした水平置換に関連して、フォントサイズは、第１縮尺ビューよりも第２縮尺ビューに於いてより大きくなっている。
【０６２４】
また、これらの図面に図示された実施形態によって、画像、コラム幅、水平置換、及び、フォントの全てが第１縮尺ビュー、及び、第２縮尺ビューの何れかに比して大きなサイズで表示される第３縮尺ビューを形成することが出来る。
【０６２５】
図１９１乃至２０３に関する実施形態は、図１９３に図示された携帯情報端末（ＰＤＡ）１９３０４の固定解像度スクリーン１９３０２上に、これらの異なる縮尺ビューを表示する。この実施形態に於いて、スクリーンは３２０×２４０の解像度を有している。第１縮尺ビューによって、ウェブページが６４０×４８０の仮想解像度で表示される。これは、画像、コラム幅、及び水平置換といった要素が、より大きな解像度で表示された場合に、６４０×４８０スクリーンに関連して有するように、第１縮尺ビューによって、３２０×２４０スクリーンに関連した同一サイズでこれらの同一要素を表示するということを意味する。第２縮尺ビューによって、ウェブページが８００×６００の仮想解像度で表示される。第２縮尺ビューは、ウェブページが８００×６００解像度スクリーン上に表示されていた場合に、画像、コラム幅、水平置換といった要素が有することになるように、３２０×２４０スクリーンに関連した同一サイズでこれらの要素を表示するが、第２縮尺ビューに於いて、これらの要素に関連して、第１縮尺ビューに於ける状況に比して、フォントがより大きなサイズを有するということを意味する。
【０６２６】
第１縮尺ビューで使用されるように、フォントが同一サイズのフォントビットマップを用いてスクリーン１９３０２上に実際に表示可能となるように、フォントは第２縮尺ビューに於ける他の特徴に比べて大きい。これが実行されるのは、第１縮尺ビューに於ける殆どのテキストに対して使用されるフォントが、容易に読み取り可能な程度に小型の８ピクセル／ｅｍフォントだからである。第１縮尺ビューによって、３２０×２４０スクリーン上にそれを適合させるために、２つの要因によって、その仮想６４０×４８０解像度を縮小する。しかし、第２縮尺ビューに於ける８００×６００レイアウトは、３２０×２４０スクリーン上にそれを適合させるために、さらに、２．５倍縮小される。このように、第２縮尺ビューに於ける類似のテキストに対するフォントビットマップも８ピクセル／ｅｍにするために、相対フォントサイズは、第１縮尺ビューのレイアウトに比して、第２縮尺ビューのレイアウトに於いて、約２５％大きくならなければならない。第２縮尺ビューに於ける同一の表示されたフォントサイズの使用によって、ウェブページのレイアウトがその表示に於いて縮小される大きな割合にも関わらず、テキストを容易に読み取り可能な状態のままにすることが可能である。
【０６２７】
上述のように、図１９３乃至２０３に図示された実施形態に於いて、第３縮尺ビューも選択することが可能である。この表示は、第１縮尺ビューに見られるように、画像、コラム幅、及び、水平置換に関連して、実質的に同一のフォント／サイズではなく、ウェブページがあたかも４８０×３２０スクリーン上で表示されているように、スクリーンに関連して、画像サイズ、コラム幅、及び、水平置換を同一サイズで表示する。これにより、第１縮尺ビューに見られるように、より大きなフォントビットマップが第３縮尺ビューに於ける同一テキストの表示に対して使用される。
【０６２８】
図１９１は、図１０２乃至１０９に関連した上述の本発明に関する実施形態に関連して、本発明の該特徴を達成するための一つの方法に関する高度に簡略化された擬似コードの説明である。  
【０６２９】
ユーザが図１９３に図示されたＰＤＡ１９３０４上のウェブページを表示する際に、ＰＤＡのボタン１９３０２の内、指定された一つを押下することによって、ユーザがポップアップメニューを表示することを選択することが可能である。ユーザがそうしたポップアップメニューを表示することを選択する場合、図１９１の関数１９１００によって、関数１９１０１乃至１９１４０が実行される。関数１９１０１は、図１９４に於ける波線１９４０２に図示されているポップアップメニュー１９４０２を表示する。
【０６３０】
関数１９１０１がポップアップメニューを表示した時点で、ユーザが図１９４に図示された表示サイズボタン１９４０４を選択する場合、図１の関数１９１０２によって、関数１９１０４がサイズオプションメニューを表示させる。図示された実施形態に於いて、該メニューは、図１９５に図示された３つのボタン１９５０２、１９５０４、及び、１９５０６で構成される。これらのボタンの一つを選択することによって、２つ又はそれを越えるこれらのパラメータを別々に選択する必要なく、グループとして、第１、第２、及び、第３縮尺ビューのそれぞれに関連して、仮想解像度、フォントサイズ、及び倍率を含む、パラメータのセットをユーザが選択することが出来る。
【０６３１】
ユーザは、図１９５に図示されたボタン１９５０２を押下することによって、第２縮尺ビュー（８００×６００の仮想解像度ビュー）の表示を選択することが可能である。ユーザが該ボタンを押下する場合、関数１９１０６によって、関数１９１０８乃至１９１１６が実行される。
【０６３２】
関数１９１０８によって、ポップアップメニュー１９４０２の表示、及び、表示サイズオプションメニューが表示スクリーンから取り除かれる。関数１９１１０は、仮想解像度コマンドを図１０２に図示されたプロキシサーバ２１０に送信する。
【０６３３】
仮想解像度コマンドの生成は、サブ関数１９１１２乃至１９１１６を含む。関数１９１１２は、８００×６００の仮想解像度で表示に於いて使用されるフォントのセットが、８、９、１０ピクセル／ｅｍフォントを含む、より小さなフォントのセットであることを要求する。これは、例えば、７２ｄｐｉの観点でポイントサイズを定義するマッキントッシュ等のコンピュータ上で、８、９、１０ポイントのポイントサイズをそれぞれ有するフォントサイズに対応する。例えばＩＢＭ  ＰＣコンパチブルコンピュータなど、９６ｄｐｉに基づくポイントサイズを定義するコンピュータ上で、これらのポイントサイズは、それぞれ約４分の３の大きさ、又は、６、７、８ポイントである。
【０６３４】
好ましい実施形態に於いて、殆どのウェブページのテキストは、高い確率で８ピクセル／ｅｍフォントで表示される。それらの小型フォントに対して、アンチエイリアスフォントを使用することが望ましい。好ましい実施形態に於いて、例えば、図１７２乃至１７４に図示されたような、非線形カラーバランス８ピクセル／ｅｍフォントが使用される。これらの同一フォントは、図２０４乃至２０９に詳細に図示されている。
【０６３５】
図２０４は、４倍に引き伸ばされた図２０２に図示されたテキストの段落を図示している。図２０５は、再び４倍に引き伸ばされた図２０４に於ける波線によって囲まれた、図中の単語「ｈｙｄｒｏｇｅｎ」を図示している。図２０６乃至２０９は、図２０５に図示された単語「ｈｙｄｒｏｇｅｎ」から、「ｈ」、「ｙ」、「ｄ」、及び、「ｅ」を別々に図示している。
【０６３６】
図２０４に於いて、テキストの第１ラインは、ヘディングテキストに対応し、比較的大きな１０ピクセル／ｅｍフォントで表示される。残りのテキストはボディテキストであり、より一般的な８ピクセル／ｅｍフォントで表示される。
【０６３７】
図２０４乃至２０９からわかるように、これらのフォントに於いて、文字の形状に関連して、形状が同一の高さで生じる２つの垂直ストロークを有する多数の文字は、２つの垂直ストロークを表現する比較的覆われたピクセルが、比較的覆われていない少なくとも１ピクセルによって分離される、１ピクセル行を少なくとも有する。図２０６乃至２０９のそれぞれにおいて、２つ又はそれを越える比較的覆われたピクセルは、２０６０２でラベル付けされ、比較的覆われていないピクセルは、２０６０４とラベル付けされている。比較的覆われたピクセルは、比較的覆われていないピクセルの領域に比して、領域が表現されている文字の形状で覆われているピクセルである。フォント表示に於いて、例えば、図２０４乃至２０９に見られるように、文字の前景色が暗く、その背景色が明るい場合、比較的覆われたピクセルは比較的暗く、比較的覆われていないピクセルは比較的明るい。
【０６３８】
また、これらのフォントに於いて、図２０４及び２０５からわかるように、２つのそのような水平に間隔が空けられた垂直ストロークを有する多数の小文字も、アドバンス幅、即ち、任意の文字間の空間を含む４ピクセルコラム、又は、それ未満の任意の文字の幅に対応するピクセルコラムの総数を有する。これは、そのように比較的容易に文字を読み取るには極めて小さなアドバンス幅である。
【０６３９】
図２０５に於いて、「ｈｙｄｒｏｇｅｎ」のそれぞれの文字のアドバンス幅は、数字を用いて図示されている。同図からわかるように、「ｒ」を除く該単語の文字の全てが、アドバンス幅４を有しており、２つの垂直ストロークを有していない「ｒ」は、アドバンス幅３を有している。
【０６４０】
図１９１を再び参照すると、関数１９１１４は、第２縮尺ビューに対してプロキシサーバによって実行されるレイアウトで使用される仮想スクリーンサイズが８００×６００ピクセルであることを要求する。
【０６４１】
図１９１１６は、第２縮尺ビューに対する倍率を２．５に設定する。該倍率によって、プロキシサーバの仮想レイアウトに於ける使用に対して、図１０６Ａの関数１０６１８によって戻される文字列測定は、第２縮尺ビューに於いて使用されるより小型のフォントセットの８、９、１０ピクセル／ｅｍサイズから、２．５倍拡大される。該拡大が、断片的なピクセルサイズを含んだ文字列測定を結果としてもたらす場合、関数１０６１８は、それがプロキシサーバのブラウザソフトウェアに戻る文字列測定を、次の全体ピクセルサイズに切り上げる。また、図１０２に図示された、ダウンロードされた表示リスト１０２１２に入る場合、図１９３に図示されたＰＤＡ１９３０４に対応する、図１０２に図示されたクライアントコンピュータ２００のスクリーン上の表示に対して、２．５倍率で、プロキシサーバのブラウザソフトウェアによって形成された仮想レイアウトに於ける特徴に関する仮想位置及びサイズは、２．５倍で縮小される。
【０６４２】
図１９２は、図１０５Ｂに於いて１０５５４乃至１０５６０と番号が付与された擬似コード関数が、図１９１の関数１９１１０、１９１１２、及び１９１３４によって生成された仮想解像度コマンドの種類に対してさらに適切に反応するために、如何にして修正され得るかを図示している。擬似コードの該部分は、図１９２に下線を付与された図中のラインの追加を除いて、図１０５Ｂの対応する部分に一致する。
【０６４３】
図１９２に於いて、プロキシサーバコンピュータの仮想解像度コマンドに対する対応は、ブラウザの仮想スクリーン解像度をコマンドに於いて要求されたものに変更することだけでなく、仮想レイアウト１０２０６の形成に於けるプロキシサーバによって使用されるフォントセット及び倍率を変更することと、図１０２に関して上述されている縮小ダウンロード表示リスト１０２１２に対応することを含むように、下線を付した関数１９２０２及び１９２０４が追加されている。図１９２に図示された擬似コードに於いて、新たに要求されたフォントセット及び倍率を使用して、新しい仮想スクリーン解像度で現在のウェブページを再びレイアウトさせる、プロキシサーバのブラウザソフトウェアのスクリーン再描画関数に関数１０５６０が呼び出しを行う前に、これらの３つの変更全てが実行される。
【０６４４】
ユーザは、図１９５に図示されたボタン１９５０４を押下することによって、第１縮尺ビューに関する６４０×４８０の仮想解像度レイアウトを選択することが出来る。ユーザが該解像度レイアウトを選択する場合、図１９１の関数１９８１８によって、関数１９１２０乃至１９１２８が実行される。これらの関数は、（１）関数１９１２４が要求された実際のスクリーンサイズを、８００×６００ピクセルではなく、６４０×４８０ピクセルにセットし、（２）関数１９１２８が倍率を２．５倍ではなく２倍にセットする、という点を除いて、８００×６００の仮想レイアウトに関して上述された関数１９１０８乃至１９１１６に正確に対応する。
【０６４５】
６４０×４８０の仮想スクリーン解像度ビューが選択される場合、プロキシサーバの仮想レイアウトで使用される図１０６Ａの関数１０６１８によって戻される文字列測定は、要求されたより小さなフォントセットの８、９、１０ピクセル／ｅｍサイズから、倍率２で拡大される。これによって、フォントは、第２の８００×６００の仮想解像度縮尺ビューに比して、例えば、第１縮尺ビューに於ける画像、コラム幅、及び、水平置換などの要素に関連して、比較的小さなサイズを有することになる。
【０６４６】
図１９５のボタン１９５０６を押下することによって、ユーザは、第３縮尺ビュー、即ち、４８０×３２０の仮想解像度を選択する場合、図１９１の関数１９１３０によって、関数１９１３２乃至１９１４０が実行される。これらの関数は、（１）関数１９１３６は４８０×３２０ピクセルの仮想スクリーンサイズを要求し、（２）関数１９１３８は、プロキシサーバによって使用されるフォントセットが、８００×６００の仮想解像度表示、又は、６４０×４８０の仮想解像度表示の何れかで使用されるフォントセットよりも、より大きなフォントセットであることを要求し、（３）関数１９１４０は倍率を１．５に設定するという点を除いて、８００×６００レイアウトに関連して上述された関数１９１０８乃至１９１１６に一致している。
【０６４７】
６４０×４８０の仮想レイアウトで使用される、より小型のフォントセットに於けるフォントサイズに対する、４８０×３２０の仮想解像度表示で使用される大型のフォントセットに於けるフォントサイズの割合は、約３分の４である。これは、６４０×４８０の仮想レイアウトで使用される倍率２に関連して、４８０×３２０の仮想レイアウトで使用される倍率１．５の割合の逆数である。この関係の結果として、４８０×３２０の仮想解像度ビューに於けるフォントは、６４０×４８０の仮想レイアウトに於けるフォントと同様に、画像、コラム幅、及び水平置換に関連して、略同一サイズを有する。４８０×３２０の仮想解像度表示に於ける３２０×２４０スクリーン上に表示されたフォントの実際のサイズは、１１、１２、及び、１３ピクセル／ｅｍである。
【０６４８】
図１９６、１９７、１９８は、図１９１に関して上述された、４８０×３２０、６４０×４８０、及び、８００×６００の仮想解像度で、それぞれレイアウトされる際の同一ウェブページの表示を図示している。これらの図面のすべては、図１０２に表示されたプロキシサーバ２１０によって形成された表示リスト１０２１２に類似の表示リストからクライアントコンピュータ上に生成されている３２０×２４０ピクセルスクリーンからのスクリーンショットである。
【０６４９】
図１９６、１９７、１９８を比較することから分かるように、画像１９６０２及び１９６０４のサイズ、コラム１９６０６及び１９６０８の幅、それらのコラムの水平置換は、仮想レイアウト解像度及び倍率が増加するにつれて小さくなる。図１９７及び１９８を比較することから分かるように、フォントの実際のサイズは両図に於いて同一であるとしても、そうした画像、コラム幅、及び、コラム置換のサイズに関連したフォントのサイズは、図１９７に比して図１９８の方が大きい。
【０６５０】
上述のように、今日、多くのウェブページにとって、８００ピクセルの特定のレイアウト幅でレイアウトされることが一般的である。図１９６、１９７、及び、１９８の比較は、図１９８の８００×６００の仮想解像度表示が、他の表示に比して、そのウェブページが見られることになる幅に関して、より高い割合を示すことを図示している。このように、それはウェブページに関するさらに適切な表示を提供する。
【０６５１】
ここで留意すべきは、３つの異なる縮尺ビューの何れかで、垂直スクロールバーが３２０×２４０スクリーンのディスプレイ上に必要とされる場合、仮想解像度レイアウトに関する実際の幅は、仮想レイアウトに関連した垂直スクロールの幅によって減少されるということである。図１９６及び１９７を比較することから分かるように、４８０×３２０解像度レイアウトに於けるその幅に関連して、それらの異なる表示に於いて、使用される倍率２．０、及び、倍率１．５によって、スクロールバーの幅が６４０×４８０解像度レイアウトに縮小されている。図１９８に図示された８００×６００の仮想解像度ビューに於いて、それがあまりにも狭くなって、ユーザが容易にそれを作動させることが困難になることを防止するために、表示された垂直スクロールバーは、６４０×４８０の仮想解像度ビューに於ける幅と同一幅を有している。
【０６５２】
図１９９は、同一ウェブページの表示を表示する図２００と同一の描画シート上に表示されるという点を除いて、通常のブラウザプログラムで生成された実際の８００×６００ピクセルスクリーン上に見られるように（図２００を図１９９と同一サイズにするために縮小されるように）、同一ウェブページの表示を表示する図１９７と一致している。図１９９及び２００に図示された特定のウェブページが様々なレイアウト要素のサイズを特定する方法のおかげで、非テキスト要素の水平幅は、殆どのウェブページに対して変化することに比べて、図１９９の縮小された仮想８００×６００ビューと実際の８００×６００ピクセル表示の間で、より変化する。
【０６５３】
図２０１、２０２、及び、２０４は、他のウェブページの表示を図示している。
【０６５４】
コンピュータが、第１縮尺、又は、６４０×４８０の仮想解像度で、図１９１に関して上述したビューを機能させる場合、図２０１は、図１９３に図示されたＰＤＡ１９３０４のスクリーン１９３０２上に生成された、この他のウェブページのビューを図示する。
【０６５５】
図２０２は、図１９１に関して上述した第２縮尺ビュー、又は、８００×６００仮想解像度ビューを用いて生成されるという点を除き、図２０１に於けるウェブページの表示に類似している。
【０６５６】
図２０３は、標準的なウェブブラウザによって、実際の８００×６００ピクセルウインドウ上に形成された図２０２に図示されたウェブページと同一のウェブページを図示している。
【０６５７】
画像、コラム幅、及び、画像及びコラムの両方に関する水平置換の大きさが、図２０１に比して、図２０２に於いてより小さいということがわかる。また、フォントのサイズが両図に於いて同一であるが、フォントは、画像、コラム幅、及び、図２０２に於ける画像及びコラムの両方の水平置換に関するサイズに関連して、より大きいことがわかる。
【０６５８】
図２０１及び２０２の比較は、８００×６００の仮想レイアウトモードによって、ウェブページのレイアウトに関するより大型の水平部分が、一度に３２０×２４０スクリーンに表示することが可能であるということを示している。図２０３と、図２０２及び２０１との比較は、図２０２の８００×６００の仮想解像度ビューが、図２０１の６４０×４８０の仮想解像度ビューに比して、ウェブページに関する実際の８００×６００表示にさらに類似しているということを示している。
【０６５９】
このように、８００×６００の仮想解像度ビューの使用によって、小型スクリーンコンピュータのユーザは、デスクトップコンピュータ、又は、ラップトップコンピュータのより大型のスクリーン上で見られる方法に良く似た方法で表示されたウェブページを視認することが出来るということがわかる。
【０６６０】
当然のことながら、本発明の他の実施形態に於いて、他のより小さな、又は、より大きな仮想スクリーン解像度は、第１縮尺ビュー又は第２縮尺ビューに対して使用可能である。例えば、１０２４×７６８ピクセルの仮想解像度でスクリーンをレイアウトし、１０２４×７６８の仮想解像度を要求し、同一のより小型のフォントサイズの使用を要求し、倍率３．２を要求した、図１９１に図示されたコマンド１９１１０に類似の仮想解像度コマンドを使用することによって、図１９３に図示された３２０×２４０スクリーン上で表示することが可能である。
【０６６１】
また、当然のことながら、現在の発明は３２０×２４０ピクセルの表示を用いて使用することに限定されない。例えば、テキストの可読性を維持するためのそうした特徴に関連して、同時にフォントの相対的なサイズを増加させながら、ウェブページの画像、コラム幅、及び、水平置換が表示されるサイズを減少させる技術革新を低解像度スクリーン上で使用することが出来る。
【０６６２】
例えば、ウェブページのレイアウトを縮小する方法は、ウェブページのより大きな部分を携帯電話のスクリーンにマッピングするために使用することが出来る。例えば、上述の８００×６００の仮想表示に於いて使用される同一の倍率２．５を使用することによって、４４０の仮想ピクセル幅は、１７６ピクセル幅のスクリーンを有する携帯電話上に表示することが出来る。例えば、腕時計型コンピュータなど、他のタイプの小型コンピュータもまた、ウェブページのレイアウトを縮小する発明のスキームを使用することが出来る。
【０６６３】
該技術革新は、３２０×２４０よりも高解像度のスクリーン上で使用可能である。例えば、現在、６４０×４８０解像度を有するＰＤＡサイズのスクリーンを製造することが可能である。該技術革新によって、スクリーン上の実際の６４０×４８０解像度ビューと、同一スクリーン上の縮小された８００×６００、又は、１０２４×７６８の仮想解像度ビューから選択することが可能である。また、該技術革新は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、及び、タブレットコンピュータで使用されるより大きな解像度スクリーンなどで、より高解像度のレイアウトの縮小された表示を表示するために使用することが出来る。
【０６６４】
本発明に関する多くの実施形態に於いて、それぞれの表示で作り出されるレイアウトが、ウェブページの表現を実際の見栄えと同様に、ビューの関連した仮想解像度で実際に表示されるかのように、忠実にウェブページの表現を提供するように、第１、第２、及び、第３縮尺ビューのそれぞれは、画像及びコラムに対する画像、コラム幅、及び、水平置換のサイズを縮小するための別々の一般的な倍率を使用する。他の実施形態に於いて、異なるレイアウト要素に関連した倍率は異なった倍率になる可能性がある。例えば、画像はコラム幅よりも縮小される可能性があり、また、その逆の可能性もあり得る。
【０６６５】
上述の本発明に関する実施形態に於いて、ブラウザのレイアウトエンジンに対して、仮想レイアウト解像度でウェブページがレイアウトされていることを伝え、その後、実際の表示に対してウェブページの要素のサイズ及び位置を縮小することによって、３つの縮尺されたビューが形成される。本発明は該方法の使用に制限されない。例えば、他の実施形態に於いて、画像、コラム幅、水平置換のピクセルサイズを含むピクセルサイズに対する全ての参照を、レイアウト前にその倍率で縮小するために、ブラウザのレイアウトエンジンを修正することができ、その後、該レイアウトエンジンは、ウェブページが表示される実際のピクセル解像度でレイアウトを実行することが可能である。
【０６６６】
図１９１乃至２０３に関する上述の実施形態のように、本発明の多くの実施形態によって、ユーザは、例えば、画像、コラム幅、及び、水平置換などのウェブページの要素が表示されるサイズを減少させる一つ又は複数のパラメータのセットを選択可能となり、ユーザにパラメータに関するこれらの異なるセットを別々に選択することを要求することなく、グループとして、そうした要素に関連してフォントが表示されるサイズを増加させる一つ又は複数のパラメータのセットを選択可能となる。このことは、ユーザが異なる縮尺ビューからより迅速に選択可能になるという利点を有する。しかし、本発明の幾つかの実施形態に於いて、ユーザは、画像、コラム幅、及び、水平置換を縮小する一つ又は複数のパラメータのセット、及び、相対的なフォントサイズを制御する一つ又は複数のパラメータのセットを別々に強制的に選択させられる可能性がある。
【０６６７】
当然のことながら、上述の記述、及び、図面は、単に説明、及び、図示を目的として使用されており、本発明は添付された請求項の解釈がそのように限定される場合を除き、これに限定されることはない。それら以前に開示を有する当業者は、本発明の範囲から逸脱することなく、修正及び変更を加えることが出来る。
【０６６８】
特許請求の範囲として広く請求されているように、本出願の発明は、オペレーティングシステム、コンピュータハードウェア、又は、コンピュータネットワークの１種類だけで使用することに限定されず、これにより、本発明の他の実施形態とは異なるソフトウェア、及び、ハードウェアシステムを使用することが可能である。
【０６６９】
さらに、当然のことながら、下記の請求項に記載のプログラムの動作は、実質的にすべてのプログラムの動作のように、実質的に異なる構成及び順序を用いて、多くの異なるプログラム及びデータ構造によって実行される可能性がある。これは、プログラムというものは、当業者によって理解される時点で、どんな複雑な所定のアイデアも、実質的に無限の方法で明らかにすることが可能な、極度に柔軟性のある技術だからである。このように、請求項は、図面に記載された正確なステップ、及び／または、ステップの連続に限定されることを意図していない。これが特に当てはまるのは、上記文章に記載された擬似コードが、不必要に詳細に記載することによって当業者を苦しめることなく、当業者が本発明を実施するために必用な事項をより効率的に伝えるために高度に簡略化されているからである。そうした明細書のために、上述の擬似コードの構造は、本発明を実施する際に、熟練したプログラマーが使用する実際のコードの構造とは相当異なる場合が多い。さらに、明細書に於けるソフトウェアで実行されている図中のプログラムされた動作の多くは、他の実施形態に於けるハードウェアで実行可能である。
【０６７０】
上記議論した本発明に関する多くの実施形態に於いて、本発明のこれらの特徴に関する他の実施形態に於いて別々に発生する可能がある本発明の様々な特徴は、同時に発生することが示されている。
【０６７１】
この明細書の様々な部分で記載されたサブピクセル最適化及び非線形カラーバランスに関する様々な説明の殆どは、垂直サブピクセルストライピングを有する、ＲＧＢサブピクセルアドレス可能表示に関連している。当然のことながら、非線形カラーバランス、及び、サブピクセル最適化に関連する技術革新の多くは、水平サブピクセルストライピングを有するサブピクセル表示と同様に、ＢＧＲ又は他の種類のサブピクセルアドレス指定能力を有するサブピクセル表示を用いて使用することが出来る。
【０６７２】
上記に示された非線形カラーバランス方法に於いて、カラーバランスによって分配されたサブピクセルの輝度の一部だけが、ピクセル内の最小サブピクセル輝度値よりも高い部分である。しかし、他の実施形態に於いて、ピクセルの平均、又は、最大サブピクセル輝度と異なる部分など、ピクセル内でカラーアンバランスを引き起こすサブピクセルの輝度の他の部分を分配可能である。そうした実施形態に於いて、そうした平均値、又は、最大値に比して小さなサブピクセル輝度値は、事実上、そうしたサブピクセルの近傍に於けるサブピクセルの輝度値に関する重み付けされた減少によって分配可能な負の輝度値となる。
【０６７３】
上記に図示した全ての非線形カラーバランス法は、ピクセルに対応するサブピクセル内でカラーアンバランスを引き起こすサブピクセルの輝度の部分を分配するだけである。これが実行されるのは、全ピクセル内で一般的に発見される３つの連続するＲＧＢ又はＢＧＲサブピクセルの配列が、知覚的に良好にカラーバランスされているからである。そうした全ピクセルのサブピクセルが等しい輝度である場合、緑色が中央の色ではない順番で、同一強度で表示された同一の３色のサブピクセルの分離したセットに比して、表面上、より色のバランスが取れているように見える傾向がある。これが、全ピクセル境界以外で現れるフォントの端部がカラーアンバランスしているように見える理由の１つなのである。
【０６７４】
しかし、他の非線形カラーバランスに関する実施形態を、個々の全ピクセル内でカラーアンバランスを引き起こすサブピクセル輝度を分配することだけに制限する必要はない。他の非線形カラーバランスに関する実施形態は、全ピクセル以外の領域内でのサブピクセルカラーアンバランスの割合を決定し、全体的又は部分的にアンバランスに基づいたサブピクセル輝度値をそうした領域に分配することが出来る。例えば、一般的に生じる複数のアンバランスパターンのそれぞれに対して、カラーバランスの知覚を維持しながら、アンバランスカバレッジ値のどの分配が最小の空間拡散を生成したかを発見するための研究を行うことができ、全ピクセル領域以外の空間領域で発生するカラーアンバランスを分配するために、そうした知覚的に選択された分配を使用することが出来る。
【図面の簡単な説明】
【０６７５】
【図１】特に、比較的低解像度のスクリーンを備えたシステム上で、ウェブブラウズ、及び／又は、他の種類のコンピュータで作成されたコンテンツの表示を向上させるための本発明に係る幾つかの特徴に従って使用される処理を示す図。
【図２】ポータブルブラウザ、プロキシサーバ、ウェブサーバ、及び、フォントサーバを有する、本発明が実行可能なネットワークコンピューティング環境を示す図。
【図３】ブラウザ、及び、ウェブサーバを有する、本発明が実行可能な代替ネットワークコンピューティング環境を示す図。
【図４】ブラウザ、及び、ウェブサーバを有する、本発明が実行可能な第２代替ネットワークコンピューティング環境を示す図。
【図５】ブラウザ、及び、ウェブサーバを有する、本発明が実行可能な第３代替ネットワークコンピューティング環境を示す図。
【図６】表示される標準的なウェブコンテンツと、そのコンテンツを拡大／縮小、及び／又は、サブピクセル最適化するための処理を含むブラウザ機能と、を有する本発明が実行可能なコンピュータシステムを示す図。
【図７】表示されるコンテンツ、そのコンテンツを拡大／縮小、及び／又は、サブピクセル最適化するためのプロキシ処理、及び、ブラウザ機能を有する、本発明が実行可能な代替コンピュータシステムを示す図。
【図８】以前に拡大／縮小、及び／又は、サブピクセル最適化されたコンテンツを有する本発明が実行可能な第２代替コンピュータシステムを示す図。
【図９】従来の垂直ストライプ型ＲＧＢ液晶表示装置を示す図。
【図１０】図１のステップ１０８及び１１２のそれぞれに関して参照された、画像及びテキストの両方に関するサブピクセル最適化の実行に含まれる本発明の幾つかの特徴を示す図。
【図１１】３２０×２４０カラーディスプレイ上に標準的なウェブコンテンツを表示する際に、本発明に関する現在の実施形態によって提供される可読性のレベルを示す図。
【図１２】より高解像度のソースビットマップ画像１０２の一部にわたって行われるピクセルとサブピクセルグリッドのマッピングを示す図。
【図１３】図１２のマッピンググリッドの一部分に関する拡大図。
【図１４】低解像度の表示装置の赤色（Ｒ）サブピクセルの輝度を算出するために用いられるソース画像上のウインドウの位置決めを示す図。
【図１５】低解像度の表示装置の緑色（Ｇ）サブピクセルの輝度を算出するために用いられるそうしたウインドウの位置決めを示す図。
【図１６】低解像度の表示装置の青色（Ｂ）サブピクセルの輝度を算出するために用いられるそうしたウインドウの位置決めを示す図。
【図１７】一つ又は複数の異なる色のピクセルによって覆われた、より高解像度のソース画像に於いて、赤色ピクセルの関連ウインドウの一部を推定することによって、比較的低解像度を有する表示装置上の赤色サブピクセルに関するサブピクセル輝度を算出するためのスキャンラインカバレッジ法で使用されるスキャンラインを説明する図。
【図１８】図１７に図示された低解像度表示装置の緑色（Ｇ）サブピクセルの輝度を算出するために使用される類似のスキャンラインを示す図。
【図１９】図１７及び１８に図示された低解像度表示装置の青色（Ｂ）副画素の輝度を算出するために使用される類似のスキャンラインを示す図。
【図２０】単純比較の為に図２１及び２２と同一シート上に示された図１７を繰り返す図。
【図２１】赤色ピクセルのソース画像ウインドウ内に於いて、異なるソース画像ピクセルで覆われた、図２０に図示された水平スキャンラインの複数部分を示す図。
【図２２】赤色ピクセルのソース画像ウインドウ内に於いて、異なるソース画像ピクセルで覆われた、図２０に図示された垂直スキャンラインの複数部分を示す図。
【図２３】図１８と同一であり、単純比較の為に図２４及び２５と同一シート上に示された図。
【図２４】緑色ピクセルのソース画像ウインドウ内に於いて、異なるソース画像ピクセルで覆われた、図２３に図示された水平スキャンラインの複数部分を示す図。
【図２５】緑色ピクセルのソース画像ウインドウ内に於いて、異なるソース画像ピクセルで覆われた、図２３に図示された垂直スキャンラインの複数部分を示す図。
【図２６】図１９と同一であり、単純比較の為に図２７及び２８と同一シート上に示された図。
【図２７】青色ピクセルのソース画像ウインドウ内に於いて、異なるソース画像ピクセルで覆われた、図２６に図示された水平スキャンラインの複数部分を示す図。
【図２８】青色ピクセルのソース画像ウインドウ内に於いて、異なるソース画像ピクセルで覆われた、図２６に図示された垂直スキャンラインの複数部分を示す図。
【図２９】例えば、図１７乃至図２８に関して説明したラインカバレッジ値等のラインカバレッジ値に基づいてサブピクセル輝度値を算出する、サブピクセル最適化方法に関する高度に簡略化された擬似コード記述を示す図。
【図３０】サブピクセル最適化され、拡大／縮小された画像に於いてピクセルの色を算出するための「ラインカバレッジ」法に関する代替実施形態に於いて、２本の水平スキャンライン及び２本の垂直スキャンラインをどのように使用することが出来るかを示す図。
【図３１】サブピクセル最適化され、拡大／縮小された画像に於いてピクセルの色を算出するための「ラインカバレッジ」法に関する代替実施形態に於いて、２本の対角スキャンラインをどのように使用することが出来るかを示す図。
【図３２】サブピクセル最適化された画像に於いて画素の色を算出するための「ラインカバレッジ」法に関する代替実施形態に於いて、２本の対角スキャンライン、１本の水平スキャンライン、及び、１本の垂直スキャンラインの組み合わせをどのように使用することが出来るかを示す図。
【図３３】２分の１水平及び垂直スケーリングに於いて、２本の水平カバレッジラインに対するラインカバレッジを示す図。
【図３４】図３３に図示された２分の１水平及び垂直スケーリングに於いて、２本の垂直カバレッジラインに対するラインカバレッジを示す図。
【図３５】約５分の２水平及び垂直スケーリングに於いて、２本の水平カバレッジラインに対するラインカバレッジを示す図。
【図３６】図３５に図示された約５分の２水平及び垂直スケーリングに於いて、２本の垂直カバレッジラインに対するラインカバレッジを示す図。
【図３７】約３分の２水平及び垂直スケーリングに於いて、２本の水平カバレッジラインに対するラインカバレッジを示す図。
【図３８】図３７に図示された約３分の２水平及び垂直スケーリングに於いて、２本の垂直カバレッジラインに対するラインカバレッジを示す図。
【図３９】サブピクセル最適化され、拡大／縮小された画像の色値を算出するための「エリアカバレッジ」法で使用されるソース画像ピクセルウインドウを示す図。
【図４０】一つのそうした「エリアカバレッジ」法に従って、サブピクセルの輝度値を算出するために使用されるソース画像ウインドウ内に於いて、異なるソース画像ピクセルの領域を示すために異なるハッチングを使用している点を除いて、図３９に類似する図。
【図４１】例えば、図３９及び図４０に関して議論されたエリアカバレッジ値に基づいてサブピクセル輝度値を算出する、サブピクセル最適化法に関する高度に簡略化された擬似コード記述を示す図。
【図４２】赤色サブピクセルに輝度値を関連付けるために、ビットマップ画像に関する拡大／縮小された２色サブピクセル最適化画像の生成に於いて使用可能な、ソース画像ウインドウ、及び、関連付けられたスキャンラインを図示する図。
【図４３】緑色サブピクセルに輝度値を関連付けるために、ビットマップ画像に関する拡大／縮小された２色サブピクセル最適化画像の生成に於いて使用可能な、ソース画像ウインドウ、及び、関連付けられたスキャンラインを図示する図。
【図４４】青色サブピクセルに輝度値を関連付けるために、ビットマップ画像に関する拡大／縮小された２色サブピクセル最適化画像の生成に於いて使用可能な、ソース画像ウインドウ、及び、関連付けられたスキャンラインを図示する図。
【図４５】ＲＧＢサブピクセル表示グリッドの一部に関連付けられた、一連のソース画像グレースケールピクセルの輝度を図示する図。
【図４６】図４５に図示された個別のサブピクセルに関連する輝度が、従来の線形フィルタリング法でどのように分配されるかを示す図。
【図４７】１ピクセル行に於ける複数のサブピクセルに適用されている図４６に図示された従来の線形フィルタリング法の結果によって生じるサブピクセル輝度値を図示する図。
【図４８】非線形フィルタリング下での、最小サブピクセル輝度値の分配を示す図。
【図４９】図４８に図示された非線形フィルタリング法下での、超過輝度値の分配を示す図。
【図５０】元のソースピクセル輝度と、線形及び非線形フィルタリング法の結果とを比較する図。
【図５１】元のソースピクセル輝度と、線形及び非線形フィルタリング法の結果とを比較する図。
【図５２】元のソースピクセル輝度と、線形及び非線形フィルタリング法の結果とを比較する図。
【図５３】２色ビットマップのサブピクセル最適化された表現を作成するためのソフトウェアの方法に関する高度に簡略化された擬似コード記述。
【図５４】ユーザが色と位置的な解像度を動的にトレードオフ可能な処理に関するフローチャート。
【図５５】アウトラインフォント記述により定義された文字フォント形状と、サブピクセルでアドレス可能なディスプレイ上に形状を表現するために使用されるサブピクセルを有するピクセル配列との間のマッピングを示す図。
【図５６】本発明の一実施形態で作成されたウェブページの３２０×２４０スクリーンに関するスクリーンショット。
【図５７】図５６に図示されたスクリーンショットの２倍拡大図。
【図５８】コンピュータが如何にしてフォントビットマップ、又は、フォントサーバからのフォントアウトラインにアクセスすることが可能かを示す図。
【図５９】コンピュータが如何にしてフォントビットマップ、又は、コンピュータ内に蓄積したフォントアウトラインにアクセスすることが可能かを示す図。
【図６０】図４８乃至図５２に記載された種類の非線形カラーバランスを使用する文字フォント形状のサブピクセル最適化ビットマップを算出するためのアルゴリズムに関する高度に簡略化した擬似コード表現。
【図６１】例えば図５５に図示されたピクセル配列に関する個々のピクセルの３つのサブピクセルの各々に対してカバレッジ値を決定するために使用される、例えば図５５に図示された文字フォント形状画像におけるソース画像ウインドウのサイズを示す図。
【図６２】例えば図５５に図示されたピクセル配列に関する個々のピクセルの３つのサブピクセルの各々に対してカバレッジ値を決定するために使用される、例えば図５５に図示された文字フォント形状画像におけるソース画像ウインドウのサイズを示す図。
【図６３】例えば図５５に図示されたピクセル配列に関する個々のピクセルの３つのサブピクセルの各々に対してカバレッジ値を決定するために使用される、例えば図５５に図示された文字フォント形状画像におけるソース画像ウインドウのサイズを示す図。
【図６４】非スクエアラスタ化ユニット（通常、従来技術に於ける全ピクセル）に対するカバレッジ値を算出するために使用されている幾つかの従来技術を示す図。
【図６５】非スクエアラスタ化ユニット（通常、従来技術に於ける全ピクセル）に対するカバレッジ値を算出するために使用されている幾つかの従来技術を示す図。
【図６６】非スクエアラスタ化ユニット（通常、従来技術に於ける全ピクセル）に対するカバレッジ値を算出するために使用されている幾つかの従来技術を示す図。
【図６７】非スクエアラスタ化ユニット（通常、従来技術に於ける全ピクセル）に対するカバレッジ値を算出するために使用されている幾つかの従来技術を示す図。
【図６８】サブピクセルに対するカバレッジ値を算出するための本発明に関する幾つかの実施形態で使用される加重ラインカバレッジ値を使用する、ラスタ化ユニットのカバレッジ値を算出するためのコンピュータを利用した効率的な方法を示す図。
【図６９】サブピクセルに対するカバレッジ値を算出するための本発明に関する幾つかの実施形態で使用される加重ラインカバレッジ値を使用する、ラスタ化ユニットのカバレッジ値を算出するためのコンピュータを利用した効率的な方法を示す図。
【図７０】サブピクセルに対するカバレッジ値を算出するための本発明に関する幾つかの実施形態で使用される加重ラインカバレッジ値を使用する、ラスタ化ユニットのカバレッジ値を算出するためのコンピュータを利用した効率的な方法を示す図。
【図７１】サブピクセルに対するカバレッジ値を算出するための本発明に関する幾つかの実施形態で使用される加重ラインカバレッジ値を使用する、ラスタ化ユニットのカバレッジ値を算出するためのコンピュータを利用した効率的な方法を示す図。
【図７２】サブピクセルに対するカバレッジ値を算出するための本発明に関する幾つかの実施形態で使用される加重ラインカバレッジ値を使用する、ラスタ化ユニットのカバレッジ値を算出するためのコンピュータを利用した効率的な方法を示す図。
【図７３】サブピクセルに対するカバレッジ値を算出するための本発明に関する幾つかの実施形態で使用される加重ラインカバレッジ値を使用する、ラスタ化ユニットのカバレッジ値を算出するためのコンピュータを利用した効率的な方法を示す図。
【図７４】サブピクセルに対するカバレッジ値を算出するための本発明に関する幾つかの実施形態で使用される加重ラインカバレッジ値を使用する、ラスタ化ユニットのカバレッジ値を算出するためのコンピュータを利用した効率的な方法を示す図。
【図７５】サブピクセルに対するカバレッジ値を算出するための本発明に関する幾つかの実施形態で使用される加重ラインカバレッジ値を使用する、ラスタ化ユニットのカバレッジ値を算出するためのコンピュータを利用した効率的な方法を示す図。
【図７６】サブピクセルに対するカバレッジ値を算出するための本発明に関する幾つかの実施形態で使用される加重ラインカバレッジ値を使用する、ラスタ化ユニットのカバレッジ値を算出するためのコンピュータを利用した効率的な方法を示す図。
【図７７】サブピクセルに対するカバレッジ値を算出するための本発明に関する幾つかの実施形態で使用される加重ラインカバレッジ値を使用する、ラスタ化ユニットのカバレッジ値を算出するためのコンピュータを利用した効率的な方法を示す図。
【図７８】サブピクセルに対するカバレッジ値を算出するための本発明に関する幾つかの実施形態で使用される加重ラインカバレッジ値を使用する、ラスタ化ユニットのカバレッジ値を算出するためのコンピュータを利用した効率的な方法を示す図。
【図７９】サブピクセルに対するカバレッジ値を算出するための本発明に関する幾つかの実施形態で使用される加重ラインカバレッジ値を使用する、ラスタ化ユニットのカバレッジ値を算出するためのコンピュータを利用した効率的な方法を示す図。
【図８０】サブピクセルに対するカバレッジ値を算出するための本発明に関する幾つかの実施形態で使用される加重ラインカバレッジ値を使用する、ラスタ化ユニットのカバレッジ値を算出するためのコンピュータを利用した効率的な方法を示す図。
【図８１】サブピクセルに対するカバレッジ値を算出するための本発明に関する幾つかの実施形態で使用される加重ラインカバレッジ値を使用する、ラスタ化ユニットのカバレッジ値を算出するためのコンピュータを利用した効率的な方法を示す図。
【図８２】サブピクセルに対するカバレッジ値を算出するための本発明に関する幾つかの実施形態で使用される加重ラインカバレッジ値を使用する、ラスタ化ユニットのカバレッジ値を算出するためのコンピュータを利用した効率的な方法を示す図。
【図８３】サブピクセルに対するカバレッジ値を算出するための本発明に関する幾つかの実施形態で使用される加重ラインカバレッジ値を使用する、ラスタ化ユニットのカバレッジ値を算出するためのコンピュータを利用した効率的な方法を示す図。
【図８４】サブピクセルに対するカバレッジ値を算出するための本発明に関する幾つかの実施形態で使用される加重ラインカバレッジ値を使用する、ラスタ化ユニットのカバレッジ値を算出するためのコンピュータを利用した効率的な方法を示す図。
【図８５】サブピクセルに対するカバレッジ値を算出するための本発明に関する幾つかの実施形態で使用される加重ラインカバレッジ値を使用する、ラスタ化ユニットのカバレッジ値を算出するためのコンピュータを利用した効率的な方法を示す図。
【図８６】サブピクセルに対するカバレッジ値を算出するための本発明に関する幾つかの実施形態で使用される加重ラインカバレッジ値を使用する、ラスタ化ユニットのカバレッジ値を算出するためのコンピュータを利用した効率的な方法を示す図。
【図８７】サブピクセルに対するカバレッジ値を算出するための本発明に関する幾つかの実施形態で使用される加重ラインカバレッジ値を使用する、ラスタ化ユニットのカバレッジ値を算出するためのコンピュータを利用した効率的な方法を示す図。
【図８８】図６８乃至図８７に関して上述した一般的な種類の加重ラインカバレッジアルゴリズムを用いて使用可能なカバレッジラインに関する他の配置の幾つかを示す図。
【図８９】図６８乃至図８７に関して上述した一般的な種類の加重ラインカバレッジアルゴリズムを用いて使用可能なカバレッジラインに関する他の配置の幾つかを示す図。
【図９０】図６８乃至図８７に関して上述した一般的な種類の加重ラインカバレッジアルゴリズムを用いて使用可能なカバレッジラインに関する他の配置の幾つかを示す図。
【図９１】仮想フォントアウトラインの一部の画像へのピクセル配置及び各サブピクセルのマッピングを示す図。
【図９２】図９１に図示された配列のサブピクセルに対して計算されている、対応するカバレッジ値を示す図。
【図９３】図４６に対応しており、図４６のように、従来技術の線形カラーバランス法が、所定のピクセル行内に於ける一連の隣接するサブピクセルに対して、個々のサブピクセルのカバレッジ値の全てを如何にして分配するかを示す図。
【図９４】図６０に関して記載された非線形カラーバランス法を用いて使用可能なカラーバランスフィルタを示す図。
【図９５】図６０に関して記載された非線形カラーバランス法を用いて使用可能なカラーバランスフィルタを示す図。
【図９６】例えば図６０に図示された方法によって、フォントビットマップに対して算出された全ピクセルのアルファ値を、そうした全ピクセルのアルファ値のより制限された色空間に表現するために使用可能な、アルゴリズムに関する高度に簡略化された擬似コード記述。
【図９７】図６０及び図９６に図示された方法の組み合わせによって作成されたフォントビットマップを使用する、サブピクセルアドレス可能ディスプレイに於いてテキスト文字列を表示するためのアルゴリズムに関する高度に簡略化された擬似コード記述。
【図９８】それぞれが異なるウェブページの６４０×４８０レイアウトに関するスクリーンショットである図９８及び図１００と、本発明が３２０×２４０スクリーン上にこれら２つのウェブページのそれぞれを如何にして表示可能かを示す図９９及び図１０１を用いて、本発明が３２０×２４０スクリーン上にウェブページを如何にして適切に表示可能かを示す図。
【図９９】それぞれが異なるウェブページの６４０×４８０レイアウトに関するスクリーンショットである図９８及び図１００と、本発明が３２０×２４０スクリーン上にこれら２つのウェブページのそれぞれを如何にして表示可能かを示す図９９及び図１０１を用いて、本発明が３２０×２４０スクリーン上にウェブページを如何にして適切に表示可能かを示す図。
【図１００】それぞれが異なるウェブページの６４０×４８０レイアウトに関するスクリーンショットである図９８及び図１００と、本発明が３２０×２４０スクリーン上にこれら２つのウェブページのそれぞれを如何にして表示可能かを示す図９９及び図１０１を用いて、本発明が３２０×２４０スクリーン上にウェブページを如何にして適切に表示可能かを示す図。
【図１０１】それぞれが異なるウェブページの６４０×４８０レイアウトに関するスクリーンショットである図９８及び図１００と、本発明が３２０×２４０スクリーン上にこれら２つのウェブページのそれぞれを如何にして表示可能かを示す図９９及び図１０１を用いて、本発明が３２０×２４０スクリーン上にウェブページを如何にして適切に表示可能かを示す図。
【図１０２】幾つかのデータ構造と、プロキシサーバ及び薄型クライアントコンピュータによって、薄型クラインアントコンピュータのユーザが縮小され、サブピクセル最適化されたスクリーン上でウェブコンテンツにアクセス可能にするために使用されるプログラムに関する概略ブロック図。
【図１０３】図９８及び図９９で説明されたウェブページのＨＴＭＬコードの一部。
【図１０４】プロキシサーバと、この例で図９９に図示されたウェブページの一部に対応する、プロキシサーバの仮想スクリーン内に収まるレイアウトの一部によって作成されるウェブページのレイアウトを示す図。
【図１０５Ａ】図１０２に図示されたプロキシサーバ上でのプログラムに関する高度に簡略化された擬似コード記述。
【図１０５Ｂ】図１０２に図示されたプロキシサーバ上でのプログラムに関する高度に簡略化された擬似コード記述。
【図１０６Ａ】ウェブページの一部に表現をキャプチャし、縮小し、サブピクセル最適化し、薄型クライアントコンピュータにそれをダウンロードするためのプロキシサーバプログラムに関する高度に簡略化された擬似コード記述。
【図１０６Ｂ】ウェブページの一部に表現をキャプチャし、縮小し、サブピクセル最適化し、薄型クライアントコンピュータにそれをダウンロードするためのプロキシサーバプログラムに関する高度に簡略化された擬似コード記述。
【図１０６Ｃ】ウェブページの一部に表現をキャプチャし、縮小し、サブピクセル最適化し、薄型クライアントコンピュータにそれをダウンロードするためのプロキシサーバプログラムに関する高度に簡略化された擬似コード記述。
【図１０７】図１０６Ａ乃至図１０６Ｃのプログラムによってキャプチャされたウェブページの表現を実際にダウンロードするためのプログラムに関する高度に簡略化された疑似コード記述。
【図１０８】図１０７に於いて説明されたプログラムによって薄型クライアントコンピュータにダウンロードされたデータに関する高度に簡略化された表現。
【図１０９Ａ】図１０２に図示された薄型クライアントにおけるプログラムに関する高度に簡略化された擬似コードの表現。
【図１０９Ｂ】図１０２に図示された薄型クライアントにおけるプログラムに関する高度に簡略化された擬似コードの表現。
【図１０９Ｃ】図１０２に図示された薄型クライアントにおけるプログラムに関する高度に簡略化された擬似コードの表現。
【図１１０】図１０２に図示された薄型クライアントにおけるウェブページの表示上のテキスト入力フィールド上でユーザがクリックした場合、ユーザがテキスト入力フィールドにテキストを入力可能になるポップアップキーボードが如何にして表示されるかを説明する図。
【図１１１】図１０２に図示された薄型クライアントにおけるウェブページの表示上のテキスト入力フィールド上でユーザがクリックした場合、ユーザがテキスト入力フィールドにテキストを入力可能になるポップアップキーボードが如何にして表示されるかを説明する図。
【図１１２】図１０２に図示された薄型クライアントにおけるウェブページの表示上のテキスト入力フィールド上でユーザがクリックした場合、ユーザがテキスト入力フィールドにテキストを入力可能になるポップアップキーボードが如何にして表示されるかを説明する図。
【図１１３】所望のウェブページにユーザがアクセス可能なＵＲＬを入力するために、同一のポップアップキーボードをユーザがどのように使用することが出来るかを説明する図。
【図１１４】グラフィカルユーザインターフェース（ＧＵＩ）ボタン、及び、ＵＲＬのテキスト入力フィールドを含む薄型クライアントコンピュータスクリーンの最上部にツールバーを有する、本発明の一実施形態を説明する点以外は、実質的に図１３と同一である図。
【図１１５】ウェブページに関連して、クライアントコンピュータがより迅速にスクロール及びズーム出来るように、ウェブページ全体のレイアウトを保存する本発明の代替実施形態で使用される、プロキシサーバ及び薄型クライアントコンピュータとのそれぞれに於けるプログラムに関する高度に簡略化された疑似コード表現。
【図１１６】ウェブページに関連して、クライアントコンピュータがより迅速にスクロール及びズーム出来るように、ウェブページ全体のレイアウトを保存する本発明の代替実施形態で使用される、プロキシサーバ及び薄型クライアントコンピュータとのそれぞれに於けるプログラムに関する高度に簡略化された疑似コード表現。
【図１１７】図１１５及び図１１６で説明された擬似コードの動作説明に役立てるために使用される概略図。
【図１１８】本発明によって、ユーザが如何にしてウェブページ又はスクリーンの一部を迅速に選択し、その後、選択された部分にズームすることが可能となるかを説明する図。
【図１１９】本発明によって、ユーザが如何にしてウェブページ又はスクリーンの一部を迅速に選択し、その後、選択された部分にズームすることが可能となるかを説明する図。
【図１２０】本発明によって、ユーザが如何にしてウェブページ又はスクリーンの一部を迅速に選択し、その後、選択された部分にズームすることが可能となるかを説明する図。
【図１２１】ユーザがウェブページ又はスクリーンの一部をより正確に視認し、選択可能になる本発明のズームクリックに関する一つの特徴を説明する図。
【図１２２】ユーザがウェブページ又はスクリーンの一部をより正確に視認し、選択可能になる本発明のズームクリックに関する一つの特徴を説明する図。
【図１２３】ユーザがウェブページ又はスクリーンの一部をより正確に視認し、選択可能になる本発明のズームクリックに関する一つの特徴を説明する図。
【図１２４】ユーザがウェブページ又はスクリーンの一部をより正確に視認し、選択可能になる本発明のズームクリックに関する一つの特徴を説明する図。
【図１２５】ユーザがウェブページ又はスクリーンの一部をより正確に視認し、選択可能になる本発明のズームクリックに関する一つの特徴を説明する図。
【図１２６】ユーザがウェブページ又はスクリーンの一部をより正確に視認し、選択可能になる本発明のズームクリックに関する一つの特徴を説明する図。
【図１２７】ユーザがウェブページ又はスクリーンの一部をより正確に視認し、選択可能になる本発明のズームクリックに関する一つの特徴を説明する図。
【図１２８】ユーザがウェブページ又はスクリーンの一部をより正確に視認し、選択可能になる本発明のズームクリックに関する一つの特徴を説明する図。
【図１２９】ユーザが、大きな倍率で所定のスクリーンを越えてリフローされたテキストを選択可能にするためのプログラムに関する高度に簡略化された擬似コード記述。
【図１３０】図１２９に図示されたテキストのリフロー機能が如何に実行されるかを説明するために使用される図。
【図１３１】図１２９に図示されたテキストのリフロー機能が如何に実行されるかを説明するために使用される図。
【図１３２】図１２９に図示されたテキストのリフロー機能が如何に実行されるかを説明するために使用される図。
【図１３３】図１２９に図示されたテキストのリフロー機能が如何に実行されるかを説明するために使用される図。
【図１３４】図１２９に図示されたテキストのリフロー機能が如何に実行されるかを説明するために使用される図。
【図１３５】図１２９に図示されたテキストのリフロー機能が如何に実行されるかを説明するために使用される図。
【図１３６】図１２９に図示されたテキストのリフロー機能が如何に実行されるかを説明するために使用される図。
【図１３７】図１２９に図示されたテキストのリフロー機能が如何に実行されるかを説明するために使用される図。
【図１３８】複数のクライアントコンピュータが共通のフォントサーバ、及び／又は、共通のプロキシサーバにアクセスするために如何にしてプログラムすることが出来るかを説明するために使用される図。
【図１３９】１つ又は複数のフォントサーバ上で使用可能なプログラムに関する高度に簡略化された擬似コード記述。
【図１４０】（一つ又は複数のウェブブラウザを有することが出来るが、これに限定されない）アプリケーションによって実行されたリモートコンピュータのオペレーティングシステムに対する割り込み要求によって、縮小され、サブピクセル最適化された方法で、リモートコンピュータ上で実行するこうしたアプリケーションによって描画されるスクリーンをクライアントコンピュータが視認可能にするために、本発明の特定の特徴を如何にして使用することが出来るかを説明する図。
【図１４１】所定のコンピュータ上で実行する（一つ又は複数のウェブブラウザを有することが出来るが、これに限定されない）アプリケーションが、所定のコンピュータのスクリーン上でサブピクセル最適化され、縮小されたビューを生成するためにプログラムされていないとしても、そうしたアプリケーションによって実行されたコンピュータのオペレーティングシステムに対する割り込み要求によって、サブピクセル最適化され、縮小されたビューが、そうしたアプリケーションプログラムによって生成されたスクリーン出力を如何にして有することが出来るかを説明する図。
【図１４２】ポータブル小型スクリーンの薄型クライアントコンピュータが、ローカル、及び／又は、インターネットのワイヤレス通信を介して、ウェブコンテンツ、及び／又は、種々のアプリケーションプログラムのスクリーン出力にアクセス出来るように、本発明に関する特定の特徴を如何にして使用することが出来るかを説明する図。
【図１４３】本発明に関する幾つかの実施形態において、縦方向で実行するようにプログラムされたオペレーティングシステムを有するコンピュータデバイスを回転させることによって、サブピクセル最適化された出力が如何にして横方向で表示されるのかを説明するために使用される図。
【図１４４】本発明に関する幾つかの実施形態において、縦方向で実行するようにプログラムされたオペレーティングシステムを有するコンピュータデバイスを回転させることによって、サブピクセル最適化された出力が如何にして横方向で表示されるのかを説明するために使用される図。
【図１４５】サブピクセル最適化の解像度を用いて、単純な形状を描画するために使用されるプログラムに関する、高度に簡略化された擬似コード記述。
【図１４６】コンピュータのスクリーン上にサブピクセル最適化された要素を描画するためにウェブアプレットをどのように使用することが可能かということに関する高度に簡略化された擬似コード記述。
【図１４７】ロールオーバ画像をどのようにサブピクセル最適化することが出来るかを説明する高度に簡略化されたブロック図。
【図１４８】ＧＩＦＦアニメーションをどのようにサブピクセル最適化することが出来るかを説明する高度に簡略化されたブロック図。
【図１４９】３Ｄアニメーションをどのようにサブピクセル最適化することが出来るかということに関する高度に簡略化された擬似コード記述。
【図１５０】クライアントコンピュータ上にサブピクセル最適化されたゲーム画像を提供するために、クライアント／サーバゲームシステムをどのように使用することが可能かということに関する高度に簡略化された擬似コード記述。
【図１５１】クライアントコンピュータ上にサブピクセル最適化されたゲーム画像を提供するために、クライアント／サーバゲームシステムをどのように使用することが可能かということに関する高度に簡略化された擬似コード記述。
【図１５２】サブピクセル最適化されたディスプレイが、如何にして対応する透過マップを有する画像で構成することが出来るかということに関する高度に簡略化された擬似コード記述。
【図１５３】キーフレーム間の補間を使用する映像が、どのようにしてサブピクセル最適化することが出来るかということに関する高度に簡略化された擬似コード記述。
【図１５４】表現が全フレームよりも少ない部分へのスクリーン変化を描画することを含む映像を、どのようにしてサブピクセル最適化することが可能かということに関する高度に簡略化された擬似コード記述。
【図１５５】ディスプレイウィンドウに関連して移動する画像を表示するための異なる方法に関する高度に簡略化された疑似コード記述。
【図１５６】ディスプレイウィンドウに関連して移動する画像を表示するための異なる方法に関する高度に簡略化された疑似コード記述。
【図１５７】種々の圧縮技術によって表現された映像に対して、サブピクセル最適化を如何にして適用することが出来るかということに関する高度に簡略化された疑似コード表示。
【図１５８】種々の圧縮技術によって表現された映像に対して、サブピクセル最適化を如何にして適用することが出来るかということに関する高度に簡略化された疑似コード表示。
【図１５９】種々の圧縮技術によって表現された映像に対して、サブピクセル最適化を如何にして適用することが出来るかということに関する高度に簡略化された疑似コード表示。
【図１６０】サーバコンピュータが、クライアントコンピュータにサブピクセル最適化され、縮小されたビデオをダウンロード可能にするためのプログラムに関する高度に簡略化された擬似コード表記。
【図１６１】クライアントコンピュータ、及び、プロキシコンピュータの両方に於いて、クライアントコンピュータがプロキシコンピュータを介して、他のサーバからの縮小された、サブピクセル最適化された映像にアクセス可能になるプログラムに関する高度に簡略化された擬似コード表記。
【図１６２】電子インクをより明瞭に視認することが可能なプログラムに関する高度に簡略化された擬似コード表記。
【図１６３】図１６２に関して記載されたプログラムの利点を説明するのに役立てるために使用される図。
【図１６４】図１６２に関して記載されたプログラムの利点を説明するのに役立てるために使用される図。
【図１６５】図１６２に関して記載されたプログラムの利点を説明するのに役立てるために使用される図。
【図１６６】図１６２に関して記載されたプログラムの利点を説明するのに役立てるために使用される図。
【図１６７】本発明が方法だけでなく、機械可読形式で保存された方法に関連した、又は、伝搬信号で具体化される、プログラム及びデータ、そして、そうした方法を実行するため及び／又はそうしたプログラム及び／又はデータを使用するためのプログラムされたコンピュータシステム、及び／又は、ハードウェアに組み込まれたコンピュータシステム、に関連することを説明する図。
【図１６８】本発明によって作成された、カラーバランスされ、サブピクセル最適化されたフォントビットマップの明瞭さを向上させるための本発明に対するさらなる改善を説明するために使用される図。
【図１６９】本発明によって作成された、カラーバランスされ、サブピクセル最適化されたフォントビットマップの明瞭さを向上させるための本発明に対するさらなる改善を説明するために使用される図。
【図１７０】本発明によって作成された、カラーバランスされ、サブピクセル最適化されたフォントビットマップの明瞭さを向上させるための本発明に対するさらなる改善を説明するために使用される図。
【図１７１】本発明によって作成された、カラーバランスされ、サブピクセル最適化されたフォントビットマップの明瞭さを向上させるための本発明に対するさらなる改善を説明するために使用される図。
【図１７２】本発明によって作成された、カラーバランスされ、サブピクセル最適化されたフォントビットマップの明瞭さを向上させるための本発明に対するさらなる改善を説明するために使用される図。
【図１７３】本発明によって作成された、カラーバランスされ、サブピクセル最適化されたフォントビットマップの明瞭さを向上させるための本発明に対するさらなる改善を説明するために使用される図。
【図１７４】本発明によって作成された、カラーバランスされ、サブピクセル最適化されたフォントビットマップの明瞭さを向上させるための本発明に対するさらなる改善を説明するために使用される図。
【図１７５】本発明によって作成された、カラーバランスされ、サブピクセル最適化されたフォントビットマップの明瞭さを向上させるための本発明に対するさらなる改善を説明するために使用される図。
【図１７６】本発明によって作成された、カラーバランスされ、サブピクセル最適化されたフォントビットマップの明瞭さを向上させるための本発明に対するさらなる改善を説明するために使用される図。
【図１７７】本発明によって作成された、カラーバランスされ、サブピクセル最適化されたフォントビットマップの明瞭さを向上させるための本発明に対するさらなる改善を説明するために使用される図。
【図１７８】本発明によって作成された、カラーバランスされ、サブピクセル最適化されたフォントビットマップの明瞭さを向上させるための本発明に対するさらなる改善を説明するために使用される図。
【図１７９】本発明によって作成された、カラーバランスされ、サブピクセル最適化されたフォントビットマップの明瞭さを向上させるための本発明に対するさらなる改善を説明するために使用される図。
【図１８０】本発明によって作成された、カラーバランスされ、サブピクセル最適化されたフォントビットマップの明瞭さを向上させるための本発明に対するさらなる改善を説明するために使用される図。
【図１８１】本発明によって作成された、カラーバランスされ、サブピクセル最適化されたフォントビットマップの明瞭さを向上させるための本発明に対するさらなる改善を説明するために使用される図。
【図１８２】本発明によって作成された、カラーバランスされ、サブピクセル最適化されたフォントビットマップの明瞭さを向上させるための本発明に対するさらなる改善を説明するために使用される図。
【図１８３】本発明によって作成された、カラーバランスされ、サブピクセル最適化されたフォントビットマップの明瞭さを向上させるための本発明に対するさらなる改善を説明するために使用される図。
【図１８４】本発明によって作成された、カラーバランスされ、サブピクセル最適化されたフォントビットマップの明瞭さを向上させるための本発明に対するさらなる改善を説明するために使用される図。
【図１８５】図１２９乃至図１３４に関して記載された選択されたテキストのリフロー法に関するより高レベルな記述。
【図１８６】図１１８乃至図１２０に関して記載された一般的な種類のズームトゥフィット(ｚｏｏｍ−ｔｏ−ｆｉｔ)法に関する高レベル疑似コード記述。
【図１８７】ユーザがウェブページのレイアウトのディスプレイ内で容易にナビゲート可能なドラッグスクロール法に関する高レベル擬似コード記述。
【図１８８】ユーザがウェブページのレイアウトの表示の所望部分に速やかにズームインを選択出来るようにする、クリックズーム法に関する高レベル擬似コード記述。
【図１８９】図１２１乃至図１２８に関して記載された、ズームクリック法に関する高度に簡略化された擬似コード記述。
【図１９０】ユーザがグリーキングを使用するウェブページのズームアウト表示を視認可能な方法に関する高度に簡略化された擬似コード記述。
【図１９１】クライアントコンピュータ上に異なる縮尺のビューを表示させる、例えば図１０２に図示された、クライアントコンピュータに於けるプログラムに関する高度に簡略化された擬似コードの記述。
【図１９２】図１９１に図示された擬似コードをサポートする図１０５Ｂに図示された、プロキシサーバプログラムへの変更に関する、高度に簡略化された擬似コード記述。
【図１９３】６４０×４８０の仮想レイアウトサイズでウェブページを表示する、例えば図１０２に図示されたクライアントコンピュータを図示する図。
【図１９４】ユーザがポップアップメニューの表示を選択した後の図１９３のスクリーンを図示する図。
【図１９５】ユーザがビューサイズのサブメニューの表示を選択した後の図１９４のスクリーンを図示する図。
【図１９６】４８０×３２０仮想解像度で表示された、図１９３に図示されたウェブページと同一のウェブページを図示する図。
【図１９７】６４０×４８０仮想解像度で表示された、図１９４に図示されたウェブページと同一のウェブページを図示する図。
【図１９８】８００×６００仮想解像度で表示された、図１９５に図示されたウェブページと同一のウェブページを図示する図。
【図１９９】８００×６００仮想解像度を用いて図１９３に図示された３２０×２４０スクリーン上に表示された同一のウェブページを表示する図。
【図２００】通常のブラウザを使用して、実際の８００×６００表示に表示された同一のウェブページを図示する図。
【図２０１】６４０×４８０仮想解像度を用いて図１９３の３２０×２４０スクリーン上に表示された他のウェブページを図示する図。
【図２０２】８００×６００仮想解像度を用いて図１９３の３２０×２４０スクリーン上に表示された他のウェブページを図示する図。
【図２０３】通常のブラウザを使用して、実際の８００×６００スクリーン上に表示された他のウェブページを図示する図。
【図２０４】図２０２の中央付近に位置する、同図に図示された８００×６００仮想解像度ビューに表示されたフォントビットマップの一部に関する４倍拡大図。
【図２０５】図２０４に図示された破線で囲まれたフォントビットマップの４倍拡大図。
【図２０６】２つの垂直ストロークが、比較的覆われていないピクセルによって分離された文字形状の同一水平部分に２本の垂直ストロークが現れる、図２０５に図示されたフォントビットマップの一部を図示する図。
【図２０７】２つの垂直ストロークが、比較的覆われていないピクセルによって分離された文字形状の同一水平部分に２本の垂直ストロークが現れる、図２０５に図示されたフォントビットマップの一部を図示する図。
【図２０８】２つの垂直ストロークが、比較的覆われていないピクセルによって分離された文字形状の同一水平部分に２本の垂直ストロークが現れる、図２０５に図示されたフォントビットマップの一部を図示する図。
【図２０９】２つの垂直ストロークが、比較的覆われていないピクセルによって分離された文字形状の同一水平部分に２本の垂直ストロークが現れる、図２０５に図示されたフォントビットマップの一部を図示する図。
【図１】
2006524367.tif 000003
【図２】
2006524367.tif 000004
【図３】
2006524367.tif 000005
【図４】
2006524367.tif 000006
【図５】
2006524367.tif 000007
【図６】
2006524367.tif 000008
【図７】
2006524367.tif 000009
【図８】
2006524367.tif 000010
【図９】
2006524367.tif 000011
【図１０】
2006524367.tif 000012
【図１１】
2006524367.tif 000013
【図１２】
2006524367.tif 000014
【図１３】
2006524367.tif 000015
【図１４】
2006524367.tif 000016
【図１５】
2006524367.tif 000017
【図１６】
2006524367.tif 000018
【図１７】
2006524367.tif 000019
【図１８】
2006524367.tif 000020
【図１９】
2006524367.tif 000021
【図２０】
2006524367.tif 000022
【図２１】
2006524367.tif 000023
【図２２】
2006524367.tif 000024
【図２３】
2006524367.tif 000025
【図２４】
2006524367.tif 000026
【図２５】
2006524367.tif 000027
【図２６】
2006524367.tif 000028
【図２７】
2006524367.tif 000029
【図２８】
2006524367.tif 000030
【図２９】
2006524367.tif 000031
【図３０】
2006524367.tif 000032
【図３１】
2006524367.tif 000033
【図３２】
2006524367.tif 000034
【図３３】
2006524367.tif 000035
【図３４】
2006524367.tif 000036
【図３５】
2006524367.tif 000037
【図３６】
2006524367.tif 000038
【図３７】
2006524367.tif 000039
【図３８】
2006524367.tif 000040
【図３９】
2006524367.tif 000041
【図４０】
2006524367.tif 000042
【図４１】
2006524367.tif 000043
【図４２】
2006524367.tif 000044
【図４３】
2006524367.tif 000045
【図４４】
2006524367.tif 000046
【図４５】
2006524367.tif 000047
【図４６】
2006524367.tif 000048
【図４７】
2006524367.tif 000049
【図４８】
2006524367.tif 000050
【図４９】
2006524367.tif 000051
【図５０】
2006524367.tif 000052
【図５１】
2006524367.tif 000053
【図５２】
2006524367.tif 000054
【図５３】
2006524367.tif 000055
【図５４】
2006524367.tif 000056
【図５５】
2006524367.tif 000057
【図５６】
2006524367.tif 000058
【図５７】
2006524367.tif 000059
【図５８】
2006524367.tif 000060
【図５９】
2006524367.tif 000061
【図６０】
2006524367.tif 000062
【図６１】
2006524367.tif 000063
【図６２】
2006524367.tif 000064
【図６３】
2006524367.tif 000065
【図６４】
2006524367.tif 000066
【図６５】
2006524367.tif 000067
【図６６】
2006524367.tif 000068
【図６７】
2006524367.tif 000069
【図６８】
2006524367.tif 000070
【図６９】
2006524367.tif 000071
【図７０】
2006524367.tif 000072
【図７１】
2006524367.tif 000073
【図７２】
2006524367.tif 000074
【図７３】
2006524367.tif 000075
【図７４】
2006524367.tif 000076
【図７５】
2006524367.tif 000077
【図７６】
2006524367.tif 000078
【図７７】
2006524367.tif 000079
【図７８】
2006524367.tif 000080
【図７９】
2006524367.tif 000081
【図８０】
2006524367.tif 000082
【図８１】
2006524367.tif 000083
【図８２】
2006524367.tif 000084
【図８３】
2006524367.tif 000085
【図８４】
2006524367.tif 000086
【図８５】
2006524367.tif 000087
【図８６】
2006524367.tif 000088
【図８７】
2006524367.tif 000089
【図８８】
2006524367.tif 000090
【図８９】
2006524367.tif 000091
【図９０】
2006524367.tif 000092
【図９１】
2006524367.tif 000093
【図９２】
2006524367.tif 000094
【図９３】
2006524367.tif 000095
【図９４】
2006524367.tif 000096
【図９５】
2006524367.tif 000097
【図９６】
2006524367.tif 000098
【図９７】
2006524367.tif 000099
【図９８】
2006524367.tif 000100
【図９９】
2006524367.tif 000101
【図１００】
2006524367.tif 000102
【図１０１】
2006524367.tif 000103
【図１０２】
2006524367.tif 000104
【図１０３】
2006524367.tif 000105
【図１０４】
2006524367.tif 000106
【図１０５Ａ】
2006524367.tif 000107
【図１０５Ｂ】
2006524367.tif 000108
【図１０６Ａ】
2006524367.tif 000109
【図１０６Ｂ】
2006524367.tif 000110
【図１０６Ｃ】
2006524367.tif 000111
【図１０７】
2006524367.tif 000112
【図１０８】
2006524367.tif 000113
【図１０９Ａ】
2006524367.tif 000114
【図１０９Ｂ】
2006524367.tif 000115
【図１０９Ｃ】
2006524367.tif 000116
【図１１０】
2006524367.tif 000117
【図１１１】
2006524367.tif 000118
【図１１２】
2006524367.tif 000119
【図１１３】
2006524367.tif 000120
【図１１４】
2006524367.tif 000121
【図１１５】
2006524367.tif 000122
【図１１６】
2006524367.tif 000123
【図１１７】
2006524367.tif 000124
【図１１８】
2006524367.tif 000125
【図１１９】
2006524367.tif 000126
【図１２０】
2006524367.tif 000127
【図１２１】
2006524367.tif 000128
【図１２２】
2006524367.tif 000129
【図１２３】
2006524367.tif 000130
【図１２４】
2006524367.tif 000131
【図１２５】
2006524367.tif 000132
【図１２６】
2006524367.tif 000133
【図１２７】
2006524367.tif 000134
【図１２８】
2006524367.tif 000135
【図１２９】
2006524367.tif 000136
【図１３０】
2006524367.tif 000137
【図１３１】
2006524367.tif 000138
【図１３２】
2006524367.tif 000139
【図１３３】
2006524367.tif 000140
【図１３４】
2006524367.tif 000141
【図１３５】
2006524367.tif 000142
【図１３６】
2006524367.tif 000143
【図１３７】
2006524367.tif 000144
【図１３８】
2006524367.tif 000145
【図１３９】
2006524367.tif 000146
【図１４０】
2006524367.tif 000147
【図１４１】
2006524367.tif 000148
【図１４２】
2006524367.tif 000149
【図１４３】
2006524367.tif 000150
【図１４４】
2006524367.tif 000151
【図１４５】
2006524367.tif 000152
【図１４６】
2006524367.tif 000153
【図１４７】
2006524367.tif 000154
【図１４８】
2006524367.tif 000155
【図１４９】
2006524367.tif 000156
【図１５０】
2006524367.tif 000157
【図１５１】
2006524367.tif 000158
【図１５２】
2006524367.tif 000159
【図１５３】
2006524367.tif 000160
【図１５４】
2006524367.tif 000161
【図１５５】
2006524367.tif 000162
【図１５６】
2006524367.tif 000163
【図１５７】
2006524367.tif 000164
【図１５８】
2006524367.tif 000165
【図１５９】
2006524367.tif 000166
【図１６０】
2006524367.tif 000167
【図１６１】
2006524367.tif 000168
【図１６２】
2006524367.tif 000169
【図１６３】
2006524367.tif 000170
【図１６４】
2006524367.tif 000171
【図１６５】
2006524367.tif 000172
【図１６６】
2006524367.tif 000173
【図１６７】
2006524367.tif 000174
【図１６８】
2006524367.tif 000175
【図１６９】
2006524367.tif 000176
【図１７０】
2006524367.tif 000177
【図１７１】
2006524367.tif 000178
【図１７２】
2006524367.tif 000179
【図１７３】
2006524367.tif 000180
【図１７４】
2006524367.tif 000181
【図１７５】
2006524367.tif 000182
【図１７６】
2006524367.tif 000183
【図１７７】
2006524367.tif 000184
【図１７８】
2006524367.tif 000185
【図１７９】
2006524367.tif 000186
【図１８０】
2006524367.tif 000187
【図１８１】
2006524367.tif 000188
【図１８２】
2006524367.tif 000189
【図１８３】
2006524367.tif 000190
【図１８４】
2006524367.tif 000191
【図１８５】
2006524367.tif 000192
【図１８６】
2006524367.tif 000193
【図１８７】
2006524367.tif 000194
【図１８８】
2006524367.tif 000195
【図１８９】
2006524367.tif 000196
【図１９０】
2006524367.tif 000197
【図１９１】
2006524367.tif 000198
【図１９２】
2006524367.tif 000199
【図１９３】
2006524367.tif 000200
【図１９４】
2006524367.tif 000201
【図１９５】
2006524367.tif 000202
【図１９６】
2006524367.tif 000203
【図１９７】
2006524367.tif 000204
【図１９８】
2006524367.tif 000205
【図１９９】
2006524367.tif 000206
【図２００】
2006524367.tif 000207
【図２０１】
2006524367.tif 000208
【図２０２】
2006524367.tif 000209
【図２０３】
2006524367.tif 000210
【図２０４】
2006524367.tif 000211
【図２０５】
2006524367.tif 000212
【図２０６】
2006524367.tif 000213
【図２０７】
2006524367.tif 000214
【図２０８】
2006524367.tif 000215
【図２０９】
2006524367.tif 000216
【国際調査報告】
2006524367.tif 000217
2006524367.tif 000218