JP2004533641A - 非線形カラー・バランスを使用して副画素最適化フォント・ビットマップを生成及び表示するための方法、システム、及びプログラム - Google Patents
非線形カラー・バランスを使用して副画素最適化フォント・ビットマップを生成及び表示するための方法、システム、及びプログラム Download PDFInfo
- Publication number
- JP2004533641A JP2004533641A JP2002586143A JP2002586143A JP2004533641A JP 2004533641 A JP2004533641 A JP 2004533641A JP 2002586143 A JP2002586143 A JP 2002586143A JP 2002586143 A JP2002586143 A JP 2002586143A JP 2004533641 A JP2004533641 A JP 2004533641A
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- sub
- pixels
- color
- bitmap
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 292
- 239000003086 colorant Substances 0.000 claims abstract description 61
- 238000009826 distribution Methods 0.000 claims abstract description 54
- 230000006870 function Effects 0.000 claims description 470
- 238000005457 optimization Methods 0.000 claims description 126
- 230000006872 improvement Effects 0.000 claims description 32
- 230000008859 change Effects 0.000 claims description 29
- 230000015654 memory Effects 0.000 claims description 7
- 238000009877 rendering Methods 0.000 claims description 5
- 239000011159 matrix material Substances 0.000 claims description 4
- 230000003247 decreasing effect Effects 0.000 claims 1
- 230000007935 neutral effect Effects 0.000 claims 1
- 235000019557 luminance Nutrition 0.000 description 126
- 238000010586 diagram Methods 0.000 description 63
- 230000008569 process Effects 0.000 description 45
- 238000004422 calculation algorithm Methods 0.000 description 26
- 238000013507 mapping Methods 0.000 description 20
- 230000008901 benefit Effects 0.000 description 19
- 238000001914 filtration Methods 0.000 description 13
- 230000004044 response Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 230000006835 compression Effects 0.000 description 12
- 238000007906 compression Methods 0.000 description 12
- 238000003860 storage Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000012360 testing method Methods 0.000 description 10
- 230000009467 reduction Effects 0.000 description 9
- 230000033001 locomotion Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000007792 addition Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 238000010420 art technique Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 238000003825 pressing Methods 0.000 description 4
- 238000013341 scale-up Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 101100226347 Escherichia phage lambda exo gene Proteins 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000007620 mathematical function Methods 0.000 description 3
- 239000002131 composite material Substances 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000009792 diffusion process Methods 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 210000000707 wrist Anatomy 0.000 description 2
- 208000010415 Low Vision Diseases 0.000 description 1
- 241001422033 Thestylus Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 230000001447 compensatory effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000004438 eyesight Effects 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000004303 low vision Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012015 optical character recognition Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/22—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
- G09G5/24—Generation of individual character patterns
- G09G5/28—Generation of individual character patterns for enhancement of character form, e.g. smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G3/00—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
- G09G3/20—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
- G09G3/2003—Display of colours
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/02—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
- G09G5/026—Control of mixing and/or overlay of colours in general
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/22—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
- G09G5/24—Generation of individual character patterns
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/72445—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality for supporting Internet browser applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/12—Indexing scheme for image data processing or generation, in general involving antialiasing
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2320/00—Control of display operating conditions
- G09G2320/06—Adjustment of display parameters
- G09G2320/0606—Manual adjustment
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0407—Resolution change, inclusive of the use of different resolutions for different screen areas
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0407—Resolution change, inclusive of the use of different resolutions for different screen areas
- G09G2340/0414—Vertical resolution change
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0407—Resolution change, inclusive of the use of different resolutions for different screen areas
- G09G2340/0421—Horizontal resolution change
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/045—Zooming at least part of an image, i.e. enlarging it or shrinking it
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0457—Improvement of perceived resolution by subpixel rendering
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0492—Change of orientation of the displayed image, e.g. upside-down, mirrored
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/14—Solving problems related to the presentation of information to be displayed
- G09G2340/145—Solving problems related to the presentation of information to be displayed related to small screens
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/02—Networking aspects
- G09G2370/027—Arrangements and methods specific for the display of internet documents
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/34—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/42—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of patterns using a display memory without fixed position correspondence between the display memory contents and the display position on the screen
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Controls And Circuits For Display Device (AREA)
- Editing Of Facsimile Originals (AREA)
- Control Of Indicators Other Than Cathode Ray Tubes (AREA)
- Digital Computer Display Output (AREA)
- Image Processing (AREA)
- Color Image Communication Systems (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
- Control Of El Displays (AREA)
- Circuits Of Receivers In General (AREA)
- Control Or Security For Electrophotography (AREA)
- Facsimile Image Signal Circuits (AREA)
- Liquid Crystal Display Device Control (AREA)
- Information Transfer Between Computers (AREA)
Abstract
【課題】本発明は、非線形カラー・バランスを使用して、フォントの様な形状の副画素最適化フォント・ビットマップを生成及び表示するための方法、システム、及びプログラムに関する。
【解決手段】幾つかの実施形態は、(a)当該形状で囲まれた副画素の領域の割合、(b)カラー・アンバランスを引き起こす副画素のカバレージ値(結果として生じる)の部分の隣接した副画素への分配の関数として、その様な画像の各副画素に輝度を割り当てる。
幾つかの実施形態は、同一画素内の他の副画素のカバレージ値との差異の関数として、副画素のカバレージ値を割り当てる。
幾つかの実施形態は、純粋な前景色及び背景色の画素、前景色及び背景色、並びにカラー・バランスの両方の関数として副画素輝度が決定される中間画素から構成される画像を描画する。中間画素は、カラー・バランスの方向に沿って、前景及び背景画素に分離することが可能であるが、必要という訳ではない。
【選択図】図49
【解決手段】幾つかの実施形態は、(a)当該形状で囲まれた副画素の領域の割合、(b)カラー・アンバランスを引き起こす副画素のカバレージ値(結果として生じる)の部分の隣接した副画素への分配の関数として、その様な画像の各副画素に輝度を割り当てる。
幾つかの実施形態は、同一画素内の他の副画素のカバレージ値との差異の関数として、副画素のカバレージ値を割り当てる。
幾つかの実施形態は、純粋な前景色及び背景色の画素、前景色及び背景色、並びにカラー・バランスの両方の関数として副画素輝度が決定される中間画素から構成される画像を描画する。中間画素は、カラー・バランスの方向に沿って、前景及び背景画素に分離することが可能であるが、必要という訳ではない。
【選択図】図49
Description
【技術分野】
【0001】
本発明は、非線形カラー・バランスを使用して副画素最適化フォント・ビットマップを生成及び表示するための方法、システム、及びプログラム、並びに、その様な方法により生成されるデータ構造に関する。
【背景技術】
【0002】
本特許出願は、小型又は低解像度の画面をもつ演算装置、例えばハンドヘルドコンピュータ、携帯電話コンピュータ、手首又は頭部に装着されるディスプレイをもつコンピュータの使用における最適化処理に関する多くの特徴を有する。この最適化処理の良好な部分は、ワールド・ワイド・ウェブや類似の情報媒体をブラウズするための小型ディスプレイの使用を向上させるために実行されている。但し、これらの特徴の多くは、他の種類の表示内容を見る場合にも使用され得る。
【0003】
この最適化処理の他の部分は、現在のワイヤレスリンクに見られるような比較的狭帯域のリンクを通じて、このような情報媒体をブラウズする能力を向上させることに焦点を置いている。しかしながら、本願に開示された本発明の多くの特徴は、これらの目的に限定されない。
【0004】
例えば、ユーザがより大型のウェブページの一部分を見ることを容易にする様に設計された特徴の幾つかでは、従来のコンピュータ上でそのウェブを見るのを容易にし、より離れた距離で読むことを容易にする。
【0005】
本出願の出願時には、対角線の長さが約4インチ、約240×320画素の画面を持つ様々なハンドヘルドコンピュータが存在している。これらのハンドヘルドコンピュータには、コンパック社製のiPac H3650、カシオ製のカシオペア、ヒューレットパッカード社製のジョルナダ525が含まれる。残念なことに、これらの解像度は、現在のほとんどのウェブページを表示するには低すぎる。現在、大部分のウェブページは、640×480画素の解像度をもつ画面で見ることができる(但し、2,3のウェブサイトはこの解像度でさえ見ることができない)。大部分のウェブページをこのようなハンドヘルド装置で見ることができるようになることが望まれている。
【0006】
液晶表示装置の製造業者は、現在市場にある表示装置よりも実質的に高い解像度をもつ画面を製造する能力がある。有機LED表示装置の製造業者は、さらに高い解像度でさえ実現できると主張している。上記に列挙したハンドヘルドコンピュータに現在搭載されているサイズの4インチの画面は、480×680画素以上の解像度をもつことが可能であったことを意味している。このような画面は多くのウェブページに受け入れられる解像度を提供するが、さらに高い実効解像度が多くのウェブページに要求されると考えられる。
【0007】
更に付け加えると、比較的高解像度で画面を見るためには、ユーザは、眼を画面に接近させて保持しなければならない。このことは多くの適用例では満たされるが、大抵の場合、ユーザは、ハンドヘルドコンピュータを眼に近づけて保持することに疲労を感じたり、不便を感じたりするかもしれない。
【0008】
表示装置の解像度の改善もまた、320×240画素の画面が2インチ以下の対角長で製造しうることを意味している。このような表示装置は、現在多くの携帯電話機に共通に搭載されている表示装置と略同一のサイズになるであろう。このような表示装置は、現在ハンドヘルドコンピュータで使用されている多くの形態のアプリケーションを携帯電話機上で使用可能にするであろうし、腕時計にも適用可能であろう。残念な事に、この表示装置は、大部分のウェブページを見ることが困難になる解像度であり、この解像度をユーザが見るためにはユーザの眼に極めて接近させなければならないほど物理的に小さいという問題を有している。再言すると、このような装置をユーザの眼に近づけて保持することは、一定時間の間であれば満足できるかもしれないが、しかし、長時間に渡る場合又は所定の状況では、それは不便かもしれない。
【0009】
表示装置の解像度の改善もまた、320×240画素の画面が2インチ以下の対角長で製造しうることを意味している。このような表示装置は、現在多くの携帯電話機に共通に搭載されている表示装置と略同一のサイズになるであろう。このような表示装置は、現在ハンドヘルドコンピュータで使用されている多くの形態のアプリケーションを携帯電話機上で使用可能にするであろうし、腕時計にも適用可能であろう。残念な事に、この表示装置は、大部分のウェブページを見ることが困難になる解像度であり、この解像度をユーザが見るためにはユーザの眼に極めて接近させなければならないほど物理的に小さいという問題を有している。再言すると、このような装置をユーザの眼に近づけて保持することは、一定時間の間であれば満足できるかもしれないが、しかし、長時間に渡る場合又は所定の状況では、それは不便かもしれない。
【0010】
現在、ユーザがコンピュータ画面の画像を見ることができるようにした、頭部に装着する表示装置を提供している幾つかの会社がある。その表示装置は、眼鏡の様な装置を通じて、或いは、ユーザの眼の上方、下方又は所定距離離れた側方に置かれた鏡からユーザの眼に対して反射される光よるものである。このような頭部に装着された表示装置を使用中に周囲とのやりとりを容易にするために、大抵の場合、このような投影型の画面はユーザの視野の比較的小さな領域を占めるようにすることが望まれる。それ故、このような表示装置のユーザは、小型のハンドヘルド画面のユーザが持つであろうと同じ多くの問題に直面する。
【0011】
本発明の1つの特徴は、比較的制限された演算能力、メモリ又はインターネット接続帯域を持つコンピュータ上に出力されるウェブページのブラウズやアプリケーション画面を最適化する方法に関する。例えば、現在、大部分のデスクトップコンピュータやラップトップコンピュータで使用されている形式の標準的なウェブブラウザは、メモリの多数メガバイトや比較的大量の演算能力を要する。それらは、また、ウェブページでより頻繁に使用されるワールド・ワイド・ウェブの多くに含まれる種類のウェブコンテンツに対して効率よく作動するように、少なくとも高速モデムの通信速度をもつインターネットへの接続を要する。しかしながら、多くのハンドヘルドコンピュータは、これらのウェブページの多くを効率良く表示するためのメモリも演算能力も持たない。また、最も一般的に利用可能な無線システムは、多くのウェブページに要求されると思われる帯域よりも実質的に低い帯域しか持たない。これらの要因のため、制限されたメモリ、通信速度、帯域でコンピュータがワールド・ワイド・ウェブや類似の情報媒体をブラウズできるようにする方法に関する本願中の改善の幾つかが、1つの焦点になる。
【発明の開示】
【課題を解決するための手段】
【0012】
本発明は、後述する特許請求の範囲の各請求項により最も正確に表現され、各請求項が課題を解決するための手段の記載と異なる場合には、各請求項の記載が本発明の真の表現と考えられなければならない。
【0013】
本発明によれば、個別にアドレス可能な異なる色を持つ副画素で構成される画素を持つ副画素アドレス画面に適した形状の副画素解像度の表現を作成する方法が提供される。この方法は、その形状に重なる画像における副画素領域の領域割合の関数、及び異なる色の隣接副画素にカラー・アンバランスを引き起こす副画素輝度値の部分を分配する様に設計されたカラー・バランスの関数として、スケーリング画像の各副画素に輝度値を関連付けることにより、ビットマップ画像のスケーリング及び副画素最適化された画像を生成することを含む。そのように分配された副画素の輝度値の割合は、カラー・アンバランスを引き起こす副画素の輝度値の割合の関数である。
【0014】
本発明のこの特徴の利点は、カラー・バランスの目的で分配される輝度値の量を、ほぼカラー・バランスの達成に必要な量のみに低減し、それ故、副画素最適化画像の透明度を向上している点である。
【0015】
本発明の第1の特徴の幾つかの実施形態では、副画素最適化画像が作成される形状はフォントである。
【発明を実施するための最良の形態】
【0016】
本発明のこれら及び他の特徴は、添付の図面とともに以下に示す最良の実施形態の記載を読むことによって、より顕著になる。
【0017】
図1は、特に、低解像度の表示装置をもつシステム上での、ウェブ・ブラウズ及び/又は他の種類のコンピュータによって生成されたコンテンツの表示を向上させるために、本発明の幾つかの特徴において使用される、基本的な処理及びデータ表示を示す概略図である。
【0018】
1又は複数のビットマップ画像102とテキスト104とを含むデジタル・コンテンツ100は、副画素最適化・縮小フォーマット106で表示されている。本発明の一実施形態において、ステップ108を含む差分処理は、テキストコンテンツの表示を副画素最適化するために使用されるよりも、むしろ、ビットマップ画像102の表示を副画素最適化するために使用される。ステップ108は、カラービットマップから副画素最適化された画像の生成に適した副画素最適化ルーチンを使用している。また、ステップ108は、現在ほとんどのウェブコンテンツが表示されている解像度よりも低い解像度をもつ画面への表示のために、ビットマップを縮小する。
【0019】
デジタル・コンテンツに含まれるテキスト104は、ステップ110及び112を使用することによって、解像度が低くかつ副画素アドレス可能な画面上での表示のために処理される。ステップ110は、通常の表示に使用されるフォントを、副画素最適化された画面上での低解像度による表示に最適化されたフォントで置き換える。その後、ステップ112は、フォント形状の定義に共通に使用される数学的に定義されたアウトラインの様な、同一色の形状の高解像度画像の表現に特に適した副画素最適化ルーチンによって生成された代替フォントからのフォントビットマップを使用する。
【0020】
本発明の1つの利用は、インターネットからダウンロードされるマークアップ言語によって表現された、画像及び/又はテキストを表示する携帯型の、低解像度のウェブブラウザにある。
【0021】
現在まで、多数の所謂マークアップ言語が存在してきた。最も早期の最も成功したものの1つは、SGML(Standard General Markup Language)である。SGMLは、テキストベースの言語であり、このテキストベースの言語は、当該データについての情報を提供する記述的な‘メタデータ’によって当該データを‘マークアップ’するために使用され得る。例示として、マークアップ・メタデータは、当該データが意図する目的又は当該データが配置されるウェブページ上の位置を示すために使用される。それは、テキスト中又は当該マークアップ言語で記述された文書中の所定の位置に挿入される、例えば画像のような他の種類のデータへのリンクを示すためにも使用される。今日共通に使用されているHTMLやXMLのような幾つかのマークアップ言語は、SGMLから派生している。
【0022】
本発明の最良の一実施形態において、上記図1において参照されたデジタル・コンテンツ100は、HTMLのようなマークアップ言語で表現された画像及び/又はテキストを含む標準的なウェブコンテンツでも良い。標準的なウェブコンテンツ100、おそらくウェブサイトの形式ページを表現するものは、図2乃至4に示され、以下に記述された携帯型の低解像度ブラウザ装置上での表示のために、様々な装置や方法を通じてダウンロードされ得る。ブラウザ装置200での表示の前に、デジタル・コンテンツ100は、判読性の向上のために、以下に記述するような様々な方法や処理を通じてスケーリング及び/又は副画素最適化され得る。
【0023】
図2は、本発明の一実施形態に従って実施される、ネットワークで繋がれたコンピュータ環境を図示している。薄型クライアント・ブラウザ200のプログラムは、テキスト及び/又はグラフィックを取り込み、小型LCD画面上に表示可能な、携帯型又は他の小型コンピュータ・デバイスで実行される。このブラウザによって、ユーザは、遠隔にあるソース(例えば、インターネット)からのデジタル情報を要求し、それを画面上に表示させることができる。
【0024】
図2に図示された本発明の実施形態において、ユーザは、薄型クライアント・ブラウザ200のコントロールボタンを操作することによって、画像及び/又はテキストを含むデジタル・コンテンツの取り込み及び表示を要求することができる。要求されるデジタル・コンテンツは、インターネットを通じてアクセス可能な特定のウェブページであっても良い。薄型クライアント・ブラウザ200は、そして、例えばLAN、WAN又はインターネットであり得るネットワーク138上にある物理的に遠隔にあるプロキシサーバ210を通じてコンテンツに対する要求202を実行する。
【0025】
プロキシサーバ210は、デジタル・コンテンツの要求に応答するプロキシプロセス216を実行する。この応答は、ユーザによって要求されたデジタル・コンテンツ100を保持する物理的に遠隔にあるウェブ・サーバ220に対して、対応する要求(リクエスト)214を作成することによって実行される。サーバ220は、プロキシ・サーバの要求214に応答する。この応答は、ネットワーク138を通じてプロキシサーバ210にデジタル・コンテンツ100のダウンロード222を実行することによる。
【0026】
プロキシサーバ210内のプロキシ・プロセス216は、次に、自身のコンピュータリソースを用いて、図1に図示されたステップ108,110,112に従ってデジタル・コンテンツ110をスケーリング及び副画素最適化する。スケーリング及び副画素最適化は、液晶表示装置上でのテキスト及び/又はグラフィックのような画像の判読性を向上させる結果を得る、本発明の1つの特徴である。
【0027】
プロキシサーバ210は、上記でスケーリング及び副画素最適化されたコンテンツのブラウザ200へのダウンロード212を実行する。この時点で、ユーザはブラウザ200の画面上でコンテンツを見ることができる。
【0028】
図2に示された本発明の実施形態では、デジタル・コンテンツのテキスト部分は、1又は複数の文字(キャラクタ)のストリング、フォントファミリーの指定、フォントサイズ及び他のフォント属性を含む形式で、ブラウザにダウンロードされる。薄型ブラウザが、そのフォントサイズ及びフォントファミリーのビットマップを持っていなければ、薄型ブラウザは、そのような1又は複数のビットマップをフォントサーバ230に要求する。図2乃至3に示された本発明の実施形態では、プロキシサーバがそのようなビットマップを提供することもできるし、クライアントが(ソフトウェアのサイズを増大させることになるが、)そのようなビットマップをソフトウェアの標準的な部分として持つこともできる。フォント・ビットマップの利点は、フォント供給者(ヴェンダー)がフォント・アウトラインよりもフォント・ビットマップをより自由に頒布したがる傾向にある点である。
【0029】
図3には、本発明の変形例に係る実施形態が図示されている。この実施形態では、図2のプロキシサーバ210及び/又はウェブサーバ220が1台のリモートサーバ220Aに置き換えられている。薄型クライアント・ブラウザ200は、ネットワーク138上のリモートサーバ220Aにデジタル・コンテンツ100の要求202Aを実行する。例えば、ネットワーク138はインターネット又はLANであり、デジタル・コンテンツ100は特定のウェブページであっても良い。リモートサーバ220Aは、要求されたデジタル・コンテンツ100を有しており、要求202Aに応答するプロキシプロセス216Aを実行する。プロキシプロセス216Aは、クライアント・ブラウザ上での表示のためにウェブページを動的にスケーリング及び/又は副画素最適化するサーバ上で実行されるどのようなプロセスであっても良い。プロキシプロセス216Aは、蓄積(記憶)されたデジタル・コンテンツ100に対して実行され、ステップ108,110,112を実行することによってコンテンツ100を図1に示す形式106に動的に変換する。リモートサーバ220Aは、スケーリング及び/又は副画素最適化されたコンテンツの薄型クライアント・ブラウザ200へのダウンロード212を実行する。
【0030】
図4には、本発明の他の変形例に係る実施形態が図示されている。図3におけると同様に、薄型クライアントの要求は、ネットワーク138を通じて直接、リモートサーバ(ここでは、サーバ220B)になされる。この実施形態では、リモートサーバ220Bは、標準的なブラウザ・コンピュータの使用のための標準的な形式100と、スケーリング及び/又は副画素最適化されたコンテンツ100Aとの両方の状態で、要求されたデジタル・コンテンツを保持している。標準的なデジタル・コンテンツ100から縮小及び/又は副画素最適化された形式への変換は予め実行される。これによって、プロキシプロセスが動的に変換する必要がなくなる。薄型クライアントは、要求されたコンテンツのスケーリング及び/又は副画素最適化されたバージョンを受け取る必要があることを示す情報を、リモートサーバに提供する。リモートサーバ220Bは、スケーリング及び/又は副画素最適化されたデジタル・コンテンツ100のクライアント・ブラウザ200へのダウンロード212を実行する。
【0031】
図5には、本発明のさらなる他の変形例に係る実施形態が図示されている。図5に示すように、ブラウザ200Aは、スケーリング及び/又は副画素最適化プロセス510をさらに含むフルスケールのブラウザである。このブラウザ200Aは、ネットワーク138上のリモートサーバ220Cにデジタル・コンテンツ100の要求202Bを行う。サーバ220Cは、要求されたデジタル・コンテンツ100のブラウザ200Aへのダウンロード212Aを行う。デジタル・コンテンツ100のスケーリング及び/又は副画素最適化された形式への変換はブラウザ200Aで実行されるプロセス510によって取り扱われる。
【0032】
図6は、デジタル・コンテンツ100をスケーリング及び/又は副画素最適化可能なコンピュータシステム600を図示している。この実施形態では、デジタル・コンテンツは予めコンピュータシステム600上で生成されるか又は置かれている。コンピュータシステム600は、スケーリング及び/又は副画素最適化するサブプロセスを含むブラウザプロセス620を保持している。ここで、ユーザは、付属の入力装置、例えばキーボード又はマウスによってコンピュータシステム600にデジタル・コンテンツ100の要求を行う。ブラウザプロセス620は、電気的なメモリやディスク記憶装置のようなコンピュータシステムの記憶素子の1つから、要求されたデジタル・コンテンツ100を受け取る。ブラウザプロセス620は、デジタル・コンテンツ100を一旦受け取ると、これを縮小及び/又は副画素最適化プロセス640に送る。変換が完了すると、変換されたコンテンツは、コンピュータシステム600の表示画面に表示される。本発明のこの実施形態は、ネットワーク又はリモートサーバなしに動作する。
【0033】
図7は、1台のコンピュータシステムの実施形態の他の変形例を図示したものである。この実施形態では、コンピュータシステム700は、予め作成又は配置されている(例えば特定のウェブページのような)デジタル・コンテンツ100、プロキシプロセス740及びブラウザプロセス720を有している。プロキシプロセス740は、縮小及び/又は副画素最適化プログラム760を実行する。ブラウザプロセスは、デジタル・コンテンツ100の表示のユーザ要求をプロキシプロセス740に渡す。次に、プロキシプロセス740は、コンピュータシステム700の記憶素子からデジタル・コンテンツ100を取り込む。デジタル・コンテンツ100を取り込むと、プログラム760はデジタル・コンテンツ100をスケーリング及び/又は副画素最適化された形式に変換し、これをコンピュータシステム700の表示装置によって表示するためにブラウザプロセス740に渡す。
【0034】
図8は、1台のコンピュータシステムの実施形態の第2の他の変形例を図示したものである。ここでは、コンピュータシステム800は、縮小及び/又は副画素最適化されたウェブコンテンツ810を有している。ブラウザプロセス820は、ユーザからのコンテンツ810の表示の要求を処理し、コンピュータシステム800の記憶素子から取り込み、これをコンピュータシステム800の表示装置に表示する。
【0035】
上記に示した本発明の実施形態では、ソースの画像の解像度から副画素アドレスされた画面の解像度への画像のスケーリングは、部分的に、ソースと副画素アドレスされた画面との各解像度によって定義される。
【0036】
本発明の幾つかの実施形態では、ソース画像の解像度と副画素アドレス可能な画面上で表示されるべき解像度との間のスケールファクタ(スケールファクタ)は、ブラウザ装置のユーザによって決定される。この実施形態では、ブラウザのユーザは、記憶素子から読み出される画像を縮小するプロセスとの間でスケールファクタを送受信することによって、複数のスケールファクタの中から選択する。次に、記憶素子から読み出した画像を縮小するプロセスは、選択されたスケールファクタの関数として変化する水平及び垂直方向のスケールファクタによって、画像を縮小及び/又は副画素最適化する。
【0037】
ほとんどの他のユーザがブラウザ装置に入力するように、このようなスケールファクタ選択は、物理的な又はGUIのボタン、メニュー項目、ダイアログ・ボックス、又はブラウザ装置上の他の公知のユーザインターフェース装置を使用することによって行われることができる。
【0038】
このような幾つかの実施形態では、ブラウザ装置のユーザは、画像が以前に記憶素子から取り込まれ第1のスケールファクタで副画素最適化された形式で表示された後に、どのデジタル・コンテンツが再度、縮小及び副画素最適化されて再表示されるかに基づいて、複数のスケールファクタの中から第2のスケールファクタを選択しても良い。
【0039】
このような実施形態では、第1のスケーリング及び副画素最適化された画面において使用されたスケールファクタは、デフォルト又は所望のスケールファクタの結果であるか、またはブラウザ装置のユーザによって以前に選択されたスケールファクタの結果である。ブラウザ装置のユーザは、ブラウザ装置のコントロール部を操作する方法で、デジタル・コンテンツの再表示用の複数のスケールファクタから選択しても良い。このようなブラウザ装置のコントロール装置の操作によって、第2の選択されたスケールファクタに基づいて画像が表示される。
【0040】
このような第2のスケーリングは、ブラウザ装置又は物理的に遠隔なリモートサーバのの内部で実行されるプロセスの結果としても起こる。ブラウザ装置のユーザは、引き続いての再表示のために複数のスケールファクタの中から選択を続ても良い。
【0041】
デジタル画像を整数倍で縮小するのが最も簡単である。整数倍の縮小では、ソース画像の整数の画素を、結果として生じる縮小画像の所定の画素に適合させる。例えば、640×480解像度から320×240解像度へのスケーリングは、スケールファクタ=2の縮小である。本発明の実施形態には、非整数の縮小スケールファクタを含む複数の縮小スケールファクタからユーザが選択可能な実施形態もある。非整数の縮小スケールファクタの例は、640×480解像度のソース画像の480×360画素の部分を320×240解像度の表示画面上に表示するためにスケーリング及び/又は副画素最適化するような、縮小スケールファクタ=3/2の縮小である。
【0042】
陰極線電子管(CRT)のようなコンピュータグラフィック表示装置、液晶表示装置(LCD)画面は、ほとんどがRGBモデルの色空間を使用している。但し、本発明はCMYK色モデルのような他の色モデルにも適用できる。RGBモデルでは、添加される3原色、赤、緑、青が混合され、人間の目に認識されるように所望の色を形成する。
【0043】
ほとんどの携帯コンピューティング装置または画像装置は、RGBモデルを使用するLCD画面を持っている。このようなLCD画面は、何千ものグリッド要素(画素に対応)からなる矩形の配列を有しており、各画素は、RGB色空間の多数の色から任意の1つを表示することが可能であり、全体として認識されると画像を形成する。
【0044】
一方、各画素は、個々にアドレス可能な3つの副要素を有し、ここでは、この副要素を副画素と称す。最も一般的には、副画素は、赤、緑、青の矩形要素である。最も一般的な実施形態では、3つの赤、緑、青の副画素には、各副画素が混合されて画素全体が所望の色に見えるように各々に輝度が割り当てられている。一方、LCD画面の全ての画素が一体となると所望の画像を構成する。
【0045】
3つの副画素は個々にアドレス可能であるとする。というのは、個々の画素に割り当てられた色要素は、別々の赤、緑、青の色要素又は輝度を有しており、画素の赤、緑、青の副画素の各々によって表示されるからである。それ故、各副画素の輝度は、画素に割り当てられた色値において、関連付けられた色要素の輝度値を制御することによって別々に制御される。
【0046】
LCD装置や、カラーLED(有機発光ダイオード(OLED)を使用する画面を含む)、ガスプラズマ表示装置のような他の“副画素アドレス可能な”表示では、各個々の副画素は、表示上で固定の所定の位置を持っている。ほとんどの陰極線電子管(CRT)のような多くの表示は、副画素アドレス可能なものではない。例えば、CRTの各画素は赤、緑、青の色要素に対応する輝度値を持っているが、これらの色値に関連する光を生成する要素の各画素内での正確な物理的配置は、通常知られていない。なぜならば、画面の個々の発光パターン、水平及び垂直走査の解像度、個々の画素が画面上での正確な位置を制御する電圧の正確な現在の状態、の関数として変化するからである。
【0047】
図9は、複数の画素行(R1−R12)及び画素列(C1−C12)から成るLCD画面900の12×12の部分を図示している。実際のLCD画面は、任意の数の行及び列を持っているが、320×240、640×480、800×600、1024×768、1280×1024が良く用いられる。
【0048】
サークル910には画素R1−C1が含まれている。画素R1−C1は、それ自身が3つの画素副要素(ここでは副画素要素と称す)から構成されている。画素R1−C1の拡大図が拡大された画素920として示されている。副画素要素902は赤として表示され、副画素要素904は緑として表示され、副画素要素906は青として表示される。個々の副画素要素902,904,906は、画素全体の約1/3の幅であり、画素全体の高さに等しい。
【0049】
LCD画面900に表示されたように、グリッドの状態で配列されたとき、LCD画面900上において垂直な縞模様として表れる。この公知の画素配列は、垂直RGBストライプと称されることがある。他の公知の配列では、水平ストライプのような直角方向に画素要素が配置される(この場合は、この画面を90°回転すると、垂直ストライプ画面になる。)。
【0050】
一般的な使用において、画素の3つの副画素要素の輝度は、画素が人間の目に所望の色相、彩度及び明度で視認されるように設定される。RGB副画素要素は、一体となって単一の色を持つ画素を形成し、表示画像の1サンプルを表現する。
【0051】
本発明の1つの特徴は、例えば、320×240又は240×320の行列比を持つ表示のような低解像度の画面上における、ダウンロードされたウェブコンテンツ、テキスト及び画像を含むその他のデジタル・コンテンツの判読性の向上に関する。240×320の解像度は、90°回転させることによって320×240の解像度にすることができる。本発明の多くの実施形態は、640×480の仮想レイアウト解像度を320×240画素解像度の画面上に変換された、幾つかの詳細なマップ画像及びテキストにおいて議論され、示されている。しかし、本発明は他の解像度の画面にも使用されることができる。ほんの2,3例を挙げると、大体、1024×768解像度を512×384解像度の画面で見えるようにレイアウトされたコンテンツを表示することに用いられたり、又は、大体、800×600画素を400×300の画面で見えるように用いられる。他の実施形態では、本発明は、パーソナルコンピュータ画面上で共通な偶数比の水平及び/又は垂直の画素次元以外の画素次元を持つ比較的低解像度の表示で使用される。
【0052】
一般的には、低解像度の画面とは、所定のデジタル・コンテンツや所定のデジタル・コンテンツのレイアウトが通常表示するために意図しているよりも低い解像度を持つ画面を意味する。このような小型の画面は、より大型の画面上にあるウィンドウ(ウィンドウ部分は低解像度である)のような、より大型の画面の一部を意味することもある。
【0053】
図10では、画像コンテンツ105及び/又はテキストコンテンツ107が、図1の副画素最適化された画面の一部を示している。図1に示された画像は、テキスト及び画像両方の副画素最適化された表示に関連する実際の色値のグレースケールの拡大図である。矩形部1000内の画像コンテンツ105の部分は、個々の画素を見易くするために1020において拡大して示されている。それに対応して、矩形1040に含まれるテキストコンテンツ107の部分は、1060において拡大されて表示されている。
【0054】
1020及び1060に示された画素は、画素の全体(全体画素)を表していることに留意しなければならない。なぜなら、1020及び1060の生成に使用されるソフトウェアは、個々の全体画素に関連付けられたRGB色値に対応するグレースケールを単に表現しているからである。副画素拡大表示1020A及び1060Aは、それぞれ、拡大図1020及び1060における各画素に対応する3つの副画素の各々の明度を表現するものである。1020Bは、拡大表現1020A及び1020に対するスケールファクタ及び配置に対応する拡大表現である。そこでは、画像の画素格子が相対的に太い線で表示され、各画素内の3つの副画素分割が相対的に細い線で表示されている。合成格子は、拡大表現1020及び1020Aに示された画素パターンが由来する図1のオリジナルの高解像度のカラービットマップ画像102の最上部において重ね合わされる。示された特定の画像において、カラービットマップ102の解像度は、垂直及び水平の両方向において、図10の最下部に示された画像105における全体画素での解像度の2倍の解像度である。
【0055】
拡大表現1060Bは、含まれる1又は複数の文字の高解像度のアウトラインに重なる各副画素の領域の部分が決定されることによって、副画素最適化されたフォントの画像が如何に生成されるかを図示している。
【0056】
副画素解像度の拡大表現1020A及び1060Aを夫々対応する全体画素での拡大表現1020及び1060と比較することによって分かるように、副画素での画像及びテキストの副画素最適化された表現の表示がより良い解像度を提供する。
【0057】
図11は、標準的なウェブコンテンツを320×240のカラー表示装置に表示した場合に、本発明の一実施形態によって提供される判読性の質を表現するものである。同図最上段のビットマップ1100はグレースケールであり、princeline.comのウェブページの一部の標準的な640×480レイアウトから生成された実際のビットマップの全体画素での拡大表現である。この画像は、図11の最下段ウェブページの全画面320×240画像の中に示された矩形部1130内に含まれるウェブページの部分に対応している。同図中段のビットマップ1120はグレースケールであり、上記320×240画像の同じ部分のカラービットマップの全体画素での拡大表現である。図11最下段の200Bは、図2に記載した種類の薄型ブラウザとして機能するハンドヘルド・コンピューティング装置を表している。このブラウザの画面上では、640×480レイアウトのウェブページを表現している320×240副画素最適化ビットマップの表現が示されている。図10の拡大表現1020のように、図11最下段のビットマップ1130は、画素全体での平均的な輝度に対応するグレースケールのレベルで個々の画素を図示している。図9に示すような垂直副画素ストライプの320×240画面上でこの画像を見ると、実際の画像は、図10の拡大表現1020Aによって示されるように、むしろ高解像度を持つように見える。
【0058】
本発明の多くの特徴における目的に対して、カラービットマップの副画素最適化画像を生成するための任意の公知のアルゴリズムを用いることができる。本発明の一実施形態では、所定の色の各所定の副画素に割り当てられた輝度は、ソース画像の矩形ウィンドウの中にあるそれぞれの全体又は部分的な画素の所与の色値の平均的な強度によって決定される。このソース画像のウィンドウは、所定の副画素を中心にして置かれた縮小画像において、全体画素の領域に一致する。副画素に割り当てられる平均的な強度は、全体又は部分的にソース画像ウィンドウに重なる各ソース画像画素の強度と、各ソース画像画素によってカバーされるウィンドウの領域の割合との乗算によって算出される。
【0059】
図12は、解像度が低減された表示装置の副画素格子の、より高解像度のソース画像102の部分へのマッピングを図示している。この図は、図1に示されたオリジナルの、より高解像度のカラービットマップ102の部分に重ねられた副画素格子1210を図示している。円1220は、意図された、より低解像度の表示(装置)における1画素に対応する格子の領域を含んでいる。格子パターンの位置及び大きさは、より高解像度のビットマップ画像と、結果として得られる副画素最適化画像との関係によって決定される。図12に示される特定の格子パターン1210は、カラービットマップ画像102の画素解像度から、水平及び垂直の両方向においてソース画像の二分の一の画素をもつ表示(装置)の解像度へのスケーリングを表現している。このスケーリングの一例は、640×480表示画面の表示に適切な画素を持つ画像を、320×240表示画面に釣り合う表示に縮小する例である。グリッドパターン1210の各太線分割部は、カラービットマップ画像102の4画素をカバーしている。破線円1220は、より高解像度のソースの4画素を含む太線分割部の一つを囲んでいる。
【0060】
図13は、図12の円1220を中心とした9つの太線分割部(即ち、9つの全体画素)の拡大図である。円1300の画素は、所望の表示の1画素を表現している。図13が明らかにするように、格子パターン1210の各太線分割部は、より高解像度の画像の4画素を含んでいる。図13の詳細は、また、所望の表示の各画素は、夫々“R”、“G”、“B”と付された赤、緑、青の副画素を含む3個のカラー画素から構成されている。
【0061】
図14、15、及び16は、それぞれ、ソース画像における矩形ウィンドウ領域の配置を図示したものであり、このウィンドウ領域から、所望の表示での赤、緑、青色の副画素の輝度が決定される。このようなソース画像ウィンドウの領域は、輝度を算出することに用いられる副画素に一致するソース画像の部分を中心とした、縮小画像の画素全体の領域に一致している。
【0062】
図14の矩形部1400は、より低解像度の表示の赤色の輝度を算出するために用いられるソース画像ウィンドウを囲んでいる。同様に、図15及び図16は、所望の表示の緑、青に夫々対応するソース画像ウィンドウを囲んでいる。
【0063】
上述したように、所定の色の副画素に割り当てられる輝度は、以下の関数又は、関数の近似によって決定される。この輝度は、全体又は部分的に当該副画素に対応するソース画像ウィンドウ内にあるソース画像の各画素での当該副画素の色の強度と、当該ソース画像画素によってカバーされる当該ウィンドウ領域の割合との乗算に一致するように設定される。
【0064】
図17、18、及び19において、赤、緑、青の副画素の輝度は、所定の副画素に対応するソース画像の部分を中心として、ソース画像ウィンドウの内に在る全体又は部分的なソース画像画素の各色の輝度の関数である。この点は、図17において赤(R)について示され、ウィンドウ領域1700は当該副画素に対応するソース画像の部分を中心としている。図18のウィンドウ1800は、緑(G)に対して同様のことを図示しており、図19のウィンドウ領域1900は、青(B)に対して同様のことを図示している。
【0065】
各副画素についてソース画像ウィンドウを移動させて得られる結果として、各副画素について生成される色値は、各副画素自体の位置に一致するソース画像の部分での当該副画素の対応色を表しており、全体としての画素の位置に対応するものではない。その結果、所定の画素の異なる副画素ついての異なるソース画像ウィンドウの使用によって、結果として生じる画像の空間解像度が向上する。
【0066】
図17、18及び19に示された本発明の実施形態では、何れの画素が当該副画素のソース画像ウィンドウに含まれるか、及びウィンドウが当該副画素をカバーする割合とは、当該ソース画像の画素に重なる水平及び垂直方向の走査線の割合に基づいて決定される。図17では、赤の副画素の色値は、個々のソース画像に重なる水平カバレージ線1720及び垂直カバレージ線1740の割合と、当該各画素の赤色の値とを乗算した結果として決定される。各色値、すなわち、図18のスケーリング画像の緑(G)の副画素と各水平及び垂直カバレージ線1820,1840とについて、並びに、図19のスケーリング画像の青(B)の副画素の各水平及び垂直カバレージ線1920,1940とについても同様である。水平カバレージ線1720,1820,1920は、それらに対応する矩形領域の垂直方向での中心の直上及び直下の垂直方向の位置を表すことを意図している点に留意しなければならない。このため、カバレージ線は、垂直方向に並んだソース画像の画素間の境界を表す位置とは完全に一致しない。同様に、垂直カバレージ線1740は、矩形領域1700において水平方向での中心の直左及び直右にある水平方向の位置を表すことを意図している。
【0067】
上記で定義されたカバレージ線は、所定色の副画素に関連付けられたオリジナル画像の領域が、所定の色又は形状でカバーされる程度を決定するための、連続関数、又は合理的に高解像度(5ビット以上の解像度)又はそれに相当する解像度の使用に関する、本発明の1つの特徴の実施形態を表している。連続カバー関数では、このカバレージ値は、サンプリングによるのではなく、数学的な関数によって決定される。この数学的な関数は、1次元又はそれ以上の次元で所定のカバーが開始及び終了する境界の位置を決定し、その様な1又は複数の境界間、又はその様な境界と所定の副画素に関連づけられたソース画像ウィンドウの境界との間の、長さ又は面積の関数としてカバレージ値を計算する。
【0068】
図17、18、及び19、並びに図30、31、及び32に示された本発明の実施形態では、連続的なカバレージ値の計算は、所定の副画素に対応するソース画像ウィンドウの内にある各ソース画像の画素を、当該ウィンドウ内にある1又は複数のソース画像画素の夫々にカバーされる矩形領域内にある1又は複数の走査線の部分を決定することによって、評価することによってスピードアップされる。所定の画素によってカバーされる当該ウィンドウの走査線全体の長さの割合は、当該画素における副画素の色値によって乗算される。このような計算結果は、当該副画素の色値を生成するために、当該ウィンドウの各走査線をカバーする全画素について足し合わされる。このようにして、カラービットマップのスケーリング画像を生成する際に、“ライン・カバレージ”型の連続的なカバー関数が、副画素の輝度を決定することに使用される。
【0069】
図20、21及び22は、より低解像度の表示画面における赤(R)に対応するソース画像ウィンドウ内の1本の水平走査線、1本の垂直走査線の使用を図示している。図21では、水平走査線2020に関連付けられたカバレージ値は以下の値の合計である。即ち、
−中括弧2120によってカバーされた画素の赤値と、中括弧2120によってカバーされた水平走査線2020の1/3の部分との乗算値。
【0070】
―中括弧2140によってカバーされた画素の赤値と、中括弧2140によってカバーされた水平走査線2020の1/2の部分との乗算値。
【0071】
―中括弧2160によってカバーされた画素の赤値と、中括弧2160によってカバーされた水平走査線2020の1/6の部分との乗算値。
【0072】
同様な方法で計算すれば、垂直走査線2040に関連付けられたカバレージ値は以下の値の合計である。即ち、
―中括弧2220によってカバーされた画素の赤値と、中括弧2220によってカバーされた垂直走査線2040の1/2の部分との乗算値。
【0073】
―中括弧2240によってカバーされた画素の赤値と、中括弧2240によってカバーされた垂直走査線2040の1/2の部分との乗算値。
【0074】
赤の副画素に対する全カバレージ値は、水平走査線について計算されたカバレージ値の1/2と、垂直走査線について計算されたカバレージ値の1/2との和である。
【0075】
同様に、図23、24及び25は、より低解像度の表示画面における緑(G)に関連付けられたソース画像ウィンドウ2300内にある1本の水平走査線及び1本の垂直走査線の使用を図示したものであり、図26、27及び28は、より低解像度の表示画面における青(B)に関連付けられたソース画像ウィンドウ2600内にある1本の水平走査線及び1本の垂直走査線の使用を図示したものである。
【0076】
図29は、上記図17乃至28において記載された種類の線のカバレージ値を使用してソースのビットマップからスケーリング副画素最適化画像を生成するための、アルゴリズム2900の擬似コード表記である。
【0077】
このアルゴリズムは、出力画像(例えば、スケーリング副画素最適化画像)の各画素行に対してループ2901を実行する。
【0078】
このループは、現在の行の各画素に対してインナーループ2902を実行する。各画素について、ループ2902は、ループ2904及び関数(関数)2914を実行する。
【0079】
ループ2904は、副画素の走査線の各々(図17乃至図28で示されたような走査線)に対して実行されるインナーループ2906を含んでいる。
【0080】
ループ2906は、関数2908及びループ2910を含んでいる。関数2908は、当該走査線と画素境界との各交差点を計算する。通常、そのような交差点の計算と、このアルゴリズム中の他の計算とは、蓄積資源や当該演算の演算量を低減するために、例えば、6〜8ビットの精度のように制限された精度で実行される。
【0081】
その後、ループ2910は、関数2912を走査線の各部分(走査線の両端、走査線の端と画素の境界、又は画素の2つの境界)に対して実行する。関数2912は、ループ2910の現在の部分にカバーされた走査線の割合に、当該部分をカバーする画素の要素色値であって現在の副画素色に対応する要素色値を乗算したものを、副画素の走査線の数で除し、ループ2904の現在副画素に関連づけられたカバレージ値に加算する。
【0082】
ループ2904が現在の画素の各副画素について副画素輝度を計算すると、関数2914は、現在の画素の色値を、計算された各副画素輝度値に等しい赤、緑及び青の値をもつ複合RGB値を持つ色に設定する。
【0083】
本発明の他の実施形態では、(例えば、24bit、26bit、12bitの色値のような)異なる長さの色値が使用され得る。このシステムは、制限されたカラーパレットで使用されるが、システムは、赤、緑、青の夫々について少なくとも4bitをもつトゥルーカラーで最適に機能しうる。16bitカラー(通常、赤及び青に5bitを割り当て緑に6bitを割り当てる(緑に対して目がより敏感であるため))は、より良好な視覚効果を提供する。
【0084】
上記図17乃至28で記述された本発明の実施形態では、1本の水平走査線と1本の垂直走査線とを利用しているが、本発明の他の実施形態では、より多くの走査線の使用及び/又は水平及び垂直方向以外の方向の走査線の使用があり得る。
【0085】
図30は、副画素最適化画像の赤(R)の副画素に関連づけられたカラー値を評価するために使用される、ソース画像ウィンドウ3020内の2本の水平走査線と2本の垂直走査線の使用を図示している。
【0086】
図31は、副画素最適化画像の緑(G)の副画素に関連付けられたソース画像ウィンドウ3120内にある2本の対角カバレージ線の使用を図示している。
【0087】
図32は、副画素最適化画像の青(B)の副画素に関連づけられたソース画像ウィンドウ3220内にある2本の対角カバレージ線、1本の水平カバレージ線、1本の垂直カバレージ線の使用を図示している。
【0088】
もちろん、図30乃至31の各図に示されたカバレージ線の配置の各々は、赤、緑及び青の副画素にも用いることができる。
【0089】
図33乃至38は、副画素の輝度値を計算するライン・カバレージ方法は、ソース画像のサイズと結果として生じる副画素最適化画像のサイズとの間のより広い範囲の異なるスケーリングに適用され得ることを図示している。なぜなら、ライン・カバレージ方法は、例えば大抵のサンプリング技術と比較して、十分な高解像度でライン・カバレージ値を測定することができる。これは、(非整数の比率であるスケールファクタを使用する場合にしばしばそのような結果になるように、)副画素のソース画素ウィンドウ内に部分的にのみ在る画素のカバレージ値を計測する事に対して比較的良い結果を生む。
【0090】
本発明の本特徴の実施形態では、7bit解像度は、ライン・カバレージ値の計算に使用され、十分な結果を生じる。より高い又はより低い解像度も使用され得るが、ライン・カバレージ値の解像度は、16(4×4)〜256(16×16)点の配列での副画素のソース画像ウィンドウ内のサンプリングよってカバレージ値を計測する技術で使用されるのと共通に、各方向ごとに2〜4bit以上が好ましい。
【0091】
図33は、ソース画像解像度から水平及び垂直方向に半分の画素を持つ方向性画素最適化画像へのマッピングのために、青の副画素に関連付けられたソース画像ウィンドウ内の様々なソース画像画素による2本の水平カバレージ線のカバレージ値を図示している。図34は、当該副画素輝度計算方法で使用される2本の垂直カバレージ線について同様なものを図示している。それ故、図33及び34は、ソース及び低減画像における画素数の間の整数の比率を図示している。
【0092】
図35及び36は、それぞれ、低減副画素最適化画像が水平及び垂直方向においてソース画像の40%だけをもつスケールファクタに対して、同じソース画像の画素によって、水平及び垂直走査線のカバレージ値を図示している。
【0093】
図37及び38は、副画素最適化画像が水平及び垂直においてソース画像の66.66%の画素を持つ場合のスケールファクタに対して同様のことを図示している。
【0094】
図33乃至38に示された走査ライン・カバレージ技術が、比較的少ない演算能力で、異なる各スケーリングのソース画像によってカバーされる各ソース画像ウィンドウの割合の正確な評価を提供することが分かる。
【0095】
図39及び40は、“領域”タイプの連続カバレージ値関数に関する図を示している。本発明の幾つかの実施形態では、各ソース画像画素に重なる所定の副画素ソース画像ウィンドウは、上述したライン・カバレージ値近似ではなく、当該副画素のソース画像ウィンドウ内にある各ソース画像の当該部分の領域の実際の計算によって計算される。各ソース画素について、副画素色に対応する当該画素の要素色値が決定される。次に、各副画素の輝度値は、カバレージ値の割合と、当該ソース画像ウィンドウ内に現れる各ソース画像画素の当該副画素色の値との乗算を合計して計算される。
【0096】
図39は、青(B)副画素に関連づけられたソース画像ウィンドウ3900を図示している。ソース画素3920は、8つの他のソース画素の部分と同様に、ソース画像ウィンドウ3900内に含まれている。ソース画素3920に重なるソース画像ウィンドウ3900の割合は、全ソース画像ウィンドウ4000の領域に渡って、図40の網掛け部4020の領域の割合を得ることによって計算される。同様に、当該ウィンドウに含まれる他のソース画素に重なるソース画像ウィンドウ4000の割合は、当該ソース画像ウィンドウ内にあるそれらの領域(当該ソース画像ウィンドウの全領域に渡って、当該ウィンドウ4000の異なる網掛け部の領域によって示される)の割合を得ることによって計算される。
【0097】
図41は、図39及び40で議論されたタイプのエリア・カバレージ関数を実行するために使用されるアルゴリズム4100の大幅簡略化・擬似コード表記を提供している。
【0098】
当該アルゴリズムは、生成されるべき副画素最適化画像において各画素行に対して実行されるループ4102を含んでいる。ループ4102は、各行において、行の各画素についてのインナーループ4104を実行する。
【0099】
このインナーループ4104は、ループ4106と関数4116とを含んでいる。ループ4106は、ループ4104の画素の各副画素について実行される。このインナーループ4106は、関数4108とループ4110とを含んでいる。関数4108は、上述したように、ソース画像のどの画素が当該副画素に関連づけられたソース画像ウィンドウ内に含まれるかを決定する。これが実行されると、ループ4110が、各ソース画像画素について実行される。
【0100】
ループ4110は、関数4112と関数4114とを含んでいる。関数4112は、ループ4110の現在のソース画像画素に重なる、副画素のソース画像ウィンドウの割合を計算する。次に、ステップ4114は、ループ4106の現在の副画素について計算される輝度に、現在のソース画像画素に重なる当該副画素のソース画像ウィンドウの割合と、当該副画素色に対応するソース画像画素の要素色値とを乗算したものを加える。
【0101】
一旦、ループ4106が現在の画素の各副画素に対して実行されると、関数4116は現在の画素の色値を、ループ4106で計算された赤、緑、青の副画素輝度値に一致するRGB色要素値をもつ色と等しく設定する。
【0102】
図42乃至53は、2色副画素最適化画像に関する本発明の特徴に関する。
【0103】
“2色”画像は、個々の画素色が2つの異なる色値の間で変化する画像である。一般に、これらの2つの異なる色は黒と白であり、ソースの画素と副画素の画像は、黒と白と黒及び白の間のグレースケールに制限された値を持つ。しかしながら、幾つかの実施形態では、2つの異なる色値は、任意の規則的な前景色及び背景色と、それらの間の中間色とを表現し得る。2色画像はしばしばテキストを表現することに使用される。なぜならばテキストの表示は、しばしば、前景色、背景色を含む2色に色づけされているからである。しかし、2色画像は、2色の他の形状、2色のビットマップ、2色化された多色ビットマップの部分、又は、グレースケール画像のような2色出力で表現されるべき多色ビットマップを表現することに使用される。例えば、多色ソース画像は、3色要素の各々の平均輝度に対応するグレースケール値を持つ各画素として単に取り扱うことによって、グレースケール画像として取り扱われうる。
【0104】
2色化副画素最適化出力画像を使用する利点は以下の点である。それらの画像は、しばしば、多色副画素最適化出力画像よりも、より高い空間解像度を提供し得るからである。その様な、より高い解像度は、2色が、黒及び白、グレースケール値、又は、不透明及び透明である場合に得られる。なぜならば、各副画素が、2色ペアの前景及び背景を表現可能であるとともに、各2色ペアの各色は、赤、緑及び青の同等の要素を持っているからである。カラーバランスを実行する必要を除いて、以下に示すように、各副画素の輝度は、出力画像中の自身の領域に一致するソース画像の部分が前景又は背景に重なる程度の関数として決定される。より小さなソースウィンドウ(例えば、画素のサイズよりもむしろ副画素のサイズに一致する)の使用によって、ソース画像のより精度の高い空間解像度を実現することができる。
【0105】
前景及び背景の色が白黒でない場合には、2色副画素最適化画像で生成される解像度は、前景及び背景の色がそれぞれ比較的輝度の等しい赤、緑及び青の値を持つが、前景及び背景の色の平均的な輝度が可能な限り異なる場合に、最も良好である。実際、2色化副画素最適化画像に関する本発明の特徴の幾つかの実施形態では、出力画像の空間解像度を向上させるために、対応するグレースケール色に向かってシフトさせることによって、出力2色の一方又は両方が、対応する入力2色から変更される。
【0106】
2色化・副画素最適化・出力画像の副画素が前景の色を表示する程度は、時折、アルファ値又は不透明値によって表現される。アルファ値は、副画素の輝度が、前景色又は背景色における色要素に一致すべき程度を示している。アルファ値“1”は、当該副画素の色要素の値が、前景色の対応する色要素に等しいことを意味している。アルファ値“0”は、当該副画素の色要素の値が、背景色の対応する色要素に等しいことを意味している。中間のアルファ値は、当該副画素の色要素の値が、前景色及び背景色の対応する色要素の加重された混合であることを意味している。副画素最適化ビットマップがアルファ値によって表現されると、アルファ値は、異なる前景及び背景の色を使用するパターンの2色画像を表現するために使用される。これはフォント形状を表現するためにも共通に使用される。なぜならば、フォントの表示においては、通常、所定のサイズの文字・フォント形状のビットマップパターンが、異なる前景色及び背景色で表示されるからである。
【0107】
ビットマップ画像の2色化・副画素最適化に関する本発明の特徴の幾つかの実施形態において、ビットマップ画像のスケーリング・副画素最適化画像は、以下の(a)〜(c)の関数として、前景又は背景の2色カバレージ値とスケーリング画像の各副画素とを関連づけることによって生成される。(a)当該副画素の領域に一致するソース画像ウィンドウ内の各ソース画像画素の前景色又は背景色の割合、(b)各ソース画像画素に重なる当該ウィンドウの割合、(c)カラー・アンバランスを低減するために副画素カバレージ値を分散するカラーバランス関数。2色出力画像がグレースケールにも多色入力画像に対しても生成される場合には、個々の副画素について計算されるカバレージ値は、当該ソース画像ウィンドウに重なるソース画像画素の全画素の輝度の関数として生成される。幾つかの実施形態では、副画素のソース画像ウィンドウに関連付けられた輝度値が他の副画素に分配される程度は、当該輝度値がカラーアンバランスを発生させる程度の関数である。
【0108】
図42乃至44は、グレースケール2色画像の各副画素の輝度を決定する方法を図示している。図42では、矩形4200は、スケーリング画像の赤(R)の副画素に対応するソース画像のウィンドウを囲んでいる。赤(R)副画素に対応する輝度は、ソース画像ウィンドウ4200に重なる1又は複数のソース画像画素の全体画素の輝度に、それぞれ当該ソース画像画素に重なるソース画像ウィンドウの割合を乗算したものの関数である。カバレージ値の割合を計算又は評価するために、公知の任意の方法を使用することができる。
【0109】
図42の実施形態では、ソース画像ウィンドウ4200は、2本の水平走査線4210,4220及び2本の垂直走査線に関連づけられている。図43及び44は、緑及び青夫々のソース画像ウィンドウ4300,4400に対応する走査線を図示している。前述の様に、ソース画像ウィンドウがソース画素に重なる割合を見積もるには、各走査線に沿って所定のカバー・ラインが開始及び停止する境界の位置を決定する数学的関数を実行する。カバレージは、1又は複数のその様な境界の間、又はそのような境界と当該副画素に関連付けられたソース画像ウィンドウの境界との間の長さの関数として、計算される。これは、図29に上述した方法と同様の方法で実行され得る。
【0110】
2色副画素最適化画像を計算する場合、カラー・アンバランスが発生するかもしれない。これは、2色方法は、全体画素が2色(通常、白又は黒)の間の分布における色値を持つ様な出力画像を生成しようとしているが、画素の個々の赤、緑、青・副画素のカバレージ値は、各副画素の前景色の割合によって決定されるからであり、即ち、個々の出力画素の色は、通常、カラー・バランス無しには、所望の2色分布(通常、グレースケール)と関係無いことを意味する。
【0111】
例えば、グレースケール画像では、ソース画像が、副画素最適化出力画像の赤、緑副画素の間の境界に対応する位置で、全体的に白から全体的に黒に変化するとき、出力画像中の対応する画素は、当該副画素を全体的に表示しようとする赤副画素カバレージ値と、当該画素を全体的に非表示にしようとする緑及び青副画素カバレージ値とを持つ。これは、たとえこの例では、出力画像がグレースケールであるべきであっても、当該画素を赤色に見える様にする結果となる。
【0112】
図45乃至47は、フォント・アウトラインのラスタ化から計算される副画素カバレージ値をカラー・バランスするために、従来技術で使用される種類の伝統的な線形カラー・バランスが、2色ビットマップから生成されるカバレージ値をカラー・バランスすることにどの様に使用されるかを図示している。
【0113】
図45は、RGBグリッド4600下でグレースケール・ソース画像画素のセットを図示している。グリッド4600は、太線分割部に囲まれた4つの画素領域を持つ。その様な各画素領域は、出力画像が表示されるべき副画素アドレス可能な画面における全体画素に対応する。各画素領域は、副画素アドレス可能な画面上で関連づけられた画素の副画素に対応する3つの領域に、さらに分割されている。
副画素に関連付けられた領域4610は、赤(R)副画素に関連づけられており、副画素に関連付けられた領域4612は、緑(G)副画素に関連づけられており、副画素に関連付けられた領域4614は、青(B)副画素に関連づけられている。副画素に関連付けられた領域4616乃至4632は、それらの各表示画面画素に関連づけられている。
【0114】
副画素に関連付けられた領域4614乃至4630は、前景色(この場合、黒)の種々の程度に対応する非白輝度値を持つソース画像に全体的又は部分的に重なっている。副画素関連領域4614乃至4630の夫々におけるソース画像画素の非白輝度値の全体は、図46のRGBグリッド4700中の対応する副画素領域にマッピングされる。各副画素領域4744乃至4760の斜線領域の高さは、対応する副画素領域4614乃至4630の非白輝度値の合計によって決定される。
【0115】
図46の下段は、副画素4750に関連づけられたカバレージ値を、副画素4750を中心とする5つの副画素に分配するのに使用される、中心加重・対称カラーフィルタの使用を図示している。副画素4750のカバレージ値の3/9は、副画素4750自身に分配される。副画素4750のカバレージ値の2/9は、当該副画素の直左及び直右に夫々ある副画素4748及び4752に分配される。副画素4750の色分配を完了するために、カバレージ値の1/9は、副画素4750の夫々左に2番目の副画素、右に2番目の副画素である副画素4746及び4754に分配される。
【0116】
一般に、カラーバランスは、色値を近接画素の近傍(近接画素は、通常、色を分配しようとしている副画素から1画素以下の距離内にある。但し、幾つかの実施形態では、その距離は2画素の大きさになることもある。)に分配する。
【0117】
図47は、図46の対称・中心加重カラーバランスフィルタが、図46の上半分に示された副画素4740乃至4762の夫々について計算されたカバレージ値に線形に適用された場合の結果を図示している。
【0118】
図47では、図47の最上段に示された各副画素4744乃至4760に関連づけられたカバレージ値は、当該副画素自身と、図46に示した様な左及び右に2つの副画素と同じ部分にカバレージ値を分配するカラーバランスフィルタを使用して分配される。図47の中段にあるグリッド4802は、各副画素4740乃至4762に分配する寄与分の大きさをグラフィカルに図示している。各副画素4744乃至4762に割り当てられた分配は、各副画素の直下に位置する垂直列を中心として配置されている。
【0119】
図47の最下段に示されたRGB副画素グリッドパターン4804は、中段のパネル4802に図示されたカバレージ値の寄与分の全てにより成される全ての寄与分を、各副画素4740乃至4762について合計して計算される輝度値を図示している。この方法を完了するために、グリッド4804の各画素の赤、緑、青・副画素の輝度値は、各画素の色を特定する3要素色値として使用される。
【0120】
この線形方法は、スケーリング画像のカラー・アンバランスを低減するが、空間解像度の実質的な低下によってそれが成される。これは、図47の最下段のRGBグリッドパターン4804における副画素輝度(副画素最適化出力画像における副画素輝度値を表している)と、図47の最上段のRGBグリッドパターン4800(出力画像の副画素に対応するソース画像画素の輝度、又は前景色カバレージを表す)とを比較することによって理解される。図47に示される様に、出力画像の空間解像度は、ソース画像の空間解像度に比較して不鮮明である。
【0121】
本発明は、副画素最適化出力画像の類似のカラーバランスを、しばしば、出力画像不鮮明度をかなり少なくして、提供する改善を含む。これは、非線形カラーバランスフィルタリング方法を使用することによって成される。非線形フィルタリングを適用する方法が、図48及び49に図示されている。
【0122】
図48のRGBグリッドパターン4900は、図46のRGBグリッドパターン4700の複製である。再言すると、副画素に対応するソース画像画素の全体輝度、又は前景色カバレージは、斜線領域によって表されている。
【0123】
非線形カラーバランス方法の最初の段階が、図48に図示されている。前述した様に、RGBグリッドパターン4900は、太線分割によって4つの部分に分割されており、各4つの部分、括弧部分4902,4904,4906,及び4908は、生成されるべき出力画像の副画素に一致する副画素領域にさらに分割されている。各画素に対して、どの副画素が、最低の副画素輝度又は前景色カバレージ値を持つか決定され、最小輝度/カバレージ値に等しい輝度(又はアルファ)値が、図48の下半分に示されたRGBグリッドパターン4910の画素4912,4914,4916,及び4918の各副画素について計算される輝度/アルファ値に加算される。
【0124】
図48の上部半分では、破線4920は、画素領域4902の最小輝度/アルファ値がゼロであることを示す。なぜならば、画素領域4902の最初の2つの副画素に関連づけられた領域がゼロの輝度値を持つからである。それ故、図48に示されたステップは、画素4912の赤、緑、及び青の副画素領域の輝度/アルファ値をゼロに設定する。同様にして、画素領域4904の最小輝度値は、画素4904の赤の副画素領域の値4922によって決定される。同様に、画素領域4906及び4908の最小輝度値は、図48の下半分の画素領域4916及び4918にマッピングされる。このステップの完了後に生じる部分的に計算された輝度/アルファ値は、図48の下段のRGBグリッドパターン4910によって表されている。
【0125】
非線形カラーバランス方法の第2段階は、図50に図示されている。第2段階のこの例では、当該画素の最小輝度/アルファ値を超える各副画素の輝度/アルファ値の部分は、図46及び47で上述された種類のカラーバランス分配フィルタを利用して、RGBグリッドパターン4910にマッピングされている。
【0126】
図49の最上段の画素グリッド5000は、図48の上段の画素グリッド4900に一致する(また、同じ副画素4740乃至4762を持つ)。但し、対応する画素の最小副画素輝度/アルファ値(低密度の斜線で示す)が除かれた後に残る各副画素の輝度/アルファ値(密度の濃い斜線で示す)の部分が表現されている点を除く。図のこの部分に示される様に、各副画素の超過・輝度/アルファ値は、図46と同じ形状のフィルタを使用して、副画素自身、左に2つの画素及び右に2つの画素に分配される。
【0127】
図49の最下部近傍で符号5004が付された部分は、非線形方法のこの例において、各副画素4740乃至4762に分配された超過・輝度/アルファ値の合計を図示している。図49の最下段に図示した様に、出力画像の各副画素について使用される輝度/アルファ値の合計を生成するために、各副画素について計算された超過・輝度/アルファ値の合計は、図48に示されたステップによって以前に副画素に加算された最小輝度/アルファ値に加算される。
【0128】
非線形カラーバランス処理を完了するために、RGBグリッドパターン4910の各副画素について加算された輝度/アルファ値は、それが関連付けられた画素の赤、緑、青の色要素値を決定するために使用される。その様な表示における個々の各画素の赤、緑、及び青色値は等しくないかもしれないが、画素行の5つ程度の隣接した副画素の如何なる近傍における赤、緑、及び青色値の合計は、実質的に等しい又はバランスされなければならない。
【0129】
線形及び非線形カラーバランスフィルタリング方法を使用して達成される結果の比較が、図50,51,及び53に記載されている。
【0130】
図50は、図46のRGBグリッドパターン4700及び図48の4900に最初にマッピングしたフィルタ前のソース画素輝度/カバレージ値を図示している。
【0131】
図51は、図49の最下段に示された様な、非線形フィルタリング方法の結果を示している。
【0132】
図52は、図47のRGBグリッドパターン4804に示された様な、線形フィルタリング方法の結果を示している。
【0133】
図51に示す非線形バランス方法の出力は、図52に示す線形方法の結果よりも、図50の元の輝度/アルファ値の空間的な分布に近い。図51の非線形方法で生成された輝度値は、不鮮明度がかなり低く、それ故、線形不法で生成された出力画像よりも高い空間解像度を知覚させる。これは、空間解像度をぼかす有害な影響を持ち、カラー・アンバランスを防止するためにカラー・バランス分配を必要とする副画素輝度/アルファ値の部分にのみ、非線形方法がカラー・バランス分配を実行するからである。これは、非線形方法を使用して各副画素に分配された副画素輝度/カバレージ値の合計(図49の数字5004で示される)と、線形方法を使用して各副画素に分配された対応する合計(図47の最下段で各副画素について示された斜線部全体によって示される)とを比較すれば分かる。
【0134】
図53は、非線形カラーバランス方法を使用して副画素最適化2色出力ビットマップを生成する方法の一実施例を、大幅に簡略化した擬似コード表記で表したものである。
【0135】
この図のアルゴリズム5300は、画像の各画素行に対して実行されるループ5301を含んでいる。このループは、各画素行に対して、2つのサブループ5302及び5322を実行する。
【0136】
ループ5302は、ループ5304、関数5314及びループ5316を実行する。
【0137】
ループ5304は、ループ5302の現在画素の各副画素に対して実行される。各当該副画素に対して、それは関数5306及びループ5308を実行する。
【0138】
関数5306は、ソース画像のどの画素が、スケーリング画像の当該副画素の領域に該当する当該ソース画像のウィンドウ部分内にあるかを決定する。
【0139】
ループ5308(関数5310及び5312を含む)は、現在の副画素のソース画像ウィンドウ内に全体的又は部分的に含まれる各ソース画像画素に対して実行される。関数5310は、当該ソース画像画素の領域に重なるソース画像ウィンドウの領域の割合を計算する。関数5312は、ソース画像画素に重なるウィンドウ領域の割合と当該ソース画像画素の平均の前景色強度とを乗算したものを、現在の副画素に対して計算された輝度/カバレージ値に加える。
【0140】
2色画像がグレースケール画像である場合には、前景色強度は、各全体ソース画像画素の、輝度、又は輝度の逆数にも対応し得る。ソース画像が多色画像である場合には、関数5312の目的のための前景色強度の計算において、各ソース画像画素の色要素の平均の輝度値は、ソース画像画素に使用され得る輝度値を決定することに用いられ得る。
【0141】
ループ5304は、図46に示された種類の輝度/カバレージ値を決定することに使用され得る。
【0142】
ループ5304が現在の画素の各副画素に対して実行されると、関数5314は、図48の上半分に図示されたように、現在の画素について計算される最小の副画素の輝度/カバレージ値を見つける。
【0143】
これが実行されると、ループ5316(関数5318及び5320を含む)は現在の画素の各副画素について実行される。
【0144】
関数5318は、当該副画素について計算されている輝度/アルファ値を、図48の下半分に示されたように、関数5314によって当該画素について決定された最小の副画素の輝度/カバレージ値に設定する。
【0145】
関数5320は、当該画素の最小の副画素の輝度/カバレージ値を超える、副画素の輝度カバレージ値の部分を、図49に示されたようなカラーバランス分配フィルタを使用して、現在の画素行の当該副画素について計算されている輝度/アルファ値及び近傍の副画素の輝度/アルファ値に分配する。
【0146】
本発明の実施形態の1つでは、所定の副画素に対して成されたこのような分配の合計が最大許容輝度/出力値を超えた場合、副画素の輝度/アルファ値はその最大値に制限される。この切り捨てはいくらかのカラー・アンバランスをもたらすかもしれないが、本発明者は、結果として生じるアンバランスはほとんど気づくことができないものであることを了解している。
【0147】
輝度/アルファ値が当該行の各副画素について計算され、ループ5302が完了されると、ループ5322は、関数5324が当該行の各画素に対して実行されるように処理する。
【0148】
この関数は、当該画素の色値を、当該画素の赤、緑及び青の副画素について夫々計算された輝度/アルファ値に該当する赤、緑及び青の要素値を含む混合RGB値を持つ色に等しくなるように設定する。図54は、表示(装置)のユーザが動的にトレードオフを実行する本発明の1つの特徴を図示している。このトレードオフは、ソース画像から生成された副画素最適化画像が、多色副画素最適化処理よって生成されるか、2色副画素最適化処理によって生成されるかの程度の間のトレードオフである。多色副画素最適化によって生成される出力画像は、合理的な色精度で縮小カラー画像を表現し得る一方、この例の2色副画素最適化は、グレースケールの出力画像のみを生成し得る。しかし、幾つかの場合には、このようなグレースケールの出力画像は、多色副画素最適化によって生成された出力画像よりも、より精度の良い空間解像度を持ち得り、特に、ソース画像がシャープなエッジを持つ白黒部分を持つ場合には、カラーアンバランスを知覚し難い。
【0149】
カラービットマップ画像5400は、スケーリング及び副画素最適化されたグレースケールビットマップ5440を生成するために、図42乃至53の上記例のような、2色副画素最適化方法を使用する関数5410及び5430の利用によって、スケーリング及び副画素最適化される。カラービットマップ画像5400は、プロセス5420によってもスケーリング及び副画素最適化されることがある。プロセス5420は、スケーリング及び副画素最適化されたカラービットマップ5450を生成するために、図17乃至40に上記された例のような、多色副画素最適化方法を使用する。
【0150】
図54に示された本発明の実施形態によると、表示(装置)のユーザは、プロセス・ステップ5460に従って、ポインティングデバイス、キーボード又は他の入力デバイスのような表示(装置)の制御装置を操作し、カラービットマップ5450とグレースケールビットマップ5440とを混合させることができる。これは、例えば、スライドバーの操作によっても成され得る。プロセス・ステップ5480は、グレースケールビットマップ5440及びカラービットマップ5450と、ユーザが選択したカラー/グレースケールのトレードオフ情報とを受け取り、ユーザが選択したカラー/グレースケールのトレードオフ5460の関数として各々の色値に重み付けをして、グレースケールビットマップ5440及びカラービットマップ5450からの該当する画素の色値を混合する。
【0151】
図54に示された種類の幾つかの実施形態では、ユーザがカラー/グレースケールの分布の何れかの極限でトレードオフを選択するとき、このプロセスは、選択された極限に該当するビットマップ5440又は5450のみを計算することによって演算を低減することができる。
【0152】
本発明の本特徴の利点は、表示(装置)のユーザが、カラーバランス及び/又は位置的精度の何れを最も重要と考えるかを選択することができ、色精度を最も重要と考える場合にはこれを選択することができ、単により判読しやすい表示を見つけるためにトレードオフの選択を変化させることもできる。
【0153】
本発明の全ての特徴が副画素最適化されたテキストを必要とする訳ではなく、副画素最適化されたフォント形状のビットマップのテキストを生成する従来方法を使用するものの多くを必要としない。しかしながら、本発明の幾つかの特徴は、フォントビットマップを生成する方法における改善に関する。
【0154】
図55乃至97は、副画素最適化されたフォントビットマップの形成及び使用に関連している。
【0155】
図55は、フォント・アウトライン5500を図示しており、ここでは、タイムズ・ローマン・フォントの大文字の“B”のアウトラインを図示している。このアウトラインは、複数の個々の全体画素5504を含んでいる副画素グリッド5502の上に重ねて表示されている。各全体画素5504は、赤、青及び緑の副画素5506、5508、5510をそれぞれ含んでいる。
【0156】
図55に示されたフォント・アウトラインは、比較的通常のテキストサイズでの表示に使用され得るアウトラインである。これは、本発明者の副画素最適化文字・フォント形状の方法が、広い範囲の応用に渡って適用可能であり、図11の最下段に示された種類の小型画面表示(装置)に制限されないことを示している。しかしながら、本発明のこの特徴が小型画面表示及び/又は極めて小さい画素サイズでのフォントの表示に適用される場合には、フォントは小さなサイズでの表示のために最適化されることが好ましい。例えば、幾つかの実施形態では、em当たり10画素以下、又はem当たり8画素以下のような場合である。
【0157】
図56は、副画素アドレス可能な画面上で小型表示のために最適化されたフォントを図示したものである。図57は、2倍のサイズで同じビットマップを示している。不運なことに、図56及び57に示されたビットマップの印刷物は、全体画素の平均的な輝度を表示しており、ビットマップが副画素アドレス可能な表示(装置)上で示されたときに可能になる様なより高い解像度を獲得できていない。
【0158】
図56及び/又は57に示されたフォントは、ヒンティング処理によって生成されている。ヒンティング処理では、個々のフォント・アウトラインの境界を、画素の境界、副画素の境界、及び副画素の境界の間にある水平及び垂直方向の中間に選択する。このような高解像度ヒンティングは、副画素表示上で最適な判読性を達成するために使用される。これは、フォントデザイナーの視点での個々の文字の副画素最適化ビットマップに、当該文字が小型フォントサイズで表示したときに可能な限り明瞭になっていると相対的に満足できるまで、様々なヒンティング値を持たせることによって成される。フォント・ヒンティングのこれらの知識が理解されるように、フォントは、そのフォントの全てのサイズの表現に渡ってフォント・アウトラインの個々の部分の配置を命令するヒント値と、特定の画素サイズでの文字・フォント形状に適用される特別なヒント値とを持つことができる。図56及び57に示されたフォントは、em当たり8画素での表示を最適化するようにヒンティングされており、それらの幾つかは、そのような小さなサイズにのみ適用されるべき特定のヒント値を持っている。
【0159】
実際、320×240画素解像度の画面ショットにおけるフォントのほとんどは、そのサイズでの表示のために特にヒンティングされたem当たり8画素のフォントである。これらのフォントは、比較的大量のウェブテキストを小型画面上に適合させる一方、比較的高水準の判読性を提供する。これらのフォントは、隣接する文字同士を隔てるスペースが在ればそれを含んで、低解像度の場合のほとんどの文字を4画素列以下で表示可能にする。そのような小さいフォントの判読性は、副画素最適化の使用によってもアンチエイリアス処理によっても大幅に向上される。なぜならば、これらは、文字形状が所定の画素をカバーする程度についての情報が、単なる全体画素レベルでの2色表現よりも多く表現されるようにするからである。実際、副画素最適化はアンチエイリアスの一種と考えられている。なぜならば、それは、伝統的なアンチエイリアスと同様に、フォント形状によって部分的にカバーされる画素が、そのようなカバー範囲の程度の関数として変化する色値を持つようにするからである。
【0160】
図58及び59は、本発明によって生成された副画素最適化ビットマップが、フォント・アウトライン及び/又はフォント・ビットマップとして表現され得ることを図示している。フォント・アウトライン表現5802は、好ましくは、文字・アウトラインの境界を1又は複数の異なるフォントサイズに最適に配置するように設計されたヒンティング情報とともに、所定のフォントの1又は複数の文字の形状の数学的幾何学的な記述を含んでいる。これらのフォント・アウトラインは、今議論されたような、副画素アドレス可能な表示上で最適に表示されるように設計されており、かつ、副画素アドレス可能な表示上での表示に最適化されたヒンティング値を持つものである。
【0161】
フォント・レンダリング5806は、以下に記述されるように、そのようなアウトラインから副画素最適化ビットマップ5804を生成することに使用され得る。
【0162】
本発明の幾つかの実施形態では、図58に図示されたように、コンピュータ5808及び/又は該コンピュータ上で実行するアプリケーションは、フォントサーバ5812からコンピュータネットワーク5814を介してアクセスされたフォントビットマップ又はフォント・アウトラインを使用して、テキストを表示する。他の実施形態では、図59に図示されたように、コンピュータ5900及び/又はその上で実行されるアプリケーション5902は、それらの中に蓄積されたテキストを表示するために必要なフォントビットマップ5904を保持している。そのようなコンピュータ及び/又はアプリケーションは、フォント・ビットマップのみを保持可能であるか、又は、それらはスケーリング可能なフォント・アウトライン5902を蓄積し、異なるサイズで必要とされるフォントビットマップ5904を表示することが可能である。
【0163】
フォントビットマップのみを蓄積する利点は、コンピュータ5900上にフォント・アウトライン及びフォント・レンダリングを蓄積する必要がない点である。これは、また、フォント・レンダリングに含まれる演算が必要ない。さらに、多くのフォントヴェンダーは、フォント・アウトラインよりもフォント・ビットマップがインターネット上で比較的自由に利用可能なように許容することの方を強く望んでいるからである。
【0164】
図58に示されたようなフォントサーバからフォントを受け取る利点は、それによって、クライアント5808が、図58に表現されたように、大規模なフォントライブラリを蓄積する必要なしに必要なフォントをダウンロードすることによって、多数の中の任意のフォント、サイズ及び文字の組み合わせで、テキストを表現できる点である。好ましくは、クライアントコンピュータ5808は、文字列(ストリング)を表示しようとする度にネットワーク5814を介して通信する必要がないように、合理的な数の文字・フォントビットマップをキャッシュする。
【0165】
図60は、アルゴリズム6000の大幅簡略化・疑似コード表現であり、このアルゴリズムは、副画素最適化フォントビットマップの生成に関する本発明の特徴の幾つかの実施形態に使用される。このアルゴリズムは、図48及び49で上述された種類の非線形カラーバランスを使用している。そのような副画素最適化アルゴリズムは、テキスト文字の表示に使用することに特に最適である。なぜならば、ヒンティングの使用のために、テキスト・アウトラインの境界の空白画素の境界への配列は、ラスタ化フォント形状において極めて一般的であるからである。
【0166】
図60のアルゴリズム6000はループ6002を含んでおり、ループ6002は、所定の画素解像度での個々の文字・フォント形状のラスタ化において、各画素行に対して実行される。このループ6002は、各画素行に対して順次実行される3つのサブループ6004、6008及び6020を含んでいる。
【0167】
ループ6004は、ループ6002の現在の繰り返しが実行されつつある画素行において、各副画素に対して実行される。各副画素に対して、ループ6004は、関数6006を実行する。関数6006は、画像を生成しつつある文字・フォント形状によってカバーされる当該副画素の領域の割合の関数として、各副画素についてのカバレージ値を決定する。
【0168】
図61乃至90は、図60のステップ6006における各副画素のカバレージ値を決定することに使用され得る方法を議論するために使用される。
【0169】
図61、62、63に示されるように、カバレージ値が所定の画素5504について計算される、文字・フォント形状の画像における領域は、赤、緑、青の副画素5506、5508、5510によって夫々表示される当該画像の領域に一致している。これは、副画素最適化多色画像の場合には、図14乃至16に上述したように、各副画素に該当するソース画像ウィンドウがより大きい点で、副画素最適化多色画像の場合とは異なる。図60の方法で使用されるソース画像ウィンドウは、上記図42乃至44に関して記述された2色ビットマップに使用されたソース画像ウィンドウの領域と同じサイズを持っている。
【0170】
このような、より高解像度のソース画像ウィンドウが使用され得る。なぜならば、大抵のフォント・アウトライン表現によって表現される文字・フォントの形状は、前景色(大抵の場合には、アルファ値=1によって表現される)に対応すると考えられるフォント・アウトラインと、背景色に関連付けられる画像の他の全ての部分(大抵の場合には、アルファ値=0で表現される)とによってカバーされる領域をもつ2色画像であるからである。
【0171】
図60の関数6006におけるカバレージ値の計算は、図55に示されたグリッド5502の副画素の解像度と同じ空間解像度を持つ画素の配列に関連付けられた文字・フォント・アウトラインをラスタ化できる任意の従来技術を使用して実行され得る。
【0172】
図64乃至67は、フォント・アウトライン6402によってカバーされたラスタ化グリッドにおいて、ユニットの割合を計算することに使用されてきた伝統的な方法の幾つかを図示している。この従来技術では、ラスタ化のユニット6400は、典型的には、出力画像における全体画素に該当する領域である。図60の方法では、それは出力画像の副画素に該当する領域である。
【0173】
図64は、アウトライン6402によってカバーされるユニットの領域を正確に計算するための数学的技術を使用する方法であって、ラスタ化ユニット6400のカバレージ値を決定するための方法を図示している。これは、比較的コンピュータ資源を多く必要とするものであり、それ故、かつてほとんど使用されたことはない。
【0174】
図65には、実質的によりコンピュータ資源を節約できる方法が記載されている。この方法では、文字・フォント形状の境界の小片方法的な線形近似6504を使用することによって、アウトライン6402にカバーされるラスタ化ユニット6400の割合を計算している。
【0175】
図66は、さらにコンピュータ資源を節約できるが、実質的により精度の低い結果を生成する方法を図示している。この方法は、アウトライン6402の形状内にあるサンプルポイント6600の割合を決定することによって、ラスタ化ユニット6400のカバレージ値の割合を求めている。
【0176】
図67は、図66の方法のように比較的低いコンピューター資源によって、同じものに対してより精度の良い結果を提供するカバレージ値決定の方法を図示している。それは、アウトライン6402によってカバーされる多数の走査線6700及び/又は6702の平均的な割合の関数として、ラスタ化ユニットのカバレージ値を決定する。
【0177】
図68乃至87は、ラスタ化ユニットのカバレージ値を計算する極めてコンピュータ資源を節約できる方法を図示している。その方法は、図66において同じ演算量ついて示されたサンプリングの方法よりも典型的に良い結果をもたらす。
【0178】
この方法の一実施形態は、本発明の発明者の一人であるSampo J. Kaasilaの名前で出願された米国特許出願において、より詳細に記載されている。この米国特許出願は、シリアル番号09/363,513である。それは、19999年7月29日に出願され、”Systems For Rapidly Performing Scan Conversion With Anti-Aliasing Upon Outline Fonts And Other Graphic Elements”の名称である。この出願は、PCT出願(PCT/US00/21559)において開示が公開されている。この出願は、全文が、参考文献として添付されている。
【0179】
図68乃至87において、ラスタ化ユニットのカバレージ値は、フォント・アウトラインの形状6402によってカバーされる、2つの走査線(水平走査線6804又は垂直走査線6802)の1本の割合によって決定される。そのカバレージ値がラスタ化ユニットのカバレージ値として使用される走査線は、より中間的なカバレージ値を持つ走査線である。例えば、水平及び垂直走査線のカバレージ値が0〜126の範囲で計算される実施形態では、選択される走査線は、そのカバレージ値が50割合のカバレージ値を示す63に近い走査線である。
【0180】
図68乃至71では、ラスタ化ユニット6400のカバレージ値の割合を表すのは、垂直走査線6802のカバレージ値の割合である。図72乃至75では、最も中間に近い値を持ち、それ故、全体のラスタ化ユニットのカバレージ値の割合を表現するのに使用されるのは、カバレージ値の割合を持つ水平走査線6804である。
【0181】
図76乃至87の残りの全てにおいて、より中間に近いカバレージ値を持つ走査線のカバレージ値は、通常、全体のラスタ化ユニットに対するカバレージ値に非常に近く、それは、通常、全体のラスタ化ユニットのカバレージ値から25割合以上変化しないと考えられる。
【0182】
図88乃至90は、それらのカバレージ値のうちより中間に近いカバレージ値を持つカバレージ値の関数として、それらの対応するラスタ化ユニットのカバレージ値に、個々の走査線のカバレージ値の組み合わせを重み付けする方法において、使用され得る他の組み合わせを示している。そのような方法では、全体ラスタ化ユニットについて計算されるカバレージ値は、各走査線のカバレージ値と、それの中間性とを乗算し、これらを各走査線の中間性の合計で除したものに等しく設定される。この計算では、走査線の中間性は、当該走査線の最も中間に近いカバレージ値の割合から、最も中間に近いカバレージ値の割合と走査線の実際のカバレージ値との差の絶対値を減算したものに等しい。
【0183】
図91は、画素5504の行9100の赤、緑、青の副画素5506、5508、5510のそれぞれにマッピングされた仮想のフォント・アウトライン9102を図示している。
【0184】
図92は、当該副画素の行9100全体の各々に対して計算された対応するカバレージ値9202を図示している。
【0185】
図93は、個々の副画素について決定されたカバレージ値が線形カラーバランス法を用いて、どのように分配されるかを図示している。線形カラーバランスは、図46において上述したものと同様である。
【0186】
図60に少し戻って見ると、同図のステップ6006が行の各副画素に対するカバレージ値を計算又は評価すると、図92に示されたように、ループ6008が当該画素の各画素に対して実行される。このループの色は、行の当該副画素に対するカバレージ値を調和させる。それは、図93に図示されるとともに、図46及び47で上述された種類の線形カラーバランスルーチンを使用しない。その代わりに、それは、図48乃至53で上述されたものと同様の非線形カラーバランス技術を使用することにより、より高い知覚性の空間解像度を達成する。
【0187】
ループ6008は、各画素に対して、2つの関数6010,6012及びループ6014を実行する。
【0188】
関数6010は、現在の画素のどの副画素が当該画素について計算された最小カバレージ値を持つかを見つける。次に、ステップ6012は、この最小カバレージ値を、現在の画素の各副画素について計算されている一時的なアルファ又は不透明値に加算する。
【0189】
次に、ループ6014は、現在画素の各副画素について関数6016及び6018を実行する。関数6016は、ループ6014の現在の副画素に対して、当該副画素が一部を成す画素について見つけられた最小カバレージ値を超える当該カバレージ値について計算されたカバレージ値超過分を決定する。次に、関数6018は、この超過値を、現在画素行において、現在副画素について計算されている副画素アルファ値と、現在副画素の左に2つの副画素と、現在副画素の右に2つの副画素とに分配する。この関数は、図49で上述されたものに該当する。
【0190】
図94及び95は、2つの異なるカラーバランス・分配フィルタを図示しており、このフィルタは本発明の一実施形態において使用される。この実施形態では、図94に示された非対称中心加重カラーバランス・フィルタが、赤及び緑の副画素に関連づけられたカバレージ値を分配することに使用される。図95に示された非対称カラーバランスフィルタは、青の副画素に対応するカバレージ値を分配することに使用される。それ故、本発明のこの実施形態は、ある色に対して他の色と異なる形状の分配を使用している点で、図49において上述されたプロセスとは異なっている。
【0191】
本発明の発明者の一人は、人間の目は青よりも緑の方を大幅に知覚するので、異なる色の副画素に対応するカラーバランス・カバレージ値はそのような異なる分配のフィルタを使用するべきである点を発見した。非線形カラーバランス(2色画像の非線形カラーバランスを含む)に関連する本発明の他の実施形態では、異なるカラーバランス・フィルタが各異なる色に対して使用されることができ、同じカラーバランスフィルタが全ての色に対して使用されされることができ、対称又は非対称のカラーバランスフィルタが使用されることができる。
【0192】
図94及び95に示された特定のカラーバランスフィルタは、0〜126のスケールで計算されるカバレージ値での使用のために設計されている。0〜126の値を持つ所定のカバレージ値は、図94及び95のテーブルの右側にある5つの分配値セットに対応しており、そのテーブルの左側にあるこの対応する色は、それ自身の色値に最も近い。例えば、現在副画素のカバレージ値が赤又は青の色について126である場合、1の加算が現在副画素の左側に2番目の副画素及び右側2番目の副画素に対して計算されているアルファ値に成され、3の加算が現在副画素の左側1番目の副画素及び右側1番目の副画素に対して計算されているアルファ値に成され、4の加算が現在画素に対して計算されているアルファ値に成される。この特定の実施形態では、アルファ値は0〜12のスケールで計算される。
【0193】
図94及び95に示されたカラーバランス分配の相対的なサイズは、所望の分配比率をより正確に反映している。これは、これらの最後の行の各々において分配された、より大きな値が、それらの各々の上方の行において見られるよりも、大きな数値解像度をもたらすからである。
【0194】
バランスされているカバレージ値又は輝度値を記述するためのより高い数値精度を使用する他の実施形態において、バランス分配が、図94の最後の行において反映されるもの及び/又は図94の最後の行に示されたものに近い、異なる副画素への寄与の間での割合を持つことが好ましい。これは、図94及び/又は図95に示された一般的な種類のフィルタが図48乃至52において上述された様な、画像の2色副画素最適化のカラーバランスに用いられる場合に、特に言えることである。これは、ビットマップ画像の2色副画素最適化においては、副画素最適化されたビットマップを使用するものよりも低い解像度で輝度をカラーバランスさせる演算は、ほとんど利点がないからである。
【0195】
図60のループ6008がステップ6018を行の各画素の各副画素について実行させると、各画素は、各アルファ値が13段階の不透明度レベルの内の1つを持つように、その3つの副画素について計算された別々のアルファ値を持つことになる。これは、各画素が2197(即ち、13の3乗)の内の1の異なる取りうる結合アルファ値を持つことを可能にすることを意味する。本発明の他の実施形態では、より高い又はより低い解像度のアルファ値が使用され得る。
【0196】
本発明の多くの実施形態では、特に、制限された演算能力を持つコンピュータ上において、又は、フォントビットマップを蓄積又はダウンロードするために必要とされる帯域幅又は蓄積能力の低減が望まれるシステムにおいて、実行するように設計された実施形態では、カラーバランス後に取り得る異なる副画素のアルファ値の2,197の組み合わせである比較的大きな色空間から、より小さな色空間にマッピングすることが好ましい。
【0197】
図60における本発明の実施形態では、そのようなマッピングを実行する。ループ6008が現在行の各画素について実行されると、ループ6020は各画素についてさらなる関数6022を実行する。関数6022は、画素の副画素の各々について計算された3つのアルファ値を取得し、それらをルックアップテーブルの入力値として使用する。このルックアップテーブルは、画素の3つのアルファ値の取り得る組み合わせによって決定された2,197の取り得る色値の夫々を、122の値の内の1の値にマッピングする。この実施形態では、色空間は、このような小さな数の色に低減されている。これは、256値の色空間を持つ機械は、副画素最適化フォントの表示での使用に対して選択された122の値の各々を、そのような制限された色空間の半分以上を他の使用のために保持しつつ、表示できるからである。フォントビットマップを表示するためのこのような小さなカラーパレットの使用は、そのようなフォントビットマップを蓄積することに必要とされるビット数を低減し、それらのダウンロードに効率的なものにする。本発明の本特徴の他の実施形態では、そのようなマッピングに使用されるソース及び受信側の色空間は、異なるサイズを持つ。
【0198】
図96は、本発明の一実施形態において、そのようなカラーマッピングを生成することに使用される方法9600を図示している。他の実施形態では、上述したように、他の種類のマッピングが使用され得ることが理解されるべきである。幾つかの実施形態では、より小さい色空間へのそのようなマッピングが全く必要とされない。
【0199】
図96の方法は、ステップ9602から開始する。ステップ9602は、図65乃至95で上述した非線形カラーバランス・副画素最適化アルゴリズムを通じて、多数のフォントから多数の文字を実行する。これが実行されると、ヒストグラムは、取り得る2,196の異なる画素のアルファ値の各々が任意の画素について計算されている回数を保持する。このヒストグラムは有効である。なぜならば、副画素最適化ビットマップの画素について計算された3色のアルファ値のほとんどは、2,196の3色アルファ値の全体の取り得る色空間の様々な小さな領域に集中する傾向があるからである。この集中は、恐らく、非線形カラーバランスにより言えることである。なぜならば、それは、カラーバランスに必要な量的な輝度の分配を実質的に削減するからである。
【0200】
次に、関数9604は、制限されたカラーパレット(ここでは122色を持つ)を、関数9606及び9608を実行することによって生成する。この関数9606は、13のグレースケール値を選択する。このグレースケール値は、各副画素が13段階のアルファ値の1つを持つとして、全体画素のアルファ値に対して取り得りる。次に、関数9608は、先にステップ9602によって計算されたヒストグラムにおいて最も頻繁に出現する109の他の色を選択する。
【0201】
制限されたカラーパレットが選択されると、ループ9610が2,196の取り得る全体画素のアルファ値の各々に対して実行される。各取り得るアルファ値に対して、条件9612は、入力色が122色の内の1つに正確に当てはまるか否かを判別する。もし、当てはまれば、関数9614は、入力色を、構成されたルックアップテーブルにおいて同じ出力色に対応付ける。もし、条件1912が満たされなければ、ループ9618及び関数9628が、ループ9610の現在入力色に対して実行される。
【0202】
ループ9618は、パレットの122の出力色の各々に対して実行される。それは条件9620を持っており、条件9620は、マッピングされる入力色の赤のアルファ値とループ9618の現在出力色との差が、現在入力色の緑のアルファ値と現在出力色の緑の出力アルファ値との差と同じ符号であるか否かを判別する。条件9612は、また、現在画素の赤のアルファ値と緑のアルファ値との差が、入力色の赤のアルファ値と緑のアルファ値との差(いくらかの余裕を持たせる場合には、取り得る値Xを加算したもの)よりも小さいか否かを判別する。もし、これらの2つの条件(入力色とその入力色がマッピングされる先の出力色との比較的大きな差を防止するように設計するものである)が満たされていれば、関数9622乃至9626が実行される。
【0203】
関数9622は、入力色から出力色までの距離を計算する。関数9624は、その距離が、現在ループ9618における入力色までに最も近い距離であるか否かを判別する。関数9624の判別が満たされると、ステップ9626はループ9618の現在出力色を、最も近い許容されるパレット色として保存する。ループ9618が制限されたパレットの122の出力色の各々に対して実行された後、ステップ9628は、ループ9610の現在入力色を、ループ9618で計算された最も近い許容されるパレット色に対応させる。
【0204】
ループ9610が、取り得る入力色の各々に対して実行されると、これらの入力色の各々は、122の出力色の1つにマッピングされる。
【0205】
図96に示された特定のカラーマッピング手順では、カラーバランスによって生成される非グレースケールの画素の色値は、もし、ステップ9608で選択された109の最も頻繁に発生する非グレースケールの色値の内の1つにマッピングされなければ、グレースケールの色値にマッピングされる。これは、一般的に、全てのビットマップをグレースケールのアルファ値で表す伝統的なアンチエイリアスと、少なくとも同程度に良好な結果をもたらす。
【0206】
図97は、図60及び図96の方法によって生成される種類のフォント・ビットマップを副画素アドレス可能な画面上に表示することに使用されるアルゴリズム9700を図示している。
【0207】
ループ9702は、関数9704、ループ9706及び9714を含むが、表示されるべき各ストリングに対して実行される。
【0208】
関数9704は、ストリングについての平均的な背景の色値を決定するために、ストリングが描かれるべきビットマップの矩形領域の内の点のセットをサンプルする。他の実施形態では、背景色は、各文字又は各文字の各画素ごとに別々に決定される。しかし、ここで示す実施形態では、背景色は、演算資源を節約するために各ストリングに対して1回だけ決定される。
【0209】
ストリングに対する背景色が決定されると、ループ9706は、サブループ9708及び関数9712を、図96で上述された122の全体画素のアルファ値の各々について実行する。
【0210】
ループ9708は、関数9710を3つの副画素色の各々に対して実行する。この関数9710は、現在副画素色に対する輝度を、当該副画素色に該当する、現在全体画素のアルファ値の要素の関数として計算する。それは、輝度値を以下の値に設定する。即ち、この副画素のアルファ値と、描画されるべきストリングの前景色における現在副画素の該当する色の輝度との乗算値に、1から現在の副画素のアルファ値を引いた値に、関数9704で決定された背景色における現在副画素の該当する色の輝度との乗算値を加えた結果に等しく設定する。
【0211】
このループが3つの副画素の各々に対して実行されると、関数9712は、ループ9706の現在全画素のアルファ値を、ループ9708で計算された3つの副画素の輝度から成る全体画素の色値にマッピングする。
【0212】
次に、ループ9714は、関数9716及びループ9718を、副画素アドレス可能な表示(装置)上に表示される現在ストリングの文字の各々に対して、実行する。
【0213】
関数9716は、現在文字に対するフォントビットマップにアクセスする。次に、ループ9718は、そのビットマップの各画素に対して関数9720及び9722を実行する。関数9720は、ループ9706によって、文字のフォントビットマップでの現在画素に対して示される、現在全体画素のアルファ値にマッピングされている色値を見つける。この色値が見つけられると、関数9722は、副画素アドレス可能な表示(装置)における該当する画素を、全体画素の色値に設定する。
【0214】
ループ9718がストリングの各文字の各画素について実行されると、ストリングは、副画素最適化方法で完全に表示される。
【0215】
図98乃至101は、画像及びテキストのスケーリング及び副画素最適化の技術が如何に良く作用するかを図示する。図98及び100は、共通のブラウザ・プログラムを使用して、640×480画素でレイアウト及び表示された2つの異なるウェブページの概要を図示している。図99及び101は、画像及びテキストが、上述した方法で320×240の表示(装置)上に適合するようにスケーリングされた後に、同じウェブページを図示している。不運なことに、320×240画素画像は、全体画素の平均的な輝度によって定義されるグレースケール値で印刷されおり、それ故、副画素の解像度によって加えられる実施の明瞭さは、これらの画像には示されていない。
【0216】
図102乃至103は、本発明の一実施形態におけるプロキシサーバと薄型クライアントコンピュータとの間の相互連関を、より詳細に図示している。
【0217】
図102は、図2において上述した種類のプロキシサーバ210及び薄型クライアント200を含むシステムの大幅に概略化したボックス図である。
【0218】
プロキシサーバ210は、ブラウザ10200を含んでおり、ブラウザ10200は、完全なウェブブラウザの標準的な機能を実行するためのプログラム10202を含んでいる。このプログラムは、ブラウザが薄型クライアントのためのプロキシとして動作するので、変更されている。ブラウザが、要求されたウェブページのHTML記述10204をネットワークを介して受け取ると、それは、そのウェブページの2次元レイアウト10206を生成する。
【0219】
図103は、その表示が図98及び99に示されたウェブページのHTML記述の一部を図示している。図103に示される数字10300は、図98及び99に示されたウェブページの左側列に示されたHTMLにおけるテキスト部分を図示している。数字10302は、同じ列に示された単語”Sections”を表すために使用されるビットマップを同定する画像タグを指している。
【0220】
ブラウザコードがウェブページのダウンロードを受け取ると、それは、仮想画面解像度でウェブページのレイアウト10206を作成しようと試みる。仮想画面解像度は、ウェブページの全体又は一部を表示するであろうと考えられるウィンドウのサイズに一致する。ブラウザがウェブページを表示すると考えるこのウィンドウを、仮想画面10208と称する。
【0221】
図104は、図98及び99に示されたウェブページのレイアウト10206を図示しており、それは、黒塗りの矩形部10208内において、仮想画面のそのレイアウトへのマッピングを示している。10220は、実際の画面画像を示している。実際の画面画像は、図104に示される仮想画面の所定の位置を与えられ、薄型クライアント上に表示される。
【0222】
今日のウェブページの多くは、記述例のシステムにおいて使用された640×480の仮想画面解像度よりも大きな要素を含んでいる。そのレイアウトは、ウェブページのオブジェクトをレイアウトすることに要求される最小の幅、又は、仮想画面の幅の何れか大きい方を持っている。例えば、今日では、多くのウェブページが、800画素の最小可能解像度を持つレイアウトであることが一般的である。
【0223】
この場合、仮想画面はレイアウトより小さい幅を持つことになる。これは、図104に示された例の場合である。図102に示されたこのビュー・ウィンドウ10210は、薄型クライアントの画面上に実際に表示されるべき仮想画面の部分を表している。図99及び101に示されたビューでは、ビュー・ウィンドウは仮想画面に等しい。しかし、ユーザが仮想画面の部分上にズームインすると、ズームのスケールファクタ制御10216が変化し、ビュー・ウィンドウは仮想画面のサブセットにマッピングされる。
【0224】
スクロール・コントロール10218は、ビュー・ウィンドウをレイアウトに対して相対的に移動させる。ビュー・ウィンドウが仮想画面上にないレイアウトの部分を含むように移動されると、命令がブラウザソフトウェアに送られ、仮想画面をスクロールする。イベント・キュー10220はイベント、即ち、薄型クライアントに受け取られ、ブラウザによる該当するアクションについてプロキシサーバにアップデートされているユーザ入力を蓄積する。薄型クライアントの画面上で発生するイベントは、ビュー・ウィンドウを通じて仮想画面の該当する位置にマッピングされ、その後、ブラウザのイベント・キューに配置される。その結果、ブラウザはこのような入力に対して、あたかも、入力が画面(別名、仮想画面)上の適切な位置で受け取られたように応答し、ブラウザは入力が映像出力装置上に直接入力されていると考える。
【0225】
図102のブラウザ・プログラム10202は、それが仮想画面上にオブジェクトを描画していると考える度に、ダウンロード表示リスト10212中のスケーリング位置に縮小オブジェクトを生成するように変更される。
【0226】
この表示リストは、薄型クライアントにネットワーク10222を介してダウンロードされ、薄型クライアントは、符号10212Aに示される様に蓄積する。この表示リスト10212によって参照される縮小画像もダウンロードされる。プログラム10218は、薄型表示(装置)上に、ストリング、画像、及び薄型クライアント画面10221上の表示リスト中に含まれる他の要素を配置する。もし、ユーザが薄型クライアント画面上をクリックすると、薄型クライアントのオペレーティングシステム10222は、そのクリック及びその薄型クライアント画面上での位置をイベントキュー10224に配置する。薄型クライアント上で局所的に取り扱われるプログラムに関係しないこのような各イベントは、上述したように、プロキシサーバのイベントキュー10220に更新される。
【0227】
図105A乃至110は、ブラウザ、及び薄型クライアントにプロキシを通じてウェブページをブラウズさせる目的でこれらの間の相互のやり取りを制御するように設計された薄型クライアントコンピュータ上における、プログラム及びデータ構造の大幅に簡略化された擬似コード表記である。
【0228】
図105A及び105Bは、薄型クライアントのためにプロキシとして機能することを助けるために使用される、図102に示されたブラウザのコードの部分を大幅に簡略化された擬似コード表記で示したものである。
【0229】
これらの図で図示された特定の実施形態では、通常の使用のために設計された大きなウェブブラウザは、プロキシとして機能するように修正されている。本発明の他の実施形態において、ブラウザをプロキシとして動作させるのに必要な機能は、より緊密かつ手際良くブラウザのコードに集約され得る。さらに他の実施形態では、オペレーティングシステム又はオペレーティングシステムの呼び出しに割り込む機能におけるコードは、標準的なウェブブラウズ・プログラムに薄型クライアントのプロキシとして動作させることに使用され得る。
【0230】
図105Aに示された実施形態では、ブラウザが薄型クライアントからウェブページに対する要求を受け取ると、ステップ10502及び10504がその要求を当該要求のURLに示されたサーバコンピュータに中継する。
【0231】
もし、ブラウザが図102に上述された仮想画面10208の描画又は再描画を完了した指示を、ブラウザが自身のコードから受け取ると、関数10506及び10510が、図106A及び106Cに示された画面取込及びダウンロードルーチンを呼び出す。
【0232】
図106A乃至106Cは、画面取込及びダウンロードルーチン10600の大幅に簡略化された擬似コード表記である。
【0233】
このルーチンが、今述べたように、関数10510によって呼び出されると、ステップ10602はブラウザに画面の再描画を依頼し、ブラウザは、全部又は部分的に仮想画面内に適応するウェブページの各要素を描画するルーチンを呼び出す。図106A乃至106Bのルーチンは、これらの描画呼び出しの各々に含まれる情報を記録し、図102に示されるダウンロード表示リスト10212を生成するためにこれを使用する。
【0234】
ブラウザが図106Aのメジャー・ストリング・ルーチン10606を呼び出したとき、このルーチンは、関数10608乃至10618を実行する。このような呼び出しは、ブラウザによって成され、仮想画面にレイアウトしようとしているテキストのサイズを決定する。図には示されていないが、これらの同じ関数10608及び10610は、たとえ図106A乃至106Bに示された画面取込及びダウンロードのルーチンの実行中であっても、ブラウザがストリング・サイズを測定するために呼び出しを行うときは何時でも実行される。
【0235】
関数10608は、単位ストリング呼び出しで特定されたフォントを、異なるフォントファミリー及び異なるフォントサイズを持つフォントにマッピングする。このフォント置き換えは、符号10608乃至10616によって示される3つの考慮によって制御される。
【0236】
考慮10608は、メジャー・ストリング・ルーチンに対する呼び出しで要求されたフォントサイズの関数として置き換えフォントのサイズを選択するとともに、スケール・ファクタを選択する。
【0237】
スケール・ファクタは、所定のビュー・ウィンドウ及び解像度に該当する仮想画面1028の部分の所定の次元に沿った、即ち、ビュー・ウィンドウが薄型クライアント上に表示されるのと同じ次元に沿った解像度である。幾つかの場合には、スケール・ファクタは、水平及び垂直方向に沿って使用される異なるスケール比率を表す異なる要素を持つが、しかし、多くの場合には、スケール・ファクタは、水平及び垂直の両方の解像度に対して使用される単一のスケールファクタである。
【0238】
図102に示された実施形態では、このスケールファクタは、ズーム/スケールファクタ・コントロール10216に蓄積されている。仮想画面が640×480の解像度を持つ場合には、ビュー・ウィンドウは仮想画面のサイズに等しく、ビュー・ウィンドウは320×240画面全体に表示され、スケール・ファクタは2であり、このことは、要素が薄型クライアントの画面上に、ブラウザがそれらを仮想画面上に表示しようとしている1/2の画素解像度で表示されることを意味する。
【0239】
考慮10612は、全てのフォントサイズを、考慮10610のみで選択された場合のフォントの平均的な画素サイズよりも狭く高いフォントファミリーで薄型クライアント上に表示したとき小さくなる、全てのフォントサイズを置き換える。640×480仮想画面を320×240表示画面に低減する場合には、これは、ビットマップ形式に対して、文字形式で表現されたほとんど又は全てのウェブページを含むことになる。本発明の本実施形態に使用される副画素アドレス可能な表示(装置)は、垂直方向の副画素に対して3倍の水平方向の副画素を持っているために、この置き換えを実行する。この理由で、文字の幅の低減は、文字の高さの低減よりも判読性に与える悪影響が少ない。それ故、比較的容易に判読可能なテキストの最大量をこのような副画素アドレス可能な表示(装置)画面上に表示するためには、この置き換えによって、文字の幅はスケール・ファクタ以上に効果的に縮小させ、文字の高さをスケール・ファクタ未満に効率的に縮小させる。例えば、図56、57及び99、101、168、169、172、173及び174に示された小型画面表示(装置)のフォントは、全て、このような方法でスケーリングされたフォントで置き換えられている。
【0240】
これらの図中のフォントは、em当たり8画素の画素サイズを持っている。このフォント調整におけるより低解像度の文字のほとんどは、より少ないの4画素列の改善幅内に調整される。4画素列以下の幅は、もし配列が空白を含んでいれば、空白はこのような幅を持つ文字の形状の間に発生する。これらの特別なフォントでは、80割合以上、ローマン・アルファベットの低解像度の場合の文字は、このような改善幅内に調整される。これらの文字は、4画素行以上のエックスハイトを持つ、この高さは、それらの文字を一般的に幅広よりもかなり高くする。一般的な規則では、このような相対的に狭いフォントは、より幅の広いフォントの場合よりも、大量のテキストを、所定レベルの判読性で所定の領域内に表示することができる。
【0241】
符号10614及び10616によって表現される考慮は、最小フォントサイズを制限するためにフラグが送られたか否かをテストする。これは、どのフォントも薄型クライアント表示上に所定のサイズ未満で表示されるべきではないからである。同様に、このフラグは、小さすぎて読めないようなテキストの表示を防止するために送られる。もし、仮想画面サイズ上に実際に表示された場合に、通常、どのようにウェブページテキストが表示されるかの、より正確な縮小表現を、ユーザが見たいと望むときには、それは設定されない。このような要求は、スケール・ファクタが大きい場合に特に起こり易く、テキストサイズにそのような最小値の制限を実行することは、ウェブページのレイアウトの表示を劇的に変えてしまうからである。
【0242】
もし、多くの場合そうである様に、システムが最小フォントサイズを制限しようとすると、ステップ10614及び10616は、置き換えフォントが最小画素サイズ未満になるのを防止する。本発明の本実施形態では、この最小画素サイズは、em当たり8画素である。本実施形態の開発者は、em当たり7画素での副画素表示のためのヒンティング・フォントを開発し、彼らはそのようなフォントが相対的に判読し易いことを認識したが、他のユーザから、そのような小さなフォントが判読し難いというフィードバックを受けている。
【0243】
最小フォントサイズでの制限は、しばしば、ウェブページの様々な大きさのフォントが実際に表示される相対的なフォントサイズを実質的に変える。
【0244】
本発明の幾つかの実施形態では、全てのウェブテキストは1つのフォントサイズで表示される。これは、実際に、ほとんどのウェブページに対して良好に機能する。なぜならば、ほとんどのウェブページでは、実際に大きなフォントがビットマップで表現されるからである。
【0245】
関数10608が、どのフォント・ファミリー及びフォント・サイズが、メジャー・ストリング・ルーチンが呼び出されるフォント幅に置き換えられるべきかを決定すると、関数10618は、置き換えられるフォント及びフォントサイズにおけるストリングの文字のサイズが、その測定の後に、スケール・ファクタによってスケールアップされると仮定して、ルーチンが呼び出されるストリングのストリング測定に戻る。
【0246】
この値へ戻ることは、スケーリングされる文字のフォント・メトリックスを使用して、ブラウザのレイアウトエンジンにウェブページを表示させる。これらの文字がスケール・ファクタによって実際に表示され得る画素のサイズに対して行われ、スケール・ファクタは、ビュー・ウィンドウに該当する仮想画面の部分の解像度と、ビュー・ウィンドウが薄型クライアント画面上に表示される実際の解像度との比である。これは、仮想画面が、そのレイアウトの結果として表示される実際のフォント・メトリックスとは異なるフォント・メトリックスを使用してレイアウトされることを意味している。
【0247】
画面取込及びダウンロード・ルーチンがストリング描画ルーチン10620に対する呼び出しを受け取ると、このルーチンは関数10621及び106024を実行する。
【0248】
関数10621は、ストリングが描画され始める画面上の位置を、ストリングが完全に表示される薄型クライアント画面上の該当する位置に変換する。この変換は、ビュー・ウィンドウ10210と図102に図示された仮想画面との間のマッピングを考慮する。このマッピングは、コントロール10216によって蓄積されている現在のズーム設定と、図102に示されたスクロール・コントロール10218によって蓄積された現在のスクロール設定とを両方とも反映している。
【0249】
関数10622は、符号10606乃至10618で上述された、メジャー・ストリングルーチンに対する先の呼び出しによるストリングに関連付けられた置き換えフォントファミリー及びサイズと、現在のストリングの表示のために要求された任意の他の属性とが、そのようなフォントの属性に対する現在の値と異なるか否かをテストする。各フォント属性の現在の値は、既にダウンロード・リストに記録されたフォント・コマンドによって定義される各属性に対する最後の値によって決定される。もし、このような違いが発見されれば、関数10623は、現在ストリングの表示に適したものにフォント属性を変更して、フォントコマンドを表示リストの現在の最後に蓄積する。
【0250】
関数10624は、ストリング描画ルーチンが呼び出されたところのストリングと、図102に図示された、ダウンロード表示リスト10212の最後で、ステップ10622によって計算されたところの変換画面位置とを蓄積する。図108において後述するように、これは、ストリングの変換開始位置と文字とを含む表示リスト中にあるストリングコ・マンドを実行することによって実行される。
【0251】
もし、画面取込及びダウンロードが矩形描画ルーチン10626に対する呼び出しを受け取ると、このルーチンは関数10628乃至10634を実行する。矩形描画コマンドは、ブラウザに共通に呼び出され、異なる背景色を持つウェブページの領域を生成するとともに、テキストを強調するために使用される水平及び垂直の線や、ウェブページの異なる部分間にある境界を描画する。
【0252】
関数10628は、該当する幾何学的値(これによって、該当する矩形が薄型クライアント表示上に描画される)に対する呼び出しに含まれる幾何学的な値を変換する。これは、矩形の開始画面位置と、矩形の幅、高さを含んでいる。
【0253】
関数10630は、矩形の色が、表示リストの現在(即ち、最後)の矩形の色と異なるか否かをテストする。もし、異なるのであれば、関数10632は、表示リストの最後に背景色コマンドを加え、現在の背景色を、矩形描画ルーチンの現在の呼び出しで特定された色に変更する。
【0254】
次に、関数10634は、矩形と、矩形のの変換画面位置と、幅と、高さとを矩形コマンドとともに、ダウンロード表示リストの最後に蓄積する。
【0255】
もし、画面取込及びダウンロードルーチンが、図106Bに示されたビットマップ・ダウンロード・ルーチン10636に対する呼び出しを受け取ると、このルーチンは関数10636乃至10670を実行する。ビットマップ描画ルーチンは、ブラウザに呼び出されて、映像と、フォントの映像と、バナー広告と、ホットゾーンに対応する画像と、ページのグラフィカルユーザインターフェースのビットマップとを表示する。
【0256】
幾つかの実施形態では、ウェブページを表示するために必要とされる帯域幅の量を低減するために、所定のアニメーションのみが取り込まれ、ダウンロード表示リストに記録される。
【0257】
図106A乃至160Cにおいて記載された本発明の実施形態では、特定のGUIに対応するビットマップ描画が無視される。なぜならば、薄型クライアントのプログラムは、このようなコントロールに対する副画素最適化及び縮小されたビットマップを蓄積しているからである。
【0258】
ステップ10638は、ビットマップ描画ルーチンが呼び出された画像のURLが既に、ダウンロード表示リストにおいて既に参照された画像の各々を含むダウンロード画像リスト(図示せず)にあるか否かをテストする。もしなければ、要求されたビットマップは、まだ現在のダウンロードに対して生成されておらず、関数10642乃至10662がそれに対して実行される必要がある。
【0259】
関数10642は、当該ビットマップがカラービットマップか否かをテストする。もしそうであれば、関数10644乃至10654を実行する。関数10644は、それぞれが2色分布からの1色のみを含む別々の取り扱いを正当化するために十分なサイズの1又は複数の個々の領域に対してカラー画像を走査する。2色スペクトラムは、RGBカラーキューブにおける線の中にある色のセットに該当する。即ち、赤、緑、青によって定義されるカラーキューブは、3つの主な次元のそれぞれにおいて広がっている。
【0260】
個々の処理を正当化するには十分大きい発見された画像の2色部分の夫々に対して、関数10646は、関数10648及び10650を実行する。関数10648は、画像の現在の部分において、図42乃至53で上記された種類の2色副画素最適化を実行する。このとき、画像の2色スペクトラムの最も極端な端部を前景及び背景の色として使用し、画像のその部分をスケールダウンする程度を決定する現在のスケール・ファクタを使用する。次の2,3のパラグラフで記載するステップ10654及び10658において実行されるような副画素最適化は、スケール・ファクタによって画像を縮小する。スケール・ファクタは、プロキシサーバの仮想レイアウトにおける画像の解像度と、薄型クライアント画面上に表示される解像度との比率である。
【0261】
この副画素最適化が実行された後、関数10650は、前景色が色彩的にアンバランスすぎるか否かを決定する。即ち、純粋な赤、緑又は青に近いか否かである。もし、当てはまれば、このような色の純粋さはカラー画像の空間解像度を表示する精度を低減させる。もし当てはまれば、前景色は、グレースケール値に近く、それ故、より正確な空間解像度をもたらす該当色に置き換えられ得る。
【0262】
本発明の幾つかの実施形態では、前景色の置き換えは用いられない。なぜならば、それは、カラー画像の色の量を混乱させるからである。一般的に、そのような前景色の置き換えは、前景色がカラー画像の全体の実質的な部分に渡って現れる場合を除いては、使用しないことが最良である。本発明の他の実施形態では、2色画像に対応する背景色が変更され得る。しかし、ウェブページ上において画像の背景色を変更することは、しばしば勧められることではない。
【0263】
現在画像の非2色部分のそれぞれに対して、関数10652は、ステップ10654に、図14乃至41に上記した種類の多色副画素最適化を、現在の表示ファクタでビットマップのその部分において実行させる。
【0264】
もし、ビットマップ描画ルーチンが呼び出されたビットマップがグレースケールのビットマップであれば、関数10656は、ステップ10658に、ビットマップ上で2色副画素最適化を、現在のスケール・ファクタで、黒及び白を前景及び背景色として使用して実行させる。
【0265】
関数10662は、スケールダウン、副画素最適化ビットマップを、独自の画像ID、そのURL、スケーリングされる幅、高さとともに、画像リストの最後に蓄積する。
【0266】
ビットマップ描画ルーチンが呼び出された画像が前もって画像リスト中に在ったか否かに関わらず、プログラムが関数10664に進むまでに、当該画像は、リスト中に存在し、ID番号と、変換される幅及び高さとが割り当てられている。このとき、関数10664は、ビットマップ描画ルーチンが当該画像のために呼び出された画面位置を、薄型クライアントに適用可能な位置に変換し、次に、画像の画像ID、変換画面位置、変換される幅及び高さをダウンロード表示リストの最後に持ち、図108に示された種類の、画像位置コマンドを蓄積する。
【0267】
本発明の幾つかの実施形態では、全てのビットマップ画像は、多色副画素最適化ルーチンを使用して、副画素最適化されている。他の実施形態では、グレースケールビットマップのみが任意の2色副画素最適化を受ける。
【0268】
本発明の幾つかの実施形態では、ベクトル画像が、ベクトル表現で定義された形状に対して副画素最適化が実行されることによって取り扱われうる。そのような幾つかの実施形態では、副画素最適化はプロキシ上で実行されるが、他の実施形態では、薄型クライアント上で実行される。ベクトル、又は幾何学的に定義された描画の利点の1つは、それらの表現が画像を表す簡潔さにある。それ故、薄型クライアントに対する帯域幅がもともと制限されていたとしても、ベクトル表記をダウンロードし、薄型クライアントに副画素最適化を使用してそれらを表示させることに意味がある。
【0269】
幾つかの実施形態では、画像に実行される画像認識が可能であり、認識画像をシンボリック表記で薄型クライアントにダウンロードすることが可能である。例えば、多くのウェブページにおいて大きなテキストをビットマップで表示することは一般的である。光学的文字認識が、ビットマップ、該当する文字及びフォントにおいて実行されるか、又は、当該ページを薄型クライアントに表現するのに必要な帯域幅を低減するために、フォントの近似が記号的にダウンロードされる。
【0270】
もし、画面取込及びダウンロードルーチンが、ラジオボタン、チェックボックス、テキストフィールド又はブラウザからのボタンのようなコントロール・オブジェクトを生成するルーチンに対する呼び出しを受け取ると、コントロール生成ルーチン10666(図106Cに示される)は、コントロールが描画されるべき画面位置を、薄型クライアント画面中に描画されるべき位置に変換する。関数6668は、テキストラベルを含むダウンロード表示リスト中のコントロール生成コマンド(図108に示された)を実行し、関数10670はコントロール・オブジェクトのブラウザ側の該当部分を生成する。
【0271】
本発明の本実施形態では、薄型クライアントの画面に示されたコントロール・コマンドの機能は、プロキシと薄型クライアントとの間で共有されている。状態情報(チェックボックスがチェックされたか否か、どのラジオボタンのセットが押されたか)は、薄型クライアントに蓄積されている。これは、ユーザがコントロール・オブジェクトに情報を入力する度に、薄型クライアントからプロキシに通信する必要性を防止する。一般に、クライアントが情報をサーバに送信するためにプロキシに送ることは、ユーザが、元々当該ウェブページを作成したリモートサーバコンピュータに送信すべきコントロールに対するものとして情報が蓄積されていることを示す種類のボタンをクリックした場合に限られる。
【0272】
薄型クライアントへリンクするより高い帯域幅を持つ本発明の他の実施形態においては、プロキシ上で実行される個々のコントロールオブジェクトに対応する機能をより多く又は実質的に全部持つことによって、薄型クライアントのコードを簡略化することが望ましい。
【0273】
画面取込及びダウンロード・ルーチンが、図106Aの関数10602によって要求された画面再描画が完了したことを決定すると、図106Cの関数10672は、関数10764に図107に示されたダウンロード表示リスト10700を呼び出すようにさせる。
【0274】
図107に示すように、ダウンロード表示リストは関数10702を含んでいる。関数10702は、新たな薄型クライアント画面上に新たに全部又は一部が表示される、ダウンロード表示リスト中の全ての要素を実行する。通常、これは、現在のビュー・ウィンドウ内で発生するブラウザの仮想画面中の任意の要素を含んでいる。しかしながら、以下で説明するように、薄型クライアント画面上での先のビットマップの重要な部分が再利用できるようなスクロールの場合には、少なくとも部分的に、薄型クライアント画面の現在のビットマップの再利用可能な部分にはないビュー・ウィンドウの部分において発生する要素のみをダウンロードストリーム中に配置する。
【0275】
本発明の多くの実施形態では、ダウンロード表示リストを生成する、図106A乃至106Cの関数は、もしその要素がビュー・ウィンドウ内に調整できなければ、ダウンロード表示リスト上に要素を入れない。
【0276】
本発明の多くの実施形態では、薄型クライアント内に実際に調整され得る当該要素の部分のみをダウンロードするために、ダウンロードされる要素は低減される。これは、ダウンロードに要するビット数を低減する利点がある一方、演算の複雑化を招く。
【0277】
薄型クライアント上に示すべきダウンロードリストの全ての要素がダウンロードストリーム中に配置されると、関数10704は、図108の符号10818に示すように、すべの画素のビットマップをダウンロードストリーム中にある該当する画像の位置コマンドとともに、ダウンロードストリームの最後に配置する。本発明の幾つかの実施形態では、ビットマップをダウンロードストリームの最後に配置する前に、非可逆圧縮を施す。幾つかの実施形態では、使用されるアルゴリズムは、画像中の色値をRGB色値において視覚的に知覚不能な差を持つ色の群に群化させる。このとき、緑の色値の差が赤の色値の差よりもより知覚に敏感であり、赤の色値の差が青の色値の差よりも知覚に敏感であるという事実を考慮したメトリックスを使用する。
【0278】
次に、関数10705は、先に非可逆的なアルゴリズムによって圧縮された画像を含むダウンロードストリームを、可逆的な圧縮アルゴリズムを使用して圧縮する。標準的な従来技術の可逆的な圧縮アルゴリズムがこの目的のために使用され得る。
【0279】
図108は、このようなダウンロード・ストリームの模式的な図示である。幾つかの実施形態では、このようなストリームは実際にはマークアップ言語を使用して表現される。
【0280】
図108に示されたフォントコマンド10812は、図106Aの関数10623による表示リストに記録されたフォント・コマンドを表している。
【0281】
図108のストリング・コマンド10814は、図106Aの関数10624によるダウンロード表示リストに記録されたコマンドを表している。
【0282】
図108の背景色コマンド10806は、図106Aに示された関数10632によって入力された背景色コマンドを表している。
【0283】
図108の矩形コマンド10808は、図106Aの関数10634によって蓄積された矩形コマンドを表している。
【0284】
図108に示された画像位置コマンド10810は、図106Bの関数10664によって記録された画像配置コマンドを示している。
【0285】
図108のコントロール・コマンド10816は、図106Cの関数10668によってダウンロード表示リストに配置されたコントロール・コマンドを示している。
【0286】
図107に戻ると、ダウンロードストリームの全ての要素が選択され、送る準備が完了すると、関数10706は、ブラウザコンピュータと薄型クライアントとの間のソケット接続を開通させる。次に、関数10708は、薄型クライアントに、ダウンロードストリームの表示リスト情報を送る。薄型クライアントは、次に、以下で図109A乃至109Cによって詳細に記載されるように、情報を表示する。
【0287】
図106Cに戻ると、関数10674においてダウンロード表示リストの呼び出しが完了すると、関数10676は表示リストをクリアし、薄型クライアントにダウンロードされるべき新しい表示リストが次の画面のために生成される。
【0288】
図105Aに戻ると、ブラウザのプロキシコードが、ブラウザコードの他の部分から、薄型クライアント画面に表示される1又は複数のコントロール・オブジェクトに対するクエリ(問い合わせ)を受け取ると、関数10516は、薄型クライアントに、1又は複数のコントロールオブジェクトの状態に対するクエリを送る。そのような情報が薄型クライアントから受け取られると、それは、そのような情報の要求を成したプログラムに戻される。
【0289】
図106Cの関数10666乃至10670で上記されたように、本発明のこの実施形態は、実際に、個々のコントロールオブジェクト(ラジオボタン、チェックボックス、テキスト入力フィールドのような)についての状態情報を、ウェブページのコントロール・オブジェクトが示されるウェブサイトに提出するために選択するに先だってユーザが情報を変更する場合に、通信帯域幅を低減するために、薄型クライアントに描画及び蓄積させる。ユーザが提出ボタンをクリックするときは共通して、対応するクリックイベントがプロキシーサーバに中継される。プロキシサーバは、仮想画面での対応する座標に変換された画面座標を持っており、クリックイベントは、クリックイベントがあたかも仮想画面(ブラウザがそれを表示しようとしている画面)の解像度を持つ画面上で生成されたかのようにクリックイベントに応答するために、ブラウザコードに対するブラウザのイベントキューに配置される。一旦、これが実行されると、ブラウザコードは、従来のように、現在のウェブページの全てのコントロール・オブジェクトの状態を問い合わせる。ブラウザコードが、現在のウェブページが来たところのウェブサーバにその情報を送るためである。関数10514乃至10518の操作を引き起こすのは、このような要求である。
【0290】
もし、ブラウザのプロキシコードがスクロール又は移動コマンドを薄型クライアントから受け取ると、関数10522乃至10534(図105A)が実行される。
【0291】
関数10522は、スクロール又は移動に応答して、ビュー・ウィンドウ10210(図102)をブラウザのレイアウト10206に対して移動させる。次に、関数10526は、移動の前にビュー・ウィンドウ内にあったビュー・ウィンドウのかなりの部分が、移動の後も未だビュー・ウィンドウ内にあるか否かをテストする。もし、そうであれば、現在薄型ブラウザ画面に表示されようとしているビットマップの実質的な部分が、要求されたスクロール又は移動の後の表示においても再利用できることを意味する。この場合、関数10528は、スクロールコマンド10804(図108においてダウンロードストリームの最上部近くに図示された)を、スクロール後の画面に対して生成されるべき新しい表示リストの開始位置に置く。そのようなスクロールコマンドはXYシフト値を含んでいるが、このシフト値は、薄型クライアントの画面のビットマップのどの部分が再利用できるかを示している。
【0292】
図108では、クリアコマンド10802及びスクロールコマンド10804が、ダウンロードストリームの開始位置に示されている。本実施形態では、2つのコマンドのうち1つのみ、クリアコマンド又はスクロールコマンドがダウンロードストリームを開始させる。前者は、薄型クライアント画面が全体的に再描画されるときに使用され、後者は、薄型クライアントの先のビットマップの部分が新しい画面での再利用のために移動されるときに使用される。
【0293】
先にダウンロード及び描画された画面表示の実質的な部分の再利用は、スクロール・コマンドの使用によって可能になり、位置において比較的小さな変更を含むスクロールにおいて、薄型クライアントにダウンロードされるべきデータ量を実質的に低減することができる。これは、スクロール画面が薄型クライアント上に表示される速さを実質的に向上させる。特に、ブラウザと薄型クライアントとの間に制限された帯域幅しかない状況、例えば、本願の出願時点で一般的に比較的遅いデジタル携帯電話回線の接続で通信されていたような状況では、そうである。
【0294】
もし、スクロール又は移動から生じる移動されたビュー・ウィンドウが、仮想画面10206(図102に模式的に示されるような)において現在存在しないウェブページのレイアウトの部分を含んでいる場合には、関数10530(図105A)は、関数10532及び10534を実行する。関数10532は、ビュー・ウィンドウの全ての部分がその内に含まれるように、ブラウザの仮想画面をスクロールさせ、次に、関数10534が新たに移動された仮想画面に対する再描画をブラウザに要求する。一旦この描画が完了すると、関数10506及び10510は、図106A乃至106Bにおいて上記されたように、新たに描画された要素を取り込み、それらを描画する。
【0295】
ブラウザのプロキシがズームコマンドを薄型クライアントから受け取ると、関数10536(図105A)は、関数10538乃至10552を実行する。
【0296】
関数10538は、ズーム変更に従って、スケール・ファクタを変更する。
【0297】
関数10540は、選択されたズームに従って、ビュー・ウィンドウをブラウザの仮想ウィンドウに対してスケーリングする。
【0298】
仮想画面のスクロールが新しいビュー・ウィンドウを仮想画面内に適合させることができる場合には、ウェブページを再レイアウトする必要はなく、ズームは、仮想画面中にある異なる場所を示すこと及び/又は仮想画面を異なるスケールファクタで表示させることによって、ズーム前に在った同じレイアウトを表示させることに使用され得る。しかしながら、ズームが、ビュー・ウィンドウが仮想画面サイズよりも大きくなるようなズームアウト(図105Aに示された実施形態)である場合、ビュー・ウィンドウを全体として仮想画面内に適合させる様な新しい仮想画面サイズで、ウェブページがレイアウトされることが要求される。これは、プロキシブラウザが、薄型クライアントのビュー・ウィンドウの任意の部分に供給された任意の入力を、プロキシブラウザの仮想画面上の対応する位置で発生しているかのように扱うためである。述べられている実施形態では、新しい仮想画面解像度が先のレイアウトで使用されたレイアウト解像度よりも大きく、異なる位置において線の破断を招く場合に、ウェブページが新しいレイアウトで表示される。
【0299】
本発明の他の実施形態、プロキシサーバがズームをサポートするように修正ではなく設計された実施形態、及びクライアントが全てのレイアウトのダウンロードに対して直接ズームする実施形態では、極端なズームアウトにおいてもウェブページの再レイアウトが必要ない。
【0300】
最後に、関数10552は、画面再描画を呼び出す。これは、画面取込及びダウンロードルーチンに、新しいズームスケールファクタでの現在のウィンドウの再描画を取得させ、新しいズーム設定でウェブページを表示させることができる、対応する表示情報を薄型クライアントにダウンロードさせる。
【0301】
図105Bに示されるように、ブラウザのプロキシが薄型クライアントから仮想解像度変更コマンドを受け取ると、関数10554は、関数10556を実行する。関数10556は、ブラウザの仮想解像度を要求された解像度に変更する。次に、ステップ10560は、画面再描画を呼び出す。これは、ブラウザが新しい解像度で現在のウェブページを再レイアウトし、現在のビュー・ウィンドウの全てが、表示スケール・ファクタ(薄型クライアント上でビュー・ウィンドウが持つ画素数に対する、仮想画面でビュー・ウィンドウが持つ画素数との比)で取り込まれるように再描画するからである。
【0302】
仮想画面におけるそのような変更は、レイアウト内の画像やテキストのサイズに対して相対的に、レイアウトが実行されるサイズを変更する。ユーザが、サイズにおけるそのような変更を打ち消すような、仮想画面に対するビュー・ウィンドウの相対的なサイズの変更を行う場合を除いては、相対的なレイアウトサイズの変更は、画面上に表示される画像やテキストのサイズを変更する。相対的なビュー・ウィンドウサイズにおけるそのような補償的な変更なしでは、仮想解像度の減少は、画像やテキストがその画面上に表示されるサイズを増大させ、より多くのテキストの線が大きなテキストサイズで一度に画面上に適応するように、テキストの線をフォントのサイズに対して短くするようになる。
【0303】
それ故、仮想レイアウトサイズの変更は、ウェブページの表示に対してある種のズーム機能を提供するために使用され得る。
【0304】
本発明者は、ファクタ=2でスケールダウンする場合、即ち、ウェブページを典型的なPDAサイズである320×240の画面に表示する場合に640×480の仮想画面を使用することによって、極めて良好な判読性が得られることを発見した。しかしながら、本発明は、ウェブページをさらに高い比率で縮小されたスケールで表示することに使用され得る。例えば、800×600の仮想画面解像度をPDAサイズの320×240画面上に表示する場合であり、この場合には判読性は犠牲にされるが、ウェブページがより大きな解像度の表示ではどのように見えるかをユーザに見せることができる。もちろん、最小フォントサイズが制限されることをユーザが選択している場合(図106Aの関数10614で上記したように)、大きな仮想解像度を持つテキストでさえ、判読可能なフォントで表示される。しかしながら、ページのレイアウトは、フォントサイズの相対的な増大のため、その解像度の表示で意図した元々のレイアウトとは全く異なる。
【0305】
図105Bの関数10562によって示されるように、ブラウザのプロキシコードが、薄型クライアントの画面上でのクリックに対応して、他のユーザの入力を薄型クライアントから受け取ったとき、関数10564は、仮想画面上の対応する位置に対するクリックに対応して、薄型クライアント画面位置を変更する。そして、関数10566は、ユーザが仮想画面(ほとんどのブラウザコードがレイアウトされつつあると考える仮想画面)上を実際にクリックしたかの様にブラウザがイベントに応答できるように、イベントをブラウザのイベントキューに中継する。
【0306】
これは、プロキシ上のブラウザが、薄型クライアント上で表示されるウェブページ上でほとんどのリンク(テキストリンク又は画像リンク)を選択するために薄型クライアントのユーザが行う入力に、応答する方法である。例えば、ユーザが、薄型クライアント上に表示されたリンクをクリックすると、対応するクリックがプロキシ上のブラウザに中継される。プロキシは、表示されようとしている仮想画面中の同じリンクを、ユーザがクリックしたかのように動作する。プロキシのブラウザは、次に、リンクに該当するHTTP要求をインターネットを介して発行することによって、応答する。リンクに該当するウェブページが受け取られると、ブラウザは、それを仮想画面上にレイアウトし表示させようとする。また、このとき、ブラウザは、図105Aの図10506及び10510によって、ビュー・ウィンドウに対応するレイアウトの部分に含まれる情報を取得させ、その画面上での表示のために薄型クライアントにそれをダウンロードさせる。その結果、薄型クライアントのユーザは、通常のブラウズコンピュータのユーザとほとんど同じ方法で、ウェブをブラウズすることができる。
【0307】
図109A乃至109Cは、クライアントコンピュータ上におけるコード10900の大幅に簡略化された疑似表記である。このクライアントコンピュータは、その画面を使用してユーザがWWWをブラウズできるように、コードがプロキシブラウザとともに動作しすることを助けるように設計されている。
【0308】
関数10902(図109A)は、関数10708(図107)による薄型クライアントに送られたダウンロードストリームの全部又は初期の部分の受領に応答する。関数10902は、受信された順番でストリームに含まれる、(図108で図示された種類の)個々のコマンドに応答を開始することによって応答する。関数10902は、1又は複数のコマンドが受信されると直ぐにこれを実行開始し、新しい画面の描画の作業が、ダウンロードストリームが完全に受信されるまで遅れないようにする。ダウンロードストリームに含まれる各異なる種類のコマンドに対する応答は、図109A乃至109Bで10904乃至10956で番号が付けられた関数によって指示される。
【0309】
関数10904及び10906で示された様に、薄型クライアントがダウンロードストリーム中のクリアコマンドを読むと、ビットマップを画面上でクリアされるように表示し、全体的に白の値に設定する。
【0310】
薄型クライアントが、ビットストリーム中のスクロールコマンドを読むと、関数10908は、関数10910及び10912を実行する。関数10910は、薄型クライアント画面のビットマップの一部をコピーする。このコピーは、スクロールコマンド中で特定されたスクロールの後に、コマンド中に含まれるXYシフト値によって指定された新しい位置に再利用される。そして、関数10912は、画面の残りの部分をクリアする。
【0311】
薄型クライアントが、ダウンロードストリーム中の背景色コマンドを読むと、関数10914及び10916は、現在の矩形の背景色値を、コマンドで指定された色に設定する。これは、全ての矩形部分を、矩形コマンドに応答して、背景色値が特定された色値を持つように変更されるまで、薄型クライアントによって描画させる。
【0312】
薄型クライアントがダウンロードストリーム中の矩形コマンドを読むと、関数10918及び10920は、コマンド中で特定された画面位置、幅及び高さの矩形を、現在の背景色を使用して描画する。
【0313】
薄型クライアントが画像配置コマンドを読むと、関数10922及び10923はそのとき何もしない。ビットマップがこのような画像配置コマンドにおいて参照される画像を描画する必要性は、通常、このときには受信されない。他の実施形態では、ブラウザは、矩形描画コマンドを画像に対応付ける。このコマンドは、ビットマップ画像が表示されるべき場所を指示する画像上に矩形を描画させるために、薄型クライアントの部分を画像に対応付ける。
【0314】
薄型クライアントがフォントコマンドを読むと、関数10924及び10926は、フォントコマンドにリストされた全てのフォント属性の値を、コマンド中のこれらの属性に対してリストされた値に設定する。本発明の異なる実施形態では、異なるフォント属性が使用され得る。少くなくとも、フォントファミリ、フォントサイズ及びフォントの前景色が、フォント属性でサポートされることが好ましい。
【0315】
薄型クライアントがダウンロードコマンド中のストリングコマンドを読むと、関数10928は関数10930乃至10940を実行する。
【0316】
関数10930は、薄型クライアントがフォントビットマップ中に、現在のフォント属性値によって特定される現在のサイズ及びフォントファミリにおける現在のストリングの各文字に対するビットマップを、蓄積しているか否かをテストする。もし、そうでなければ、関数10932乃至10936が実行される。
【0317】
関数10932は、図2に上記されたフォントサーバ124にクライアントのインターネット接続を介して、HTTP要求を送る。要求されたフォントがフォントサーバから受信されると、関数10934及び10936はそれをクライアントのフォントビットマップ・キャッシュに置く。
【0318】
本発明の幾つかの実施形態は、永続的に、クライアント・ブラウザのソフトウェアの部分として、フォントビットマップの十分なセットを蓄積し、関数10930及び10936の使用が必要ないようにする。他の実施形態では、副画素最適化フォント・アウトラインが、薄型クライアントによって永続的に蓄積され、必要なときに要求される(図109Aに記載された例におけるフォントビットマップのように)。
【0319】
薄型クライアントが現在のストリングを表示するために必要なフォントビットマップの全てを保持しているとき、関数10938及び10940は、前景色を含む現在のフォント属性値を使用してストリングを、特定された画面位置での画面上に描画する。現在の実施形態では、フォントビットマップは、図60、96及び97に上記された種類のアルファ値ビットマップとして表される。このようにするとき、背景色は、一般的に、ビットマップの部分をストリングが描画されるべき画面上に乗せる。
【0320】
幾つかの実施形態では、演算を低減するために、ストリングが描画される画面の部分の色値は、比較的少ない数のポイントでサンプルされ、これらのサンプルされた色値の平均値は、図97で上記されたように、ストリング全体の表示のために背景色として使用される。
【0321】
述べられている実施形態では、ダウンロード中に含まれるストリングの全ては、1本の線テキストストリング(単一ラインテキストストリング)である。これらの多くは、プロキシ・ブラウザのレイアウトエンジンによってラインの境界を跨いだ連続的なテキストの重なりから生じる。結果として、この実施形態では、薄型クライアントはそのようなテキストの重なりを実行する必要がない。
【0322】
関数10940は、ビットマップ画像をストリングの文字に対応する別々の複数のフォントビットマップによって構成することにより、ストリングのビットマップ画像を描画する。通常、このような構成では、各異なる別々の文字は、異なる別々のフォントビットマップによって表される。
【0323】
異なるフォントサイズ(スケールファクタにおける変更によって生じる、異なるフォントサイズのような)での構成において使用されたフォントは、各フォントサイズでの判読性を向上させるために選択された各文字の形状及び画素配列を持つ。大抵の実施形態では、この改善された判読性は、ビットマップの画素形成によって文字形状の配列を向上させるために、文字の形状及びフォントビットマップに対する位置を選択することによって得られる。そのような形状及び画素配列は、em当たり10画素以下ののフォントビットマップを扱うとき特に重要であり、em当たり8画素以下ではさらにより重要である。これは、フォントビットマップが小さくなるにつれて、画素配置が悪化するためにフォントビットマップは読み難くなるからであり、それ故、フォントビットマップがこのような画素形成に適応させるために選択された文字形状及び配列を持つことがより重要になる。
【0324】
これらの図におけるフォントは、em当たりの画素サイズを持っている。このフォントにおけるより低解像度の文字の大部分は、4画素列以下の改善された幅の内に適応する。4画素列以下の幅は、このような幅を持つ文字の形状の間に発生するスペースがもしあればこれを含む。特定のフォントでは、80割合以上において、ローマン字の低解像度の場合の文字は、この改善された幅内に適応する。これらの文字は、4画素行以上のエックスハイトを持ち、この高さは、一般的に、文字が広い場合よりもかなり縦長にする。一般的な規則では、このような比較的狭いフォントは、幅広いフォントよりも、所定レベルの判読性で、所定の領域内で大量のテキストを表すことができる。
【0325】
本発明の多くの実施形態では、より小さいスケールでのステップ10940によって使用されるフォントビットマップは、画素内で発生するカラー・アンバランスのみが分配される上述された種類の非線形カラー・バランスによって生成された、副画素最適化ビットマップである。このような副画素最適化が、ビットマップの画素形成により適応するように適切に形成及び配列された形状に結びつけられたとき、描画された結果のビットマップは、画素サイズを考慮すると、極めて読み易い。
【0326】
図109Bに戻ると、薄型クライアントがコントロールコマンドをダウンロードストリームから読むと、関数10942は関数10944乃至10948を実行する。
【0327】
関数10944は、現在のコントロールコマンド中で特定されるコントロールIDに対応するデータ又はプログラム・オブジェクトを既に生成したか否かをテストする。もし、していなければ、関数10946は、コントロールコマンド中で特定された種類のデータ又はプログラム・オブジェクトを生成し、それをコマンドで特定されたコントロールIDに対応付ける。
【0328】
次に、ステップ10948は、コントロールオブジェクトの特定の種類の副画素最適化ビットマップを、薄型クライアントの画面において、コントロールコマンドにおいて特定された位置に描画する。次に、それは、コントロールに対応したテキストを、コントロールオブジェクトのビットマップ上に副画素最適化フォントを使用して描画する。次に、それは、コントロールビットマップに対応する表示画面上の位置を持つホット・ゾーンを、薄型クライアント上でコントロールを表すデータ又はプログラム・オブジェクトに対応させる。
【0329】
薄型クライアントがダウンロードストリームからの画像コマンドを読むとき、関数10950は、関数10952乃至10956を実行する。
【0330】
関数10952は、現在の表示ストリームを、現在コマンドと同じ画像IDを持つ全ての画像配置コマンドの発生に対して走査する。各画像配置コマンドに対して、それは、関数10954によって、ビットマップを、薄型クライアントの画面において画像配置コマンドで特定される位置に描画させる。全ての薄型クライアントの描画関数での様に、薄型クライアント画面上に適応しない画像の任意の部分は、描画操作において切り取られる。
【0331】
次に、関数10956は、これらの描画されたビットマップと同じ位置で発生する、表示リスト中の他の全てのアイテムを再描画する。これは以下の理由による。即ち、ウェブページがテキストを画像の最上部に置くのは一般的であり、それ故、ビットマップ画像と同じ位置に表示しようとするストリングが、これらの画像が描画された後に再描画されることが望ましい。本発明の一実施形態では、薄型クライアントは、リスト中の最初の画像配置コマンドの後に発生する、ダウンロードストリーム表示リスト中の全ての非画像要素を単に再描画する。
【0332】
もし、ユーザが、テキスト入力フィールドに対応するホットゾーン上をクリックすると、関数10958及び10960(図109B)は、関数10962及び10960からなるキーボードルーチンを実行する。
【0333】
関数10962は、ポップアップ・ユーザ・キーボード11102とテキスト編集フィールド11104とを、(図111に示されたように)薄型クライアントの画面上に表示する。次に、ループ10964が、ユーザがポップアップ・キーボードのエンターキーを押すまで実行される。このループの間、ユーザがテキスト文字をタイプする度に、関数10966は、関数10968に文字の副画素最適化テキストビットマップを、ポップアップ・キーボードのテキスト編集ライン上で現在のカーソル位置に配置させ、カーソルのビットマップを、新たに描画された文字の後に移動させる。次に、関数10970は、タイプされた文字を、ポップアップキーボードのプログラムに対応する一時的なテキスト編集ストリングに加える。
【0334】
ユーザがポップアップキーボードのエンターキーを押したとき、関数10972は、関数10974乃至10978を実行する。関数10974は、ポップアップキーボードに対応する一時的なテキストストリングを、ポップアップキーボードを呼び出すテキスト編集コマンドに蓄積する。関数10976は、テキストエディットストリングの文字を、副画素最適化ビットマップを使用して、図112に示されるように、薄型クライアント画面上のコントロールオブジェクトのテキスト入力フィールド11000のビットマップの中に描画する。
【0335】
次に、関数10978は、ポップアップキーボードが描画される前にオンスクリーン表示されたビットマップをキーボード上に描画することによって、薄型クライアントの画面からポップアップキーボードを取り除く。
【0336】
図113は、ポップアップキーボードルーチンが、テキスト入力フィールドにテキストを入力する以外の目的で使用され得ることを図示している。それは、図109A乃至109Cの擬似コード表記には表されていないが、ポップアップキーボードは、薄型クライアント上に表示され、ユーザが見たいウェブページのURLを入力することにも使用され得る。
【0337】
図114は、以下の点を除いて、実質的に図113と同じである。異なる点は、図114は、ボタンバー、ツールバーをGUIの最上部に持つ本発明の一実施形態を図示していることである。このボタンバーは、左端において、一般的にウェブブラウザで見られる種類のバック及びフォワード・ボタンを含んでいる。それは、また、リフレッシュボタン、ブックマークボタン、ヒストリーボタンに対応するR,B,Hと付されたボタンを持っており、これらの機能も一般にウェブブラウザで見られる。このボタンバーは、また、URLのテキスト入力フィールドを含んでおり、もし、これが押されると、図114に示すポップアップウィンドウが現れる。本発明の一実施形態では、ユーザは、ハードウェアのボタンを押すことによってツールバーを表示させるか否かを選択することができる。この実施形態では、このようなツールバーが示されていなくても、ユーザは、バックコマンドやフォーワードコマンドのようなウェブブラウズにより共通な機能を呼び出すことができる。
【0338】
本発明の他の実施形態では、このようなGUIのツールバーは、ユーザがブラウザの他の機能(ズームの変更及び/又はウェブページの表示の相対的なレイアウトサイズを含む)にアクセスできるようなボタン又はメニューも含むことが好ましい。
【0339】
図109Bに戻ると、ユーザが、ボタン又はメニュー項目・コントロールのホットゾーンをクリックすると、関数10980は関数10981及び10982を実行する。
【0340】
関数10981は、ボタン又はメニュー項目の出現を適切に変更する。ボタンの場合、ボタンに対応するビットマップがボタンが押されたことを示すように再描画される。メニュー項目の場合、最終的な選択がなされたか否かに基づいて、サブメニューが表示されることもあるし、メニュー項目が取り除かれることもある。
【0341】
メニュー項目の場合において最終的な選択が成されたか、ボタンが押されて離された場合、関数10982は、ボタンの又はメニュー項目のコントロールIDとブラウザに対して選択されたという指示とを送る。それは、ブラウザ上で該当するボタン又はメニュー項目のコントロールオブジェクトがあたかも押されたように動作することによって、応答される。
【0342】
もし、ユーザが、薄型クライアントコントロールの他の種類に対応するホットゾーン上をクリックすると、関数10983は、順次、薄型クライアントの表示(装置)上にあるコントロールのビットマップの出現を変更する。例えば、チェックボックスの場合、チェックは表示されることもあるし、画面上のコントロールの表示から取り除かれることもある。次に、ステップ10985は、コントロールオブジェクトに対応して該当する状態の変更を蓄積する。上述したように、本実施形態では、通信の要求を低減するために、ブラウザがそのような情報を要求するまでは、コントロールオブジェクトの状態はブラウザと通信されない。
【0343】
もし、ユーザが、クライアントプログラム又はコンピュータのコントロールインターフェースに対応しない、クライアントの画面の他の部分上をクリックした場合、関数10986及び/又は10987は、それが発生した画面位置に従って、プロキシブラウザに、そのクリックに対応するイベントを送る。関数10562乃至10556(図105B)において上記されたように、ブラウザは、クリックの位置を仮想画面上の対応する位置に変換し、仮想画面の解像度でそのクリックが描画されているとブラウザが認識するような画面上でクリックが発生したかのように、そのクリックに応答する。幾つかの実施形態では、通信の必要性をさらに低減するために、そのような他のクリックがプロキシブラウザが応答するべきユーザ入力に該当すると考える根拠を薄型クライアントが持つ場合にのみ、薄型クライアントは他のクリックをブラウザに報告する。
【0344】
図109Cに戻ると、薄型クライアントが、プロキシサーバから、1又は複数のコントロールオブジェクトの状態を尋ねる問い合わせを受信した場合、関数10988は、関数10989に薄型クライアント上の対応するコントロールの状態を問い合わせさせ、関数10909は、状態の情報をブラウザに送信する。図105Aの関数10518で上記されたように、プロキシブラウザは、次に、要求された情報を、あたかも、その情報が仮想画面に対応するコントロールオブジェクトの現在の状態の一部であるかのように、それを要求したブラウザの部分に返す。
【0345】
薄型クライアントのユーザが、画面をスクロールするコマンドを入力すると、関数10991及び10992は、そのスクロールコマンドをプロキシにアップロードする。これによって、図105Aで上記された関数10520乃至10534は、新しいスクロール位置で現在のウェブページを表示するための新しいダウンロードストリームを生成及びダウンロードする。
【0346】
ユーザが、薄型クライアント上に表示された画像のズーム(即ち、スケール)を変更するコマンドを入力すると、関数10993及び10994は、対応するズームコマンドをプロキシにアップロードする。これによって、関数10536及び/又は10552(図105Aで上記)は、新しいズーム設定での現在のウェブページの表示のために、新しいダウンロードストリームが薄型クライアントにダウンロードされる様にさせる。
【0347】
もし、ユーザが、薄型クライアントの表示の仮想解像度を変更するコマンド(プロキシブラウザ上の仮想画面がレイアウトされる解像度を変更する)を入力すると、関数10995及び10996は、選択された解像度をプロキシにアップロードする。これによって、関数10554乃至10560(図105Bで上記)は、仮想画面を新しい解像度で再レイアウトさせ、対応するダウンロードストリームを薄型クライアントに送り、ダウンロードストリームが、薄型クライアント上の現在のズーム設定でのウィンドウに対応する仮想画面の部分を表示する。
【0348】
図109Cの下部に示されたように、薄型クライアントのGUIに対応する他のコマンドをユーザが入力した場合、関数10997は、楕円10999によって示された適切な応答が実行されるようにする。そのような他の機能は、ブックマークの選択、ブックマークされたウェブページへのアクセス、バック及びフォワード機能、GUIの一部となり得る他の任意の機能を含む。このような要求は、物理的なボタン又は薄型クライアント上での他の物理的な入力によって、ボタン、メニュー項目又はダイアログボックス、又は仮想的な任意の他の公知のGUI技術のような、グラフィカルオブジェクトの選択によって選択される。
【0349】
図115乃至118は、薄型クライアントにプロキシ・サーバを通じてウェブをブラウズできるようにする他の方法に関している。この実施形態では、プロキシ・コンピュータによって生成されたウェブページの全体的なレイアウトは、図117に示したように、薄型クライアントにダウンロード及びキャッシュされる。後述するように、これによって、薄型クライアントは、実質的により速いスピードでレイアウト内をスクロールできるようになる。但し、見られる各ウェブページに対する全てのレイアウト及び画像をダウンロードしようとするものであるので、ダウンロードされる全体のビット数は増加する。
【0350】
図115は、その様なページ・レイアウト・キャッシュ手順で使用されるプロキシ・ブラウザ・コード11500の一部を図示している。
【0351】
本発明のこの実施形態では、プロキシ・ブラウザは薄型クライアントからウェブページに対する要求を受け取った場合、関数111502は関数11504を実行する。
【0352】
図15の関数11502に対応する疑似コードによって示されるように、この特別なウェブキャッシング実施形態では、薄型クライアントは、ウェブページを、そのページに対する所望のビュー設定(所望の仮想画面解像度、ズーム設定及びビュー・ウィンドウの位置を含む)で要求することができる。これによって、ユーザは、特定のURL、URLのパス名の部分を含むブックマークに、ビュー設定を対応させることができるようになり、また、ユーザは、ページが要求される度に設定値を別々に入力することなしに、所望の仮想画面解像度、ズーム設定及びビュー・ウィンドウの位置で自動的にウェブページを見ることができるようになる。例えば、ユーザは、良くアクセスするウェブページを、所望サイズのテキストを使用してそのページの所望の部分に自動的にズームインされた表示で、見ることができるようになる。
【0353】
一旦、ウェブページに対する要求が薄型クライアントから受信されると、プロキシ上の関数11504は、薄型クライアントからの要求のURLにおいて同定されたサーバからのウェブページを要求する。ウェブページがサーバから受信されたとき、関数11506は、関数11507乃至11516を実行する。
【0354】
関数11507は、プロキシ上のブラウザのレイアウトエンジンに、受信したウェブページを、ウェブページの要求において特定されたビュー設定に対応する仮想画面解像度で、レイアウトさせる。このレイアウトは、図106Aの関数10606乃至10618に関して上記されたと同様の方法で、置き換えられるフォントに対するスケーリングストリング測定を使用して実行される。スケールファクタは、現在のページへの要求において特定されたビュー設定によって決定される。
【0355】
関数11508は、現在の要求のビュー設定に含まれるビュー・ウィンドウを含む結果のレイアウトに対して、仮想画面位置を特定する。それ故、例えば、ビュー設定が640×480の仮想画面解像度出力の右端部分を見ることを要求し、レイアウトが800画素の幅をもつことが必要である場合、仮想画面位置は、レイアウトのだいたい画素列160から画素列800までに渡って延長される。
【0356】
関数11518は、関数11520に、レイアウトされているウェブページに関連して受信した各画像11702を、図117に示されるように、スケーリング及び副画素最適化する。
【0357】
一旦、ウェブページで参照された画像の全てが、受信され、スケーリングされ、副画素最適化されると、関数11522は、関数11523に、そのレイアウトに対する表示リストを生成させ、その表示リスト及び関連する副画素最適化、スケールダウン画像を圧縮する。次に、関数11524は、その圧縮されたデータを、スケールダウン、副画素最適化画像に従うウェブページレイアウトを含むダウンロードストリームにおいて、薄型クライアントに送信する。
【0358】
もし、ユーザが、異なるスケールで先にダウンロードされた1又は複数の画像を再スケーリングする要求を薄型クライアントから受け取ると、関数11526乃至11532は、その画像を再スケーリング、副画素最適化、圧縮し、薄型クライアントにダウンロードする。これによって、ユーザは、ダウンロードされたウェブページのレイアウトを異なるズーム設定で見たいと思う場合には、異なる副画素最適化サイズでそのウェブページを見ることができる。
【0359】
もし、画面入力のイベントが薄型クライアントから受信されると、関数11534は、関数11536乃至11542を実行する。
【0360】
関数11536は、コマンドに対応するページレイアウトの座標が、図117に示されたように、現在プロキシブラウザの仮想画面10208にマッピングされているウェブページのレイアウト10206の部分10206Aに一致するか否かをテストする。もし、そうでなければ、関数11538は、仮想画面を、そのコマンドに対応するレイアウト座標を含むレイアウトの新しい部分10206Bにスクロールする。
【0361】
関数11540は、受信された画面イベントのページレイアウト座標に対応する仮想画面座標を計算する。関数11542は、入力画面イベントを、ブラウザのイベントキューにおける仮想画面座標で実行し、ユーザが仮想画面上の対応する仮想画面座標をクリックしたかのように、リンクのクリックのようなイベントに応答する。
【0362】
図116は、図115及び117で図示されたページレイアウトのキャッシュ模式図をサポートすることに使用される薄型クライアントコードの部分の、大幅に簡略化された擬似コード表記である。
【0363】
もし、薄型クライアントが、ページレイアウトの表示リストを含むダウンロードストリームを受信し始めると、関数11602は、関数11604及び11606を実行する。
【0364】
関数11604は、ビュー・ウィンドウ(図117に示されたビュー・ウィンドウ10210Aのような)のマッピングをページレイアウトに対して設定すると、次に、そのマッピングに基づいて、現在のスケール・ファクタを計算する。
【0365】
関数11620は、現在のビュー・ウィンドウ内に当たるダウンロードされたページレイアウトの任意の部分を、現在のスケールファクタを使用して表示する。このプロセスは、関数11622乃至11630を含んでいる。
【0366】
関数11622は、現在のビュー・ウィンドウ内で発生する各ストリング要素を、現在のスケールファクタの関数であるフォントサイズで表示する。それが実行されると、必要であれば、各要素は、文字が表示される画素サイズが変わるときに、フォント・ヒンティングの不規則な影響から生じうる、文字の相対的なサイズにおける不適切な変更に対して調整が行われる。これは、不連続性及び非比例性を補償する技術、例えば、コンピュータ画面上でのテキストの表示と、より高解像度で印刷されたときに現れる表示との間でのウィジウィグ(WYSIWYG)一致を提供する従来の技術に類似する文字間のスペースの変更のようなものである。もし、先に表示されたものとは異なるサイズをもつビットマップが要求された場合、異なるサイズの文字に対するビットマップは、薄型クライアント上の蓄積手段からアクセスされることもできるし、ネットワークフォントサーバからもアクセスされるこもできるし、フォント・アウトラインから必要とされるサイズにラスタ化されることもできる。
【0367】
もし、関数11620によって生成された表示がビットマップ画像10818がスケールダウンされたスケールファクタとは異なるスケールファクタである場合、関数11624は、関数11626乃至11630を実行する。これらは、プロキシに、ビュー・ウィンドウ内に全体的又は部分的に在る全ての画像を、新しいスケールファクタで再スケールし、副画素最適化するように要求する。その後、同じ画像のビットマップは、薄型クライアント上に蓄積された先にスケールダウン及び副画素最適化された画像10818からローカルに再スケーリングされ、その画像に対する一時的な表示を提供するために薄型クライアント画面上に表示される。ウェブページに関連するオリジナルのより高解像度のビットマップから再スケールされた要求画像が、プロキシサーバから薄型クライアントに受信されたとき、それらは、表示画面上の適切な場所に表示される。
【0368】
幾つかの実施形態では、ユーザが表示のズームを変更すると、新しいスケールファクタでの画面上のページの部分に対応する画像のビットマップは、副画素最適化された画像を完全にダウンロードするまで、ユーザに一時的な画像の表示を提供するために、素早いが粗い薄型クライアント上で生成された画像で表示される。素早い表示は、スケールファクタが先にダウンロードされたビットマップのスケールファクタの整数倍である場合には、比較的生成し易い。このような場合以外は、一時的な表示は、多くの方法のうちの任意の方法で生成され得る。例えば、正確なスケールよりも小さい整数倍の比率に切り捨て又はスケーリングした整数倍の比率を持つ画像として表示する。これにより、一時的な画像が、一時的な画像上に描画しようとしている完全にスケーリングされた画像よりも広くならないようにする。
【0369】
もし、ユーザがプロキシ・ブラウザに送られる画面入力を生成する場合、関数11632乃至11636は、入力の薄型クライアント画面座標を、対応するページレイアウト座標に変換する。その後、画面入力と、対応するページレイアウト座標は、プロキシ・ブラウザにアップロードされる。プロキシブラウザは、次に、図115で上記された関数11534乃至11542を使用して、入力に応答する。これによって、ユーザがプロキシブラウザの仮想画面上のウェブページの対応する部分をクリックしたかのように、プロキシブラウザは画面入力に応答する。
【0370】
図115乃至117で上記した様な、薄型クライアントのユーザに現在画面上に表示されいるウェブページの部分よりも多くの部分を蓄積可能にさせるキャッシングの手順は、ユーザが、ウェブページのコンテンツに対してスクロール及び/又はズームをより素早くできる様にする。薄型クライアントがプロキシサーバに対して比較的狭い帯域幅しか持たない場合は、特にそうである。
【0371】
今述べたところの手順をキャッシュする実施形態は、本出願時に一般的に利用可能であった一般の携帯電話回線と同等の帯域幅においてさえ、比較的良好に機能する。これは、ほとんどのウェブページに含まれる全てのコンテンツ(画像を除く)は、通常、3,000byte以下になるように圧縮され得るからである。それ故、このような一般のデジタル携帯電話回線の通信速度で、ほとんどのウェブページの全てのテキスト部分は数秒内にダウンロードされ、テキストの最初の部分はさらに短い時間で描画される。もちろん、画像のダウンロードにはより長い時間を要するかもしれないが、ウェブページの最初にある画像は、大きいものを除いて、一般的に数秒内に表示される。そして、より高速の通信接続では、この表示は劇的に短くなる。
【0372】
図118乃至120は、仮想的にウェブブラウズする環境において使用される本発明の特徴を図示したものであり、これは、特に、小型画面上でウェブをブラウズするときに有効である。これは、上で議論した薄型クライアントコンピュータのような小型画面装置上での使用を含んでいる。本発明のこれらの特徴は、ウェブページの選択された部分へのズームイン又はズームアウトを含んでいるので、今述べたような種類のレイアウトキャッシュ手順の使用によって、薄型クライアントコンピュータ上で素早く動作できるように構成される。
【0373】
図118は、640×480の仮想解像度でレイアウトされた後、320×240の画面上での表示のためにダウンスケール及び副画素最適化された、標準的なウェブページを示している。このようなコンテンツは、ほとんどの人がハンドヘルドコンピュータを一般的に使用する距離で、良好な視力を持った人によって、判読可能である。しかしながら、ほとんどのウェブページのコンテンツは、より大きいサイズで表示された場合には、さらに読み易い。ほとんどのウェブページが複数の列でレイアウトされているので、しばしば、ユーザが読み始める列の最上部に表示を素早くズームできるようにすることが好ましい。図119及び120で示されたインターフェースでは、ユーザは、所望のテキスト列に渡ってズームされたビューにおける表示画面の最上部に近くで、ユーザが表示させたい垂直方向の位置に、ポインティングデバイス11902をドラッグすることによって、これを行うことができる。表示がこの種のズームを実行するモードである場合、図119の種類の水平方向への線形ドラッグは、その表示に、ドラッグで指示されたウェブページのレイアウトの幅を、画面の幅に適応するようにスケーリングする。図119で示された例では、このユーザ入力は、この表示が図120のようにズームされるようにする。
【0374】
ユーザインターフェースは、また、画面上に示されたウェブページのレイアウトにおける領域の周囲の選択ボックスをユーザがドラッグできるようにし、ウェブページの選択された領域が画面に適応するように、システムがウェブページの表示をズームすることが好ましい。
【0375】
また、以下のことが好ましい。即ち、このようなドラッグにおいて、ユーザは、画面の各端部に対応する境界を横切ってポインティングデバイスをドラッグし、これが実行されると、これに応答して、画面上で示されたウェブページの部分がスクロールし、、ドラッグの開始時には、大きすぎるか適切な位置にないために全体的に画面に適応しないウェブページレイアウトの内に、幅、高さ又は領域を適応させるようにズームの実行を、ユーザが選択できるすることが好ましい。このドラッグが、ドラッグ中に表示されるスケールファクタで画面上に適応するには大きすぎるレイアウトの部分を選択すると、テキスト及び画像が表示されるサイズを低減するようにスケールファクタを変更する。
【0376】
選択された幅、高さ、領域が画面に適応するようにスケーリングされるとは、画面の2/3と全体に対応する次元との間の最も大きな次元の範囲にスケーリングされることである。通常、このようなスケーリングは、画面の80〜90割合から全体に対応する次元の範囲にある最も大きな次元を持つ選択された長さ又は領域を生成することが望ましい。
【0377】
図121乃至図128は、ズームクリックと呼ばれる本発明の特徴を図示している。この特徴では、低解像度で見られる画面、極めて小さな画面、又は画面上の所望の位置に対して正確に配置することが容易でないポインティングデバイスが使用されている画面内で、ユーザがより容易かつ正確にアイテムを選択できる。特に、携帯電話サイズの画面、指をポインティングデバイスとして使用するタッチ画面デバイス、及びポインティングデバイスを正確に置くことが困難である移動中の車のような環境における使用されるタッチ画面デバイスを取り扱う場合に有効である。
【0378】
ズームクリックでは、ユーザが画面中の所定の位置をクリックダウンすると、クリックした画面部分が拡大スケールで表示される。ユーザは、その後、所望の位置にポインティングデバイスを押さえるまで、自由にこの拡大表示中をポインティングデバイスで操作することができる。この時点で、ユーザは、ポインティングデバイスの押さえを終了し、解除することができる。これにより、解除の時点での現位置を、従来のGUIのクリックと同じ目的で選択された位置として取り扱う。
【0379】
ズームクリックでは、ダブルクリックは、異なるように表現され得る。最も簡単なものは、ズームクリックに引き続いて直ぐの、素早い2番目のクリック及び解除を単に記録し、ズームクリックと同じ場所近くにおいてズームクリックをダブルクリックに変換する。
【0380】
ズームクリックの他の実施形態では、ズームクリックは異なるように操作されるが、好ましい実施形態では、ズームクリックにおけるダウンクリックの間の拡大表示中でのポインターの移動が、通常のポインタのナビゲーションと同じ割合で発生することが好ましい。このことは、ユーザが、他の場合の約2倍のポインティング解像度を持つことを意味する。また、ズームクリックモードにおいて確認するダウンクリックにおいてポインタが移動する間に、ユーザが画面の端に到達すると、ユーザがこのモードでページ全体をナビゲートできるように画像がスクロールする。
【0381】
図121乃至128の例では、二枚貝型の携帯電話機/コンピュータ120Cが示されている。この例では、携帯電話機は、320×240全体画素解像度をもち、カラー副画素アドレス可能である。もちろん、本発明の他の実施形態では、他の解像度が使用され得る。使用し易くするために、携帯電話機は、ユーザの指で操作される接触感度画面を持つと仮定する。
【0382】
図121は、図11及び図110に示すpriceline.comのウェブページの同じ画像を持つ携帯電話機を示している。
【0383】
図122は、ユーザが、ズームクリックモードにおいて、上記図110で議論したのと同じテキスト入力フィールド11000を選択するために、画面上に指12102で押したときに、何が起こるかを示している。通常、タッチスクリーンに指を接触させるとき、カーソルが置かれる正確な位置を前もって評価することは困難である。ズームクリックがこれに対する助けとなる。なぜなら、ズームクリックによって、ユーザは、何かの選択をする前に、タッチスクリーンに指を接触させることによって生じるカーソル170の位置を確認できるようになるからである。また、ズームクリックは、大きなビュースケールで画面を示すので、ユーザは、図123に示された所望のテキスト入力フィールド11000のような、所望のリンク又はコントロールにカーソル12204を配置するのが容易になる。一旦、ユーザが図124に示すようにタッチスクリーンから指を離すと、上記で議論した図111において現れたとちょうど同じように、ポップアップキーボード11102が現れる。
【0384】
図125に示すように、ズームクリックモードで、ユーザが、ポップアップキーボード11102において所望の文字(ここでは“b”)を触ろうとすると、触られたキーボードの部分の画像がそのスケールを大きくする。図125に示された例では、タッチスクリーンへの最初の押下時には、カーソル12204を所望の位置に正確に配置できていない。ユーザは、ズームクリックモードにおいて、指12202をドラッグさせてカーソル11102を図126に示された位置に配置することによって、この問題を容易に修正することができる。その後、ユーザがスクリーンから指を離すと、画面の画像は通常のスケールに戻り、ポップアップキーボード1102全体が示されて、次の文字がキーボード内のどこに在っても、次の文字を素早く選択できるようになる。
【0385】
図127に示すように、図126で選択された文字“b”は、ポップアップキーボードのテキスト入力フィールド11104において入力された様に表示される。
【0386】
ユーザが、図125乃至127に示された処理によって文字の選択を継続すると、ユーザは、エンターキーを選択してテキストの全ストリングを入力できるようになり、図128に示したように所望のテキストがウェブページの所望の位置に入力される。
【0387】
本発明の多くの実施形態では、ズームクリックで使用されるズームは、画面の全部又は一部上に先に示されたビットマップを整数倍(例えば2x又は3x、2倍又は3倍)で拡大することを含む。これによって、このようなズーミングは、比較的低処理能力のプロセッサによっても、実質的に瞬間的に実行される。
【0388】
図129乃至137は、ウェブページのユーザが、実質的により大きなスケールファクタでラインの境界を越えてリフロー又は再レイアウトされるように、テキストの部分をウェブページから選択することができる。このよなテキストのリフローは、小さな画面を持つ表示上で特に有用である。なぜならば、テキストのリフローによって、選択されたウェブテキストが、かなり大きなフォントで表示され、同時に、テキストの全ラインが画面内に適合するようにできるからである。これによって、連続するラインを読むために水平方向にスクロールで戻したり進めたりする必要がなく、素早く読むことができる。
【0389】
小型画面表示の解像度が如何に高いかに関わらず、表示が比較的接近している場合、人間の目は比較的大きな解像度で表示するもののみを見ることができる。本発明のこの特徴によって、比較的大きなスケールファクタで表示の幅の内に適合するラインを跨いで重なるように、ウェブテキストが表示される。例えば、対角線長さ4インチのスクリーンを持つハンドヘルドコンピュータのユーザは、5,6フィート離れて立っている人のグループに見えるように充分な大きさのスケールでテキストを表示することができる。同様に、それにって、ユーザは、携帯電話や腕時計型表示(装置)を顔の近くに持たなくても、これらにテキストを表示させることができる。また、それは、通常のコンピュータの表示の画面において、比較的画面から遠い人又は視覚の弱い人に対してウェブテキストを表示する、ことに使用され得る。
【0390】
図129は、プログラム12900の大幅に簡略化された疑似コード表記を示しており、プログラム12900は、本発明のこの特徴に従って、クライアントコンピュータにウェブテキストを表示することに使用され得る。
【0391】
本発明のこの特徴がクライアントコンピュータ上での使用に制限されないことに留意しなければならない。事実、本発明のこの特徴の変形は、図140乃至141で後述する種類のシステムにおけるように、ウェブブラウザ以外のアプリケーションによって生成されたビジュアル出力を見ることに使用され得る。
【0392】
多くのウェブページは、そのレイアウトを異なる列に、即ちレイアウトに対して水平方向の異なる位置において持つ様に設計されている。ウェブページはテーブルやフレームの使用を含む複数の異なる方法において、そのような異なる水平方向の置き換えを指示する。この方法のシステムは、異なる所望の水平方向の置き換えの指示を反映する複数列レイアウトにおいて、ウェブページテキストを表示可能な手段と共に使用される、ことが好ましい。
【0393】
ユーザが、新しいスケールファクタで1つの列におけるテキストリフローのために、ウェブページレイアウトの領域を選択すると、関数12902は、関数12904乃至12908を実行させる。ウェブページのコンテンツが比較的通常の方法で表示されている場合には、そのような選択が成される。
【0394】
本発明の幾つかの実施形態では、そのような選択はポインティングデバイスをドラッグすることによって成される。ポインティングは、ユーザが表示画面またはウィンドウの幅を横切ってより大きなスケールでリフローしようとしているウェブページの幅の部分を横切る、図130に示すようなスタイラス119002のようなものである。これは、現在議論している方法では、選択されたテキストの列がより大きなフォントで表示でき、同時にテキストの全ラインを画面内に適応させ、テキストをラインの境界を跨いでリフローできる点を除いて、上記図119で議論したのと同様である。
【0395】
図129の関数12904は、選択されたレイアウトの領域内に実質在る現在のウェブページのレイアウトにおいて、全てのストリングと、対応するアンダーライン(例えば、リンクとしてのテキストのラベリング)を選択する。
【0396】
図131は、図130に示したウェブページのレイアウト10206Aの最上部の部分(図117の下半分に示されたものと同様の部分)を図示している。図131では、破線で表された矩形13102は、図130でユーザによって選択された列に対応するウェブページのレイアウトの部分を表している。
【0397】
本発明の幾つかの実施形態では、実質的な部分、例えば、その長さの2/3又は3/4がユーザによって選択された領域内に適合する場合にのみ、ストリングが選択された領域内にあると考える。例えば、図130では、図において表示された画面の右側部分で、テキストを選択しようとしている。しかしながら、図130の例では、ユーザは、スタイラスのドラッグによって、意図した列の幅を正確に選択できていない。それにも関わらず、関数12904は、選択された領域内に実質的にある全てのストリングを選択するので、あたかもユーザが、意図した列を正確に選択したかのように、テキストリフローが実行される。
【0398】
図132は、選択された領域内に在る、図131に示されたウェブページのレイアウトにおけるストリングの初期部分を図示している。この図では、アンダーラインは、リンクに対応するテキストの部分を示している。
【0399】
一旦、選択された領域のストリングの全てが選択されると、関数12906は、1又は複数の連続するストリング(レイアウトにおける接近性又は他の特質によって同じパラグラフの一部であることを示しているもの)の任意のグループをラベルする。これは、図132において、パラグラフ・ブラケット13202によって示されている。
【0400】
図132で示した様に、この方法は、パラグラフであるフォントの全グルーピングを検知しなくても良いが、そのテキストに対応するHTMLを参照する必要なしにそれらの多くを検知する。現在述べられている本発明の実施形態では、HTMLはプロキシサーバに蓄積されている。これは、そのようなアクセスがクライアントコンピュータとプロキシサーバ間の通信に伴うディレイを必要とすることを意味している。他の実施形態では、特に、クライアントコンピュータがフルブラウザレジデントを持った実施形態、又はクライアントがプロキシサーバに対して高いアクセス帯域幅を持った実施形態では、HTMLコードへのアクセスは、選択されたストリングがパラグラフにおいてどのようにグループ化されるべきであるかをより正確に決定するために使用され得る。他の実施形態では、プロキシサーバにダウンロードされたレイアウトの情報は、ウェブページのHTML内に含まれるパラグラフの境界についての何らかの情報を含み得る。
【0401】
一旦、選択されたストリングがパラグラフにグループ化されると、関数12908は、表示画面(その画像が表示画面全体よりも小さい領域に表示されている場合には、表示ウィンドウ)の幅に渡って拡大された選択されたスケールファクタを使用して、各パラグラフのテキストをリフローする。
【0402】
このテキストリフロー処理は、図133に図示されており、図132の最上部におけるストリングは新しいスケールファクタでレイアウトされている。示されている例では、図130のテキストは、同じ画面内において元のサイズの2倍でリフローされている。好ましくは、薄型クライアントクライアントのユーザインターフェースによって、ユーザが、選択テキストリフロー関数での使用のための複数の異なるスケールファクタ(フォントサイズの緩やかな増大から極端な増大までの範囲)を選択できるようにする。
【0403】
図133において、アンダーラインは、図132のアンダーラインとは異なるものを表している。図133では、図132で共通するレイアウトから生じる各ライン上のテキストは連続するアンダーラインで示されている。図132における異なるストリングから生じる図133における同じライン上のテキストの部分の間のアンダーラインの間隔は、それらの違いが判読性良く見える様に誇張されている。図133では、ラインの境界を横切って重ねられている図132に示す元のレイアウトから生じる個々のストリングの全ては、1つのライン上の部分から引き続く次のライン上の部分までの矢印によって示されている。
【0404】
図134は、図130及び131で示された元のレイアウトの選択されたストリングがどのようにして、それらのストリングがクライアントの画面上で約2倍のサイズでリフローされている様に見えるかを模式的に図示している。図134を参照して分かる様に、そのようなテキストリフローは、ウェブテキストを遠くから格段に見易くする。2倍の代わりに4倍又は6倍で同じテキストをリフローすることによって、表示画面から極めて遠方に居るユーザに同じウェブページのコンテンツを示すことができる。
【0405】
図135乃至137は、リフローされるテキストの部分をユーザが選択できる他の方法を図示している。
【0406】
図135は、他のテキストの1又は複数の部分を押し込んだテキストの中央の列を持つウェブページの部分を図示している。
【0407】
図136は、ウェブページ全体のレイアウトのズームアウトビューをユーザが如何に取得するかを図示している。多くの現実の実施例では、個々の文字としてはズームアウトビューで表示するには小さすぎるテキストの部分を示すために、テキスト・グリーキングを使用することもある。このようなズームアウトビューは、図115乃至117に上述したもの(ウェブページ全体のレイアウトが薄型クライアント自体に蓄積されているもの)の様な薄型クライアントコンピュータ上で、素早く生成され得る。
【0408】
図136では、多角形状の領域においてカーソルでウェブページの表示をクリックすることによって、ズームアウトウェブページ上にある多角形状の領域を決定できるモードを、ユーザが選択する。一旦、これが実行されると、選択された領域は、どのテキストがリフローされるべきかを選択するために、図129に示された関数12904によって使用される。
【0409】
図137は、選択されたテキストがどのようにリフロー及び表示される様に現れるかを図示している。
【0410】
図138乃至139は、図2において上述したフォントサーバ230のより詳細な説明である。
【0411】
図138は、以下の点を除いて図2に対応する。異なる点は、図138では、複数のクライアント・ブラウザがあり、各クライアント・ブラウザは、同じプロキシサーバ210を介して1又は複数のサーバ220からコンテンツにアクセスし、同じフォントサーバ230からフォントにアクセスする。
【0412】
これは、各薄型クライアント・ブラウザでの使用のために販売、ライセンス、又は頒布されたソフトウェアは、クライアントが持っていないフォントを同じフォントサーバ230から探す様に、及び、同じプロキシサーバ210を通じてウェブ要求を実行する様に、プログラムされているからである。もちろん、本発明の本特徴の他の実施形態では、薄型クライアントクライアントは、それらの地理的な配置のような要因、又はインターネットサービスプロバイダに基づいて、共通の複数のプロキシサーバのどれを選択するかをプログラムされている。同様な考察が、薄型クライアントクライアントによって、フォントを要求及び取得するべき共通の複数のフォントサーバを選択することにも用いられる。
【0413】
図139は、図138で図示された種類のフォントサーバ上で使用され得るプログラム13900の大幅に簡略化された擬似コード表記である。このフォントサーバもまた、通常のブラウザコンピュータに加えて、ウェブブラウザ以外のアプリケーションを実行するコンピュータによって使用され得る。
【0414】
フォントサーバが、特定のフォントの文字を要求するためのHTTP要求をコンピュータから受信すると、関数13904乃至13922が実行される。
【0415】
図139に示されたフォントサーバコードの特定の実施形態は、別個のHTTP要求による特定のサイズでの特定のフォントを要求する各文字を特定するプロトコルでの使用のために設計されている。それは、所望のフォント、フォントサイズ、及び文字を、URLのパス名の一部として特定する。もちろん、他の実施形態では、フォントサーバは、HTTP要求が1又は複数のフォントを特定できる様にし、URLパス名以外でフォントを特定する様にしても良い。
【0416】
各文字・フォントの形状を別々に要求するシステムでは、HTTPプロトコル1.1又は複数が使用されることが好ましい。なぜならば、HTTPプロトコル1.1以上によれば、各要求を処理するために別個の接続を開いて閉じる必要なしに、所定のクライアントコンピュータからの複数のHTTP要求が、サーバによって扱うことができるからである。
【0417】
図139に示した本発明の実施形態では、フォントサーバが、現在、要求中で特定されたURLパス名に一致するフォントビットマップを蓄積していると決定すると、関数13904は、関数13906を実行し、URL要求が来たネットワークアドレスに対して、HTTP応答中でそのフォントを送り、その後、関数13908が取引に伴う料金を課金する。このようにダウンロードされるフォントは、フォントビットマップでもフォント・アウトライン記述でも良い。
【0418】
料金の課金は、本発明のすべての実施形態において使用される訳ではない。料金課金が使用される実施形態の幾つかでは、課金される料金は、フォントが送られたコンピュータ宛である。他の実施形態では、課金は、フォントの詳細を含むウェブページに関係する者の口座宛である。さらに他の実施形態では、課金は、上述した種類のプロキシサーバに関係する口座宛のものであるか、又はプロキシサーバのサービスのユーザ宛のものである。
【0419】
要求されたフォントがフォントサーバの蓄積になく、要求されたフォントがビットマップであり、対応するアウトライン・フォントをフォントサーバが持っている様なビットマップである場合には、関数13910は関数13912乃至13922を実行する。
【0420】
関数13912は、HTTP要求のフォントパス名によって示されたサイズ及び可能な変換の様な、特性を持ったビットマップを生成する。この関数は、要求されたフォントのパス名が、フォントの副画素最適化バージョンが要求されていることを示しているか否か、を決定することを含む。もし、要求されていれば、関数13914及び13916は、好ましくは、図55乃至96で上述された非線形カラー・バランス法を使用して、フォントの副画素最適化バージョンを生成する。
【0421】
一旦、フォントビットマップが生成されると、関数13918は、ネットワークを介して、要求されたアドレスへのHTTP応答においてビットマップを送る。関数13920は、要求中で特定されたパス名に一致するアドレスでフォントビットマップをキャッシュする。関数13922は、課金が実行される実施形態において、関数13910に関して上述した様に、取引に伴う料金を課金する。
【0422】
図140は、本発明のある特徴が、リモートコンピュータ1400上で実行されている1又は複数のアプリケーションによる画面出力として生成されたテキスト及び画像に対応するデジタル・コンテンツを、薄型クライアント200が表示できる様にすることに使用され得ることを図示している。このようなアプリケーションは、ウェブブラウザ、表計算ソフトウェア、ワードプロセッサ、データベースプログラム、又は実質的には、画面表示を生成できる種類のソフトウェアであればその他のソフトウェアであっても良い。
【0423】
リモートコンピュータは、リモート画面生成プログラム14006(リモートコンピュータのオペレーティングシステム14004のディスパッチ・テーブル14008におけるフックを含む)を含む。これらのフックは、所定の表示解像度で画面にテキスト、形状、ライン、コントロールオブジェクト及びビットマップのものを描画するために、オペレーティングシステムに対して、アプリケーション14002内の1又は複数によって成されるコールを傍受する。幾つかの実施形態では、このような描画コマンドは、リモートコンピュータの画面上にコンテンツが実際に表示される様にする。他の実施形態では、リモートコンピュータには画面がなく、描画コマンドが仮想画面に対して成される。以下のテキストでは、簡略化の目的で、グラフィック出力を表示しつつ、仮想画面としての所定のクライアントコンピュータ上でユーザ入力を受け付けていると、これらのアプリケーションが考えるようなビデオスペースについて言及する。
【0424】
アプリケーション14002の1つがオペレーティングシステムに表示要素を描画する様に要求すると、そのコール(要求)がオペレーティングシステムのディスパッチ・テーブルに在るフックの1つによって傍受され、リモート画面生成器の対応するルーチン14010への対応するコールを生成する。図102、及び106A乃至106Cで上述したと同様の方法で、図102及びそれに続く図で上述された表示リスト10212と実質的に同一のダウンロード表示リスト10212Aを生成させる。図102で示されたコントロール10214乃至10218に対応するズーム、スクロール及び仮想レイアウトコントロール1412は、薄型クライアントのビューから仮想画面へのマッピングを制御し、それ故、アプリケーションによって仮想画面へ描画される要素のスケール・ファクタは、ダウンロード表示リスト10212A中に記載及び配置される。好ましくは、これは、画像ビットマップの副画素最適化と、図106A乃至106Cで上記された種類のフォント置換とを含むことが好ましい。
【0425】
一旦、ダウンロード表示リストが所定の仮想画面に対して生成されると、ダウンロード表示リストは圧縮され、対応する薄型クライアントコンピュータにダウンロードされ、そして、薄型クライアントコンピュータが、図109A乃至109で上述された方法で画面上にそれを描画する。
【0426】
本発明の幾つかの実施形態では、仮想画面への個々の描画は、薄型クライアントにダウンロードされた対応する描画コマンドを持っている。これは、薄型クライアント画面への小さな変更が仮想画面に対する対応する変更に応答して成され得る速度を速くするために用いられ得る。
【0427】
図140に示された実施形態では、ユーザは、画面位置に対してのユーザ入力が、薄型クライアントからリモートコンピュータにアップロードされ、画面位置は、薄型クライアントのビュー・ウィンドウと仮想画面との間のマッピングを反映するために変換された画面座標を持っている。一旦、これが実行されると、このイベントは、リモートコンピュータのオペレーティングシステムのキューに変換画面座標と共に置かれる。これによって、関連するアプリケーション14002は、あたかも、ユーザ入力がリモートコンピュータの対応する仮想画面上に入力されたかの様に、それらのイベントに応答する。
【0428】
LapLink又はpcAnywhereの様な、画面共有アプリケーションによって使用される技術の多くは、図140に示された種類の、本発明の実施形態と共に使用され得る。実際、その図におけるリモートコンピュータが自身の画面を持っている場合、図140に示された実施形態は、クライアントコンピュータとリモートコンピュータとの間での画面共有を実行するために使用され得る。
【0429】
クライアントコンピュータが合理的な量の演算能力を持っている実施形態では、クライアント及びリモートコンピュータはピアツーピアの方法で動作することが好ましい。リモートコンピュータは、専用のアプリケーションサーバであっても良いし、パーソナルコンピュータ(デスクトップコンピュータ、ラップトップコンピュータ、又はタブレットコンピュータを含む)の様な他の如何なる種類コンピュータであっても良い。
【0430】
図141は、図140に示されものと幾分同様の、1又は複数のアプリケーション14002によって生成されたオペレーティングシステムのコールを傍受し、本発明の一実施形態を図示している。そこでは、上述した本発明の特徴に従って、アプリケーションで生成された画面表示がスケールダウン及び/又は副画素最適化される様に、コンピュータのオペレーティングシステム14004のディスパッチ・テーブル14008でフックを用いている。図140に示されたクライアントサーバの実施形態では、図141に示された1つのコンピュータシステム14100上で動作するように設計されている点が異なる。
【0431】
この実施形態では、アプリケーションが、オペレーティングシステムに画面に要素を描画させるコールを実行すると、OSディスパッチテーブル14008に置かれたフックによって、スケーリング副画素最適化画面生成プログラム14006Aのプログラム14010内の対応する描画ルーチンを起動させる。この置き換え描画ルーチンは、仮想画面表示リスト10206Bに、対応する要素を描画する。それはまた、ビュー・ウィンドウ10210内に適合する仮想画面の部分に描画された画面要素の任意の部分を、オペレーティングシステム中の描画コマンドを呼び出して、又は自身の画面に直接描画することによって、コンピュータ14100の表示画面10220A上に即座に表示させる様にする。
【0432】
アプリケーションプログラムが測定(メジャー)ストリングコマンドのためにオペレーティングシステムを呼び出すと、そのコマンドは同様に傍受され、その呼び出しが、図106Aの関数10608乃至10618で上述した方法でフォントサイズのフォント・メトリックスを返す。
【0433】
コンピュータの画面への画面イベント入力は、オペレーティングシステムのイベントキューから取り出され、イベント位置計測手段に送られる。イベント位置計測手段は、イベントが画面上で生成される画面座標を、表示リストによって表現された仮想画面レイアウトにおいて対応する位置に変換する。その変換には、変換を制御するために、ビュー・ウィンドウの仮想画面へのマッピングを使用する。一旦、イベントの座標が適切に変換されると、イベントはオペレーティングシステムのイベントキューに戻され、オペレーティングシステムは、あたかも仮想画面に入力されたかの様にイベントに応答する。
【0434】
図141に示された種類の、本発明の一実施形態によれば、コンピュータのユーザは、標準的なコンピュータアプリケーションで生成された画面上において、たとえ、コンピュータがこのような機能をサポートする様に設計されていなくても、テキストを副画素最適化、スケールダウン及び/又はリフローすることができる。
【0435】
示されていない本発明の他の実施形態では、コンピュータのオペレーティングシステムが、図141に示されたスケールダウン副画素最適化画面生成手段14006Aに示された種類の機能を含む様に変形可能である。さらに本発明の他の実施形態では、ブラウザ・プログラムを含むアプリケーション・プログラム14002は、そのような機能の全部又は多くを直接サポートする様に変形可能である。
【0436】
図142は、薄型クライアントコンピュータ(その図に示された薄型クライアントコンピュータ200A乃至200D)がワイヤレスネットワークを介してインターネットコンテンツ又はアプリケーションプログラムにアクセスするために使用され得る様にするために、図102乃至140に示された本発明の実施形態がどの様に使用され得るのかを図示している。
【0437】
この図では、コンピュータ200A乃至200D図102乃至140に示された薄型クライアントコンピュータ200に対応する。コンピュータ200Aはハンドヘルドコンピュータである。薄型クライアントコンピュータ200Bは、携帯電話機である。薄型クライアントコンピュータ200Cは、腕時計コンピュータである。薄型クライアントコンピュータ200Dは、頭部装着コンピュータ、又は携帯コンピュータ用の頭部装着ディスプレイである。これらの薄型クライアントコンピュータの夫々は、副画素アドレス可能なディスプレイを持っている。
【0438】
本出願の出願時には、本発明のほとんどの特徴によって使用されるのに充分高い解像度を持つ、これらの種類の装置の夫々のためのスクリーンを製造することが可能であった。例えば、現在、2インチ以下の対角長を持つ320×240カラーLCDを製造可能である。有機LED装置は、現在より高い解像度でさえ製造され得る。近い将来、このような小型画面のコストはダウンする一方、有益性及び解像度は増大するはずである。
【0439】
図142に示された薄型クライアントの全ては、図102で示した種類のリモート・プロキシ・サーバコンピュータ210又は図140で示した種類のリモート・アプリケーション・サーバ14000において上述した種類の情報を送信又は受信可能にするワイヤレストランシーバを持っている。このトランシーバは、ワイヤレスLANトランシーバ14204との通信用のワイヤレスLANトランシーバ、ワイヤレスインターネットトランシーバ14202との通信用のデジタルセルラーワイヤレストランシーバ、又は好ましくは、両方の種類のワイヤレストランシーバと通信する様に設計されているトランシーバであり得る。他の実施形態では、Bluetooth又は赤外線通信の様な他の種類の通信が使用され得る。
【0440】
図142に示されたリモート・コンピュータ14,000AA乃至14,000ACは、図140に示されたリモート・サーバ・コンピュータ14,000に対応する。
【0441】
図142に示されたリモートアプリケーションサーバコンピュータ14000AAは、ラップトップコンピュータ、デスクトップコンピュータ、サーバ、又はリモートアプリケーションサーバコンピュータ14000として動作する様にプログラムされ得る他の種類のコンピュータを表現している。副画素最適化アプリケーション14000ABは、図140に図示された種類のリモートコンピュータであり、クライアントに繋がるLAN又はWANに接続された複数の薄型クライアント用のアプリケーションを実行する様に設計されている。リモートコンピュータ14000AA及び14000ABは、プライベート・ローカルエリア・ワイヤレス送信機142004を介して薄型クライアントと通信可能、又は符号10222及び14202によって示された様にワイヤレスインターネットを介して薄型クライアントと通信可能である。
【0442】
図142では、図102で上述された種類のプロキシサーバ210は、LAN又はWAN14204に接続されて示されている。これは、例えば、会社がインターネットに非接続することを希望するウェブブラウズを取り扱うことを目的としたプロキシサーバであり得る。商業的なプロキシ提供サービスを提供する会社によって運営されているものの様な他のプロキシサーバは、通常、図142でも示されたインターネット10222に直接、接続されるであろうことを理解すべきである。
【0443】
図142に図示されたシステムによれば、実質的に常時便利に持ち運べる小型コンピュータは、ウェブページ及び大抵のアプリケーションプログラムの出力にアクセスし、表示することができる。本出願の出願時においては、図142に示すLANトランシーバ14204の様な比較的高価格ではない無線LANトランシーバの帯域幅は、ケーブルモデムに接続されたデスクコンピュータ上でデジタル・コンテンツを見るのと同様の速さで、図142に示す種類の薄型クライアントがウェブコンテンツ又はアプリケーションプログラムの出力を見ることができるために充分高速であった。そして、ポケット、手首上、又は眼鏡の一部の様に実行され、スイッチオン後数秒以内に情報媒体にアクセス可能な装置上で装置上にある。
【0444】
本出願時にアメリカで共通に利用可能であったデジタル携帯の帯域幅では、大抵のウェブページの全テキストをダウンロードするには数秒必要であり、ウェブページの画像をダウンロードするにはより長くかかっていた。もちろん、本発明の多くの実施形態は、ユーザがダウンロードされたページの一部を非常に素早く見始めることを開始出来る様に、一部が受信されると直ぐにテキストを表示し始める。
【0445】
本出願時には、新しく、より高速のデジタル携帯電話システムが開発されており、これらのシステムは、数十万又は数百万ビット/秒の範囲の帯域幅を提供可能であった。一旦、そのような、より高速のシステムが一般に展開されると、本発明のユーザは、DSL又はケーブルモデムを介してデスクトップコンピュータ又はラップトップコンピュータ上でアクセスしているかの様に、移動先の大抵の場所でスイッチオンから数秒以内に使用され得る小型の携帯装置上で、ウェブページやアプリケーション画面を読んで相互に対話出来る様になる。
【0446】
図143乃至144は、図102で上述された種類のプロキシサーバ又は図140で上述されたリモートアプリケーションサーバ用の薄型クライアントとしての機能可能な、ハンドヘルドコンピュータ200Aの2つのビューを示している。
【0447】
図143では、コンピュータは、使用のために設計されている縦向きで図示されている。コンピュータの本来のオペレーティングシステムは、このポートレイト方向(縦向き、短辺行方向)でフォント及びグラフィカル・ユーザ・インターフェースの要素を描画する様に設計されている。これは、本出願時に販売されていた多くのハンドヘルドコンピュータが設計及び組み立てられていた方式である。例えば、全体画素の解像度で240×320であり、かつ副画素アドレス可能な多くのハンドヘルドコンピュータが市場に在る。また、これらのコンピュータの多くは、表示画面が意図された縦向きに置かれた時に、水平方向に走る副画素ストライプを持っている。
【0448】
不運なことに、このようなポートレイトの向きは、ほとんどの人がコンピュータの使用に慣れており、かつほとんどのウェブページが設計されているランドスケープ方向(横向き、長辺行方向)の縦横比のタイプを提供しない。更に言えば、その様なコンピュータが水平方向の副画素ストライプを持つ状況では、水平方向の副画素ストライプが、垂直方向での副画素解像度に潜在的な増大の全てを与えてしまう。不運なことに、テキストの表示は、垂直方向での増大からの寄与よりも、水平方向解像度における増大からの寄与の方が実質的に大きい傾向にある。
【0449】
これらの全ての理由のために、縦向きの装置を使用する本発明の多くの実施形態は、縦向きの装置を図144に示す様に90°回転させたときに使用する様に設計されており、それ故、大抵のコンピュータのレイアウトのアスペクト比により類似するポートレイトのアスペクト比を持ち、その結果、副画素がテキストを表示するために最も有用な水平方向の解像度が高まる。
【0450】
図145は、本実施形態の幾つかの特徴が如何にして、副画素最適化を用いて矩形、楕円、線及び曲線の様な基本の形状を描画する要求に応えるために使用されるかについての、大幅に簡略化された擬似コード表記である。そのような機能は、多くの種類のアプリケーション、オペレーティングシステム及び薄型クライアントソフトウェアで使用され得る。
【0451】
図145の例では、擬似コード表記は、矩形描画関数14500を参照しており、関数145000は、他の用途とともに、図109で上述された矩形コマンド10918の実行に使用される。そのルーチンは、副画素アドレス可能な画面(そこで表示される)の全画素での解像度よりも高い解像度で位置、幅及び/又は高さが定義された矩形を描画する呼び出しによって、起動される。応答として、関数14502は、より高い解像度、即ち副画素解像度で定義された矩形の画像を表現するために、副画素最適化ルーチンを使用する。実質的にどのような副画素最適化手順を用いてもこれは実行され得るが、白黒矩形の場合には、上述した2色最適化手順が最高の視認可能な空間解像度を提供する。
【0452】
図146は、サーバ及び/又はプロキシサーバ上で動作するコード14602、及びサーバからダウンロードされたアプレットが副画素最適化画面要素をクライアントの画面上に描画可能な様に、薄型クライアントコンピュータを含むクライアントコンピュータ上で実行されるコード14604の大幅に簡略化された擬似コード表記14600である。
【0453】
この様な実施形態では、クライアントの関数14606はサーバから情報媒体を要求する。サーバは、情報媒体又はデータ(クライアントコンピュータ上で動作する1又は複数のアプレットプログラム)をダウンロードすることによって、関数14608において応答する。関数14610では、クライアントコンピュータは、アプレットを含む情報媒体を受信し、関数14612はアプレットをロード及び実行する。関数14614では、クライアントコンピュータ上の副画素アドレス可能な画面に副画素最適化された要素を描画する。アプレットは、副画素最適化された要素を、副画素最適化されたビットマップをコピー又は生成することにより、副画素最適化されたフォントでテキストを表示することにより、又は、ベクトル定義されたグラフィックまたは線、矩形及び楕円の様な比較的単純な幾何学形状の形状の様な、副画素最適化された形状を描画することにより、描画可能である。
【0454】
図147及び148は、副画素最適化がロールオーバ画像及びGIFFアニメーション夫々に如何に適用されるかを図示している。
【0455】
図147における副画素最適化ルーチン14700では、非ロールオーバ画像14702(ポインティングデバイスが画像に伴う画面の部分を超えて検知されないときに表示される画像)と、ロールオーバ画像14704(ポインティングデバイスが画面の部分を超えて検知された場合に表示される画像)は、両方とも、関数14706によってダウンスケール及び副画素最適化される。これによって、スケーリング・副画素最適化非ロールオーバ画像14708及びスケーリング・副画素最適化ロールオーバ画像14710とが生成される。次に、関数14712は、ポインタが画面で検出されるか否かに基づいて、これらの2つの副画素最適化画像の何れを表示させるかを選択することに使用される。これによって、2つの副画素最適化画像を、結合した“ロールオーバー”グラフィック“として機能させる。
【0456】
本発明のこの特徴の他の実施形態では、同様の技術が、ボタンで連携する2つの画像(ボタンが押下されてないときに表示される画像と、ボタンが押下されているときに表示される画像)に適用され得る。
【0457】
図148の方法14800は、図147で上述されたものに類似している。それは、GIFFアニメーションの別個の画像14802乃至148906の夫々を取得し、関数14802において副画素最適化され、スケールダウンされ、副画素副画素最適化されたGIFFアニメーション画像の対応するセットを生成する。次に、関数14816は、副画素最適化されていないギフトアニメーションが表示される方法と実質的に同じ方法で、副画素最適化された画像を表示する。
【0458】
図147及び148で述べた副画素最適化は、上述された本発明の他の特徴(薄型クライアント上での表示を含む、副画素アドレス可能な画面上でのウェブページのアクセスを含む)にも使用され得る。
【0459】
図149は、副画素最適化3−Dアニメーションの方法14900を示している。この方法は、アニメーションの各連続するフレームに対して、関数14904乃至14908のセットを実行することを含む。
【0460】
関数14904は、現在のフレーム又は少なくとも最後のフレーム以来変更された画像の当該部分のビットマップを作成する3−Dアニメーションエンジンを実行する。この関数は、ビットマップの副画素最適化バージョンが表示されるべき全体画素の解像度よりも高い解像度で、ビットマップを生成する。
【0461】
関数14906は、次に、上述された様な技術を使用し、フレームビットマップ又は少なくとも最終フレーム以来のフレームビットマップ中で成された変更を、スケールダウン及び副画素最適化する。
【0462】
次に、関数14908は、フレームビットマップ、又は少なくともフレームの変更された部分の、スケールダウン及び副画素最適化された画像を、副画素アドレス可能な画面上で表示する。
【0463】
図149に示された方法は、ゲームを実行可能にしたり、副画素最適化によって可能となったより高い解像度でのゲームによって生成された画像を視認出来る様にすることに有用である。それは、小型画面ハンドヘルド装置上でのにおける目的に使用され得る。それは、リモートコンピュータ上で生成されたアニメーション画像を表示するクライアントコンピュータ、及びローカルにアニメーション画像を生成するコンピュータの両方に使用され得る。
【0464】
図150及び151は、図149の方法がクライアントサーバのゲームアプリケーションで使用され得る一方法を図示している。
【0465】
図150は、実施形態においてゲームサーバコンピュータ上でのプログラム1500を図示している。数字15002及び15004で示された様に、ゲームサーバは、1又は複数のクライアントコンピュータからユーザ入力を受信すると、入力をゲームエンジンに送る。もし、入力が画面入力であれば、ユーザの画面の解像度と、ゲームエンジンが画面入力に連携する空間との差を補償するために入力は適切にスケーリングされる。
【0466】
関数15006では、ゲームエンジンのコンピュータは、現在のフレーム、又は先の表示リストへの現在フレームに関連する変更に対する表示リストを演算する。次に、関数15008は、3−D表示プログラムに、現在フレームに対して生成された表示リストに対応するフレームビットマップを表示させ、現在フレームのビットマップに要求される変更を表示する。そのビットマップは、関数1510によって生成される副画素最適化画像の解像度よりも高い解像度で生成される。
【0467】
もし、クライアントが異なるクライアントに対して異なる画面を生成するならば、関数15008はこれらの別個のビューの夫々に対して別個に実行される。
【0468】
次に、関数15010は、現在フレームのビットマップ、又はフレームに対する現在の変更のビットマップをスケールダウン及び副画素最適化する。関数がその変更のビットマップのみをスケールダウンするときもまた、これらの変更に伴う画面位置を同時にスケールダウンする。
【0469】
次に、関数15012は、副画素最適化ビットマップ、もし適切であればそれらの位置もスケールダウンし、関数15014は、圧縮、スケーリング、及び副画素最適化された画像と、クライアントへの表示のための位置とをダウンロードする。
【0470】
図151は、図150のプログラムでの使用のために設計されたゲームクライアント上におけるプログラム15100を図示している。
【0471】
関数15101は、ダウンロード画像を受信し、関数15102はそれらを解凍する。次に、関数15104は、スケーリングされた、副画素最適化されたアニメーションフレームのビットマップを表示、又は先のアニメーション画面の画像に渡る変更のビットマップを変更に対して示された位置で表示する。
【0472】
符号15106及び15108によって示された様に、クライアントがユーザ入力を受信すると、その入力をゲームサーバに、入力が適切に変換される様に関連付けられた画面座標と共にアップロードする。
【0473】
本発明のこの特徴の他の実施形態では、ゲームサーバとゲームクライアントとの間の機能の分担は異なり得る。幾つかの実施形態では、上述されたものに一般的に類似したプロキシサーバは、プロキシサーバとは異なるゲームサーバ上で元々生成されたゲームコンテンツの薄型クライアント上での表示のために、副画素最適化を実行することに使用される。さらに他の実施形態では、ゲームクライアント自身が副画素最適化を実行し得る。
【0474】
図152は、関連する透明性マップを持つ画像が、前景画像及び透明性画像の両方の副画素最適化で表示出来る様にする本発明の1つの特徴の、大幅に簡略化された擬似コード表記である。
【0475】
図152のプログラム15200は、前景画像のスケーリング副画素最適化ビットマップを生成する。それは、画像、即ち、背景又は他の先のビットマップの最上部の表示が関連する透明性ビットマップで制御される表示である。使用される副画素最適化は、2色化又は多色カラー副画素最適化、或いは両方の組み合わせでも良い。画像の副画素最適化表現の生成のために知られている任意の方法が、上述した方法も含めて使用され得る。
【0476】
関数15204は、画像の関連する透明性マップの副画素最適化を実行する。好ましくは、2色副画素最適化が使用され得る。なぜならば、透明性マップの高解像度ソース画像は、3要素色空間における直線に沿って変化する透明性値(即ち、0〜1の範囲のアルファ値)を持っているからである。そのようなソース画像アルファ値はグレースケールカラーに一致する。なぜならば、もし、マップの副画素最適化出力画像での所定の画素に一致する透明性マップソース画像の領域が規則的な透明性値に重なっていれば、出力画素の副画素の全ては、等しいアルファ値を持つ傾向にあるからしである。好ましくは、透明性マップの2色副画素最適化は、上述した非線形カラー・バランスを使用することが好ましい。
【0477】
一旦、前景画像と、それに関連する透明性マップの副画素最適化が成されると、関数15206はこの組み合わせを副画素最適化表示に表示する。この処理は、表示画像の各画素列に対してループ15208を実行することを含み、このループ各列の各副画素に対するループ15210を含む。関数15210は、各副画素に対して関数15212乃至15214を実行する。関数15212は、現在のアルファ値を、副画素最適化透明度マップの対応する副画素のアルファ値に設定する。次に、関数15214は、現在の副画素の輝度を、副画素最適化された前景画像の対応する副画素の輝度に現在のアルファ値を乗算した値に、透明度マップが描画されるべき背景ビットマップの現在副画素の輝度に(1−現在のアルファ値)を乗算した値を加算した値に設定する。
【0478】
これは、前景画像が先のビットマップ上に描画された場合に、別個の副画素の輝度の夫々の輝度が前景画像又は先のビットマップの対応副画素値から生じる程度は、副画素最適化透明度マップの対応副画素アルファ値の関数として決定されることを意味する。
【0479】
本発明の幾つかの実施形態では、透明度マップに関連する画像は、サーバ又はブラウザコンピュータ上でスケーリング及び副画素最適化され、ダウンロードされ、そして、クライアントコンピュータ上に関数15206によって表示される。他の実施形態では、その様な副画素最適化透明度画像は、記録されたデジタル情報媒体上で利用可能である。さらに本発明の他の実施形態では、上記画像は、画像を表示するのと同じコンピュータによって生成される。
【0480】
本発明の他の実施形態では、副画素最適化前景画像は、副画素最適化されていない透明度マップにおいて含まれるアルファ値を使って表示され得る。
【0481】
本発明の幾つかの実施形態では、非可逆カラー圧縮が、1つの色に知覚的に近い色のグループを表すことに使用される。そのような圧縮は、RGB要素値上に加え、1つの1次元透明度値上、図60、96及び97で上述した種類の3次元透明度(例えば、不透明度又はアルファ)値上、または、余分の色次元としての透明度要素を持つ色値上で実行され得る。このような圧縮では、アルファ値1又は0、或いは1又は0に近い値を表す透明度値又は要素色値が、夫々、1又は0から遠く離れた透明度値によって表現されるのを避けることが好ましい。これは、透明度の範囲の極端な部分での不透明性における僅かな変化に対して、その範囲の他の部分での変化に対してよりも、目が敏感であるからである。
【0482】
透明度マップを持つ副画素最適化画像は、副画素最適化されていない画像が透明度マップで使用される全ての目的に対して、副画素最適化表示(装置)上で使用され得る。これは、アニメーション及びウェブページのレイアウトにおける使用を含む。
【0483】
図153乃至162は、映像及び/又はアニメーションの副画素最適化に関する本発明の特徴の、大幅に簡略化された擬似コード表記を表している。このプログラムは、副画素最適化されるべき映像が圧縮フォーマットで受信される場合に使用される関数15302を含む。それは、映像が副画素最適化され得る様に、映像を解凍する。
【0484】
関数15304は、映像のキーフレームをスケールダウン及び副画素最適化する。関数15304は、スケールダウンするが、キーフレーム間で改竄された変更を副画素最適化しない。図153に示された、本発明のこの特徴の幾つかの実施形態では、このような改竄された変更は、副画素最適化され得るが、こうすることによる利益はほとんど無い。なぜならば、これらの変更が認識できないほどの速さで画面上に現れるからである。また、それらの副画素最適化を避けることが演算時間を削減するからである。
【0485】
関数15308は、スケールダウンされた映像を副画素アドレス可能な表示(装置)上に、副画素最適化されたキーフレーム及び副画素最適化されていないフレーム間の改竄と共に表示する。
【0486】
他の実施形態では、明確に認識されるに充分な長さの位置で画面上でに現れる映像の部分のみを副画素最適化する、この概念は、他の方法でも使用され得る。
【0487】
図154は、表示フレームに描画されるべき連続した副−全体−フレーム画像要素によって全体的又は部分的に表現された副画素最適化映像に対して使用され得る。一般的に、その様な映像もまた全体フレーム画像を含み、1又は複数のオブジェクトの動きを表すのに必要とされる画面を付加的に変更するために、一連の副−全体−フレームを使用する。これは、図149で上述した種類のアニメーションを含む。それは、また、図153で上述した一般的な種類のキーフレーム及びフレーム間の改竄を持つ映像を含む、映像圧縮の様々な圧縮を含む。
【0488】
図154のプログラムは、副画素最適化されるべき映像が圧縮フォーマットで受信され、その場合にそれを解凍する場合に使用される関数15402を含む。次に、関数15404は、フレーム画像をスケール・ファクタによってスケーリングして、映像に含まれるフレーム画像をスケーリング及び副画素最適化しする。次に、関数15406は、変更されたビットマップを、画像のサイズ及び位置の両方をスケールファクタによってスケーリングすることによって、スケーリング及び副画素最適化する。
【0489】
関数15407及び15408は、映像シーケンスにおけるスケーリング副画素最適化された映像フレームを、副画素アドレス可能な画面上に繰り返し表示する。映像フレームの表示後、フレームのビットマップ上における1又は複数の副画素最適化された変更ビットマップを、関数15406によって変更ビットマップに関連付けられたスケーリング位置において表示する。
【0490】
図154の方法によって、副画素最適化映像及び/又はアニメーションが副画素最適化に要求される演算量を低減する方法で描画され得ることが分かる。なぜならば、その方法では、映像画像に変更が加えられる度に全体フレームの副画素最適化を必要としないからである。
【0491】
図155及び156は、フレームに対して動く副画素最適化画像を表示し得る2つの異なる方法を図示している。
【0492】
図155は、固定された副画素処理を持つ画像を、副画素アドレス可能な表示(装置)上に、より大きな画像に対して全体画素の増大で動く様に表示する、プログラム15500を含む。それは、上述したものを含む任意の方法で生成され得る副画素最適化画像を蓄積し得る関数155002を含む。各連続するフレーム時間に対して実行されるループ15503を含む。このループは、関数15504及び15506から成る。関数15504は、より大きな画像に対する動きを計算する。この動きの計算では、各表示フレームでオブジェクトに対して計算された位置は、最も近い水平及び垂直方向の全体画素位置に近似され、画像のサイズ及び向きは変更されない。関数15506は、関数15504によって計算された全体画素解像度位置で画像を表示する。画像の副画素ビットマップを1つだけ計算すれば良く、画像が画面上を動くに従って単一の画像が繰り返し使用されるので、この方法は極めて演算にとって効率的である。
【0493】
図156は、副画素処理の変更によって動画を表示するプログラム15600を示している。それは、動かされるべき画像の高解像度のソース画像を蓄積する関数15602を含んでいる。それは、また、各連続するフレーム時間に対して実行されるループ15603を含んでいる。このループは関数15604を含んでおり、関数15064は、現在のフレームに対して、もし在れば、現在の変形、回転及び/又は高解像度のソース画像の変形を計算する。次に、そのループの関数15606は、変形、回転及び/又は変換されたビットマップのスケールダウン、副画素最適化ビットマップを生成する。この副画素最適化は、全体画素解像度よりも高い解像度で表示する副画素配列に対して、変換ビットマップの位置を考慮する。次に、フレームループの関数15608は、副画素アドレス可能なディスプレイ上に、結果の副画素最適化ビットマップを表示する。
【0494】
図155又は156で上述された方法の何れも、アニメーションテキストに加えて、ゲーム中でCGの移動する前景(スプライト)、又は、より大きなフレームに対して移動される他の任意のビジュアル表現を表示することに使用され得る。
【0495】
図155の方法は、より精度の低いビジュアルオブジェクトの動きの表現を提供する傾向があるが、演算処理的にはより効率的である。例えば、オブジェクトと副画素配列との間の可能なマッピングの小さなサブセットは蓄積され得り、オブジェクトが動くと、それが表示されるべき副画素配列に対する現在位置のより高解像度の表現を最も近く表す、蓄積されたマッピングの1つで表示する。
【0496】
図157及び/又は158は、副画素アドレス可能な画面上での表示のために、DVD又はHDTV映像の表示をダウンスケール及び副画素最適化することによって、DVD又はHDTV映像を最適化することに使用され得る、本発明の特徴を図示している。これは、垂直方向よりも水平方向においてより高い副画素解像度を持つ副画素アドレス可能な画面と共に使用されるときに特に有用である。なぜらならば、DVDもHDTVも、共通に高いと言うよりは実質的に幅広いアスペクト比を持っているからである。
【0497】
図159は、異なる属性を持つ別個のオブジェクトとして映像画像の副要素を表す映像フォーマットに適用され得る、本発明の特徴を図示している。図159の特別な例は、MPEG−4の映像の表示を副画素最適化するプログラム15900を含んでいる。
【0498】
図159に示されたプログラムは、MPEG−4映像を受信及び解凍する関数15902を含んでいる。それは、MPEG−4映像において異なる種類のオブジェクトをスケールダウンするときに、異なる副画素最適化方法を使用する関数15904及び15906を含んでいる。この関数は、2色オブジェクトに対して、好ましくは非線形カラー・バランスで、2色副画素最適化を使用し、多色オブジェクトに対しては多色副画素最適化を使用する。関数15908は、図155及び/又は156で上述された種類の方法を使用して、副画素最適化オブジェクトを画面に対してMPEG―4表現によって指示される様に動かして、2色及び多色オブジェクトの組み合わせを副画素最適化画面上に表示する。
【0499】
本発明の幾つかの特徴は、MPEG―4データストリームにおける異なるオブジェクトタイプに対する異なる副画素最適化アルゴリズムの使用に限定されない。しかし、異なる副画素最適化アルゴリズムの使用は、テキストの様な2色オブジェクトに対して、より高い知覚解像度を提供し、それ故、幾分向上した画像を提供できる利点がある。
【0500】
図160及び161は、ユーザがコンピュータネットワーク上の副画素最適化映像にアクセスするシステムに関する。
【0501】
図160は、副画素最適化、スケールダウンされた映像を提供するサーバコンピュータによって使用されるプログラム1600を図示している。そのようなサーバは、さらに他のサーバから、クライアントから要求された映像にアクセスし、そして、クライアントにダウンロードする前に、ダウンスケール及び副画素最適化するプロキシサーバであり得る。他の実施形態では、副画素最適化画像の提供は、中間のプロキシサーバなしに実行される。
【0502】
図160のプログラムは、映像を得るための要求をクライアントコンピュータから受信する関数16002を含む。多くの実施形態では、図160に示された様に、この要求は、映像が副画素最適化されるべき、水平方向及び垂直方向の副画素解像度をも記述している。サーバが、固定された副画素解像度を持つクライアントのセットにのみ提供する様な実施形態では、上記の様な解像度の情報は要求の一部として必要ない。
【0503】
関数16004は、要求された映像コンテンツを受信する。これは、以下の様に実行される。即ち、上述したリモートサーバからコンテンツにアクセスすることによって;サーバコンピュータに備わったRAM又は大規模記憶手段のコンテンツにアクセスすることによって;コンテンツを動的に生成することによって;又は、幾つかのソースから供給された映像を選択することによって、実行される。
【0504】
関数16006は、関数16002の要求に伴う副画素解像度に、受信映像をスケールダウン及び副画素最適化する。次に、関数16008は、副画素最適化映像を圧縮し、関数16010は、要求している装置に、圧縮映像をダウンロードする。
【0505】
このような副画素最適化画像に使用される圧縮アルゴリズムは、副画素最適化画像における任意の画素に伴う色値の位置が、RGB色空間内において相対的に制限された色距離よりも大きく移動しない限り、副画素最適化によって可能にされる増大された空間解像度を実質的に減少することなく、かつある量の損失を持つ圧縮を含む副画素最適化画像に対して使用される。
【0506】
図161は、図160に記載された本発明の特徴に使用されるシステム16100を表している。このシステムは、図161において大幅に簡略化された擬似コード表記で図示されたプロキシコンピュータコード16100及びクライアントコンピュータコード16112を含んでいる。
【0507】
薄型クライアントが映像に対するユーザの要求を受信したとき、関数16113は、映像がプロキシに表示されるべき副画素解像度を含む、映像に対する要求を送ることによって応答する。プロキシが映像要求を受信すると、関数16100は、関数16103によって、映像を取得するサーバに、対応する映像要求を送る。多くの実施形態では、これは、その様な要求のURL中で同定されたサーバである。
【0508】
要求映像がプロキシサーバに受信されると、関数16104は、関数16106乃至16110を実行する。関数16106は、映像を、クライアントからの要求に伴う副画素解像度にスケーリング及び副画素最適化する;関数16108は、副画素最適化された映像を圧縮する;関数16110は、要求したクライアントに圧縮映像をダウンロードする。
【0509】
クライアントが要求映像をプロキシから受信すると、関数16114は、関数16115によって映像を解凍し、関数16116によって映像を副画素アドレス可能なディスプレイ上にダウンスケーリング及び解凍する。
【0510】
図162乃至166は、本発明の特徴がデジタルインクの出現を向上させることに如何に使用されるかを図示している。デジタルインクは、通常、ユーザがポインティングデバイスによって書く又は描画しようとすることに応答して画面上に描画される黒白のビットマップである。過去には、デジタルインクビットマップは、通常、各画素が黒、白又は幾つかのデバイスではグレースケールの値として示される全体画素解像度で表現されていた。
【0511】
本発明の1つの特徴は、デジタルインクをより高解像度で表現するための副画素最適化の使用である。デジタルインクがコンピュータメモリ内で点、及び線又は点の間の曲線によって表現された場合、結果的として生じる、点の間の線の数学的な表現は、画面の全体画素解像度よりも遙かに高い解像度を持ち得る。
【0512】
図162は、デジタルインクを見る明瞭さを最適化することに使用され得るプログラムの、大幅に簡略化された擬似コード表記である。
【0513】
デジタルインク・コード16200(図162に示された)は、ポインティングデバイスのストロークを一連の点、及び点の間の線又は曲線として記録することによって、デジタルインク描画モードの間のポインティングデバイスでのユーザ入力に対して応答する関数16202を含む。関数16206は、線及び曲線の副画素最適化を使用して、画面上にインクを描画する。これは、実質的に任意の副画素最適化方式によって実行され得るが、例えば、非線形カラー・バランスを使用する2色副画素最適化方式の様な2色副画素最適化によって実行されることが好ましい。
【0514】
図163は、ハンドヘルドコンピュータ16300の画面上に描画されたデジタルインク16302を図示している。この図示は、全体画素輝度値のみを表現可能なプリンタで印刷されるので、図163に図示されたデジタルインクは、グレースケール・アンチエイリアスの様な副画素最適化を表示する。副画素アドレス可能なディスプレイ上で見られる場合には、画像は図163に示すよりもより明瞭にさえ現れる。
【0515】
デジタルインクプログラムのユーザがデジタルインクの部分の表現のスケールアップを選択すると、関数16208は、関数16212によって、非線形カラー・バランスを伴う2色副画素最適化を使用して、デジタルインクの線及び曲線の副画素最適化ビットマップをユーザが選択したスケールアップサイズで生成する。次に、関数16212は、ユーザの画面にスケールアップ画像を表示する。
【0516】
図164は、図163に示されたデジタルインク16302の部分のスケールアップ表現16302Aを図示している。これは、図165に示されたビットマップ16302Bによって図示された様に図163に示されたデジタルインク表現16302の画素処理を単に拡大することによって生成されるよりも、実質的により明瞭なデジタルインク表現を提供する。
【0517】
図165に示されたビットマップは、実際には、デジタルインクの幾分スケールアップされた表現よりも感じが良い。なぜならば、図163で示されたビットマップは、幾つかのデジタルインク表現では使用されないアンチエイリアスを伴う全体画素グレースケールで印刷されているからである。
【0518】
ユーザがデジタルインク表現のスケールダウンを選択すると、関数16214は、関数16216によって、非線形カラー・バランスを伴う2色副画素最適化を選択されたスケールダウンサイズで使用して、インクの線及び曲線の副画素最適化画像を生成し、関数16218によって副画素アドレス可能なディスプレイ上にスケールダウンビットマップを表示する。このような処理の結果は、図166に示されたビットマップ16302Cによって図示されている。
【0519】
本発明のこれらの特徴は、オン又はオフの何れでかになる全体画素として記録されたデジタルインクを扱う様に修正され得る。これは、ルーチンに“オン”画素によって表現された各ストロークの中心線を評価させ、上述したように様々なスケールで、デジタルインクの副画素最適化・中心線画像を生成することによって実行される。より正確ではあるが演算能力を要するアプローチは、デジタルインクの連続的な部分と、線及び曲線(ベジェ曲線の様な)の対応連続部分との間の最適適合を求めることであり得る。
【0520】
他の実施形態では、副画素最適化は、ビットマップ上で副画素最適化、スケールアップ又はスケールダウンが単に実行することによって描画するデジタルインクによって生成されたビットマップ上で実行され得る。
【0521】
デジタルインクに関する本発明の幾つかの実施形態は、副画素最適化をグレースケールアンチエイリアスで置き換えることによって、副画素最適化されていない表示に使用される。
【0522】
図167は、上述した様なサーバ、クライアント、プロキシサーバ、薄型クライアント、リモート、デスクトップのコンピュータの多くにおいて含まれ得る要素を図示している。図167に示した要素の全てが、上記全てのコンピュータに在る必要はなく、ほとんどのその様なコンピュータは、図167に示したもの以外の他の要素を含む。
【0523】
この図は、本発明の様々な特徴で使用されるほとんどのコンピュータが、本発明の様々な特徴の機能を実行し、様々な特徴の方法に従ってデータ16704を読み書きするプログラム16702を実行可能な種類のプロセッサ16716を含むことを明白にするために提供される。本発明は、方法だけでなくその様な方法のコンピュータプログラムにも関し、さらには、方法を実行又はデータを使用する様にプログラム及び/又はハードウェア構成されたコンピュータシステムに関する。
【0524】
ほんんどのその様なコンピュータでは、本発明のプログラムは、RAM16706;ROM16707;又は大規模記憶手段(ハードディスクドライブ16708、フロッピドライブ16709、CD−ROMドライブ16711及び/又はDVDドライブ16713)に蓄積される。プログラムは、また、機械読み取り可能な媒体(フロッピディスク16710、CD ROM16712、DVD ROM16714、又は実質的に他の任意の機械読み取り可能な媒体)に蓄積され得る。本発明のプログラム及び/又はデータは、ネットワークインターフェース16720の様なある種の通信ポートを通じてコンピュータによって受信され得る伝送信号(符号16719によって示される)としての表現され得る。
【0525】
図168は、図60乃至97で上述された非線形カラー・バランス法を使用して生成された小さな副画素最適化フォントを示す、320×240画面による全体画素グレースケール表現を提供している。この図は、テキストの部分が破線16800で囲まれている点以外は、図56と同じである。
【0526】
図169は、破線16800内における、図168に示したビットマップの部分の8倍拡大図である。図168で示した垂直ストロークのほとんどは、フォントの明瞭さをぼかす左側でのカラー・バランス分配を含んでいる。
【0527】
副画素最適化フォントビットマップを生成する非線形カラー・バランス法の主な利点は、非線形法(カラー・バランスに必要のないカラー・バランス値の分配を実質的に防止することを目的とする)によって文字・フォント形状の不明瞭さを低減できる能力である。
【0528】
図169に示された種類のフォントの主なストロークの左に色値の拡散を観察することによって、本発明のこの特徴の発明者は、その様な拡散が低減され得るか否かを確かめようとしている。発明者は、その様な拡散のソースが何であるかを決定しようとしていた。
【0529】
図170を参照すると、非線形カラー・バランスビットマップの生成に使用されるアルゴリズムは、副画素17000の2つのパッディング列を、文字・フォント形状のラスタ化における左端の副画素列17002(実際の非ゼロカバレージ値17004(例えば、ラスタ化で表現されている文字・フォント形状の部分によって実際にカバーされている)を含む)の左に自動的に配置する様に設計されていたことを発見した。これは、カラー・バランスの色値の拡散を、非ゼロカバレージ値を含む左端の副画素の左に2つの副画素列に入れるスペースを、左方向の拡散が上述の非線形カラー・バランスアルゴリズム(全体的又は部分的にカバーされた副画素の左に2つの画素にカラー・バランスの分配をすることができる)によって要求されたときに提供する。
【0530】
不運なことに、ラスタ化副画素配列に2つの副画素列17000を当てることは、そのようなカバレージ値を持つ左端の副画素列17002を2つのパッディング画素列を含む画素列の右端の副画素列にするという、好ましくない効果を持つことになる。RGB表示では、これは、実際のカバレージ値を持つ左端の副画素列が青色副画素に対応することを招く。
【0531】
これは好ましくない。なぜならば、フォントビットマップの左端画素列の画素が、カラー・バランスを達成するために非ゼロカバレージ値の分配を要求し、実際のカバレージ値を持たない2つの最左側副画素と非ゼロカバレージ値を含む最右側副画素とを含むことになるからである。これが、図169に示された主たる垂直ストロークの左方向へのぼけである。
【0532】
本発明者は、垂直ストロークの境界が、副画素列の幅よりも鋭い増分に位置されるシステムでヒンティングされた文字・フォント形状は、図171の端(エッジ)17100(非ゼロカバレージ値17002を持つ最左側副画素列中に僅かな長さしか持たない)の様な最左側垂直ストロークの最左側端から始まるように文字・フォント形状をヒンティングする者によって設計されているということを強調する。これは、非ゼロカラー・バランスによって分配されるべき副画素列17002内に含まれる非ゼロ値の大きさを実質的に低減し、それ故、文字の副画素最適化表現における好ましくない不明瞭さを大幅に低減する。
【0533】
例えば、最良のヒンティングの組み合わせによって(その様なアルゴリズムで用いられたとき)、結果ビットマップにおける2番目の最左側画素列17103が、カラー・バランス拡散を要求しないために全体をカバーされた1又は複数の画素を持つ様に、文字の最初の垂直ストローク(図171の垂直ストローク17102の様な)が、右側で3つの連続する副画素列における全体カバレージ値を持って、1つの副画素列に僅かに入る最左側端を持つ様にすることを本発明者は発見した。
【0534】
その様な最適化されたヒンティング処理では、最初のストロークの最右側端から3,6,又は9副画素列の距離で開始する3つの隣接する副画素列に重なる様に、連続する垂直ストロークは並べられる。これによって、図171の垂直ストローク17104及び17106の様な連続する垂直ストロークが、カラー・バランスを要求しない様に、全体的に重なる複数の画素を持つ様になる。
【0535】
図168乃至171に示された種類のフォントは、従来技術の方法によって生成されたほとんどの副画素最適化フォントビットマップよりも判読性が高いが、これらの調査の結果、本発明者は、図172乃至174に示される様な、より明瞭でさえある副画素最適化フォントの生成方法を想到した。
【0536】
図172は、図168に示す種類のウェブページの、副画素最適化された、320×240画素ディスプレイを表現する、全体画素グレースケール・ビットマップを示している。但し、ここでは、フォントビットマップを生成及び表示するための新たな、より明瞭な方法を使用している。
【0537】
図173は、破線ボックス17200において示された、図172の部分の4倍拡大図を示している。
【0538】
図174は、図173の破線17300において示されたテキストの部分をさらに4倍拡大した図を示している。
【0539】
図172乃至174を見ると分かる様に、これらの図において示されたフォントビットマップに含まれる垂直ストロークの多くから発生する色値の水平方向の拡散が相対的に殆ど無い。カラー・バランスのための拡散によるものではなく、これらの図中のテキストが、背景色を持つ図172のウェブページの部分から採られたため、図173及び174における規則的な薄いグレー背景が生じることを強調する。これらの図に示されたフォントは、図168及び169に示されたものよりも実質的に明瞭である。
【0540】
本発明者は、文字の最左側垂直ストロークの最左側端を画素境界の左端に揃えることによって、この改善を行った。多くの実施形態では、図175に示される3つのパッディング副画素列17500を、非ゼロカバレージ値を含む最左側副画素列の前に挿入することによって、これが実行される。これは、文字のアウトラインによって全体的又は部分的に重なる最左側ラスタ化ユニット(例えば、副画素)を、画素列の最左側端に自動的に揃える。最左側のアウトライン・端がラスタ化ユニットの最左側端に揃えられたとき、これは、最左側アウトライン・端が、結果として生じるフォントビットマップにおける画素の最左側端に自動的に揃える。フォント・アウトラインの最左側端が垂直ストロークである場合、これによって、非線形カラー・バランス後でさえ、明瞭な最左側の垂直ストロークを持つフォントビットマップを簡単に生成することができる。
【0541】
図176は、本発明で使用され得る多くの可能なヒンティング・インターフェースの1つを示している。このヒンティングインターフェースでは、破線17602は、所望の文字に対して最左側ベアリングを相互に決定するために、ユーザによって移動され得る線である。破線17604は、右側ベアリングを決定する移動可能な線である。左側ベアリングは、文字が描画される初期の参照ポイント(時にはペンポジションと呼ばれる)と、描画される文字のビットマップの最左側端との間の距離にある。ライン17604は、テキストのラインに沿って次の連続する文字の描画の開始点に通常配置されるペンポジションにおけるビットマップに対する位置に一致する。右側ベアリングは、ライン17604と描画される文字のビットマップの最右側端との間の距離に置かれる。改善後の幅は、ライン17604とライン17602との間の距離として定義される。これは、文字のビットマップの描画前のペンポジションと後のペンポジションとの間の通常の全幅を表している。幾つかの実施形態では、左側ベアリングと改善後の長さとは、複数の画素幅の全体に近似される。但し、他の実施形態ではそうである必要はない。幾つかの場合には、左及び/又は右側ベアリング値は負になり得る。例えば、連続する文字に関連するビットマップがしばしば互いの改善幅の部分に重なる様なイタリックフォントでは、これがしばしば起こる。
【0542】
図176に示された小さな矩形ドット17606の夫々は、副画素最適化フォントビットマップにおいて、個々の副画素に対応するラスタ化ユニットの中心に一致する。この特別なヒンティング・インターフェースでは、文字・フォント形状のアウトラインに半分以上重なるラスタ化ユニットは、黒で示される。但し、さらに改善されたインターフェースでは、ラスタ化ユニットはグレースケール・カバレージ値で示され得る。文字・フォント形状のアウトラインは図に示されており、アウトライン中のセグメントを定義する各点は、コントロールポイントであるかセグメントエンドポイントであるかがナンバリングされている。
【0543】
図177乃至181は、図182に含まれる大幅に簡略化された擬似コード表記において記載されたステップの幾つかの説明の助けに使用される。
【0544】
図182は、プログラム6000Aの大幅に簡略化された擬似コード表記であり、以下の点を除いて図60の擬似コードに一般的に一致する。即ち、図182に示された擬似コードは、図172乃至176で上述された、より明瞭に非線形カラー・バランスされ副画素最適化されたビットマップを生成する改善方法に関する演算面に焦点を置いている。
【0545】
この擬似コードは関数18202を含んでおり、これは、ヒンティングによって定義されたラスタ化ユニットに対する形状の並びを考慮して、文字・フォント形状が配置され得るラスタ化ユニットの最も緊密な矩形配列を決定する。
【0546】
ラスタ化が起こる個々のラスタ化ユニットに対するフォント・アウトラインの位置は、この関数によっては変化しない。それ故、もし、アウトラインの最左側ポイントがラスタ化ユニットの最左側端以外で発生すると、ラスタ化ユニットは、関数18202によって生成される最も緊密な矩形配列の最左側端に発生し、アウトラインの最左側端は、その矩形の最左側ラスタ化ユニット列内で発生するが、最左側列の最左側端では発生しない。
【0547】
図177及び178は、この関数の説明の助けとなる。図177は、ヒンティングされた文字・フォント形状のアウトラインに対応する。図178は、図177に示された文字アウトラインに対する関数18202によって返される、ラスタ化ユニット(夫々副画素のサイズに一致する)の矩形を示している。このグリッドは、文字・フォント形状を含むラスタ化ユニットが適合する最も緊密な、最も小さい、矩形に一致する。
【0548】
一旦、関数18202が完了すると、関数6002A乃至6006が実行される。これらは、図60のステップ6002乃至6006に一致する。それらは、関数18202によって返される、矩形に含まれる各ラスタ化ユニットに対するカバレージ値を決定することに使用される。
【0549】
図179は、図178に示された配列における各ラスタ化ユニットに対して計算されるカバレージ値を図示している。そこでは、黒に色付けられたラスタ化ユニットの割合によって表現される。図179では、文字・フォント形状アウトラインによってカバーされるユニットの対応する部分がラスタ化ユニットの最上部に発生するとき、カバー範囲を表す各ラスタ化ユニットにおける結果の棒グラフの部分は、ユニットの最上部に置かれている。
【0550】
図180では、個々のラスタ化ユニットの全てについての棒グラフは、上述した図46乃至52、及び92乃至93に示されたカバレージ値の表現により近く対応させるために、対応する副画素ユニットの最下部において開始される。
【0551】
一旦、文字・フォント形状がラスタ化されると、ステップ18204は、副画素カバレージ値の結果配列を副画素アドレス可能な画素にマッピングする。これは、上述の緊密な矩形におけるラスタ化ユニットの最初の列を画素列の左端に揃えることによって行われる。これによって、非ゼロカバレージ値を持つラスタ化ユニットの左端列が、図175で上述された全体画素において最左側副画素列として配置される様になる。図177乃至181で図示された例では、これによって、結果として生じる副画素配列が、図181において18102と付された中央の画素列において示される様に現れる様になる。
【0552】
次に、ステップ18206は、現在文字に対して生成されているビットマップ配列を、実際の非ゼロカバレージ値を持つ最左側副画素列を含む画素の左にある3つの副画素列から成る画素列に当てる。これによって、この例の副画素配列が、図181の画素列18104及び18102の組み合わせによって示される様に現れる。
【0553】
次に、ステップ18208は、画素列の合計が3の偶数倍(全体画素列の偶数倍)になる様に、ビットマップ配列の右に2以上の副画素列を当てる。これによって、この例の副画素列が、図181の画素列18104,18102,及び18106の組み合わせによって示される様になる。
【0554】
ステップ18210は、パッドされた画素列の追加を補償するように、左及び/又は右側ベアリング値を調整する。それ故、例えば、1画素幅の左側ベアリングを追加で有するビットマップは、左側のパッディング列の追加を補償するためにゼロの左側ベアリングを持つ様に変更される。同様に、右側に追加された余分の画素列を持つビットマップは、1画素幅だけ右側ベアリングを減少させる。
【0555】
次に、関数18212は、非線形カラー・バランス(多くの実施形態において、上記図60のループ6008で記載されたステップに一致する)を実行する。
【0556】
一旦、これが実行されると、上記図96で記載した種類のパック色値を使用する実施形態では、ステップ18214は、カラー・バランス処理後に生じる画素色値を、より制限された色パレットの対応値に変換する。
【0557】
図182の方法によれば、図168乃至169で上述した不要な色拡散を生じることなく、カラー・バランスに必要な空間を与える。ラスタ化されるフォント形状に重なる領域に対応する副画素の左及び右の少なくとも2つの副画素が存在することを確実にすることによって、これを実行する。
【0558】
本発明の本特徴の他の実施形態では、非線形カラー・バランスが不明瞭さを低減する能力を最大限に利用するために、他の方法が、フォント形状の最左側端及び最右側端と、垂直ストロークとを全体画素の境界に揃えることに使用される。そのような幾つかの実施形態では、パッディング画素列がフォントビットマップの左側又は右側の何れに追加されるかは、カラー・バランス分配がその列において必要とされるか否かの関数であり得る。
【0559】
図183は、図182で記載された方法によって生成されたビットマップを使用して、文字のストリングを描画するための関数を記載している。この擬似コードは、以下の点を除いて、図97で上述したものに類似している。相違点は、図182で記載したより明瞭な非線形カラー・バランスされた副画素最適化フォントを生成するための方法に極めて有用な本発明の特徴に焦点を置いていることである。
【0560】
図183に示される描画ストリング・関数が呼び出されると、ステップ18202は、ペンポジションを、ストリングの表示が開始する場所を示す描画ストリングコールによって特定される開始点に設定する。
【0561】
次に、ループ9714A(図97で記述されたループ9714に類似する)が、表示する各文字のストリングについて実行される。
【0562】
このループにおいて、ステップ9716は、現在文字のフォントビットマップにアクセスする。次に、ステップ18204は、文字の開始点を現在のペンポジションに設定する。次に、ステップ18306は、左側ベアリングによって現在のペンポジションを調整する。上記で述べた様に、左側ベアリングは、文字ビットマップが左側に余分な1つの画素列が当てられている事実を考慮するために通常のものから変更されており、それ故、1画素列の幅だけ減少されている。
【0563】
次に、ステップ9718Aは、フォントビットマップにおいて各画素に対して実行される。これは、現在画素の値が非ゼロであるか否かをテストするサブステップ18208を含んでいる。もし、現在画素の値が非ゼロであれば、画面上で、現在のペンポジションの関数として定義された位置に画素を描画する。
【0564】
もし、現在画素の値がゼロであれば、それは全体的に透明な画素を表している。現在画素の位置において先に背景色が変わらずに残されていることを意味する。本発明のこの実施形態では、図96に記載された関数は、その様に全体的に透明な画素を表すために、ゼロの値を保持している。
【0565】
透明な画素を書き込まないこの実施方法は、図183で記載された実施形態において、ビットマップの全ての画素に適用される。この実施方法は、図182で上記したステップ18206によって、文字・フォントビットマップの最左側端に置かれるパッディング列における画素に関して特に重要である。これは、その様なパッディング列の画素は、一般に垂直ストローク境界が垂直画素境界に揃えられる場合に非線形カラー・バランスの結果としてそれらの画素に拡散される色値を持たないからである。その結果、そのような画素は透明であり、文字による位置においてその画素の左に置かれている色値は変化しない状態であり、カバー範囲又はカラー・バランス情報を含む隣接する文字の画素列が互いに近接して置かれる様になる。
【0566】
これは、例えば、図173の符号17302によって示される位置において見られる。ここでは、単語“Web”の“w”と“e”の間の画素列は、“w”からの色値を含んでいる。“Web”は、透明な、それ故書き込まれていない、“e”の左側パッディング列を通じて示されうる様になっている。これは、図174の符号17402によって示された位置でも見られ、そこでは、“r”と“e”との間の画素列は、“e”の透明なパッディング画素列に重なっていない“r”からの色値を含んでいる。
【0567】
当業者が認識する様に、関数9718Aは、ビットマップの夫々を適切な位置に描画するために、画素が描画される位置がフォントビットマップの各行に対して繰り返される様に制御するある種の反復を要する。
【0568】
本発明の他の実施形態では、単に、連続する文字の対応画素が透明である場合に1文字からの非透明色値が透けて見えることを許可するよりも、隣接文字からの非透明画素値が結合される様に重ねることを許可する機能が提供され得る。
【0569】
このような処理は、副画素対副画素に基づいて透明度値の結合を許可することが好ましい。このような処理は、より演算能力を要するとしても、接近して配置された文字のさらにより高い精度の表現を提供し得る。
【0570】
この結果を得る1つの方法は以下の通りである。文字間で重なる画素の3つの対応アルファ要素値の夫々を、要素値を最大可能値で切り捨てて加算する。そして、その後、幾らの前景値及び背景値でその場所に描画されるかを決定するために、組み合わされた要素アルファ値を使用して、結果として得られる画素の夫々を描画する。
【0571】
図184は、より明瞭な非線形カラー・バランスフォントビットマップを提供する方法における他の実施形態を図示している。それは、以下の点を除いて、図176で上述したものと同様のヒンティング・インターフェースを図示している。その点は、ユーザによって移動可能な線又はコントロールから成るインターフェース機能18402を含む点である。このコントロールによって、ユーザは、最左側パッディング画素列に続く画素列の最左側端に揃う様な場所を、文字・フォント形状アウトラインに対して選択的に配置出来る様になる。
【0572】
この様なインターフェース機能は、垂直ストローク以外の最左側端を持つフォントをヒンティングする際に、より求められる。例えば、全画素幅以下の範囲で左側端から突き出した小さな上下の髭線(セリフ)を持つ最左側主垂直ストロークを持つ文字・フォント形状を扱う場合、ヒンティング者は、垂直ストロークの主たる最左側端を、より左のセリフよりも、全体画素境界に揃えたいと考える。図184に示されたこのインターフェース機能は、このような整列をヒンティング者にとって容易なものにしている。
【0573】
ヒンティング者に均等な能力を与える他の方法は、図170又は171に上述された様に、2つの副画素パッディング列だけの追加、又は図175、181及び182に上述された様に3以上のその様な副画素パッディング列の追加の何れかを選択出来る様にすることである。
【0574】
非線形カラー・バランス副画素最適化画像をより明瞭にするための今述べられた方法は、図172乃至174に示された種類の小さなフォントに適用可能であるだけではなく、図55に示された比較的大きなフォントの様な、より大きなフォントにも適用可能である。
【0575】
副画素最適化は、通常、フォントビットマップを3つの異なる種類の副画素:前景画素、背景画素、及び中間的にカラー・バランスされた画素だけで表現する。前景画素は、表現されるフォント形状によって全体的に覆われるフォント画像の部分を表現し、文字が表現される前景色で描画される。背景画素は、フォント形状によって全体的に(ほとんど)覆われないフォント画像の部分を表現し、その上にフォントが示される背景の色で描画される。中間画素は、フォント形状によって部分的に覆われ、及び/又は近傍の画素に対するカラー・バランス分配を受け取った画素を表現している。副画素の夫々の色は、カラー・バランスによって別々に決定される。
【0576】
図46,47,52及び93で上述された種類の従来技術の線形カラー・バランスがフォントに適用された場合には、文字形状の端が画素境界に完全に揃えられているときでさえ、カラー・バランスが、副画素色変化の方向で文字形状の各端を横切って実行される。如何に良好にヒンティングしても、これによって全ての文字形状の空間不明瞭度を生じる。
【0577】
図48,49,51,及び91で上述された種類の非線形カラー・バランスが適用された場合には、カラー・バランスによって生じる空間的な不明瞭さを大幅に低減する様にヒンティングが使用され得る。端が画素境界に揃えられている文字形状の部分では、カラー・バランス分配が画素境界を越えて要求されないことが多い。これは、非線形カラー・バランスが、所定の副画素内で発生するカラー・アンバランスを分配するのみであるからである。これによって、前景画素は、その場所における副画素色変化の方向に沿って背景画素の次に配置され、フォント形状の知覚可能な明瞭度を大幅に向上させる。これは、図173及び174において示され、そこでは、これらの図で示された8画素/emにおける垂直ストロークの実質的な部分は、これらのストロークの端が画素境界に揃えられる様にヒンティングされる。その結果、前景画素は、多くのその様な垂直ストロークの実質的な部分に沿って、水平方向において背景画素の次に配置される。図168及び169で示された、最左側垂直ストローク端の最適ではないヒンティングでさえ、カラー・バランス不明瞭度の大きさは、従来技術の線形カラー・バランスから生じる不明瞭度の大きさよりも実質的に小さい。
【0578】
図185乃至190は、大幅に簡略化された擬似コード表記であり、この擬似コード表記は、特に、比較的小さい又は比較的低解像度の画面上でブラウズが実行される場合に、ウェブページのブラウズの向上に使用されるユーザインターフェースの改善に関するものである。
【0579】
図185は、図129乃至134で上述された選択テキストリフロー方法のより高度なレベルの表現である。この方法18500は、ウェブページのコンテンツにアクセスする関数18502と、ウェブページ内のテキストについて示された異なる水平方向の場所にテキストを置いて、ウェブページのコンテンツの最初のレイアウトを実行する関数18504とを含む。ウェブページの記述に使用されるマークアップ言語は、テキストの異なる部分が、異なる水平方向の場所又はウェブページの異なる水平方向の範囲に描画される様に指示する複数の方法(2つだけ挙げるとテーブルとフレームの使用を含む)を有している。
【0580】
一旦、その様なレイアウトが実行されると、関数18506は、レイアウトの要素を、所定のスケール及び最初のレイアウトで決定される相対的な位置に表示する。この表示が実行された後、ステップ18508は、最初のレイアウトの表示における所定の水平方向位置でテキストの部分を、ユーザが選択出来る様にする。これを可能にする1つの方法は、図130で上述されている。
【0581】
その様な選択が成されると、関数8510は、関数18512及び18514を実行する。関数18512は、ユーザによって選択された2番目のレイアウトを実行する。2番目のレイアウトは、新しい列のラインを横切って選択テキストをリフローする。そこでは、テキストは、異なる、通常、列のラインの幅に対してより大きいフォントサイズを持つ。この2番目のレイアウトが実行されると、関数18514は、新しい列のレイアウトを、ウェブページが表示される画面又は画面ウィンドウの幅の少なくとも2/3を満たすスケールで表示する。
【0582】
図135乃至137で上述した様に、選択テキストリフロー方法での2番目のレイアウトによれば、ユーザは、ウェブページのレイアウトの選択部分を、大きく容易に読めるフォントサイズで見ることができる。これは、低解像度画面、小さな画面、及び/又は視認者から相対的に遠い画面上において大きな利点である。その方法の最初のレイアウトによって、より通常に近い画面ではウェブページがどの様に見えるように設計されているかをユーザが見ることが可能になり、より大きいフォントで再表示して見たいテキストの部分をユーザがより素早く選択可能になる。
【0583】
図186は、図118乃至120で上述した一般的な種類のズーム・ツー・フィット方法18600の、高度な水準の擬似コード表記である。
【0584】
この方法は、ウェブページのコンテンツにアクセスする関数18602と、ウェブページのコンテンツをレイアウトする関数18604とを含んでいる。
【0585】
一旦、その様なレイアウトの表示が画面に示されると、関数18608によって、ユーザは、この画面を横切ってポインティングデバイスをドラッグ出来る様になる。その様なドラッグ中、もし、画面端に在る境界を横切ってドラッグが続くと、関数18610は、関数18612によって、画面端の他の側で以前には画面になかったレイアウトの部分を画面中にスクロールする。これが実行されると、ユーザは、現在の画面スケールでは画面に全体的に適合するには大きすぎる、又はドラッグの開始点にあって一部のみが画面上にある、レイアウトの部分をドラッグによって選択出来る様になる。
【0586】
ユーザがドラッグを離すと、関数18614は、関数18616及び18618を実行する。これらの最初は、レイアウトの一部をドラッグの開始と終了とに一致するレイアウトにおける位置に基づいて選択されて定義される様にする。その様な選択部分は、ドラッグの水平又は垂直方向の範囲を持つレイアウトの部分、又は、ドラッグの開始及び終了に対応する対角上の隅を持つ領域に一致し得る。そして、関数18618は、レイアウトの選択部分を、実質的に画面に適応する様なスケールで表示する。
【0587】
図187は、ユーザがウェブページのレイアウトの表示内で容易に探索できるドラッグスクロール方法18700の高水準の擬似コード表記である。
【0588】
この方法は、ウェブページのコンテンツにアクセスする関数18702、ウェブページのコンテンツのレイアウトを実行する関数18704、及び所定のスケールファクタでレイアウトの全部又は一部を表示する関数18706を含んでいる。その後、関数18708は、ユーザが、レイアウトの表示を横切って、ポインティングデバイスをドラッグできるようにする。関数18710は、画面端の境界を横切るドラッグに応答し、画面端を超えて、以前には画面に無かったレイアウトの部分を画面上にスクロールする。
【0589】
この方法は、ズーム選択関数の一部又はそれから独立して使用され得る。これの利点は、表示画面の端、又は表示画面の端の近傍を横切ってポインティングデバイスを単にドラッグさせることにより、ウェブページのレイアウトの表示を、ユーザがスクロール出来る様になる点である。
【0590】
図188は、クリック−ズーム方法18800の高水準擬似コード表記であり、この方法では、ユーザは、ウェブページのレイアウトの所望の部分に素早くズームインすることを選択できる。この方法は、ウェブページのコンテンツにアクセスする関数18802、ウェブページのコンテンツのレイアウトを実行する関数18804、及びウェブページのレイアウトの全部又は一部を最初のスケールで表示する関数18806を含んでいる。関数18808は、ユーザがクリックして、最初のスケールでのレイアウトの表示において選択部分にデバイスを指定可能にし、関数18810は、クリックが実行されたレイアウト中の場所の周囲のレイアウトの部分のズームイン表示を実行することにより、クリックに応答する。一般的に、ズームイン表示は、クリックされたレイアウトの場所を中心に置かれる。
【0591】
図189は、ズームクリック方法18900の大幅簡略化擬似コード表記であり、これは図121乃至128で上述されている。
【0592】
この方法は、ウェブページのコンテンツにアクセスする関数18902、コンテンツのレイアウトを実行する関数18094、及び連携するポインティングデバイスを持つ表示画面上に最初のスケールで、ウェブページのレイアウトの一部又は全部を表示する関数18906を含む。図189に記載された、この方法の特定の実施形態では、画面はタッチスクリーンであり、ポインティングデバイスが人の指であり得ることを意図している。
【0593】
一旦、最初のスケールでのレイアウトの表示が実行されると、タッチ画面ディスプレイに対して押下が実行された場合に、関数18908が応答する。その様な押下が発生すると、この関数は、関数18910乃至18922を実行する。
【0594】
関数18910は、画面上で、最初のスケールでのウェブページの部分の表示を、より大きなスケールでのウェブページの部分のズームイン表示に置き換える。このズーム部分は、タッチ画面押下によるレイアウトでの選択位置を含む。選択レイアウト位置は、最初のスケールでの選択時において持っていたのと実質的に同じ位置を、ズームイン表示での画面上で持つことが好ましい。実質的に同じ位置によれば、選択位置は、画面上で同じ位置の接触に対応するズームの直前及び直後の両方での画面上で場所を持つはずである。選択位置の画面の場所での変化は、ズームの直後で、画面の幅又は高さの20%以上を変更しない。
【0595】
一旦、ズームイン表示が示されると、関数18912は、ウェブページレイアウト中の接触による選択場所を示すために、画面が接触されている場所の上方にカーソルを表示する。幾つかのタッチ画面デバイスでは、特に、比較的精密な点を持つスタイラスでの使用に設計されたデバイスでは、その様なカーソルの必要はない。なぜならば、ユーザは、画面が接触されている点を極めて正確に見ることができるからである。しかし、ポインティングデバイスとして指での使用に設計されたタッチ画面では、ユーザが、接触による画面表示での位置を正確に確認出来る様に、画面が接触される位置上方にカーソルを配置することが、しばしば好ましい。これは、図121乃至128で表示された様なディスプレイ、即ち人間の指のサイズに比べると比較的小さい表示でこの方法が使用される場合に、特に好ましい。
【0596】
接触が続く間、関数18914は、対応してズーム表示中でカーソルを移動させることによって、接触のどんな動きにも応答する。また、接触が続く間、関数18016は、画面端の境界を横切る接触の動きに応答し、画面上に、画面端を越えて、以前は画面に表示されていなかったレイアウトの部分をズームスケールでスクロールする。これによって、ユーザは、ズームクリックモード中、ウェブページのズーム画面内で素早くかつ便利にスクロール出来る様になる。
【0597】
関数18918は、ユーザが、ウェブページのズーム表示中の所定の位置で接触を離した場合に応答する。もし、接触を離した場合、関数18920は、あたかも離した位置に一致するウェブページ中の位置においてポインティングデバイスのクリックが発生したかの様に動作する。例えば、ウェブリンクに対応するレイアウト位置で離した場合、システムはリンクを選択することによって応答する。又は、ラジオボタンの位置で離した場合には、システムは、ラジオボタンの状態を反転させる。
【0598】
一旦、これが実行されると、関数1899は、画面上のズームインレイアウトの表示を、ポインティングデバイスの押下が関数18908によって検知される前にウェブページが表示されていた同じ最初のスケールファクタでのレイアウトの表示に置き換える。
【0599】
図121乃至128で上述した様に、ズームクリックは、選択部分のコンテンツを読みやすくかつポインティングデバイスで正確に選択し易くするズームインスケールで、ウェブページの所望の部分を素早く見ること及び選択することが、ユーザにとって可能に成る様にする重要な技術を提供する。
【0600】
図190は、方法19000の大幅簡略化・擬似コード表記であり、この方法によれば、ユーザは、テキストラインを表現するためにグリーキングを使ってウェブページのズームアウトビューを見ることができる。グリーキングは、判読不能なグラフィック表現でテキストの部分が文書中にレイアウトされるサイズの表現である。
【0601】
この方法は、ウェブページのコンテンツにアクセスする関数19002、ウェブページのコンテンツのレイアウトを実行する関数19004、及びウェブページのコンテンツのレイアウトを表示するためにユーザが選択したスケールを検知する関数19006及び19014を含む。
【0602】
もし、ユーザがウェブページのレイアウトを所定のより大きいスケールで表示させることを選択した場合、関数19006は、関数19008によって、ウェブページのレイアウトの部分をそのより大きなスケールで表示させる。これは、レイアウト画像をより大きなスケールでの表示のためのビットマップ画像で表現する関数19010と、より大きなスケールでの表示に適したサイズを持つ別のフォントビットマップから構成されたビットマップでウェブページのストリングのレイアウトを表現する関数19012とを実行することを含む。
【0603】
一方、もし、ユーザが、所定のスケール、少なくとも幾つかのウェブページのテキストが判読可能なサイズのスケールで表示できない程小さいスケールを選択すると、関数19014は、関数19016によって、ウェブページのレイアウトの部分をより小さいスケールで表示させる。これは、より小さいスケールでの表示のためにスケールダウンされたビットマップ画像でレイアウト画像を表現する関数19018と、少なくとも幾つかのストリングを、グリーキングテキスト表現(より小さいスケールでの表示における個々のストリングのサイズ及び位置を指示する)で表現する関数19020とを実行することを含む。
【0604】
多くの場合、グリーキングにおけるストリングの表現に使用されるビットマップは、小さいスケールでのウェブページのレイアウトにおける対応するストリングのサイズに一致する幅及び/又は高さを持つ単なる線又は矩形である。
【0605】
テキストが小さすぎて読めないサイズでレイアウトが表示された場合、テキストのグリーキング表現は、表示をより容易かつ快適に見れる様にし、グリーキングは、一般に、判読不能に小さなフォントビットマップから対応するストリング画像を生成するよりも、少ない演算能力を使う。
【0606】
図190に示された方法の主な使用の1つは、ユーザがウェブページのレイアウトの概略を見ることを可能すること、及び、ウェブページの異なる部分を素早く選択可能にすることである(図136乃至137で上述した様に)。
【0607】
コンピュータユーザインターフェースの当業者は、図185乃至190に記載された方法の幾つかは、互いに組み合わせた形態、及び単一ユーザインターフェースモードの一部として上述した本発明の他の特徴を組み合わせた形態で使用され得ることが分かるであろう。しかしながら、他のものは、異なるユーザインターフェース又は異なるユーザインターフェースモードで通常使用され得る。
【0608】
前述の記載及び図面は、単に説明及び図示のために使用したものであり、本発明は、添付の特許請求の範囲の解釈がそう限定することを除いて、前述の記載及び図面に限定するものではない。開示を得た当業者は、本発明の目的を逸脱しない範囲でそこに修正及び変形をなし得る。
【0609】
本出願に係る本発明は、広く特許請求した様に、任意の1種類のオペレーティングシステム、コンピュータハードウェア、又はコンピュータネットワークでの使用に限定されず、それ故、本発明の他の実施形態は、異なるソフトウェア及びハードウェアシステムを使用可能である。
【0610】
さらに、以下の特許請求の範囲に記載されたプログラムの動作、実質的には全てのプログラムの動作は、多くの異なるプログラム、データ構造によって、実質的に異なる組織又は手順で実行され得る。これは、プログラムが極端に柔軟な技術であり、複雑な発想も、一旦、当業者に理解されてしまえば、実質的に無制限の方法で現れるからである。特許請求の範囲は、図面に記載されたステップ及び/又はステップの順番そのものに限定することを意味している訳ではない。上記記述において記載された擬似コードは、当業者が、不要な詳細で負担を負うことなく、本発明を実施するために知る必要のある事項をより効率的に伝えるために大幅に簡略化している点で、特に顕著である。その様な簡略化の点では、上述した擬似コードの構造は、プログラマーである当業者が本発明を実施する際に使用する実際のコードの構造からは大きく異なる。さらに、明細書中のソフトウェアで実行されるプログラムされた動作の多くは、他の実施形態ではハードウェアで実行され得る。
【0611】
上記で議論した多くの実施形態では、本発明の様々な特徴は、共に発生する様に示されているが、本発明のこれらの特徴の他の実施形態では別々に発生しても良い。本明細書の様々な部分において記載された副画素最適化及び非線形カラー・バランスの様々な図示は、垂直方向の副画素ストライプを持つRGB副画素アドレス可能な表示に関する。非線形カラー・バランス及び副画素最適化に関連する本発明の改善の多くは、水平方向の副画素ストライプを持つ副画素表示(装置)と同様に、BGR又は他の種類の副画素アドレス可能性を持つ副画素表示(装置)でも使用され得る。
【0612】
上記で示した非線形カラー・バランスにおいて、カラー・バランスによって分配された副画素の輝度の部分は、画素内での最小副画素輝度よりも高い部分のみである。しかし、他の実施形態では、画素内でカラー・アンバランスを引き起こす副画素の輝度の他の部分(画素における中間又は最大の副画素輝度からの差分)が分配され得る。この様な実施形態では、中間又は最大より低い副画素輝度は、結果として、副画素の近傍において副画素輝度の重み付けられた減少分によって分配される負の輝度値である。上記に示した非線形カラー・バランス法は、副画素に対応する画素内でのカラー・アンバランスを引き起こす副画素輝度の部分を分配するのみである。これは、全体画素内で共通に発見される3つの連続するRGB又はBGR副画素の配列は知覚的に良好にカラー・バランスされているからである。もし、全体画素の副画素が同じ輝度を持っていれば、緑色が真ん中でない順番で同じ強度で示された同じ色の副画素の孤立したセットよりも人の目にカラー・バランスして見える。これは、全体画素の境界以外で現れるフォントの端がカラー・アンバランスして見える理由の1つである。
【0613】
しかし、他の非線形カラー・バランスの実施形態は、個々の全体画素内でのカラー・アンバランスを引き起こす副画素輝度の分配に制限する必要はない。他の非線形カラー・バランスの実施形態は、全体画素以外の領域内での副画素カラー・アンバランスの程度を決定し、そのような領域でのカラー・アンバランスに全体的又は部分的に基づいて副画素カラー・アンバランス値を分配することができる。例えば、一般に起こる複数のカラー・アンバランスのパターンに対して、カラー・バランスの知覚を維持しつつ、最小の空間的な拡散を生成する、カラー・アンバランスの分配を見つける調査が実行され、知覚的に選択された分配が全体画素以外の空間的な領域で発生するカラー・アンバランスを分散するために使用され得る。
【0614】
本発明のある特徴は、個々の画素に対してライン・カバレージ値によって輝度値を計算する副画素最適化画像の生成及び使用に関する。ライン又はエリアによるカバー関数の特定の記載なしに以下に請求した本発明の他の特徴は、副画素輝度を決定する方法に限定されるものではなく、例えば、カラービットマップ、グレースケールビットマップ、フォント、及び他の形状から成るソース画像のカバレージ値を決定する他の公知の方法(領域サンプリング技術を含むが、これに限定されない)を使用することができる。
【0615】
上記議論では、輝度値又はカバレージ値の副画素最適化ビットマップへの割り当てに使用されるソース画像ウィンドウは、矩形であり、多色副画素最適化画像において全体画素に一致するサイズを持ち、2色最適化画像において副画素に一致するサイズを持つ。他の実施形態では、異なる形状及びサイズのウィンドウが使用され得る。例えば、多色副画素最適化画像のソース画像ウィンドウは、全体出力画像画素に一致するサイズよりも幾分小さいサイズを持っても良い。幾つかの実施形態では、不規則な重み付け関数は、ソース画像ウィンドウ内のカバレージ値又は輝度値を出力画像のカバレージ値又は輝度値に変換することに使用される。例えば、多色副画素最適化画像では、サイズ及び位置が、輝度を決定する副画素に一致するソース画像ウィンドウの部分における輝度により重み付けをすることが好ましい。事実、図17乃至19で上述したライン・カバレージ配置は、中心重み付けを提供している。なぜならば、ライン・カバレージ値を決定しようとしている副画素の位置に一致するソース画像ウィンドウの部分を通じてのみ垂直線が延びているからである。
【0616】
本発明の多くの特徴は、副画素最適化の使用に明確に関連しているが、多くの他の特徴は副画素最適化に基づいていない。本発明の幾つかのその様な特徴では、副画素最適化を含まないアンチエイリアスの形態が使用され得る。副画素最適化を含まないアンチエイリアスの形態では、アンチエイリアスなしに提供され得るよりも高い解像度を持つ様に画像を表す。フォント画像の場合には特に顕著である。例えば、em当たり7画素の大きさのフォントは、正しい形状を持ち、適切にヒンティングされ、アンチエイリアスを使用した(副画素最適化と共に又は副画素最適化なしに)場合には、比較的容易に判読可能である。但し、適切な副画素最適化は、小さなフォントをより判読容易にする。
【0617】
“screen”を参照する明細書及び請求の範囲では、特に、スケールダウン画像、テキスト、又はウェブページのレイアウトが表示される画面は、一般には、画面全体又は画面上のグラフィックウィンドウの様な画面の部分も含む。例えば、参照されるスケールダウン画面画像は、かなり大きな画面上のウィンドウの中に示され、又は例えば図114に示すツールバーの様なある種のグラフィカル・ユーザ・インターフェースにスペースが使用された後に残った小さな画面の部分上に示されても良い。また、本発明のある副画素最適化の特徴は、非副画素最適化技術で可能なより高い空間解像度でコンテンツを見せる様に、大型画面の全部又は実質的な部分を横切って画像及び/又はテキストを表示することに使用され得る。
【0618】
本発明の幾つかの実施形態は、特に、デジタル・コンテンツを仮想解像度でレイアウトし、スケールダウン解像度で表示することに関連している。本発明の他の特徴では、デジタル・コンテンツの画像及びテキストは、レイアウト前にスケールダウンされ、それらが見られるべき実際の解像度でレイアウトされることが好ましい。
【図面の簡単な説明】
【0619】
【図1】特に、比較的低解像度のシステム上における、ウェブブラウズ及び/又は他の種類のコンピュータで作成されたコンテンツの表示を向上させるための本発明の1つの特徴に従って使用される処理を示す図。
【図2】携帯ブラウザ、プロキシサーバ、ウェブサーバ及びフォントサーバを有する、本発明が実行可能なネットワークコンピューティング環境を示す図。
【図3】ブラウザ及びウェブサーバを有する、本発明が実行可能なネットワークコンピューティング環境を示す図。
【図4】ブラウザ及びウェブサーバを有する、本発明が実行可能な第2のネットワークコンピューティング環境を示す図。
【図5】ブラウザ及びウェブサーバを有する、本発明が実行可能な第3のネットワークコンピューティング環境を示す図。
【図6】表示されるべき標準のウェブコンテンツと、そのコンテンツをスケーリング及び/又は副画素最適化するための処理を含むブラウザ機能とを有する、本発明が実行可能なコンピュータシステムを示す図。
【図7】表示されるべきコンテンツ、そのコンテンツをスケーリング及び/又は副画素最適化するためのプロキシ処理、及びブラウザ機能を有する、本発明が実行可能な他のコンピュータシステムを示す図。
【図8】前もってスケーリング及び/又は副画素最適化されたコンテンツを有する、本発明が実行可能な第2の他のコンピュータシステムを示す図。
【図9】従来の垂直ストライプ型RGB液晶表示装置を示す図。
【図10】図1のステップ108及び112のそれぞれに関して参照された画像及びテキスト両方の副画素最適化の実行に含まれる、本発明の特徴の幾つか。
【図11】320×240カラー表示(装置)上で標準のウェブコンテンツを表示させる場合における本発明の本実施形態によって、提供される判読性の水準を示す図。
【図12】ソース画像102の一部に渡る、画素と副画素グリッドとのマッピングを示す図。
【図13】図12のマッピンググリッドの部分の拡大図。
【図14】低解像度の表示(装置)の赤(R)の副画素の輝度を算出するために用いられるソース画像上のウィンドウを示す図。
【図15】低解像度の表示(装置)の緑(G)の副画素の輝度を算出するために用いられるソース画像上のウィンドウを示す図。
【図16】低解像度の表示(装置)の青(B)の副画素の輝度を算出するために用いられるソース画像上のウィンドウを示す図。
【図17】異なる色の1又は複数の画素に重なるソース画像ウィンドウにおいて、赤(R)副画素のカバレージ値の部分を評価することにより、赤(R)副画素の副画素輝度を算出する走査ライン・カバレージ値方法において使用される、走査線を示す図。
【図18】低解像度の表示(装置)の緑(G)副画素の輝度を算出するために使用される類似の走査線を示す図。
【図19】低解像度の表示(装置)の青(B)副画素の輝度を算出するために使用される類似の走査線を示す図。
【図20】図17を再度示した図。
【図21】赤画素ソース画像ウィンドウ内において異なるソース画像画素に重なる図20に示した水平走査線の複数の部分を示す図。
【図22】赤画素ソース画像ウィンドウ内において異なるソース画像画素に重なる図20に示した垂直走査線の複数の部分を示す図。
【図23】図18と同じ図。
【図24】緑画素ソース画像ウィンドウ内において異なるソース画像画素に重なる図23に示した水平走査線の複数の部分を示す図。
【図25】緑画素ソース画像ウィンドウ内において異なるソース画像画素に重なる図23に示した垂直走査線の複数の部分を示す図。
【図26】図19と同じ図。
【図27】青画素ソース画像ウィンドウ内において異なるソース画像画素に重なる図26に示した水平走査線の複数の部分を示す図。
【図28】青画素ソース画像ウィンドウ内において異なるソース画像画素に重なる図26に示した垂直走査線の複数の部分を示す図。
【図29】図17乃至図28に示したようなライン・カバレージ値に基づいて副画素輝度を算出する副画素最適化方法の、大幅に簡略化された擬似コード表記を示す図。
【図30】副画素最適化・スケーリング画像において画素の色を算出するための“ライン・カバレージ値”方法の他の実施形態において、2本の水平走査線及び2本の垂直走査線がどのように使用され得るかを示す図。
【図31】副画素最適化・スケーリング画像において画素の色を算出するための“ライン・カバレージ値”方法の他の実施形態において、2本の対角走査線がどのように使用されるかを示す図。
【図32】副画素最適化・スケーリング画像において画素の色を算出するための“ライン・カバレージ値”方法の他の実施形態において、2本の対角走査線、2本の水平走査線及び2本の垂直走査線がどのように使用されるかを示す図。
【図33】1/2水平及び垂直スケーリングにおいて、2本の水平カバレージ線に対するライン・カバレージ値を示す図。
【図34】1/2水平及び垂直スケーリングにおいて、2本の垂直カバレージ線に対するライン・カバレージ値を示す図。
【図35】約2/5水平及び垂直スケーリングにおいて、2本の水平カバレージ線に対するライン・カバレージ値を示す図。
【図36】約2/5水平及び垂直スケーリングにおいて、2本の垂直カバレージ線に対するライン・カバレージ値を示す図。
【図37】約2/3水平及び垂直スケーリングにおいて、2本の水平カバレージ線に対するライン・カバレージ値を示す図。
【図38】約2/3水平及び垂直スケーリングにおいて、2本の垂直カバレージ線に対するライン・カバレージ値を示す図。
【図39】副画素最適化・スケーリング画像の色の値を算出するための“エリア・カバレージ値”方法において使用されるソース画像画素領域を示す図。
【図40】“エリア・カバレージ値”方法による副画素の輝度の値を算出するために使用されるソース画像ウィンドウ内での、異なるソース画像画素の領域を示すために、異なるハッチングを使用した以外は、図39と同じ図。
【図41】図39及び図40において議論されたようなカバレージ値に基づいて副画素輝度値を算出する副画素最適化方法の、大幅に簡略化された擬似コード表記を示す図。
【図42】赤副画素に輝度の値を対応させることによって、ビットマップ画像のスケーリング・副画素最適化画像を作成する方法を示す図。
【図43】緑副画素に輝度の値を対応させることによって、ビットマップ画像のスケーリング・副画素最適化画像を作成する方法を示す図。
【図44】青副画素に輝度の値を対応させることによって、ビットマップ画像のスケーリング・副画素最適化画像を作成する方法を示す図。
【図45】RGBグリッド下におけるグレースケールを示す図。
【図46】個別の画素に対応する輝度が、従来の線形フィルタリング法によってどのように分配されるかを示す図。
【図47】従来の線形フィルタリング法の結果として求められる副画素輝度の値を示す図。
【図48】非線形フィルタリング法の下で、最小ソース画像輝度の値の分配を示す図。
【図49】非線形フィルタリング法の下で、超過ソース画像輝度の値の分配を示す図。
【図50】元のソース画素輝度に対する線形及び非線形フィルタリング法の結果の比較を示した図。
【図51】元のソース画素輝度に対する線形及び非線形フィルタリング法の結果の比較を示した図。
【図52】元のソース画素輝度に対する線形及び非線形フィルタリング法の結果の比較を示した図。
【図53】2色ビットマップの副画素最適化された表現を作成するためのソフトウェアの大幅に簡略化した擬似コード表記を示した図。
【図54】色と位置的な解像度との間のトレードオフをユーザが動的にできるようにするフローダイアグラムを示した図。
【図55】アウトラインフォント形状により定義された文字・フォント形状と、副画素アドレス可能な表示(装置)にその形状を表現するために用いられる副画素を含む画素配列との間のマッピングを示した図。
【図56】本発明の一実施形態に係るウェブページの320×240画面の画面ショットを示した図。
【図57】図56に示した画面ショットの2倍拡大図。
【図58】コンピュータが如何にフォントビットマップ又はフォントサーバからのフォント・アウトラインにアクセスするかを示した図。
【図59】コンピュータが如何にフォントビットマップ又はフォントビットマップに蓄積されたフォント・アウトラインにアクセスするかを示した図。
【図60】図48乃至図52に記載された種類の非線形カラー・バランスを使用する文字・フォントの形状の副画素最適化されたビットパップを算出するための、大幅に簡略化されたアルゴリズムの表現を示した図。
【図61】図55に示されたような画素配列の個々の画素において3副画素の各々に対してカバレージ値を決めるのに使用され、図55に示されたような文字・フォント形状画像におけるウィンドウのサイズを示した図。
【図62】図55に示されたような画素配列の個々の画素において3副画素の各々に対してカバレージ値を決めるのに使用され、図55に示されたような文字・フォント形状画像におけるウィンドウのサイズを示した図。
【図63】図55に示されたような画素配列の個々の画素において3副画素の各々に対してカバレージ値を決めるのに使用され、図55に示されたような文字・フォント形状画像におけるウィンドウのサイズを示した図。
【図64】非矩形ラスタ化ユニットに対するカバレージ値を計算するために使用されている幾つかの従来技術を示した図。
【図65】非矩形ラスタ化ユニットに対するカバレージ値を計算するために使用されている幾つかの従来技術を示した図。
【図66】非矩形ラスタ化ユニットに対するカバレージ値を計算するために使用されている幾つかの従来技術を示した図。
【図67】非矩形ラスタ化ユニットに対するカバレージ値を計算するために使用されている幾つかの従来技術を示した図。
【図68】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図69】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図70】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図71】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図72】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図73】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図74】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図75】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図76】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図77】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図78】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図79】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図80】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図81】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図82】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図83】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図84】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図85】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図86】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図87】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図88】図68乃至図87に関して上述した一般的な種類の加重ライン・カバレージ値について使用され得る、他の配置のカバレージ線を示した図。
【図89】図68乃至図87に関して上述した一般的な種類の加重ライン・カバレージ値について使用され得る、他の配置のカバレージ線を示した図。
【図90】図68乃至図87に関して上述した一般的な種類の加重ライン・カバレージ値について使用され得る、他の配置のカバレージ線を示した図。
【図91】画素の配列と、各々の副画素とをフォント・アウトラインの一部の画像にマッピングした図。
【図92】図91に示された配列の副画素に対して計算されている対応するカバレージ値を示した図。
【図93】図46に対応する図。図46のように、所定の画素行内で各々の副画素カバレージ値の全てを、連続して近傍にある副画素に渡って分配する、従来技術の線形カラー・バランス法を示した図。
【図94】図60に関して記載された非線形カラー・バランス法に使用され得るカラー・バランスフィルタを示した図。
【図95】図60に関して記載された非線形カラー・バランス法に使用され得るカラー・バランスフィルタを示した図。
【図96】図60に関して全体画素のアルファ値のより制限された色空間に表現されたような方法によって、フォントビットマップに対して計算された全体画素のアルファ値を表現するために使用され得る、大幅に簡略化されたアルゴリズムの擬似コード表記。
【図97】図60及び図96に示された方法の組み合わせによって作成されたフォントビットマップを使用する副画素アドレス可能な表示(装置)におけるテキストストリングを表示するための、大幅に簡略化されたアルゴリズムの擬似コード表記。
【図98】本発明によってウェブページを320×240の画面に如何に上手く表示できるかを示した図であり、ウェブページの640×480のレイアウトの画面ショットを示した図。
【図99】本発明が如何に図98のウェブページを320×240の画面上に表示することができるかを示した図。
【図100】図98とは異なるウェブページの640×480のレイアウトの画面ショットを示した図。
【図101】図99とは異なるウェブページの640×480のレイアウトの画面ショットを示した図。
【図102】幾つかのデータ構造と、プロキシサーバ及び薄型クライアントコンピュータによって薄型クライアントコンピュータのユーザがスケーリング、副画素最適化された画面上のウェブコンテンツにアクセスできるようにするために使用されるプログラムとの概略ブロック図。
【図103】図98及び図99で説明されたウェブページのHTMLコードの一部。
【図104】プロキシサーバによって作成されたウェブページのレイアウト及びプロキシサーバの仮想画面内にあるそのレイアウトの一部を示した図。この例では、そのレイアウトの一部は、図99に示されたウェブページの一部に一致している。
【図105A】図102に示されたプロキシサーバ上でのプログラムの、大幅に簡略化された擬似コード表記。
【図105B】図102に示されたプロキシサーバ上でのプログラムの、大幅に簡略化された擬似コード表記。
【図106A】スケーリング及び副画素最適化されたウェブページの一部の表現を薄型クライアントにキャプチャ及びダウンロードするためのプログラムの大幅に簡略化された擬似コード表記を示した図。
【図106B】スケーリング及び副画素最適化されたウェブページの一部の表現を薄型クライアントにキャプチャ及びダウンロードするためのプログラムの、大幅に簡略化された擬似コード表記を示した図。
【図106C】スケーリング及び副画素最適化されたウェブページの一部の表現を薄型クライアントにキャプチャ及びダウンロードするためのプログラムの、大幅に簡略化された擬似コード表記を示した図。
【図107】図106A乃至図106Cのプログラムによってキャプチャされたウェブページの表現の実際のダウンロードのためのプログラムの、大幅に簡略化された疑似コード表記を示した図。
【図108】図107で説明されたプログラムによって薄型クライアントにダウンロードされたデータの大幅に簡略化された表現を示した図。
【図109A】図102に示された薄型クライアントにおけるプログラムの、大幅に簡略化された擬似コード表記を示した図。
【図109B】図102に示された薄型クライアントにおけるプログラムの、大幅に簡略化された擬似コード表記を示した図。
【図109C】図102に示された薄型クライアントにおけるプログラムの、大幅に簡略化された擬似コード表記を示した図。
【図110】図102に示された薄型クライアントにおけるウェブページ表示上のテキスト入力フィールド上をユーザがクリックした場合、ユーザがテキスト入力フィールドにテキストを入力できるようにするポップアップメニューが如何に示されるかを説明する図。
【図111】図102に示された薄型クライアントにおけるウェブページ表示上のテキスト入力フィールド上をユーザがクリックした場合、ユーザがテキスト入力フィールドにテキストを入力できるようにするポップアップメニューが如何に示されるかを説明する図。
【図112】図102に示された薄型クライアントにおけるウェブページ表示上のテキスト入力フィールド上をユーザがクリックした場合、ユーザがテキスト入力フィールドにテキストを入力できるようにするポップアップメニューが如何に示されるかを説明する図。
【図113】所望のウェブページにアクセスするためのURLを入力するために、同じポップアップキーボードをユーザがどのように使用するかを説明する図。
【図114】グラフィカル・ユーザ・インターフェース、及びURLのテキスト入力フィールドを含む薄型クライアントコンピュータの画面の最上部にツールバーを有する、本発明の一実施形態を説明している点以外は、図13と同一である図。
【図115】クライアントコンピュータがウェブページに対してスクロール及びズームできるようにウェブページ全体のレイアウトを蓄積する本発明の他の実施形態において、プロキシサーバと薄型クライアントコンピュータとのそれぞれにおけるプログラムの、大幅に簡略化された疑似コード表示を説明する図。
【図116】クライアントコンピュータがウェブページに対してスクロール及びズームできるようにウェブページ全体のレイアウトを蓄積する本発明の他の実施形態において、プロキシサーバと薄型クライアントコンピュータとのそれぞれにおけるプログラムの、大幅に簡略化された疑似コード表示を説明する図。
【図117】図115及び図116で説明された擬似コードの実行を説明するために助けとなる概略図。
【図118】本発明によって、ユーザがどのようにウェブページ及び画面のコンテンツの一部を速やかに選択できるようになるかを説明した図。
【図119】本発明によって、ユーザがどのようにウェブページ及び画面のコンテンツの一部を速やかに選択できるようになるかを説明した図。
【図120】本発明によって、ユーザがどのようにウェブページ及び画面のコンテンツの一部を速やかに選択できるようになるかを説明した図。
【図121】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの1つの特徴を説明する図。
【図122】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの1つの特徴を説明する図。
【図123】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの1つの特徴を説明する図。
【図124】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの1つの特徴を説明する図。
【図125】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの1つの特徴を説明する図。
【図126】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの1つの特徴を説明する図。
【図127】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの1つの特徴を説明する図。
【図128】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの1つの特徴を説明する図。
【図129】ユーザが、所定の画面を横切って再び流れるテキストを大きなスケールで選択できるようにするための、大幅に簡略化された擬似コード表記。
【図130】図129に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図131】図129に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図132】図129に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図133】図129に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図134】図129に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図135】図129に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図136】図129に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図137】図129に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図138】多数のクライアントコンピュータが共通のフォントサーバ及び/又は共通のプロキシサーバにアクセスするようにどのようにプログラムされ得るのかを説明する図。
【図139】1又は複数のフォントサーバ上で使用され得るプログラムの大幅に簡略化された擬似コード表記を説明する図。
【図140】リモートコンピュータ上で実行されているアプリケーションプログラム(例えば1又は複数のウェブブラウザを含むがこれに限定されない)によって、このアプリケーションによるリモートコンピュータのオペレーティングシステムへの割り込み要求によってスケーリング・副画素最適化の方法で描画された画面を、クライアントコンピュータに表示させるように、本発明のある特徴が如何にして使用されるのかを説明する図。
【図141】副画素最適化、縮小の表示がどのようにして、所定のコンピュータ上で実行されているアプリケーションプログラムによって作成された画面を(このアプリケーションによって生成されたコンピュータのオペレーティングシステムへの割り込み要求によってこのような表示を作成するように、このアプリケーションがプログラムされていない場合であっても)出力し得るかを説明する図。アプリケーションプログラムは、例えば1又は複数のウェブブラウザを含むが、これに限定されない。
【図142】携帯型の小型画面の薄型クライアントコンピュータが、ローカル及び/又はインターネットのワイヤレス通信を通じて、ウェブコンテンツ及び/又は種々のアプリケーションプログラムの画面出力にアクセスできるように、本発明のある特徴が如何に使用されるかを説明する図。
【図143】本発明の幾つかの実施形態において、ポートレイト方向で実行されるようにプログラムされたオペレーティングシステムをもつコンピューティングデバイス回転させることによって、副画素最適化の出力がどのようにランドスケープ方向で表示されるのかを説明する図。
【図144】本発明の幾つかの実施形態において、ポートレイト方向で実行されるようにプログラムされたオペレーティングシステムをもつコンピューティングデバイス回転させることによって、副画素最適化の出力がどのようにランドスケープ方向で表示されるのかを説明する図。
【図145】副画素最適化の解像度で単純な形状を描写するために使用される、大幅に簡略化された擬似コード表記を説明する図。
【図146】コンピュータの画面上に副画素最適化された要素を描画するためにウェブアプレットがどのように使用されるかの、大幅に簡略化された擬似コード表記。
【図147】ロールオーバ画像がどのように副画素最適化されるを説明する大幅に簡略化されたブロック図。
【図148】GIFFアニメーションがどのように副画素最適化され得るかを説明する大幅に簡略化されたブロック図。
【図149】3−Dアニメーションがどのように副画素最適化される得るかを説明する大幅に簡略化されたブロック図。
【図150】クライアントサーバ上に副画素最適化された画像を提供するために、クライアント/サーバ・ゲームシステムがどのように使用され得るかを説明する大幅に簡略化されたブロック図。
【図151】クライアントサーバ上に副画素最適化された画像を提供するために、クライアント/サーバ・ゲームシステムがどのように使用され得るかを説明する大幅に簡略化されたブロック図。
【図152】副画素最適化された表示が、どのようにして、対応する透過マップを持つ画像から作成されるのかを説明する概略ブロック図。
【図153】キーフレーム間の補完を使用した映像が、どのようにして、副画素最適化され得るかを説明する概略ブロック図。
【図154】全体よりも少ない部分への画面変化の描画を含む表示による映像が、どのようにして、副画素最適化され得るかを説明する図。
【図155】表示ウィンドウに対して移動する画像を表示する他の方法を表す大幅に簡略化された疑似コード表示。
【図156】表示ウィンドウに対して移動する画像を表示する他の方法を表す大幅に簡略化された疑似コード表示。
【図157】種々の圧縮技術によって表現された映像に対して副画素最適化が如何に適用されるかを説明する大幅に簡略化された疑似コード表示。
【図158】種々の圧縮技術によって表現された映像に対して副画素最適化が如何に適用されるかを説明する大幅に簡略化された擬似コード表記。
【図159】種々の圧縮技術によって表現された映像に対して副画素最適化が如何に適用されるかを説明する大幅に簡略化された擬似コード表記。
【図160】サーバコンピュータが、副画素最適化、縮小映像をクライアントコンピュータにダウンロードできるようにするためのプログラムの大幅に簡略化された擬似コード表記。
【図161】クライアントコンピュータが、他のサーバ及びプロキシサーバを通じて副画素最適化、縮小映像にアクセスできるようにするための、クライアントサーバ及びプロキシサーバ上におけるプログラムの大幅に簡略化された擬似コード表記。
【図162】電子インクがより明瞭に認識され得るようにするプログラムの大幅に簡略化された擬似コード表記。
【図163】図162に関して記載されたプログラムの利点を説明するための図。
【図164】図162に関して記載されたプログラムの利点を説明するための図。
【図165】図162に関して記載されたプログラムの利点を説明するための図。
【図166】図162に関して記載されたプログラムの利点を説明するための図。
【図167】本発明が、方法に関連するのみでなく、その方法に対して機械読み取り可能な形式で蓄積されるか又は伝送信号で実施されるプログラム及びデータ、その方法を実行するため、及び/又は、そのプログラム及び/又はデータを使用するためのプログラム又はハードワイヤー結線されたコンピュータシステムに関連することを説明する図。
【図168】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図169】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図170】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図171】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図172】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図173】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図174】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図175】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図176】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図177】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図178】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図179】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図180】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図181】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図182】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図183】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図184】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図185】図129乃至図134に関して記載された選択テキストリフロー法のより詳細な説明。
【図186】図118乃至図120に関して記載された一般的な種類の、ズーム・ツー・フィット法の詳細な疑似コード表示。
【図187】ユーザがウェブページのレイアウトの表示内で容易にナビゲートすることができる、ドラッグ・スクロール法の詳細な擬似コード表記。
【図188】ユーザがウェブページのレイアウトの表示の所望の部分に速やかにズームを選択できるようにする、クリック・ズーム法の詳細な擬似コード表記。
【図189】図121乃至図128に関してある程度詳細に記載されたズームクリック法の概略擬似コード表記。
【図190】ユーザが、グリーキングを使用しているウェブページのズームアウト表示を見ることができるようにする方法の概略擬似コード表記。
【符号の説明】
【0620】
100:標準的なウェブ・コンテンツ
138:ネットワーク
200:薄型クライアント・ブラウザ
210:プロキシ・サーバ
216:プロキシ・プロセス
220:サーバ
230:フォント・サーバ
232:フォント・ビットマップ
【0001】
本発明は、非線形カラー・バランスを使用して副画素最適化フォント・ビットマップを生成及び表示するための方法、システム、及びプログラム、並びに、その様な方法により生成されるデータ構造に関する。
【背景技術】
【0002】
本特許出願は、小型又は低解像度の画面をもつ演算装置、例えばハンドヘルドコンピュータ、携帯電話コンピュータ、手首又は頭部に装着されるディスプレイをもつコンピュータの使用における最適化処理に関する多くの特徴を有する。この最適化処理の良好な部分は、ワールド・ワイド・ウェブや類似の情報媒体をブラウズするための小型ディスプレイの使用を向上させるために実行されている。但し、これらの特徴の多くは、他の種類の表示内容を見る場合にも使用され得る。
【0003】
この最適化処理の他の部分は、現在のワイヤレスリンクに見られるような比較的狭帯域のリンクを通じて、このような情報媒体をブラウズする能力を向上させることに焦点を置いている。しかしながら、本願に開示された本発明の多くの特徴は、これらの目的に限定されない。
【0004】
例えば、ユーザがより大型のウェブページの一部分を見ることを容易にする様に設計された特徴の幾つかでは、従来のコンピュータ上でそのウェブを見るのを容易にし、より離れた距離で読むことを容易にする。
【0005】
本出願の出願時には、対角線の長さが約4インチ、約240×320画素の画面を持つ様々なハンドヘルドコンピュータが存在している。これらのハンドヘルドコンピュータには、コンパック社製のiPac H3650、カシオ製のカシオペア、ヒューレットパッカード社製のジョルナダ525が含まれる。残念なことに、これらの解像度は、現在のほとんどのウェブページを表示するには低すぎる。現在、大部分のウェブページは、640×480画素の解像度をもつ画面で見ることができる(但し、2,3のウェブサイトはこの解像度でさえ見ることができない)。大部分のウェブページをこのようなハンドヘルド装置で見ることができるようになることが望まれている。
【0006】
液晶表示装置の製造業者は、現在市場にある表示装置よりも実質的に高い解像度をもつ画面を製造する能力がある。有機LED表示装置の製造業者は、さらに高い解像度でさえ実現できると主張している。上記に列挙したハンドヘルドコンピュータに現在搭載されているサイズの4インチの画面は、480×680画素以上の解像度をもつことが可能であったことを意味している。このような画面は多くのウェブページに受け入れられる解像度を提供するが、さらに高い実効解像度が多くのウェブページに要求されると考えられる。
【0007】
更に付け加えると、比較的高解像度で画面を見るためには、ユーザは、眼を画面に接近させて保持しなければならない。このことは多くの適用例では満たされるが、大抵の場合、ユーザは、ハンドヘルドコンピュータを眼に近づけて保持することに疲労を感じたり、不便を感じたりするかもしれない。
【0008】
表示装置の解像度の改善もまた、320×240画素の画面が2インチ以下の対角長で製造しうることを意味している。このような表示装置は、現在多くの携帯電話機に共通に搭載されている表示装置と略同一のサイズになるであろう。このような表示装置は、現在ハンドヘルドコンピュータで使用されている多くの形態のアプリケーションを携帯電話機上で使用可能にするであろうし、腕時計にも適用可能であろう。残念な事に、この表示装置は、大部分のウェブページを見ることが困難になる解像度であり、この解像度をユーザが見るためにはユーザの眼に極めて接近させなければならないほど物理的に小さいという問題を有している。再言すると、このような装置をユーザの眼に近づけて保持することは、一定時間の間であれば満足できるかもしれないが、しかし、長時間に渡る場合又は所定の状況では、それは不便かもしれない。
【0009】
表示装置の解像度の改善もまた、320×240画素の画面が2インチ以下の対角長で製造しうることを意味している。このような表示装置は、現在多くの携帯電話機に共通に搭載されている表示装置と略同一のサイズになるであろう。このような表示装置は、現在ハンドヘルドコンピュータで使用されている多くの形態のアプリケーションを携帯電話機上で使用可能にするであろうし、腕時計にも適用可能であろう。残念な事に、この表示装置は、大部分のウェブページを見ることが困難になる解像度であり、この解像度をユーザが見るためにはユーザの眼に極めて接近させなければならないほど物理的に小さいという問題を有している。再言すると、このような装置をユーザの眼に近づけて保持することは、一定時間の間であれば満足できるかもしれないが、しかし、長時間に渡る場合又は所定の状況では、それは不便かもしれない。
【0010】
現在、ユーザがコンピュータ画面の画像を見ることができるようにした、頭部に装着する表示装置を提供している幾つかの会社がある。その表示装置は、眼鏡の様な装置を通じて、或いは、ユーザの眼の上方、下方又は所定距離離れた側方に置かれた鏡からユーザの眼に対して反射される光よるものである。このような頭部に装着された表示装置を使用中に周囲とのやりとりを容易にするために、大抵の場合、このような投影型の画面はユーザの視野の比較的小さな領域を占めるようにすることが望まれる。それ故、このような表示装置のユーザは、小型のハンドヘルド画面のユーザが持つであろうと同じ多くの問題に直面する。
【0011】
本発明の1つの特徴は、比較的制限された演算能力、メモリ又はインターネット接続帯域を持つコンピュータ上に出力されるウェブページのブラウズやアプリケーション画面を最適化する方法に関する。例えば、現在、大部分のデスクトップコンピュータやラップトップコンピュータで使用されている形式の標準的なウェブブラウザは、メモリの多数メガバイトや比較的大量の演算能力を要する。それらは、また、ウェブページでより頻繁に使用されるワールド・ワイド・ウェブの多くに含まれる種類のウェブコンテンツに対して効率よく作動するように、少なくとも高速モデムの通信速度をもつインターネットへの接続を要する。しかしながら、多くのハンドヘルドコンピュータは、これらのウェブページの多くを効率良く表示するためのメモリも演算能力も持たない。また、最も一般的に利用可能な無線システムは、多くのウェブページに要求されると思われる帯域よりも実質的に低い帯域しか持たない。これらの要因のため、制限されたメモリ、通信速度、帯域でコンピュータがワールド・ワイド・ウェブや類似の情報媒体をブラウズできるようにする方法に関する本願中の改善の幾つかが、1つの焦点になる。
【発明の開示】
【課題を解決するための手段】
【0012】
本発明は、後述する特許請求の範囲の各請求項により最も正確に表現され、各請求項が課題を解決するための手段の記載と異なる場合には、各請求項の記載が本発明の真の表現と考えられなければならない。
【0013】
本発明によれば、個別にアドレス可能な異なる色を持つ副画素で構成される画素を持つ副画素アドレス画面に適した形状の副画素解像度の表現を作成する方法が提供される。この方法は、その形状に重なる画像における副画素領域の領域割合の関数、及び異なる色の隣接副画素にカラー・アンバランスを引き起こす副画素輝度値の部分を分配する様に設計されたカラー・バランスの関数として、スケーリング画像の各副画素に輝度値を関連付けることにより、ビットマップ画像のスケーリング及び副画素最適化された画像を生成することを含む。そのように分配された副画素の輝度値の割合は、カラー・アンバランスを引き起こす副画素の輝度値の割合の関数である。
【0014】
本発明のこの特徴の利点は、カラー・バランスの目的で分配される輝度値の量を、ほぼカラー・バランスの達成に必要な量のみに低減し、それ故、副画素最適化画像の透明度を向上している点である。
【0015】
本発明の第1の特徴の幾つかの実施形態では、副画素最適化画像が作成される形状はフォントである。
【発明を実施するための最良の形態】
【0016】
本発明のこれら及び他の特徴は、添付の図面とともに以下に示す最良の実施形態の記載を読むことによって、より顕著になる。
【0017】
図1は、特に、低解像度の表示装置をもつシステム上での、ウェブ・ブラウズ及び/又は他の種類のコンピュータによって生成されたコンテンツの表示を向上させるために、本発明の幾つかの特徴において使用される、基本的な処理及びデータ表示を示す概略図である。
【0018】
1又は複数のビットマップ画像102とテキスト104とを含むデジタル・コンテンツ100は、副画素最適化・縮小フォーマット106で表示されている。本発明の一実施形態において、ステップ108を含む差分処理は、テキストコンテンツの表示を副画素最適化するために使用されるよりも、むしろ、ビットマップ画像102の表示を副画素最適化するために使用される。ステップ108は、カラービットマップから副画素最適化された画像の生成に適した副画素最適化ルーチンを使用している。また、ステップ108は、現在ほとんどのウェブコンテンツが表示されている解像度よりも低い解像度をもつ画面への表示のために、ビットマップを縮小する。
【0019】
デジタル・コンテンツに含まれるテキスト104は、ステップ110及び112を使用することによって、解像度が低くかつ副画素アドレス可能な画面上での表示のために処理される。ステップ110は、通常の表示に使用されるフォントを、副画素最適化された画面上での低解像度による表示に最適化されたフォントで置き換える。その後、ステップ112は、フォント形状の定義に共通に使用される数学的に定義されたアウトラインの様な、同一色の形状の高解像度画像の表現に特に適した副画素最適化ルーチンによって生成された代替フォントからのフォントビットマップを使用する。
【0020】
本発明の1つの利用は、インターネットからダウンロードされるマークアップ言語によって表現された、画像及び/又はテキストを表示する携帯型の、低解像度のウェブブラウザにある。
【0021】
現在まで、多数の所謂マークアップ言語が存在してきた。最も早期の最も成功したものの1つは、SGML(Standard General Markup Language)である。SGMLは、テキストベースの言語であり、このテキストベースの言語は、当該データについての情報を提供する記述的な‘メタデータ’によって当該データを‘マークアップ’するために使用され得る。例示として、マークアップ・メタデータは、当該データが意図する目的又は当該データが配置されるウェブページ上の位置を示すために使用される。それは、テキスト中又は当該マークアップ言語で記述された文書中の所定の位置に挿入される、例えば画像のような他の種類のデータへのリンクを示すためにも使用される。今日共通に使用されているHTMLやXMLのような幾つかのマークアップ言語は、SGMLから派生している。
【0022】
本発明の最良の一実施形態において、上記図1において参照されたデジタル・コンテンツ100は、HTMLのようなマークアップ言語で表現された画像及び/又はテキストを含む標準的なウェブコンテンツでも良い。標準的なウェブコンテンツ100、おそらくウェブサイトの形式ページを表現するものは、図2乃至4に示され、以下に記述された携帯型の低解像度ブラウザ装置上での表示のために、様々な装置や方法を通じてダウンロードされ得る。ブラウザ装置200での表示の前に、デジタル・コンテンツ100は、判読性の向上のために、以下に記述するような様々な方法や処理を通じてスケーリング及び/又は副画素最適化され得る。
【0023】
図2は、本発明の一実施形態に従って実施される、ネットワークで繋がれたコンピュータ環境を図示している。薄型クライアント・ブラウザ200のプログラムは、テキスト及び/又はグラフィックを取り込み、小型LCD画面上に表示可能な、携帯型又は他の小型コンピュータ・デバイスで実行される。このブラウザによって、ユーザは、遠隔にあるソース(例えば、インターネット)からのデジタル情報を要求し、それを画面上に表示させることができる。
【0024】
図2に図示された本発明の実施形態において、ユーザは、薄型クライアント・ブラウザ200のコントロールボタンを操作することによって、画像及び/又はテキストを含むデジタル・コンテンツの取り込み及び表示を要求することができる。要求されるデジタル・コンテンツは、インターネットを通じてアクセス可能な特定のウェブページであっても良い。薄型クライアント・ブラウザ200は、そして、例えばLAN、WAN又はインターネットであり得るネットワーク138上にある物理的に遠隔にあるプロキシサーバ210を通じてコンテンツに対する要求202を実行する。
【0025】
プロキシサーバ210は、デジタル・コンテンツの要求に応答するプロキシプロセス216を実行する。この応答は、ユーザによって要求されたデジタル・コンテンツ100を保持する物理的に遠隔にあるウェブ・サーバ220に対して、対応する要求(リクエスト)214を作成することによって実行される。サーバ220は、プロキシ・サーバの要求214に応答する。この応答は、ネットワーク138を通じてプロキシサーバ210にデジタル・コンテンツ100のダウンロード222を実行することによる。
【0026】
プロキシサーバ210内のプロキシ・プロセス216は、次に、自身のコンピュータリソースを用いて、図1に図示されたステップ108,110,112に従ってデジタル・コンテンツ110をスケーリング及び副画素最適化する。スケーリング及び副画素最適化は、液晶表示装置上でのテキスト及び/又はグラフィックのような画像の判読性を向上させる結果を得る、本発明の1つの特徴である。
【0027】
プロキシサーバ210は、上記でスケーリング及び副画素最適化されたコンテンツのブラウザ200へのダウンロード212を実行する。この時点で、ユーザはブラウザ200の画面上でコンテンツを見ることができる。
【0028】
図2に示された本発明の実施形態では、デジタル・コンテンツのテキスト部分は、1又は複数の文字(キャラクタ)のストリング、フォントファミリーの指定、フォントサイズ及び他のフォント属性を含む形式で、ブラウザにダウンロードされる。薄型ブラウザが、そのフォントサイズ及びフォントファミリーのビットマップを持っていなければ、薄型ブラウザは、そのような1又は複数のビットマップをフォントサーバ230に要求する。図2乃至3に示された本発明の実施形態では、プロキシサーバがそのようなビットマップを提供することもできるし、クライアントが(ソフトウェアのサイズを増大させることになるが、)そのようなビットマップをソフトウェアの標準的な部分として持つこともできる。フォント・ビットマップの利点は、フォント供給者(ヴェンダー)がフォント・アウトラインよりもフォント・ビットマップをより自由に頒布したがる傾向にある点である。
【0029】
図3には、本発明の変形例に係る実施形態が図示されている。この実施形態では、図2のプロキシサーバ210及び/又はウェブサーバ220が1台のリモートサーバ220Aに置き換えられている。薄型クライアント・ブラウザ200は、ネットワーク138上のリモートサーバ220Aにデジタル・コンテンツ100の要求202Aを実行する。例えば、ネットワーク138はインターネット又はLANであり、デジタル・コンテンツ100は特定のウェブページであっても良い。リモートサーバ220Aは、要求されたデジタル・コンテンツ100を有しており、要求202Aに応答するプロキシプロセス216Aを実行する。プロキシプロセス216Aは、クライアント・ブラウザ上での表示のためにウェブページを動的にスケーリング及び/又は副画素最適化するサーバ上で実行されるどのようなプロセスであっても良い。プロキシプロセス216Aは、蓄積(記憶)されたデジタル・コンテンツ100に対して実行され、ステップ108,110,112を実行することによってコンテンツ100を図1に示す形式106に動的に変換する。リモートサーバ220Aは、スケーリング及び/又は副画素最適化されたコンテンツの薄型クライアント・ブラウザ200へのダウンロード212を実行する。
【0030】
図4には、本発明の他の変形例に係る実施形態が図示されている。図3におけると同様に、薄型クライアントの要求は、ネットワーク138を通じて直接、リモートサーバ(ここでは、サーバ220B)になされる。この実施形態では、リモートサーバ220Bは、標準的なブラウザ・コンピュータの使用のための標準的な形式100と、スケーリング及び/又は副画素最適化されたコンテンツ100Aとの両方の状態で、要求されたデジタル・コンテンツを保持している。標準的なデジタル・コンテンツ100から縮小及び/又は副画素最適化された形式への変換は予め実行される。これによって、プロキシプロセスが動的に変換する必要がなくなる。薄型クライアントは、要求されたコンテンツのスケーリング及び/又は副画素最適化されたバージョンを受け取る必要があることを示す情報を、リモートサーバに提供する。リモートサーバ220Bは、スケーリング及び/又は副画素最適化されたデジタル・コンテンツ100のクライアント・ブラウザ200へのダウンロード212を実行する。
【0031】
図5には、本発明のさらなる他の変形例に係る実施形態が図示されている。図5に示すように、ブラウザ200Aは、スケーリング及び/又は副画素最適化プロセス510をさらに含むフルスケールのブラウザである。このブラウザ200Aは、ネットワーク138上のリモートサーバ220Cにデジタル・コンテンツ100の要求202Bを行う。サーバ220Cは、要求されたデジタル・コンテンツ100のブラウザ200Aへのダウンロード212Aを行う。デジタル・コンテンツ100のスケーリング及び/又は副画素最適化された形式への変換はブラウザ200Aで実行されるプロセス510によって取り扱われる。
【0032】
図6は、デジタル・コンテンツ100をスケーリング及び/又は副画素最適化可能なコンピュータシステム600を図示している。この実施形態では、デジタル・コンテンツは予めコンピュータシステム600上で生成されるか又は置かれている。コンピュータシステム600は、スケーリング及び/又は副画素最適化するサブプロセスを含むブラウザプロセス620を保持している。ここで、ユーザは、付属の入力装置、例えばキーボード又はマウスによってコンピュータシステム600にデジタル・コンテンツ100の要求を行う。ブラウザプロセス620は、電気的なメモリやディスク記憶装置のようなコンピュータシステムの記憶素子の1つから、要求されたデジタル・コンテンツ100を受け取る。ブラウザプロセス620は、デジタル・コンテンツ100を一旦受け取ると、これを縮小及び/又は副画素最適化プロセス640に送る。変換が完了すると、変換されたコンテンツは、コンピュータシステム600の表示画面に表示される。本発明のこの実施形態は、ネットワーク又はリモートサーバなしに動作する。
【0033】
図7は、1台のコンピュータシステムの実施形態の他の変形例を図示したものである。この実施形態では、コンピュータシステム700は、予め作成又は配置されている(例えば特定のウェブページのような)デジタル・コンテンツ100、プロキシプロセス740及びブラウザプロセス720を有している。プロキシプロセス740は、縮小及び/又は副画素最適化プログラム760を実行する。ブラウザプロセスは、デジタル・コンテンツ100の表示のユーザ要求をプロキシプロセス740に渡す。次に、プロキシプロセス740は、コンピュータシステム700の記憶素子からデジタル・コンテンツ100を取り込む。デジタル・コンテンツ100を取り込むと、プログラム760はデジタル・コンテンツ100をスケーリング及び/又は副画素最適化された形式に変換し、これをコンピュータシステム700の表示装置によって表示するためにブラウザプロセス740に渡す。
【0034】
図8は、1台のコンピュータシステムの実施形態の第2の他の変形例を図示したものである。ここでは、コンピュータシステム800は、縮小及び/又は副画素最適化されたウェブコンテンツ810を有している。ブラウザプロセス820は、ユーザからのコンテンツ810の表示の要求を処理し、コンピュータシステム800の記憶素子から取り込み、これをコンピュータシステム800の表示装置に表示する。
【0035】
上記に示した本発明の実施形態では、ソースの画像の解像度から副画素アドレスされた画面の解像度への画像のスケーリングは、部分的に、ソースと副画素アドレスされた画面との各解像度によって定義される。
【0036】
本発明の幾つかの実施形態では、ソース画像の解像度と副画素アドレス可能な画面上で表示されるべき解像度との間のスケールファクタ(スケールファクタ)は、ブラウザ装置のユーザによって決定される。この実施形態では、ブラウザのユーザは、記憶素子から読み出される画像を縮小するプロセスとの間でスケールファクタを送受信することによって、複数のスケールファクタの中から選択する。次に、記憶素子から読み出した画像を縮小するプロセスは、選択されたスケールファクタの関数として変化する水平及び垂直方向のスケールファクタによって、画像を縮小及び/又は副画素最適化する。
【0037】
ほとんどの他のユーザがブラウザ装置に入力するように、このようなスケールファクタ選択は、物理的な又はGUIのボタン、メニュー項目、ダイアログ・ボックス、又はブラウザ装置上の他の公知のユーザインターフェース装置を使用することによって行われることができる。
【0038】
このような幾つかの実施形態では、ブラウザ装置のユーザは、画像が以前に記憶素子から取り込まれ第1のスケールファクタで副画素最適化された形式で表示された後に、どのデジタル・コンテンツが再度、縮小及び副画素最適化されて再表示されるかに基づいて、複数のスケールファクタの中から第2のスケールファクタを選択しても良い。
【0039】
このような実施形態では、第1のスケーリング及び副画素最適化された画面において使用されたスケールファクタは、デフォルト又は所望のスケールファクタの結果であるか、またはブラウザ装置のユーザによって以前に選択されたスケールファクタの結果である。ブラウザ装置のユーザは、ブラウザ装置のコントロール部を操作する方法で、デジタル・コンテンツの再表示用の複数のスケールファクタから選択しても良い。このようなブラウザ装置のコントロール装置の操作によって、第2の選択されたスケールファクタに基づいて画像が表示される。
【0040】
このような第2のスケーリングは、ブラウザ装置又は物理的に遠隔なリモートサーバのの内部で実行されるプロセスの結果としても起こる。ブラウザ装置のユーザは、引き続いての再表示のために複数のスケールファクタの中から選択を続ても良い。
【0041】
デジタル画像を整数倍で縮小するのが最も簡単である。整数倍の縮小では、ソース画像の整数の画素を、結果として生じる縮小画像の所定の画素に適合させる。例えば、640×480解像度から320×240解像度へのスケーリングは、スケールファクタ=2の縮小である。本発明の実施形態には、非整数の縮小スケールファクタを含む複数の縮小スケールファクタからユーザが選択可能な実施形態もある。非整数の縮小スケールファクタの例は、640×480解像度のソース画像の480×360画素の部分を320×240解像度の表示画面上に表示するためにスケーリング及び/又は副画素最適化するような、縮小スケールファクタ=3/2の縮小である。
【0042】
陰極線電子管(CRT)のようなコンピュータグラフィック表示装置、液晶表示装置(LCD)画面は、ほとんどがRGBモデルの色空間を使用している。但し、本発明はCMYK色モデルのような他の色モデルにも適用できる。RGBモデルでは、添加される3原色、赤、緑、青が混合され、人間の目に認識されるように所望の色を形成する。
【0043】
ほとんどの携帯コンピューティング装置または画像装置は、RGBモデルを使用するLCD画面を持っている。このようなLCD画面は、何千ものグリッド要素(画素に対応)からなる矩形の配列を有しており、各画素は、RGB色空間の多数の色から任意の1つを表示することが可能であり、全体として認識されると画像を形成する。
【0044】
一方、各画素は、個々にアドレス可能な3つの副要素を有し、ここでは、この副要素を副画素と称す。最も一般的には、副画素は、赤、緑、青の矩形要素である。最も一般的な実施形態では、3つの赤、緑、青の副画素には、各副画素が混合されて画素全体が所望の色に見えるように各々に輝度が割り当てられている。一方、LCD画面の全ての画素が一体となると所望の画像を構成する。
【0045】
3つの副画素は個々にアドレス可能であるとする。というのは、個々の画素に割り当てられた色要素は、別々の赤、緑、青の色要素又は輝度を有しており、画素の赤、緑、青の副画素の各々によって表示されるからである。それ故、各副画素の輝度は、画素に割り当てられた色値において、関連付けられた色要素の輝度値を制御することによって別々に制御される。
【0046】
LCD装置や、カラーLED(有機発光ダイオード(OLED)を使用する画面を含む)、ガスプラズマ表示装置のような他の“副画素アドレス可能な”表示では、各個々の副画素は、表示上で固定の所定の位置を持っている。ほとんどの陰極線電子管(CRT)のような多くの表示は、副画素アドレス可能なものではない。例えば、CRTの各画素は赤、緑、青の色要素に対応する輝度値を持っているが、これらの色値に関連する光を生成する要素の各画素内での正確な物理的配置は、通常知られていない。なぜならば、画面の個々の発光パターン、水平及び垂直走査の解像度、個々の画素が画面上での正確な位置を制御する電圧の正確な現在の状態、の関数として変化するからである。
【0047】
図9は、複数の画素行(R1−R12)及び画素列(C1−C12)から成るLCD画面900の12×12の部分を図示している。実際のLCD画面は、任意の数の行及び列を持っているが、320×240、640×480、800×600、1024×768、1280×1024が良く用いられる。
【0048】
サークル910には画素R1−C1が含まれている。画素R1−C1は、それ自身が3つの画素副要素(ここでは副画素要素と称す)から構成されている。画素R1−C1の拡大図が拡大された画素920として示されている。副画素要素902は赤として表示され、副画素要素904は緑として表示され、副画素要素906は青として表示される。個々の副画素要素902,904,906は、画素全体の約1/3の幅であり、画素全体の高さに等しい。
【0049】
LCD画面900に表示されたように、グリッドの状態で配列されたとき、LCD画面900上において垂直な縞模様として表れる。この公知の画素配列は、垂直RGBストライプと称されることがある。他の公知の配列では、水平ストライプのような直角方向に画素要素が配置される(この場合は、この画面を90°回転すると、垂直ストライプ画面になる。)。
【0050】
一般的な使用において、画素の3つの副画素要素の輝度は、画素が人間の目に所望の色相、彩度及び明度で視認されるように設定される。RGB副画素要素は、一体となって単一の色を持つ画素を形成し、表示画像の1サンプルを表現する。
【0051】
本発明の1つの特徴は、例えば、320×240又は240×320の行列比を持つ表示のような低解像度の画面上における、ダウンロードされたウェブコンテンツ、テキスト及び画像を含むその他のデジタル・コンテンツの判読性の向上に関する。240×320の解像度は、90°回転させることによって320×240の解像度にすることができる。本発明の多くの実施形態は、640×480の仮想レイアウト解像度を320×240画素解像度の画面上に変換された、幾つかの詳細なマップ画像及びテキストにおいて議論され、示されている。しかし、本発明は他の解像度の画面にも使用されることができる。ほんの2,3例を挙げると、大体、1024×768解像度を512×384解像度の画面で見えるようにレイアウトされたコンテンツを表示することに用いられたり、又は、大体、800×600画素を400×300の画面で見えるように用いられる。他の実施形態では、本発明は、パーソナルコンピュータ画面上で共通な偶数比の水平及び/又は垂直の画素次元以外の画素次元を持つ比較的低解像度の表示で使用される。
【0052】
一般的には、低解像度の画面とは、所定のデジタル・コンテンツや所定のデジタル・コンテンツのレイアウトが通常表示するために意図しているよりも低い解像度を持つ画面を意味する。このような小型の画面は、より大型の画面上にあるウィンドウ(ウィンドウ部分は低解像度である)のような、より大型の画面の一部を意味することもある。
【0053】
図10では、画像コンテンツ105及び/又はテキストコンテンツ107が、図1の副画素最適化された画面の一部を示している。図1に示された画像は、テキスト及び画像両方の副画素最適化された表示に関連する実際の色値のグレースケールの拡大図である。矩形部1000内の画像コンテンツ105の部分は、個々の画素を見易くするために1020において拡大して示されている。それに対応して、矩形1040に含まれるテキストコンテンツ107の部分は、1060において拡大されて表示されている。
【0054】
1020及び1060に示された画素は、画素の全体(全体画素)を表していることに留意しなければならない。なぜなら、1020及び1060の生成に使用されるソフトウェアは、個々の全体画素に関連付けられたRGB色値に対応するグレースケールを単に表現しているからである。副画素拡大表示1020A及び1060Aは、それぞれ、拡大図1020及び1060における各画素に対応する3つの副画素の各々の明度を表現するものである。1020Bは、拡大表現1020A及び1020に対するスケールファクタ及び配置に対応する拡大表現である。そこでは、画像の画素格子が相対的に太い線で表示され、各画素内の3つの副画素分割が相対的に細い線で表示されている。合成格子は、拡大表現1020及び1020Aに示された画素パターンが由来する図1のオリジナルの高解像度のカラービットマップ画像102の最上部において重ね合わされる。示された特定の画像において、カラービットマップ102の解像度は、垂直及び水平の両方向において、図10の最下部に示された画像105における全体画素での解像度の2倍の解像度である。
【0055】
拡大表現1060Bは、含まれる1又は複数の文字の高解像度のアウトラインに重なる各副画素の領域の部分が決定されることによって、副画素最適化されたフォントの画像が如何に生成されるかを図示している。
【0056】
副画素解像度の拡大表現1020A及び1060Aを夫々対応する全体画素での拡大表現1020及び1060と比較することによって分かるように、副画素での画像及びテキストの副画素最適化された表現の表示がより良い解像度を提供する。
【0057】
図11は、標準的なウェブコンテンツを320×240のカラー表示装置に表示した場合に、本発明の一実施形態によって提供される判読性の質を表現するものである。同図最上段のビットマップ1100はグレースケールであり、princeline.comのウェブページの一部の標準的な640×480レイアウトから生成された実際のビットマップの全体画素での拡大表現である。この画像は、図11の最下段ウェブページの全画面320×240画像の中に示された矩形部1130内に含まれるウェブページの部分に対応している。同図中段のビットマップ1120はグレースケールであり、上記320×240画像の同じ部分のカラービットマップの全体画素での拡大表現である。図11最下段の200Bは、図2に記載した種類の薄型ブラウザとして機能するハンドヘルド・コンピューティング装置を表している。このブラウザの画面上では、640×480レイアウトのウェブページを表現している320×240副画素最適化ビットマップの表現が示されている。図10の拡大表現1020のように、図11最下段のビットマップ1130は、画素全体での平均的な輝度に対応するグレースケールのレベルで個々の画素を図示している。図9に示すような垂直副画素ストライプの320×240画面上でこの画像を見ると、実際の画像は、図10の拡大表現1020Aによって示されるように、むしろ高解像度を持つように見える。
【0058】
本発明の多くの特徴における目的に対して、カラービットマップの副画素最適化画像を生成するための任意の公知のアルゴリズムを用いることができる。本発明の一実施形態では、所定の色の各所定の副画素に割り当てられた輝度は、ソース画像の矩形ウィンドウの中にあるそれぞれの全体又は部分的な画素の所与の色値の平均的な強度によって決定される。このソース画像のウィンドウは、所定の副画素を中心にして置かれた縮小画像において、全体画素の領域に一致する。副画素に割り当てられる平均的な強度は、全体又は部分的にソース画像ウィンドウに重なる各ソース画像画素の強度と、各ソース画像画素によってカバーされるウィンドウの領域の割合との乗算によって算出される。
【0059】
図12は、解像度が低減された表示装置の副画素格子の、より高解像度のソース画像102の部分へのマッピングを図示している。この図は、図1に示されたオリジナルの、より高解像度のカラービットマップ102の部分に重ねられた副画素格子1210を図示している。円1220は、意図された、より低解像度の表示(装置)における1画素に対応する格子の領域を含んでいる。格子パターンの位置及び大きさは、より高解像度のビットマップ画像と、結果として得られる副画素最適化画像との関係によって決定される。図12に示される特定の格子パターン1210は、カラービットマップ画像102の画素解像度から、水平及び垂直の両方向においてソース画像の二分の一の画素をもつ表示(装置)の解像度へのスケーリングを表現している。このスケーリングの一例は、640×480表示画面の表示に適切な画素を持つ画像を、320×240表示画面に釣り合う表示に縮小する例である。グリッドパターン1210の各太線分割部は、カラービットマップ画像102の4画素をカバーしている。破線円1220は、より高解像度のソースの4画素を含む太線分割部の一つを囲んでいる。
【0060】
図13は、図12の円1220を中心とした9つの太線分割部(即ち、9つの全体画素)の拡大図である。円1300の画素は、所望の表示の1画素を表現している。図13が明らかにするように、格子パターン1210の各太線分割部は、より高解像度の画像の4画素を含んでいる。図13の詳細は、また、所望の表示の各画素は、夫々“R”、“G”、“B”と付された赤、緑、青の副画素を含む3個のカラー画素から構成されている。
【0061】
図14、15、及び16は、それぞれ、ソース画像における矩形ウィンドウ領域の配置を図示したものであり、このウィンドウ領域から、所望の表示での赤、緑、青色の副画素の輝度が決定される。このようなソース画像ウィンドウの領域は、輝度を算出することに用いられる副画素に一致するソース画像の部分を中心とした、縮小画像の画素全体の領域に一致している。
【0062】
図14の矩形部1400は、より低解像度の表示の赤色の輝度を算出するために用いられるソース画像ウィンドウを囲んでいる。同様に、図15及び図16は、所望の表示の緑、青に夫々対応するソース画像ウィンドウを囲んでいる。
【0063】
上述したように、所定の色の副画素に割り当てられる輝度は、以下の関数又は、関数の近似によって決定される。この輝度は、全体又は部分的に当該副画素に対応するソース画像ウィンドウ内にあるソース画像の各画素での当該副画素の色の強度と、当該ソース画像画素によってカバーされる当該ウィンドウ領域の割合との乗算に一致するように設定される。
【0064】
図17、18、及び19において、赤、緑、青の副画素の輝度は、所定の副画素に対応するソース画像の部分を中心として、ソース画像ウィンドウの内に在る全体又は部分的なソース画像画素の各色の輝度の関数である。この点は、図17において赤(R)について示され、ウィンドウ領域1700は当該副画素に対応するソース画像の部分を中心としている。図18のウィンドウ1800は、緑(G)に対して同様のことを図示しており、図19のウィンドウ領域1900は、青(B)に対して同様のことを図示している。
【0065】
各副画素についてソース画像ウィンドウを移動させて得られる結果として、各副画素について生成される色値は、各副画素自体の位置に一致するソース画像の部分での当該副画素の対応色を表しており、全体としての画素の位置に対応するものではない。その結果、所定の画素の異なる副画素ついての異なるソース画像ウィンドウの使用によって、結果として生じる画像の空間解像度が向上する。
【0066】
図17、18及び19に示された本発明の実施形態では、何れの画素が当該副画素のソース画像ウィンドウに含まれるか、及びウィンドウが当該副画素をカバーする割合とは、当該ソース画像の画素に重なる水平及び垂直方向の走査線の割合に基づいて決定される。図17では、赤の副画素の色値は、個々のソース画像に重なる水平カバレージ線1720及び垂直カバレージ線1740の割合と、当該各画素の赤色の値とを乗算した結果として決定される。各色値、すなわち、図18のスケーリング画像の緑(G)の副画素と各水平及び垂直カバレージ線1820,1840とについて、並びに、図19のスケーリング画像の青(B)の副画素の各水平及び垂直カバレージ線1920,1940とについても同様である。水平カバレージ線1720,1820,1920は、それらに対応する矩形領域の垂直方向での中心の直上及び直下の垂直方向の位置を表すことを意図している点に留意しなければならない。このため、カバレージ線は、垂直方向に並んだソース画像の画素間の境界を表す位置とは完全に一致しない。同様に、垂直カバレージ線1740は、矩形領域1700において水平方向での中心の直左及び直右にある水平方向の位置を表すことを意図している。
【0067】
上記で定義されたカバレージ線は、所定色の副画素に関連付けられたオリジナル画像の領域が、所定の色又は形状でカバーされる程度を決定するための、連続関数、又は合理的に高解像度(5ビット以上の解像度)又はそれに相当する解像度の使用に関する、本発明の1つの特徴の実施形態を表している。連続カバー関数では、このカバレージ値は、サンプリングによるのではなく、数学的な関数によって決定される。この数学的な関数は、1次元又はそれ以上の次元で所定のカバーが開始及び終了する境界の位置を決定し、その様な1又は複数の境界間、又はその様な境界と所定の副画素に関連づけられたソース画像ウィンドウの境界との間の、長さ又は面積の関数としてカバレージ値を計算する。
【0068】
図17、18、及び19、並びに図30、31、及び32に示された本発明の実施形態では、連続的なカバレージ値の計算は、所定の副画素に対応するソース画像ウィンドウの内にある各ソース画像の画素を、当該ウィンドウ内にある1又は複数のソース画像画素の夫々にカバーされる矩形領域内にある1又は複数の走査線の部分を決定することによって、評価することによってスピードアップされる。所定の画素によってカバーされる当該ウィンドウの走査線全体の長さの割合は、当該画素における副画素の色値によって乗算される。このような計算結果は、当該副画素の色値を生成するために、当該ウィンドウの各走査線をカバーする全画素について足し合わされる。このようにして、カラービットマップのスケーリング画像を生成する際に、“ライン・カバレージ”型の連続的なカバー関数が、副画素の輝度を決定することに使用される。
【0069】
図20、21及び22は、より低解像度の表示画面における赤(R)に対応するソース画像ウィンドウ内の1本の水平走査線、1本の垂直走査線の使用を図示している。図21では、水平走査線2020に関連付けられたカバレージ値は以下の値の合計である。即ち、
−中括弧2120によってカバーされた画素の赤値と、中括弧2120によってカバーされた水平走査線2020の1/3の部分との乗算値。
【0070】
―中括弧2140によってカバーされた画素の赤値と、中括弧2140によってカバーされた水平走査線2020の1/2の部分との乗算値。
【0071】
―中括弧2160によってカバーされた画素の赤値と、中括弧2160によってカバーされた水平走査線2020の1/6の部分との乗算値。
【0072】
同様な方法で計算すれば、垂直走査線2040に関連付けられたカバレージ値は以下の値の合計である。即ち、
―中括弧2220によってカバーされた画素の赤値と、中括弧2220によってカバーされた垂直走査線2040の1/2の部分との乗算値。
【0073】
―中括弧2240によってカバーされた画素の赤値と、中括弧2240によってカバーされた垂直走査線2040の1/2の部分との乗算値。
【0074】
赤の副画素に対する全カバレージ値は、水平走査線について計算されたカバレージ値の1/2と、垂直走査線について計算されたカバレージ値の1/2との和である。
【0075】
同様に、図23、24及び25は、より低解像度の表示画面における緑(G)に関連付けられたソース画像ウィンドウ2300内にある1本の水平走査線及び1本の垂直走査線の使用を図示したものであり、図26、27及び28は、より低解像度の表示画面における青(B)に関連付けられたソース画像ウィンドウ2600内にある1本の水平走査線及び1本の垂直走査線の使用を図示したものである。
【0076】
図29は、上記図17乃至28において記載された種類の線のカバレージ値を使用してソースのビットマップからスケーリング副画素最適化画像を生成するための、アルゴリズム2900の擬似コード表記である。
【0077】
このアルゴリズムは、出力画像(例えば、スケーリング副画素最適化画像)の各画素行に対してループ2901を実行する。
【0078】
このループは、現在の行の各画素に対してインナーループ2902を実行する。各画素について、ループ2902は、ループ2904及び関数(関数)2914を実行する。
【0079】
ループ2904は、副画素の走査線の各々(図17乃至図28で示されたような走査線)に対して実行されるインナーループ2906を含んでいる。
【0080】
ループ2906は、関数2908及びループ2910を含んでいる。関数2908は、当該走査線と画素境界との各交差点を計算する。通常、そのような交差点の計算と、このアルゴリズム中の他の計算とは、蓄積資源や当該演算の演算量を低減するために、例えば、6〜8ビットの精度のように制限された精度で実行される。
【0081】
その後、ループ2910は、関数2912を走査線の各部分(走査線の両端、走査線の端と画素の境界、又は画素の2つの境界)に対して実行する。関数2912は、ループ2910の現在の部分にカバーされた走査線の割合に、当該部分をカバーする画素の要素色値であって現在の副画素色に対応する要素色値を乗算したものを、副画素の走査線の数で除し、ループ2904の現在副画素に関連づけられたカバレージ値に加算する。
【0082】
ループ2904が現在の画素の各副画素について副画素輝度を計算すると、関数2914は、現在の画素の色値を、計算された各副画素輝度値に等しい赤、緑及び青の値をもつ複合RGB値を持つ色に設定する。
【0083】
本発明の他の実施形態では、(例えば、24bit、26bit、12bitの色値のような)異なる長さの色値が使用され得る。このシステムは、制限されたカラーパレットで使用されるが、システムは、赤、緑、青の夫々について少なくとも4bitをもつトゥルーカラーで最適に機能しうる。16bitカラー(通常、赤及び青に5bitを割り当て緑に6bitを割り当てる(緑に対して目がより敏感であるため))は、より良好な視覚効果を提供する。
【0084】
上記図17乃至28で記述された本発明の実施形態では、1本の水平走査線と1本の垂直走査線とを利用しているが、本発明の他の実施形態では、より多くの走査線の使用及び/又は水平及び垂直方向以外の方向の走査線の使用があり得る。
【0085】
図30は、副画素最適化画像の赤(R)の副画素に関連づけられたカラー値を評価するために使用される、ソース画像ウィンドウ3020内の2本の水平走査線と2本の垂直走査線の使用を図示している。
【0086】
図31は、副画素最適化画像の緑(G)の副画素に関連付けられたソース画像ウィンドウ3120内にある2本の対角カバレージ線の使用を図示している。
【0087】
図32は、副画素最適化画像の青(B)の副画素に関連づけられたソース画像ウィンドウ3220内にある2本の対角カバレージ線、1本の水平カバレージ線、1本の垂直カバレージ線の使用を図示している。
【0088】
もちろん、図30乃至31の各図に示されたカバレージ線の配置の各々は、赤、緑及び青の副画素にも用いることができる。
【0089】
図33乃至38は、副画素の輝度値を計算するライン・カバレージ方法は、ソース画像のサイズと結果として生じる副画素最適化画像のサイズとの間のより広い範囲の異なるスケーリングに適用され得ることを図示している。なぜなら、ライン・カバレージ方法は、例えば大抵のサンプリング技術と比較して、十分な高解像度でライン・カバレージ値を測定することができる。これは、(非整数の比率であるスケールファクタを使用する場合にしばしばそのような結果になるように、)副画素のソース画素ウィンドウ内に部分的にのみ在る画素のカバレージ値を計測する事に対して比較的良い結果を生む。
【0090】
本発明の本特徴の実施形態では、7bit解像度は、ライン・カバレージ値の計算に使用され、十分な結果を生じる。より高い又はより低い解像度も使用され得るが、ライン・カバレージ値の解像度は、16(4×4)〜256(16×16)点の配列での副画素のソース画像ウィンドウ内のサンプリングよってカバレージ値を計測する技術で使用されるのと共通に、各方向ごとに2〜4bit以上が好ましい。
【0091】
図33は、ソース画像解像度から水平及び垂直方向に半分の画素を持つ方向性画素最適化画像へのマッピングのために、青の副画素に関連付けられたソース画像ウィンドウ内の様々なソース画像画素による2本の水平カバレージ線のカバレージ値を図示している。図34は、当該副画素輝度計算方法で使用される2本の垂直カバレージ線について同様なものを図示している。それ故、図33及び34は、ソース及び低減画像における画素数の間の整数の比率を図示している。
【0092】
図35及び36は、それぞれ、低減副画素最適化画像が水平及び垂直方向においてソース画像の40%だけをもつスケールファクタに対して、同じソース画像の画素によって、水平及び垂直走査線のカバレージ値を図示している。
【0093】
図37及び38は、副画素最適化画像が水平及び垂直においてソース画像の66.66%の画素を持つ場合のスケールファクタに対して同様のことを図示している。
【0094】
図33乃至38に示された走査ライン・カバレージ技術が、比較的少ない演算能力で、異なる各スケーリングのソース画像によってカバーされる各ソース画像ウィンドウの割合の正確な評価を提供することが分かる。
【0095】
図39及び40は、“領域”タイプの連続カバレージ値関数に関する図を示している。本発明の幾つかの実施形態では、各ソース画像画素に重なる所定の副画素ソース画像ウィンドウは、上述したライン・カバレージ値近似ではなく、当該副画素のソース画像ウィンドウ内にある各ソース画像の当該部分の領域の実際の計算によって計算される。各ソース画素について、副画素色に対応する当該画素の要素色値が決定される。次に、各副画素の輝度値は、カバレージ値の割合と、当該ソース画像ウィンドウ内に現れる各ソース画像画素の当該副画素色の値との乗算を合計して計算される。
【0096】
図39は、青(B)副画素に関連づけられたソース画像ウィンドウ3900を図示している。ソース画素3920は、8つの他のソース画素の部分と同様に、ソース画像ウィンドウ3900内に含まれている。ソース画素3920に重なるソース画像ウィンドウ3900の割合は、全ソース画像ウィンドウ4000の領域に渡って、図40の網掛け部4020の領域の割合を得ることによって計算される。同様に、当該ウィンドウに含まれる他のソース画素に重なるソース画像ウィンドウ4000の割合は、当該ソース画像ウィンドウ内にあるそれらの領域(当該ソース画像ウィンドウの全領域に渡って、当該ウィンドウ4000の異なる網掛け部の領域によって示される)の割合を得ることによって計算される。
【0097】
図41は、図39及び40で議論されたタイプのエリア・カバレージ関数を実行するために使用されるアルゴリズム4100の大幅簡略化・擬似コード表記を提供している。
【0098】
当該アルゴリズムは、生成されるべき副画素最適化画像において各画素行に対して実行されるループ4102を含んでいる。ループ4102は、各行において、行の各画素についてのインナーループ4104を実行する。
【0099】
このインナーループ4104は、ループ4106と関数4116とを含んでいる。ループ4106は、ループ4104の画素の各副画素について実行される。このインナーループ4106は、関数4108とループ4110とを含んでいる。関数4108は、上述したように、ソース画像のどの画素が当該副画素に関連づけられたソース画像ウィンドウ内に含まれるかを決定する。これが実行されると、ループ4110が、各ソース画像画素について実行される。
【0100】
ループ4110は、関数4112と関数4114とを含んでいる。関数4112は、ループ4110の現在のソース画像画素に重なる、副画素のソース画像ウィンドウの割合を計算する。次に、ステップ4114は、ループ4106の現在の副画素について計算される輝度に、現在のソース画像画素に重なる当該副画素のソース画像ウィンドウの割合と、当該副画素色に対応するソース画像画素の要素色値とを乗算したものを加える。
【0101】
一旦、ループ4106が現在の画素の各副画素に対して実行されると、関数4116は現在の画素の色値を、ループ4106で計算された赤、緑、青の副画素輝度値に一致するRGB色要素値をもつ色と等しく設定する。
【0102】
図42乃至53は、2色副画素最適化画像に関する本発明の特徴に関する。
【0103】
“2色”画像は、個々の画素色が2つの異なる色値の間で変化する画像である。一般に、これらの2つの異なる色は黒と白であり、ソースの画素と副画素の画像は、黒と白と黒及び白の間のグレースケールに制限された値を持つ。しかしながら、幾つかの実施形態では、2つの異なる色値は、任意の規則的な前景色及び背景色と、それらの間の中間色とを表現し得る。2色画像はしばしばテキストを表現することに使用される。なぜならばテキストの表示は、しばしば、前景色、背景色を含む2色に色づけされているからである。しかし、2色画像は、2色の他の形状、2色のビットマップ、2色化された多色ビットマップの部分、又は、グレースケール画像のような2色出力で表現されるべき多色ビットマップを表現することに使用される。例えば、多色ソース画像は、3色要素の各々の平均輝度に対応するグレースケール値を持つ各画素として単に取り扱うことによって、グレースケール画像として取り扱われうる。
【0104】
2色化副画素最適化出力画像を使用する利点は以下の点である。それらの画像は、しばしば、多色副画素最適化出力画像よりも、より高い空間解像度を提供し得るからである。その様な、より高い解像度は、2色が、黒及び白、グレースケール値、又は、不透明及び透明である場合に得られる。なぜならば、各副画素が、2色ペアの前景及び背景を表現可能であるとともに、各2色ペアの各色は、赤、緑及び青の同等の要素を持っているからである。カラーバランスを実行する必要を除いて、以下に示すように、各副画素の輝度は、出力画像中の自身の領域に一致するソース画像の部分が前景又は背景に重なる程度の関数として決定される。より小さなソースウィンドウ(例えば、画素のサイズよりもむしろ副画素のサイズに一致する)の使用によって、ソース画像のより精度の高い空間解像度を実現することができる。
【0105】
前景及び背景の色が白黒でない場合には、2色副画素最適化画像で生成される解像度は、前景及び背景の色がそれぞれ比較的輝度の等しい赤、緑及び青の値を持つが、前景及び背景の色の平均的な輝度が可能な限り異なる場合に、最も良好である。実際、2色化副画素最適化画像に関する本発明の特徴の幾つかの実施形態では、出力画像の空間解像度を向上させるために、対応するグレースケール色に向かってシフトさせることによって、出力2色の一方又は両方が、対応する入力2色から変更される。
【0106】
2色化・副画素最適化・出力画像の副画素が前景の色を表示する程度は、時折、アルファ値又は不透明値によって表現される。アルファ値は、副画素の輝度が、前景色又は背景色における色要素に一致すべき程度を示している。アルファ値“1”は、当該副画素の色要素の値が、前景色の対応する色要素に等しいことを意味している。アルファ値“0”は、当該副画素の色要素の値が、背景色の対応する色要素に等しいことを意味している。中間のアルファ値は、当該副画素の色要素の値が、前景色及び背景色の対応する色要素の加重された混合であることを意味している。副画素最適化ビットマップがアルファ値によって表現されると、アルファ値は、異なる前景及び背景の色を使用するパターンの2色画像を表現するために使用される。これはフォント形状を表現するためにも共通に使用される。なぜならば、フォントの表示においては、通常、所定のサイズの文字・フォント形状のビットマップパターンが、異なる前景色及び背景色で表示されるからである。
【0107】
ビットマップ画像の2色化・副画素最適化に関する本発明の特徴の幾つかの実施形態において、ビットマップ画像のスケーリング・副画素最適化画像は、以下の(a)〜(c)の関数として、前景又は背景の2色カバレージ値とスケーリング画像の各副画素とを関連づけることによって生成される。(a)当該副画素の領域に一致するソース画像ウィンドウ内の各ソース画像画素の前景色又は背景色の割合、(b)各ソース画像画素に重なる当該ウィンドウの割合、(c)カラー・アンバランスを低減するために副画素カバレージ値を分散するカラーバランス関数。2色出力画像がグレースケールにも多色入力画像に対しても生成される場合には、個々の副画素について計算されるカバレージ値は、当該ソース画像ウィンドウに重なるソース画像画素の全画素の輝度の関数として生成される。幾つかの実施形態では、副画素のソース画像ウィンドウに関連付けられた輝度値が他の副画素に分配される程度は、当該輝度値がカラーアンバランスを発生させる程度の関数である。
【0108】
図42乃至44は、グレースケール2色画像の各副画素の輝度を決定する方法を図示している。図42では、矩形4200は、スケーリング画像の赤(R)の副画素に対応するソース画像のウィンドウを囲んでいる。赤(R)副画素に対応する輝度は、ソース画像ウィンドウ4200に重なる1又は複数のソース画像画素の全体画素の輝度に、それぞれ当該ソース画像画素に重なるソース画像ウィンドウの割合を乗算したものの関数である。カバレージ値の割合を計算又は評価するために、公知の任意の方法を使用することができる。
【0109】
図42の実施形態では、ソース画像ウィンドウ4200は、2本の水平走査線4210,4220及び2本の垂直走査線に関連づけられている。図43及び44は、緑及び青夫々のソース画像ウィンドウ4300,4400に対応する走査線を図示している。前述の様に、ソース画像ウィンドウがソース画素に重なる割合を見積もるには、各走査線に沿って所定のカバー・ラインが開始及び停止する境界の位置を決定する数学的関数を実行する。カバレージは、1又は複数のその様な境界の間、又はそのような境界と当該副画素に関連付けられたソース画像ウィンドウの境界との間の長さの関数として、計算される。これは、図29に上述した方法と同様の方法で実行され得る。
【0110】
2色副画素最適化画像を計算する場合、カラー・アンバランスが発生するかもしれない。これは、2色方法は、全体画素が2色(通常、白又は黒)の間の分布における色値を持つ様な出力画像を生成しようとしているが、画素の個々の赤、緑、青・副画素のカバレージ値は、各副画素の前景色の割合によって決定されるからであり、即ち、個々の出力画素の色は、通常、カラー・バランス無しには、所望の2色分布(通常、グレースケール)と関係無いことを意味する。
【0111】
例えば、グレースケール画像では、ソース画像が、副画素最適化出力画像の赤、緑副画素の間の境界に対応する位置で、全体的に白から全体的に黒に変化するとき、出力画像中の対応する画素は、当該副画素を全体的に表示しようとする赤副画素カバレージ値と、当該画素を全体的に非表示にしようとする緑及び青副画素カバレージ値とを持つ。これは、たとえこの例では、出力画像がグレースケールであるべきであっても、当該画素を赤色に見える様にする結果となる。
【0112】
図45乃至47は、フォント・アウトラインのラスタ化から計算される副画素カバレージ値をカラー・バランスするために、従来技術で使用される種類の伝統的な線形カラー・バランスが、2色ビットマップから生成されるカバレージ値をカラー・バランスすることにどの様に使用されるかを図示している。
【0113】
図45は、RGBグリッド4600下でグレースケール・ソース画像画素のセットを図示している。グリッド4600は、太線分割部に囲まれた4つの画素領域を持つ。その様な各画素領域は、出力画像が表示されるべき副画素アドレス可能な画面における全体画素に対応する。各画素領域は、副画素アドレス可能な画面上で関連づけられた画素の副画素に対応する3つの領域に、さらに分割されている。
副画素に関連付けられた領域4610は、赤(R)副画素に関連づけられており、副画素に関連付けられた領域4612は、緑(G)副画素に関連づけられており、副画素に関連付けられた領域4614は、青(B)副画素に関連づけられている。副画素に関連付けられた領域4616乃至4632は、それらの各表示画面画素に関連づけられている。
【0114】
副画素に関連付けられた領域4614乃至4630は、前景色(この場合、黒)の種々の程度に対応する非白輝度値を持つソース画像に全体的又は部分的に重なっている。副画素関連領域4614乃至4630の夫々におけるソース画像画素の非白輝度値の全体は、図46のRGBグリッド4700中の対応する副画素領域にマッピングされる。各副画素領域4744乃至4760の斜線領域の高さは、対応する副画素領域4614乃至4630の非白輝度値の合計によって決定される。
【0115】
図46の下段は、副画素4750に関連づけられたカバレージ値を、副画素4750を中心とする5つの副画素に分配するのに使用される、中心加重・対称カラーフィルタの使用を図示している。副画素4750のカバレージ値の3/9は、副画素4750自身に分配される。副画素4750のカバレージ値の2/9は、当該副画素の直左及び直右に夫々ある副画素4748及び4752に分配される。副画素4750の色分配を完了するために、カバレージ値の1/9は、副画素4750の夫々左に2番目の副画素、右に2番目の副画素である副画素4746及び4754に分配される。
【0116】
一般に、カラーバランスは、色値を近接画素の近傍(近接画素は、通常、色を分配しようとしている副画素から1画素以下の距離内にある。但し、幾つかの実施形態では、その距離は2画素の大きさになることもある。)に分配する。
【0117】
図47は、図46の対称・中心加重カラーバランスフィルタが、図46の上半分に示された副画素4740乃至4762の夫々について計算されたカバレージ値に線形に適用された場合の結果を図示している。
【0118】
図47では、図47の最上段に示された各副画素4744乃至4760に関連づけられたカバレージ値は、当該副画素自身と、図46に示した様な左及び右に2つの副画素と同じ部分にカバレージ値を分配するカラーバランスフィルタを使用して分配される。図47の中段にあるグリッド4802は、各副画素4740乃至4762に分配する寄与分の大きさをグラフィカルに図示している。各副画素4744乃至4762に割り当てられた分配は、各副画素の直下に位置する垂直列を中心として配置されている。
【0119】
図47の最下段に示されたRGB副画素グリッドパターン4804は、中段のパネル4802に図示されたカバレージ値の寄与分の全てにより成される全ての寄与分を、各副画素4740乃至4762について合計して計算される輝度値を図示している。この方法を完了するために、グリッド4804の各画素の赤、緑、青・副画素の輝度値は、各画素の色を特定する3要素色値として使用される。
【0120】
この線形方法は、スケーリング画像のカラー・アンバランスを低減するが、空間解像度の実質的な低下によってそれが成される。これは、図47の最下段のRGBグリッドパターン4804における副画素輝度(副画素最適化出力画像における副画素輝度値を表している)と、図47の最上段のRGBグリッドパターン4800(出力画像の副画素に対応するソース画像画素の輝度、又は前景色カバレージを表す)とを比較することによって理解される。図47に示される様に、出力画像の空間解像度は、ソース画像の空間解像度に比較して不鮮明である。
【0121】
本発明は、副画素最適化出力画像の類似のカラーバランスを、しばしば、出力画像不鮮明度をかなり少なくして、提供する改善を含む。これは、非線形カラーバランスフィルタリング方法を使用することによって成される。非線形フィルタリングを適用する方法が、図48及び49に図示されている。
【0122】
図48のRGBグリッドパターン4900は、図46のRGBグリッドパターン4700の複製である。再言すると、副画素に対応するソース画像画素の全体輝度、又は前景色カバレージは、斜線領域によって表されている。
【0123】
非線形カラーバランス方法の最初の段階が、図48に図示されている。前述した様に、RGBグリッドパターン4900は、太線分割によって4つの部分に分割されており、各4つの部分、括弧部分4902,4904,4906,及び4908は、生成されるべき出力画像の副画素に一致する副画素領域にさらに分割されている。各画素に対して、どの副画素が、最低の副画素輝度又は前景色カバレージ値を持つか決定され、最小輝度/カバレージ値に等しい輝度(又はアルファ)値が、図48の下半分に示されたRGBグリッドパターン4910の画素4912,4914,4916,及び4918の各副画素について計算される輝度/アルファ値に加算される。
【0124】
図48の上部半分では、破線4920は、画素領域4902の最小輝度/アルファ値がゼロであることを示す。なぜならば、画素領域4902の最初の2つの副画素に関連づけられた領域がゼロの輝度値を持つからである。それ故、図48に示されたステップは、画素4912の赤、緑、及び青の副画素領域の輝度/アルファ値をゼロに設定する。同様にして、画素領域4904の最小輝度値は、画素4904の赤の副画素領域の値4922によって決定される。同様に、画素領域4906及び4908の最小輝度値は、図48の下半分の画素領域4916及び4918にマッピングされる。このステップの完了後に生じる部分的に計算された輝度/アルファ値は、図48の下段のRGBグリッドパターン4910によって表されている。
【0125】
非線形カラーバランス方法の第2段階は、図50に図示されている。第2段階のこの例では、当該画素の最小輝度/アルファ値を超える各副画素の輝度/アルファ値の部分は、図46及び47で上述された種類のカラーバランス分配フィルタを利用して、RGBグリッドパターン4910にマッピングされている。
【0126】
図49の最上段の画素グリッド5000は、図48の上段の画素グリッド4900に一致する(また、同じ副画素4740乃至4762を持つ)。但し、対応する画素の最小副画素輝度/アルファ値(低密度の斜線で示す)が除かれた後に残る各副画素の輝度/アルファ値(密度の濃い斜線で示す)の部分が表現されている点を除く。図のこの部分に示される様に、各副画素の超過・輝度/アルファ値は、図46と同じ形状のフィルタを使用して、副画素自身、左に2つの画素及び右に2つの画素に分配される。
【0127】
図49の最下部近傍で符号5004が付された部分は、非線形方法のこの例において、各副画素4740乃至4762に分配された超過・輝度/アルファ値の合計を図示している。図49の最下段に図示した様に、出力画像の各副画素について使用される輝度/アルファ値の合計を生成するために、各副画素について計算された超過・輝度/アルファ値の合計は、図48に示されたステップによって以前に副画素に加算された最小輝度/アルファ値に加算される。
【0128】
非線形カラーバランス処理を完了するために、RGBグリッドパターン4910の各副画素について加算された輝度/アルファ値は、それが関連付けられた画素の赤、緑、青の色要素値を決定するために使用される。その様な表示における個々の各画素の赤、緑、及び青色値は等しくないかもしれないが、画素行の5つ程度の隣接した副画素の如何なる近傍における赤、緑、及び青色値の合計は、実質的に等しい又はバランスされなければならない。
【0129】
線形及び非線形カラーバランスフィルタリング方法を使用して達成される結果の比較が、図50,51,及び53に記載されている。
【0130】
図50は、図46のRGBグリッドパターン4700及び図48の4900に最初にマッピングしたフィルタ前のソース画素輝度/カバレージ値を図示している。
【0131】
図51は、図49の最下段に示された様な、非線形フィルタリング方法の結果を示している。
【0132】
図52は、図47のRGBグリッドパターン4804に示された様な、線形フィルタリング方法の結果を示している。
【0133】
図51に示す非線形バランス方法の出力は、図52に示す線形方法の結果よりも、図50の元の輝度/アルファ値の空間的な分布に近い。図51の非線形方法で生成された輝度値は、不鮮明度がかなり低く、それ故、線形不法で生成された出力画像よりも高い空間解像度を知覚させる。これは、空間解像度をぼかす有害な影響を持ち、カラー・アンバランスを防止するためにカラー・バランス分配を必要とする副画素輝度/アルファ値の部分にのみ、非線形方法がカラー・バランス分配を実行するからである。これは、非線形方法を使用して各副画素に分配された副画素輝度/カバレージ値の合計(図49の数字5004で示される)と、線形方法を使用して各副画素に分配された対応する合計(図47の最下段で各副画素について示された斜線部全体によって示される)とを比較すれば分かる。
【0134】
図53は、非線形カラーバランス方法を使用して副画素最適化2色出力ビットマップを生成する方法の一実施例を、大幅に簡略化した擬似コード表記で表したものである。
【0135】
この図のアルゴリズム5300は、画像の各画素行に対して実行されるループ5301を含んでいる。このループは、各画素行に対して、2つのサブループ5302及び5322を実行する。
【0136】
ループ5302は、ループ5304、関数5314及びループ5316を実行する。
【0137】
ループ5304は、ループ5302の現在画素の各副画素に対して実行される。各当該副画素に対して、それは関数5306及びループ5308を実行する。
【0138】
関数5306は、ソース画像のどの画素が、スケーリング画像の当該副画素の領域に該当する当該ソース画像のウィンドウ部分内にあるかを決定する。
【0139】
ループ5308(関数5310及び5312を含む)は、現在の副画素のソース画像ウィンドウ内に全体的又は部分的に含まれる各ソース画像画素に対して実行される。関数5310は、当該ソース画像画素の領域に重なるソース画像ウィンドウの領域の割合を計算する。関数5312は、ソース画像画素に重なるウィンドウ領域の割合と当該ソース画像画素の平均の前景色強度とを乗算したものを、現在の副画素に対して計算された輝度/カバレージ値に加える。
【0140】
2色画像がグレースケール画像である場合には、前景色強度は、各全体ソース画像画素の、輝度、又は輝度の逆数にも対応し得る。ソース画像が多色画像である場合には、関数5312の目的のための前景色強度の計算において、各ソース画像画素の色要素の平均の輝度値は、ソース画像画素に使用され得る輝度値を決定することに用いられ得る。
【0141】
ループ5304は、図46に示された種類の輝度/カバレージ値を決定することに使用され得る。
【0142】
ループ5304が現在の画素の各副画素に対して実行されると、関数5314は、図48の上半分に図示されたように、現在の画素について計算される最小の副画素の輝度/カバレージ値を見つける。
【0143】
これが実行されると、ループ5316(関数5318及び5320を含む)は現在の画素の各副画素について実行される。
【0144】
関数5318は、当該副画素について計算されている輝度/アルファ値を、図48の下半分に示されたように、関数5314によって当該画素について決定された最小の副画素の輝度/カバレージ値に設定する。
【0145】
関数5320は、当該画素の最小の副画素の輝度/カバレージ値を超える、副画素の輝度カバレージ値の部分を、図49に示されたようなカラーバランス分配フィルタを使用して、現在の画素行の当該副画素について計算されている輝度/アルファ値及び近傍の副画素の輝度/アルファ値に分配する。
【0146】
本発明の実施形態の1つでは、所定の副画素に対して成されたこのような分配の合計が最大許容輝度/出力値を超えた場合、副画素の輝度/アルファ値はその最大値に制限される。この切り捨てはいくらかのカラー・アンバランスをもたらすかもしれないが、本発明者は、結果として生じるアンバランスはほとんど気づくことができないものであることを了解している。
【0147】
輝度/アルファ値が当該行の各副画素について計算され、ループ5302が完了されると、ループ5322は、関数5324が当該行の各画素に対して実行されるように処理する。
【0148】
この関数は、当該画素の色値を、当該画素の赤、緑及び青の副画素について夫々計算された輝度/アルファ値に該当する赤、緑及び青の要素値を含む混合RGB値を持つ色に等しくなるように設定する。図54は、表示(装置)のユーザが動的にトレードオフを実行する本発明の1つの特徴を図示している。このトレードオフは、ソース画像から生成された副画素最適化画像が、多色副画素最適化処理よって生成されるか、2色副画素最適化処理によって生成されるかの程度の間のトレードオフである。多色副画素最適化によって生成される出力画像は、合理的な色精度で縮小カラー画像を表現し得る一方、この例の2色副画素最適化は、グレースケールの出力画像のみを生成し得る。しかし、幾つかの場合には、このようなグレースケールの出力画像は、多色副画素最適化によって生成された出力画像よりも、より精度の良い空間解像度を持ち得り、特に、ソース画像がシャープなエッジを持つ白黒部分を持つ場合には、カラーアンバランスを知覚し難い。
【0149】
カラービットマップ画像5400は、スケーリング及び副画素最適化されたグレースケールビットマップ5440を生成するために、図42乃至53の上記例のような、2色副画素最適化方法を使用する関数5410及び5430の利用によって、スケーリング及び副画素最適化される。カラービットマップ画像5400は、プロセス5420によってもスケーリング及び副画素最適化されることがある。プロセス5420は、スケーリング及び副画素最適化されたカラービットマップ5450を生成するために、図17乃至40に上記された例のような、多色副画素最適化方法を使用する。
【0150】
図54に示された本発明の実施形態によると、表示(装置)のユーザは、プロセス・ステップ5460に従って、ポインティングデバイス、キーボード又は他の入力デバイスのような表示(装置)の制御装置を操作し、カラービットマップ5450とグレースケールビットマップ5440とを混合させることができる。これは、例えば、スライドバーの操作によっても成され得る。プロセス・ステップ5480は、グレースケールビットマップ5440及びカラービットマップ5450と、ユーザが選択したカラー/グレースケールのトレードオフ情報とを受け取り、ユーザが選択したカラー/グレースケールのトレードオフ5460の関数として各々の色値に重み付けをして、グレースケールビットマップ5440及びカラービットマップ5450からの該当する画素の色値を混合する。
【0151】
図54に示された種類の幾つかの実施形態では、ユーザがカラー/グレースケールの分布の何れかの極限でトレードオフを選択するとき、このプロセスは、選択された極限に該当するビットマップ5440又は5450のみを計算することによって演算を低減することができる。
【0152】
本発明の本特徴の利点は、表示(装置)のユーザが、カラーバランス及び/又は位置的精度の何れを最も重要と考えるかを選択することができ、色精度を最も重要と考える場合にはこれを選択することができ、単により判読しやすい表示を見つけるためにトレードオフの選択を変化させることもできる。
【0153】
本発明の全ての特徴が副画素最適化されたテキストを必要とする訳ではなく、副画素最適化されたフォント形状のビットマップのテキストを生成する従来方法を使用するものの多くを必要としない。しかしながら、本発明の幾つかの特徴は、フォントビットマップを生成する方法における改善に関する。
【0154】
図55乃至97は、副画素最適化されたフォントビットマップの形成及び使用に関連している。
【0155】
図55は、フォント・アウトライン5500を図示しており、ここでは、タイムズ・ローマン・フォントの大文字の“B”のアウトラインを図示している。このアウトラインは、複数の個々の全体画素5504を含んでいる副画素グリッド5502の上に重ねて表示されている。各全体画素5504は、赤、青及び緑の副画素5506、5508、5510をそれぞれ含んでいる。
【0156】
図55に示されたフォント・アウトラインは、比較的通常のテキストサイズでの表示に使用され得るアウトラインである。これは、本発明者の副画素最適化文字・フォント形状の方法が、広い範囲の応用に渡って適用可能であり、図11の最下段に示された種類の小型画面表示(装置)に制限されないことを示している。しかしながら、本発明のこの特徴が小型画面表示及び/又は極めて小さい画素サイズでのフォントの表示に適用される場合には、フォントは小さなサイズでの表示のために最適化されることが好ましい。例えば、幾つかの実施形態では、em当たり10画素以下、又はem当たり8画素以下のような場合である。
【0157】
図56は、副画素アドレス可能な画面上で小型表示のために最適化されたフォントを図示したものである。図57は、2倍のサイズで同じビットマップを示している。不運なことに、図56及び57に示されたビットマップの印刷物は、全体画素の平均的な輝度を表示しており、ビットマップが副画素アドレス可能な表示(装置)上で示されたときに可能になる様なより高い解像度を獲得できていない。
【0158】
図56及び/又は57に示されたフォントは、ヒンティング処理によって生成されている。ヒンティング処理では、個々のフォント・アウトラインの境界を、画素の境界、副画素の境界、及び副画素の境界の間にある水平及び垂直方向の中間に選択する。このような高解像度ヒンティングは、副画素表示上で最適な判読性を達成するために使用される。これは、フォントデザイナーの視点での個々の文字の副画素最適化ビットマップに、当該文字が小型フォントサイズで表示したときに可能な限り明瞭になっていると相対的に満足できるまで、様々なヒンティング値を持たせることによって成される。フォント・ヒンティングのこれらの知識が理解されるように、フォントは、そのフォントの全てのサイズの表現に渡ってフォント・アウトラインの個々の部分の配置を命令するヒント値と、特定の画素サイズでの文字・フォント形状に適用される特別なヒント値とを持つことができる。図56及び57に示されたフォントは、em当たり8画素での表示を最適化するようにヒンティングされており、それらの幾つかは、そのような小さなサイズにのみ適用されるべき特定のヒント値を持っている。
【0159】
実際、320×240画素解像度の画面ショットにおけるフォントのほとんどは、そのサイズでの表示のために特にヒンティングされたem当たり8画素のフォントである。これらのフォントは、比較的大量のウェブテキストを小型画面上に適合させる一方、比較的高水準の判読性を提供する。これらのフォントは、隣接する文字同士を隔てるスペースが在ればそれを含んで、低解像度の場合のほとんどの文字を4画素列以下で表示可能にする。そのような小さいフォントの判読性は、副画素最適化の使用によってもアンチエイリアス処理によっても大幅に向上される。なぜならば、これらは、文字形状が所定の画素をカバーする程度についての情報が、単なる全体画素レベルでの2色表現よりも多く表現されるようにするからである。実際、副画素最適化はアンチエイリアスの一種と考えられている。なぜならば、それは、伝統的なアンチエイリアスと同様に、フォント形状によって部分的にカバーされる画素が、そのようなカバー範囲の程度の関数として変化する色値を持つようにするからである。
【0160】
図58及び59は、本発明によって生成された副画素最適化ビットマップが、フォント・アウトライン及び/又はフォント・ビットマップとして表現され得ることを図示している。フォント・アウトライン表現5802は、好ましくは、文字・アウトラインの境界を1又は複数の異なるフォントサイズに最適に配置するように設計されたヒンティング情報とともに、所定のフォントの1又は複数の文字の形状の数学的幾何学的な記述を含んでいる。これらのフォント・アウトラインは、今議論されたような、副画素アドレス可能な表示上で最適に表示されるように設計されており、かつ、副画素アドレス可能な表示上での表示に最適化されたヒンティング値を持つものである。
【0161】
フォント・レンダリング5806は、以下に記述されるように、そのようなアウトラインから副画素最適化ビットマップ5804を生成することに使用され得る。
【0162】
本発明の幾つかの実施形態では、図58に図示されたように、コンピュータ5808及び/又は該コンピュータ上で実行するアプリケーションは、フォントサーバ5812からコンピュータネットワーク5814を介してアクセスされたフォントビットマップ又はフォント・アウトラインを使用して、テキストを表示する。他の実施形態では、図59に図示されたように、コンピュータ5900及び/又はその上で実行されるアプリケーション5902は、それらの中に蓄積されたテキストを表示するために必要なフォントビットマップ5904を保持している。そのようなコンピュータ及び/又はアプリケーションは、フォント・ビットマップのみを保持可能であるか、又は、それらはスケーリング可能なフォント・アウトライン5902を蓄積し、異なるサイズで必要とされるフォントビットマップ5904を表示することが可能である。
【0163】
フォントビットマップのみを蓄積する利点は、コンピュータ5900上にフォント・アウトライン及びフォント・レンダリングを蓄積する必要がない点である。これは、また、フォント・レンダリングに含まれる演算が必要ない。さらに、多くのフォントヴェンダーは、フォント・アウトラインよりもフォント・ビットマップがインターネット上で比較的自由に利用可能なように許容することの方を強く望んでいるからである。
【0164】
図58に示されたようなフォントサーバからフォントを受け取る利点は、それによって、クライアント5808が、図58に表現されたように、大規模なフォントライブラリを蓄積する必要なしに必要なフォントをダウンロードすることによって、多数の中の任意のフォント、サイズ及び文字の組み合わせで、テキストを表現できる点である。好ましくは、クライアントコンピュータ5808は、文字列(ストリング)を表示しようとする度にネットワーク5814を介して通信する必要がないように、合理的な数の文字・フォントビットマップをキャッシュする。
【0165】
図60は、アルゴリズム6000の大幅簡略化・疑似コード表現であり、このアルゴリズムは、副画素最適化フォントビットマップの生成に関する本発明の特徴の幾つかの実施形態に使用される。このアルゴリズムは、図48及び49で上述された種類の非線形カラーバランスを使用している。そのような副画素最適化アルゴリズムは、テキスト文字の表示に使用することに特に最適である。なぜならば、ヒンティングの使用のために、テキスト・アウトラインの境界の空白画素の境界への配列は、ラスタ化フォント形状において極めて一般的であるからである。
【0166】
図60のアルゴリズム6000はループ6002を含んでおり、ループ6002は、所定の画素解像度での個々の文字・フォント形状のラスタ化において、各画素行に対して実行される。このループ6002は、各画素行に対して順次実行される3つのサブループ6004、6008及び6020を含んでいる。
【0167】
ループ6004は、ループ6002の現在の繰り返しが実行されつつある画素行において、各副画素に対して実行される。各副画素に対して、ループ6004は、関数6006を実行する。関数6006は、画像を生成しつつある文字・フォント形状によってカバーされる当該副画素の領域の割合の関数として、各副画素についてのカバレージ値を決定する。
【0168】
図61乃至90は、図60のステップ6006における各副画素のカバレージ値を決定することに使用され得る方法を議論するために使用される。
【0169】
図61、62、63に示されるように、カバレージ値が所定の画素5504について計算される、文字・フォント形状の画像における領域は、赤、緑、青の副画素5506、5508、5510によって夫々表示される当該画像の領域に一致している。これは、副画素最適化多色画像の場合には、図14乃至16に上述したように、各副画素に該当するソース画像ウィンドウがより大きい点で、副画素最適化多色画像の場合とは異なる。図60の方法で使用されるソース画像ウィンドウは、上記図42乃至44に関して記述された2色ビットマップに使用されたソース画像ウィンドウの領域と同じサイズを持っている。
【0170】
このような、より高解像度のソース画像ウィンドウが使用され得る。なぜならば、大抵のフォント・アウトライン表現によって表現される文字・フォントの形状は、前景色(大抵の場合には、アルファ値=1によって表現される)に対応すると考えられるフォント・アウトラインと、背景色に関連付けられる画像の他の全ての部分(大抵の場合には、アルファ値=0で表現される)とによってカバーされる領域をもつ2色画像であるからである。
【0171】
図60の関数6006におけるカバレージ値の計算は、図55に示されたグリッド5502の副画素の解像度と同じ空間解像度を持つ画素の配列に関連付けられた文字・フォント・アウトラインをラスタ化できる任意の従来技術を使用して実行され得る。
【0172】
図64乃至67は、フォント・アウトライン6402によってカバーされたラスタ化グリッドにおいて、ユニットの割合を計算することに使用されてきた伝統的な方法の幾つかを図示している。この従来技術では、ラスタ化のユニット6400は、典型的には、出力画像における全体画素に該当する領域である。図60の方法では、それは出力画像の副画素に該当する領域である。
【0173】
図64は、アウトライン6402によってカバーされるユニットの領域を正確に計算するための数学的技術を使用する方法であって、ラスタ化ユニット6400のカバレージ値を決定するための方法を図示している。これは、比較的コンピュータ資源を多く必要とするものであり、それ故、かつてほとんど使用されたことはない。
【0174】
図65には、実質的によりコンピュータ資源を節約できる方法が記載されている。この方法では、文字・フォント形状の境界の小片方法的な線形近似6504を使用することによって、アウトライン6402にカバーされるラスタ化ユニット6400の割合を計算している。
【0175】
図66は、さらにコンピュータ資源を節約できるが、実質的により精度の低い結果を生成する方法を図示している。この方法は、アウトライン6402の形状内にあるサンプルポイント6600の割合を決定することによって、ラスタ化ユニット6400のカバレージ値の割合を求めている。
【0176】
図67は、図66の方法のように比較的低いコンピューター資源によって、同じものに対してより精度の良い結果を提供するカバレージ値決定の方法を図示している。それは、アウトライン6402によってカバーされる多数の走査線6700及び/又は6702の平均的な割合の関数として、ラスタ化ユニットのカバレージ値を決定する。
【0177】
図68乃至87は、ラスタ化ユニットのカバレージ値を計算する極めてコンピュータ資源を節約できる方法を図示している。その方法は、図66において同じ演算量ついて示されたサンプリングの方法よりも典型的に良い結果をもたらす。
【0178】
この方法の一実施形態は、本発明の発明者の一人であるSampo J. Kaasilaの名前で出願された米国特許出願において、より詳細に記載されている。この米国特許出願は、シリアル番号09/363,513である。それは、19999年7月29日に出願され、”Systems For Rapidly Performing Scan Conversion With Anti-Aliasing Upon Outline Fonts And Other Graphic Elements”の名称である。この出願は、PCT出願(PCT/US00/21559)において開示が公開されている。この出願は、全文が、参考文献として添付されている。
【0179】
図68乃至87において、ラスタ化ユニットのカバレージ値は、フォント・アウトラインの形状6402によってカバーされる、2つの走査線(水平走査線6804又は垂直走査線6802)の1本の割合によって決定される。そのカバレージ値がラスタ化ユニットのカバレージ値として使用される走査線は、より中間的なカバレージ値を持つ走査線である。例えば、水平及び垂直走査線のカバレージ値が0〜126の範囲で計算される実施形態では、選択される走査線は、そのカバレージ値が50割合のカバレージ値を示す63に近い走査線である。
【0180】
図68乃至71では、ラスタ化ユニット6400のカバレージ値の割合を表すのは、垂直走査線6802のカバレージ値の割合である。図72乃至75では、最も中間に近い値を持ち、それ故、全体のラスタ化ユニットのカバレージ値の割合を表現するのに使用されるのは、カバレージ値の割合を持つ水平走査線6804である。
【0181】
図76乃至87の残りの全てにおいて、より中間に近いカバレージ値を持つ走査線のカバレージ値は、通常、全体のラスタ化ユニットに対するカバレージ値に非常に近く、それは、通常、全体のラスタ化ユニットのカバレージ値から25割合以上変化しないと考えられる。
【0182】
図88乃至90は、それらのカバレージ値のうちより中間に近いカバレージ値を持つカバレージ値の関数として、それらの対応するラスタ化ユニットのカバレージ値に、個々の走査線のカバレージ値の組み合わせを重み付けする方法において、使用され得る他の組み合わせを示している。そのような方法では、全体ラスタ化ユニットについて計算されるカバレージ値は、各走査線のカバレージ値と、それの中間性とを乗算し、これらを各走査線の中間性の合計で除したものに等しく設定される。この計算では、走査線の中間性は、当該走査線の最も中間に近いカバレージ値の割合から、最も中間に近いカバレージ値の割合と走査線の実際のカバレージ値との差の絶対値を減算したものに等しい。
【0183】
図91は、画素5504の行9100の赤、緑、青の副画素5506、5508、5510のそれぞれにマッピングされた仮想のフォント・アウトライン9102を図示している。
【0184】
図92は、当該副画素の行9100全体の各々に対して計算された対応するカバレージ値9202を図示している。
【0185】
図93は、個々の副画素について決定されたカバレージ値が線形カラーバランス法を用いて、どのように分配されるかを図示している。線形カラーバランスは、図46において上述したものと同様である。
【0186】
図60に少し戻って見ると、同図のステップ6006が行の各副画素に対するカバレージ値を計算又は評価すると、図92に示されたように、ループ6008が当該画素の各画素に対して実行される。このループの色は、行の当該副画素に対するカバレージ値を調和させる。それは、図93に図示されるとともに、図46及び47で上述された種類の線形カラーバランスルーチンを使用しない。その代わりに、それは、図48乃至53で上述されたものと同様の非線形カラーバランス技術を使用することにより、より高い知覚性の空間解像度を達成する。
【0187】
ループ6008は、各画素に対して、2つの関数6010,6012及びループ6014を実行する。
【0188】
関数6010は、現在の画素のどの副画素が当該画素について計算された最小カバレージ値を持つかを見つける。次に、ステップ6012は、この最小カバレージ値を、現在の画素の各副画素について計算されている一時的なアルファ又は不透明値に加算する。
【0189】
次に、ループ6014は、現在画素の各副画素について関数6016及び6018を実行する。関数6016は、ループ6014の現在の副画素に対して、当該副画素が一部を成す画素について見つけられた最小カバレージ値を超える当該カバレージ値について計算されたカバレージ値超過分を決定する。次に、関数6018は、この超過値を、現在画素行において、現在副画素について計算されている副画素アルファ値と、現在副画素の左に2つの副画素と、現在副画素の右に2つの副画素とに分配する。この関数は、図49で上述されたものに該当する。
【0190】
図94及び95は、2つの異なるカラーバランス・分配フィルタを図示しており、このフィルタは本発明の一実施形態において使用される。この実施形態では、図94に示された非対称中心加重カラーバランス・フィルタが、赤及び緑の副画素に関連づけられたカバレージ値を分配することに使用される。図95に示された非対称カラーバランスフィルタは、青の副画素に対応するカバレージ値を分配することに使用される。それ故、本発明のこの実施形態は、ある色に対して他の色と異なる形状の分配を使用している点で、図49において上述されたプロセスとは異なっている。
【0191】
本発明の発明者の一人は、人間の目は青よりも緑の方を大幅に知覚するので、異なる色の副画素に対応するカラーバランス・カバレージ値はそのような異なる分配のフィルタを使用するべきである点を発見した。非線形カラーバランス(2色画像の非線形カラーバランスを含む)に関連する本発明の他の実施形態では、異なるカラーバランス・フィルタが各異なる色に対して使用されることができ、同じカラーバランスフィルタが全ての色に対して使用されされることができ、対称又は非対称のカラーバランスフィルタが使用されることができる。
【0192】
図94及び95に示された特定のカラーバランスフィルタは、0〜126のスケールで計算されるカバレージ値での使用のために設計されている。0〜126の値を持つ所定のカバレージ値は、図94及び95のテーブルの右側にある5つの分配値セットに対応しており、そのテーブルの左側にあるこの対応する色は、それ自身の色値に最も近い。例えば、現在副画素のカバレージ値が赤又は青の色について126である場合、1の加算が現在副画素の左側に2番目の副画素及び右側2番目の副画素に対して計算されているアルファ値に成され、3の加算が現在副画素の左側1番目の副画素及び右側1番目の副画素に対して計算されているアルファ値に成され、4の加算が現在画素に対して計算されているアルファ値に成される。この特定の実施形態では、アルファ値は0〜12のスケールで計算される。
【0193】
図94及び95に示されたカラーバランス分配の相対的なサイズは、所望の分配比率をより正確に反映している。これは、これらの最後の行の各々において分配された、より大きな値が、それらの各々の上方の行において見られるよりも、大きな数値解像度をもたらすからである。
【0194】
バランスされているカバレージ値又は輝度値を記述するためのより高い数値精度を使用する他の実施形態において、バランス分配が、図94の最後の行において反映されるもの及び/又は図94の最後の行に示されたものに近い、異なる副画素への寄与の間での割合を持つことが好ましい。これは、図94及び/又は図95に示された一般的な種類のフィルタが図48乃至52において上述された様な、画像の2色副画素最適化のカラーバランスに用いられる場合に、特に言えることである。これは、ビットマップ画像の2色副画素最適化においては、副画素最適化されたビットマップを使用するものよりも低い解像度で輝度をカラーバランスさせる演算は、ほとんど利点がないからである。
【0195】
図60のループ6008がステップ6018を行の各画素の各副画素について実行させると、各画素は、各アルファ値が13段階の不透明度レベルの内の1つを持つように、その3つの副画素について計算された別々のアルファ値を持つことになる。これは、各画素が2197(即ち、13の3乗)の内の1の異なる取りうる結合アルファ値を持つことを可能にすることを意味する。本発明の他の実施形態では、より高い又はより低い解像度のアルファ値が使用され得る。
【0196】
本発明の多くの実施形態では、特に、制限された演算能力を持つコンピュータ上において、又は、フォントビットマップを蓄積又はダウンロードするために必要とされる帯域幅又は蓄積能力の低減が望まれるシステムにおいて、実行するように設計された実施形態では、カラーバランス後に取り得る異なる副画素のアルファ値の2,197の組み合わせである比較的大きな色空間から、より小さな色空間にマッピングすることが好ましい。
【0197】
図60における本発明の実施形態では、そのようなマッピングを実行する。ループ6008が現在行の各画素について実行されると、ループ6020は各画素についてさらなる関数6022を実行する。関数6022は、画素の副画素の各々について計算された3つのアルファ値を取得し、それらをルックアップテーブルの入力値として使用する。このルックアップテーブルは、画素の3つのアルファ値の取り得る組み合わせによって決定された2,197の取り得る色値の夫々を、122の値の内の1の値にマッピングする。この実施形態では、色空間は、このような小さな数の色に低減されている。これは、256値の色空間を持つ機械は、副画素最適化フォントの表示での使用に対して選択された122の値の各々を、そのような制限された色空間の半分以上を他の使用のために保持しつつ、表示できるからである。フォントビットマップを表示するためのこのような小さなカラーパレットの使用は、そのようなフォントビットマップを蓄積することに必要とされるビット数を低減し、それらのダウンロードに効率的なものにする。本発明の本特徴の他の実施形態では、そのようなマッピングに使用されるソース及び受信側の色空間は、異なるサイズを持つ。
【0198】
図96は、本発明の一実施形態において、そのようなカラーマッピングを生成することに使用される方法9600を図示している。他の実施形態では、上述したように、他の種類のマッピングが使用され得ることが理解されるべきである。幾つかの実施形態では、より小さい色空間へのそのようなマッピングが全く必要とされない。
【0199】
図96の方法は、ステップ9602から開始する。ステップ9602は、図65乃至95で上述した非線形カラーバランス・副画素最適化アルゴリズムを通じて、多数のフォントから多数の文字を実行する。これが実行されると、ヒストグラムは、取り得る2,196の異なる画素のアルファ値の各々が任意の画素について計算されている回数を保持する。このヒストグラムは有効である。なぜならば、副画素最適化ビットマップの画素について計算された3色のアルファ値のほとんどは、2,196の3色アルファ値の全体の取り得る色空間の様々な小さな領域に集中する傾向があるからである。この集中は、恐らく、非線形カラーバランスにより言えることである。なぜならば、それは、カラーバランスに必要な量的な輝度の分配を実質的に削減するからである。
【0200】
次に、関数9604は、制限されたカラーパレット(ここでは122色を持つ)を、関数9606及び9608を実行することによって生成する。この関数9606は、13のグレースケール値を選択する。このグレースケール値は、各副画素が13段階のアルファ値の1つを持つとして、全体画素のアルファ値に対して取り得りる。次に、関数9608は、先にステップ9602によって計算されたヒストグラムにおいて最も頻繁に出現する109の他の色を選択する。
【0201】
制限されたカラーパレットが選択されると、ループ9610が2,196の取り得る全体画素のアルファ値の各々に対して実行される。各取り得るアルファ値に対して、条件9612は、入力色が122色の内の1つに正確に当てはまるか否かを判別する。もし、当てはまれば、関数9614は、入力色を、構成されたルックアップテーブルにおいて同じ出力色に対応付ける。もし、条件1912が満たされなければ、ループ9618及び関数9628が、ループ9610の現在入力色に対して実行される。
【0202】
ループ9618は、パレットの122の出力色の各々に対して実行される。それは条件9620を持っており、条件9620は、マッピングされる入力色の赤のアルファ値とループ9618の現在出力色との差が、現在入力色の緑のアルファ値と現在出力色の緑の出力アルファ値との差と同じ符号であるか否かを判別する。条件9612は、また、現在画素の赤のアルファ値と緑のアルファ値との差が、入力色の赤のアルファ値と緑のアルファ値との差(いくらかの余裕を持たせる場合には、取り得る値Xを加算したもの)よりも小さいか否かを判別する。もし、これらの2つの条件(入力色とその入力色がマッピングされる先の出力色との比較的大きな差を防止するように設計するものである)が満たされていれば、関数9622乃至9626が実行される。
【0203】
関数9622は、入力色から出力色までの距離を計算する。関数9624は、その距離が、現在ループ9618における入力色までに最も近い距離であるか否かを判別する。関数9624の判別が満たされると、ステップ9626はループ9618の現在出力色を、最も近い許容されるパレット色として保存する。ループ9618が制限されたパレットの122の出力色の各々に対して実行された後、ステップ9628は、ループ9610の現在入力色を、ループ9618で計算された最も近い許容されるパレット色に対応させる。
【0204】
ループ9610が、取り得る入力色の各々に対して実行されると、これらの入力色の各々は、122の出力色の1つにマッピングされる。
【0205】
図96に示された特定のカラーマッピング手順では、カラーバランスによって生成される非グレースケールの画素の色値は、もし、ステップ9608で選択された109の最も頻繁に発生する非グレースケールの色値の内の1つにマッピングされなければ、グレースケールの色値にマッピングされる。これは、一般的に、全てのビットマップをグレースケールのアルファ値で表す伝統的なアンチエイリアスと、少なくとも同程度に良好な結果をもたらす。
【0206】
図97は、図60及び図96の方法によって生成される種類のフォント・ビットマップを副画素アドレス可能な画面上に表示することに使用されるアルゴリズム9700を図示している。
【0207】
ループ9702は、関数9704、ループ9706及び9714を含むが、表示されるべき各ストリングに対して実行される。
【0208】
関数9704は、ストリングについての平均的な背景の色値を決定するために、ストリングが描かれるべきビットマップの矩形領域の内の点のセットをサンプルする。他の実施形態では、背景色は、各文字又は各文字の各画素ごとに別々に決定される。しかし、ここで示す実施形態では、背景色は、演算資源を節約するために各ストリングに対して1回だけ決定される。
【0209】
ストリングに対する背景色が決定されると、ループ9706は、サブループ9708及び関数9712を、図96で上述された122の全体画素のアルファ値の各々について実行する。
【0210】
ループ9708は、関数9710を3つの副画素色の各々に対して実行する。この関数9710は、現在副画素色に対する輝度を、当該副画素色に該当する、現在全体画素のアルファ値の要素の関数として計算する。それは、輝度値を以下の値に設定する。即ち、この副画素のアルファ値と、描画されるべきストリングの前景色における現在副画素の該当する色の輝度との乗算値に、1から現在の副画素のアルファ値を引いた値に、関数9704で決定された背景色における現在副画素の該当する色の輝度との乗算値を加えた結果に等しく設定する。
【0211】
このループが3つの副画素の各々に対して実行されると、関数9712は、ループ9706の現在全画素のアルファ値を、ループ9708で計算された3つの副画素の輝度から成る全体画素の色値にマッピングする。
【0212】
次に、ループ9714は、関数9716及びループ9718を、副画素アドレス可能な表示(装置)上に表示される現在ストリングの文字の各々に対して、実行する。
【0213】
関数9716は、現在文字に対するフォントビットマップにアクセスする。次に、ループ9718は、そのビットマップの各画素に対して関数9720及び9722を実行する。関数9720は、ループ9706によって、文字のフォントビットマップでの現在画素に対して示される、現在全体画素のアルファ値にマッピングされている色値を見つける。この色値が見つけられると、関数9722は、副画素アドレス可能な表示(装置)における該当する画素を、全体画素の色値に設定する。
【0214】
ループ9718がストリングの各文字の各画素について実行されると、ストリングは、副画素最適化方法で完全に表示される。
【0215】
図98乃至101は、画像及びテキストのスケーリング及び副画素最適化の技術が如何に良く作用するかを図示する。図98及び100は、共通のブラウザ・プログラムを使用して、640×480画素でレイアウト及び表示された2つの異なるウェブページの概要を図示している。図99及び101は、画像及びテキストが、上述した方法で320×240の表示(装置)上に適合するようにスケーリングされた後に、同じウェブページを図示している。不運なことに、320×240画素画像は、全体画素の平均的な輝度によって定義されるグレースケール値で印刷されおり、それ故、副画素の解像度によって加えられる実施の明瞭さは、これらの画像には示されていない。
【0216】
図102乃至103は、本発明の一実施形態におけるプロキシサーバと薄型クライアントコンピュータとの間の相互連関を、より詳細に図示している。
【0217】
図102は、図2において上述した種類のプロキシサーバ210及び薄型クライアント200を含むシステムの大幅に概略化したボックス図である。
【0218】
プロキシサーバ210は、ブラウザ10200を含んでおり、ブラウザ10200は、完全なウェブブラウザの標準的な機能を実行するためのプログラム10202を含んでいる。このプログラムは、ブラウザが薄型クライアントのためのプロキシとして動作するので、変更されている。ブラウザが、要求されたウェブページのHTML記述10204をネットワークを介して受け取ると、それは、そのウェブページの2次元レイアウト10206を生成する。
【0219】
図103は、その表示が図98及び99に示されたウェブページのHTML記述の一部を図示している。図103に示される数字10300は、図98及び99に示されたウェブページの左側列に示されたHTMLにおけるテキスト部分を図示している。数字10302は、同じ列に示された単語”Sections”を表すために使用されるビットマップを同定する画像タグを指している。
【0220】
ブラウザコードがウェブページのダウンロードを受け取ると、それは、仮想画面解像度でウェブページのレイアウト10206を作成しようと試みる。仮想画面解像度は、ウェブページの全体又は一部を表示するであろうと考えられるウィンドウのサイズに一致する。ブラウザがウェブページを表示すると考えるこのウィンドウを、仮想画面10208と称する。
【0221】
図104は、図98及び99に示されたウェブページのレイアウト10206を図示しており、それは、黒塗りの矩形部10208内において、仮想画面のそのレイアウトへのマッピングを示している。10220は、実際の画面画像を示している。実際の画面画像は、図104に示される仮想画面の所定の位置を与えられ、薄型クライアント上に表示される。
【0222】
今日のウェブページの多くは、記述例のシステムにおいて使用された640×480の仮想画面解像度よりも大きな要素を含んでいる。そのレイアウトは、ウェブページのオブジェクトをレイアウトすることに要求される最小の幅、又は、仮想画面の幅の何れか大きい方を持っている。例えば、今日では、多くのウェブページが、800画素の最小可能解像度を持つレイアウトであることが一般的である。
【0223】
この場合、仮想画面はレイアウトより小さい幅を持つことになる。これは、図104に示された例の場合である。図102に示されたこのビュー・ウィンドウ10210は、薄型クライアントの画面上に実際に表示されるべき仮想画面の部分を表している。図99及び101に示されたビューでは、ビュー・ウィンドウは仮想画面に等しい。しかし、ユーザが仮想画面の部分上にズームインすると、ズームのスケールファクタ制御10216が変化し、ビュー・ウィンドウは仮想画面のサブセットにマッピングされる。
【0224】
スクロール・コントロール10218は、ビュー・ウィンドウをレイアウトに対して相対的に移動させる。ビュー・ウィンドウが仮想画面上にないレイアウトの部分を含むように移動されると、命令がブラウザソフトウェアに送られ、仮想画面をスクロールする。イベント・キュー10220はイベント、即ち、薄型クライアントに受け取られ、ブラウザによる該当するアクションについてプロキシサーバにアップデートされているユーザ入力を蓄積する。薄型クライアントの画面上で発生するイベントは、ビュー・ウィンドウを通じて仮想画面の該当する位置にマッピングされ、その後、ブラウザのイベント・キューに配置される。その結果、ブラウザはこのような入力に対して、あたかも、入力が画面(別名、仮想画面)上の適切な位置で受け取られたように応答し、ブラウザは入力が映像出力装置上に直接入力されていると考える。
【0225】
図102のブラウザ・プログラム10202は、それが仮想画面上にオブジェクトを描画していると考える度に、ダウンロード表示リスト10212中のスケーリング位置に縮小オブジェクトを生成するように変更される。
【0226】
この表示リストは、薄型クライアントにネットワーク10222を介してダウンロードされ、薄型クライアントは、符号10212Aに示される様に蓄積する。この表示リスト10212によって参照される縮小画像もダウンロードされる。プログラム10218は、薄型表示(装置)上に、ストリング、画像、及び薄型クライアント画面10221上の表示リスト中に含まれる他の要素を配置する。もし、ユーザが薄型クライアント画面上をクリックすると、薄型クライアントのオペレーティングシステム10222は、そのクリック及びその薄型クライアント画面上での位置をイベントキュー10224に配置する。薄型クライアント上で局所的に取り扱われるプログラムに関係しないこのような各イベントは、上述したように、プロキシサーバのイベントキュー10220に更新される。
【0227】
図105A乃至110は、ブラウザ、及び薄型クライアントにプロキシを通じてウェブページをブラウズさせる目的でこれらの間の相互のやり取りを制御するように設計された薄型クライアントコンピュータ上における、プログラム及びデータ構造の大幅に簡略化された擬似コード表記である。
【0228】
図105A及び105Bは、薄型クライアントのためにプロキシとして機能することを助けるために使用される、図102に示されたブラウザのコードの部分を大幅に簡略化された擬似コード表記で示したものである。
【0229】
これらの図で図示された特定の実施形態では、通常の使用のために設計された大きなウェブブラウザは、プロキシとして機能するように修正されている。本発明の他の実施形態において、ブラウザをプロキシとして動作させるのに必要な機能は、より緊密かつ手際良くブラウザのコードに集約され得る。さらに他の実施形態では、オペレーティングシステム又はオペレーティングシステムの呼び出しに割り込む機能におけるコードは、標準的なウェブブラウズ・プログラムに薄型クライアントのプロキシとして動作させることに使用され得る。
【0230】
図105Aに示された実施形態では、ブラウザが薄型クライアントからウェブページに対する要求を受け取ると、ステップ10502及び10504がその要求を当該要求のURLに示されたサーバコンピュータに中継する。
【0231】
もし、ブラウザが図102に上述された仮想画面10208の描画又は再描画を完了した指示を、ブラウザが自身のコードから受け取ると、関数10506及び10510が、図106A及び106Cに示された画面取込及びダウンロードルーチンを呼び出す。
【0232】
図106A乃至106Cは、画面取込及びダウンロードルーチン10600の大幅に簡略化された擬似コード表記である。
【0233】
このルーチンが、今述べたように、関数10510によって呼び出されると、ステップ10602はブラウザに画面の再描画を依頼し、ブラウザは、全部又は部分的に仮想画面内に適応するウェブページの各要素を描画するルーチンを呼び出す。図106A乃至106Bのルーチンは、これらの描画呼び出しの各々に含まれる情報を記録し、図102に示されるダウンロード表示リスト10212を生成するためにこれを使用する。
【0234】
ブラウザが図106Aのメジャー・ストリング・ルーチン10606を呼び出したとき、このルーチンは、関数10608乃至10618を実行する。このような呼び出しは、ブラウザによって成され、仮想画面にレイアウトしようとしているテキストのサイズを決定する。図には示されていないが、これらの同じ関数10608及び10610は、たとえ図106A乃至106Bに示された画面取込及びダウンロードのルーチンの実行中であっても、ブラウザがストリング・サイズを測定するために呼び出しを行うときは何時でも実行される。
【0235】
関数10608は、単位ストリング呼び出しで特定されたフォントを、異なるフォントファミリー及び異なるフォントサイズを持つフォントにマッピングする。このフォント置き換えは、符号10608乃至10616によって示される3つの考慮によって制御される。
【0236】
考慮10608は、メジャー・ストリング・ルーチンに対する呼び出しで要求されたフォントサイズの関数として置き換えフォントのサイズを選択するとともに、スケール・ファクタを選択する。
【0237】
スケール・ファクタは、所定のビュー・ウィンドウ及び解像度に該当する仮想画面1028の部分の所定の次元に沿った、即ち、ビュー・ウィンドウが薄型クライアント上に表示されるのと同じ次元に沿った解像度である。幾つかの場合には、スケール・ファクタは、水平及び垂直方向に沿って使用される異なるスケール比率を表す異なる要素を持つが、しかし、多くの場合には、スケール・ファクタは、水平及び垂直の両方の解像度に対して使用される単一のスケールファクタである。
【0238】
図102に示された実施形態では、このスケールファクタは、ズーム/スケールファクタ・コントロール10216に蓄積されている。仮想画面が640×480の解像度を持つ場合には、ビュー・ウィンドウは仮想画面のサイズに等しく、ビュー・ウィンドウは320×240画面全体に表示され、スケール・ファクタは2であり、このことは、要素が薄型クライアントの画面上に、ブラウザがそれらを仮想画面上に表示しようとしている1/2の画素解像度で表示されることを意味する。
【0239】
考慮10612は、全てのフォントサイズを、考慮10610のみで選択された場合のフォントの平均的な画素サイズよりも狭く高いフォントファミリーで薄型クライアント上に表示したとき小さくなる、全てのフォントサイズを置き換える。640×480仮想画面を320×240表示画面に低減する場合には、これは、ビットマップ形式に対して、文字形式で表現されたほとんど又は全てのウェブページを含むことになる。本発明の本実施形態に使用される副画素アドレス可能な表示(装置)は、垂直方向の副画素に対して3倍の水平方向の副画素を持っているために、この置き換えを実行する。この理由で、文字の幅の低減は、文字の高さの低減よりも判読性に与える悪影響が少ない。それ故、比較的容易に判読可能なテキストの最大量をこのような副画素アドレス可能な表示(装置)画面上に表示するためには、この置き換えによって、文字の幅はスケール・ファクタ以上に効果的に縮小させ、文字の高さをスケール・ファクタ未満に効率的に縮小させる。例えば、図56、57及び99、101、168、169、172、173及び174に示された小型画面表示(装置)のフォントは、全て、このような方法でスケーリングされたフォントで置き換えられている。
【0240】
これらの図中のフォントは、em当たり8画素の画素サイズを持っている。このフォント調整におけるより低解像度の文字のほとんどは、より少ないの4画素列の改善幅内に調整される。4画素列以下の幅は、もし配列が空白を含んでいれば、空白はこのような幅を持つ文字の形状の間に発生する。これらの特別なフォントでは、80割合以上、ローマン・アルファベットの低解像度の場合の文字は、このような改善幅内に調整される。これらの文字は、4画素行以上のエックスハイトを持つ、この高さは、それらの文字を一般的に幅広よりもかなり高くする。一般的な規則では、このような相対的に狭いフォントは、より幅の広いフォントの場合よりも、大量のテキストを、所定レベルの判読性で所定の領域内に表示することができる。
【0241】
符号10614及び10616によって表現される考慮は、最小フォントサイズを制限するためにフラグが送られたか否かをテストする。これは、どのフォントも薄型クライアント表示上に所定のサイズ未満で表示されるべきではないからである。同様に、このフラグは、小さすぎて読めないようなテキストの表示を防止するために送られる。もし、仮想画面サイズ上に実際に表示された場合に、通常、どのようにウェブページテキストが表示されるかの、より正確な縮小表現を、ユーザが見たいと望むときには、それは設定されない。このような要求は、スケール・ファクタが大きい場合に特に起こり易く、テキストサイズにそのような最小値の制限を実行することは、ウェブページのレイアウトの表示を劇的に変えてしまうからである。
【0242】
もし、多くの場合そうである様に、システムが最小フォントサイズを制限しようとすると、ステップ10614及び10616は、置き換えフォントが最小画素サイズ未満になるのを防止する。本発明の本実施形態では、この最小画素サイズは、em当たり8画素である。本実施形態の開発者は、em当たり7画素での副画素表示のためのヒンティング・フォントを開発し、彼らはそのようなフォントが相対的に判読し易いことを認識したが、他のユーザから、そのような小さなフォントが判読し難いというフィードバックを受けている。
【0243】
最小フォントサイズでの制限は、しばしば、ウェブページの様々な大きさのフォントが実際に表示される相対的なフォントサイズを実質的に変える。
【0244】
本発明の幾つかの実施形態では、全てのウェブテキストは1つのフォントサイズで表示される。これは、実際に、ほとんどのウェブページに対して良好に機能する。なぜならば、ほとんどのウェブページでは、実際に大きなフォントがビットマップで表現されるからである。
【0245】
関数10608が、どのフォント・ファミリー及びフォント・サイズが、メジャー・ストリング・ルーチンが呼び出されるフォント幅に置き換えられるべきかを決定すると、関数10618は、置き換えられるフォント及びフォントサイズにおけるストリングの文字のサイズが、その測定の後に、スケール・ファクタによってスケールアップされると仮定して、ルーチンが呼び出されるストリングのストリング測定に戻る。
【0246】
この値へ戻ることは、スケーリングされる文字のフォント・メトリックスを使用して、ブラウザのレイアウトエンジンにウェブページを表示させる。これらの文字がスケール・ファクタによって実際に表示され得る画素のサイズに対して行われ、スケール・ファクタは、ビュー・ウィンドウに該当する仮想画面の部分の解像度と、ビュー・ウィンドウが薄型クライアント画面上に表示される実際の解像度との比である。これは、仮想画面が、そのレイアウトの結果として表示される実際のフォント・メトリックスとは異なるフォント・メトリックスを使用してレイアウトされることを意味している。
【0247】
画面取込及びダウンロード・ルーチンがストリング描画ルーチン10620に対する呼び出しを受け取ると、このルーチンは関数10621及び106024を実行する。
【0248】
関数10621は、ストリングが描画され始める画面上の位置を、ストリングが完全に表示される薄型クライアント画面上の該当する位置に変換する。この変換は、ビュー・ウィンドウ10210と図102に図示された仮想画面との間のマッピングを考慮する。このマッピングは、コントロール10216によって蓄積されている現在のズーム設定と、図102に示されたスクロール・コントロール10218によって蓄積された現在のスクロール設定とを両方とも反映している。
【0249】
関数10622は、符号10606乃至10618で上述された、メジャー・ストリングルーチンに対する先の呼び出しによるストリングに関連付けられた置き換えフォントファミリー及びサイズと、現在のストリングの表示のために要求された任意の他の属性とが、そのようなフォントの属性に対する現在の値と異なるか否かをテストする。各フォント属性の現在の値は、既にダウンロード・リストに記録されたフォント・コマンドによって定義される各属性に対する最後の値によって決定される。もし、このような違いが発見されれば、関数10623は、現在ストリングの表示に適したものにフォント属性を変更して、フォントコマンドを表示リストの現在の最後に蓄積する。
【0250】
関数10624は、ストリング描画ルーチンが呼び出されたところのストリングと、図102に図示された、ダウンロード表示リスト10212の最後で、ステップ10622によって計算されたところの変換画面位置とを蓄積する。図108において後述するように、これは、ストリングの変換開始位置と文字とを含む表示リスト中にあるストリングコ・マンドを実行することによって実行される。
【0251】
もし、画面取込及びダウンロードが矩形描画ルーチン10626に対する呼び出しを受け取ると、このルーチンは関数10628乃至10634を実行する。矩形描画コマンドは、ブラウザに共通に呼び出され、異なる背景色を持つウェブページの領域を生成するとともに、テキストを強調するために使用される水平及び垂直の線や、ウェブページの異なる部分間にある境界を描画する。
【0252】
関数10628は、該当する幾何学的値(これによって、該当する矩形が薄型クライアント表示上に描画される)に対する呼び出しに含まれる幾何学的な値を変換する。これは、矩形の開始画面位置と、矩形の幅、高さを含んでいる。
【0253】
関数10630は、矩形の色が、表示リストの現在(即ち、最後)の矩形の色と異なるか否かをテストする。もし、異なるのであれば、関数10632は、表示リストの最後に背景色コマンドを加え、現在の背景色を、矩形描画ルーチンの現在の呼び出しで特定された色に変更する。
【0254】
次に、関数10634は、矩形と、矩形のの変換画面位置と、幅と、高さとを矩形コマンドとともに、ダウンロード表示リストの最後に蓄積する。
【0255】
もし、画面取込及びダウンロードルーチンが、図106Bに示されたビットマップ・ダウンロード・ルーチン10636に対する呼び出しを受け取ると、このルーチンは関数10636乃至10670を実行する。ビットマップ描画ルーチンは、ブラウザに呼び出されて、映像と、フォントの映像と、バナー広告と、ホットゾーンに対応する画像と、ページのグラフィカルユーザインターフェースのビットマップとを表示する。
【0256】
幾つかの実施形態では、ウェブページを表示するために必要とされる帯域幅の量を低減するために、所定のアニメーションのみが取り込まれ、ダウンロード表示リストに記録される。
【0257】
図106A乃至160Cにおいて記載された本発明の実施形態では、特定のGUIに対応するビットマップ描画が無視される。なぜならば、薄型クライアントのプログラムは、このようなコントロールに対する副画素最適化及び縮小されたビットマップを蓄積しているからである。
【0258】
ステップ10638は、ビットマップ描画ルーチンが呼び出された画像のURLが既に、ダウンロード表示リストにおいて既に参照された画像の各々を含むダウンロード画像リスト(図示せず)にあるか否かをテストする。もしなければ、要求されたビットマップは、まだ現在のダウンロードに対して生成されておらず、関数10642乃至10662がそれに対して実行される必要がある。
【0259】
関数10642は、当該ビットマップがカラービットマップか否かをテストする。もしそうであれば、関数10644乃至10654を実行する。関数10644は、それぞれが2色分布からの1色のみを含む別々の取り扱いを正当化するために十分なサイズの1又は複数の個々の領域に対してカラー画像を走査する。2色スペクトラムは、RGBカラーキューブにおける線の中にある色のセットに該当する。即ち、赤、緑、青によって定義されるカラーキューブは、3つの主な次元のそれぞれにおいて広がっている。
【0260】
個々の処理を正当化するには十分大きい発見された画像の2色部分の夫々に対して、関数10646は、関数10648及び10650を実行する。関数10648は、画像の現在の部分において、図42乃至53で上記された種類の2色副画素最適化を実行する。このとき、画像の2色スペクトラムの最も極端な端部を前景及び背景の色として使用し、画像のその部分をスケールダウンする程度を決定する現在のスケール・ファクタを使用する。次の2,3のパラグラフで記載するステップ10654及び10658において実行されるような副画素最適化は、スケール・ファクタによって画像を縮小する。スケール・ファクタは、プロキシサーバの仮想レイアウトにおける画像の解像度と、薄型クライアント画面上に表示される解像度との比率である。
【0261】
この副画素最適化が実行された後、関数10650は、前景色が色彩的にアンバランスすぎるか否かを決定する。即ち、純粋な赤、緑又は青に近いか否かである。もし、当てはまれば、このような色の純粋さはカラー画像の空間解像度を表示する精度を低減させる。もし当てはまれば、前景色は、グレースケール値に近く、それ故、より正確な空間解像度をもたらす該当色に置き換えられ得る。
【0262】
本発明の幾つかの実施形態では、前景色の置き換えは用いられない。なぜならば、それは、カラー画像の色の量を混乱させるからである。一般的に、そのような前景色の置き換えは、前景色がカラー画像の全体の実質的な部分に渡って現れる場合を除いては、使用しないことが最良である。本発明の他の実施形態では、2色画像に対応する背景色が変更され得る。しかし、ウェブページ上において画像の背景色を変更することは、しばしば勧められることではない。
【0263】
現在画像の非2色部分のそれぞれに対して、関数10652は、ステップ10654に、図14乃至41に上記した種類の多色副画素最適化を、現在の表示ファクタでビットマップのその部分において実行させる。
【0264】
もし、ビットマップ描画ルーチンが呼び出されたビットマップがグレースケールのビットマップであれば、関数10656は、ステップ10658に、ビットマップ上で2色副画素最適化を、現在のスケール・ファクタで、黒及び白を前景及び背景色として使用して実行させる。
【0265】
関数10662は、スケールダウン、副画素最適化ビットマップを、独自の画像ID、そのURL、スケーリングされる幅、高さとともに、画像リストの最後に蓄積する。
【0266】
ビットマップ描画ルーチンが呼び出された画像が前もって画像リスト中に在ったか否かに関わらず、プログラムが関数10664に進むまでに、当該画像は、リスト中に存在し、ID番号と、変換される幅及び高さとが割り当てられている。このとき、関数10664は、ビットマップ描画ルーチンが当該画像のために呼び出された画面位置を、薄型クライアントに適用可能な位置に変換し、次に、画像の画像ID、変換画面位置、変換される幅及び高さをダウンロード表示リストの最後に持ち、図108に示された種類の、画像位置コマンドを蓄積する。
【0267】
本発明の幾つかの実施形態では、全てのビットマップ画像は、多色副画素最適化ルーチンを使用して、副画素最適化されている。他の実施形態では、グレースケールビットマップのみが任意の2色副画素最適化を受ける。
【0268】
本発明の幾つかの実施形態では、ベクトル画像が、ベクトル表現で定義された形状に対して副画素最適化が実行されることによって取り扱われうる。そのような幾つかの実施形態では、副画素最適化はプロキシ上で実行されるが、他の実施形態では、薄型クライアント上で実行される。ベクトル、又は幾何学的に定義された描画の利点の1つは、それらの表現が画像を表す簡潔さにある。それ故、薄型クライアントに対する帯域幅がもともと制限されていたとしても、ベクトル表記をダウンロードし、薄型クライアントに副画素最適化を使用してそれらを表示させることに意味がある。
【0269】
幾つかの実施形態では、画像に実行される画像認識が可能であり、認識画像をシンボリック表記で薄型クライアントにダウンロードすることが可能である。例えば、多くのウェブページにおいて大きなテキストをビットマップで表示することは一般的である。光学的文字認識が、ビットマップ、該当する文字及びフォントにおいて実行されるか、又は、当該ページを薄型クライアントに表現するのに必要な帯域幅を低減するために、フォントの近似が記号的にダウンロードされる。
【0270】
もし、画面取込及びダウンロードルーチンが、ラジオボタン、チェックボックス、テキストフィールド又はブラウザからのボタンのようなコントロール・オブジェクトを生成するルーチンに対する呼び出しを受け取ると、コントロール生成ルーチン10666(図106Cに示される)は、コントロールが描画されるべき画面位置を、薄型クライアント画面中に描画されるべき位置に変換する。関数6668は、テキストラベルを含むダウンロード表示リスト中のコントロール生成コマンド(図108に示された)を実行し、関数10670はコントロール・オブジェクトのブラウザ側の該当部分を生成する。
【0271】
本発明の本実施形態では、薄型クライアントの画面に示されたコントロール・コマンドの機能は、プロキシと薄型クライアントとの間で共有されている。状態情報(チェックボックスがチェックされたか否か、どのラジオボタンのセットが押されたか)は、薄型クライアントに蓄積されている。これは、ユーザがコントロール・オブジェクトに情報を入力する度に、薄型クライアントからプロキシに通信する必要性を防止する。一般に、クライアントが情報をサーバに送信するためにプロキシに送ることは、ユーザが、元々当該ウェブページを作成したリモートサーバコンピュータに送信すべきコントロールに対するものとして情報が蓄積されていることを示す種類のボタンをクリックした場合に限られる。
【0272】
薄型クライアントへリンクするより高い帯域幅を持つ本発明の他の実施形態においては、プロキシ上で実行される個々のコントロールオブジェクトに対応する機能をより多く又は実質的に全部持つことによって、薄型クライアントのコードを簡略化することが望ましい。
【0273】
画面取込及びダウンロード・ルーチンが、図106Aの関数10602によって要求された画面再描画が完了したことを決定すると、図106Cの関数10672は、関数10764に図107に示されたダウンロード表示リスト10700を呼び出すようにさせる。
【0274】
図107に示すように、ダウンロード表示リストは関数10702を含んでいる。関数10702は、新たな薄型クライアント画面上に新たに全部又は一部が表示される、ダウンロード表示リスト中の全ての要素を実行する。通常、これは、現在のビュー・ウィンドウ内で発生するブラウザの仮想画面中の任意の要素を含んでいる。しかしながら、以下で説明するように、薄型クライアント画面上での先のビットマップの重要な部分が再利用できるようなスクロールの場合には、少なくとも部分的に、薄型クライアント画面の現在のビットマップの再利用可能な部分にはないビュー・ウィンドウの部分において発生する要素のみをダウンロードストリーム中に配置する。
【0275】
本発明の多くの実施形態では、ダウンロード表示リストを生成する、図106A乃至106Cの関数は、もしその要素がビュー・ウィンドウ内に調整できなければ、ダウンロード表示リスト上に要素を入れない。
【0276】
本発明の多くの実施形態では、薄型クライアント内に実際に調整され得る当該要素の部分のみをダウンロードするために、ダウンロードされる要素は低減される。これは、ダウンロードに要するビット数を低減する利点がある一方、演算の複雑化を招く。
【0277】
薄型クライアント上に示すべきダウンロードリストの全ての要素がダウンロードストリーム中に配置されると、関数10704は、図108の符号10818に示すように、すべの画素のビットマップをダウンロードストリーム中にある該当する画像の位置コマンドとともに、ダウンロードストリームの最後に配置する。本発明の幾つかの実施形態では、ビットマップをダウンロードストリームの最後に配置する前に、非可逆圧縮を施す。幾つかの実施形態では、使用されるアルゴリズムは、画像中の色値をRGB色値において視覚的に知覚不能な差を持つ色の群に群化させる。このとき、緑の色値の差が赤の色値の差よりもより知覚に敏感であり、赤の色値の差が青の色値の差よりも知覚に敏感であるという事実を考慮したメトリックスを使用する。
【0278】
次に、関数10705は、先に非可逆的なアルゴリズムによって圧縮された画像を含むダウンロードストリームを、可逆的な圧縮アルゴリズムを使用して圧縮する。標準的な従来技術の可逆的な圧縮アルゴリズムがこの目的のために使用され得る。
【0279】
図108は、このようなダウンロード・ストリームの模式的な図示である。幾つかの実施形態では、このようなストリームは実際にはマークアップ言語を使用して表現される。
【0280】
図108に示されたフォントコマンド10812は、図106Aの関数10623による表示リストに記録されたフォント・コマンドを表している。
【0281】
図108のストリング・コマンド10814は、図106Aの関数10624によるダウンロード表示リストに記録されたコマンドを表している。
【0282】
図108の背景色コマンド10806は、図106Aに示された関数10632によって入力された背景色コマンドを表している。
【0283】
図108の矩形コマンド10808は、図106Aの関数10634によって蓄積された矩形コマンドを表している。
【0284】
図108に示された画像位置コマンド10810は、図106Bの関数10664によって記録された画像配置コマンドを示している。
【0285】
図108のコントロール・コマンド10816は、図106Cの関数10668によってダウンロード表示リストに配置されたコントロール・コマンドを示している。
【0286】
図107に戻ると、ダウンロードストリームの全ての要素が選択され、送る準備が完了すると、関数10706は、ブラウザコンピュータと薄型クライアントとの間のソケット接続を開通させる。次に、関数10708は、薄型クライアントに、ダウンロードストリームの表示リスト情報を送る。薄型クライアントは、次に、以下で図109A乃至109Cによって詳細に記載されるように、情報を表示する。
【0287】
図106Cに戻ると、関数10674においてダウンロード表示リストの呼び出しが完了すると、関数10676は表示リストをクリアし、薄型クライアントにダウンロードされるべき新しい表示リストが次の画面のために生成される。
【0288】
図105Aに戻ると、ブラウザのプロキシコードが、ブラウザコードの他の部分から、薄型クライアント画面に表示される1又は複数のコントロール・オブジェクトに対するクエリ(問い合わせ)を受け取ると、関数10516は、薄型クライアントに、1又は複数のコントロールオブジェクトの状態に対するクエリを送る。そのような情報が薄型クライアントから受け取られると、それは、そのような情報の要求を成したプログラムに戻される。
【0289】
図106Cの関数10666乃至10670で上記されたように、本発明のこの実施形態は、実際に、個々のコントロールオブジェクト(ラジオボタン、チェックボックス、テキスト入力フィールドのような)についての状態情報を、ウェブページのコントロール・オブジェクトが示されるウェブサイトに提出するために選択するに先だってユーザが情報を変更する場合に、通信帯域幅を低減するために、薄型クライアントに描画及び蓄積させる。ユーザが提出ボタンをクリックするときは共通して、対応するクリックイベントがプロキシーサーバに中継される。プロキシサーバは、仮想画面での対応する座標に変換された画面座標を持っており、クリックイベントは、クリックイベントがあたかも仮想画面(ブラウザがそれを表示しようとしている画面)の解像度を持つ画面上で生成されたかのようにクリックイベントに応答するために、ブラウザコードに対するブラウザのイベントキューに配置される。一旦、これが実行されると、ブラウザコードは、従来のように、現在のウェブページの全てのコントロール・オブジェクトの状態を問い合わせる。ブラウザコードが、現在のウェブページが来たところのウェブサーバにその情報を送るためである。関数10514乃至10518の操作を引き起こすのは、このような要求である。
【0290】
もし、ブラウザのプロキシコードがスクロール又は移動コマンドを薄型クライアントから受け取ると、関数10522乃至10534(図105A)が実行される。
【0291】
関数10522は、スクロール又は移動に応答して、ビュー・ウィンドウ10210(図102)をブラウザのレイアウト10206に対して移動させる。次に、関数10526は、移動の前にビュー・ウィンドウ内にあったビュー・ウィンドウのかなりの部分が、移動の後も未だビュー・ウィンドウ内にあるか否かをテストする。もし、そうであれば、現在薄型ブラウザ画面に表示されようとしているビットマップの実質的な部分が、要求されたスクロール又は移動の後の表示においても再利用できることを意味する。この場合、関数10528は、スクロールコマンド10804(図108においてダウンロードストリームの最上部近くに図示された)を、スクロール後の画面に対して生成されるべき新しい表示リストの開始位置に置く。そのようなスクロールコマンドはXYシフト値を含んでいるが、このシフト値は、薄型クライアントの画面のビットマップのどの部分が再利用できるかを示している。
【0292】
図108では、クリアコマンド10802及びスクロールコマンド10804が、ダウンロードストリームの開始位置に示されている。本実施形態では、2つのコマンドのうち1つのみ、クリアコマンド又はスクロールコマンドがダウンロードストリームを開始させる。前者は、薄型クライアント画面が全体的に再描画されるときに使用され、後者は、薄型クライアントの先のビットマップの部分が新しい画面での再利用のために移動されるときに使用される。
【0293】
先にダウンロード及び描画された画面表示の実質的な部分の再利用は、スクロール・コマンドの使用によって可能になり、位置において比較的小さな変更を含むスクロールにおいて、薄型クライアントにダウンロードされるべきデータ量を実質的に低減することができる。これは、スクロール画面が薄型クライアント上に表示される速さを実質的に向上させる。特に、ブラウザと薄型クライアントとの間に制限された帯域幅しかない状況、例えば、本願の出願時点で一般的に比較的遅いデジタル携帯電話回線の接続で通信されていたような状況では、そうである。
【0294】
もし、スクロール又は移動から生じる移動されたビュー・ウィンドウが、仮想画面10206(図102に模式的に示されるような)において現在存在しないウェブページのレイアウトの部分を含んでいる場合には、関数10530(図105A)は、関数10532及び10534を実行する。関数10532は、ビュー・ウィンドウの全ての部分がその内に含まれるように、ブラウザの仮想画面をスクロールさせ、次に、関数10534が新たに移動された仮想画面に対する再描画をブラウザに要求する。一旦この描画が完了すると、関数10506及び10510は、図106A乃至106Bにおいて上記されたように、新たに描画された要素を取り込み、それらを描画する。
【0295】
ブラウザのプロキシがズームコマンドを薄型クライアントから受け取ると、関数10536(図105A)は、関数10538乃至10552を実行する。
【0296】
関数10538は、ズーム変更に従って、スケール・ファクタを変更する。
【0297】
関数10540は、選択されたズームに従って、ビュー・ウィンドウをブラウザの仮想ウィンドウに対してスケーリングする。
【0298】
仮想画面のスクロールが新しいビュー・ウィンドウを仮想画面内に適合させることができる場合には、ウェブページを再レイアウトする必要はなく、ズームは、仮想画面中にある異なる場所を示すこと及び/又は仮想画面を異なるスケールファクタで表示させることによって、ズーム前に在った同じレイアウトを表示させることに使用され得る。しかしながら、ズームが、ビュー・ウィンドウが仮想画面サイズよりも大きくなるようなズームアウト(図105Aに示された実施形態)である場合、ビュー・ウィンドウを全体として仮想画面内に適合させる様な新しい仮想画面サイズで、ウェブページがレイアウトされることが要求される。これは、プロキシブラウザが、薄型クライアントのビュー・ウィンドウの任意の部分に供給された任意の入力を、プロキシブラウザの仮想画面上の対応する位置で発生しているかのように扱うためである。述べられている実施形態では、新しい仮想画面解像度が先のレイアウトで使用されたレイアウト解像度よりも大きく、異なる位置において線の破断を招く場合に、ウェブページが新しいレイアウトで表示される。
【0299】
本発明の他の実施形態、プロキシサーバがズームをサポートするように修正ではなく設計された実施形態、及びクライアントが全てのレイアウトのダウンロードに対して直接ズームする実施形態では、極端なズームアウトにおいてもウェブページの再レイアウトが必要ない。
【0300】
最後に、関数10552は、画面再描画を呼び出す。これは、画面取込及びダウンロードルーチンに、新しいズームスケールファクタでの現在のウィンドウの再描画を取得させ、新しいズーム設定でウェブページを表示させることができる、対応する表示情報を薄型クライアントにダウンロードさせる。
【0301】
図105Bに示されるように、ブラウザのプロキシが薄型クライアントから仮想解像度変更コマンドを受け取ると、関数10554は、関数10556を実行する。関数10556は、ブラウザの仮想解像度を要求された解像度に変更する。次に、ステップ10560は、画面再描画を呼び出す。これは、ブラウザが新しい解像度で現在のウェブページを再レイアウトし、現在のビュー・ウィンドウの全てが、表示スケール・ファクタ(薄型クライアント上でビュー・ウィンドウが持つ画素数に対する、仮想画面でビュー・ウィンドウが持つ画素数との比)で取り込まれるように再描画するからである。
【0302】
仮想画面におけるそのような変更は、レイアウト内の画像やテキストのサイズに対して相対的に、レイアウトが実行されるサイズを変更する。ユーザが、サイズにおけるそのような変更を打ち消すような、仮想画面に対するビュー・ウィンドウの相対的なサイズの変更を行う場合を除いては、相対的なレイアウトサイズの変更は、画面上に表示される画像やテキストのサイズを変更する。相対的なビュー・ウィンドウサイズにおけるそのような補償的な変更なしでは、仮想解像度の減少は、画像やテキストがその画面上に表示されるサイズを増大させ、より多くのテキストの線が大きなテキストサイズで一度に画面上に適応するように、テキストの線をフォントのサイズに対して短くするようになる。
【0303】
それ故、仮想レイアウトサイズの変更は、ウェブページの表示に対してある種のズーム機能を提供するために使用され得る。
【0304】
本発明者は、ファクタ=2でスケールダウンする場合、即ち、ウェブページを典型的なPDAサイズである320×240の画面に表示する場合に640×480の仮想画面を使用することによって、極めて良好な判読性が得られることを発見した。しかしながら、本発明は、ウェブページをさらに高い比率で縮小されたスケールで表示することに使用され得る。例えば、800×600の仮想画面解像度をPDAサイズの320×240画面上に表示する場合であり、この場合には判読性は犠牲にされるが、ウェブページがより大きな解像度の表示ではどのように見えるかをユーザに見せることができる。もちろん、最小フォントサイズが制限されることをユーザが選択している場合(図106Aの関数10614で上記したように)、大きな仮想解像度を持つテキストでさえ、判読可能なフォントで表示される。しかしながら、ページのレイアウトは、フォントサイズの相対的な増大のため、その解像度の表示で意図した元々のレイアウトとは全く異なる。
【0305】
図105Bの関数10562によって示されるように、ブラウザのプロキシコードが、薄型クライアントの画面上でのクリックに対応して、他のユーザの入力を薄型クライアントから受け取ったとき、関数10564は、仮想画面上の対応する位置に対するクリックに対応して、薄型クライアント画面位置を変更する。そして、関数10566は、ユーザが仮想画面(ほとんどのブラウザコードがレイアウトされつつあると考える仮想画面)上を実際にクリックしたかの様にブラウザがイベントに応答できるように、イベントをブラウザのイベントキューに中継する。
【0306】
これは、プロキシ上のブラウザが、薄型クライアント上で表示されるウェブページ上でほとんどのリンク(テキストリンク又は画像リンク)を選択するために薄型クライアントのユーザが行う入力に、応答する方法である。例えば、ユーザが、薄型クライアント上に表示されたリンクをクリックすると、対応するクリックがプロキシ上のブラウザに中継される。プロキシは、表示されようとしている仮想画面中の同じリンクを、ユーザがクリックしたかのように動作する。プロキシのブラウザは、次に、リンクに該当するHTTP要求をインターネットを介して発行することによって、応答する。リンクに該当するウェブページが受け取られると、ブラウザは、それを仮想画面上にレイアウトし表示させようとする。また、このとき、ブラウザは、図105Aの図10506及び10510によって、ビュー・ウィンドウに対応するレイアウトの部分に含まれる情報を取得させ、その画面上での表示のために薄型クライアントにそれをダウンロードさせる。その結果、薄型クライアントのユーザは、通常のブラウズコンピュータのユーザとほとんど同じ方法で、ウェブをブラウズすることができる。
【0307】
図109A乃至109Cは、クライアントコンピュータ上におけるコード10900の大幅に簡略化された疑似表記である。このクライアントコンピュータは、その画面を使用してユーザがWWWをブラウズできるように、コードがプロキシブラウザとともに動作しすることを助けるように設計されている。
【0308】
関数10902(図109A)は、関数10708(図107)による薄型クライアントに送られたダウンロードストリームの全部又は初期の部分の受領に応答する。関数10902は、受信された順番でストリームに含まれる、(図108で図示された種類の)個々のコマンドに応答を開始することによって応答する。関数10902は、1又は複数のコマンドが受信されると直ぐにこれを実行開始し、新しい画面の描画の作業が、ダウンロードストリームが完全に受信されるまで遅れないようにする。ダウンロードストリームに含まれる各異なる種類のコマンドに対する応答は、図109A乃至109Bで10904乃至10956で番号が付けられた関数によって指示される。
【0309】
関数10904及び10906で示された様に、薄型クライアントがダウンロードストリーム中のクリアコマンドを読むと、ビットマップを画面上でクリアされるように表示し、全体的に白の値に設定する。
【0310】
薄型クライアントが、ビットストリーム中のスクロールコマンドを読むと、関数10908は、関数10910及び10912を実行する。関数10910は、薄型クライアント画面のビットマップの一部をコピーする。このコピーは、スクロールコマンド中で特定されたスクロールの後に、コマンド中に含まれるXYシフト値によって指定された新しい位置に再利用される。そして、関数10912は、画面の残りの部分をクリアする。
【0311】
薄型クライアントが、ダウンロードストリーム中の背景色コマンドを読むと、関数10914及び10916は、現在の矩形の背景色値を、コマンドで指定された色に設定する。これは、全ての矩形部分を、矩形コマンドに応答して、背景色値が特定された色値を持つように変更されるまで、薄型クライアントによって描画させる。
【0312】
薄型クライアントがダウンロードストリーム中の矩形コマンドを読むと、関数10918及び10920は、コマンド中で特定された画面位置、幅及び高さの矩形を、現在の背景色を使用して描画する。
【0313】
薄型クライアントが画像配置コマンドを読むと、関数10922及び10923はそのとき何もしない。ビットマップがこのような画像配置コマンドにおいて参照される画像を描画する必要性は、通常、このときには受信されない。他の実施形態では、ブラウザは、矩形描画コマンドを画像に対応付ける。このコマンドは、ビットマップ画像が表示されるべき場所を指示する画像上に矩形を描画させるために、薄型クライアントの部分を画像に対応付ける。
【0314】
薄型クライアントがフォントコマンドを読むと、関数10924及び10926は、フォントコマンドにリストされた全てのフォント属性の値を、コマンド中のこれらの属性に対してリストされた値に設定する。本発明の異なる実施形態では、異なるフォント属性が使用され得る。少くなくとも、フォントファミリ、フォントサイズ及びフォントの前景色が、フォント属性でサポートされることが好ましい。
【0315】
薄型クライアントがダウンロードコマンド中のストリングコマンドを読むと、関数10928は関数10930乃至10940を実行する。
【0316】
関数10930は、薄型クライアントがフォントビットマップ中に、現在のフォント属性値によって特定される現在のサイズ及びフォントファミリにおける現在のストリングの各文字に対するビットマップを、蓄積しているか否かをテストする。もし、そうでなければ、関数10932乃至10936が実行される。
【0317】
関数10932は、図2に上記されたフォントサーバ124にクライアントのインターネット接続を介して、HTTP要求を送る。要求されたフォントがフォントサーバから受信されると、関数10934及び10936はそれをクライアントのフォントビットマップ・キャッシュに置く。
【0318】
本発明の幾つかの実施形態は、永続的に、クライアント・ブラウザのソフトウェアの部分として、フォントビットマップの十分なセットを蓄積し、関数10930及び10936の使用が必要ないようにする。他の実施形態では、副画素最適化フォント・アウトラインが、薄型クライアントによって永続的に蓄積され、必要なときに要求される(図109Aに記載された例におけるフォントビットマップのように)。
【0319】
薄型クライアントが現在のストリングを表示するために必要なフォントビットマップの全てを保持しているとき、関数10938及び10940は、前景色を含む現在のフォント属性値を使用してストリングを、特定された画面位置での画面上に描画する。現在の実施形態では、フォントビットマップは、図60、96及び97に上記された種類のアルファ値ビットマップとして表される。このようにするとき、背景色は、一般的に、ビットマップの部分をストリングが描画されるべき画面上に乗せる。
【0320】
幾つかの実施形態では、演算を低減するために、ストリングが描画される画面の部分の色値は、比較的少ない数のポイントでサンプルされ、これらのサンプルされた色値の平均値は、図97で上記されたように、ストリング全体の表示のために背景色として使用される。
【0321】
述べられている実施形態では、ダウンロード中に含まれるストリングの全ては、1本の線テキストストリング(単一ラインテキストストリング)である。これらの多くは、プロキシ・ブラウザのレイアウトエンジンによってラインの境界を跨いだ連続的なテキストの重なりから生じる。結果として、この実施形態では、薄型クライアントはそのようなテキストの重なりを実行する必要がない。
【0322】
関数10940は、ビットマップ画像をストリングの文字に対応する別々の複数のフォントビットマップによって構成することにより、ストリングのビットマップ画像を描画する。通常、このような構成では、各異なる別々の文字は、異なる別々のフォントビットマップによって表される。
【0323】
異なるフォントサイズ(スケールファクタにおける変更によって生じる、異なるフォントサイズのような)での構成において使用されたフォントは、各フォントサイズでの判読性を向上させるために選択された各文字の形状及び画素配列を持つ。大抵の実施形態では、この改善された判読性は、ビットマップの画素形成によって文字形状の配列を向上させるために、文字の形状及びフォントビットマップに対する位置を選択することによって得られる。そのような形状及び画素配列は、em当たり10画素以下ののフォントビットマップを扱うとき特に重要であり、em当たり8画素以下ではさらにより重要である。これは、フォントビットマップが小さくなるにつれて、画素配置が悪化するためにフォントビットマップは読み難くなるからであり、それ故、フォントビットマップがこのような画素形成に適応させるために選択された文字形状及び配列を持つことがより重要になる。
【0324】
これらの図におけるフォントは、em当たりの画素サイズを持っている。このフォントにおけるより低解像度の文字の大部分は、4画素列以下の改善された幅の内に適応する。4画素列以下の幅は、このような幅を持つ文字の形状の間に発生するスペースがもしあればこれを含む。特定のフォントでは、80割合以上において、ローマン字の低解像度の場合の文字は、この改善された幅内に適応する。これらの文字は、4画素行以上のエックスハイトを持ち、この高さは、一般的に、文字が広い場合よりもかなり縦長にする。一般的な規則では、このような比較的狭いフォントは、幅広いフォントよりも、所定レベルの判読性で、所定の領域内で大量のテキストを表すことができる。
【0325】
本発明の多くの実施形態では、より小さいスケールでのステップ10940によって使用されるフォントビットマップは、画素内で発生するカラー・アンバランスのみが分配される上述された種類の非線形カラー・バランスによって生成された、副画素最適化ビットマップである。このような副画素最適化が、ビットマップの画素形成により適応するように適切に形成及び配列された形状に結びつけられたとき、描画された結果のビットマップは、画素サイズを考慮すると、極めて読み易い。
【0326】
図109Bに戻ると、薄型クライアントがコントロールコマンドをダウンロードストリームから読むと、関数10942は関数10944乃至10948を実行する。
【0327】
関数10944は、現在のコントロールコマンド中で特定されるコントロールIDに対応するデータ又はプログラム・オブジェクトを既に生成したか否かをテストする。もし、していなければ、関数10946は、コントロールコマンド中で特定された種類のデータ又はプログラム・オブジェクトを生成し、それをコマンドで特定されたコントロールIDに対応付ける。
【0328】
次に、ステップ10948は、コントロールオブジェクトの特定の種類の副画素最適化ビットマップを、薄型クライアントの画面において、コントロールコマンドにおいて特定された位置に描画する。次に、それは、コントロールに対応したテキストを、コントロールオブジェクトのビットマップ上に副画素最適化フォントを使用して描画する。次に、それは、コントロールビットマップに対応する表示画面上の位置を持つホット・ゾーンを、薄型クライアント上でコントロールを表すデータ又はプログラム・オブジェクトに対応させる。
【0329】
薄型クライアントがダウンロードストリームからの画像コマンドを読むとき、関数10950は、関数10952乃至10956を実行する。
【0330】
関数10952は、現在の表示ストリームを、現在コマンドと同じ画像IDを持つ全ての画像配置コマンドの発生に対して走査する。各画像配置コマンドに対して、それは、関数10954によって、ビットマップを、薄型クライアントの画面において画像配置コマンドで特定される位置に描画させる。全ての薄型クライアントの描画関数での様に、薄型クライアント画面上に適応しない画像の任意の部分は、描画操作において切り取られる。
【0331】
次に、関数10956は、これらの描画されたビットマップと同じ位置で発生する、表示リスト中の他の全てのアイテムを再描画する。これは以下の理由による。即ち、ウェブページがテキストを画像の最上部に置くのは一般的であり、それ故、ビットマップ画像と同じ位置に表示しようとするストリングが、これらの画像が描画された後に再描画されることが望ましい。本発明の一実施形態では、薄型クライアントは、リスト中の最初の画像配置コマンドの後に発生する、ダウンロードストリーム表示リスト中の全ての非画像要素を単に再描画する。
【0332】
もし、ユーザが、テキスト入力フィールドに対応するホットゾーン上をクリックすると、関数10958及び10960(図109B)は、関数10962及び10960からなるキーボードルーチンを実行する。
【0333】
関数10962は、ポップアップ・ユーザ・キーボード11102とテキスト編集フィールド11104とを、(図111に示されたように)薄型クライアントの画面上に表示する。次に、ループ10964が、ユーザがポップアップ・キーボードのエンターキーを押すまで実行される。このループの間、ユーザがテキスト文字をタイプする度に、関数10966は、関数10968に文字の副画素最適化テキストビットマップを、ポップアップ・キーボードのテキスト編集ライン上で現在のカーソル位置に配置させ、カーソルのビットマップを、新たに描画された文字の後に移動させる。次に、関数10970は、タイプされた文字を、ポップアップキーボードのプログラムに対応する一時的なテキスト編集ストリングに加える。
【0334】
ユーザがポップアップキーボードのエンターキーを押したとき、関数10972は、関数10974乃至10978を実行する。関数10974は、ポップアップキーボードに対応する一時的なテキストストリングを、ポップアップキーボードを呼び出すテキスト編集コマンドに蓄積する。関数10976は、テキストエディットストリングの文字を、副画素最適化ビットマップを使用して、図112に示されるように、薄型クライアント画面上のコントロールオブジェクトのテキスト入力フィールド11000のビットマップの中に描画する。
【0335】
次に、関数10978は、ポップアップキーボードが描画される前にオンスクリーン表示されたビットマップをキーボード上に描画することによって、薄型クライアントの画面からポップアップキーボードを取り除く。
【0336】
図113は、ポップアップキーボードルーチンが、テキスト入力フィールドにテキストを入力する以外の目的で使用され得ることを図示している。それは、図109A乃至109Cの擬似コード表記には表されていないが、ポップアップキーボードは、薄型クライアント上に表示され、ユーザが見たいウェブページのURLを入力することにも使用され得る。
【0337】
図114は、以下の点を除いて、実質的に図113と同じである。異なる点は、図114は、ボタンバー、ツールバーをGUIの最上部に持つ本発明の一実施形態を図示していることである。このボタンバーは、左端において、一般的にウェブブラウザで見られる種類のバック及びフォワード・ボタンを含んでいる。それは、また、リフレッシュボタン、ブックマークボタン、ヒストリーボタンに対応するR,B,Hと付されたボタンを持っており、これらの機能も一般にウェブブラウザで見られる。このボタンバーは、また、URLのテキスト入力フィールドを含んでおり、もし、これが押されると、図114に示すポップアップウィンドウが現れる。本発明の一実施形態では、ユーザは、ハードウェアのボタンを押すことによってツールバーを表示させるか否かを選択することができる。この実施形態では、このようなツールバーが示されていなくても、ユーザは、バックコマンドやフォーワードコマンドのようなウェブブラウズにより共通な機能を呼び出すことができる。
【0338】
本発明の他の実施形態では、このようなGUIのツールバーは、ユーザがブラウザの他の機能(ズームの変更及び/又はウェブページの表示の相対的なレイアウトサイズを含む)にアクセスできるようなボタン又はメニューも含むことが好ましい。
【0339】
図109Bに戻ると、ユーザが、ボタン又はメニュー項目・コントロールのホットゾーンをクリックすると、関数10980は関数10981及び10982を実行する。
【0340】
関数10981は、ボタン又はメニュー項目の出現を適切に変更する。ボタンの場合、ボタンに対応するビットマップがボタンが押されたことを示すように再描画される。メニュー項目の場合、最終的な選択がなされたか否かに基づいて、サブメニューが表示されることもあるし、メニュー項目が取り除かれることもある。
【0341】
メニュー項目の場合において最終的な選択が成されたか、ボタンが押されて離された場合、関数10982は、ボタンの又はメニュー項目のコントロールIDとブラウザに対して選択されたという指示とを送る。それは、ブラウザ上で該当するボタン又はメニュー項目のコントロールオブジェクトがあたかも押されたように動作することによって、応答される。
【0342】
もし、ユーザが、薄型クライアントコントロールの他の種類に対応するホットゾーン上をクリックすると、関数10983は、順次、薄型クライアントの表示(装置)上にあるコントロールのビットマップの出現を変更する。例えば、チェックボックスの場合、チェックは表示されることもあるし、画面上のコントロールの表示から取り除かれることもある。次に、ステップ10985は、コントロールオブジェクトに対応して該当する状態の変更を蓄積する。上述したように、本実施形態では、通信の要求を低減するために、ブラウザがそのような情報を要求するまでは、コントロールオブジェクトの状態はブラウザと通信されない。
【0343】
もし、ユーザが、クライアントプログラム又はコンピュータのコントロールインターフェースに対応しない、クライアントの画面の他の部分上をクリックした場合、関数10986及び/又は10987は、それが発生した画面位置に従って、プロキシブラウザに、そのクリックに対応するイベントを送る。関数10562乃至10556(図105B)において上記されたように、ブラウザは、クリックの位置を仮想画面上の対応する位置に変換し、仮想画面の解像度でそのクリックが描画されているとブラウザが認識するような画面上でクリックが発生したかのように、そのクリックに応答する。幾つかの実施形態では、通信の必要性をさらに低減するために、そのような他のクリックがプロキシブラウザが応答するべきユーザ入力に該当すると考える根拠を薄型クライアントが持つ場合にのみ、薄型クライアントは他のクリックをブラウザに報告する。
【0344】
図109Cに戻ると、薄型クライアントが、プロキシサーバから、1又は複数のコントロールオブジェクトの状態を尋ねる問い合わせを受信した場合、関数10988は、関数10989に薄型クライアント上の対応するコントロールの状態を問い合わせさせ、関数10909は、状態の情報をブラウザに送信する。図105Aの関数10518で上記されたように、プロキシブラウザは、次に、要求された情報を、あたかも、その情報が仮想画面に対応するコントロールオブジェクトの現在の状態の一部であるかのように、それを要求したブラウザの部分に返す。
【0345】
薄型クライアントのユーザが、画面をスクロールするコマンドを入力すると、関数10991及び10992は、そのスクロールコマンドをプロキシにアップロードする。これによって、図105Aで上記された関数10520乃至10534は、新しいスクロール位置で現在のウェブページを表示するための新しいダウンロードストリームを生成及びダウンロードする。
【0346】
ユーザが、薄型クライアント上に表示された画像のズーム(即ち、スケール)を変更するコマンドを入力すると、関数10993及び10994は、対応するズームコマンドをプロキシにアップロードする。これによって、関数10536及び/又は10552(図105Aで上記)は、新しいズーム設定での現在のウェブページの表示のために、新しいダウンロードストリームが薄型クライアントにダウンロードされる様にさせる。
【0347】
もし、ユーザが、薄型クライアントの表示の仮想解像度を変更するコマンド(プロキシブラウザ上の仮想画面がレイアウトされる解像度を変更する)を入力すると、関数10995及び10996は、選択された解像度をプロキシにアップロードする。これによって、関数10554乃至10560(図105Bで上記)は、仮想画面を新しい解像度で再レイアウトさせ、対応するダウンロードストリームを薄型クライアントに送り、ダウンロードストリームが、薄型クライアント上の現在のズーム設定でのウィンドウに対応する仮想画面の部分を表示する。
【0348】
図109Cの下部に示されたように、薄型クライアントのGUIに対応する他のコマンドをユーザが入力した場合、関数10997は、楕円10999によって示された適切な応答が実行されるようにする。そのような他の機能は、ブックマークの選択、ブックマークされたウェブページへのアクセス、バック及びフォワード機能、GUIの一部となり得る他の任意の機能を含む。このような要求は、物理的なボタン又は薄型クライアント上での他の物理的な入力によって、ボタン、メニュー項目又はダイアログボックス、又は仮想的な任意の他の公知のGUI技術のような、グラフィカルオブジェクトの選択によって選択される。
【0349】
図115乃至118は、薄型クライアントにプロキシ・サーバを通じてウェブをブラウズできるようにする他の方法に関している。この実施形態では、プロキシ・コンピュータによって生成されたウェブページの全体的なレイアウトは、図117に示したように、薄型クライアントにダウンロード及びキャッシュされる。後述するように、これによって、薄型クライアントは、実質的により速いスピードでレイアウト内をスクロールできるようになる。但し、見られる各ウェブページに対する全てのレイアウト及び画像をダウンロードしようとするものであるので、ダウンロードされる全体のビット数は増加する。
【0350】
図115は、その様なページ・レイアウト・キャッシュ手順で使用されるプロキシ・ブラウザ・コード11500の一部を図示している。
【0351】
本発明のこの実施形態では、プロキシ・ブラウザは薄型クライアントからウェブページに対する要求を受け取った場合、関数111502は関数11504を実行する。
【0352】
図15の関数11502に対応する疑似コードによって示されるように、この特別なウェブキャッシング実施形態では、薄型クライアントは、ウェブページを、そのページに対する所望のビュー設定(所望の仮想画面解像度、ズーム設定及びビュー・ウィンドウの位置を含む)で要求することができる。これによって、ユーザは、特定のURL、URLのパス名の部分を含むブックマークに、ビュー設定を対応させることができるようになり、また、ユーザは、ページが要求される度に設定値を別々に入力することなしに、所望の仮想画面解像度、ズーム設定及びビュー・ウィンドウの位置で自動的にウェブページを見ることができるようになる。例えば、ユーザは、良くアクセスするウェブページを、所望サイズのテキストを使用してそのページの所望の部分に自動的にズームインされた表示で、見ることができるようになる。
【0353】
一旦、ウェブページに対する要求が薄型クライアントから受信されると、プロキシ上の関数11504は、薄型クライアントからの要求のURLにおいて同定されたサーバからのウェブページを要求する。ウェブページがサーバから受信されたとき、関数11506は、関数11507乃至11516を実行する。
【0354】
関数11507は、プロキシ上のブラウザのレイアウトエンジンに、受信したウェブページを、ウェブページの要求において特定されたビュー設定に対応する仮想画面解像度で、レイアウトさせる。このレイアウトは、図106Aの関数10606乃至10618に関して上記されたと同様の方法で、置き換えられるフォントに対するスケーリングストリング測定を使用して実行される。スケールファクタは、現在のページへの要求において特定されたビュー設定によって決定される。
【0355】
関数11508は、現在の要求のビュー設定に含まれるビュー・ウィンドウを含む結果のレイアウトに対して、仮想画面位置を特定する。それ故、例えば、ビュー設定が640×480の仮想画面解像度出力の右端部分を見ることを要求し、レイアウトが800画素の幅をもつことが必要である場合、仮想画面位置は、レイアウトのだいたい画素列160から画素列800までに渡って延長される。
【0356】
関数11518は、関数11520に、レイアウトされているウェブページに関連して受信した各画像11702を、図117に示されるように、スケーリング及び副画素最適化する。
【0357】
一旦、ウェブページで参照された画像の全てが、受信され、スケーリングされ、副画素最適化されると、関数11522は、関数11523に、そのレイアウトに対する表示リストを生成させ、その表示リスト及び関連する副画素最適化、スケールダウン画像を圧縮する。次に、関数11524は、その圧縮されたデータを、スケールダウン、副画素最適化画像に従うウェブページレイアウトを含むダウンロードストリームにおいて、薄型クライアントに送信する。
【0358】
もし、ユーザが、異なるスケールで先にダウンロードされた1又は複数の画像を再スケーリングする要求を薄型クライアントから受け取ると、関数11526乃至11532は、その画像を再スケーリング、副画素最適化、圧縮し、薄型クライアントにダウンロードする。これによって、ユーザは、ダウンロードされたウェブページのレイアウトを異なるズーム設定で見たいと思う場合には、異なる副画素最適化サイズでそのウェブページを見ることができる。
【0359】
もし、画面入力のイベントが薄型クライアントから受信されると、関数11534は、関数11536乃至11542を実行する。
【0360】
関数11536は、コマンドに対応するページレイアウトの座標が、図117に示されたように、現在プロキシブラウザの仮想画面10208にマッピングされているウェブページのレイアウト10206の部分10206Aに一致するか否かをテストする。もし、そうでなければ、関数11538は、仮想画面を、そのコマンドに対応するレイアウト座標を含むレイアウトの新しい部分10206Bにスクロールする。
【0361】
関数11540は、受信された画面イベントのページレイアウト座標に対応する仮想画面座標を計算する。関数11542は、入力画面イベントを、ブラウザのイベントキューにおける仮想画面座標で実行し、ユーザが仮想画面上の対応する仮想画面座標をクリックしたかのように、リンクのクリックのようなイベントに応答する。
【0362】
図116は、図115及び117で図示されたページレイアウトのキャッシュ模式図をサポートすることに使用される薄型クライアントコードの部分の、大幅に簡略化された擬似コード表記である。
【0363】
もし、薄型クライアントが、ページレイアウトの表示リストを含むダウンロードストリームを受信し始めると、関数11602は、関数11604及び11606を実行する。
【0364】
関数11604は、ビュー・ウィンドウ(図117に示されたビュー・ウィンドウ10210Aのような)のマッピングをページレイアウトに対して設定すると、次に、そのマッピングに基づいて、現在のスケール・ファクタを計算する。
【0365】
関数11620は、現在のビュー・ウィンドウ内に当たるダウンロードされたページレイアウトの任意の部分を、現在のスケールファクタを使用して表示する。このプロセスは、関数11622乃至11630を含んでいる。
【0366】
関数11622は、現在のビュー・ウィンドウ内で発生する各ストリング要素を、現在のスケールファクタの関数であるフォントサイズで表示する。それが実行されると、必要であれば、各要素は、文字が表示される画素サイズが変わるときに、フォント・ヒンティングの不規則な影響から生じうる、文字の相対的なサイズにおける不適切な変更に対して調整が行われる。これは、不連続性及び非比例性を補償する技術、例えば、コンピュータ画面上でのテキストの表示と、より高解像度で印刷されたときに現れる表示との間でのウィジウィグ(WYSIWYG)一致を提供する従来の技術に類似する文字間のスペースの変更のようなものである。もし、先に表示されたものとは異なるサイズをもつビットマップが要求された場合、異なるサイズの文字に対するビットマップは、薄型クライアント上の蓄積手段からアクセスされることもできるし、ネットワークフォントサーバからもアクセスされるこもできるし、フォント・アウトラインから必要とされるサイズにラスタ化されることもできる。
【0367】
もし、関数11620によって生成された表示がビットマップ画像10818がスケールダウンされたスケールファクタとは異なるスケールファクタである場合、関数11624は、関数11626乃至11630を実行する。これらは、プロキシに、ビュー・ウィンドウ内に全体的又は部分的に在る全ての画像を、新しいスケールファクタで再スケールし、副画素最適化するように要求する。その後、同じ画像のビットマップは、薄型クライアント上に蓄積された先にスケールダウン及び副画素最適化された画像10818からローカルに再スケーリングされ、その画像に対する一時的な表示を提供するために薄型クライアント画面上に表示される。ウェブページに関連するオリジナルのより高解像度のビットマップから再スケールされた要求画像が、プロキシサーバから薄型クライアントに受信されたとき、それらは、表示画面上の適切な場所に表示される。
【0368】
幾つかの実施形態では、ユーザが表示のズームを変更すると、新しいスケールファクタでの画面上のページの部分に対応する画像のビットマップは、副画素最適化された画像を完全にダウンロードするまで、ユーザに一時的な画像の表示を提供するために、素早いが粗い薄型クライアント上で生成された画像で表示される。素早い表示は、スケールファクタが先にダウンロードされたビットマップのスケールファクタの整数倍である場合には、比較的生成し易い。このような場合以外は、一時的な表示は、多くの方法のうちの任意の方法で生成され得る。例えば、正確なスケールよりも小さい整数倍の比率に切り捨て又はスケーリングした整数倍の比率を持つ画像として表示する。これにより、一時的な画像が、一時的な画像上に描画しようとしている完全にスケーリングされた画像よりも広くならないようにする。
【0369】
もし、ユーザがプロキシ・ブラウザに送られる画面入力を生成する場合、関数11632乃至11636は、入力の薄型クライアント画面座標を、対応するページレイアウト座標に変換する。その後、画面入力と、対応するページレイアウト座標は、プロキシ・ブラウザにアップロードされる。プロキシブラウザは、次に、図115で上記された関数11534乃至11542を使用して、入力に応答する。これによって、ユーザがプロキシブラウザの仮想画面上のウェブページの対応する部分をクリックしたかのように、プロキシブラウザは画面入力に応答する。
【0370】
図115乃至117で上記した様な、薄型クライアントのユーザに現在画面上に表示されいるウェブページの部分よりも多くの部分を蓄積可能にさせるキャッシングの手順は、ユーザが、ウェブページのコンテンツに対してスクロール及び/又はズームをより素早くできる様にする。薄型クライアントがプロキシサーバに対して比較的狭い帯域幅しか持たない場合は、特にそうである。
【0371】
今述べたところの手順をキャッシュする実施形態は、本出願時に一般的に利用可能であった一般の携帯電話回線と同等の帯域幅においてさえ、比較的良好に機能する。これは、ほとんどのウェブページに含まれる全てのコンテンツ(画像を除く)は、通常、3,000byte以下になるように圧縮され得るからである。それ故、このような一般のデジタル携帯電話回線の通信速度で、ほとんどのウェブページの全てのテキスト部分は数秒内にダウンロードされ、テキストの最初の部分はさらに短い時間で描画される。もちろん、画像のダウンロードにはより長い時間を要するかもしれないが、ウェブページの最初にある画像は、大きいものを除いて、一般的に数秒内に表示される。そして、より高速の通信接続では、この表示は劇的に短くなる。
【0372】
図118乃至120は、仮想的にウェブブラウズする環境において使用される本発明の特徴を図示したものであり、これは、特に、小型画面上でウェブをブラウズするときに有効である。これは、上で議論した薄型クライアントコンピュータのような小型画面装置上での使用を含んでいる。本発明のこれらの特徴は、ウェブページの選択された部分へのズームイン又はズームアウトを含んでいるので、今述べたような種類のレイアウトキャッシュ手順の使用によって、薄型クライアントコンピュータ上で素早く動作できるように構成される。
【0373】
図118は、640×480の仮想解像度でレイアウトされた後、320×240の画面上での表示のためにダウンスケール及び副画素最適化された、標準的なウェブページを示している。このようなコンテンツは、ほとんどの人がハンドヘルドコンピュータを一般的に使用する距離で、良好な視力を持った人によって、判読可能である。しかしながら、ほとんどのウェブページのコンテンツは、より大きいサイズで表示された場合には、さらに読み易い。ほとんどのウェブページが複数の列でレイアウトされているので、しばしば、ユーザが読み始める列の最上部に表示を素早くズームできるようにすることが好ましい。図119及び120で示されたインターフェースでは、ユーザは、所望のテキスト列に渡ってズームされたビューにおける表示画面の最上部に近くで、ユーザが表示させたい垂直方向の位置に、ポインティングデバイス11902をドラッグすることによって、これを行うことができる。表示がこの種のズームを実行するモードである場合、図119の種類の水平方向への線形ドラッグは、その表示に、ドラッグで指示されたウェブページのレイアウトの幅を、画面の幅に適応するようにスケーリングする。図119で示された例では、このユーザ入力は、この表示が図120のようにズームされるようにする。
【0374】
ユーザインターフェースは、また、画面上に示されたウェブページのレイアウトにおける領域の周囲の選択ボックスをユーザがドラッグできるようにし、ウェブページの選択された領域が画面に適応するように、システムがウェブページの表示をズームすることが好ましい。
【0375】
また、以下のことが好ましい。即ち、このようなドラッグにおいて、ユーザは、画面の各端部に対応する境界を横切ってポインティングデバイスをドラッグし、これが実行されると、これに応答して、画面上で示されたウェブページの部分がスクロールし、、ドラッグの開始時には、大きすぎるか適切な位置にないために全体的に画面に適応しないウェブページレイアウトの内に、幅、高さ又は領域を適応させるようにズームの実行を、ユーザが選択できるすることが好ましい。このドラッグが、ドラッグ中に表示されるスケールファクタで画面上に適応するには大きすぎるレイアウトの部分を選択すると、テキスト及び画像が表示されるサイズを低減するようにスケールファクタを変更する。
【0376】
選択された幅、高さ、領域が画面に適応するようにスケーリングされるとは、画面の2/3と全体に対応する次元との間の最も大きな次元の範囲にスケーリングされることである。通常、このようなスケーリングは、画面の80〜90割合から全体に対応する次元の範囲にある最も大きな次元を持つ選択された長さ又は領域を生成することが望ましい。
【0377】
図121乃至図128は、ズームクリックと呼ばれる本発明の特徴を図示している。この特徴では、低解像度で見られる画面、極めて小さな画面、又は画面上の所望の位置に対して正確に配置することが容易でないポインティングデバイスが使用されている画面内で、ユーザがより容易かつ正確にアイテムを選択できる。特に、携帯電話サイズの画面、指をポインティングデバイスとして使用するタッチ画面デバイス、及びポインティングデバイスを正確に置くことが困難である移動中の車のような環境における使用されるタッチ画面デバイスを取り扱う場合に有効である。
【0378】
ズームクリックでは、ユーザが画面中の所定の位置をクリックダウンすると、クリックした画面部分が拡大スケールで表示される。ユーザは、その後、所望の位置にポインティングデバイスを押さえるまで、自由にこの拡大表示中をポインティングデバイスで操作することができる。この時点で、ユーザは、ポインティングデバイスの押さえを終了し、解除することができる。これにより、解除の時点での現位置を、従来のGUIのクリックと同じ目的で選択された位置として取り扱う。
【0379】
ズームクリックでは、ダブルクリックは、異なるように表現され得る。最も簡単なものは、ズームクリックに引き続いて直ぐの、素早い2番目のクリック及び解除を単に記録し、ズームクリックと同じ場所近くにおいてズームクリックをダブルクリックに変換する。
【0380】
ズームクリックの他の実施形態では、ズームクリックは異なるように操作されるが、好ましい実施形態では、ズームクリックにおけるダウンクリックの間の拡大表示中でのポインターの移動が、通常のポインタのナビゲーションと同じ割合で発生することが好ましい。このことは、ユーザが、他の場合の約2倍のポインティング解像度を持つことを意味する。また、ズームクリックモードにおいて確認するダウンクリックにおいてポインタが移動する間に、ユーザが画面の端に到達すると、ユーザがこのモードでページ全体をナビゲートできるように画像がスクロールする。
【0381】
図121乃至128の例では、二枚貝型の携帯電話機/コンピュータ120Cが示されている。この例では、携帯電話機は、320×240全体画素解像度をもち、カラー副画素アドレス可能である。もちろん、本発明の他の実施形態では、他の解像度が使用され得る。使用し易くするために、携帯電話機は、ユーザの指で操作される接触感度画面を持つと仮定する。
【0382】
図121は、図11及び図110に示すpriceline.comのウェブページの同じ画像を持つ携帯電話機を示している。
【0383】
図122は、ユーザが、ズームクリックモードにおいて、上記図110で議論したのと同じテキスト入力フィールド11000を選択するために、画面上に指12102で押したときに、何が起こるかを示している。通常、タッチスクリーンに指を接触させるとき、カーソルが置かれる正確な位置を前もって評価することは困難である。ズームクリックがこれに対する助けとなる。なぜなら、ズームクリックによって、ユーザは、何かの選択をする前に、タッチスクリーンに指を接触させることによって生じるカーソル170の位置を確認できるようになるからである。また、ズームクリックは、大きなビュースケールで画面を示すので、ユーザは、図123に示された所望のテキスト入力フィールド11000のような、所望のリンク又はコントロールにカーソル12204を配置するのが容易になる。一旦、ユーザが図124に示すようにタッチスクリーンから指を離すと、上記で議論した図111において現れたとちょうど同じように、ポップアップキーボード11102が現れる。
【0384】
図125に示すように、ズームクリックモードで、ユーザが、ポップアップキーボード11102において所望の文字(ここでは“b”)を触ろうとすると、触られたキーボードの部分の画像がそのスケールを大きくする。図125に示された例では、タッチスクリーンへの最初の押下時には、カーソル12204を所望の位置に正確に配置できていない。ユーザは、ズームクリックモードにおいて、指12202をドラッグさせてカーソル11102を図126に示された位置に配置することによって、この問題を容易に修正することができる。その後、ユーザがスクリーンから指を離すと、画面の画像は通常のスケールに戻り、ポップアップキーボード1102全体が示されて、次の文字がキーボード内のどこに在っても、次の文字を素早く選択できるようになる。
【0385】
図127に示すように、図126で選択された文字“b”は、ポップアップキーボードのテキスト入力フィールド11104において入力された様に表示される。
【0386】
ユーザが、図125乃至127に示された処理によって文字の選択を継続すると、ユーザは、エンターキーを選択してテキストの全ストリングを入力できるようになり、図128に示したように所望のテキストがウェブページの所望の位置に入力される。
【0387】
本発明の多くの実施形態では、ズームクリックで使用されるズームは、画面の全部又は一部上に先に示されたビットマップを整数倍(例えば2x又は3x、2倍又は3倍)で拡大することを含む。これによって、このようなズーミングは、比較的低処理能力のプロセッサによっても、実質的に瞬間的に実行される。
【0388】
図129乃至137は、ウェブページのユーザが、実質的により大きなスケールファクタでラインの境界を越えてリフロー又は再レイアウトされるように、テキストの部分をウェブページから選択することができる。このよなテキストのリフローは、小さな画面を持つ表示上で特に有用である。なぜならば、テキストのリフローによって、選択されたウェブテキストが、かなり大きなフォントで表示され、同時に、テキストの全ラインが画面内に適合するようにできるからである。これによって、連続するラインを読むために水平方向にスクロールで戻したり進めたりする必要がなく、素早く読むことができる。
【0389】
小型画面表示の解像度が如何に高いかに関わらず、表示が比較的接近している場合、人間の目は比較的大きな解像度で表示するもののみを見ることができる。本発明のこの特徴によって、比較的大きなスケールファクタで表示の幅の内に適合するラインを跨いで重なるように、ウェブテキストが表示される。例えば、対角線長さ4インチのスクリーンを持つハンドヘルドコンピュータのユーザは、5,6フィート離れて立っている人のグループに見えるように充分な大きさのスケールでテキストを表示することができる。同様に、それにって、ユーザは、携帯電話や腕時計型表示(装置)を顔の近くに持たなくても、これらにテキストを表示させることができる。また、それは、通常のコンピュータの表示の画面において、比較的画面から遠い人又は視覚の弱い人に対してウェブテキストを表示する、ことに使用され得る。
【0390】
図129は、プログラム12900の大幅に簡略化された疑似コード表記を示しており、プログラム12900は、本発明のこの特徴に従って、クライアントコンピュータにウェブテキストを表示することに使用され得る。
【0391】
本発明のこの特徴がクライアントコンピュータ上での使用に制限されないことに留意しなければならない。事実、本発明のこの特徴の変形は、図140乃至141で後述する種類のシステムにおけるように、ウェブブラウザ以外のアプリケーションによって生成されたビジュアル出力を見ることに使用され得る。
【0392】
多くのウェブページは、そのレイアウトを異なる列に、即ちレイアウトに対して水平方向の異なる位置において持つ様に設計されている。ウェブページはテーブルやフレームの使用を含む複数の異なる方法において、そのような異なる水平方向の置き換えを指示する。この方法のシステムは、異なる所望の水平方向の置き換えの指示を反映する複数列レイアウトにおいて、ウェブページテキストを表示可能な手段と共に使用される、ことが好ましい。
【0393】
ユーザが、新しいスケールファクタで1つの列におけるテキストリフローのために、ウェブページレイアウトの領域を選択すると、関数12902は、関数12904乃至12908を実行させる。ウェブページのコンテンツが比較的通常の方法で表示されている場合には、そのような選択が成される。
【0394】
本発明の幾つかの実施形態では、そのような選択はポインティングデバイスをドラッグすることによって成される。ポインティングは、ユーザが表示画面またはウィンドウの幅を横切ってより大きなスケールでリフローしようとしているウェブページの幅の部分を横切る、図130に示すようなスタイラス119002のようなものである。これは、現在議論している方法では、選択されたテキストの列がより大きなフォントで表示でき、同時にテキストの全ラインを画面内に適応させ、テキストをラインの境界を跨いでリフローできる点を除いて、上記図119で議論したのと同様である。
【0395】
図129の関数12904は、選択されたレイアウトの領域内に実質在る現在のウェブページのレイアウトにおいて、全てのストリングと、対応するアンダーライン(例えば、リンクとしてのテキストのラベリング)を選択する。
【0396】
図131は、図130に示したウェブページのレイアウト10206Aの最上部の部分(図117の下半分に示されたものと同様の部分)を図示している。図131では、破線で表された矩形13102は、図130でユーザによって選択された列に対応するウェブページのレイアウトの部分を表している。
【0397】
本発明の幾つかの実施形態では、実質的な部分、例えば、その長さの2/3又は3/4がユーザによって選択された領域内に適合する場合にのみ、ストリングが選択された領域内にあると考える。例えば、図130では、図において表示された画面の右側部分で、テキストを選択しようとしている。しかしながら、図130の例では、ユーザは、スタイラスのドラッグによって、意図した列の幅を正確に選択できていない。それにも関わらず、関数12904は、選択された領域内に実質的にある全てのストリングを選択するので、あたかもユーザが、意図した列を正確に選択したかのように、テキストリフローが実行される。
【0398】
図132は、選択された領域内に在る、図131に示されたウェブページのレイアウトにおけるストリングの初期部分を図示している。この図では、アンダーラインは、リンクに対応するテキストの部分を示している。
【0399】
一旦、選択された領域のストリングの全てが選択されると、関数12906は、1又は複数の連続するストリング(レイアウトにおける接近性又は他の特質によって同じパラグラフの一部であることを示しているもの)の任意のグループをラベルする。これは、図132において、パラグラフ・ブラケット13202によって示されている。
【0400】
図132で示した様に、この方法は、パラグラフであるフォントの全グルーピングを検知しなくても良いが、そのテキストに対応するHTMLを参照する必要なしにそれらの多くを検知する。現在述べられている本発明の実施形態では、HTMLはプロキシサーバに蓄積されている。これは、そのようなアクセスがクライアントコンピュータとプロキシサーバ間の通信に伴うディレイを必要とすることを意味している。他の実施形態では、特に、クライアントコンピュータがフルブラウザレジデントを持った実施形態、又はクライアントがプロキシサーバに対して高いアクセス帯域幅を持った実施形態では、HTMLコードへのアクセスは、選択されたストリングがパラグラフにおいてどのようにグループ化されるべきであるかをより正確に決定するために使用され得る。他の実施形態では、プロキシサーバにダウンロードされたレイアウトの情報は、ウェブページのHTML内に含まれるパラグラフの境界についての何らかの情報を含み得る。
【0401】
一旦、選択されたストリングがパラグラフにグループ化されると、関数12908は、表示画面(その画像が表示画面全体よりも小さい領域に表示されている場合には、表示ウィンドウ)の幅に渡って拡大された選択されたスケールファクタを使用して、各パラグラフのテキストをリフローする。
【0402】
このテキストリフロー処理は、図133に図示されており、図132の最上部におけるストリングは新しいスケールファクタでレイアウトされている。示されている例では、図130のテキストは、同じ画面内において元のサイズの2倍でリフローされている。好ましくは、薄型クライアントクライアントのユーザインターフェースによって、ユーザが、選択テキストリフロー関数での使用のための複数の異なるスケールファクタ(フォントサイズの緩やかな増大から極端な増大までの範囲)を選択できるようにする。
【0403】
図133において、アンダーラインは、図132のアンダーラインとは異なるものを表している。図133では、図132で共通するレイアウトから生じる各ライン上のテキストは連続するアンダーラインで示されている。図132における異なるストリングから生じる図133における同じライン上のテキストの部分の間のアンダーラインの間隔は、それらの違いが判読性良く見える様に誇張されている。図133では、ラインの境界を横切って重ねられている図132に示す元のレイアウトから生じる個々のストリングの全ては、1つのライン上の部分から引き続く次のライン上の部分までの矢印によって示されている。
【0404】
図134は、図130及び131で示された元のレイアウトの選択されたストリングがどのようにして、それらのストリングがクライアントの画面上で約2倍のサイズでリフローされている様に見えるかを模式的に図示している。図134を参照して分かる様に、そのようなテキストリフローは、ウェブテキストを遠くから格段に見易くする。2倍の代わりに4倍又は6倍で同じテキストをリフローすることによって、表示画面から極めて遠方に居るユーザに同じウェブページのコンテンツを示すことができる。
【0405】
図135乃至137は、リフローされるテキストの部分をユーザが選択できる他の方法を図示している。
【0406】
図135は、他のテキストの1又は複数の部分を押し込んだテキストの中央の列を持つウェブページの部分を図示している。
【0407】
図136は、ウェブページ全体のレイアウトのズームアウトビューをユーザが如何に取得するかを図示している。多くの現実の実施例では、個々の文字としてはズームアウトビューで表示するには小さすぎるテキストの部分を示すために、テキスト・グリーキングを使用することもある。このようなズームアウトビューは、図115乃至117に上述したもの(ウェブページ全体のレイアウトが薄型クライアント自体に蓄積されているもの)の様な薄型クライアントコンピュータ上で、素早く生成され得る。
【0408】
図136では、多角形状の領域においてカーソルでウェブページの表示をクリックすることによって、ズームアウトウェブページ上にある多角形状の領域を決定できるモードを、ユーザが選択する。一旦、これが実行されると、選択された領域は、どのテキストがリフローされるべきかを選択するために、図129に示された関数12904によって使用される。
【0409】
図137は、選択されたテキストがどのようにリフロー及び表示される様に現れるかを図示している。
【0410】
図138乃至139は、図2において上述したフォントサーバ230のより詳細な説明である。
【0411】
図138は、以下の点を除いて図2に対応する。異なる点は、図138では、複数のクライアント・ブラウザがあり、各クライアント・ブラウザは、同じプロキシサーバ210を介して1又は複数のサーバ220からコンテンツにアクセスし、同じフォントサーバ230からフォントにアクセスする。
【0412】
これは、各薄型クライアント・ブラウザでの使用のために販売、ライセンス、又は頒布されたソフトウェアは、クライアントが持っていないフォントを同じフォントサーバ230から探す様に、及び、同じプロキシサーバ210を通じてウェブ要求を実行する様に、プログラムされているからである。もちろん、本発明の本特徴の他の実施形態では、薄型クライアントクライアントは、それらの地理的な配置のような要因、又はインターネットサービスプロバイダに基づいて、共通の複数のプロキシサーバのどれを選択するかをプログラムされている。同様な考察が、薄型クライアントクライアントによって、フォントを要求及び取得するべき共通の複数のフォントサーバを選択することにも用いられる。
【0413】
図139は、図138で図示された種類のフォントサーバ上で使用され得るプログラム13900の大幅に簡略化された擬似コード表記である。このフォントサーバもまた、通常のブラウザコンピュータに加えて、ウェブブラウザ以外のアプリケーションを実行するコンピュータによって使用され得る。
【0414】
フォントサーバが、特定のフォントの文字を要求するためのHTTP要求をコンピュータから受信すると、関数13904乃至13922が実行される。
【0415】
図139に示されたフォントサーバコードの特定の実施形態は、別個のHTTP要求による特定のサイズでの特定のフォントを要求する各文字を特定するプロトコルでの使用のために設計されている。それは、所望のフォント、フォントサイズ、及び文字を、URLのパス名の一部として特定する。もちろん、他の実施形態では、フォントサーバは、HTTP要求が1又は複数のフォントを特定できる様にし、URLパス名以外でフォントを特定する様にしても良い。
【0416】
各文字・フォントの形状を別々に要求するシステムでは、HTTPプロトコル1.1又は複数が使用されることが好ましい。なぜならば、HTTPプロトコル1.1以上によれば、各要求を処理するために別個の接続を開いて閉じる必要なしに、所定のクライアントコンピュータからの複数のHTTP要求が、サーバによって扱うことができるからである。
【0417】
図139に示した本発明の実施形態では、フォントサーバが、現在、要求中で特定されたURLパス名に一致するフォントビットマップを蓄積していると決定すると、関数13904は、関数13906を実行し、URL要求が来たネットワークアドレスに対して、HTTP応答中でそのフォントを送り、その後、関数13908が取引に伴う料金を課金する。このようにダウンロードされるフォントは、フォントビットマップでもフォント・アウトライン記述でも良い。
【0418】
料金の課金は、本発明のすべての実施形態において使用される訳ではない。料金課金が使用される実施形態の幾つかでは、課金される料金は、フォントが送られたコンピュータ宛である。他の実施形態では、課金は、フォントの詳細を含むウェブページに関係する者の口座宛である。さらに他の実施形態では、課金は、上述した種類のプロキシサーバに関係する口座宛のものであるか、又はプロキシサーバのサービスのユーザ宛のものである。
【0419】
要求されたフォントがフォントサーバの蓄積になく、要求されたフォントがビットマップであり、対応するアウトライン・フォントをフォントサーバが持っている様なビットマップである場合には、関数13910は関数13912乃至13922を実行する。
【0420】
関数13912は、HTTP要求のフォントパス名によって示されたサイズ及び可能な変換の様な、特性を持ったビットマップを生成する。この関数は、要求されたフォントのパス名が、フォントの副画素最適化バージョンが要求されていることを示しているか否か、を決定することを含む。もし、要求されていれば、関数13914及び13916は、好ましくは、図55乃至96で上述された非線形カラー・バランス法を使用して、フォントの副画素最適化バージョンを生成する。
【0421】
一旦、フォントビットマップが生成されると、関数13918は、ネットワークを介して、要求されたアドレスへのHTTP応答においてビットマップを送る。関数13920は、要求中で特定されたパス名に一致するアドレスでフォントビットマップをキャッシュする。関数13922は、課金が実行される実施形態において、関数13910に関して上述した様に、取引に伴う料金を課金する。
【0422】
図140は、本発明のある特徴が、リモートコンピュータ1400上で実行されている1又は複数のアプリケーションによる画面出力として生成されたテキスト及び画像に対応するデジタル・コンテンツを、薄型クライアント200が表示できる様にすることに使用され得ることを図示している。このようなアプリケーションは、ウェブブラウザ、表計算ソフトウェア、ワードプロセッサ、データベースプログラム、又は実質的には、画面表示を生成できる種類のソフトウェアであればその他のソフトウェアであっても良い。
【0423】
リモートコンピュータは、リモート画面生成プログラム14006(リモートコンピュータのオペレーティングシステム14004のディスパッチ・テーブル14008におけるフックを含む)を含む。これらのフックは、所定の表示解像度で画面にテキスト、形状、ライン、コントロールオブジェクト及びビットマップのものを描画するために、オペレーティングシステムに対して、アプリケーション14002内の1又は複数によって成されるコールを傍受する。幾つかの実施形態では、このような描画コマンドは、リモートコンピュータの画面上にコンテンツが実際に表示される様にする。他の実施形態では、リモートコンピュータには画面がなく、描画コマンドが仮想画面に対して成される。以下のテキストでは、簡略化の目的で、グラフィック出力を表示しつつ、仮想画面としての所定のクライアントコンピュータ上でユーザ入力を受け付けていると、これらのアプリケーションが考えるようなビデオスペースについて言及する。
【0424】
アプリケーション14002の1つがオペレーティングシステムに表示要素を描画する様に要求すると、そのコール(要求)がオペレーティングシステムのディスパッチ・テーブルに在るフックの1つによって傍受され、リモート画面生成器の対応するルーチン14010への対応するコールを生成する。図102、及び106A乃至106Cで上述したと同様の方法で、図102及びそれに続く図で上述された表示リスト10212と実質的に同一のダウンロード表示リスト10212Aを生成させる。図102で示されたコントロール10214乃至10218に対応するズーム、スクロール及び仮想レイアウトコントロール1412は、薄型クライアントのビューから仮想画面へのマッピングを制御し、それ故、アプリケーションによって仮想画面へ描画される要素のスケール・ファクタは、ダウンロード表示リスト10212A中に記載及び配置される。好ましくは、これは、画像ビットマップの副画素最適化と、図106A乃至106Cで上記された種類のフォント置換とを含むことが好ましい。
【0425】
一旦、ダウンロード表示リストが所定の仮想画面に対して生成されると、ダウンロード表示リストは圧縮され、対応する薄型クライアントコンピュータにダウンロードされ、そして、薄型クライアントコンピュータが、図109A乃至109で上述された方法で画面上にそれを描画する。
【0426】
本発明の幾つかの実施形態では、仮想画面への個々の描画は、薄型クライアントにダウンロードされた対応する描画コマンドを持っている。これは、薄型クライアント画面への小さな変更が仮想画面に対する対応する変更に応答して成され得る速度を速くするために用いられ得る。
【0427】
図140に示された実施形態では、ユーザは、画面位置に対してのユーザ入力が、薄型クライアントからリモートコンピュータにアップロードされ、画面位置は、薄型クライアントのビュー・ウィンドウと仮想画面との間のマッピングを反映するために変換された画面座標を持っている。一旦、これが実行されると、このイベントは、リモートコンピュータのオペレーティングシステムのキューに変換画面座標と共に置かれる。これによって、関連するアプリケーション14002は、あたかも、ユーザ入力がリモートコンピュータの対応する仮想画面上に入力されたかの様に、それらのイベントに応答する。
【0428】
LapLink又はpcAnywhereの様な、画面共有アプリケーションによって使用される技術の多くは、図140に示された種類の、本発明の実施形態と共に使用され得る。実際、その図におけるリモートコンピュータが自身の画面を持っている場合、図140に示された実施形態は、クライアントコンピュータとリモートコンピュータとの間での画面共有を実行するために使用され得る。
【0429】
クライアントコンピュータが合理的な量の演算能力を持っている実施形態では、クライアント及びリモートコンピュータはピアツーピアの方法で動作することが好ましい。リモートコンピュータは、専用のアプリケーションサーバであっても良いし、パーソナルコンピュータ(デスクトップコンピュータ、ラップトップコンピュータ、又はタブレットコンピュータを含む)の様な他の如何なる種類コンピュータであっても良い。
【0430】
図141は、図140に示されものと幾分同様の、1又は複数のアプリケーション14002によって生成されたオペレーティングシステムのコールを傍受し、本発明の一実施形態を図示している。そこでは、上述した本発明の特徴に従って、アプリケーションで生成された画面表示がスケールダウン及び/又は副画素最適化される様に、コンピュータのオペレーティングシステム14004のディスパッチ・テーブル14008でフックを用いている。図140に示されたクライアントサーバの実施形態では、図141に示された1つのコンピュータシステム14100上で動作するように設計されている点が異なる。
【0431】
この実施形態では、アプリケーションが、オペレーティングシステムに画面に要素を描画させるコールを実行すると、OSディスパッチテーブル14008に置かれたフックによって、スケーリング副画素最適化画面生成プログラム14006Aのプログラム14010内の対応する描画ルーチンを起動させる。この置き換え描画ルーチンは、仮想画面表示リスト10206Bに、対応する要素を描画する。それはまた、ビュー・ウィンドウ10210内に適合する仮想画面の部分に描画された画面要素の任意の部分を、オペレーティングシステム中の描画コマンドを呼び出して、又は自身の画面に直接描画することによって、コンピュータ14100の表示画面10220A上に即座に表示させる様にする。
【0432】
アプリケーションプログラムが測定(メジャー)ストリングコマンドのためにオペレーティングシステムを呼び出すと、そのコマンドは同様に傍受され、その呼び出しが、図106Aの関数10608乃至10618で上述した方法でフォントサイズのフォント・メトリックスを返す。
【0433】
コンピュータの画面への画面イベント入力は、オペレーティングシステムのイベントキューから取り出され、イベント位置計測手段に送られる。イベント位置計測手段は、イベントが画面上で生成される画面座標を、表示リストによって表現された仮想画面レイアウトにおいて対応する位置に変換する。その変換には、変換を制御するために、ビュー・ウィンドウの仮想画面へのマッピングを使用する。一旦、イベントの座標が適切に変換されると、イベントはオペレーティングシステムのイベントキューに戻され、オペレーティングシステムは、あたかも仮想画面に入力されたかの様にイベントに応答する。
【0434】
図141に示された種類の、本発明の一実施形態によれば、コンピュータのユーザは、標準的なコンピュータアプリケーションで生成された画面上において、たとえ、コンピュータがこのような機能をサポートする様に設計されていなくても、テキストを副画素最適化、スケールダウン及び/又はリフローすることができる。
【0435】
示されていない本発明の他の実施形態では、コンピュータのオペレーティングシステムが、図141に示されたスケールダウン副画素最適化画面生成手段14006Aに示された種類の機能を含む様に変形可能である。さらに本発明の他の実施形態では、ブラウザ・プログラムを含むアプリケーション・プログラム14002は、そのような機能の全部又は多くを直接サポートする様に変形可能である。
【0436】
図142は、薄型クライアントコンピュータ(その図に示された薄型クライアントコンピュータ200A乃至200D)がワイヤレスネットワークを介してインターネットコンテンツ又はアプリケーションプログラムにアクセスするために使用され得る様にするために、図102乃至140に示された本発明の実施形態がどの様に使用され得るのかを図示している。
【0437】
この図では、コンピュータ200A乃至200D図102乃至140に示された薄型クライアントコンピュータ200に対応する。コンピュータ200Aはハンドヘルドコンピュータである。薄型クライアントコンピュータ200Bは、携帯電話機である。薄型クライアントコンピュータ200Cは、腕時計コンピュータである。薄型クライアントコンピュータ200Dは、頭部装着コンピュータ、又は携帯コンピュータ用の頭部装着ディスプレイである。これらの薄型クライアントコンピュータの夫々は、副画素アドレス可能なディスプレイを持っている。
【0438】
本出願の出願時には、本発明のほとんどの特徴によって使用されるのに充分高い解像度を持つ、これらの種類の装置の夫々のためのスクリーンを製造することが可能であった。例えば、現在、2インチ以下の対角長を持つ320×240カラーLCDを製造可能である。有機LED装置は、現在より高い解像度でさえ製造され得る。近い将来、このような小型画面のコストはダウンする一方、有益性及び解像度は増大するはずである。
【0439】
図142に示された薄型クライアントの全ては、図102で示した種類のリモート・プロキシ・サーバコンピュータ210又は図140で示した種類のリモート・アプリケーション・サーバ14000において上述した種類の情報を送信又は受信可能にするワイヤレストランシーバを持っている。このトランシーバは、ワイヤレスLANトランシーバ14204との通信用のワイヤレスLANトランシーバ、ワイヤレスインターネットトランシーバ14202との通信用のデジタルセルラーワイヤレストランシーバ、又は好ましくは、両方の種類のワイヤレストランシーバと通信する様に設計されているトランシーバであり得る。他の実施形態では、Bluetooth又は赤外線通信の様な他の種類の通信が使用され得る。
【0440】
図142に示されたリモート・コンピュータ14,000AA乃至14,000ACは、図140に示されたリモート・サーバ・コンピュータ14,000に対応する。
【0441】
図142に示されたリモートアプリケーションサーバコンピュータ14000AAは、ラップトップコンピュータ、デスクトップコンピュータ、サーバ、又はリモートアプリケーションサーバコンピュータ14000として動作する様にプログラムされ得る他の種類のコンピュータを表現している。副画素最適化アプリケーション14000ABは、図140に図示された種類のリモートコンピュータであり、クライアントに繋がるLAN又はWANに接続された複数の薄型クライアント用のアプリケーションを実行する様に設計されている。リモートコンピュータ14000AA及び14000ABは、プライベート・ローカルエリア・ワイヤレス送信機142004を介して薄型クライアントと通信可能、又は符号10222及び14202によって示された様にワイヤレスインターネットを介して薄型クライアントと通信可能である。
【0442】
図142では、図102で上述された種類のプロキシサーバ210は、LAN又はWAN14204に接続されて示されている。これは、例えば、会社がインターネットに非接続することを希望するウェブブラウズを取り扱うことを目的としたプロキシサーバであり得る。商業的なプロキシ提供サービスを提供する会社によって運営されているものの様な他のプロキシサーバは、通常、図142でも示されたインターネット10222に直接、接続されるであろうことを理解すべきである。
【0443】
図142に図示されたシステムによれば、実質的に常時便利に持ち運べる小型コンピュータは、ウェブページ及び大抵のアプリケーションプログラムの出力にアクセスし、表示することができる。本出願の出願時においては、図142に示すLANトランシーバ14204の様な比較的高価格ではない無線LANトランシーバの帯域幅は、ケーブルモデムに接続されたデスクコンピュータ上でデジタル・コンテンツを見るのと同様の速さで、図142に示す種類の薄型クライアントがウェブコンテンツ又はアプリケーションプログラムの出力を見ることができるために充分高速であった。そして、ポケット、手首上、又は眼鏡の一部の様に実行され、スイッチオン後数秒以内に情報媒体にアクセス可能な装置上で装置上にある。
【0444】
本出願時にアメリカで共通に利用可能であったデジタル携帯の帯域幅では、大抵のウェブページの全テキストをダウンロードするには数秒必要であり、ウェブページの画像をダウンロードするにはより長くかかっていた。もちろん、本発明の多くの実施形態は、ユーザがダウンロードされたページの一部を非常に素早く見始めることを開始出来る様に、一部が受信されると直ぐにテキストを表示し始める。
【0445】
本出願時には、新しく、より高速のデジタル携帯電話システムが開発されており、これらのシステムは、数十万又は数百万ビット/秒の範囲の帯域幅を提供可能であった。一旦、そのような、より高速のシステムが一般に展開されると、本発明のユーザは、DSL又はケーブルモデムを介してデスクトップコンピュータ又はラップトップコンピュータ上でアクセスしているかの様に、移動先の大抵の場所でスイッチオンから数秒以内に使用され得る小型の携帯装置上で、ウェブページやアプリケーション画面を読んで相互に対話出来る様になる。
【0446】
図143乃至144は、図102で上述された種類のプロキシサーバ又は図140で上述されたリモートアプリケーションサーバ用の薄型クライアントとしての機能可能な、ハンドヘルドコンピュータ200Aの2つのビューを示している。
【0447】
図143では、コンピュータは、使用のために設計されている縦向きで図示されている。コンピュータの本来のオペレーティングシステムは、このポートレイト方向(縦向き、短辺行方向)でフォント及びグラフィカル・ユーザ・インターフェースの要素を描画する様に設計されている。これは、本出願時に販売されていた多くのハンドヘルドコンピュータが設計及び組み立てられていた方式である。例えば、全体画素の解像度で240×320であり、かつ副画素アドレス可能な多くのハンドヘルドコンピュータが市場に在る。また、これらのコンピュータの多くは、表示画面が意図された縦向きに置かれた時に、水平方向に走る副画素ストライプを持っている。
【0448】
不運なことに、このようなポートレイトの向きは、ほとんどの人がコンピュータの使用に慣れており、かつほとんどのウェブページが設計されているランドスケープ方向(横向き、長辺行方向)の縦横比のタイプを提供しない。更に言えば、その様なコンピュータが水平方向の副画素ストライプを持つ状況では、水平方向の副画素ストライプが、垂直方向での副画素解像度に潜在的な増大の全てを与えてしまう。不運なことに、テキストの表示は、垂直方向での増大からの寄与よりも、水平方向解像度における増大からの寄与の方が実質的に大きい傾向にある。
【0449】
これらの全ての理由のために、縦向きの装置を使用する本発明の多くの実施形態は、縦向きの装置を図144に示す様に90°回転させたときに使用する様に設計されており、それ故、大抵のコンピュータのレイアウトのアスペクト比により類似するポートレイトのアスペクト比を持ち、その結果、副画素がテキストを表示するために最も有用な水平方向の解像度が高まる。
【0450】
図145は、本実施形態の幾つかの特徴が如何にして、副画素最適化を用いて矩形、楕円、線及び曲線の様な基本の形状を描画する要求に応えるために使用されるかについての、大幅に簡略化された擬似コード表記である。そのような機能は、多くの種類のアプリケーション、オペレーティングシステム及び薄型クライアントソフトウェアで使用され得る。
【0451】
図145の例では、擬似コード表記は、矩形描画関数14500を参照しており、関数145000は、他の用途とともに、図109で上述された矩形コマンド10918の実行に使用される。そのルーチンは、副画素アドレス可能な画面(そこで表示される)の全画素での解像度よりも高い解像度で位置、幅及び/又は高さが定義された矩形を描画する呼び出しによって、起動される。応答として、関数14502は、より高い解像度、即ち副画素解像度で定義された矩形の画像を表現するために、副画素最適化ルーチンを使用する。実質的にどのような副画素最適化手順を用いてもこれは実行され得るが、白黒矩形の場合には、上述した2色最適化手順が最高の視認可能な空間解像度を提供する。
【0452】
図146は、サーバ及び/又はプロキシサーバ上で動作するコード14602、及びサーバからダウンロードされたアプレットが副画素最適化画面要素をクライアントの画面上に描画可能な様に、薄型クライアントコンピュータを含むクライアントコンピュータ上で実行されるコード14604の大幅に簡略化された擬似コード表記14600である。
【0453】
この様な実施形態では、クライアントの関数14606はサーバから情報媒体を要求する。サーバは、情報媒体又はデータ(クライアントコンピュータ上で動作する1又は複数のアプレットプログラム)をダウンロードすることによって、関数14608において応答する。関数14610では、クライアントコンピュータは、アプレットを含む情報媒体を受信し、関数14612はアプレットをロード及び実行する。関数14614では、クライアントコンピュータ上の副画素アドレス可能な画面に副画素最適化された要素を描画する。アプレットは、副画素最適化された要素を、副画素最適化されたビットマップをコピー又は生成することにより、副画素最適化されたフォントでテキストを表示することにより、又は、ベクトル定義されたグラフィックまたは線、矩形及び楕円の様な比較的単純な幾何学形状の形状の様な、副画素最適化された形状を描画することにより、描画可能である。
【0454】
図147及び148は、副画素最適化がロールオーバ画像及びGIFFアニメーション夫々に如何に適用されるかを図示している。
【0455】
図147における副画素最適化ルーチン14700では、非ロールオーバ画像14702(ポインティングデバイスが画像に伴う画面の部分を超えて検知されないときに表示される画像)と、ロールオーバ画像14704(ポインティングデバイスが画面の部分を超えて検知された場合に表示される画像)は、両方とも、関数14706によってダウンスケール及び副画素最適化される。これによって、スケーリング・副画素最適化非ロールオーバ画像14708及びスケーリング・副画素最適化ロールオーバ画像14710とが生成される。次に、関数14712は、ポインタが画面で検出されるか否かに基づいて、これらの2つの副画素最適化画像の何れを表示させるかを選択することに使用される。これによって、2つの副画素最適化画像を、結合した“ロールオーバー”グラフィック“として機能させる。
【0456】
本発明のこの特徴の他の実施形態では、同様の技術が、ボタンで連携する2つの画像(ボタンが押下されてないときに表示される画像と、ボタンが押下されているときに表示される画像)に適用され得る。
【0457】
図148の方法14800は、図147で上述されたものに類似している。それは、GIFFアニメーションの別個の画像14802乃至148906の夫々を取得し、関数14802において副画素最適化され、スケールダウンされ、副画素副画素最適化されたGIFFアニメーション画像の対応するセットを生成する。次に、関数14816は、副画素最適化されていないギフトアニメーションが表示される方法と実質的に同じ方法で、副画素最適化された画像を表示する。
【0458】
図147及び148で述べた副画素最適化は、上述された本発明の他の特徴(薄型クライアント上での表示を含む、副画素アドレス可能な画面上でのウェブページのアクセスを含む)にも使用され得る。
【0459】
図149は、副画素最適化3−Dアニメーションの方法14900を示している。この方法は、アニメーションの各連続するフレームに対して、関数14904乃至14908のセットを実行することを含む。
【0460】
関数14904は、現在のフレーム又は少なくとも最後のフレーム以来変更された画像の当該部分のビットマップを作成する3−Dアニメーションエンジンを実行する。この関数は、ビットマップの副画素最適化バージョンが表示されるべき全体画素の解像度よりも高い解像度で、ビットマップを生成する。
【0461】
関数14906は、次に、上述された様な技術を使用し、フレームビットマップ又は少なくとも最終フレーム以来のフレームビットマップ中で成された変更を、スケールダウン及び副画素最適化する。
【0462】
次に、関数14908は、フレームビットマップ、又は少なくともフレームの変更された部分の、スケールダウン及び副画素最適化された画像を、副画素アドレス可能な画面上で表示する。
【0463】
図149に示された方法は、ゲームを実行可能にしたり、副画素最適化によって可能となったより高い解像度でのゲームによって生成された画像を視認出来る様にすることに有用である。それは、小型画面ハンドヘルド装置上でのにおける目的に使用され得る。それは、リモートコンピュータ上で生成されたアニメーション画像を表示するクライアントコンピュータ、及びローカルにアニメーション画像を生成するコンピュータの両方に使用され得る。
【0464】
図150及び151は、図149の方法がクライアントサーバのゲームアプリケーションで使用され得る一方法を図示している。
【0465】
図150は、実施形態においてゲームサーバコンピュータ上でのプログラム1500を図示している。数字15002及び15004で示された様に、ゲームサーバは、1又は複数のクライアントコンピュータからユーザ入力を受信すると、入力をゲームエンジンに送る。もし、入力が画面入力であれば、ユーザの画面の解像度と、ゲームエンジンが画面入力に連携する空間との差を補償するために入力は適切にスケーリングされる。
【0466】
関数15006では、ゲームエンジンのコンピュータは、現在のフレーム、又は先の表示リストへの現在フレームに関連する変更に対する表示リストを演算する。次に、関数15008は、3−D表示プログラムに、現在フレームに対して生成された表示リストに対応するフレームビットマップを表示させ、現在フレームのビットマップに要求される変更を表示する。そのビットマップは、関数1510によって生成される副画素最適化画像の解像度よりも高い解像度で生成される。
【0467】
もし、クライアントが異なるクライアントに対して異なる画面を生成するならば、関数15008はこれらの別個のビューの夫々に対して別個に実行される。
【0468】
次に、関数15010は、現在フレームのビットマップ、又はフレームに対する現在の変更のビットマップをスケールダウン及び副画素最適化する。関数がその変更のビットマップのみをスケールダウンするときもまた、これらの変更に伴う画面位置を同時にスケールダウンする。
【0469】
次に、関数15012は、副画素最適化ビットマップ、もし適切であればそれらの位置もスケールダウンし、関数15014は、圧縮、スケーリング、及び副画素最適化された画像と、クライアントへの表示のための位置とをダウンロードする。
【0470】
図151は、図150のプログラムでの使用のために設計されたゲームクライアント上におけるプログラム15100を図示している。
【0471】
関数15101は、ダウンロード画像を受信し、関数15102はそれらを解凍する。次に、関数15104は、スケーリングされた、副画素最適化されたアニメーションフレームのビットマップを表示、又は先のアニメーション画面の画像に渡る変更のビットマップを変更に対して示された位置で表示する。
【0472】
符号15106及び15108によって示された様に、クライアントがユーザ入力を受信すると、その入力をゲームサーバに、入力が適切に変換される様に関連付けられた画面座標と共にアップロードする。
【0473】
本発明のこの特徴の他の実施形態では、ゲームサーバとゲームクライアントとの間の機能の分担は異なり得る。幾つかの実施形態では、上述されたものに一般的に類似したプロキシサーバは、プロキシサーバとは異なるゲームサーバ上で元々生成されたゲームコンテンツの薄型クライアント上での表示のために、副画素最適化を実行することに使用される。さらに他の実施形態では、ゲームクライアント自身が副画素最適化を実行し得る。
【0474】
図152は、関連する透明性マップを持つ画像が、前景画像及び透明性画像の両方の副画素最適化で表示出来る様にする本発明の1つの特徴の、大幅に簡略化された擬似コード表記である。
【0475】
図152のプログラム15200は、前景画像のスケーリング副画素最適化ビットマップを生成する。それは、画像、即ち、背景又は他の先のビットマップの最上部の表示が関連する透明性ビットマップで制御される表示である。使用される副画素最適化は、2色化又は多色カラー副画素最適化、或いは両方の組み合わせでも良い。画像の副画素最適化表現の生成のために知られている任意の方法が、上述した方法も含めて使用され得る。
【0476】
関数15204は、画像の関連する透明性マップの副画素最適化を実行する。好ましくは、2色副画素最適化が使用され得る。なぜならば、透明性マップの高解像度ソース画像は、3要素色空間における直線に沿って変化する透明性値(即ち、0〜1の範囲のアルファ値)を持っているからである。そのようなソース画像アルファ値はグレースケールカラーに一致する。なぜならば、もし、マップの副画素最適化出力画像での所定の画素に一致する透明性マップソース画像の領域が規則的な透明性値に重なっていれば、出力画素の副画素の全ては、等しいアルファ値を持つ傾向にあるからしである。好ましくは、透明性マップの2色副画素最適化は、上述した非線形カラー・バランスを使用することが好ましい。
【0477】
一旦、前景画像と、それに関連する透明性マップの副画素最適化が成されると、関数15206はこの組み合わせを副画素最適化表示に表示する。この処理は、表示画像の各画素列に対してループ15208を実行することを含み、このループ各列の各副画素に対するループ15210を含む。関数15210は、各副画素に対して関数15212乃至15214を実行する。関数15212は、現在のアルファ値を、副画素最適化透明度マップの対応する副画素のアルファ値に設定する。次に、関数15214は、現在の副画素の輝度を、副画素最適化された前景画像の対応する副画素の輝度に現在のアルファ値を乗算した値に、透明度マップが描画されるべき背景ビットマップの現在副画素の輝度に(1−現在のアルファ値)を乗算した値を加算した値に設定する。
【0478】
これは、前景画像が先のビットマップ上に描画された場合に、別個の副画素の輝度の夫々の輝度が前景画像又は先のビットマップの対応副画素値から生じる程度は、副画素最適化透明度マップの対応副画素アルファ値の関数として決定されることを意味する。
【0479】
本発明の幾つかの実施形態では、透明度マップに関連する画像は、サーバ又はブラウザコンピュータ上でスケーリング及び副画素最適化され、ダウンロードされ、そして、クライアントコンピュータ上に関数15206によって表示される。他の実施形態では、その様な副画素最適化透明度画像は、記録されたデジタル情報媒体上で利用可能である。さらに本発明の他の実施形態では、上記画像は、画像を表示するのと同じコンピュータによって生成される。
【0480】
本発明の他の実施形態では、副画素最適化前景画像は、副画素最適化されていない透明度マップにおいて含まれるアルファ値を使って表示され得る。
【0481】
本発明の幾つかの実施形態では、非可逆カラー圧縮が、1つの色に知覚的に近い色のグループを表すことに使用される。そのような圧縮は、RGB要素値上に加え、1つの1次元透明度値上、図60、96及び97で上述した種類の3次元透明度(例えば、不透明度又はアルファ)値上、または、余分の色次元としての透明度要素を持つ色値上で実行され得る。このような圧縮では、アルファ値1又は0、或いは1又は0に近い値を表す透明度値又は要素色値が、夫々、1又は0から遠く離れた透明度値によって表現されるのを避けることが好ましい。これは、透明度の範囲の極端な部分での不透明性における僅かな変化に対して、その範囲の他の部分での変化に対してよりも、目が敏感であるからである。
【0482】
透明度マップを持つ副画素最適化画像は、副画素最適化されていない画像が透明度マップで使用される全ての目的に対して、副画素最適化表示(装置)上で使用され得る。これは、アニメーション及びウェブページのレイアウトにおける使用を含む。
【0483】
図153乃至162は、映像及び/又はアニメーションの副画素最適化に関する本発明の特徴の、大幅に簡略化された擬似コード表記を表している。このプログラムは、副画素最適化されるべき映像が圧縮フォーマットで受信される場合に使用される関数15302を含む。それは、映像が副画素最適化され得る様に、映像を解凍する。
【0484】
関数15304は、映像のキーフレームをスケールダウン及び副画素最適化する。関数15304は、スケールダウンするが、キーフレーム間で改竄された変更を副画素最適化しない。図153に示された、本発明のこの特徴の幾つかの実施形態では、このような改竄された変更は、副画素最適化され得るが、こうすることによる利益はほとんど無い。なぜならば、これらの変更が認識できないほどの速さで画面上に現れるからである。また、それらの副画素最適化を避けることが演算時間を削減するからである。
【0485】
関数15308は、スケールダウンされた映像を副画素アドレス可能な表示(装置)上に、副画素最適化されたキーフレーム及び副画素最適化されていないフレーム間の改竄と共に表示する。
【0486】
他の実施形態では、明確に認識されるに充分な長さの位置で画面上でに現れる映像の部分のみを副画素最適化する、この概念は、他の方法でも使用され得る。
【0487】
図154は、表示フレームに描画されるべき連続した副−全体−フレーム画像要素によって全体的又は部分的に表現された副画素最適化映像に対して使用され得る。一般的に、その様な映像もまた全体フレーム画像を含み、1又は複数のオブジェクトの動きを表すのに必要とされる画面を付加的に変更するために、一連の副−全体−フレームを使用する。これは、図149で上述した種類のアニメーションを含む。それは、また、図153で上述した一般的な種類のキーフレーム及びフレーム間の改竄を持つ映像を含む、映像圧縮の様々な圧縮を含む。
【0488】
図154のプログラムは、副画素最適化されるべき映像が圧縮フォーマットで受信され、その場合にそれを解凍する場合に使用される関数15402を含む。次に、関数15404は、フレーム画像をスケール・ファクタによってスケーリングして、映像に含まれるフレーム画像をスケーリング及び副画素最適化しする。次に、関数15406は、変更されたビットマップを、画像のサイズ及び位置の両方をスケールファクタによってスケーリングすることによって、スケーリング及び副画素最適化する。
【0489】
関数15407及び15408は、映像シーケンスにおけるスケーリング副画素最適化された映像フレームを、副画素アドレス可能な画面上に繰り返し表示する。映像フレームの表示後、フレームのビットマップ上における1又は複数の副画素最適化された変更ビットマップを、関数15406によって変更ビットマップに関連付けられたスケーリング位置において表示する。
【0490】
図154の方法によって、副画素最適化映像及び/又はアニメーションが副画素最適化に要求される演算量を低減する方法で描画され得ることが分かる。なぜならば、その方法では、映像画像に変更が加えられる度に全体フレームの副画素最適化を必要としないからである。
【0491】
図155及び156は、フレームに対して動く副画素最適化画像を表示し得る2つの異なる方法を図示している。
【0492】
図155は、固定された副画素処理を持つ画像を、副画素アドレス可能な表示(装置)上に、より大きな画像に対して全体画素の増大で動く様に表示する、プログラム15500を含む。それは、上述したものを含む任意の方法で生成され得る副画素最適化画像を蓄積し得る関数155002を含む。各連続するフレーム時間に対して実行されるループ15503を含む。このループは、関数15504及び15506から成る。関数15504は、より大きな画像に対する動きを計算する。この動きの計算では、各表示フレームでオブジェクトに対して計算された位置は、最も近い水平及び垂直方向の全体画素位置に近似され、画像のサイズ及び向きは変更されない。関数15506は、関数15504によって計算された全体画素解像度位置で画像を表示する。画像の副画素ビットマップを1つだけ計算すれば良く、画像が画面上を動くに従って単一の画像が繰り返し使用されるので、この方法は極めて演算にとって効率的である。
【0493】
図156は、副画素処理の変更によって動画を表示するプログラム15600を示している。それは、動かされるべき画像の高解像度のソース画像を蓄積する関数15602を含んでいる。それは、また、各連続するフレーム時間に対して実行されるループ15603を含んでいる。このループは関数15604を含んでおり、関数15064は、現在のフレームに対して、もし在れば、現在の変形、回転及び/又は高解像度のソース画像の変形を計算する。次に、そのループの関数15606は、変形、回転及び/又は変換されたビットマップのスケールダウン、副画素最適化ビットマップを生成する。この副画素最適化は、全体画素解像度よりも高い解像度で表示する副画素配列に対して、変換ビットマップの位置を考慮する。次に、フレームループの関数15608は、副画素アドレス可能なディスプレイ上に、結果の副画素最適化ビットマップを表示する。
【0494】
図155又は156で上述された方法の何れも、アニメーションテキストに加えて、ゲーム中でCGの移動する前景(スプライト)、又は、より大きなフレームに対して移動される他の任意のビジュアル表現を表示することに使用され得る。
【0495】
図155の方法は、より精度の低いビジュアルオブジェクトの動きの表現を提供する傾向があるが、演算処理的にはより効率的である。例えば、オブジェクトと副画素配列との間の可能なマッピングの小さなサブセットは蓄積され得り、オブジェクトが動くと、それが表示されるべき副画素配列に対する現在位置のより高解像度の表現を最も近く表す、蓄積されたマッピングの1つで表示する。
【0496】
図157及び/又は158は、副画素アドレス可能な画面上での表示のために、DVD又はHDTV映像の表示をダウンスケール及び副画素最適化することによって、DVD又はHDTV映像を最適化することに使用され得る、本発明の特徴を図示している。これは、垂直方向よりも水平方向においてより高い副画素解像度を持つ副画素アドレス可能な画面と共に使用されるときに特に有用である。なぜらならば、DVDもHDTVも、共通に高いと言うよりは実質的に幅広いアスペクト比を持っているからである。
【0497】
図159は、異なる属性を持つ別個のオブジェクトとして映像画像の副要素を表す映像フォーマットに適用され得る、本発明の特徴を図示している。図159の特別な例は、MPEG−4の映像の表示を副画素最適化するプログラム15900を含んでいる。
【0498】
図159に示されたプログラムは、MPEG−4映像を受信及び解凍する関数15902を含んでいる。それは、MPEG−4映像において異なる種類のオブジェクトをスケールダウンするときに、異なる副画素最適化方法を使用する関数15904及び15906を含んでいる。この関数は、2色オブジェクトに対して、好ましくは非線形カラー・バランスで、2色副画素最適化を使用し、多色オブジェクトに対しては多色副画素最適化を使用する。関数15908は、図155及び/又は156で上述された種類の方法を使用して、副画素最適化オブジェクトを画面に対してMPEG―4表現によって指示される様に動かして、2色及び多色オブジェクトの組み合わせを副画素最適化画面上に表示する。
【0499】
本発明の幾つかの特徴は、MPEG―4データストリームにおける異なるオブジェクトタイプに対する異なる副画素最適化アルゴリズムの使用に限定されない。しかし、異なる副画素最適化アルゴリズムの使用は、テキストの様な2色オブジェクトに対して、より高い知覚解像度を提供し、それ故、幾分向上した画像を提供できる利点がある。
【0500】
図160及び161は、ユーザがコンピュータネットワーク上の副画素最適化映像にアクセスするシステムに関する。
【0501】
図160は、副画素最適化、スケールダウンされた映像を提供するサーバコンピュータによって使用されるプログラム1600を図示している。そのようなサーバは、さらに他のサーバから、クライアントから要求された映像にアクセスし、そして、クライアントにダウンロードする前に、ダウンスケール及び副画素最適化するプロキシサーバであり得る。他の実施形態では、副画素最適化画像の提供は、中間のプロキシサーバなしに実行される。
【0502】
図160のプログラムは、映像を得るための要求をクライアントコンピュータから受信する関数16002を含む。多くの実施形態では、図160に示された様に、この要求は、映像が副画素最適化されるべき、水平方向及び垂直方向の副画素解像度をも記述している。サーバが、固定された副画素解像度を持つクライアントのセットにのみ提供する様な実施形態では、上記の様な解像度の情報は要求の一部として必要ない。
【0503】
関数16004は、要求された映像コンテンツを受信する。これは、以下の様に実行される。即ち、上述したリモートサーバからコンテンツにアクセスすることによって;サーバコンピュータに備わったRAM又は大規模記憶手段のコンテンツにアクセスすることによって;コンテンツを動的に生成することによって;又は、幾つかのソースから供給された映像を選択することによって、実行される。
【0504】
関数16006は、関数16002の要求に伴う副画素解像度に、受信映像をスケールダウン及び副画素最適化する。次に、関数16008は、副画素最適化映像を圧縮し、関数16010は、要求している装置に、圧縮映像をダウンロードする。
【0505】
このような副画素最適化画像に使用される圧縮アルゴリズムは、副画素最適化画像における任意の画素に伴う色値の位置が、RGB色空間内において相対的に制限された色距離よりも大きく移動しない限り、副画素最適化によって可能にされる増大された空間解像度を実質的に減少することなく、かつある量の損失を持つ圧縮を含む副画素最適化画像に対して使用される。
【0506】
図161は、図160に記載された本発明の特徴に使用されるシステム16100を表している。このシステムは、図161において大幅に簡略化された擬似コード表記で図示されたプロキシコンピュータコード16100及びクライアントコンピュータコード16112を含んでいる。
【0507】
薄型クライアントが映像に対するユーザの要求を受信したとき、関数16113は、映像がプロキシに表示されるべき副画素解像度を含む、映像に対する要求を送ることによって応答する。プロキシが映像要求を受信すると、関数16100は、関数16103によって、映像を取得するサーバに、対応する映像要求を送る。多くの実施形態では、これは、その様な要求のURL中で同定されたサーバである。
【0508】
要求映像がプロキシサーバに受信されると、関数16104は、関数16106乃至16110を実行する。関数16106は、映像を、クライアントからの要求に伴う副画素解像度にスケーリング及び副画素最適化する;関数16108は、副画素最適化された映像を圧縮する;関数16110は、要求したクライアントに圧縮映像をダウンロードする。
【0509】
クライアントが要求映像をプロキシから受信すると、関数16114は、関数16115によって映像を解凍し、関数16116によって映像を副画素アドレス可能なディスプレイ上にダウンスケーリング及び解凍する。
【0510】
図162乃至166は、本発明の特徴がデジタルインクの出現を向上させることに如何に使用されるかを図示している。デジタルインクは、通常、ユーザがポインティングデバイスによって書く又は描画しようとすることに応答して画面上に描画される黒白のビットマップである。過去には、デジタルインクビットマップは、通常、各画素が黒、白又は幾つかのデバイスではグレースケールの値として示される全体画素解像度で表現されていた。
【0511】
本発明の1つの特徴は、デジタルインクをより高解像度で表現するための副画素最適化の使用である。デジタルインクがコンピュータメモリ内で点、及び線又は点の間の曲線によって表現された場合、結果的として生じる、点の間の線の数学的な表現は、画面の全体画素解像度よりも遙かに高い解像度を持ち得る。
【0512】
図162は、デジタルインクを見る明瞭さを最適化することに使用され得るプログラムの、大幅に簡略化された擬似コード表記である。
【0513】
デジタルインク・コード16200(図162に示された)は、ポインティングデバイスのストロークを一連の点、及び点の間の線又は曲線として記録することによって、デジタルインク描画モードの間のポインティングデバイスでのユーザ入力に対して応答する関数16202を含む。関数16206は、線及び曲線の副画素最適化を使用して、画面上にインクを描画する。これは、実質的に任意の副画素最適化方式によって実行され得るが、例えば、非線形カラー・バランスを使用する2色副画素最適化方式の様な2色副画素最適化によって実行されることが好ましい。
【0514】
図163は、ハンドヘルドコンピュータ16300の画面上に描画されたデジタルインク16302を図示している。この図示は、全体画素輝度値のみを表現可能なプリンタで印刷されるので、図163に図示されたデジタルインクは、グレースケール・アンチエイリアスの様な副画素最適化を表示する。副画素アドレス可能なディスプレイ上で見られる場合には、画像は図163に示すよりもより明瞭にさえ現れる。
【0515】
デジタルインクプログラムのユーザがデジタルインクの部分の表現のスケールアップを選択すると、関数16208は、関数16212によって、非線形カラー・バランスを伴う2色副画素最適化を使用して、デジタルインクの線及び曲線の副画素最適化ビットマップをユーザが選択したスケールアップサイズで生成する。次に、関数16212は、ユーザの画面にスケールアップ画像を表示する。
【0516】
図164は、図163に示されたデジタルインク16302の部分のスケールアップ表現16302Aを図示している。これは、図165に示されたビットマップ16302Bによって図示された様に図163に示されたデジタルインク表現16302の画素処理を単に拡大することによって生成されるよりも、実質的により明瞭なデジタルインク表現を提供する。
【0517】
図165に示されたビットマップは、実際には、デジタルインクの幾分スケールアップされた表現よりも感じが良い。なぜならば、図163で示されたビットマップは、幾つかのデジタルインク表現では使用されないアンチエイリアスを伴う全体画素グレースケールで印刷されているからである。
【0518】
ユーザがデジタルインク表現のスケールダウンを選択すると、関数16214は、関数16216によって、非線形カラー・バランスを伴う2色副画素最適化を選択されたスケールダウンサイズで使用して、インクの線及び曲線の副画素最適化画像を生成し、関数16218によって副画素アドレス可能なディスプレイ上にスケールダウンビットマップを表示する。このような処理の結果は、図166に示されたビットマップ16302Cによって図示されている。
【0519】
本発明のこれらの特徴は、オン又はオフの何れでかになる全体画素として記録されたデジタルインクを扱う様に修正され得る。これは、ルーチンに“オン”画素によって表現された各ストロークの中心線を評価させ、上述したように様々なスケールで、デジタルインクの副画素最適化・中心線画像を生成することによって実行される。より正確ではあるが演算能力を要するアプローチは、デジタルインクの連続的な部分と、線及び曲線(ベジェ曲線の様な)の対応連続部分との間の最適適合を求めることであり得る。
【0520】
他の実施形態では、副画素最適化は、ビットマップ上で副画素最適化、スケールアップ又はスケールダウンが単に実行することによって描画するデジタルインクによって生成されたビットマップ上で実行され得る。
【0521】
デジタルインクに関する本発明の幾つかの実施形態は、副画素最適化をグレースケールアンチエイリアスで置き換えることによって、副画素最適化されていない表示に使用される。
【0522】
図167は、上述した様なサーバ、クライアント、プロキシサーバ、薄型クライアント、リモート、デスクトップのコンピュータの多くにおいて含まれ得る要素を図示している。図167に示した要素の全てが、上記全てのコンピュータに在る必要はなく、ほとんどのその様なコンピュータは、図167に示したもの以外の他の要素を含む。
【0523】
この図は、本発明の様々な特徴で使用されるほとんどのコンピュータが、本発明の様々な特徴の機能を実行し、様々な特徴の方法に従ってデータ16704を読み書きするプログラム16702を実行可能な種類のプロセッサ16716を含むことを明白にするために提供される。本発明は、方法だけでなくその様な方法のコンピュータプログラムにも関し、さらには、方法を実行又はデータを使用する様にプログラム及び/又はハードウェア構成されたコンピュータシステムに関する。
【0524】
ほんんどのその様なコンピュータでは、本発明のプログラムは、RAM16706;ROM16707;又は大規模記憶手段(ハードディスクドライブ16708、フロッピドライブ16709、CD−ROMドライブ16711及び/又はDVDドライブ16713)に蓄積される。プログラムは、また、機械読み取り可能な媒体(フロッピディスク16710、CD ROM16712、DVD ROM16714、又は実質的に他の任意の機械読み取り可能な媒体)に蓄積され得る。本発明のプログラム及び/又はデータは、ネットワークインターフェース16720の様なある種の通信ポートを通じてコンピュータによって受信され得る伝送信号(符号16719によって示される)としての表現され得る。
【0525】
図168は、図60乃至97で上述された非線形カラー・バランス法を使用して生成された小さな副画素最適化フォントを示す、320×240画面による全体画素グレースケール表現を提供している。この図は、テキストの部分が破線16800で囲まれている点以外は、図56と同じである。
【0526】
図169は、破線16800内における、図168に示したビットマップの部分の8倍拡大図である。図168で示した垂直ストロークのほとんどは、フォントの明瞭さをぼかす左側でのカラー・バランス分配を含んでいる。
【0527】
副画素最適化フォントビットマップを生成する非線形カラー・バランス法の主な利点は、非線形法(カラー・バランスに必要のないカラー・バランス値の分配を実質的に防止することを目的とする)によって文字・フォント形状の不明瞭さを低減できる能力である。
【0528】
図169に示された種類のフォントの主なストロークの左に色値の拡散を観察することによって、本発明のこの特徴の発明者は、その様な拡散が低減され得るか否かを確かめようとしている。発明者は、その様な拡散のソースが何であるかを決定しようとしていた。
【0529】
図170を参照すると、非線形カラー・バランスビットマップの生成に使用されるアルゴリズムは、副画素17000の2つのパッディング列を、文字・フォント形状のラスタ化における左端の副画素列17002(実際の非ゼロカバレージ値17004(例えば、ラスタ化で表現されている文字・フォント形状の部分によって実際にカバーされている)を含む)の左に自動的に配置する様に設計されていたことを発見した。これは、カラー・バランスの色値の拡散を、非ゼロカバレージ値を含む左端の副画素の左に2つの副画素列に入れるスペースを、左方向の拡散が上述の非線形カラー・バランスアルゴリズム(全体的又は部分的にカバーされた副画素の左に2つの画素にカラー・バランスの分配をすることができる)によって要求されたときに提供する。
【0530】
不運なことに、ラスタ化副画素配列に2つの副画素列17000を当てることは、そのようなカバレージ値を持つ左端の副画素列17002を2つのパッディング画素列を含む画素列の右端の副画素列にするという、好ましくない効果を持つことになる。RGB表示では、これは、実際のカバレージ値を持つ左端の副画素列が青色副画素に対応することを招く。
【0531】
これは好ましくない。なぜならば、フォントビットマップの左端画素列の画素が、カラー・バランスを達成するために非ゼロカバレージ値の分配を要求し、実際のカバレージ値を持たない2つの最左側副画素と非ゼロカバレージ値を含む最右側副画素とを含むことになるからである。これが、図169に示された主たる垂直ストロークの左方向へのぼけである。
【0532】
本発明者は、垂直ストロークの境界が、副画素列の幅よりも鋭い増分に位置されるシステムでヒンティングされた文字・フォント形状は、図171の端(エッジ)17100(非ゼロカバレージ値17002を持つ最左側副画素列中に僅かな長さしか持たない)の様な最左側垂直ストロークの最左側端から始まるように文字・フォント形状をヒンティングする者によって設計されているということを強調する。これは、非ゼロカラー・バランスによって分配されるべき副画素列17002内に含まれる非ゼロ値の大きさを実質的に低減し、それ故、文字の副画素最適化表現における好ましくない不明瞭さを大幅に低減する。
【0533】
例えば、最良のヒンティングの組み合わせによって(その様なアルゴリズムで用いられたとき)、結果ビットマップにおける2番目の最左側画素列17103が、カラー・バランス拡散を要求しないために全体をカバーされた1又は複数の画素を持つ様に、文字の最初の垂直ストローク(図171の垂直ストローク17102の様な)が、右側で3つの連続する副画素列における全体カバレージ値を持って、1つの副画素列に僅かに入る最左側端を持つ様にすることを本発明者は発見した。
【0534】
その様な最適化されたヒンティング処理では、最初のストロークの最右側端から3,6,又は9副画素列の距離で開始する3つの隣接する副画素列に重なる様に、連続する垂直ストロークは並べられる。これによって、図171の垂直ストローク17104及び17106の様な連続する垂直ストロークが、カラー・バランスを要求しない様に、全体的に重なる複数の画素を持つ様になる。
【0535】
図168乃至171に示された種類のフォントは、従来技術の方法によって生成されたほとんどの副画素最適化フォントビットマップよりも判読性が高いが、これらの調査の結果、本発明者は、図172乃至174に示される様な、より明瞭でさえある副画素最適化フォントの生成方法を想到した。
【0536】
図172は、図168に示す種類のウェブページの、副画素最適化された、320×240画素ディスプレイを表現する、全体画素グレースケール・ビットマップを示している。但し、ここでは、フォントビットマップを生成及び表示するための新たな、より明瞭な方法を使用している。
【0537】
図173は、破線ボックス17200において示された、図172の部分の4倍拡大図を示している。
【0538】
図174は、図173の破線17300において示されたテキストの部分をさらに4倍拡大した図を示している。
【0539】
図172乃至174を見ると分かる様に、これらの図において示されたフォントビットマップに含まれる垂直ストロークの多くから発生する色値の水平方向の拡散が相対的に殆ど無い。カラー・バランスのための拡散によるものではなく、これらの図中のテキストが、背景色を持つ図172のウェブページの部分から採られたため、図173及び174における規則的な薄いグレー背景が生じることを強調する。これらの図に示されたフォントは、図168及び169に示されたものよりも実質的に明瞭である。
【0540】
本発明者は、文字の最左側垂直ストロークの最左側端を画素境界の左端に揃えることによって、この改善を行った。多くの実施形態では、図175に示される3つのパッディング副画素列17500を、非ゼロカバレージ値を含む最左側副画素列の前に挿入することによって、これが実行される。これは、文字のアウトラインによって全体的又は部分的に重なる最左側ラスタ化ユニット(例えば、副画素)を、画素列の最左側端に自動的に揃える。最左側のアウトライン・端がラスタ化ユニットの最左側端に揃えられたとき、これは、最左側アウトライン・端が、結果として生じるフォントビットマップにおける画素の最左側端に自動的に揃える。フォント・アウトラインの最左側端が垂直ストロークである場合、これによって、非線形カラー・バランス後でさえ、明瞭な最左側の垂直ストロークを持つフォントビットマップを簡単に生成することができる。
【0541】
図176は、本発明で使用され得る多くの可能なヒンティング・インターフェースの1つを示している。このヒンティングインターフェースでは、破線17602は、所望の文字に対して最左側ベアリングを相互に決定するために、ユーザによって移動され得る線である。破線17604は、右側ベアリングを決定する移動可能な線である。左側ベアリングは、文字が描画される初期の参照ポイント(時にはペンポジションと呼ばれる)と、描画される文字のビットマップの最左側端との間の距離にある。ライン17604は、テキストのラインに沿って次の連続する文字の描画の開始点に通常配置されるペンポジションにおけるビットマップに対する位置に一致する。右側ベアリングは、ライン17604と描画される文字のビットマップの最右側端との間の距離に置かれる。改善後の幅は、ライン17604とライン17602との間の距離として定義される。これは、文字のビットマップの描画前のペンポジションと後のペンポジションとの間の通常の全幅を表している。幾つかの実施形態では、左側ベアリングと改善後の長さとは、複数の画素幅の全体に近似される。但し、他の実施形態ではそうである必要はない。幾つかの場合には、左及び/又は右側ベアリング値は負になり得る。例えば、連続する文字に関連するビットマップがしばしば互いの改善幅の部分に重なる様なイタリックフォントでは、これがしばしば起こる。
【0542】
図176に示された小さな矩形ドット17606の夫々は、副画素最適化フォントビットマップにおいて、個々の副画素に対応するラスタ化ユニットの中心に一致する。この特別なヒンティング・インターフェースでは、文字・フォント形状のアウトラインに半分以上重なるラスタ化ユニットは、黒で示される。但し、さらに改善されたインターフェースでは、ラスタ化ユニットはグレースケール・カバレージ値で示され得る。文字・フォント形状のアウトラインは図に示されており、アウトライン中のセグメントを定義する各点は、コントロールポイントであるかセグメントエンドポイントであるかがナンバリングされている。
【0543】
図177乃至181は、図182に含まれる大幅に簡略化された擬似コード表記において記載されたステップの幾つかの説明の助けに使用される。
【0544】
図182は、プログラム6000Aの大幅に簡略化された擬似コード表記であり、以下の点を除いて図60の擬似コードに一般的に一致する。即ち、図182に示された擬似コードは、図172乃至176で上述された、より明瞭に非線形カラー・バランスされ副画素最適化されたビットマップを生成する改善方法に関する演算面に焦点を置いている。
【0545】
この擬似コードは関数18202を含んでおり、これは、ヒンティングによって定義されたラスタ化ユニットに対する形状の並びを考慮して、文字・フォント形状が配置され得るラスタ化ユニットの最も緊密な矩形配列を決定する。
【0546】
ラスタ化が起こる個々のラスタ化ユニットに対するフォント・アウトラインの位置は、この関数によっては変化しない。それ故、もし、アウトラインの最左側ポイントがラスタ化ユニットの最左側端以外で発生すると、ラスタ化ユニットは、関数18202によって生成される最も緊密な矩形配列の最左側端に発生し、アウトラインの最左側端は、その矩形の最左側ラスタ化ユニット列内で発生するが、最左側列の最左側端では発生しない。
【0547】
図177及び178は、この関数の説明の助けとなる。図177は、ヒンティングされた文字・フォント形状のアウトラインに対応する。図178は、図177に示された文字アウトラインに対する関数18202によって返される、ラスタ化ユニット(夫々副画素のサイズに一致する)の矩形を示している。このグリッドは、文字・フォント形状を含むラスタ化ユニットが適合する最も緊密な、最も小さい、矩形に一致する。
【0548】
一旦、関数18202が完了すると、関数6002A乃至6006が実行される。これらは、図60のステップ6002乃至6006に一致する。それらは、関数18202によって返される、矩形に含まれる各ラスタ化ユニットに対するカバレージ値を決定することに使用される。
【0549】
図179は、図178に示された配列における各ラスタ化ユニットに対して計算されるカバレージ値を図示している。そこでは、黒に色付けられたラスタ化ユニットの割合によって表現される。図179では、文字・フォント形状アウトラインによってカバーされるユニットの対応する部分がラスタ化ユニットの最上部に発生するとき、カバー範囲を表す各ラスタ化ユニットにおける結果の棒グラフの部分は、ユニットの最上部に置かれている。
【0550】
図180では、個々のラスタ化ユニットの全てについての棒グラフは、上述した図46乃至52、及び92乃至93に示されたカバレージ値の表現により近く対応させるために、対応する副画素ユニットの最下部において開始される。
【0551】
一旦、文字・フォント形状がラスタ化されると、ステップ18204は、副画素カバレージ値の結果配列を副画素アドレス可能な画素にマッピングする。これは、上述の緊密な矩形におけるラスタ化ユニットの最初の列を画素列の左端に揃えることによって行われる。これによって、非ゼロカバレージ値を持つラスタ化ユニットの左端列が、図175で上述された全体画素において最左側副画素列として配置される様になる。図177乃至181で図示された例では、これによって、結果として生じる副画素配列が、図181において18102と付された中央の画素列において示される様に現れる様になる。
【0552】
次に、ステップ18206は、現在文字に対して生成されているビットマップ配列を、実際の非ゼロカバレージ値を持つ最左側副画素列を含む画素の左にある3つの副画素列から成る画素列に当てる。これによって、この例の副画素配列が、図181の画素列18104及び18102の組み合わせによって示される様に現れる。
【0553】
次に、ステップ18208は、画素列の合計が3の偶数倍(全体画素列の偶数倍)になる様に、ビットマップ配列の右に2以上の副画素列を当てる。これによって、この例の副画素列が、図181の画素列18104,18102,及び18106の組み合わせによって示される様になる。
【0554】
ステップ18210は、パッドされた画素列の追加を補償するように、左及び/又は右側ベアリング値を調整する。それ故、例えば、1画素幅の左側ベアリングを追加で有するビットマップは、左側のパッディング列の追加を補償するためにゼロの左側ベアリングを持つ様に変更される。同様に、右側に追加された余分の画素列を持つビットマップは、1画素幅だけ右側ベアリングを減少させる。
【0555】
次に、関数18212は、非線形カラー・バランス(多くの実施形態において、上記図60のループ6008で記載されたステップに一致する)を実行する。
【0556】
一旦、これが実行されると、上記図96で記載した種類のパック色値を使用する実施形態では、ステップ18214は、カラー・バランス処理後に生じる画素色値を、より制限された色パレットの対応値に変換する。
【0557】
図182の方法によれば、図168乃至169で上述した不要な色拡散を生じることなく、カラー・バランスに必要な空間を与える。ラスタ化されるフォント形状に重なる領域に対応する副画素の左及び右の少なくとも2つの副画素が存在することを確実にすることによって、これを実行する。
【0558】
本発明の本特徴の他の実施形態では、非線形カラー・バランスが不明瞭さを低減する能力を最大限に利用するために、他の方法が、フォント形状の最左側端及び最右側端と、垂直ストロークとを全体画素の境界に揃えることに使用される。そのような幾つかの実施形態では、パッディング画素列がフォントビットマップの左側又は右側の何れに追加されるかは、カラー・バランス分配がその列において必要とされるか否かの関数であり得る。
【0559】
図183は、図182で記載された方法によって生成されたビットマップを使用して、文字のストリングを描画するための関数を記載している。この擬似コードは、以下の点を除いて、図97で上述したものに類似している。相違点は、図182で記載したより明瞭な非線形カラー・バランスされた副画素最適化フォントを生成するための方法に極めて有用な本発明の特徴に焦点を置いていることである。
【0560】
図183に示される描画ストリング・関数が呼び出されると、ステップ18202は、ペンポジションを、ストリングの表示が開始する場所を示す描画ストリングコールによって特定される開始点に設定する。
【0561】
次に、ループ9714A(図97で記述されたループ9714に類似する)が、表示する各文字のストリングについて実行される。
【0562】
このループにおいて、ステップ9716は、現在文字のフォントビットマップにアクセスする。次に、ステップ18204は、文字の開始点を現在のペンポジションに設定する。次に、ステップ18306は、左側ベアリングによって現在のペンポジションを調整する。上記で述べた様に、左側ベアリングは、文字ビットマップが左側に余分な1つの画素列が当てられている事実を考慮するために通常のものから変更されており、それ故、1画素列の幅だけ減少されている。
【0563】
次に、ステップ9718Aは、フォントビットマップにおいて各画素に対して実行される。これは、現在画素の値が非ゼロであるか否かをテストするサブステップ18208を含んでいる。もし、現在画素の値が非ゼロであれば、画面上で、現在のペンポジションの関数として定義された位置に画素を描画する。
【0564】
もし、現在画素の値がゼロであれば、それは全体的に透明な画素を表している。現在画素の位置において先に背景色が変わらずに残されていることを意味する。本発明のこの実施形態では、図96に記載された関数は、その様に全体的に透明な画素を表すために、ゼロの値を保持している。
【0565】
透明な画素を書き込まないこの実施方法は、図183で記載された実施形態において、ビットマップの全ての画素に適用される。この実施方法は、図182で上記したステップ18206によって、文字・フォントビットマップの最左側端に置かれるパッディング列における画素に関して特に重要である。これは、その様なパッディング列の画素は、一般に垂直ストローク境界が垂直画素境界に揃えられる場合に非線形カラー・バランスの結果としてそれらの画素に拡散される色値を持たないからである。その結果、そのような画素は透明であり、文字による位置においてその画素の左に置かれている色値は変化しない状態であり、カバー範囲又はカラー・バランス情報を含む隣接する文字の画素列が互いに近接して置かれる様になる。
【0566】
これは、例えば、図173の符号17302によって示される位置において見られる。ここでは、単語“Web”の“w”と“e”の間の画素列は、“w”からの色値を含んでいる。“Web”は、透明な、それ故書き込まれていない、“e”の左側パッディング列を通じて示されうる様になっている。これは、図174の符号17402によって示された位置でも見られ、そこでは、“r”と“e”との間の画素列は、“e”の透明なパッディング画素列に重なっていない“r”からの色値を含んでいる。
【0567】
当業者が認識する様に、関数9718Aは、ビットマップの夫々を適切な位置に描画するために、画素が描画される位置がフォントビットマップの各行に対して繰り返される様に制御するある種の反復を要する。
【0568】
本発明の他の実施形態では、単に、連続する文字の対応画素が透明である場合に1文字からの非透明色値が透けて見えることを許可するよりも、隣接文字からの非透明画素値が結合される様に重ねることを許可する機能が提供され得る。
【0569】
このような処理は、副画素対副画素に基づいて透明度値の結合を許可することが好ましい。このような処理は、より演算能力を要するとしても、接近して配置された文字のさらにより高い精度の表現を提供し得る。
【0570】
この結果を得る1つの方法は以下の通りである。文字間で重なる画素の3つの対応アルファ要素値の夫々を、要素値を最大可能値で切り捨てて加算する。そして、その後、幾らの前景値及び背景値でその場所に描画されるかを決定するために、組み合わされた要素アルファ値を使用して、結果として得られる画素の夫々を描画する。
【0571】
図184は、より明瞭な非線形カラー・バランスフォントビットマップを提供する方法における他の実施形態を図示している。それは、以下の点を除いて、図176で上述したものと同様のヒンティング・インターフェースを図示している。その点は、ユーザによって移動可能な線又はコントロールから成るインターフェース機能18402を含む点である。このコントロールによって、ユーザは、最左側パッディング画素列に続く画素列の最左側端に揃う様な場所を、文字・フォント形状アウトラインに対して選択的に配置出来る様になる。
【0572】
この様なインターフェース機能は、垂直ストローク以外の最左側端を持つフォントをヒンティングする際に、より求められる。例えば、全画素幅以下の範囲で左側端から突き出した小さな上下の髭線(セリフ)を持つ最左側主垂直ストロークを持つ文字・フォント形状を扱う場合、ヒンティング者は、垂直ストロークの主たる最左側端を、より左のセリフよりも、全体画素境界に揃えたいと考える。図184に示されたこのインターフェース機能は、このような整列をヒンティング者にとって容易なものにしている。
【0573】
ヒンティング者に均等な能力を与える他の方法は、図170又は171に上述された様に、2つの副画素パッディング列だけの追加、又は図175、181及び182に上述された様に3以上のその様な副画素パッディング列の追加の何れかを選択出来る様にすることである。
【0574】
非線形カラー・バランス副画素最適化画像をより明瞭にするための今述べられた方法は、図172乃至174に示された種類の小さなフォントに適用可能であるだけではなく、図55に示された比較的大きなフォントの様な、より大きなフォントにも適用可能である。
【0575】
副画素最適化は、通常、フォントビットマップを3つの異なる種類の副画素:前景画素、背景画素、及び中間的にカラー・バランスされた画素だけで表現する。前景画素は、表現されるフォント形状によって全体的に覆われるフォント画像の部分を表現し、文字が表現される前景色で描画される。背景画素は、フォント形状によって全体的に(ほとんど)覆われないフォント画像の部分を表現し、その上にフォントが示される背景の色で描画される。中間画素は、フォント形状によって部分的に覆われ、及び/又は近傍の画素に対するカラー・バランス分配を受け取った画素を表現している。副画素の夫々の色は、カラー・バランスによって別々に決定される。
【0576】
図46,47,52及び93で上述された種類の従来技術の線形カラー・バランスがフォントに適用された場合には、文字形状の端が画素境界に完全に揃えられているときでさえ、カラー・バランスが、副画素色変化の方向で文字形状の各端を横切って実行される。如何に良好にヒンティングしても、これによって全ての文字形状の空間不明瞭度を生じる。
【0577】
図48,49,51,及び91で上述された種類の非線形カラー・バランスが適用された場合には、カラー・バランスによって生じる空間的な不明瞭さを大幅に低減する様にヒンティングが使用され得る。端が画素境界に揃えられている文字形状の部分では、カラー・バランス分配が画素境界を越えて要求されないことが多い。これは、非線形カラー・バランスが、所定の副画素内で発生するカラー・アンバランスを分配するのみであるからである。これによって、前景画素は、その場所における副画素色変化の方向に沿って背景画素の次に配置され、フォント形状の知覚可能な明瞭度を大幅に向上させる。これは、図173及び174において示され、そこでは、これらの図で示された8画素/emにおける垂直ストロークの実質的な部分は、これらのストロークの端が画素境界に揃えられる様にヒンティングされる。その結果、前景画素は、多くのその様な垂直ストロークの実質的な部分に沿って、水平方向において背景画素の次に配置される。図168及び169で示された、最左側垂直ストローク端の最適ではないヒンティングでさえ、カラー・バランス不明瞭度の大きさは、従来技術の線形カラー・バランスから生じる不明瞭度の大きさよりも実質的に小さい。
【0578】
図185乃至190は、大幅に簡略化された擬似コード表記であり、この擬似コード表記は、特に、比較的小さい又は比較的低解像度の画面上でブラウズが実行される場合に、ウェブページのブラウズの向上に使用されるユーザインターフェースの改善に関するものである。
【0579】
図185は、図129乃至134で上述された選択テキストリフロー方法のより高度なレベルの表現である。この方法18500は、ウェブページのコンテンツにアクセスする関数18502と、ウェブページ内のテキストについて示された異なる水平方向の場所にテキストを置いて、ウェブページのコンテンツの最初のレイアウトを実行する関数18504とを含む。ウェブページの記述に使用されるマークアップ言語は、テキストの異なる部分が、異なる水平方向の場所又はウェブページの異なる水平方向の範囲に描画される様に指示する複数の方法(2つだけ挙げるとテーブルとフレームの使用を含む)を有している。
【0580】
一旦、その様なレイアウトが実行されると、関数18506は、レイアウトの要素を、所定のスケール及び最初のレイアウトで決定される相対的な位置に表示する。この表示が実行された後、ステップ18508は、最初のレイアウトの表示における所定の水平方向位置でテキストの部分を、ユーザが選択出来る様にする。これを可能にする1つの方法は、図130で上述されている。
【0581】
その様な選択が成されると、関数8510は、関数18512及び18514を実行する。関数18512は、ユーザによって選択された2番目のレイアウトを実行する。2番目のレイアウトは、新しい列のラインを横切って選択テキストをリフローする。そこでは、テキストは、異なる、通常、列のラインの幅に対してより大きいフォントサイズを持つ。この2番目のレイアウトが実行されると、関数18514は、新しい列のレイアウトを、ウェブページが表示される画面又は画面ウィンドウの幅の少なくとも2/3を満たすスケールで表示する。
【0582】
図135乃至137で上述した様に、選択テキストリフロー方法での2番目のレイアウトによれば、ユーザは、ウェブページのレイアウトの選択部分を、大きく容易に読めるフォントサイズで見ることができる。これは、低解像度画面、小さな画面、及び/又は視認者から相対的に遠い画面上において大きな利点である。その方法の最初のレイアウトによって、より通常に近い画面ではウェブページがどの様に見えるように設計されているかをユーザが見ることが可能になり、より大きいフォントで再表示して見たいテキストの部分をユーザがより素早く選択可能になる。
【0583】
図186は、図118乃至120で上述した一般的な種類のズーム・ツー・フィット方法18600の、高度な水準の擬似コード表記である。
【0584】
この方法は、ウェブページのコンテンツにアクセスする関数18602と、ウェブページのコンテンツをレイアウトする関数18604とを含んでいる。
【0585】
一旦、その様なレイアウトの表示が画面に示されると、関数18608によって、ユーザは、この画面を横切ってポインティングデバイスをドラッグ出来る様になる。その様なドラッグ中、もし、画面端に在る境界を横切ってドラッグが続くと、関数18610は、関数18612によって、画面端の他の側で以前には画面になかったレイアウトの部分を画面中にスクロールする。これが実行されると、ユーザは、現在の画面スケールでは画面に全体的に適合するには大きすぎる、又はドラッグの開始点にあって一部のみが画面上にある、レイアウトの部分をドラッグによって選択出来る様になる。
【0586】
ユーザがドラッグを離すと、関数18614は、関数18616及び18618を実行する。これらの最初は、レイアウトの一部をドラッグの開始と終了とに一致するレイアウトにおける位置に基づいて選択されて定義される様にする。その様な選択部分は、ドラッグの水平又は垂直方向の範囲を持つレイアウトの部分、又は、ドラッグの開始及び終了に対応する対角上の隅を持つ領域に一致し得る。そして、関数18618は、レイアウトの選択部分を、実質的に画面に適応する様なスケールで表示する。
【0587】
図187は、ユーザがウェブページのレイアウトの表示内で容易に探索できるドラッグスクロール方法18700の高水準の擬似コード表記である。
【0588】
この方法は、ウェブページのコンテンツにアクセスする関数18702、ウェブページのコンテンツのレイアウトを実行する関数18704、及び所定のスケールファクタでレイアウトの全部又は一部を表示する関数18706を含んでいる。その後、関数18708は、ユーザが、レイアウトの表示を横切って、ポインティングデバイスをドラッグできるようにする。関数18710は、画面端の境界を横切るドラッグに応答し、画面端を超えて、以前には画面に無かったレイアウトの部分を画面上にスクロールする。
【0589】
この方法は、ズーム選択関数の一部又はそれから独立して使用され得る。これの利点は、表示画面の端、又は表示画面の端の近傍を横切ってポインティングデバイスを単にドラッグさせることにより、ウェブページのレイアウトの表示を、ユーザがスクロール出来る様になる点である。
【0590】
図188は、クリック−ズーム方法18800の高水準擬似コード表記であり、この方法では、ユーザは、ウェブページのレイアウトの所望の部分に素早くズームインすることを選択できる。この方法は、ウェブページのコンテンツにアクセスする関数18802、ウェブページのコンテンツのレイアウトを実行する関数18804、及びウェブページのレイアウトの全部又は一部を最初のスケールで表示する関数18806を含んでいる。関数18808は、ユーザがクリックして、最初のスケールでのレイアウトの表示において選択部分にデバイスを指定可能にし、関数18810は、クリックが実行されたレイアウト中の場所の周囲のレイアウトの部分のズームイン表示を実行することにより、クリックに応答する。一般的に、ズームイン表示は、クリックされたレイアウトの場所を中心に置かれる。
【0591】
図189は、ズームクリック方法18900の大幅簡略化擬似コード表記であり、これは図121乃至128で上述されている。
【0592】
この方法は、ウェブページのコンテンツにアクセスする関数18902、コンテンツのレイアウトを実行する関数18094、及び連携するポインティングデバイスを持つ表示画面上に最初のスケールで、ウェブページのレイアウトの一部又は全部を表示する関数18906を含む。図189に記載された、この方法の特定の実施形態では、画面はタッチスクリーンであり、ポインティングデバイスが人の指であり得ることを意図している。
【0593】
一旦、最初のスケールでのレイアウトの表示が実行されると、タッチ画面ディスプレイに対して押下が実行された場合に、関数18908が応答する。その様な押下が発生すると、この関数は、関数18910乃至18922を実行する。
【0594】
関数18910は、画面上で、最初のスケールでのウェブページの部分の表示を、より大きなスケールでのウェブページの部分のズームイン表示に置き換える。このズーム部分は、タッチ画面押下によるレイアウトでの選択位置を含む。選択レイアウト位置は、最初のスケールでの選択時において持っていたのと実質的に同じ位置を、ズームイン表示での画面上で持つことが好ましい。実質的に同じ位置によれば、選択位置は、画面上で同じ位置の接触に対応するズームの直前及び直後の両方での画面上で場所を持つはずである。選択位置の画面の場所での変化は、ズームの直後で、画面の幅又は高さの20%以上を変更しない。
【0595】
一旦、ズームイン表示が示されると、関数18912は、ウェブページレイアウト中の接触による選択場所を示すために、画面が接触されている場所の上方にカーソルを表示する。幾つかのタッチ画面デバイスでは、特に、比較的精密な点を持つスタイラスでの使用に設計されたデバイスでは、その様なカーソルの必要はない。なぜならば、ユーザは、画面が接触されている点を極めて正確に見ることができるからである。しかし、ポインティングデバイスとして指での使用に設計されたタッチ画面では、ユーザが、接触による画面表示での位置を正確に確認出来る様に、画面が接触される位置上方にカーソルを配置することが、しばしば好ましい。これは、図121乃至128で表示された様なディスプレイ、即ち人間の指のサイズに比べると比較的小さい表示でこの方法が使用される場合に、特に好ましい。
【0596】
接触が続く間、関数18914は、対応してズーム表示中でカーソルを移動させることによって、接触のどんな動きにも応答する。また、接触が続く間、関数18016は、画面端の境界を横切る接触の動きに応答し、画面上に、画面端を越えて、以前は画面に表示されていなかったレイアウトの部分をズームスケールでスクロールする。これによって、ユーザは、ズームクリックモード中、ウェブページのズーム画面内で素早くかつ便利にスクロール出来る様になる。
【0597】
関数18918は、ユーザが、ウェブページのズーム表示中の所定の位置で接触を離した場合に応答する。もし、接触を離した場合、関数18920は、あたかも離した位置に一致するウェブページ中の位置においてポインティングデバイスのクリックが発生したかの様に動作する。例えば、ウェブリンクに対応するレイアウト位置で離した場合、システムはリンクを選択することによって応答する。又は、ラジオボタンの位置で離した場合には、システムは、ラジオボタンの状態を反転させる。
【0598】
一旦、これが実行されると、関数1899は、画面上のズームインレイアウトの表示を、ポインティングデバイスの押下が関数18908によって検知される前にウェブページが表示されていた同じ最初のスケールファクタでのレイアウトの表示に置き換える。
【0599】
図121乃至128で上述した様に、ズームクリックは、選択部分のコンテンツを読みやすくかつポインティングデバイスで正確に選択し易くするズームインスケールで、ウェブページの所望の部分を素早く見ること及び選択することが、ユーザにとって可能に成る様にする重要な技術を提供する。
【0600】
図190は、方法19000の大幅簡略化・擬似コード表記であり、この方法によれば、ユーザは、テキストラインを表現するためにグリーキングを使ってウェブページのズームアウトビューを見ることができる。グリーキングは、判読不能なグラフィック表現でテキストの部分が文書中にレイアウトされるサイズの表現である。
【0601】
この方法は、ウェブページのコンテンツにアクセスする関数19002、ウェブページのコンテンツのレイアウトを実行する関数19004、及びウェブページのコンテンツのレイアウトを表示するためにユーザが選択したスケールを検知する関数19006及び19014を含む。
【0602】
もし、ユーザがウェブページのレイアウトを所定のより大きいスケールで表示させることを選択した場合、関数19006は、関数19008によって、ウェブページのレイアウトの部分をそのより大きなスケールで表示させる。これは、レイアウト画像をより大きなスケールでの表示のためのビットマップ画像で表現する関数19010と、より大きなスケールでの表示に適したサイズを持つ別のフォントビットマップから構成されたビットマップでウェブページのストリングのレイアウトを表現する関数19012とを実行することを含む。
【0603】
一方、もし、ユーザが、所定のスケール、少なくとも幾つかのウェブページのテキストが判読可能なサイズのスケールで表示できない程小さいスケールを選択すると、関数19014は、関数19016によって、ウェブページのレイアウトの部分をより小さいスケールで表示させる。これは、より小さいスケールでの表示のためにスケールダウンされたビットマップ画像でレイアウト画像を表現する関数19018と、少なくとも幾つかのストリングを、グリーキングテキスト表現(より小さいスケールでの表示における個々のストリングのサイズ及び位置を指示する)で表現する関数19020とを実行することを含む。
【0604】
多くの場合、グリーキングにおけるストリングの表現に使用されるビットマップは、小さいスケールでのウェブページのレイアウトにおける対応するストリングのサイズに一致する幅及び/又は高さを持つ単なる線又は矩形である。
【0605】
テキストが小さすぎて読めないサイズでレイアウトが表示された場合、テキストのグリーキング表現は、表示をより容易かつ快適に見れる様にし、グリーキングは、一般に、判読不能に小さなフォントビットマップから対応するストリング画像を生成するよりも、少ない演算能力を使う。
【0606】
図190に示された方法の主な使用の1つは、ユーザがウェブページのレイアウトの概略を見ることを可能すること、及び、ウェブページの異なる部分を素早く選択可能にすることである(図136乃至137で上述した様に)。
【0607】
コンピュータユーザインターフェースの当業者は、図185乃至190に記載された方法の幾つかは、互いに組み合わせた形態、及び単一ユーザインターフェースモードの一部として上述した本発明の他の特徴を組み合わせた形態で使用され得ることが分かるであろう。しかしながら、他のものは、異なるユーザインターフェース又は異なるユーザインターフェースモードで通常使用され得る。
【0608】
前述の記載及び図面は、単に説明及び図示のために使用したものであり、本発明は、添付の特許請求の範囲の解釈がそう限定することを除いて、前述の記載及び図面に限定するものではない。開示を得た当業者は、本発明の目的を逸脱しない範囲でそこに修正及び変形をなし得る。
【0609】
本出願に係る本発明は、広く特許請求した様に、任意の1種類のオペレーティングシステム、コンピュータハードウェア、又はコンピュータネットワークでの使用に限定されず、それ故、本発明の他の実施形態は、異なるソフトウェア及びハードウェアシステムを使用可能である。
【0610】
さらに、以下の特許請求の範囲に記載されたプログラムの動作、実質的には全てのプログラムの動作は、多くの異なるプログラム、データ構造によって、実質的に異なる組織又は手順で実行され得る。これは、プログラムが極端に柔軟な技術であり、複雑な発想も、一旦、当業者に理解されてしまえば、実質的に無制限の方法で現れるからである。特許請求の範囲は、図面に記載されたステップ及び/又はステップの順番そのものに限定することを意味している訳ではない。上記記述において記載された擬似コードは、当業者が、不要な詳細で負担を負うことなく、本発明を実施するために知る必要のある事項をより効率的に伝えるために大幅に簡略化している点で、特に顕著である。その様な簡略化の点では、上述した擬似コードの構造は、プログラマーである当業者が本発明を実施する際に使用する実際のコードの構造からは大きく異なる。さらに、明細書中のソフトウェアで実行されるプログラムされた動作の多くは、他の実施形態ではハードウェアで実行され得る。
【0611】
上記で議論した多くの実施形態では、本発明の様々な特徴は、共に発生する様に示されているが、本発明のこれらの特徴の他の実施形態では別々に発生しても良い。本明細書の様々な部分において記載された副画素最適化及び非線形カラー・バランスの様々な図示は、垂直方向の副画素ストライプを持つRGB副画素アドレス可能な表示に関する。非線形カラー・バランス及び副画素最適化に関連する本発明の改善の多くは、水平方向の副画素ストライプを持つ副画素表示(装置)と同様に、BGR又は他の種類の副画素アドレス可能性を持つ副画素表示(装置)でも使用され得る。
【0612】
上記で示した非線形カラー・バランスにおいて、カラー・バランスによって分配された副画素の輝度の部分は、画素内での最小副画素輝度よりも高い部分のみである。しかし、他の実施形態では、画素内でカラー・アンバランスを引き起こす副画素の輝度の他の部分(画素における中間又は最大の副画素輝度からの差分)が分配され得る。この様な実施形態では、中間又は最大より低い副画素輝度は、結果として、副画素の近傍において副画素輝度の重み付けられた減少分によって分配される負の輝度値である。上記に示した非線形カラー・バランス法は、副画素に対応する画素内でのカラー・アンバランスを引き起こす副画素輝度の部分を分配するのみである。これは、全体画素内で共通に発見される3つの連続するRGB又はBGR副画素の配列は知覚的に良好にカラー・バランスされているからである。もし、全体画素の副画素が同じ輝度を持っていれば、緑色が真ん中でない順番で同じ強度で示された同じ色の副画素の孤立したセットよりも人の目にカラー・バランスして見える。これは、全体画素の境界以外で現れるフォントの端がカラー・アンバランスして見える理由の1つである。
【0613】
しかし、他の非線形カラー・バランスの実施形態は、個々の全体画素内でのカラー・アンバランスを引き起こす副画素輝度の分配に制限する必要はない。他の非線形カラー・バランスの実施形態は、全体画素以外の領域内での副画素カラー・アンバランスの程度を決定し、そのような領域でのカラー・アンバランスに全体的又は部分的に基づいて副画素カラー・アンバランス値を分配することができる。例えば、一般に起こる複数のカラー・アンバランスのパターンに対して、カラー・バランスの知覚を維持しつつ、最小の空間的な拡散を生成する、カラー・アンバランスの分配を見つける調査が実行され、知覚的に選択された分配が全体画素以外の空間的な領域で発生するカラー・アンバランスを分散するために使用され得る。
【0614】
本発明のある特徴は、個々の画素に対してライン・カバレージ値によって輝度値を計算する副画素最適化画像の生成及び使用に関する。ライン又はエリアによるカバー関数の特定の記載なしに以下に請求した本発明の他の特徴は、副画素輝度を決定する方法に限定されるものではなく、例えば、カラービットマップ、グレースケールビットマップ、フォント、及び他の形状から成るソース画像のカバレージ値を決定する他の公知の方法(領域サンプリング技術を含むが、これに限定されない)を使用することができる。
【0615】
上記議論では、輝度値又はカバレージ値の副画素最適化ビットマップへの割り当てに使用されるソース画像ウィンドウは、矩形であり、多色副画素最適化画像において全体画素に一致するサイズを持ち、2色最適化画像において副画素に一致するサイズを持つ。他の実施形態では、異なる形状及びサイズのウィンドウが使用され得る。例えば、多色副画素最適化画像のソース画像ウィンドウは、全体出力画像画素に一致するサイズよりも幾分小さいサイズを持っても良い。幾つかの実施形態では、不規則な重み付け関数は、ソース画像ウィンドウ内のカバレージ値又は輝度値を出力画像のカバレージ値又は輝度値に変換することに使用される。例えば、多色副画素最適化画像では、サイズ及び位置が、輝度を決定する副画素に一致するソース画像ウィンドウの部分における輝度により重み付けをすることが好ましい。事実、図17乃至19で上述したライン・カバレージ配置は、中心重み付けを提供している。なぜならば、ライン・カバレージ値を決定しようとしている副画素の位置に一致するソース画像ウィンドウの部分を通じてのみ垂直線が延びているからである。
【0616】
本発明の多くの特徴は、副画素最適化の使用に明確に関連しているが、多くの他の特徴は副画素最適化に基づいていない。本発明の幾つかのその様な特徴では、副画素最適化を含まないアンチエイリアスの形態が使用され得る。副画素最適化を含まないアンチエイリアスの形態では、アンチエイリアスなしに提供され得るよりも高い解像度を持つ様に画像を表す。フォント画像の場合には特に顕著である。例えば、em当たり7画素の大きさのフォントは、正しい形状を持ち、適切にヒンティングされ、アンチエイリアスを使用した(副画素最適化と共に又は副画素最適化なしに)場合には、比較的容易に判読可能である。但し、適切な副画素最適化は、小さなフォントをより判読容易にする。
【0617】
“screen”を参照する明細書及び請求の範囲では、特に、スケールダウン画像、テキスト、又はウェブページのレイアウトが表示される画面は、一般には、画面全体又は画面上のグラフィックウィンドウの様な画面の部分も含む。例えば、参照されるスケールダウン画面画像は、かなり大きな画面上のウィンドウの中に示され、又は例えば図114に示すツールバーの様なある種のグラフィカル・ユーザ・インターフェースにスペースが使用された後に残った小さな画面の部分上に示されても良い。また、本発明のある副画素最適化の特徴は、非副画素最適化技術で可能なより高い空間解像度でコンテンツを見せる様に、大型画面の全部又は実質的な部分を横切って画像及び/又はテキストを表示することに使用され得る。
【0618】
本発明の幾つかの実施形態は、特に、デジタル・コンテンツを仮想解像度でレイアウトし、スケールダウン解像度で表示することに関連している。本発明の他の特徴では、デジタル・コンテンツの画像及びテキストは、レイアウト前にスケールダウンされ、それらが見られるべき実際の解像度でレイアウトされることが好ましい。
【図面の簡単な説明】
【0619】
【図1】特に、比較的低解像度のシステム上における、ウェブブラウズ及び/又は他の種類のコンピュータで作成されたコンテンツの表示を向上させるための本発明の1つの特徴に従って使用される処理を示す図。
【図2】携帯ブラウザ、プロキシサーバ、ウェブサーバ及びフォントサーバを有する、本発明が実行可能なネットワークコンピューティング環境を示す図。
【図3】ブラウザ及びウェブサーバを有する、本発明が実行可能なネットワークコンピューティング環境を示す図。
【図4】ブラウザ及びウェブサーバを有する、本発明が実行可能な第2のネットワークコンピューティング環境を示す図。
【図5】ブラウザ及びウェブサーバを有する、本発明が実行可能な第3のネットワークコンピューティング環境を示す図。
【図6】表示されるべき標準のウェブコンテンツと、そのコンテンツをスケーリング及び/又は副画素最適化するための処理を含むブラウザ機能とを有する、本発明が実行可能なコンピュータシステムを示す図。
【図7】表示されるべきコンテンツ、そのコンテンツをスケーリング及び/又は副画素最適化するためのプロキシ処理、及びブラウザ機能を有する、本発明が実行可能な他のコンピュータシステムを示す図。
【図8】前もってスケーリング及び/又は副画素最適化されたコンテンツを有する、本発明が実行可能な第2の他のコンピュータシステムを示す図。
【図9】従来の垂直ストライプ型RGB液晶表示装置を示す図。
【図10】図1のステップ108及び112のそれぞれに関して参照された画像及びテキスト両方の副画素最適化の実行に含まれる、本発明の特徴の幾つか。
【図11】320×240カラー表示(装置)上で標準のウェブコンテンツを表示させる場合における本発明の本実施形態によって、提供される判読性の水準を示す図。
【図12】ソース画像102の一部に渡る、画素と副画素グリッドとのマッピングを示す図。
【図13】図12のマッピンググリッドの部分の拡大図。
【図14】低解像度の表示(装置)の赤(R)の副画素の輝度を算出するために用いられるソース画像上のウィンドウを示す図。
【図15】低解像度の表示(装置)の緑(G)の副画素の輝度を算出するために用いられるソース画像上のウィンドウを示す図。
【図16】低解像度の表示(装置)の青(B)の副画素の輝度を算出するために用いられるソース画像上のウィンドウを示す図。
【図17】異なる色の1又は複数の画素に重なるソース画像ウィンドウにおいて、赤(R)副画素のカバレージ値の部分を評価することにより、赤(R)副画素の副画素輝度を算出する走査ライン・カバレージ値方法において使用される、走査線を示す図。
【図18】低解像度の表示(装置)の緑(G)副画素の輝度を算出するために使用される類似の走査線を示す図。
【図19】低解像度の表示(装置)の青(B)副画素の輝度を算出するために使用される類似の走査線を示す図。
【図20】図17を再度示した図。
【図21】赤画素ソース画像ウィンドウ内において異なるソース画像画素に重なる図20に示した水平走査線の複数の部分を示す図。
【図22】赤画素ソース画像ウィンドウ内において異なるソース画像画素に重なる図20に示した垂直走査線の複数の部分を示す図。
【図23】図18と同じ図。
【図24】緑画素ソース画像ウィンドウ内において異なるソース画像画素に重なる図23に示した水平走査線の複数の部分を示す図。
【図25】緑画素ソース画像ウィンドウ内において異なるソース画像画素に重なる図23に示した垂直走査線の複数の部分を示す図。
【図26】図19と同じ図。
【図27】青画素ソース画像ウィンドウ内において異なるソース画像画素に重なる図26に示した水平走査線の複数の部分を示す図。
【図28】青画素ソース画像ウィンドウ内において異なるソース画像画素に重なる図26に示した垂直走査線の複数の部分を示す図。
【図29】図17乃至図28に示したようなライン・カバレージ値に基づいて副画素輝度を算出する副画素最適化方法の、大幅に簡略化された擬似コード表記を示す図。
【図30】副画素最適化・スケーリング画像において画素の色を算出するための“ライン・カバレージ値”方法の他の実施形態において、2本の水平走査線及び2本の垂直走査線がどのように使用され得るかを示す図。
【図31】副画素最適化・スケーリング画像において画素の色を算出するための“ライン・カバレージ値”方法の他の実施形態において、2本の対角走査線がどのように使用されるかを示す図。
【図32】副画素最適化・スケーリング画像において画素の色を算出するための“ライン・カバレージ値”方法の他の実施形態において、2本の対角走査線、2本の水平走査線及び2本の垂直走査線がどのように使用されるかを示す図。
【図33】1/2水平及び垂直スケーリングにおいて、2本の水平カバレージ線に対するライン・カバレージ値を示す図。
【図34】1/2水平及び垂直スケーリングにおいて、2本の垂直カバレージ線に対するライン・カバレージ値を示す図。
【図35】約2/5水平及び垂直スケーリングにおいて、2本の水平カバレージ線に対するライン・カバレージ値を示す図。
【図36】約2/5水平及び垂直スケーリングにおいて、2本の垂直カバレージ線に対するライン・カバレージ値を示す図。
【図37】約2/3水平及び垂直スケーリングにおいて、2本の水平カバレージ線に対するライン・カバレージ値を示す図。
【図38】約2/3水平及び垂直スケーリングにおいて、2本の垂直カバレージ線に対するライン・カバレージ値を示す図。
【図39】副画素最適化・スケーリング画像の色の値を算出するための“エリア・カバレージ値”方法において使用されるソース画像画素領域を示す図。
【図40】“エリア・カバレージ値”方法による副画素の輝度の値を算出するために使用されるソース画像ウィンドウ内での、異なるソース画像画素の領域を示すために、異なるハッチングを使用した以外は、図39と同じ図。
【図41】図39及び図40において議論されたようなカバレージ値に基づいて副画素輝度値を算出する副画素最適化方法の、大幅に簡略化された擬似コード表記を示す図。
【図42】赤副画素に輝度の値を対応させることによって、ビットマップ画像のスケーリング・副画素最適化画像を作成する方法を示す図。
【図43】緑副画素に輝度の値を対応させることによって、ビットマップ画像のスケーリング・副画素最適化画像を作成する方法を示す図。
【図44】青副画素に輝度の値を対応させることによって、ビットマップ画像のスケーリング・副画素最適化画像を作成する方法を示す図。
【図45】RGBグリッド下におけるグレースケールを示す図。
【図46】個別の画素に対応する輝度が、従来の線形フィルタリング法によってどのように分配されるかを示す図。
【図47】従来の線形フィルタリング法の結果として求められる副画素輝度の値を示す図。
【図48】非線形フィルタリング法の下で、最小ソース画像輝度の値の分配を示す図。
【図49】非線形フィルタリング法の下で、超過ソース画像輝度の値の分配を示す図。
【図50】元のソース画素輝度に対する線形及び非線形フィルタリング法の結果の比較を示した図。
【図51】元のソース画素輝度に対する線形及び非線形フィルタリング法の結果の比較を示した図。
【図52】元のソース画素輝度に対する線形及び非線形フィルタリング法の結果の比較を示した図。
【図53】2色ビットマップの副画素最適化された表現を作成するためのソフトウェアの大幅に簡略化した擬似コード表記を示した図。
【図54】色と位置的な解像度との間のトレードオフをユーザが動的にできるようにするフローダイアグラムを示した図。
【図55】アウトラインフォント形状により定義された文字・フォント形状と、副画素アドレス可能な表示(装置)にその形状を表現するために用いられる副画素を含む画素配列との間のマッピングを示した図。
【図56】本発明の一実施形態に係るウェブページの320×240画面の画面ショットを示した図。
【図57】図56に示した画面ショットの2倍拡大図。
【図58】コンピュータが如何にフォントビットマップ又はフォントサーバからのフォント・アウトラインにアクセスするかを示した図。
【図59】コンピュータが如何にフォントビットマップ又はフォントビットマップに蓄積されたフォント・アウトラインにアクセスするかを示した図。
【図60】図48乃至図52に記載された種類の非線形カラー・バランスを使用する文字・フォントの形状の副画素最適化されたビットパップを算出するための、大幅に簡略化されたアルゴリズムの表現を示した図。
【図61】図55に示されたような画素配列の個々の画素において3副画素の各々に対してカバレージ値を決めるのに使用され、図55に示されたような文字・フォント形状画像におけるウィンドウのサイズを示した図。
【図62】図55に示されたような画素配列の個々の画素において3副画素の各々に対してカバレージ値を決めるのに使用され、図55に示されたような文字・フォント形状画像におけるウィンドウのサイズを示した図。
【図63】図55に示されたような画素配列の個々の画素において3副画素の各々に対してカバレージ値を決めるのに使用され、図55に示されたような文字・フォント形状画像におけるウィンドウのサイズを示した図。
【図64】非矩形ラスタ化ユニットに対するカバレージ値を計算するために使用されている幾つかの従来技術を示した図。
【図65】非矩形ラスタ化ユニットに対するカバレージ値を計算するために使用されている幾つかの従来技術を示した図。
【図66】非矩形ラスタ化ユニットに対するカバレージ値を計算するために使用されている幾つかの従来技術を示した図。
【図67】非矩形ラスタ化ユニットに対するカバレージ値を計算するために使用されている幾つかの従来技術を示した図。
【図68】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図69】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図70】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図71】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図72】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図73】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図74】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図75】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図76】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図77】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図78】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図79】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図80】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図81】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図82】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図83】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図84】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図85】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図86】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図87】副画素のカバレージ値を計算するために本発明の幾つかの実施形態で使用された加重されたライン・カバレージ値を使用し、ラスタ化ユニットに対するカバレージ値の計算のコンピュータ的に効率的な方法を示した図。
【図88】図68乃至図87に関して上述した一般的な種類の加重ライン・カバレージ値について使用され得る、他の配置のカバレージ線を示した図。
【図89】図68乃至図87に関して上述した一般的な種類の加重ライン・カバレージ値について使用され得る、他の配置のカバレージ線を示した図。
【図90】図68乃至図87に関して上述した一般的な種類の加重ライン・カバレージ値について使用され得る、他の配置のカバレージ線を示した図。
【図91】画素の配列と、各々の副画素とをフォント・アウトラインの一部の画像にマッピングした図。
【図92】図91に示された配列の副画素に対して計算されている対応するカバレージ値を示した図。
【図93】図46に対応する図。図46のように、所定の画素行内で各々の副画素カバレージ値の全てを、連続して近傍にある副画素に渡って分配する、従来技術の線形カラー・バランス法を示した図。
【図94】図60に関して記載された非線形カラー・バランス法に使用され得るカラー・バランスフィルタを示した図。
【図95】図60に関して記載された非線形カラー・バランス法に使用され得るカラー・バランスフィルタを示した図。
【図96】図60に関して全体画素のアルファ値のより制限された色空間に表現されたような方法によって、フォントビットマップに対して計算された全体画素のアルファ値を表現するために使用され得る、大幅に簡略化されたアルゴリズムの擬似コード表記。
【図97】図60及び図96に示された方法の組み合わせによって作成されたフォントビットマップを使用する副画素アドレス可能な表示(装置)におけるテキストストリングを表示するための、大幅に簡略化されたアルゴリズムの擬似コード表記。
【図98】本発明によってウェブページを320×240の画面に如何に上手く表示できるかを示した図であり、ウェブページの640×480のレイアウトの画面ショットを示した図。
【図99】本発明が如何に図98のウェブページを320×240の画面上に表示することができるかを示した図。
【図100】図98とは異なるウェブページの640×480のレイアウトの画面ショットを示した図。
【図101】図99とは異なるウェブページの640×480のレイアウトの画面ショットを示した図。
【図102】幾つかのデータ構造と、プロキシサーバ及び薄型クライアントコンピュータによって薄型クライアントコンピュータのユーザがスケーリング、副画素最適化された画面上のウェブコンテンツにアクセスできるようにするために使用されるプログラムとの概略ブロック図。
【図103】図98及び図99で説明されたウェブページのHTMLコードの一部。
【図104】プロキシサーバによって作成されたウェブページのレイアウト及びプロキシサーバの仮想画面内にあるそのレイアウトの一部を示した図。この例では、そのレイアウトの一部は、図99に示されたウェブページの一部に一致している。
【図105A】図102に示されたプロキシサーバ上でのプログラムの、大幅に簡略化された擬似コード表記。
【図105B】図102に示されたプロキシサーバ上でのプログラムの、大幅に簡略化された擬似コード表記。
【図106A】スケーリング及び副画素最適化されたウェブページの一部の表現を薄型クライアントにキャプチャ及びダウンロードするためのプログラムの大幅に簡略化された擬似コード表記を示した図。
【図106B】スケーリング及び副画素最適化されたウェブページの一部の表現を薄型クライアントにキャプチャ及びダウンロードするためのプログラムの、大幅に簡略化された擬似コード表記を示した図。
【図106C】スケーリング及び副画素最適化されたウェブページの一部の表現を薄型クライアントにキャプチャ及びダウンロードするためのプログラムの、大幅に簡略化された擬似コード表記を示した図。
【図107】図106A乃至図106Cのプログラムによってキャプチャされたウェブページの表現の実際のダウンロードのためのプログラムの、大幅に簡略化された疑似コード表記を示した図。
【図108】図107で説明されたプログラムによって薄型クライアントにダウンロードされたデータの大幅に簡略化された表現を示した図。
【図109A】図102に示された薄型クライアントにおけるプログラムの、大幅に簡略化された擬似コード表記を示した図。
【図109B】図102に示された薄型クライアントにおけるプログラムの、大幅に簡略化された擬似コード表記を示した図。
【図109C】図102に示された薄型クライアントにおけるプログラムの、大幅に簡略化された擬似コード表記を示した図。
【図110】図102に示された薄型クライアントにおけるウェブページ表示上のテキスト入力フィールド上をユーザがクリックした場合、ユーザがテキスト入力フィールドにテキストを入力できるようにするポップアップメニューが如何に示されるかを説明する図。
【図111】図102に示された薄型クライアントにおけるウェブページ表示上のテキスト入力フィールド上をユーザがクリックした場合、ユーザがテキスト入力フィールドにテキストを入力できるようにするポップアップメニューが如何に示されるかを説明する図。
【図112】図102に示された薄型クライアントにおけるウェブページ表示上のテキスト入力フィールド上をユーザがクリックした場合、ユーザがテキスト入力フィールドにテキストを入力できるようにするポップアップメニューが如何に示されるかを説明する図。
【図113】所望のウェブページにアクセスするためのURLを入力するために、同じポップアップキーボードをユーザがどのように使用するかを説明する図。
【図114】グラフィカル・ユーザ・インターフェース、及びURLのテキスト入力フィールドを含む薄型クライアントコンピュータの画面の最上部にツールバーを有する、本発明の一実施形態を説明している点以外は、図13と同一である図。
【図115】クライアントコンピュータがウェブページに対してスクロール及びズームできるようにウェブページ全体のレイアウトを蓄積する本発明の他の実施形態において、プロキシサーバと薄型クライアントコンピュータとのそれぞれにおけるプログラムの、大幅に簡略化された疑似コード表示を説明する図。
【図116】クライアントコンピュータがウェブページに対してスクロール及びズームできるようにウェブページ全体のレイアウトを蓄積する本発明の他の実施形態において、プロキシサーバと薄型クライアントコンピュータとのそれぞれにおけるプログラムの、大幅に簡略化された疑似コード表示を説明する図。
【図117】図115及び図116で説明された擬似コードの実行を説明するために助けとなる概略図。
【図118】本発明によって、ユーザがどのようにウェブページ及び画面のコンテンツの一部を速やかに選択できるようになるかを説明した図。
【図119】本発明によって、ユーザがどのようにウェブページ及び画面のコンテンツの一部を速やかに選択できるようになるかを説明した図。
【図120】本発明によって、ユーザがどのようにウェブページ及び画面のコンテンツの一部を速やかに選択できるようになるかを説明した図。
【図121】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの1つの特徴を説明する図。
【図122】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの1つの特徴を説明する図。
【図123】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの1つの特徴を説明する図。
【図124】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの1つの特徴を説明する図。
【図125】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの1つの特徴を説明する図。
【図126】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの1つの特徴を説明する図。
【図127】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの1つの特徴を説明する図。
【図128】ユーザがウェブページ又は画面の一部をより正確に選択できるようにする本発明のズームクリックの1つの特徴を説明する図。
【図129】ユーザが、所定の画面を横切って再び流れるテキストを大きなスケールで選択できるようにするための、大幅に簡略化された擬似コード表記。
【図130】図129に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図131】図129に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図132】図129に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図133】図129に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図134】図129に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図135】図129に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図136】図129に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図137】図129に示されたテキストのリフロー能力がどのように実行されるかを説明する図。
【図138】多数のクライアントコンピュータが共通のフォントサーバ及び/又は共通のプロキシサーバにアクセスするようにどのようにプログラムされ得るのかを説明する図。
【図139】1又は複数のフォントサーバ上で使用され得るプログラムの大幅に簡略化された擬似コード表記を説明する図。
【図140】リモートコンピュータ上で実行されているアプリケーションプログラム(例えば1又は複数のウェブブラウザを含むがこれに限定されない)によって、このアプリケーションによるリモートコンピュータのオペレーティングシステムへの割り込み要求によってスケーリング・副画素最適化の方法で描画された画面を、クライアントコンピュータに表示させるように、本発明のある特徴が如何にして使用されるのかを説明する図。
【図141】副画素最適化、縮小の表示がどのようにして、所定のコンピュータ上で実行されているアプリケーションプログラムによって作成された画面を(このアプリケーションによって生成されたコンピュータのオペレーティングシステムへの割り込み要求によってこのような表示を作成するように、このアプリケーションがプログラムされていない場合であっても)出力し得るかを説明する図。アプリケーションプログラムは、例えば1又は複数のウェブブラウザを含むが、これに限定されない。
【図142】携帯型の小型画面の薄型クライアントコンピュータが、ローカル及び/又はインターネットのワイヤレス通信を通じて、ウェブコンテンツ及び/又は種々のアプリケーションプログラムの画面出力にアクセスできるように、本発明のある特徴が如何に使用されるかを説明する図。
【図143】本発明の幾つかの実施形態において、ポートレイト方向で実行されるようにプログラムされたオペレーティングシステムをもつコンピューティングデバイス回転させることによって、副画素最適化の出力がどのようにランドスケープ方向で表示されるのかを説明する図。
【図144】本発明の幾つかの実施形態において、ポートレイト方向で実行されるようにプログラムされたオペレーティングシステムをもつコンピューティングデバイス回転させることによって、副画素最適化の出力がどのようにランドスケープ方向で表示されるのかを説明する図。
【図145】副画素最適化の解像度で単純な形状を描写するために使用される、大幅に簡略化された擬似コード表記を説明する図。
【図146】コンピュータの画面上に副画素最適化された要素を描画するためにウェブアプレットがどのように使用されるかの、大幅に簡略化された擬似コード表記。
【図147】ロールオーバ画像がどのように副画素最適化されるを説明する大幅に簡略化されたブロック図。
【図148】GIFFアニメーションがどのように副画素最適化され得るかを説明する大幅に簡略化されたブロック図。
【図149】3−Dアニメーションがどのように副画素最適化される得るかを説明する大幅に簡略化されたブロック図。
【図150】クライアントサーバ上に副画素最適化された画像を提供するために、クライアント/サーバ・ゲームシステムがどのように使用され得るかを説明する大幅に簡略化されたブロック図。
【図151】クライアントサーバ上に副画素最適化された画像を提供するために、クライアント/サーバ・ゲームシステムがどのように使用され得るかを説明する大幅に簡略化されたブロック図。
【図152】副画素最適化された表示が、どのようにして、対応する透過マップを持つ画像から作成されるのかを説明する概略ブロック図。
【図153】キーフレーム間の補完を使用した映像が、どのようにして、副画素最適化され得るかを説明する概略ブロック図。
【図154】全体よりも少ない部分への画面変化の描画を含む表示による映像が、どのようにして、副画素最適化され得るかを説明する図。
【図155】表示ウィンドウに対して移動する画像を表示する他の方法を表す大幅に簡略化された疑似コード表示。
【図156】表示ウィンドウに対して移動する画像を表示する他の方法を表す大幅に簡略化された疑似コード表示。
【図157】種々の圧縮技術によって表現された映像に対して副画素最適化が如何に適用されるかを説明する大幅に簡略化された疑似コード表示。
【図158】種々の圧縮技術によって表現された映像に対して副画素最適化が如何に適用されるかを説明する大幅に簡略化された擬似コード表記。
【図159】種々の圧縮技術によって表現された映像に対して副画素最適化が如何に適用されるかを説明する大幅に簡略化された擬似コード表記。
【図160】サーバコンピュータが、副画素最適化、縮小映像をクライアントコンピュータにダウンロードできるようにするためのプログラムの大幅に簡略化された擬似コード表記。
【図161】クライアントコンピュータが、他のサーバ及びプロキシサーバを通じて副画素最適化、縮小映像にアクセスできるようにするための、クライアントサーバ及びプロキシサーバ上におけるプログラムの大幅に簡略化された擬似コード表記。
【図162】電子インクがより明瞭に認識され得るようにするプログラムの大幅に簡略化された擬似コード表記。
【図163】図162に関して記載されたプログラムの利点を説明するための図。
【図164】図162に関して記載されたプログラムの利点を説明するための図。
【図165】図162に関して記載されたプログラムの利点を説明するための図。
【図166】図162に関して記載されたプログラムの利点を説明するための図。
【図167】本発明が、方法に関連するのみでなく、その方法に対して機械読み取り可能な形式で蓄積されるか又は伝送信号で実施されるプログラム及びデータ、その方法を実行するため、及び/又は、そのプログラム及び/又はデータを使用するためのプログラム又はハードワイヤー結線されたコンピュータシステムに関連することを説明する図。
【図168】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図169】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図170】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図171】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図172】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図173】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図174】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図175】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図176】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図177】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図178】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図179】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図180】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図181】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図182】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図183】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図184】本発明によって作成された副画素最適化、カラー・バランスされたフォントビットマップの明瞭さを向上させるための、本発明に対するさらなる改善を説明する図。
【図185】図129乃至図134に関して記載された選択テキストリフロー法のより詳細な説明。
【図186】図118乃至図120に関して記載された一般的な種類の、ズーム・ツー・フィット法の詳細な疑似コード表示。
【図187】ユーザがウェブページのレイアウトの表示内で容易にナビゲートすることができる、ドラッグ・スクロール法の詳細な擬似コード表記。
【図188】ユーザがウェブページのレイアウトの表示の所望の部分に速やかにズームを選択できるようにする、クリック・ズーム法の詳細な擬似コード表記。
【図189】図121乃至図128に関してある程度詳細に記載されたズームクリック法の概略擬似コード表記。
【図190】ユーザが、グリーキングを使用しているウェブページのズームアウト表示を見ることができるようにする方法の概略擬似コード表記。
【符号の説明】
【0620】
100:標準的なウェブ・コンテンツ
138:ネットワーク
200:薄型クライアント・ブラウザ
210:プロキシ・サーバ
216:プロキシ・プロセス
220:サーバ
230:フォント・サーバ
232:フォント・ビットマップ
Claims (45)
- 個別にアドレス可能なかつ異なる色が割り当てられる副画素で構成された画素を持つ、副画素アドレス可能スクリーン上の表示に適した形状の副画素最適化ビットマップを作成する方法であって、
以下により、ビットマップの各副画素に輝度値を割り当てること;
副画素の位置に対応するビットマップの領域についてのカバレージ値を各所定の副画素について生成するために表現されている形状をラスタ化すること(カバレージ値は、表現されている形状に重なるビットマップの所定の副画素の領域の割合を表す);
前記複数の副画素についてカラーバランスを実行すること(カラーバランスは、カラー・アンバランスを防止するために、前記ラスタ化によって個々の副画素について生成されるカバレージ値の割合を、異なる色の隣接する副画素に分配する);
前記所定副画素のカバレージ値から他の副画素のカバレージ値への任意の前記カラーバランス分配によって減少し、前記所定副画素のカバレージ値への他の副画素カバレージ値からの任意の前記カラーバランス分配によって増加する様に、前記ラスタ化によって各所定副画素について生成されるカバー値に基づいて、前記ビットマップに表現された各副画素に輝度値を関連づけること;を含み、
前記カラー・バランスにより分配されている所定の副画素のカバレージ値の割合がもし在れば、これは、カラー・アンバランスを引き起こす前記カバレージ値の割合の関数として変化する、方法。 - 本方法により作成されたビットマップは、選択された前景色及び背景色を使用する第2のビットマップを作成するために使用される可能性のあるアルファ値ビットマップであり;
アルファ値ビットマップの個々の副画素について算出された輝度値は、第2のビットマップにおける対応する副画素が、前記前景色及び背景色における副画素の対応する要素によって決定された色を持つ相対的な範囲を決定するアルファ値である;
請求項1に記載の方法。 - 前記カラー・バランス機能は、副画素が一部となっている全体の画素内でカラー・アンバランスを引き起こす副画素のカバレージ値の部分のみを分配する、請求項1に記載の方法。
- 前記副画素最適化ビットマップにより描画された形状は、
10画素/em以下のサイズを持ち;
文字形状の縁部が前記ビットマップの画素境界に整列する程度を向上させるために選択された形状及び画素配列を持つ;文字フォント形状となっている、請求項3に記載の方法。 - 前記副画素最適化フォント・ビットマップは、8画素/em以下の小型フォント・サイズを持つ小型フォント・ビットマップを含み;
前記小型フォント・ビットマップにより描画された文字フォント形状の形状及び画素配列は、前記小型フォント・サイズでの前記ビットマップの判読性を向上させるために、前記小型フォント・サイズの関数として選択される;請求項4に記載の方法。 - 前記小型フォント・サイズのフォント・ビットマップは、殆どのローマ字を4画素列以下の改善幅内で表現する、請求項5に記載の方法。
- 前記小型フォント・サイズのフォント・ビットマップは、殆どの小文字を4画素以上のエックスハイトで表現する、請求項6に記載の方法。
- 副画素最適化ビットマップは、
前記形状に重なる第1の隣接グループの画素のエッジに十分整列された1又は複数の部分(前記第1のグループの各画素内ではカラー・アンバランスが殆どなく、前記カラー・バランス機能は、前記形状により囲まれた前記第1のグループの副画素から、カバレージ値の知覚可能な分配を行わない);及び
前記形状に部分的に重なる第2のセットの画素の各々の画素境界に十分非整列なエッジを持つ1又は複数の他の部分(前記第2のセットの画素の各々の内ではカラー・アンバランスが多く発生しており、前記カラー・バランス機能が、前記第2のセットの画素の副画素から、カバレージ値の知覚可能な分配を行う);を持つフォント形状である、
請求項3に記載の方法。 - 前記カラー・バランス機能は、画素にある以外の副画素の多くを越えて、対応する画素内でカラー・アンバランスを引き起こす副画素のカバレージの部分を分配する、請求項3に記載の方法。
- 各画素は、異なる色の3つの副画素を持ち;
前記カラー・バランス機能は、対応する画素内でカラー・アンバランスを引き起こす所定の副画素のカバレージの部分を、所定の副画素を中心とした5つの連続する副画素のセットに渡って分配する、請求項9に記載の方法。 - 前記カラー・バランス機能は、所定の副画素の対応する全体画素内における任意の副画素に対するラスタ化によって生成された最小カバレッジ値よりも大きい、前記ラスタ化によって生成された所定の副画素のカバレッジ値の部分のみを分配する、請求項3に記載の方法。
- 副画素最適化ビットマップにより表された形状は、文字フォント形状である、請求項3に記載の方法。
- 副画素最適化ビットマップが表示される画面における画素は、対応するカラー副画素が、前記画素列の各々の内で連続する副画素列に配列される行列に配置されており;
副画素最適化ビットマップは、最左側エッジが第1の副画素列の全部又は一部に重なっており、第1の副画素列は、第1の全体画素列内の最左側の副画素列であり;
副画素最適化ビットマップは、前記第1の画素列の左に追加の全体画素列を持ち、これによって、前記第1の画素列の1又は複数の副画素カバレッジ値の、左方向へのカラーバランス分配を可能にする;請求項12に記載の方法。 - 前記副画素最適化ビットマップでは画素当たり3副画素が表現され、カラー・バランス機能は、左側に2副画素以内でカバレージ値を分配し、前記追加の全体画素列の最左側の副画素列は、自身に分配されるカバレージ値を持たない、請求項13に記載の方法。
- 個別にアドレス可能な異なる色の副画素で構成された画素を持つ、副画素アドレス画面上での表示に適した副画素ビットマップの作成方法であって、かつ前記ビットマップが、ビットマップに相当する副画素の解像度よりも高解像度で定義された形状を表現する様な副画素ビットマップの作成方法であって;
各副画素についてカバレッジ値を決定すること(前記カバレッジ値は、描画される形状に重なるビットマップにおける所定の副画素の対応領域の割合を表す);
所定の画素について、所定の画素内の複数の副画素に対して算出されたカバレージ値の関数として、画素―幅カバレージ値を決定すること;
所定の画素の夫々の副画素に対して算出される輝度値に、所定の画素の画素―幅カバレージ値に相当する値を加えること;
所定の画素内でカラー・アンバランスを引き起こす、前記副画素のカバレージ値の部分(もし、あれば)を分配するカラー・バランス関数を所定の画素の各副画素について実行すること;を含み、
前記機能は、
副画素のカバレージ値と所定の画素の画素―幅カバレージ値との間の差異に相当する、各副画素についての差分カバレージ値を決定すること;
前記差分カバレージ値により引き起こされたカラー・アンバランスのバランス保持に役立つように、前記所定の副画素の周辺における異なる色の副画素のセットのそれぞれに対して算出されている輝度値に、各所定の副画素について算出された差分カバレージ値を分配すること;を含む方法。 - 副画素最適化画像を作成する形状は、フォント形状である、請求項15に記載の方法。
- 副画素最適化ビットマップが表示される画面における画素は行列で配置されており、前記行列では、色付けされた副画素が前記画素列内の連続する副画素列に配列され;
副画素最適化ビットマップは、最左側エッジが第1の副画素列の全部又は一部に重なるフォント形状を表しており、前記第1の副画素列は、第1の全体画素列内の最左側の副画素列であり;
副画素最適化ビットマップは、前記第1の画素列の左側に追加の全体画素を持ち、これによって、前記第1の画素列の1又は複数の副画素の左方向へのカラーバランス分配を可能にする;請求項16に記載の方法。 - 前記副画素最適化ビットマップでは画素当たり3副画素が表現され、カラー・バランス機能は、左側に2副画素以内でカバレージ値を分配し、前記追加の全体画素列の最左側の副画素列は、自身に分配されるカバレージ値を持たない、請求項17に記載の方法。
- 前記副画素最適化ビットマップにより描画された形状は、
10画素/em以下のサイズを持ち;
文字形状の縁部が前記ビットマップの画素境界に整列する程度を向上させるために選択された形状及び画素配列を持つ;文字フォント形状となっている、請求項16に記載の方法。 - 前記副画素最適化フォント・ビットマップは、8画素/em以下の小型フォント・サイズを持つ小型フォント・ビットマップを含み;
前記小型フォント・ビットマップにより描画された文字フォント形状の形状及び画素配列は、前記小型フォント・サイズでの前記ビットマップの判読性を向上させるために、前記小型フォント・サイズの関数として選択される、請求項19に記載の方法。 - 前記小型フォント・サイズのフォント・ビットマップは、殆どのローマ字を4画素列以下の改善幅内で表現する、請求項20に記載の方法。
- 前記小型フォント・サイズのフォント・ビットマップは、殆どの小文字を4画素以上のエックスハイトで表現する、請求項21に記載の方法。
- 副画素最適化ビットマップは、
前記形状に重なる第1の隣接グループの画素のエッジに十分整列された1又は複数の部分(前記第1のグループの各画素内ではカラー・アンバランスが殆どなく、前記カラー・バランス機能は、前記形状により囲まれた前記第1のグループの副画素から、カバレージ値の知覚可能な分配を行わない);及び
前記形状に部分的に重なる第2のセットの画素の各々の画素境界に十分非整列なエッジを持つ1又は複数の他の部分(前記第2のセットの画素の各々の内ではカラー・アンバランスが多く発生しており、前記カラー・バランス機能が、前記第2のセットの画素の副画素から、カバレージ値の知覚可能な分配を行う);を持つフォント形状である、請求項16に記載の方法。 - 前記画素―幅カバレージ値は、所定の画素内の副画素について決定された最小のカバレージ値であり;
副画素に対して決定される前記差分カバレージ値は、副画素について決定されたカバレージ値と、所定の画素内で任意の副画素に対して決定される最小カバレージ値との間の差異である請求項15に記載の方法。 - 副画素のセットの夫々の輝度値に対しての所定の副画素の差分カバレージ値の前記分配は、前記差分カバレージ値のより多くの部分を、前記セットの他の単一の副画素について計算されている輝度値に対してよりも、所定の副画素について計算されている輝度値に対して分配することを含む、請求項15に記載の方法。
- 所定の副画素に対して算出された差分カバレージ値の前記分配は、前記セットの各異なる副画素の輝度値に分配される、所定の副画素の差分カバレージ値の部分を決定する分配フィルタを使用することを含む、請求項25に記載の方法。
- 異なる分配フィルタは、異なる色の副画素について算出される差分カバレージ値を分配するために使用される、請求項26に記載の方法。
- 前記分配フィルタの少なくとも幾つかが非対称であり、当該分配フィルタは、所定副画素の片側で隣接副画素について計算される輝度値に、前記所定の副画素の反対側で隣接副画素について計算される輝度値よりも、多くを分配する、請求項26に記載の方法。
- この方法で作成されたビットマップは、選択された前景色及び背景色を使用して第2のビットマップを作成するために使用可能なアルファ値ビットマップであり;
アルファ値ビットマップの個別の副画素に対して算出された輝度値は、第2のビットマップにおける関連した副画素が、前記前景色及び/又は背景色における副画素の対応する要素色値によって決定される色を持つ相対的な程度を決定するアルファ値である、請求項15に記載の方法。 - 所定の画素の副画素に対して算出される輝度値は、第1の数からなる値の任意の1つである得る、計算された色値を定義し;
各算出された色値は、第2のより小さい数からなるパレット色値のうちの対応する1つにマッピングされ;
前記画像の各画素は、当該計算された色値がマッピングされている前記パレット色値によって表される、請求項15に記載の方法。 - 複数の前記パレット色値は、前記所定の算出された値の異なる値が、前記方法複数の異なる画像において発生する頻度の関数として選択される、請求項30に記載の方法。
- ある方法では任意のパレット色と相違する不揃いの輝度値を持つ算出された色値は、等しい副画素輝度値を持つ対応するパレット色にマッピングされる、請求項30に記載の方法。
- 個別にアドレス可能かつ異なる色が割り当てられた副画素から構成された画素を持つ副画素アドレス可能画面上の、副画素最適化ビットマップとして文字フォント形状の画像を描画する方法であって、
ビットマップの各所定の副画素について輝度値を表し:前記輝度値は、
前記画像により表された文字フォント形状に重なる画像中の所定の副画素の対応領域の割合を表すカバレージ値;
前記副画素の少なくとも幾つかの場合、前記カバレージ値から隣接副画素のカバレージ値への、所定の副画素のカバレージ値の割合のカラー・バランス分配(前記隣接副画素は、所定の副画素のカバレージ値と、異なる色の1又は複数の隣接副画素の所定のセットにのカバレージ値との間の差異から生じるカラー・アンバランスを防止するのに必要な、異なる色の副画素を含む);及び
前記副画素の少なくとも幾つかの場合、1又は複数の隣接副画素からのカバレージ値の部分の、所定の副画素のカバレージ値へのカラー・バランス分配;に対応し、
カラー・バランス分配によって、前記カバレージ値から分配される各所定の副画素カバレージ値の割合は、隣接副画素のセット内でカラー・アンバランスを引き起こす所定の副画素のカバレージ値の割合の関数である;方法。 - ビットマップは、背景色上に描画される前景色の文字フォント形状を表し;
描画されたビットマップの所定の画素の所定の副画素に対する輝度値は、アルファ値ビットマップの対応画素の対応するアルファ値によって決定され、対応するアルファ値は、前記所定の副画素が、前記前景色及び/又は背景色における副画素の対応する要素色値によって決定される輝度を持っている相対的程度を決定するものである、請求項33に記載の方法。 - 前記カラー・バランスは、副画素が一部を構成する画素全体の中でカラー・アンバランスを引き起こす当該副画素のカバレージ値の部分のみを分配する、請求項33に記載の方法。
- 前記カラー・バランス分配は、対応する画素内でカラー・アンバランスを引き起こす副画素のカバレージの部分を、前記画素内より多数の副画素に渡って分配する、請求項34に記載の方法。
- 前記カラー・バランス分配は、対応する画素内でカラー・アンバランスを引き起こす所定の副画素のカバレージの部分を、所定の副画素を中心とした5つの連続する副画素のセットに渡って分配する、請求項36に記載の方法。
- 前記カラー・バランス分配は、対応する全体画素内で最小の画素カバレージよりも大きい副画素カバレージ値の部分のみを分配する、請求項35に記載の方法。
- 副画素最適化ビットマップが表示される画面における画素は、対応するカラー副画素が、前記画素列の各々の内で連続する副画素列に配列される行列に配置されており;
副画素最適化ビットマップは、最左側エッジが第1の副画素列の全部又は一部に重なっており、第1の副画素列は、第1の全体画素列内の最左側の副画素列であり;
副画素最適化ビットマップは、前記第1の画素列の左に追加の全体画素列を持ち、これによって、前記第1の画素列の1又は複数の副画素カバレッジ値の、左方向へのカラーバランス分配を可能にする;請求項35に記載の方法。 - 前記副画素最適化ビットマップでは画素当たり3副画素が表現され、カラー・バランス機能は、左側に2副画素以内でカバレージ値を分配し、前記追加の全体画素列の最左側の副画素列は、自身に分配されるカバレージ値を持たない、請求項39に記載の方法。
- 文字フォント形状の副画素最適化ビットマップ画像を、副画素色の変化と共通の方向で延び、かつ、個別にアドレス可能かつ異なる色に割り当てら得た一連の副画素で夫々が構成された画素のセットを持つ副画素アドレス可能画面上に、描画する方法であって、
前記ビットマップは、
各副画素が前景色の対応する色要素を表す様な1又は複数の前景画素を使用して、前記画像の一部を描画すること;
各副画素が背景色の対応する色要素を表す様な1又は複数の背景画素を使用して、前記画像の一部を描くこと;及び
1又は複数の中間画素を使用して前記画像の一部を描画すること;を含み、
前記中間画素では、
中間画素の異なるカラー副画素は、前景色及び背景色の対応する要素色の異なる割合を表し;
副画素色が変化する前記方向性に沿う1又は複数の隣接する中間画素の副画素の色値は、個々の画素同士を区別出来ない程に十分離れて文字フォント形状の画像を読む人にとって、前景色及び背景色に対する中間色ではない色を容易には知覚出来ないように、十分にカラーバランスされており、
前記ビットマップ画像の幾つかの部分において、前記前景画素及び背景画素の幾つかは、前記副画素色変化の方向で互いに直接隣接している;方法。 - 前記ビットマップ画像の他の部分において、幾つかの前景画素及び背景画素は、副画素色変化の前記方向で1又は2の中間画素によって分割されており;
1又は2の中間画素の異なる副画素における背景色の要素に対する前景色の要素の割合は、副画素色変化の前記方向に沿って、増加傾向又は減少傾向の何れかでのみ変化する、請求項41に記載の方法。 - 前景画素は、表現されている文字フォント形状に全体的に重なる画像の部分に対応し;
背景画素は、表現されている文字フォント形状に全く重ならない画像の部分に対応し;
中間画素は、
表現されている文字フォント形状に部分的に重なる画像の部分;及び/又は
副画素が、隣接する中間画素でのカラー・アンバランスをバランスさせるのに役立つ、前景及び背景色の要素に対する混合割合を表す画像の部分、請求項41に記載の方法。 - 請求項1乃至43の何れか1の方法の機能を実行するプログラム命令を含む1又は複数のコンピュータ読取可能なメモリと;前記命令を実行する1又は複数のプロセッサと;を備えるコンピュータ・システム。
- 請求項1乃至43の何れか1の方法の機能を実行するプログラム命令を含む1又は複数のコンピュータ読取可能なメモリ。
Applications Claiming Priority (14)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US28828701P | 2001-05-02 | 2001-05-02 | |
US29642601P | 2001-06-05 | 2001-06-05 | |
US29627501P | 2001-06-05 | 2001-06-05 | |
US29623701P | 2001-06-05 | 2001-06-05 | |
US29622401P | 2001-06-05 | 2001-06-05 | |
US29627301P | 2001-06-05 | 2001-06-05 | |
US29623101P | 2001-06-05 | 2001-06-05 | |
US29628401P | 2001-06-05 | 2001-06-05 | |
US29628301P | 2001-06-05 | 2001-06-05 | |
US29628101P | 2001-06-05 | 2001-06-05 | |
US29627401P | 2001-06-05 | 2001-06-05 | |
US29632701P | 2001-06-05 | 2001-06-05 | |
US32292201P | 2001-09-17 | 2001-09-17 | |
PCT/US2002/014282 WO2002088908A2 (en) | 2001-05-02 | 2002-05-02 | Methods, systems, and programming for producing and displaying subpixel-optimized font bitmaps using non-linear color balancing |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004533641A true JP2004533641A (ja) | 2004-11-04 |
Family
ID=27584589
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002586143A Pending JP2004533641A (ja) | 2001-05-02 | 2002-05-02 | 非線形カラー・バランスを使用して副画素最適化フォント・ビットマップを生成及び表示するための方法、システム、及びプログラム |
JP2003504259A Pending JP2005507102A (ja) | 2001-05-02 | 2002-05-02 | 可変スケール・ファクタにより縮小された情報媒体を表示するための方法、システム、及びプログラム |
JP2002586324A Pending JP2004532430A (ja) | 2001-05-02 | 2002-05-02 | 副画素最適化画像及びその様な画像を含むデジタルコンテンツを生成及び表示するための方法、システム、及びプログラム |
JP2002586208A Pending JP2005501310A (ja) | 2001-05-02 | 2002-05-02 | スケーリング方法及び/又は特定方向で情報媒体を表示する方法及びシステム |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003504259A Pending JP2005507102A (ja) | 2001-05-02 | 2002-05-02 | 可変スケール・ファクタにより縮小された情報媒体を表示するための方法、システム、及びプログラム |
JP2002586324A Pending JP2004532430A (ja) | 2001-05-02 | 2002-05-02 | 副画素最適化画像及びその様な画像を含むデジタルコンテンツを生成及び表示するための方法、システム、及びプログラム |
JP2002586208A Pending JP2005501310A (ja) | 2001-05-02 | 2002-05-02 | スケーリング方法及び/又は特定方向で情報媒体を表示する方法及びシステム |
Country Status (6)
Country | Link |
---|---|
US (4) | US7222306B2 (ja) |
EP (4) | EP1393189A4 (ja) |
JP (4) | JP2004533641A (ja) |
AT (1) | ATE459908T1 (ja) |
AU (2) | AU2002316067A1 (ja) |
WO (4) | WO2002089105A2 (ja) |
Families Citing this family (530)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6154757A (en) * | 1997-01-29 | 2000-11-28 | Krause; Philip R. | Electronic text reading environment enhancement method and apparatus |
GB9722766D0 (en) | 1997-10-28 | 1997-12-24 | British Telecomm | Portable computers |
US7614008B2 (en) | 2004-07-30 | 2009-11-03 | Apple Inc. | Operation of a computer with touch screen interface |
US20060033724A1 (en) * | 2004-07-30 | 2006-02-16 | Apple Computer, Inc. | Virtual input device placement on a touch screen user interface |
US9239673B2 (en) | 1998-01-26 | 2016-01-19 | Apple Inc. | Gesturing with a multipoint sensing device |
US8479122B2 (en) | 2004-07-30 | 2013-07-02 | Apple Inc. | Gestures for touch sensitive input devices |
US9292111B2 (en) | 1998-01-26 | 2016-03-22 | Apple Inc. | Gesturing with a multipoint sensing device |
US7469381B2 (en) | 2007-01-07 | 2008-12-23 | Apple Inc. | List scrolling and document translation, scaling, and rotation on a touch-screen display |
US6912689B1 (en) * | 2000-04-17 | 2005-06-28 | Micron Technology, Inc. | Method and apparatus for facilitating substitution of digital images with line drawings |
JP4660879B2 (ja) * | 2000-04-27 | 2011-03-30 | ソニー株式会社 | 情報提供装置および方法、並びにプログラム |
US7210099B2 (en) | 2000-06-12 | 2007-04-24 | Softview Llc | Resolution independent vector display of internet content |
US7302634B2 (en) | 2001-03-14 | 2007-11-27 | Microsoft Corporation | Schema-based services for identity-based data access |
US7024662B2 (en) | 2001-03-14 | 2006-04-04 | Microsoft Corporation | Executing dynamically assigned functions while providing services |
WO2002082229A2 (en) * | 2001-04-09 | 2002-10-17 | America Online Incorporated | Server-based browser system |
US7219309B2 (en) * | 2001-05-02 | 2007-05-15 | Bitstream Inc. | Innovations for the display of web pages |
JP2004533641A (ja) | 2001-05-02 | 2004-11-04 | ビットストリーム インコーポレーティッド | 非線形カラー・バランスを使用して副画素最適化フォント・ビットマップを生成及び表示するための方法、システム、及びプログラム |
US7123277B2 (en) * | 2001-05-09 | 2006-10-17 | Clairvoyante, Inc. | Conversion of a sub-pixel format data to another sub-pixel data format |
US7221381B2 (en) | 2001-05-09 | 2007-05-22 | Clairvoyante, Inc | Methods and systems for sub-pixel rendering with gamma adjustment |
US6967657B2 (en) * | 2001-05-15 | 2005-11-22 | Research In Motion Limited | Light source system for a color flat panel display |
EP2273480A3 (en) | 2001-06-11 | 2012-02-22 | Genoa Color Technologies Ltd. | Device, system and method for color display |
US7714824B2 (en) | 2001-06-11 | 2010-05-11 | Genoa Color Technologies Ltd. | Multi-primary display with spectrally adapted back-illumination |
US8289266B2 (en) * | 2001-06-11 | 2012-10-16 | Genoa Color Technologies Ltd. | Method, device and system for multi-color sequential LCD panel |
US7458017B2 (en) | 2001-06-26 | 2008-11-25 | Microsoft Corporation | Function-based object model for use in website adaptation |
US7307642B2 (en) * | 2001-06-28 | 2007-12-11 | Ideaworks 3D Ltd. | Graphics compression |
GB0119123D0 (en) * | 2001-08-04 | 2001-09-26 | Pace Micro Tech Plc | Internet web browser display enhancement |
US7027073B2 (en) * | 2001-09-24 | 2006-04-11 | International Business Machines Corporation | Virtual cameras for digital imaging |
US7093001B2 (en) | 2001-11-26 | 2006-08-15 | Microsoft Corporation | Methods and systems for adaptive delivery of multimedia contents |
US6793653B2 (en) * | 2001-12-08 | 2004-09-21 | Computer Motion, Inc. | Multifunctional handle for a medical robotic system |
JP4064127B2 (ja) * | 2002-03-08 | 2008-03-19 | シャープ株式会社 | 画像符号化装置および画像復号装置 |
EP1497820A4 (en) | 2002-04-11 | 2009-03-11 | Genoa Color Technologies Ltd | COLOR DISPLAY DEVICES AND METHODS HAVING IMPROVED ATTRIBUTES |
US20030210834A1 (en) * | 2002-05-13 | 2003-11-13 | Gregory Hitchcock | Displaying static images using spatially displaced sampling with semantic data |
US6894702B2 (en) * | 2002-06-06 | 2005-05-17 | Microsoft Corporation | Dropout control in subpixel rendering |
US7246306B2 (en) * | 2002-06-21 | 2007-07-17 | Microsoft Corporation | Web information presentation structure for web page authoring |
US7065707B2 (en) | 2002-06-24 | 2006-06-20 | Microsoft Corporation | Segmenting and indexing web pages using function-based object models |
US9886309B2 (en) * | 2002-06-28 | 2018-02-06 | Microsoft Technology Licensing, Llc | Identity-based distributed computing for device resources |
US20040162637A1 (en) | 2002-07-25 | 2004-08-19 | Yulun Wang | Medical tele-robotic system with a master remote station with an arbitrator |
US6993209B1 (en) * | 2002-07-26 | 2006-01-31 | Vistaprint Technologies Limited | Low resolution-to-high resolution image correlation |
JP2004070654A (ja) * | 2002-08-06 | 2004-03-04 | Matsushita Electric Ind Co Ltd | 携帯用電子機器 |
JP4406364B2 (ja) * | 2002-08-28 | 2010-01-27 | エックスエムパイ (イスラエル) リミテッド | 可変印刷文書を処理するための装置及び方法 |
US8064090B2 (en) * | 2002-08-28 | 2011-11-22 | Xmpie (Israel) Ltd. | System and method for processing variable print documents |
US7020838B2 (en) * | 2002-09-05 | 2006-03-28 | Vistaprint Technologies Limited | System and method for identifying line breaks |
US8015259B2 (en) * | 2002-09-10 | 2011-09-06 | Alan Earl Swahn | Multi-window internet search with webpage preload |
AU2003248391B2 (en) * | 2002-09-26 | 2005-06-09 | Canon Information Systems Research Australia Pty Ltd | Efficient Printing of Frames Pages |
AU2002951709A0 (en) | 2002-09-26 | 2002-10-17 | Canon Information Systems Research Australia Pty Ltd | Efficient printing of frames pages |
US7321623B2 (en) * | 2002-10-01 | 2008-01-22 | Avocent Corporation | Video compression system |
US20060126718A1 (en) * | 2002-10-01 | 2006-06-15 | Avocent Corporation | Video compression encoder |
US20040078792A1 (en) * | 2002-10-21 | 2004-04-22 | Microsoft Corporation | System and method for selectively deactivating auto-deploy functionality of a software input panel |
US7228501B2 (en) * | 2002-11-01 | 2007-06-05 | Microsoft Corporation | Method for selecting a font |
US20040093432A1 (en) * | 2002-11-07 | 2004-05-13 | Eastman Kodak Company | Method and system for conducting image processing from a mobile client device |
US7203901B2 (en) | 2002-11-27 | 2007-04-10 | Microsoft Corporation | Small form factor web browsing |
US20060215888A1 (en) * | 2003-01-13 | 2006-09-28 | Habets Raymond J E | Method and apparatus of displaying of a medical image |
KR20050094883A (ko) * | 2003-01-28 | 2005-09-28 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | 디스플레이 |
KR100436667B1 (ko) * | 2003-02-20 | 2004-06-22 | 브이알 포토 주식회사 | 다중 웹 서버에서의 다중 해상도 이미지 제공 어플리케이션 공급 서비스 방법 및 장치 |
US7352374B2 (en) * | 2003-04-07 | 2008-04-01 | Clairvoyante, Inc | Image data set with embedded pre-subpixel rendered image |
JP3927989B2 (ja) * | 2003-04-23 | 2007-06-13 | ソフトバンクモバイル株式会社 | 表示処理方法及び表示処理装置 |
US8239516B2 (en) | 2003-05-15 | 2012-08-07 | At&T Intellectual Property I, L.P. | Methods, systems and computer program products for proactively offering a network turbo boost service to end users |
JP4082591B2 (ja) * | 2003-05-20 | 2008-04-30 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ編集装置及びプログラム |
US7895513B1 (en) * | 2003-05-28 | 2011-02-22 | Adobe Systems Incorporated | Color reduction in complex figures containing text for space/time constrained platforms |
JP4168836B2 (ja) | 2003-06-03 | 2008-10-22 | ソニー株式会社 | 表示装置 |
US7640498B2 (en) * | 2003-07-11 | 2009-12-29 | Yahoo! Inc. | Method and system for maintaining font sizes on different platforms |
US9560371B2 (en) * | 2003-07-30 | 2017-01-31 | Avocent Corporation | Video compression system |
JP4005961B2 (ja) * | 2003-09-05 | 2007-11-14 | 松下電器産業株式会社 | メディア受信装置 |
JP4581999B2 (ja) * | 2003-09-09 | 2010-11-17 | セイコーエプソン株式会社 | 画像処理装置および画像処理方法 |
US7594194B2 (en) * | 2003-09-24 | 2009-09-22 | Nokia Corporation | Portrayal of navigation objects |
JP4158105B2 (ja) | 2003-09-25 | 2008-10-01 | ソニー株式会社 | 車載装置及び車載装置の制御方法 |
KR101012788B1 (ko) * | 2003-10-16 | 2011-02-08 | 삼성전자주식회사 | 액정 표시 장치 및 그 구동 방법 |
NO20034724D0 (no) * | 2003-10-22 | 2003-10-22 | Opera Software Asa | Presentasjon av HTML-innhold på en skjermterminal |
US7525526B2 (en) * | 2003-10-28 | 2009-04-28 | Samsung Electronics Co., Ltd. | System and method for performing image reconstruction and subpixel rendering to effect scaling for multi-mode display |
US20050097459A1 (en) * | 2003-10-29 | 2005-05-05 | Michael Self | System and method for user creation of personalized graphics |
FR2861935B1 (fr) * | 2003-11-05 | 2006-04-07 | Thierry Royer | Procede et systeme de diffusion de documents vers des terminaux disposant de capacites d'affichage limitees, tels que des terminaux mobiles |
JP4478863B2 (ja) * | 2003-11-19 | 2010-06-09 | ソニー株式会社 | 表示装置、双方向通信システムおよび表示情報利用方法 |
US7813836B2 (en) | 2003-12-09 | 2010-10-12 | Intouch Technologies, Inc. | Protocol for a remotely controlled videoconferencing robot |
US20050168353A1 (en) * | 2004-01-16 | 2005-08-04 | Mci, Inc. | User interface for defining geographic zones for tracking mobile telemetry devices |
WO2005081893A2 (en) * | 2004-02-23 | 2005-09-09 | Hillcrest Laboratories, Inc. | Method of real-time incremental zooming |
US7441207B2 (en) * | 2004-03-18 | 2008-10-21 | Microsoft Corporation | Method and system for improved viewing and navigation of content |
US7831387B2 (en) * | 2004-03-23 | 2010-11-09 | Google Inc. | Visually-oriented driving directions in digital mapping system |
US7620496B2 (en) | 2004-03-23 | 2009-11-17 | Google Inc. | Combined map scale and measuring tool |
US7158878B2 (en) | 2004-03-23 | 2007-01-02 | Google Inc. | Digital mapping system |
US7865301B2 (en) * | 2004-03-23 | 2011-01-04 | Google Inc. | Secondary map in digital mapping system |
US7599790B2 (en) * | 2004-03-23 | 2009-10-06 | Google Inc. | Generating and serving tiles in a digital mapping system |
US7629989B2 (en) * | 2004-04-02 | 2009-12-08 | K-Nfb Reading Technology, Inc. | Reducing processing latency in optical character recognition for portable reading machine |
US20050225572A1 (en) * | 2004-04-03 | 2005-10-13 | Ekpar Frank E | Versatile user interface |
US7590947B1 (en) * | 2004-05-28 | 2009-09-15 | Adobe Systems Incorporated | Intelligent automatic window sizing |
FI20045201A (fi) * | 2004-05-31 | 2005-12-01 | Nokia Corp | Menetelmä ja järjestelmä kuvien katsomiseksi ja parantamiseksi |
US7299406B2 (en) * | 2004-06-02 | 2007-11-20 | Research In Motion Limited | Representing spreadsheet document content |
US8065629B1 (en) | 2004-06-22 | 2011-11-22 | Apple Inc. | Displaying icon layouts in different resolutions |
US7457461B2 (en) * | 2004-06-25 | 2008-11-25 | Avocent Corporation | Video compression noise immunity |
US8077963B2 (en) | 2004-07-13 | 2011-12-13 | Yulun Wang | Mobile robot with a head-based movement mapping scheme |
US7911446B2 (en) * | 2004-07-13 | 2011-03-22 | Hewlett-Packard Development Company, L.P. | Networked keyboard and mouse drivers |
US8381135B2 (en) | 2004-07-30 | 2013-02-19 | Apple Inc. | Proximity detector in handheld device |
US7444588B2 (en) * | 2004-08-05 | 2008-10-28 | At&T Intellectual Property, I.L.P. | Methods, systems, and storage mediums for providing multi-media content storage and management services |
US7721197B2 (en) * | 2004-08-12 | 2010-05-18 | Microsoft Corporation | System and method of displaying content on small screen computing devices |
JP2006060590A (ja) | 2004-08-20 | 2006-03-02 | Canon Inc | 電子データの文字品質を確認する画像処理装置および画像処理方法およびコンピュータプログラム |
US20060064647A1 (en) * | 2004-09-23 | 2006-03-23 | Tapuska David F | Web browser graphical user interface and method for implementing same |
US8418075B2 (en) | 2004-11-16 | 2013-04-09 | Open Text Inc. | Spatially driven content presentation in a cellular environment |
US8001476B2 (en) * | 2004-11-16 | 2011-08-16 | Open Text Inc. | Cellular user interface |
CN101600122B (zh) * | 2004-12-01 | 2011-10-05 | 松下电器产业株式会社 | 集成电路 |
US9071870B2 (en) * | 2004-12-08 | 2015-06-30 | Nokia Technologies Oy | System and method for viewing digital visual content on a device |
US8627344B2 (en) * | 2004-12-15 | 2014-01-07 | Siebel Systems, Inc. | Methods and apparatuses for user interface management |
US20060136847A1 (en) * | 2004-12-16 | 2006-06-22 | International Business Machines Corporation | Method and computer program product for verifying a computer renderable document for on-screen appearance |
US7483592B2 (en) * | 2005-01-06 | 2009-01-27 | Algorithmic Implementatins, Inc., Dba Ai Squared | Method and apparatus for magnifying computer screen display |
US8255796B1 (en) * | 2005-01-09 | 2012-08-28 | Apple Inc. | Efficient creation of documents |
WO2006072755A1 (en) * | 2005-01-10 | 2006-07-13 | Nds Limited | Font generation system |
US7474314B2 (en) * | 2005-01-10 | 2009-01-06 | Columbia Insurance Company | Method for representing true colors with device-dependent colors on surfaces and for producing paints and coatings matching the true colors |
EP1851751A4 (en) * | 2005-01-10 | 2010-11-24 | Columbia Insurance Co | SYSTEM AND METHOD FOR REPRESENTING ON TRUE COLOR SURFACES DEPENDING ON A DEVICE AND OBTAINING PAINTS AND COATINGS CORRESPONDING TO TRUE COLORS |
US20060152527A1 (en) * | 2005-01-10 | 2006-07-13 | Carl Minchew | System for representing true colors with device-dependent colors on surfaces and for producing paints and coatings matching the true colors |
KR100667362B1 (ko) * | 2005-01-25 | 2007-01-12 | 엘지전자 주식회사 | 플라즈마 표시 패널의 구동 장치 및 방법 |
US7689908B2 (en) * | 2005-01-31 | 2010-03-30 | Microsoft Corporation | Method and system for a target device display simulation |
KR100610364B1 (ko) * | 2005-02-14 | 2006-08-09 | 삼성전자주식회사 | 자동조정기능을 구비한 영상표시장치 및 자동조정방법 |
US8423673B2 (en) | 2005-03-14 | 2013-04-16 | Citrix Systems, Inc. | Method and apparatus for updating a graphical display in a distributed processing environment using compression |
JP2006261727A (ja) * | 2005-03-15 | 2006-09-28 | Seiko Epson Corp | 情報表示装置 |
JP4900640B2 (ja) * | 2005-03-30 | 2012-03-21 | 京セラ株式会社 | 携帯端末装置およびその文書表示制御方法 |
US8086995B2 (en) * | 2005-04-18 | 2011-12-27 | Research In Motion Limited | System and method for flexible visual representation of device fonts |
US20060242565A1 (en) * | 2005-04-20 | 2006-10-26 | Nokia Corporation | System and method for handling absolute positioning in a small screen optimized layout |
JP4466571B2 (ja) * | 2005-05-12 | 2010-05-26 | 株式会社デンソー | ドライバ状態検出装置、車載警報装置、運転支援システム |
US7487447B1 (en) * | 2005-05-25 | 2009-02-03 | Google Inc. | Web page zoom feature |
US20060277460A1 (en) * | 2005-06-03 | 2006-12-07 | Scott Forstall | Webview applications |
US9141718B2 (en) * | 2005-06-03 | 2015-09-22 | Apple Inc. | Clipview applications |
US20060277481A1 (en) * | 2005-06-03 | 2006-12-07 | Scott Forstall | Presenting clips of content |
US9098597B2 (en) * | 2005-06-03 | 2015-08-04 | Apple Inc. | Presenting and managing clipped content |
US9477775B2 (en) * | 2005-06-03 | 2016-10-25 | Nokia Technologies Oy | System and method for maintaining a view location during rendering of a page |
US8687016B2 (en) * | 2005-06-10 | 2014-04-01 | Hewlett-Packard Development Company, L.P. | Method and system for enhancing the quality of video prompts in an interactive media response system |
US8051484B2 (en) * | 2005-06-14 | 2011-11-01 | Imperva, Inc. | Method and security system for indentifying and blocking web attacks by enforcing read-only parameters |
US8874691B2 (en) * | 2005-06-22 | 2014-10-28 | Core Wireless Licensing S.A.R.L. | System and method for establishing peer to peer connections between PCS and smart phones using networks with obstacles |
WO2007011277A1 (en) * | 2005-07-20 | 2007-01-25 | Obigo Ab | Method and arrangement in a display system |
US7792389B2 (en) * | 2005-08-10 | 2010-09-07 | Seiko Epson Corporation | Image processing content determining apparatus, computer readable medium storing thereon image processing content determining program and image processing content determining method |
KR100772906B1 (ko) | 2005-08-12 | 2007-11-05 | 삼성전자주식회사 | 영상신호 표시 방법 및 장치 |
JP2007079809A (ja) * | 2005-09-13 | 2007-03-29 | Fuji Xerox Co Ltd | 電子ペーパシステム |
US20070073776A1 (en) * | 2005-09-19 | 2007-03-29 | Kalalian Steven P | Digital file management |
US7796837B2 (en) * | 2005-09-22 | 2010-09-14 | Google Inc. | Processing an image map for display on computing device |
US9198728B2 (en) * | 2005-09-30 | 2015-12-01 | Intouch Technologies, Inc. | Multi-camera mobile teleconferencing platform |
US7933897B2 (en) * | 2005-10-12 | 2011-04-26 | Google Inc. | Entity display priority in a distributed geographic information system |
US7876978B2 (en) * | 2005-10-13 | 2011-01-25 | Penthera Technologies, Inc. | Regions of interest in video frames |
US20070094591A1 (en) * | 2005-10-24 | 2007-04-26 | Etgen Michael P | System and method for text legibility enhancement |
US7882430B2 (en) * | 2005-10-27 | 2011-02-01 | Hewlett-Packard Development Company, L.P. | Utility, method and device providing vector images that may be formatted for display in different locales |
US8587621B2 (en) | 2005-11-28 | 2013-11-19 | Genoa Color Technologies Ltd. | Sub-pixel rendering of a multiprimary image |
US8060821B2 (en) * | 2005-12-09 | 2011-11-15 | Apple Inc. | Enhanced visual feedback of interactions with user interface |
US7712018B2 (en) * | 2005-12-12 | 2010-05-04 | Microsoft Corporation | Selecting and formatting warped text |
US7861165B2 (en) * | 2005-12-15 | 2010-12-28 | Xerox Corporation | Printing apparatus and method |
US7770109B2 (en) * | 2005-12-16 | 2010-08-03 | Microsoft Corporation | Adaptive layout for content |
US8812978B2 (en) * | 2005-12-22 | 2014-08-19 | Xerox Corporation | System and method for dynamic zoom to view documents on small displays |
US20090273443A1 (en) * | 2005-12-23 | 2009-11-05 | Nilsson Bjoern | Display of an Electronic Shelf Label |
US7509588B2 (en) | 2005-12-30 | 2009-03-24 | Apple Inc. | Portable electronic device with interface reconfiguration mode |
US8196055B2 (en) | 2006-01-30 | 2012-06-05 | Microsoft Corporation | Controlling application windows in an operating system |
US7555570B2 (en) | 2006-02-17 | 2009-06-30 | Avocent Huntsville Corporation | Device and method for configuring a target device |
US8718147B2 (en) * | 2006-02-17 | 2014-05-06 | Avocent Huntsville Corporation | Video compression algorithm |
US20070204220A1 (en) * | 2006-02-27 | 2007-08-30 | Microsoft Corporation | Re-layout of network content |
US7854513B2 (en) * | 2006-03-03 | 2010-12-21 | Quach Cang V | One-way transparent display systems |
JP4525618B2 (ja) * | 2006-03-06 | 2010-08-18 | ソニー株式会社 | 映像監視システムおよび映像監視プログラム |
AU2007227611B2 (en) * | 2006-03-15 | 2013-07-11 | Google Llc | Automatic display of resized images |
US7788580B1 (en) | 2006-03-28 | 2010-08-31 | Amazon Technologies, Inc. | Processing digital images including headers and footers into reflow content |
US8023738B1 (en) | 2006-03-28 | 2011-09-20 | Amazon Technologies, Inc. | Generating reflow files from digital images for rendering on various sized displays |
US8051385B1 (en) * | 2006-03-29 | 2011-11-01 | Amazon Technologies, Inc. | Content selection and aggregated search results presentation on a handheld electronic device |
US7966557B2 (en) | 2006-03-29 | 2011-06-21 | Amazon Technologies, Inc. | Generating image-based reflowable files for rendering on various sized displays |
US9037156B2 (en) * | 2006-03-31 | 2015-05-19 | Blackberry Limited | Real-time spherical correction of map data |
WO2007127452A2 (en) * | 2006-04-28 | 2007-11-08 | Avocent Corporation | Dvc delta commands |
US20070266335A1 (en) * | 2006-05-12 | 2007-11-15 | Microsoft Corporation | Providing a standard user interface (UI) across disparate display interfaces |
JP4923740B2 (ja) * | 2006-05-31 | 2012-04-25 | 富士ゼロックス株式会社 | 画像処理システム、画像形成装置および画像処理プログラム |
US8159495B2 (en) * | 2006-06-06 | 2012-04-17 | Microsoft Corporation | Remoting sub-pixel resolved characters |
US8849679B2 (en) | 2006-06-15 | 2014-09-30 | Intouch Technologies, Inc. | Remote controlled robot system that provides medical images |
KR20070120403A (ko) * | 2006-06-19 | 2007-12-24 | 삼성전자주식회사 | 영상 편집장치 및 방법 |
US10313505B2 (en) | 2006-09-06 | 2019-06-04 | Apple Inc. | Portable multifunction device, method, and graphical user interface for configuring and displaying widgets |
US8842074B2 (en) | 2006-09-06 | 2014-09-23 | Apple Inc. | Portable electronic device performing similar operations for different gestures |
US8564544B2 (en) * | 2006-09-06 | 2013-10-22 | Apple Inc. | Touch screen device, method, and graphical user interface for customizing display of content category icons |
US9304675B2 (en) | 2006-09-06 | 2016-04-05 | Apple Inc. | Portable electronic device for instant messaging |
US7864163B2 (en) | 2006-09-06 | 2011-01-04 | Apple Inc. | Portable electronic device, method, and graphical user interface for displaying structured electronic documents |
US7956849B2 (en) | 2006-09-06 | 2011-06-07 | Apple Inc. | Video manager for portable multifunction device |
US9128596B2 (en) | 2006-09-22 | 2015-09-08 | Opera Software Asa | Method and device for selecting and displaying a region of interest in an electronic document |
US7810026B1 (en) | 2006-09-29 | 2010-10-05 | Amazon Technologies, Inc. | Optimizing typographical content for transmission and display |
US8782551B1 (en) | 2006-10-04 | 2014-07-15 | Google Inc. | Adjusting margins in book page images |
US7912829B1 (en) | 2006-10-04 | 2011-03-22 | Google Inc. | Content reference page |
US7979785B1 (en) | 2006-10-04 | 2011-07-12 | Google Inc. | Recognizing table of contents in an image sequence |
US8570278B2 (en) | 2006-10-26 | 2013-10-29 | Apple Inc. | Portable multifunction device, method, and graphical user interface for adjusting an insertion point marker |
US8175115B2 (en) * | 2006-11-17 | 2012-05-08 | General Electric Company | Method and system for iterative reconstruction |
US20100073202A1 (en) * | 2008-09-25 | 2010-03-25 | Mazed Mohammad A | Portable internet appliance |
US8214768B2 (en) * | 2007-01-05 | 2012-07-03 | Apple Inc. | Method, system, and graphical user interface for viewing multiple application windows |
US8656295B2 (en) * | 2007-01-05 | 2014-02-18 | Apple Inc. | Selecting and manipulating web content |
US7844915B2 (en) | 2007-01-07 | 2010-11-30 | Apple Inc. | Application programming interfaces for scrolling operations |
US8689132B2 (en) | 2007-01-07 | 2014-04-01 | Apple Inc. | Portable electronic device, method, and graphical user interface for displaying electronic documents and lists |
US8451232B2 (en) | 2007-01-07 | 2013-05-28 | Apple Inc. | Portable multifunction device, method, and graphical user interface for interacting with user input elements in displayed content |
US8519964B2 (en) | 2007-01-07 | 2013-08-27 | Apple Inc. | Portable multifunction device, method, and graphical user interface supporting user navigations of graphical objects on a touch screen display |
US20080168478A1 (en) | 2007-01-07 | 2008-07-10 | Andrew Platzer | Application Programming Interfaces for Scrolling |
US20080168402A1 (en) | 2007-01-07 | 2008-07-10 | Christopher Blumenberg | Application Programming Interfaces for Gesture Operations |
US20080165148A1 (en) * | 2007-01-07 | 2008-07-10 | Richard Williamson | Portable Electronic Device, Method, and Graphical User Interface for Displaying Inline Multimedia Content |
KR20080078291A (ko) | 2007-02-23 | 2008-08-27 | 엘지전자 주식회사 | 브라우저 디스플레이 방법 및 이를 구현할 수 있는 단말기 |
KR20080068491A (ko) | 2007-01-19 | 2008-07-23 | 엘지전자 주식회사 | 터치 방식 정보 입력 단말기 및 그 방법 |
EP1947561B1 (en) * | 2007-01-19 | 2019-06-19 | Microsoft Technology Licensing, LLC | Method of displaying browser and terminal implementing the same |
JP4982505B2 (ja) * | 2007-01-25 | 2012-07-25 | シャープ株式会社 | マルチウィンドウ管理装置及びプログラム、記憶媒体、並びに情報処理装置 |
WO2008096342A2 (en) * | 2007-02-06 | 2008-08-14 | Mobixell Networks | Converting images to moving picture format |
US20080215967A1 (en) * | 2007-02-23 | 2008-09-04 | Tabblo, Inc. | Method and system for online transformation using an image URL application programming interface (API) |
US20080215965A1 (en) * | 2007-02-23 | 2008-09-04 | Tabblo, Inc. | Method for modifying an initial layout of story elements in a user-generated online story |
US10127480B1 (en) | 2007-03-09 | 2018-11-13 | R. B. III Associates, Inc. | System for automated decoration |
US8959448B2 (en) * | 2007-04-17 | 2015-02-17 | Emd Millipore Corporation | Graphical user interface for analysis and comparison of location-specific multiparameter data sets |
KR101415023B1 (ko) | 2007-04-26 | 2014-07-04 | 삼성전자주식회사 | 네트워크를 통한 정보 제공 방법 및 장치 |
US9160783B2 (en) | 2007-05-09 | 2015-10-13 | Intouch Technologies, Inc. | Robot system that operates through a network firewall |
US20080278517A1 (en) * | 2007-05-10 | 2008-11-13 | Poirier Arthur J | System and method for manipulation of document data intercepted through port redirection |
US8478515B1 (en) | 2007-05-23 | 2013-07-02 | Google Inc. | Collaborative driving directions |
US8085271B2 (en) * | 2007-06-08 | 2011-12-27 | Apple Inc. | System and method for dilation for glyph rendering |
US8082507B2 (en) * | 2007-06-12 | 2011-12-20 | Microsoft Corporation | Scalable user interface |
US20080313545A1 (en) * | 2007-06-13 | 2008-12-18 | Microsoft Corporation | Systems and methods for providing desktop or application remoting to a web browser |
US9933937B2 (en) | 2007-06-20 | 2018-04-03 | Apple Inc. | Portable multifunction device, method, and graphical user interface for playing online videos |
US7821515B2 (en) * | 2007-06-27 | 2010-10-26 | Monotype Imaging Inc. | Method for automatic font character height restriction |
US8635537B1 (en) * | 2007-06-29 | 2014-01-21 | Amazon Technologies, Inc. | Multi-level architecture for image display |
US9772751B2 (en) | 2007-06-29 | 2017-09-26 | Apple Inc. | Using gestures to slide between user interfaces |
KR101453909B1 (ko) * | 2007-07-30 | 2014-10-21 | 엘지전자 주식회사 | 터치스크린을 이용하는 휴대 단말기 및 그 제어방법 |
US8274872B2 (en) * | 2007-08-07 | 2012-09-25 | Lite-On It Corporation | Optical record carrier with a visually detectable pattern as well as an apparatus and a method for recording a visually detectable pattern on an optical record carrier |
US20090041352A1 (en) * | 2007-08-10 | 2009-02-12 | Naoki Okamoto | Image formation device, image formation method, and computer-readable recording medium recording image formation program |
US7742945B2 (en) * | 2007-08-27 | 2010-06-22 | At&T Intellectual Property, I,L.P. | Methods, systems and computer products to incentivize high speed internet access |
US8713421B2 (en) * | 2007-08-28 | 2014-04-29 | Autodesk, Inc. | Scale information for drawing annotations |
US9619143B2 (en) | 2008-01-06 | 2017-04-11 | Apple Inc. | Device, method, and graphical user interface for viewing application launch icons |
US8619038B2 (en) | 2007-09-04 | 2013-12-31 | Apple Inc. | Editing interface |
US11126321B2 (en) | 2007-09-04 | 2021-09-21 | Apple Inc. | Application menu user interface |
US8127233B2 (en) * | 2007-09-24 | 2012-02-28 | Microsoft Corporation | Remote user interface updates using difference and motion encoding |
US8954876B1 (en) * | 2007-10-09 | 2015-02-10 | Teradici Corporation | Method and apparatus for providing a session status indicator |
JP4658223B2 (ja) * | 2007-10-15 | 2011-03-23 | 日本電信電話株式会社 | 画像生成方法、装置、およびそのプログラム並びにプログラムを記録した記録媒体 |
RU2440615C2 (ru) * | 2007-10-15 | 2012-01-20 | Ниппон Телеграф Энд Телефон Корпорейшн | Способ и устройство генерации изображения, программа генерации изображения и машиночитаемый носитель, хранящий программу |
US9274698B2 (en) * | 2007-10-26 | 2016-03-01 | Blackberry Limited | Electronic device and method of controlling same |
US8589366B1 (en) * | 2007-11-01 | 2013-11-19 | Google Inc. | Data extraction using templates |
US20090140977A1 (en) * | 2007-11-30 | 2009-06-04 | Microsoft Corporation | Common User Interface Structure |
US8782516B1 (en) | 2007-12-21 | 2014-07-15 | Amazon Technologies, Inc. | Content style detection |
JP4987688B2 (ja) * | 2007-12-25 | 2012-07-25 | 株式会社東芝 | 画像高解像度化方法および装置 |
RU2368006C1 (ru) | 2008-01-10 | 2009-09-20 | Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." | Способ и система адаптивного переформатирования цифровых изображений |
US8206222B2 (en) | 2008-01-29 | 2012-06-26 | Gary Stephen Shuster | Entertainment system for performing human intelligence tasks |
WO2009097865A1 (de) * | 2008-01-31 | 2009-08-13 | Siemens Aktiengesellschaft | Verfahren und vorrichtung zur visualisierung einer automatisierungstechnischen anlage mit einem werkstück |
JP2010140459A (ja) * | 2008-02-22 | 2010-06-24 | Ricoh Co Ltd | プログラムと印刷データ変換装置とコンピュータ読み取り可能な記録媒体 |
US8416196B2 (en) | 2008-03-04 | 2013-04-09 | Apple Inc. | Touch event model programming interface |
US8645827B2 (en) | 2008-03-04 | 2014-02-04 | Apple Inc. | Touch event model |
US8205157B2 (en) | 2008-03-04 | 2012-06-19 | Apple Inc. | Methods and graphical user interfaces for conducting searches on a portable multifunction device |
US8717305B2 (en) | 2008-03-04 | 2014-05-06 | Apple Inc. | Touch event model for web pages |
US10875182B2 (en) | 2008-03-20 | 2020-12-29 | Teladoc Health, Inc. | Remote presence system mounted to operating room hardware |
US8225198B2 (en) * | 2008-03-31 | 2012-07-17 | Vistaprint Technologies Limited | Flexible web page template building system and method |
US8863013B2 (en) * | 2008-04-01 | 2014-10-14 | International Business Machines Corporation | Generating a user defined page having representations of content in other pages |
JP5314915B2 (ja) * | 2008-04-10 | 2013-10-16 | アルパイン株式会社 | 車載ビデオ再生装置 |
WO2009126710A2 (en) * | 2008-04-10 | 2009-10-15 | Perceptive Pixel, Inc. | Methods of interfacing with multi-input devices and multi-input display systems employing interfacing techniques |
US8179418B2 (en) | 2008-04-14 | 2012-05-15 | Intouch Technologies, Inc. | Robotic based health care system |
US8170241B2 (en) | 2008-04-17 | 2012-05-01 | Intouch Technologies, Inc. | Mobile tele-presence system with a microphone system |
TWI366787B (en) * | 2008-04-18 | 2012-06-21 | Htc Corp | Method for displaying information contents and a electric apparatus and storage medium thereof |
US20090265611A1 (en) * | 2008-04-18 | 2009-10-22 | Yahoo ! Inc. | Web page layout optimization using section importance |
US20100073735A1 (en) * | 2008-05-06 | 2010-03-25 | Compulink Management Center, Inc. | Camera-based document imaging |
US20090289943A1 (en) * | 2008-05-22 | 2009-11-26 | Howard Teece | Anti-aliasing system and method |
US8572480B1 (en) | 2008-05-30 | 2013-10-29 | Amazon Technologies, Inc. | Editing the sequential flow of a page |
US8391638B2 (en) * | 2008-06-04 | 2013-03-05 | Microsoft Corporation | Hybrid image format |
US20090303253A1 (en) * | 2008-06-05 | 2009-12-10 | Microsoft Corporation | Personalized scaling of information |
US8135616B2 (en) | 2008-06-26 | 2012-03-13 | Microsoft Corporation | Browsing and quality of service features |
US9193065B2 (en) | 2008-07-10 | 2015-11-24 | Intouch Technologies, Inc. | Docking system for a tele-presence robot |
US9842192B2 (en) | 2008-07-11 | 2017-12-12 | Intouch Technologies, Inc. | Tele-presence robot system with multi-cast features |
US8107724B2 (en) * | 2008-08-02 | 2012-01-31 | Vantrix Corporation | Method and system for predictive scaling of colour mapped images |
GB2463104A (en) * | 2008-09-05 | 2010-03-10 | Skype Ltd | Thumbnail selection of telephone contact using zooming |
GB2463124B (en) | 2008-09-05 | 2012-06-20 | Skype Ltd | A peripheral device for communication over a communications sytem |
US8290971B2 (en) | 2008-09-09 | 2012-10-16 | Applied Systems, Inc. | Method and apparatus for remotely displaying a list by determining a quantity of data to send based on the list size and the display control size |
JP5596914B2 (ja) * | 2008-09-16 | 2014-09-24 | 富士通株式会社 | 端末装置、表示制御方法、及び表示機能を備えたプログラム |
US8340819B2 (en) | 2008-09-18 | 2012-12-25 | Intouch Technologies, Inc. | Mobile videoconferencing robot system with network adaptive driving |
US8384739B2 (en) * | 2008-09-30 | 2013-02-26 | Konica Minolta Laboratory U.S.A., Inc. | Systems and methods for optimization of pixel-processing algorithms |
US9229911B1 (en) | 2008-09-30 | 2016-01-05 | Amazon Technologies, Inc. | Detecting continuation of flow of a page |
US9087337B2 (en) * | 2008-10-03 | 2015-07-21 | Google Inc. | Displaying vertical content on small display devices |
US8996165B2 (en) | 2008-10-21 | 2015-03-31 | Intouch Technologies, Inc. | Telepresence robot with a camera boom |
KR101517618B1 (ko) * | 2008-10-31 | 2015-05-04 | 삼성전자주식회사 | 웹 컨텐츠를 효율적으로 디스플레이하기 위한 장치 및 방법 |
WO2010062747A1 (en) * | 2008-11-03 | 2010-06-03 | Novarra, Inc. | Dynamic font metric profiling |
US8416264B2 (en) * | 2008-11-03 | 2013-04-09 | Sony Mobile Communications Ab | Method and device for optimizing an image displayed on a screen |
JP4930860B2 (ja) * | 2008-11-07 | 2012-05-16 | Necシステムテクノロジー株式会社 | 図形描画装置、アンチエイリアス処理方法およびプログラム |
US8655858B1 (en) * | 2008-11-13 | 2014-02-18 | Amazon Technologies, Inc. | Digital content reconstruction and distribution |
US9138891B2 (en) | 2008-11-25 | 2015-09-22 | Intouch Technologies, Inc. | Server connectivity control for tele-presence robot |
US8463435B2 (en) | 2008-11-25 | 2013-06-11 | Intouch Technologies, Inc. | Server connectivity control for tele-presence robot |
US8418068B1 (en) * | 2008-12-05 | 2013-04-09 | Brian Backus | System, software application, and method for customizing a high-resolution image via the internet |
US8587639B2 (en) * | 2008-12-11 | 2013-11-19 | Alcatel Lucent | Method of improved three dimensional display technique |
CN102272696B (zh) | 2008-12-30 | 2015-07-01 | 汤姆森特许公司 | 用于触摸屏文本输入的方法和系统 |
WO2010082800A2 (ko) * | 2009-01-19 | 2010-07-22 | Kim Si Hwan | 휴대용 표시장치 |
US8547588B2 (en) | 2009-01-23 | 2013-10-01 | Hewlett-Packard Development Company, L.P. | Method and article for providing layout flexibility |
US8849680B2 (en) | 2009-01-29 | 2014-09-30 | Intouch Technologies, Inc. | Documentation through a remote presence robot |
US8856647B2 (en) * | 2009-02-20 | 2014-10-07 | Microsoft Corporation | Font handling for viewing documents on the web |
US8566045B2 (en) | 2009-03-16 | 2013-10-22 | Apple Inc. | Event recognition |
US8589374B2 (en) | 2009-03-16 | 2013-11-19 | Apple Inc. | Multifunction device with integrated search and application selection |
US8370736B2 (en) | 2009-03-16 | 2013-02-05 | Apple Inc. | Methods and graphical user interfaces for editing on a multifunction device with a touch screen display |
US8274536B2 (en) | 2009-03-16 | 2012-09-25 | Apple Inc. | Smart keyboard management for a multifunction device with a touch screen display |
US9684521B2 (en) | 2010-01-26 | 2017-06-20 | Apple Inc. | Systems having discrete and continuous gesture recognizers |
US9311112B2 (en) | 2009-03-16 | 2016-04-12 | Apple Inc. | Event recognition |
US8285499B2 (en) | 2009-03-16 | 2012-10-09 | Apple Inc. | Event recognition |
US8897920B2 (en) | 2009-04-17 | 2014-11-25 | Intouch Technologies, Inc. | Tele-presence robot system with software modularity, projector and laser pointer |
AU2009201612B2 (en) | 2009-04-22 | 2012-01-19 | Canon Kabushiki Kaisha | Scalable pixel coverage function-map |
KR20100120483A (ko) * | 2009-05-06 | 2010-11-16 | 삼성전자주식회사 | 영상처리장치 및 영상처리방법 |
US8179401B2 (en) * | 2009-05-21 | 2012-05-15 | Spatial Photonics, Inc. | Reducing image artifacts in a color sequential display system |
US8171401B2 (en) * | 2009-06-19 | 2012-05-01 | Microsoft Corporation | Resizing an editable area in a web page |
CN102318307B (zh) * | 2009-06-19 | 2014-07-09 | 深圳Tcl新技术有限公司 | 一种通过海报显示下载进度的方法 |
US9350817B2 (en) * | 2009-07-22 | 2016-05-24 | Cisco Technology, Inc. | Recording a hyper text transfer protocol (HTTP) session for playback |
US20110035701A1 (en) * | 2009-08-10 | 2011-02-10 | Williams Harel M | Focal point zoom |
CN101996206B (zh) | 2009-08-11 | 2013-07-03 | 阿里巴巴集团控股有限公司 | 一种呈现网页页面的方法、装置及系统 |
US8531410B2 (en) * | 2009-08-18 | 2013-09-10 | Fuji Xerox Co., Ltd. | Finger occlusion avoidance on touch display devices |
US8203582B2 (en) * | 2009-08-24 | 2012-06-19 | Samsung Electronics Co., Ltd. | Subpixel rendering with color coordinates' weights depending on tests performed on pixels |
US11399153B2 (en) | 2009-08-26 | 2022-07-26 | Teladoc Health, Inc. | Portable telepresence apparatus |
US8384755B2 (en) | 2009-08-26 | 2013-02-26 | Intouch Technologies, Inc. | Portable remote presence robot |
US8832548B2 (en) | 2009-09-21 | 2014-09-09 | Google Inc. | System and method for selective control of zoom adjustments in an electronic publication |
KR20110033679A (ko) * | 2009-09-25 | 2011-03-31 | 삼성전자주식회사 | 네트워크 기반 로봇의 영상 전송 시스템 및 그 방법 |
US8717596B2 (en) * | 2009-09-30 | 2014-05-06 | Printable Technologies Inc. | Systems and methods for providing variable data printing (VDP) using dynamic font downgrading |
US9330069B2 (en) * | 2009-10-14 | 2016-05-03 | Chi Fai Ho | Layout of E-book content in screens of varying sizes |
US10831982B2 (en) | 2009-10-14 | 2020-11-10 | Iplcontent, Llc | Hands-free presenting device |
US8769405B2 (en) * | 2009-10-16 | 2014-07-01 | Celartem, Inc. | Reduced glyph font files |
US8922582B2 (en) * | 2009-11-16 | 2014-12-30 | Martin J. Murrett | Text rendering and display using composite bitmap images |
US20110126113A1 (en) * | 2009-11-23 | 2011-05-26 | c/o Microsoft Corporation | Displaying content on multiple web pages |
KR101625884B1 (ko) * | 2009-12-09 | 2016-05-31 | 엘지전자 주식회사 | 휴대 단말기 및 그 동작 제어방법 |
JP4818427B2 (ja) * | 2009-12-22 | 2011-11-16 | 株式会社東芝 | 情報処理装置及び画面選択方法 |
JP4930583B2 (ja) * | 2009-12-29 | 2012-05-16 | ブラザー工業株式会社 | 画像記録装置及び画像記録装置の制御プログラム |
US8736561B2 (en) | 2010-01-06 | 2014-05-27 | Apple Inc. | Device, method, and graphical user interface with content display modes and display rotation heuristics |
US8438504B2 (en) | 2010-01-06 | 2013-05-07 | Apple Inc. | Device, method, and graphical user interface for navigating through multiple viewing areas |
WO2011085386A2 (en) | 2010-01-11 | 2011-07-14 | Apple Inc. | Electronic text manipulation and display |
US20110173532A1 (en) * | 2010-01-13 | 2011-07-14 | George Forman | Generating a layout of text line images in a reflow area |
US20110175826A1 (en) * | 2010-01-15 | 2011-07-21 | Bradford Allen Moore | Automatically Displaying and Hiding an On-screen Keyboard |
US20110176154A1 (en) * | 2010-01-18 | 2011-07-21 | Canon Kabushiki Kaisha | Image processing apparatus, image processing method, and storage medium |
US8499236B1 (en) | 2010-01-21 | 2013-07-30 | Amazon Technologies, Inc. | Systems and methods for presenting reflowable content on a display |
US8406571B2 (en) * | 2010-02-04 | 2013-03-26 | Yahoo! Inc. | Automatic super-resolution transformation for images |
US11154981B2 (en) | 2010-02-04 | 2021-10-26 | Teladoc Health, Inc. | Robot user interface for telepresence robot system |
US20110202634A1 (en) * | 2010-02-12 | 2011-08-18 | Surya Kumar Kovvali | Charging-invariant and origin-server-friendly transit caching in mobile networks |
US9417787B2 (en) * | 2010-02-12 | 2016-08-16 | Microsoft Technology Licensing, Llc | Distortion effects to indicate location in a movable data collection |
RU2690755C2 (ru) | 2010-02-19 | 2019-06-05 | Телефонактиеболагет Л М Эрикссон (Пабл) | Способ и устройство для переключения воспроизведений в потоковой передаче по протоколу передачи гипертекста |
US8670017B2 (en) | 2010-03-04 | 2014-03-11 | Intouch Technologies, Inc. | Remote presence system including a cart that supports a robot face and an overhead camera |
JP5187331B2 (ja) * | 2010-03-23 | 2013-04-24 | コニカミノルタビジネステクノロジーズ株式会社 | 画像処理装置、画像処理方法、およびコンピュータプログラム |
US9292161B2 (en) | 2010-03-24 | 2016-03-22 | Microsoft Technology Licensing, Llc | Pointer tool with touch-enabled precise placement |
US9508011B2 (en) | 2010-05-10 | 2016-11-29 | Videosurf, Inc. | Video visual and audio query |
US9413477B2 (en) * | 2010-05-10 | 2016-08-09 | Microsoft Technology Licensing, Llc | Screen detector |
US9311708B2 (en) | 2014-04-23 | 2016-04-12 | Microsoft Technology Licensing, Llc | Collaborative alignment of images |
US10343283B2 (en) | 2010-05-24 | 2019-07-09 | Intouch Technologies, Inc. | Telepresence robot system that can be accessed by a cellular phone |
US10808882B2 (en) | 2010-05-26 | 2020-10-20 | Intouch Technologies, Inc. | Tele-robotic system with a robot face placed on a chair |
US8898135B2 (en) * | 2010-05-28 | 2014-11-25 | Rakuten, Inc. | Information processing device, information processing method, information processing method, information processing program and recording medium |
US10216408B2 (en) | 2010-06-14 | 2019-02-26 | Apple Inc. | Devices and methods for identifying user interface objects based on view hierarchy |
US20120023426A1 (en) * | 2010-07-22 | 2012-01-26 | Mediatek Inc. | Apparatuses and Methods for Position Adjustment of Widget Presentations |
US9348801B2 (en) * | 2010-08-10 | 2016-05-24 | HP Brasil LTDA | System and method for automatic page layout |
US9483167B2 (en) | 2010-09-29 | 2016-11-01 | Adobe Systems Incorporated | User interface for a touch enabled device |
EP2625685B1 (en) | 2010-10-05 | 2020-04-22 | Citrix Systems, Inc. | Display management for native user experiences |
US9229636B2 (en) | 2010-10-22 | 2016-01-05 | Adobe Systems Incorporated | Drawing support tool |
US20120110067A1 (en) * | 2010-10-29 | 2012-05-03 | Luka Birsa | Remote graphics rendering |
US9443441B1 (en) * | 2010-10-29 | 2016-09-13 | Amazon Technologies, Inc. | View port resolution independent network pages |
US9195637B2 (en) * | 2010-11-03 | 2015-11-24 | Microsoft Technology Licensing, Llc | Proportional font scaling |
US8595640B2 (en) * | 2010-12-02 | 2013-11-26 | Microsoft Corporation | Render transform based scrolling and panning for smooth effects |
US9264664B2 (en) | 2010-12-03 | 2016-02-16 | Intouch Technologies, Inc. | Systems and methods for dynamic bandwidth allocation |
US20110170068A1 (en) * | 2010-12-03 | 2011-07-14 | Opticom Data Research | Method and apparatus for self-examination of the eye |
US8379999B2 (en) * | 2011-01-18 | 2013-02-19 | Chanan Gabay | Methods, circuits, devices, apparatuses and systems for providing image composition rules, analysis and improvement |
US12093036B2 (en) | 2011-01-21 | 2024-09-17 | Teladoc Health, Inc. | Telerobotic system with a dual application screen presentation |
US9323250B2 (en) | 2011-01-28 | 2016-04-26 | Intouch Technologies, Inc. | Time-dependent navigation of telepresence robots |
CN103459099B (zh) | 2011-01-28 | 2015-08-26 | 英塔茨科技公司 | 与一个可移动的远程机器人相互交流 |
US8842120B2 (en) | 2011-03-02 | 2014-09-23 | Adobe Systems Incorporated | Physics rules based animation engine |
US20130132907A1 (en) * | 2011-03-02 | 2013-05-23 | Adobe Systems Incorporated | Shape pixel rendering |
US8416243B2 (en) | 2011-03-10 | 2013-04-09 | Konica Minolta Laboratory U.S.A., Inc. | Approximating font metrics for a missing font when substituting an available replacement |
US8914524B1 (en) * | 2011-03-16 | 2014-12-16 | Amazon Technologies, Inc. | Load time adapted network page(s) |
US9348939B2 (en) * | 2011-03-18 | 2016-05-24 | International Business Machines Corporation | Web site sectioning for mobile web browser usability |
US9298363B2 (en) | 2011-04-11 | 2016-03-29 | Apple Inc. | Region activation for touch sensitive surface |
US8863039B2 (en) | 2011-04-18 | 2014-10-14 | Microsoft Corporation | Multi-dimensional boundary effects |
US10769739B2 (en) | 2011-04-25 | 2020-09-08 | Intouch Technologies, Inc. | Systems and methods for management of information among medical providers and facilities |
CN102760025A (zh) * | 2011-04-26 | 2012-10-31 | 富泰华工业(深圳)有限公司 | 图片浏览系统及图片缩放方法和图片切换方法 |
JP5092037B1 (ja) * | 2011-05-16 | 2012-12-05 | 株式会社東芝 | 探索省略領域設定関数生成方法、探索省略領域設定方法、オブジェクト探索方法、探索省略領域設定関数生成装置、探索省略領域設定装置、及びオブジェクト探索装置 |
US20140139616A1 (en) | 2012-01-27 | 2014-05-22 | Intouch Technologies, Inc. | Enhanced Diagnostics for a Telepresence Robot |
US20120293636A1 (en) * | 2011-05-19 | 2012-11-22 | Comcast Cable Communications, Llc | Automatic 3-Dimensional Z-Axis Settings |
US9098611B2 (en) | 2012-11-26 | 2015-08-04 | Intouch Technologies, Inc. | Enhanced video interaction for a user interface of a telepresence network |
US9092130B2 (en) | 2011-05-31 | 2015-07-28 | Apple Inc. | Devices, methods, and graphical user interfaces for document manipulation |
JP4937417B1 (ja) * | 2011-06-14 | 2012-05-23 | 株式会社ナナオ | 文字領域画素判定装置またはその方法 |
US9131013B2 (en) * | 2011-07-29 | 2015-09-08 | International Business Machines Corporation | Tailoring content to be delivered to mobile device based upon features of mobile device |
US9311426B2 (en) * | 2011-08-04 | 2016-04-12 | Blackberry Limited | Orientation-dependent processing of input files by an electronic device |
US9317196B2 (en) * | 2011-08-10 | 2016-04-19 | Microsoft Technology Licensing, Llc | Automatic zooming for text selection/cursor placement |
US9183006B2 (en) * | 2011-08-31 | 2015-11-10 | Visan Industries | Systems and methods for layout of graphic objects for electronic display, print or other output |
US10630751B2 (en) | 2016-12-30 | 2020-04-21 | Google Llc | Sequence dependent data message consolidation in a voice activated computer network environment |
US8650188B1 (en) | 2011-08-31 | 2014-02-11 | Google Inc. | Retargeting in a search environment |
US10956485B2 (en) | 2011-08-31 | 2021-03-23 | Google Llc | Retargeting in a search environment |
US8933971B2 (en) * | 2011-09-12 | 2015-01-13 | Microsoft Corporation | Scale factors for visual presentations |
US8307279B1 (en) | 2011-09-26 | 2012-11-06 | Google Inc. | Smooth zooming in web applications |
US10031641B2 (en) | 2011-09-27 | 2018-07-24 | Adobe Systems Incorporated | Ordering of objects displayed by a computing device |
US9407897B2 (en) * | 2011-09-30 | 2016-08-02 | Panasonic Intellectual Property Management Co., Ltd. | Video processing apparatus and video processing method |
US8707163B2 (en) * | 2011-10-04 | 2014-04-22 | Wesley John Boudville | Transmitting and receiving data via barcodes through a cellphone for privacy and anonymity |
US9171386B2 (en) * | 2011-10-11 | 2015-10-27 | Microsoft Technology Licensing, Llc | Caching coverage values for rendering text using anti-aliasing techniques |
CN102346782A (zh) * | 2011-10-25 | 2012-02-08 | 中兴通讯股份有限公司 | 在用户终端浏览器上按需显示图片的方法及装置 |
US8836751B2 (en) | 2011-11-08 | 2014-09-16 | Intouch Technologies, Inc. | Tele-presence system with a user interface that displays different communication links |
CA2781298C (en) | 2011-11-08 | 2017-01-03 | Research In Motion Limited | Improved block zoom on a mobile electronic device |
US20130120424A1 (en) * | 2011-11-14 | 2013-05-16 | Qualcomm Innovation Center, Inc. | Method and apparatus for improved rendering of images |
US9348552B2 (en) * | 2011-11-16 | 2016-05-24 | Cisco Technology, Inc. | Network appliance for transcoding or enriching virtual desktop infrastructure desktop images |
US8952981B2 (en) * | 2011-11-28 | 2015-02-10 | Microsoft Technology Licensing, Llc | Subpixel compositing on transparent backgrounds |
US9230223B2 (en) | 2011-12-05 | 2016-01-05 | Houzz, Inc. | Consistent presentation of content and passive relevance determination of content relationship in an on-line commerce system |
EP2788860A4 (en) * | 2011-12-06 | 2016-07-06 | Autograph Inc | GUIDE WITH USER-FRIENDLY PROFILING AND TOOLS FOR ANALYSIS AND FAST INFORMATION DISPLAY |
US20150205478A1 (en) * | 2011-12-12 | 2015-07-23 | Google Inc. | Content location interface |
US9218123B2 (en) | 2011-12-29 | 2015-12-22 | Apple Inc. | Device, method, and graphical user interface for resizing content viewing and text entry interfaces |
JP5810920B2 (ja) * | 2012-01-05 | 2015-11-11 | 富士通株式会社 | コンテンツ再生装置、コンテンツ再生プログラム、及びコンテンツ再生方法 |
US8965933B2 (en) * | 2012-01-06 | 2015-02-24 | Apple Inc. | Multi-tiered caches in data rendering |
US8959431B2 (en) * | 2012-01-16 | 2015-02-17 | Microsoft Corporation | Low resolution placeholder content for document navigation |
WO2013113007A2 (en) * | 2012-01-26 | 2013-08-01 | Alexander Brunner | Device and methods for fabricating a two-dimensional image of a three-dimensional object |
US9418068B2 (en) * | 2012-01-27 | 2016-08-16 | Microsoft Technology Licensing, Llc | Dimensional conversion in presentations |
US20130198641A1 (en) * | 2012-01-30 | 2013-08-01 | International Business Machines Corporation | Predictive methods for presenting web content on mobile devices |
US10789412B2 (en) * | 2012-02-20 | 2020-09-29 | Wix.Com Ltd. | System and method for extended dynamic layout |
US10185703B2 (en) * | 2012-02-20 | 2019-01-22 | Wix.Com Ltd. | Web site design system integrating dynamic layout and dynamic content |
KR101397685B1 (ko) * | 2012-02-29 | 2014-05-26 | 주식회사 팬택 | 사용자 단말 및 사용자 단말의 화면 표시방법 |
US8902278B2 (en) | 2012-04-11 | 2014-12-02 | Intouch Technologies, Inc. | Systems and methods for visualizing and managing telepresence devices in healthcare networks |
US9251313B2 (en) | 2012-04-11 | 2016-02-02 | Intouch Technologies, Inc. | Systems and methods for visualizing and managing telepresence devices in healthcare networks |
US8972853B2 (en) | 2012-04-13 | 2015-03-03 | Business Objects Software Limited | Rendering digital report elements using a layout optimization tool |
US20130297498A1 (en) * | 2012-05-04 | 2013-11-07 | William A. NAZARET | Method and system for providing broadband access to a plurality of customers |
US9361021B2 (en) | 2012-05-22 | 2016-06-07 | Irobot Corporation | Graphical user interfaces including touchpad driving interfaces for telemedicine devices |
WO2013176760A1 (en) | 2012-05-22 | 2013-11-28 | Intouch Technologies, Inc. | Graphical user interfaces including touchpad driving interfaces for telemedicine devices |
KR102022698B1 (ko) | 2012-05-31 | 2019-11-05 | 삼성디스플레이 주식회사 | 표시 패널 |
US9100668B2 (en) * | 2012-05-31 | 2015-08-04 | Matthew Nathan Lehrer | Graphics correction engine |
US8655148B2 (en) * | 2012-06-05 | 2014-02-18 | Hulu, LLC | Picture overlay of captions on video via out of band communication |
US9099031B2 (en) * | 2012-06-15 | 2015-08-04 | Apple Inc. | Layout synchronization |
US9277237B2 (en) | 2012-07-30 | 2016-03-01 | Vmware, Inc. | User interface remoting through video encoding techniques |
US9213556B2 (en) * | 2012-07-30 | 2015-12-15 | Vmware, Inc. | Application directed user interface remoting using video encoding techniques |
US8842910B2 (en) * | 2012-08-17 | 2014-09-23 | Tandent Vision Science, Inc. | Spatially varying log-chromaticity normals for use in an image process |
US8842907B2 (en) * | 2012-08-17 | 2014-09-23 | Tandent Vision Science, Inc. | Method for performing a multi-clustering merge for use in an image process |
US9223762B2 (en) * | 2012-08-27 | 2015-12-29 | Google Inc. | Encoding information into text for visual representation |
US20140218385A1 (en) * | 2012-09-10 | 2014-08-07 | Applitools Ltd. | System and method for visual segmentation of application screenshots |
US20140082484A1 (en) * | 2012-09-20 | 2014-03-20 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for obtaining information |
US9979960B2 (en) | 2012-10-01 | 2018-05-22 | Microsoft Technology Licensing, Llc | Frame packing and unpacking between frames of chroma sampling formats with different chroma resolutions |
US20140125554A1 (en) * | 2012-11-07 | 2014-05-08 | Shanghai Powermo Information Tech. Co. Ltd. | Apparatus and algorithm to implement smart mirroring for a multiple display system |
US9577979B1 (en) * | 2012-11-14 | 2017-02-21 | Viasat, Inc. | Local name resolution |
TW201424380A (zh) * | 2012-12-07 | 2014-06-16 | Ind Tech Res Inst | 影像與訊息編碼系統、編碼方法、解碼系統及解碼方法 |
CN103870508B (zh) * | 2012-12-18 | 2016-04-20 | 腾讯科技(深圳)有限公司 | 一种网页缩放方法、装置和系统 |
JP5824170B2 (ja) * | 2013-01-31 | 2015-11-25 | 楽天株式会社 | 画像表示装置、画像表示方法及びプログラム |
WO2014124298A1 (en) * | 2013-02-07 | 2014-08-14 | Nancy Burson | Pattern generation for viewing data in multiple directions |
US10152459B2 (en) * | 2013-02-20 | 2018-12-11 | Google Llc | Intelligent window placement with multiple windows using high DPI screens |
US20140245181A1 (en) * | 2013-02-25 | 2014-08-28 | Sharp Laboratories Of America, Inc. | Methods and systems for interacting with an information display panel |
US9400549B2 (en) | 2013-03-08 | 2016-07-26 | Chi Fai Ho | Method and system for a new-era electronic book |
US9977771B2 (en) | 2013-03-14 | 2018-05-22 | Pti Marketing Technologies Inc. | System and method for printable document viewer optimization |
US9190025B1 (en) * | 2013-03-14 | 2015-11-17 | Amazon Technologies, Inc. | Adapting display fonts for reflective displays |
US9767076B2 (en) * | 2013-03-15 | 2017-09-19 | Google Inc. | Document scale and position optimization |
US9588675B2 (en) * | 2013-03-15 | 2017-03-07 | Google Inc. | Document scale and position optimization |
WO2014157887A1 (en) * | 2013-03-25 | 2014-10-02 | Samsung Electronics Co., Ltd. | Display apparatus and method of outputting text thereof |
US9606969B1 (en) * | 2013-04-09 | 2017-03-28 | Symantec Corporation | Resizing content in a current view of a web browser based on a minimum font size inputted by a user |
CA2945675C (en) * | 2013-04-10 | 2018-10-23 | Jeremy BERRYMAN | Multitasking and screen sharing on portable computing devices |
US20140325345A1 (en) * | 2013-04-26 | 2014-10-30 | Amazon Technologies, Inc. | Consistent Scaling of Web-Based Content Across Devices Having Different Screen Metrics |
US9389759B2 (en) * | 2013-05-07 | 2016-07-12 | Axure Software Solutions, Inc. | Environment for responsive graphical designs |
US8671352B1 (en) | 2013-05-07 | 2014-03-11 | Axure Software Solutions, Inc. | Variable dimension version editing for graphical designs |
US9946806B2 (en) | 2013-05-07 | 2018-04-17 | Axure Software Solutions, Inc. | Exporting responsive designs from a graphical design tool |
GB2514410A (en) * | 2013-05-24 | 2014-11-26 | Ibm | Image scaling for images including low resolution text |
US9733716B2 (en) | 2013-06-09 | 2017-08-15 | Apple Inc. | Proxy gesture recognizer |
US10282083B2 (en) * | 2013-06-09 | 2019-05-07 | Apple Inc. | Device, method, and graphical user interface for transitioning between user interfaces |
JP2015032050A (ja) * | 2013-07-31 | 2015-02-16 | 株式会社東芝 | 表示制御装置、表示制御方法およびプログラム |
US9311338B2 (en) * | 2013-08-26 | 2016-04-12 | Adobe Systems Incorporated | Method and apparatus for analyzing and associating behaviors to image content |
US9703757B2 (en) * | 2013-09-30 | 2017-07-11 | Google Inc. | Automatically determining a size for a content item for a web page |
US10614153B2 (en) | 2013-09-30 | 2020-04-07 | Google Llc | Resource size-based content item selection |
EP3053142A4 (en) * | 2013-09-30 | 2017-07-19 | Hewlett-Packard Development Company, L.P. | Record and replay of operations on graphical objects |
US10431209B2 (en) | 2016-12-30 | 2019-10-01 | Google Llc | Feedback controller for data transmissions |
US20150143286A1 (en) * | 2013-11-20 | 2015-05-21 | Xiaomi Inc. | Method and terminal for responding to sliding operation |
CN103714775B (zh) | 2013-12-30 | 2016-06-01 | 北京京东方光电科技有限公司 | 像素阵列及其驱动方法、显示面板和显示装置 |
US10534844B2 (en) * | 2014-02-03 | 2020-01-14 | Oracle International Corporation | Systems and methods for viewing and editing composite documents |
CN103886809B (zh) * | 2014-02-21 | 2016-03-23 | 北京京东方光电科技有限公司 | 显示方法和显示装置 |
CN103823863B (zh) * | 2014-02-24 | 2017-07-25 | 联想(北京)有限公司 | 一种信息处理方法以及电子设备 |
US10885104B2 (en) | 2014-02-27 | 2021-01-05 | Dropbox, Inc. | Systems and methods for selecting content items to store and present locally on a user device |
US9787799B2 (en) | 2014-02-27 | 2017-10-10 | Dropbox, Inc. | Systems and methods for managing content items having multiple resolutions |
USD748669S1 (en) * | 2014-03-17 | 2016-02-02 | Lg Electronics Inc. | Display panel with transitional graphical user interface |
USD757093S1 (en) * | 2014-03-17 | 2016-05-24 | Lg Electronics Inc. | Display panel with transitional graphical user interface |
USD748671S1 (en) * | 2014-03-17 | 2016-02-02 | Lg Electronics Inc. | Display panel with transitional graphical user interface |
USD748134S1 (en) * | 2014-03-17 | 2016-01-26 | Lg Electronics Inc. | Display panel with transitional graphical user interface |
USD748670S1 (en) * | 2014-03-17 | 2016-02-02 | Lg Electronics Inc. | Display panel with transitional graphical user interface |
US10127327B2 (en) * | 2014-05-21 | 2018-11-13 | Adobe Systems Incorporated | Cloud-based image processing web service |
JP6344064B2 (ja) * | 2014-05-30 | 2018-06-20 | ブラザー工業株式会社 | 画像処理装置およびコンピュータプログラム |
US9148494B1 (en) * | 2014-07-15 | 2015-09-29 | Workiva Inc. | Font loading system and method in a client-server architecture |
US20160043978A1 (en) * | 2014-08-11 | 2016-02-11 | Facebook, Inc. | Techniques for hot snapshots for message syncing |
US10410398B2 (en) * | 2015-02-20 | 2019-09-10 | Qualcomm Incorporated | Systems and methods for reducing memory bandwidth using low quality tiles |
CN106162300A (zh) * | 2015-04-14 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 页面展示方法及装置 |
JP6696737B2 (ja) | 2015-06-26 | 2020-05-20 | シャープ株式会社 | コンテンツ表示装置及びプログラム |
CN107533548B (zh) | 2015-07-23 | 2021-07-30 | 惠普发展公司有限责任合伙企业 | 在文本显示器上展示显示数据 |
US10019415B1 (en) * | 2015-08-28 | 2018-07-10 | Animoto Inc. | System and method for consistent cross-platform text layout |
USD811419S1 (en) | 2015-09-18 | 2018-02-27 | Sap Se | Display screen or portion thereof with graphical user interface |
USD825605S1 (en) | 2015-09-18 | 2018-08-14 | Sap Se | Display screen or portion thereof with graphical user interface |
USD780801S1 (en) * | 2015-09-18 | 2017-03-07 | Sap Se | Display screen or portion thereof with animated graphical user interface |
USD783651S1 (en) | 2015-09-18 | 2017-04-11 | Sap Se | Display screen or portion thereof with graphical user interface |
US10303498B2 (en) | 2015-10-01 | 2019-05-28 | Microsoft Technology Licensing, Llc | Performance optimizations for emulators |
US9836646B2 (en) * | 2015-10-15 | 2017-12-05 | I.R.I.S. | Method for identifying a character in a digital image |
US10198355B2 (en) | 2015-10-29 | 2019-02-05 | Dropbox, Inc. | Proving a dynamic digital content cache |
JP6566850B2 (ja) * | 2015-11-30 | 2019-08-28 | キヤノン株式会社 | 情報処理システム、情報処理システムの制御方法、情報処理装置およびプログラム |
US11847040B2 (en) | 2016-03-16 | 2023-12-19 | Asg Technologies Group, Inc. | Systems and methods for detecting data alteration from source to target |
US11086751B2 (en) | 2016-03-16 | 2021-08-10 | Asg Technologies Group, Inc. | Intelligent metadata management and data lineage tracing |
JP6812141B2 (ja) * | 2016-05-31 | 2021-01-13 | キヤノン株式会社 | 情報処理装置、情報処理方法およびプログラム |
US10032263B2 (en) | 2016-06-12 | 2018-07-24 | Apple Inc. | Rendering information into images |
CN106028172A (zh) * | 2016-06-13 | 2016-10-12 | 百度在线网络技术(北京)有限公司 | 音/视频处理方法及装置 |
US10706069B2 (en) | 2016-06-30 | 2020-07-07 | Facebook, Inc. | Techniques for replication of a client database to remote devices |
US20180013714A1 (en) * | 2016-07-06 | 2018-01-11 | Facebook, Inc. | Techniques for messaging using replication of a client database |
US11017032B1 (en) * | 2016-09-30 | 2021-05-25 | Amazon Technologies, Inc. | Document recovery utilizing serialized data |
CN106980579B (zh) * | 2016-09-30 | 2020-08-14 | 阿里巴巴集团控股有限公司 | 一种图片加载方法及装置 |
US10368080B2 (en) | 2016-10-21 | 2019-07-30 | Microsoft Technology Licensing, Llc | Selective upsampling or refresh of chroma sample values |
EP3316109B1 (en) * | 2016-10-28 | 2019-09-04 | TeamViewer GmbH | Computer-implemented method for controlling a remote device with a local device |
US11862302B2 (en) | 2017-04-24 | 2024-01-02 | Teladoc Health, Inc. | Automated transcription and documentation of tele-health encounters |
CN107086027A (zh) * | 2017-06-23 | 2017-08-22 | 青岛海信移动通信技术股份有限公司 | 文字显示方法及装置、移动终端及存储介质 |
US10483007B2 (en) | 2017-07-25 | 2019-11-19 | Intouch Technologies, Inc. | Modular telehealth cart with thermal imaging and touch screen user interface |
US11294530B2 (en) * | 2017-08-07 | 2022-04-05 | Microsoft Technology Licensing, Llc | Displaying a translucent version of a user interface element |
US11636944B2 (en) | 2017-08-25 | 2023-04-25 | Teladoc Health, Inc. | Connectivity infrastructure for a telehealth platform |
US11057500B2 (en) | 2017-11-20 | 2021-07-06 | Asg Technologies Group, Inc. | Publication of applications using server-side virtual screen change capture |
US10893206B1 (en) * | 2017-12-11 | 2021-01-12 | Alarm.Com Incorporated | User experience with digital zoom in video from a camera |
US10877740B2 (en) | 2017-12-29 | 2020-12-29 | Asg Technologies Group, Inc. | Dynamically deploying a component in an application |
US11611633B2 (en) | 2017-12-29 | 2023-03-21 | Asg Technologies Group, Inc. | Systems and methods for platform-independent application publishing to a front-end interface |
US10812611B2 (en) | 2017-12-29 | 2020-10-20 | Asg Technologies Group, Inc. | Platform-independent application publishing to a personalized front-end interface by encapsulating published content into a container |
CN108154848B (zh) * | 2018-01-19 | 2020-11-17 | 昆山国显光电有限公司 | 像素排列的显示方法、装置及显示设备 |
US10617299B2 (en) | 2018-04-27 | 2020-04-14 | Intouch Technologies, Inc. | Telehealth cart that supports a removable tablet with seamless audio/video switching |
US10540579B2 (en) | 2018-05-18 | 2020-01-21 | Sap Se | Two-dimensional document processing |
KR102052033B1 (ko) * | 2018-06-11 | 2020-01-08 | 김병진 | 다양한 구조화 방식들로 인스턴트 메시지들을 조직화하고 표시하기 위한 장치 및 방법 |
KR102493488B1 (ko) * | 2018-06-15 | 2023-02-01 | 삼성디스플레이 주식회사 | 표시 장치 |
US11837174B2 (en) | 2018-06-15 | 2023-12-05 | Samsung Display Co., Ltd. | Display device having a grayscale correction unit utilizing weighting |
KR102125402B1 (ko) * | 2018-06-20 | 2020-06-23 | 라인플러스 주식회사 | 이미지에서 추출된 키워드를 이용하여 이미지를 필터링하기 위한 방법과 시스템 및 비-일시적인 컴퓨터 판독 가능한 기록 매체 |
JP7145215B2 (ja) * | 2018-07-05 | 2022-09-30 | バリューコマース株式会社 | ブラウザ管理システム、ブラウザ管理方法、ブラウザ管理プログラム、およびクライアントプログラム |
US10592589B1 (en) | 2018-08-21 | 2020-03-17 | Axure Software Solutions, Inc. | Multi-view masters for graphical designs |
US10915788B2 (en) * | 2018-09-06 | 2021-02-09 | Sap Se | Optical character recognition using end-to-end deep learning |
JP7023817B2 (ja) * | 2018-09-19 | 2022-02-22 | 本田技研工業株式会社 | 表示システム、表示方法、およびプログラム |
US11314488B2 (en) * | 2018-11-14 | 2022-04-26 | Babu Vinod | Methods and systems for automated screen display generation and configuration |
US10983677B2 (en) | 2018-11-16 | 2021-04-20 | Dropbox, Inc. | Prefetching digital thumbnails from remote servers to client devices based on a dynamic determination of file display criteria |
JP6992769B2 (ja) * | 2019-01-17 | 2022-01-13 | セイコーエプソン株式会社 | 表示装置の制御方法、表示装置および表示システム |
US11153366B2 (en) * | 2019-03-01 | 2021-10-19 | International Business Machines Corporation | Lightweight web font customization integrated with glyph demanding assessment |
US11194467B2 (en) | 2019-06-01 | 2021-12-07 | Apple Inc. | Keyboard management user interfaces |
USD922400S1 (en) * | 2019-06-13 | 2021-06-15 | Tata Consultancy Services Limited | Display screen with animated graphical user interface |
USD921651S1 (en) * | 2019-06-17 | 2021-06-08 | Tata Consultancy Services Limited | Display screen with animated graphical user interface |
USD921650S1 (en) * | 2019-06-17 | 2021-06-08 | Tata Consultancy Services Limited | Display screen with animated graphical user interface |
USD922401S1 (en) * | 2019-06-17 | 2021-06-15 | Tata Consultancy Services Limited | Display screen with animated graphical user interface |
US11762634B2 (en) | 2019-06-28 | 2023-09-19 | Asg Technologies Group, Inc. | Systems and methods for seamlessly integrating multiple products by using a common visual modeler |
US11055067B2 (en) | 2019-10-18 | 2021-07-06 | Asg Technologies Group, Inc. | Unified digital automation platform |
US11693982B2 (en) | 2019-10-18 | 2023-07-04 | Asg Technologies Group, Inc. | Systems for secure enterprise-wide fine-grained role-based access control of organizational assets |
US11269660B2 (en) | 2019-10-18 | 2022-03-08 | Asg Technologies Group, Inc. | Methods and systems for integrated development environment editor support with a single code base |
US11941137B2 (en) | 2019-10-18 | 2024-03-26 | Asg Technologies Group, Inc. | Use of multi-faceted trust scores for decision making, action triggering, and data analysis and interpretation |
US11886397B2 (en) | 2019-10-18 | 2024-01-30 | Asg Technologies Group, Inc. | Multi-faceted trust system |
CN113012243A (zh) * | 2019-12-19 | 2021-06-22 | 北京普源精电科技有限公司 | 待显示对象颜色生成系统、方法、装置、显示设备及介质 |
CN111182361B (zh) * | 2020-01-13 | 2022-06-17 | 青岛海信移动通信技术股份有限公司 | 一种通信终端及视频预览的方法 |
EP3859725A3 (en) * | 2020-01-31 | 2021-11-17 | LG Display Co., Ltd. | Display device |
CN111427646B (zh) * | 2020-03-20 | 2023-08-11 | RealMe重庆移动通信有限公司 | 显示控制方法、装置、移动终端及存储介质 |
US11615246B2 (en) | 2020-06-03 | 2023-03-28 | Sap Se | Data-driven structure extraction from text documents |
CN113835669B (zh) * | 2020-06-24 | 2024-03-29 | 青岛海信移动通信技术有限公司 | 电子设备及其语音播报方法 |
CN111857502B (zh) * | 2020-07-14 | 2024-05-17 | 海信视像科技股份有限公司 | 一种图像显示方法及显示设备 |
US11468224B2 (en) * | 2020-08-17 | 2022-10-11 | IT Cadre, LLC | Method for resizing elements of a document |
US11231918B1 (en) | 2020-08-31 | 2022-01-25 | Microsoft Technologly Licensing, LLC | Native emulation compatible application binary interface for supporting emulation of foreign code |
US11403100B2 (en) | 2020-08-31 | 2022-08-02 | Microsoft Technology Licensing, Llc | Dual architecture function pointers having consistent reference addresses |
US11042422B1 (en) | 2020-08-31 | 2021-06-22 | Microsoft Technology Licensing, Llc | Hybrid binaries supporting code stream folding |
US11281928B1 (en) * | 2020-09-23 | 2022-03-22 | Sap Se | Querying semantic data from unstructured documents |
WO2022081476A1 (en) | 2020-10-13 | 2022-04-21 | ASG Technologies Group, Inc. dba ASG Technologies | Geolocation-based policy rules |
US11094038B1 (en) * | 2020-10-19 | 2021-08-17 | Apple Inc. | Variable scaling ratio systems and methods |
US11514489B2 (en) * | 2021-01-06 | 2022-11-29 | Sap Se | Targeted document information extraction |
CN113033394B (zh) * | 2021-03-24 | 2024-05-14 | 北京达佳互联信息技术有限公司 | 图像签名的生成方法、装置、电子设备和存储介质 |
CN114238312A (zh) * | 2021-11-26 | 2022-03-25 | 上海维智卓新信息科技有限公司 | 基于位图计算的用户画像确定方法及装置 |
TWI806291B (zh) * | 2021-12-16 | 2023-06-21 | 宏碁股份有限公司 | 測試結果辨識方法及測試結果辨識裝置 |
WO2023158718A1 (en) * | 2022-02-16 | 2023-08-24 | Glance Networks, Inc. | Restricting screenshare of web pages to select list of allowed website urls |
CN114582301B (zh) * | 2022-03-08 | 2024-07-23 | 康键信息技术(深圳)有限公司 | 一种信息显示方法、装置、电子设备及存储介质 |
USD1012109S1 (en) | 2022-04-25 | 2024-01-23 | Sap Se | Display screen or portion thereof with graphical user interface |
CN116719597B (zh) * | 2023-08-10 | 2024-01-26 | 北京冠群信息技术股份有限公司 | 基于格栅布局的自适应视图渲染方法及创建方法 |
Family Cites Families (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US623433A (en) * | 1899-04-18 | Beegee | ||
US4428065A (en) * | 1979-06-28 | 1984-01-24 | Xerox Corporation | Data processing system with multiple display apparatus |
JPH0652472B2 (ja) * | 1984-07-23 | 1994-07-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | イメージ処理方法 |
US4723209A (en) * | 1984-08-30 | 1988-02-02 | International Business Machines Corp. | Flow attribute for text objects |
US5341153A (en) * | 1988-06-13 | 1994-08-23 | International Business Machines Corporation | Method of and apparatus for displaying a multicolor image |
US5189020A (en) * | 1989-11-22 | 1993-02-23 | Neurex Corporation | Method of reducing neuronal damage using omega conotoxin peptides |
JPH03201788A (ja) * | 1989-12-28 | 1991-09-03 | Nippon Philips Kk | カラー表示装置 |
JP3083314B2 (ja) * | 1990-10-12 | 2000-09-04 | キヤノン株式会社 | 文書処理方法及び装置 |
US5563955A (en) | 1990-11-21 | 1996-10-08 | The Board Of Trustees Of The University Of Arkansas | Apparatus and/or method for recognizing printed data in an image |
US5341466A (en) * | 1991-05-09 | 1994-08-23 | New York University | Fractal computer user centerface with zooming capability |
JP3586472B2 (ja) * | 1991-06-25 | 2004-11-10 | 富士ゼロックス株式会社 | 情報表示方法および情報表示装置 |
US5666530A (en) * | 1992-12-02 | 1997-09-09 | Compaq Computer Corporation | System for automatic synchronization of common file between portable computer and host computer via communication channel selected from a plurality of usable channels there between |
DE69418908T2 (de) * | 1993-01-26 | 2000-01-20 | Sun Microsystems Inc | Verfahren und Gerät zum Informationsanschauen in einer Rechnerdatenbank |
JPH0728689A (ja) * | 1993-07-09 | 1995-01-31 | Hitachi Ltd | 情報処理装置 |
US5444797A (en) | 1993-04-19 | 1995-08-22 | Xerox Corporation | Method and apparatus for automatic character script determination |
JP4255511B2 (ja) * | 1993-04-20 | 2009-04-15 | アップル インコーポレイテッド | 対話型ユーザ・インタフェース |
US5533174A (en) * | 1993-10-26 | 1996-07-02 | Digital Equipment Corporation | Network font server |
JP2813728B2 (ja) * | 1993-11-01 | 1998-10-22 | インターナショナル・ビジネス・マシーンズ・コーポレイション | ズーム/パン機能付パーソナル通信機 |
US5781714A (en) * | 1994-05-27 | 1998-07-14 | Bitstream Inc. | Apparatus and methods for creating and using portable fonts |
US6321158B1 (en) * | 1994-06-24 | 2001-11-20 | Delorme Publishing Company | Integrated routing/mapping information |
JP2726631B2 (ja) * | 1994-12-14 | 1998-03-11 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 液晶表示方法 |
US5619633A (en) | 1994-12-14 | 1997-04-08 | Apple Computer, Inc. | Computer generated scribble fill of a vector graphic |
JP3119805B2 (ja) | 1994-12-20 | 2000-12-25 | 松下電器産業株式会社 | 多階調データ生成装置 |
US5867156A (en) * | 1995-11-08 | 1999-02-02 | Intel Corporation | Automatic viewport display synchronization during application sharing |
US6076109A (en) * | 1996-04-10 | 2000-06-13 | Lextron, Systems, Inc. | Simplified-file hyper text protocol |
US5727159A (en) * | 1996-04-10 | 1998-03-10 | Kikinis; Dan | System in which a Proxy-Server translates information received from the Internet into a form/format readily usable by low power portable computers |
JP3544422B2 (ja) * | 1996-03-04 | 2004-07-21 | 日本電気株式会社 | 記事配置装置 |
US5699535A (en) * | 1996-03-29 | 1997-12-16 | International Business Machines Corporation | Method, memory and apparatus for automatically resizing a plurality of windows displayed on a computer display |
US5918013A (en) * | 1996-06-03 | 1999-06-29 | Webtv Networks, Inc. | Method of transcoding documents in a network environment using a proxy server |
US6034689A (en) * | 1996-06-03 | 2000-03-07 | Webtv Networks, Inc. | Web browser allowing navigation between hypertext objects using remote control |
US5911145A (en) * | 1996-07-29 | 1999-06-08 | Rae Technology, Inc. | Hierarchical structure editor for web sites |
US6151609A (en) * | 1996-08-16 | 2000-11-21 | Electronic Data Systems Corporation | Remote editor system |
US5956737A (en) * | 1996-09-09 | 1999-09-21 | Design Intelligence, Inc. | Design engine for fitting content to a medium |
US5852448A (en) | 1996-09-20 | 1998-12-22 | Dynalab Inc. | Stroke-based font generation independent of resolution |
US6157390A (en) | 1996-09-20 | 2000-12-05 | Dynalab (S) Ltd. | Stroke-based font generation |
JPH10105362A (ja) * | 1996-09-30 | 1998-04-24 | Toshiba Corp | 携帯型情報機器および拡大表示制御方法 |
US5870559A (en) * | 1996-10-15 | 1999-02-09 | Mercury Interactive | Software system and associated methods for facilitating the analysis and management of web sites |
US6486862B1 (en) * | 1996-10-31 | 2002-11-26 | Kopin Corporation | Card reader display system |
US5893127A (en) * | 1996-11-18 | 1999-04-06 | Canon Information Systems, Inc. | Generator for document with HTML tagged table having data elements which preserve layout relationships of information in bitmap image of original document |
US6043802A (en) * | 1996-12-17 | 2000-03-28 | Ricoh Company, Ltd. | Resolution reduction technique for displaying documents on a monitor |
US6185625B1 (en) * | 1996-12-20 | 2001-02-06 | Intel Corporation | Scaling proxy server sending to the client a graphical user interface for establishing object encoding preferences after receiving the client's request for the object |
AU729891B2 (en) * | 1997-02-07 | 2001-02-15 | About.Com Inc. | Collaborative internet data mining system |
US6326970B1 (en) * | 1997-05-16 | 2001-12-04 | Liberate Technologies | TV centric layout |
US5952994A (en) * | 1997-07-31 | 1999-09-14 | Hewlett-Packard Company | Method for scaling an image |
US6044385A (en) * | 1997-09-10 | 2000-03-28 | International Business Machines Corporation | Method and system for efficiently managing the manipulation of large documents displayed within a computer screen |
KR100280175B1 (ko) * | 1997-10-15 | 2001-02-01 | 윤종용 | 툴팁을이용한글꼴정보표시기및방법 |
US6128661A (en) * | 1997-10-24 | 2000-10-03 | Microsoft Corporation | Integrated communications architecture on a mobile device |
US6167441A (en) * | 1997-11-21 | 2000-12-26 | International Business Machines Corporation | Customization of web pages based on requester type |
US6343377B1 (en) * | 1997-12-30 | 2002-01-29 | Netscape Communications Corp. | System and method for rendering content received via the internet and world wide web via delegation of rendering processes |
US6389437B2 (en) | 1998-01-07 | 2002-05-14 | Ion Systems, Inc. | System for converting scrolling display to non-scrolling columnar display |
US6105042A (en) * | 1998-02-13 | 2000-08-15 | Cylex Systems, Inc. | Multi-user information management system adapted for efficient, remote, on-demand document management, storage and retrieval |
US6278448B1 (en) * | 1998-02-17 | 2001-08-21 | Microsoft Corporation | Composite Web page built from any web content |
US6185589B1 (en) * | 1998-07-31 | 2001-02-06 | Hewlett-Packard Company | Automatic banner resizing for variable-width web pages using variable width cells of HTML table |
US6392673B1 (en) | 1998-09-04 | 2002-05-21 | Microsoft Corporation | Method for resizing user interface elements for an operating system |
US6271840B1 (en) * | 1998-09-24 | 2001-08-07 | James Lee Finseth | Graphical search engine visual index |
US6236433B1 (en) * | 1998-09-29 | 2001-05-22 | Intel Corporation | Scaling algorithm for efficient color representation/recovery in video |
US6188385B1 (en) * | 1998-10-07 | 2001-02-13 | Microsoft Corporation | Method and apparatus for displaying images such as text |
EP2579246B1 (en) * | 1998-10-07 | 2018-05-23 | Microsoft Technology Licensing, LLC | Mapping samples of foreground/background color image data to pixel sub-components |
US6236390B1 (en) * | 1998-10-07 | 2001-05-22 | Microsoft Corporation | Methods and apparatus for positioning displayed characters |
US6485862B1 (en) * | 1998-12-28 | 2002-11-26 | Mitsubishi Denki Kabushiki Kaisha | Thin battery and method of manufacturing |
EP1161739B1 (en) | 1999-01-12 | 2008-08-27 | Microsoft Corporation | Filtering image data to obtain samples mapped to pixel sub-components of a display device |
US6393145B2 (en) * | 1999-01-12 | 2002-05-21 | Microsoft Corporation | Methods apparatus and data structures for enhancing the resolution of images to be rendered on patterned display devices |
US6624828B1 (en) * | 1999-02-01 | 2003-09-23 | Microsoft Corporation | Method and apparatus for improving the quality of displayed images through the use of user reference information |
US6750875B1 (en) * | 1999-02-01 | 2004-06-15 | Microsoft Corporation | Compression of image data associated with two-dimensional arrays of pixel sub-components |
US6708309B1 (en) * | 1999-03-11 | 2004-03-16 | Roxio, Inc. | Method and system for viewing scalable documents |
US6456305B1 (en) * | 1999-03-18 | 2002-09-24 | Microsoft Corporation | Method and system for automatically fitting a graphical display of objects to the dimensions of a display window |
US6342896B1 (en) * | 1999-03-19 | 2002-01-29 | Microsoft Corporation | Methods and apparatus for efficiently implementing and modifying foreground and background color selections |
WO2000057364A1 (en) | 1999-03-19 | 2000-09-28 | Microsoft Corporation | Methods and apparatus for representing multiple luminance intensity values as a single value |
US6342890B1 (en) * | 1999-03-19 | 2002-01-29 | Microsoft Corporation | Methods, apparatus, and data structures for accessing sub-pixel data having left side bearing information |
WO2000060479A1 (en) | 1999-03-19 | 2000-10-12 | Microsoft Corporation | Methods and apparatus for generating and representing luminance intensity values |
US6486896B1 (en) * | 1999-04-07 | 2002-11-26 | Apple Computer, Inc. | Scalable scroll controller |
WO2000067196A1 (en) | 1999-04-29 | 2000-11-09 | Microsoft Corporation | Method, apparatus and data structures for maintaining a consistent baseline position in a system for rendering text |
US6339426B1 (en) * | 1999-04-29 | 2002-01-15 | Microsoft Corporation | Methods, apparatus and data structures for overscaling or oversampling character feature information in a system for rendering text on horizontally striped displays |
AU4686500A (en) | 1999-04-29 | 2000-11-17 | Microsoft Corporation | Methods, apparatus and data structures for determining glyph metrics for rendering text on horizontally striped displays |
US6437793B1 (en) * | 1999-07-29 | 2002-08-20 | Bitstream Inc. | System for rapidly performing scan conversion with anti-aliasing upon outline fonts and other graphic elements |
US6853980B1 (en) * | 1999-09-07 | 2005-02-08 | Bitstream Inc. | System for selecting, distributing, and selling fonts |
US6384839B1 (en) * | 1999-09-21 | 2002-05-07 | Agfa Monotype Corporation | Method and apparatus for rendering sub-pixel anti-aliased graphics on stripe topology color displays |
US6697825B1 (en) * | 1999-11-05 | 2004-02-24 | Decentrix Inc. | Method and apparatus for generating and modifying multiple instances of element of a web site |
US6826727B1 (en) * | 1999-11-24 | 2004-11-30 | Bitstream Inc. | Apparatus, methods, programming for automatically laying out documents |
US6731315B1 (en) * | 1999-11-30 | 2004-05-04 | International Business Machines Corporation | Method for selecting display parameters of a magnifiable cursor |
US6356882B1 (en) * | 1999-12-29 | 2002-03-12 | Pitney Bowes Inc. | Method and system for inputting a weight to a browser in an internet-based shipping system |
US6341466B1 (en) * | 2000-01-19 | 2002-01-29 | Cooper Technologies Company | Clip for securing an elongate member to a T-bar of a ceiling grid |
US6556217B1 (en) * | 2000-06-01 | 2003-04-29 | Nokia Corporation | System and method for content adaptation and pagination based on terminal capabilities |
US7210099B2 (en) * | 2000-06-12 | 2007-04-24 | Softview Llc | Resolution independent vector display of internet content |
US6971063B1 (en) * | 2000-07-28 | 2005-11-29 | Wireless Valley Communications Inc. | System, method, and apparatus for portable design, deployment, test, and optimization of a communication network |
CA2323569A1 (en) * | 2000-10-18 | 2002-04-18 | Advanced Numerical Methods Ltd. | Elastic presentation space |
JP2002214972A (ja) | 2000-11-14 | 2002-07-31 | Fuji Xerox Co Ltd | 表示装置、表示方法、及び画像形成装置 |
US6686930B2 (en) * | 2000-11-29 | 2004-02-03 | Xerox Corporation | Technique for accomplishing copy and paste and scan to fit using a standard TWAIN data source |
US7016704B2 (en) * | 2001-04-02 | 2006-03-21 | Move Mobile Systems, Inc. | Coordinating images displayed on devices with two or more displays |
WO2002088978A1 (en) | 2001-05-02 | 2002-11-07 | Icon Resources, Inc. | Secure and accountable wireless printing system |
US7219309B2 (en) | 2001-05-02 | 2007-05-15 | Bitstream Inc. | Innovations for the display of web pages |
JP2004533641A (ja) | 2001-05-02 | 2004-11-04 | ビットストリーム インコーポレーティッド | 非線形カラー・バランスを使用して副画素最適化フォント・ビットマップを生成及び表示するための方法、システム、及びプログラム |
US7146573B2 (en) * | 2002-01-28 | 2006-12-05 | International Business Machines Corporation | Automatic window representation adjustment |
US20040183817A1 (en) | 2002-12-03 | 2004-09-23 | Bitstream Inc. | Methods, systems, and programming for scaled display of web pages |
-
2002
- 2002-05-02 JP JP2002586143A patent/JP2004533641A/ja active Pending
- 2002-05-02 EP EP02731669A patent/EP1393189A4/en not_active Withdrawn
- 2002-05-02 EP EP02766909A patent/EP1393190A4/en not_active Withdrawn
- 2002-05-02 WO PCT/US2002/014217 patent/WO2002089105A2/en active Application Filing
- 2002-05-02 AT AT02746342T patent/ATE459908T1/de not_active IP Right Cessation
- 2002-05-02 EP EP02746342A patent/EP1393148B1/en not_active Expired - Lifetime
- 2002-05-02 EP EP02734209.6A patent/EP1449190B1/en not_active Expired - Lifetime
- 2002-05-02 US US10/138,923 patent/US7222306B2/en not_active Expired - Fee Related
- 2002-05-02 AU AU2002316067A patent/AU2002316067A1/en not_active Abandoned
- 2002-05-02 AU AU2002305392A patent/AU2002305392A1/en not_active Abandoned
- 2002-05-02 JP JP2003504259A patent/JP2005507102A/ja active Pending
- 2002-05-02 WO PCT/US2002/014282 patent/WO2002088908A2/en active Application Filing
- 2002-05-02 WO PCT/US2002/014216 patent/WO2002101567A2/en active Application Filing
- 2002-05-02 JP JP2002586324A patent/JP2004532430A/ja active Pending
- 2002-05-02 JP JP2002586208A patent/JP2005501310A/ja active Pending
- 2002-05-02 WO PCT/US2002/014380 patent/WO2002088979A1/en active Application Filing
-
2003
- 2003-11-03 US US10/700,376 patent/US7737993B2/en not_active Expired - Fee Related
- 2003-11-03 US US10/700,378 patent/US7287220B2/en not_active Expired - Fee Related
-
2007
- 2007-05-22 US US11/751,711 patent/US8514243B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1449190B1 (en) | 2013-07-10 |
WO2002089105A3 (en) | 2003-02-06 |
WO2002101567A3 (en) | 2003-02-27 |
US8514243B2 (en) | 2013-08-20 |
US7737993B2 (en) | 2010-06-15 |
US20070216687A1 (en) | 2007-09-20 |
EP1393190A1 (en) | 2004-03-03 |
WO2002088908A3 (en) | 2003-04-03 |
EP1393148A4 (en) | 2007-06-20 |
WO2002088908A2 (en) | 2002-11-07 |
WO2002101567A2 (en) | 2002-12-19 |
US20030095135A1 (en) | 2003-05-22 |
US7287220B2 (en) | 2007-10-23 |
EP1449190A4 (en) | 2007-05-30 |
EP1393189A4 (en) | 2007-06-13 |
EP1449190A2 (en) | 2004-08-25 |
JP2005501310A (ja) | 2005-01-13 |
EP1393148A2 (en) | 2004-03-03 |
WO2002089105A2 (en) | 2002-11-07 |
EP1393148B1 (en) | 2010-03-03 |
US7222306B2 (en) | 2007-05-22 |
US20050062758A1 (en) | 2005-03-24 |
ATE459908T1 (de) | 2010-03-15 |
AU2002305392A1 (en) | 2002-11-11 |
AU2002316067A1 (en) | 2002-11-11 |
JP2005507102A (ja) | 2005-03-10 |
WO2002088979A1 (en) | 2002-11-07 |
EP1393189A2 (en) | 2004-03-03 |
EP1393190A4 (en) | 2007-07-18 |
JP2004532430A (ja) | 2004-10-21 |
US20040177323A1 (en) | 2004-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4498146B2 (ja) | コンピュータデバイスに於けるメディア表示方法、コンピュータデバイス、コンピュータプログラム | |
JP2004533641A (ja) | 非線形カラー・バランスを使用して副画素最適化フォント・ビットマップを生成及び表示するための方法、システム、及びプログラム | |
US20040183817A1 (en) | Methods, systems, and programming for scaled display of web pages | |
US7194697B2 (en) | Magnification engine | |
US9195637B2 (en) | Proportional font scaling | |
US20070299830A1 (en) | Display of search results | |
KR20100048433A (ko) | 웹 컨텐츠를 효율적으로 디스플레이하기 위한 장치 및 방법 | |
US20040148292A1 (en) | Method of adaptive data transmission | |
JP4812077B2 (ja) | データ表示方法及びデータ表示装置並びにプログラム | |
JP2004021838A (ja) | ウエブページ作成方法、ウエブページ表示システム、およびウエブページ表示方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050511 |
|
A072 | Dismissal of procedure [no reply to invitation to correct request for examination] |
Free format text: JAPANESE INTERMEDIATE CODE: A072 Effective date: 20050712 |