Home
Patent Search
IMT Blog
REGISTER
|
SIGN IN
United States Patent
7222306
Kaasila , ; et al.
May 22, 2007
Title
Methods, systems, and programming for computer display of images, text, and/or digital content
Abstract
A bitmap of a shape, such as a font, can be subpixel optimized by producing for each of a display's subpixels a coverage value representing the percent of its area covered by the shape being represented and by distributing, to prevent color imbalance, an amount of a given subpixel's coverage value to nearby subpixels of different colors as a function of the percent of the given subpixel's coverage value that causes color imbalance. Web pages can be displayed with scaled-down and subpixel optimized images. A given layout of a Web page can be displayed at each of at least two different selected scale factors, with the font bitmaps used to represent characters in the display at each scale factor having their shape and pixel alignment selected to improve readability for the particular pixel size at which they are displayed at each such scale factor.
Inventors:
Kaasila; Sampo J.
(Plaistow,
NH
)
, Collins; John S.
(Boston,
MA
)
Assignee:
Bitstream Inc.
(Cambridge,
MA
)
Appl. No.:
10/138,923
Filed:
May 2, 2002
PCT Pub Date:
May 22, 2007
Current U.S. Class:
715/801
715/760
715/800
Current International Class:
G06F 3/00 (20060101)
Field of Search:
715/760,801,800
U.S. Patent Documents
20010011308
August 2001
Clark et al.
20010048764
December 2001
Betrisey et al.
20020021308
February 2002
White et al.
20020151283
October 2002
Pallakoff
20030016248
January 2003
Ubillos
20050041046
February 2005
Baer et al.
20050132286
June 2005
Rohrabaugh et al.
4428065
January 1984
Duvall et al.
4723209
February 1988
Hernandez et al.
4751507
June 1988
Hama et al.
5334996
August 1994
Tanigaki et al.
5341153
August 1994
Benzschawel et al.
5341466
August 1994
Perlin et al.
5533174
July 1996
Flowers, Jr. et al.
5615384
March 1997
Allard et al.
5638523
June 1997
Mullet et al.
5714971
February 1998
Shalit et al.
5727159
March 1998
Kikinis
5781714
July 1998
Collins et al.
5821913
October 1998
Mamiya
5867156
February 1999
Beard et al.
5893127
April 1999
Tyan et al.
5911145
June 1999
Arora et al.
5952994
September 1999
Ong et al.
5956738
September 1999
Shirakawa
6044385
March 2000
Gross et al.
6073168
June 2000
Mighdoll et al.
6076109
June 2000
Kikinis
6105042
August 2000
Aganovic et al.
6128661
October 2000
Flanagin et al.
6133913
October 2000
White et al.
6151609
November 2000
Truong
6161114
December 2000
King et al.
6167441
December 2000
Himmel
6185589
February 2001
Votipka
6185625
February 2001
Tso et al.
6188385
February 2001
Hill et al.
6189020
February 2001
Shimizu
6219025
April 2001
Hill et al.
6225973
May 2001
Hill et al.
6226648
May 2001
Appleman et al.
6236390
May 2001
Hitchcock
6236433
May 2001
Acharya et al.
6239783
May 2001
Hill et al.
6271840
August 2001
Finseth et al.
6278448
August 2001
Brown et al.
6321158
November 2001
DeLorme et al.
6326970
December 2001
Mott et al.
6330577
December 2001
Kim
6339426
January 2002
Lui et al.
6341310
January 2002
Leshem et al.
6342890
January 2002
Shetter
6342896
January 2002
Shetter et al.
6343377
January 2002
Gessner et al.
6356882
March 2002
Carroll et al.
6363395
March 2002
Tanaka et al.
6393145
May 2002
Betrisey et al.
6437793
August 2002
Kaasila
6456305
September 2002
Qureshi et al.
6485862
November 2002
Jacoben et al.
6486862
November 2002
Jacobsen et al.
6556217
April 2003
Makipaa et al.
6601057
July 2003
Underwood et al.
6674436
January 2004
Dresevic et al.
6697825
February 2004
Underwood et al.
6708309
March 2004
Blumberg
6731315
May 2004
Ma et al.
6750875
June 2004
Keely, Jr. et al.
6826727
November 2004
Mohr et al.
6853980
February 2005
Ying et al.
6971063
November 2005
Rappaport et al.
Foreign Patent Documents
WO 00/42564
Jul., 2000
WO
WO 00/57364
Sep., 2000
WO
WO 00/60479
Oct., 2000
WO
WO 00/67196
Nov., 2000
WO
WO 00/67247
Nov., 2000
WO
WO 02/088908
Nov., 2002
WO
WO 02/088978
Nov., 2002
WO
WO 02/089105
Nov., 2002
WO
WO 02/101567
Dec., 2002
WO
WO 2004/051429
Jun., 2004
WO
WO 2004/051430
Jun., 2004
WO
Other References
PCT/US02/14282 Int. Search Report, Bitstream Inc., Sec. C. cited by other .
PCT/US02/14217 Int. Search Report, Bitstream Inc., Sec. C. cited by other .
PCT/US02/14216 Int. Search Report, Bitstream Inc., Sec. C. cited by other .
PCT/US02/14380 Int. Search Report, Bitstream Inc., Sec. C. cited by other .
PCT/US03/38342 Int. Search Report, Bitstream Inc., Sec. C. cited by other .
PCT/US03/38344 Int. Search Report, Bitstream Inc., Sec. C. cited by other .
Beat Stamm, The raster tragedy at low resolution, Oct. 29, 1997, downloaded from www.microsoft.com/typography/tools/trtair.htm?fname=%20&fsize, pp. 1-30 (see PCT/US02/14282 search report). cited by other .
Kevin C. Almeroth et al., Scalable Delivery of Web Pages Using Cyclic Best-Efforts Multicast, p. 1214-1221, IEEE 1998 (see PCT/US02/14380 search report). cited by other .
Guillaume pierre et al., Dynamically Selecting Optimal Distribution Strategies for Web Documents, IEEE Transactions On Computers, vol. 51, No. 6, pp. 637-651, Jun. 2002 (see PCT/US02/14380 search report). cited by other .
"Opera Small Screen Rendering" from web page www.opera.com/products/smartphone/smallscreen/news.com/, 4 printed pages downloaded on Nov. 26, 2002. cited by other .
"Welcome to Handspring.com," 1 printed page from web page www.handspring.com/index.jhtml, downloaded on Nov. 26, 2002. cited by other .
"Handspring: Software," 3 printed pages from web page www.handspring.com/software/blazer.sub.--details.jhtml? . . . , downloaded on Nov. 26, 2002. cited by other .
"A walk on the wide side" p. 56, EWEEK, p. 56, Apr. 2, 2001. cited by other .
"Jimmy's Windows CE Software Home Page," 7 pages from a web page originally downloaded on or before Jul. 4, 2001 (please note in particicularly the portion thereof entitled What's NEW in JS Landscape 2.0 which appears to refer to the product shown in the above EWEEK article). cited by other .
U.S. Appl. No. 10/138,923, filed May 2, 2002, Kaasila et al. cited by other .
U.S. Appl. No. 10/389,445, filed Mar. 14, 2003, Kaasila et al. cited by other .
U.S. Appl. No. 10/700,331, filed Nov. 3, 2003, Kassila et al. cited by other .
U.S. Appl. No. 10/700,376, filed Nov. 3, 2006, Kaasila et al. cited by other .
U.S. Appl. No. 10/700,378, filed Nov. 3, 2003, Kaasila et al. cited by other .
U.S. Appl. No. 10/727,359, filed Dec. 3, 2003, Kaasila. cited by other .
Smith et al., Scalable Multimedia Delivery for Pervasive Computing, ACM 1999, pp. 131-140, ACM Multimedia '99, Oct. 1999, Orlando FL, USA. cited by other .
Edward Porter, "Screen Shot of Three Microsoft Internet Explorer Windows Showing Same Portion of Web Page with Different Layouts", created Sep. 16, 2005 on Mr. Porter's computer by opening three seperate IE windows showing same web sites and manually varying window width and font size. Applicants believe IE had this capability before 2000. 1 page. cited by other .
Edward Porter, "Screen Shot of Microsoft Word Displaying Portion of Text at Two Different Displayed Font Sizes", created on Sep. 16, 2005 on Mr. Porter's computer by using the split box to open two panes in an MS Word view, scrolling the bottom pane so it showed same text as top pane, and increasing the magnification in the bottom pane while in normal view so the text in the bottom pain would re-flow across line boundaries. Applicant's believe this capability predates 2000. 1 page. cited by other .
Edward Porter, "Two screen shots of Internet Explorer Window Showing different views of same PDF file", created Sep. 11, 2006 on Mr Porter's computer by downloading a PDF file from the Web and viewing it first in page width view and then in full page view; 2 pages. cited by other .
OmniSky Wireless Service (version 2.0), by Amy R. Zunk, Posted Feb. 15, 2001, downloaded from Http://www.geek.com/hwswrev/palmpilot/omnisky/index.htm on Sep. 8, 2006. 7 pages. cited by other .
"WAP", downloaded from Wikipedia, the free encyclopedia, on Sep. 8, 2006, 5 pages. cited by other .
"Microbrowser", downloaded from Wikipedia, the free encyclopedia, on Sep. 8, 2006, 3 pages. cited by other .
"Microsoft Reader", downloaded from Wikipedia, the free encyclopedia, on Sep. 8, 2006, 1 page. cited by other .
Displaced Filtering for Patterned Displays, by Claude Betrisey et al, Society for Information Display, 2000: 4 pages. cited by other .
Wireless Enterprise Applications for Mobile Information management, Palm, Inc., Santa Clara, CA, 2000; cover sheet plus 27 pages. cited by other .
Selling Windows CE to the real world, by Lisa M. Bowman, on Jun. 7, 1999, ZD Net News, originally downlowded from http://www.zdnet.com/zdnn/stories/news/0.4586,2270867,00.html on Mar. 15, 2001; 3 pages. cited by other .
PDA-To-Desktop Remote-Control Technology Debuts, by Steve Gold, on May 11, 2001, Newsbytes, originally downloaded from http://www.nbnn.com/news/01/165603.html on May 12, 2001: 2 pages. cited by other .
The eBook Revolution, downloaded from Http://www.zimac.de/reader.htm, on Sep. 8, 2006, the copyright notice at bottom of page goes to http://www.zimac.de/legal.htm, which lists Marc Zimmermann as copyright holder. Page states it was last updated on Mar. 6, 2005: 6 pages. cited by other .
Microsoft Reader FAQ 1.1 (Unofficial), by Richard Crocker-Planet eBook editor, copyright 2005 by Binary Thing Pty. Ltd. Downloaded from http://www.planetebook.com/mainpage.asp?webpageid=103 on Sep. 8, 2006: 7 pages. cited by other.~
Primary Examiner:
Vu; Kieu D.
Attorney, Agent or Firm:
Porter; Edward W.
Parent Case Text
RELATED APPLICATIONS
This application is a continuation-in-part of and claims priority under 35 U.S.C. .sctn. 119(e) of the following co-pending U.S. provisional applications: BIT01-1PRO1 APPLICANT: Sampo J. Kaasila et al. TITLE: Methods, Systems, and Programming For Browsing The Web Or Viewing Other Sorts of Media or Computer Output Ser. No.: 60/288,287 FILING DATE: May 2, 2001 BIT01-1PRO-A APPLICANT: Sampo J. Kaasila et al. TITLE: Methods, Systems, and Programming For Producing and Displaying Subpixel-Optimized Font Bitmaps Using Non-Linear Color Balancings Ser. No.: 60/296,275 FILING DATE: Jun. 5, 2001 BIT01-1PR0-A2 APPLICANT: Sampo J. Kaasila et al. TITLE: Methods, Systems, and Programming For Producing and Displaying Subpixel-Optimized Font Bitmaps Using Non-Linear Color Balancings Ser. No.: 60/322,922 FILING DATE: Sep. 17, 2001 BIT01-1PRO-B APPLICANT: Sampo J. Kaasila et al. TITLE: Methods, Systems, and Programming For Producing And Displaying Subpixel-Optimized Images and Digital Content Including Such Images Ser. No.: 60/296,237 FILING DATE: Jun. 5, 2001 BIT01-1PRO-C APPLICANT: Sampo J. Kaasila et al. TITLE: Methods, Systems, and Programming For Displaying Media Including Both Images And Text In A Subpixel-Optimized Manner Ser. No.: 60/296,274 FILING DATE: Jun. 5, 2001 BIT01-1PRO-D APPLICANT: Sampo J. Kaasila et al. TITLE: Methods, Systems, and Programming For Displaying Media Including Text In A Scaled And/Or Subpixel-Optimized Manner Ser. No.: 60/296,284 FILING DATE: Jun. 5, 2001 BIT01-1PRO-E APPLICANT: Sampo J. Kaasila et al. TITLE: Methods, Systems, and Programming For Displaying Media In A Scaled-Down Manner Ser. No.: 60/296,231 FILING DATE: Jun. 5, 2001 BIT01-1PRO-F APPLICANT: Sampo J. Kaasila et al. TITLE: Methods, Systems, and Programming For Displaying Media Scaled-Down By A Variable Scale Factor Ser. No.: 60/296,224 FILING DATE: Jun. 5, 2001 BIT01-1PRO-G APPLICANT: Sampo J. Kaasila et al. TITLE: Methods, Systems, and Programming Involved In Preparing Media For Display On One Computer And Displaying It On Another Computer Ser. No.: 60/296,426 FILING DATE: Jun. 5, 2001 BIT01-1PRO-H APPLICANT: Sampo J. Kaasila et al. TITLE: Methods, Systems, and Programming Involved In Displaying Text And/Or Images In A Scaled Down Or Subpixel Optimized Manner Ser. No.: 60/296,273 FILING DATE: Jun. 5, 2001 BIT01-1PRO-I APPLICANT: Sampo J. Kaasila et al. TITLE: Methods, Systems, and Programming Involved In The Supply Of Fonts Over A Computer Network Ser. No.: 60/296,283 FILING DATE: Jun. 5, 2001 BIT01-1PRO-J APPLICANT: Sampo J. Kaasila et al. TITLE: Methods, Systems, and Programming Involved In Display Of Subpixel Optimized GUI And/Or Multimedia Elements Ser. No.: 60/296,281 FILING DATE: Jun. 5, 2001 BIT01-1PRO-K APPLICANT: Sampo J. Kaasila et al. TITLE: Methods, Systems, and Programming Involved In Display Of Digital Content In An Orientation Different Than An Orientation At Which Operating System Can Display Ser. No.: 60/296,327 FILING DATE: Jun. 5, 2001
Claims
We claim:
1. A method of displaying a web page comprising: accessing a web page's contents, including one or more images and one or more strings of displayable text, where the contents of said web page do not specify a designated layout position for each of said images and text; laying out the web page in a layout space having a horizontal and a vertical layout resolution, so as to determine a layout position in said layout space for each of said images and each portion of one of said strings that is to be displayed on a separate line in said layout space, said laying out including: treating said images and characters of said displayable text as having respective layout sizes in said layout space; flowing displayable characters of said strings across line boundaries, based on the layout size of said displayable characters, by breaking portions of strings that cross a line boundary into separate single line strings, each of which fits on a single line in said layout space; and displaying at least a portion of said laid out web page in a display shown on a display screen at a selected scale factor, including: displaying both said images and single line character strings at locations in said display corresponding to the positions at which they have been laid out in said layout space, scaled as a function of said selected scale factor; representing each of said images in said display by a corresponding bitmap in said display that has a pixel size relative to the image's layout size determined as a function of said selected scale factor; and representing a given single line strings by an image composed from a plurality of separate font bitmaps representing the characters in said string, where the image of an individual character of said string has a pixel size relative to the character's layout size determined as a function of said selected scale factor; wherein: said displaying of a portion of said laid out web page is performed at each of at least two different selected scale factors; and the shape and pixel alignment of a character represented by one of said font bitmap at a given scale factor has been selected to improve readability as a function of the size of said font bitmap used to represent the character at the given scale factor, causing a given character in a given string in two displayings of a given portion of said web page layout performed at different selected scale factors to be displayed with font bitmaps of different pixel size that represent the given character with different shapes and pixel alignments.
2. A method as in claim 1 wherein: said differences in the shape and pixel alignment of character at said different scale factors cause the relative horizontal width of the font bitmaps of some characters to change at different scale factors; one or more of said text strings are laid out in a horizontal manner; and the relative horizontal width of spacing between individual characters in a given single line strings relative to the horizontal width of characters is changed when displayed at different scale factors to compensate for such change in relative character width.
3. A method as in claim 1 wherein: the font bitmaps used to represent text at each of said different scale factors are anti-aliased bitmaps that assign a color value to a given screen pixel as a graded function of a coverage value representing the percent of the given pixel that is covered by a character shape being represented by the font bitmap; and the shape and pixel alignment of a given character represented by a different font bitmap at each of said different scale factors has been selected to increase the degree of alignment of edges of the character shape with pixel boundaries of the font bitmap used at each such the scale factor.
4. A method as in claim 3 wherein: the screen on which the displays are drawn has pixels comprised of a given arrangement of separately-addressable, differently-colored subpixels; the anti-aliased font bitmaps used to compose the images of text in said displays are subpixel-optimized bitmaps that assign a luminosity value to a subpixel of a screen pixel having said given arrangement of differently-colored subpixels as a function of: a coverage value representing the percent of the subpixel that is covered by a character shape being represented by the font bitmap; in the case of at least some subpixels of said font bitmaps, a color balancing distribution of a percent of the subpixel's coverage value from said coverage value to coverage values of nearby subpixels, including subpixels of different color, made to prevent a color imbalance that would otherwise result from the difference between the subpixel's coverage value and the coverage values of a given set of one or more nearby subpixels of different colors; and in the case of at least some subpixels of said font bitmaps, such color balancing distributions to the subpixel's coverage value from one or more nearby subpixels.
5. A method as in claim 4 wherein said color balancing distributions only distribute portions of a subpixel's coverage value that causes color imbalance within the whole pixel of which it is part.
6. A method as in claim 3 wherein: said anti-aliased font bitmaps used to represent text at one selected scale factor include small font bitmaps having a small font size of eight pixels per em or less; and the shape and pixel alignment of characters represented in said small font bitmaps have been selected as a function of said small font size to increase the degree of alignment of edges of the character shape with pixel boundaries of the small font bitmap.
7. A method as in claim 6 wherein the font bitmaps of said small font size represent a majority of characters of the Roman alphabet within an advance width of 4 pixel columns or less.
8. A method as in claim 7 wherein the font bitmaps of said small font size represent a majority of lowercase letters with an x-height greater than 4 pixels.
9. A method as in claim 1: including providing a user interface that allows a user to select a succession of different scale factors selected from among a set of at least two different selectable scale factors; and wherein said displaying is performed at each of said successively selected scale factors.
10. A method as in claim 1 wherein: the web page's content indicates pixel sizes at which images are to be displayed; and at least two of said selected scale factors causes said display to represent said images at pixel sizes smaller that said indicated sizes.
11. A method as in claim 1 wherein one or more of said selected scale factors have different component values in a horizontal and a vertical direction, causing the scaling of images and characters to be different in those different directions.
12. A method as in claim 1 wherein one or more of said selected scale factors have the same value in a horizontal and a vertical directions, causing the scaling of images and characters to be the same in those different directions.
13. A method as in claim 1 wherein: said display screen has pixels each comprised of a given arrangement of separately-addressable, differently-colored, differently-positioned subpixels; and the bitmap used to represent a given image accessed as part of a web page in said display of a portion of a web page's layout at a given one of said selected scale factors is a subpixel-optimized image that: is scaled relative to the given accessed imaged as a function of said given selected scale factor; and assigns a luminosity to each differently-colored subpixel in the display of such an image as a function of the amount of luminosity of the given subpixel's color in a source image window in the given accessed image that is associated with the given subpixel; where the source image window associated with each given subpixel has a position relative to the accessed image that corresponds to the position of the given subpixel relative to the subpixel-optimized image, such that the position of the source image windows associated with different subpixels of a given pixel vary in correspondence with the different positions of such subpixels relative to said pixel.
14. A method as in claim 13 wherein: the bitmaps used to represent a given accessed image in said display at each of two different selected scale factor are two different subpixel-optimized images; and these two different subpixel optimized images assigns luminosity values to subpixels based on source image windows that have different sizes and positions relative to the given accessed image.
15. A method as in claim 1 wherein: said displayings at said different scale factors are performed on a client computer; the client computer requests a web page from a remote computer over a computer network; said remote computer performs said accessing of the web page's contents; said remote computer performs said laying out of said web page; said remote computer downloads a representation of said images, strings, and layout positions over said computer network to said client computer; and said client computer performs said displaying at each of said different scale factors by drawing said images, strings, and links at positions and sizes on said screen corresponding to those in said layout performed on said remote computer as scaled as a function of said different scale factors.
16. A method as in claim 15 wherein said made composed from a plurality of separate fonts bitmaps that represents a given single line string is composed by said client computer for the displaying performed at each of said different selected scale factors.
17. A method as in claim 15 wherein: said remote computer scales the images accessed as part of said web page to produce said scaled bitmaps used to represent said one or more images in the display at a first of said two scale factors, which scaled bitmaps are transmitted to said client computer as part of said download; said client computer performs said displaying for said first scale factor, including representing images in said display with the downloaded image bitmaps that have been scaled for said first scale factors; said client computer has a user interface that allows a user to select to have the layout displayed at a second of said scale factors; and said client computer responds to a selection to display the layout at said second scale factor by displaying the layout of said web page at said second scale factor without a download from said remote client of images scaled for display at said second scale factor.
18. A method as in claim 17 wherein said client's displaying of the layout of said web page at a second scale factor without download from said remote client of images scaled for said second scale factor includes: re-scaling said images scaled for display at said first scale factor to a size appropriate for display at said second scale factor; and displaying said re-scaled images at positions in said display produced at said second scale factor corresponding to the layout positions of said images at said second scale factor.
19. A method as in claim 18 wherein: the client computer also responds to said selection to display the layout at said second scale factor by uploading to the remote computer an indication that the remote computer should download images scaled for said second scale factor; in response to the uploading of such an indication, the remote computer: scales the images accessed as part of said web page to produce bitmaps scaled for use in the displaying at said second scale factor; and downloads the images scaled for the second scale factor to said client computer; and after the images scaled for the second scale factor have been downloaded, the client computer uses them to replace, in said display of the layout at said second scale factor, the previously displayed bitmaps that had been re-scaled by the client computer.
20. A method as in claim 1 further including: providing a user interface that allows a user to drag a pointing device across a selected part of said web page's layout shown on said screen at a first scale factor; and responding to such a drag by performing a zoom-to-fit displaying of said selected part of the web page layout at a second scale factor selected to cause said selected part of said web page layout to have a size that fits the size of said screen.
21. A method as in claim 20 wherein: the user interface that allows a user to drag a pointing device across a selected part of the web page layout responds to such a drag that extends across a boundary associated with a given edge of said screen by scrolling, onto said screen, across said given screen edge, portions of the web page layout previously not shown on the screen at said first scale factor, so as to allow said drag to select as said selected part of the web page layout a part that was either too large or not properly positioned to fit entirely within said screen when the drag first started; and said responding to such a drag performs said zoom-to-fit displaying for the part of the web page layout selected by such a drag.
22. A method as in claim 1 further including: providing a user interface that allows a user to click a pointing device on a selected part of said web page's layout shown on said screen at a first scale factor; and responding to such a click by performing a displaying of said selected part of the web page layout at a second scale factor that causes said selected part to be shown at a larger size.
23. A method as in claim 1 further including: providing a user interface that allows a user to drag a pointing device across a part of said web page's layout shown on said screen at a first of said selected scale factor; and responding to such a drag that extends across a boundary associated with a given edge of said screen by scrolling, onto said screen, across said given screen edge, portions of the web page layout previously not shown on the screen at said first scale factor.
24. A method as in claim 1 further including: responding to a press of a pointing device, made at a first layout position relative to a first portion of the web page layout displayed on said screen at a first scale factor, by replacing all or part of the display of said first layout portion with a display of a second, smaller portion of said web page layout, which includes said first position, at a second scale factor that causes said smaller portion to be shown at a larger size; responding to a subsequent releases of said press, made at a selected position relative to the layout shown at said second scale factor, by: acting as if a mouse click had occurred at said selected position relative to said web page layout; and replacing the display of said smaller portion on said screen with a display of the web page layout at said first scale factor.
25. A method as in claim 24 wherein said replacement of all or part of the display of said first portion of said web page layout with a display of said smaller portion of said layout during the press of said pointing device replaces all of the display of said first portion of said layout.
26. A method as in claim 24 further including displaying a cursor that indicates the position of the pointing device relative to the portion of said web page layout displayed at said second scale factor during said press, to inform a user of the location that would be treated as said selected position if the pointing device were released at its current location.
27. A method as in claim 26 wherein: said display screen is a touch screen display; and said cursor is displayed above the point at which the screen is being touched by a pointing device so the cursor can be seen over that pointing device.
28. A method as in claim 24 wherein said first layout position, which corresponds to the layout position of said pointing device at the time of said press, has substantially the same screen position in said display at said second scale factor made in response to said press as it did in the display at said first scale factor at the time said press was made.
29. A method as in claim 24 further including responding to movement of the pointing device during said press that extends across a boundary associated with a given edge of said screen by scrolling, onto said screen, across said given screen edge, portions of the web page layout previously not shown on the screen at said second scale factor, so as to allow said movement to select as said selected position relative to the layout a position that was not shown on said screen at said second scale when said movement during the press first started.
30. A method as in claim 1 further including: performing a different displaying of a given portion of said laid out web page that is similar to one of said displayings performed for said at least two different scale factors, except that said different displaying: is performed for a zoomed-out scale factor; and represents said one or more single line string with a greeked bitmap that indicates the size and location of said string in said layout.
31. A method of displaying a web page comprising: accessing a web page's content, including one or more images and one or more strings of displayable text; laying out the web page for display at a given virtual screen resolution having a given horizontal and vertical pixel resolution so as to determine a layout position for each of said images and each portion of one of said strings that is to be displayed on a separate line, with said layout positions being determined in a layout space having a virtual pixel width equal to the larger of (a) a minimum width required by the contents of the web page, if such a minimum width exists, or (b) the horizontal resolution of the virtual screen resolution, which ever is larger, said laying out including: treating said images and displayable characters in said displayable text as having respective layout sizes in said layout space; flowing displayable characters of said strings of across line boundaries, based on the layout size of said displayable characters, by breaking portions of strings that cross a line boundary into separate single line strings, each of which fits on a single line in said layout space; and displaying at least a portion of said laid out web page in a display shown on a display screen at a given scale factor, including: displaying both said images and single line character strings at locations in said display corresponding to the positions at which they have been laid out in said layout space, scaled as a function of said given scale factor; representing each of said images in said display by a corresponding bitmap that has a size relative to the image's layout size determined as a function of said given scale factor; representing a given single line strings by an image composed from a plurality of separate font bitmaps representing the characters in said string, where the image of an individual character of said string has a pixel size relative to the character's layout size determined as a function of said given scale factor; performing said layout and displaying of said web page at each of at least two different virtual screen resolutions; wherein: the layout performed at a first, larger, one of said virtual screen resolutions lays out said images and strings at a first, relatively small, set of respective sizes relative to said larger virtual screen resolution; the layout at a second, smaller, one of said virtual screen resolutions lays out said images and strings at a second, relatively large, set of respective sizes relative to said smaller virtual screen resolution; and the given scale factors used, respectively, in the displaying performed at the first and second virtual screen resolutions are such that the images and text appear at smaller pixel sizes in the display of the layout produced using said larger virtual screen resolution and appear at larger pixel sizes in the display of the layout produced using said smaller virtual screen resolution; and the layout at the smaller virtual screen resolution makes text lines shorter relative to the size of fonts shown on those lines.
32. A method as in claim 31 wherein: said displaying at said different virtual screen resolutions are performed on a client computer system; the client computer system requests said web page from a remote computer system over a computer network; said remote computer system performs said accessing of the web page; said remote computer system performs said laying out of said web page at each of said virtual screen resolutions; said remote computer system downloads a representation of said images, strings, and layout positions over said computer network to said client computer system for each of said virtual screen resolutions; and said client computer system performs said displaying of said images and strings laid out at each of said virtual screen resolutions by drawing said images, and single line strings at relative positions and sizes on said screen corresponding to those in said layouts performed at each of said virtual screen resolutions on said remote computer system.
33. A method as in claim 32 wherein said made composed from a plurality of separate fonts bitmaps that represents a given single line string is composed by said client computer system for the layouts performed at each of said virtual screen resolutions from font bitmaps corresponding to the characters of said strings.
34. A method as in claim 31 wherein: at least in the displaying performed for the layout at one of said virtual screen resolutions, one or more of said single line strings are represented at a font size of 10 pixels per em or less and have individual characters represented by anti-aliased font bitmaps that assign a color value to a given screen pixel as a graded function of a coverage value representing the percent of the given pixel that is covered by a character shape being represented by the font bitmap; and the shape and pixel alignment of a character represented by such a font bitmap has been selected to increase the degree of alignment of edges of the character shape with pixel boundaries of the font bitmap as a function of the font size of each such a font bitmap.
35. A method as in claim 34 wherein: the display screen on which displays are drawn has pixels comprised of a given arrangement of separately-addressable, differently-colored subpixels; the anti-aliased font bitmaps used to represent said text strings at 10 pixels per em or less are subpixel-optimized bitmaps that assign a luminosity value to each given subpixel of said screen as a function of: a coverage value representing the percent of the given subpixel that is covered by a character shape being represented by the font bitmap; in the case of at least some subpixels of said font bitmaps, a color balancing distribution of a percent of a given subpixel's coverage value from said coverage value to coverage values of nearby subpixels, including subpixels of different color, made to a prevent color imbalance that would otherwise result from the difference between the given subpixel's coverage value and the coverage values of a given set of one or more nearby subpixels of different colors; and in the case of at least some subpixels of said font bitmaps, such color balancing distributions to a given subpixel's coverage value from one or more nearby subpixels.
36. A method as in claim 35 wherein said color balancing distributions only distribute portions of a subpixel's coverage value that causes color imbalance within the whole pixel of which it is part.
37. A method as in claim 34 wherein: said anti-aliased font bitmaps include small font bitmaps having a small font size of eight pixels per em or less; and the shape and pixel alignment of characters represented in said small font bitmaps have been selected as a function of said small font size to increase the degree of alignment of edges of the character shape with pixel boundaries of the small font bitmap.
38. A method as in claim 37 wherein the font bitmaps of said small font size represent a majority of characters of the Roman alphabet within an advance width of 4 pixel columns or less.
39. A method as in claim 38 wherein the font bitmaps of said small font size represent a majority of lowercase letters with an x-height greater than 4 pixels.
40. A method as in claim 31 wherein: said display screen has pixels each comprised of a given arrangement of separately-addressable, differently-colored, differently-positioned subpixels; and the bitmap used to represent a given image, accessed as part of a web page, in said display of a portion of the layout performed at one of said virtual screen resolutions is a subpixel-optimized image that: is scaled relative to the given accessed imaged as a function of said virtual screen resolution; and assigns a luminosity to each differently-colored subpixel in the display of such an image as a function of the amount of luminosity of the given subpixel's color in a source image window in the given accessed image that is associated with the given subpixel; where the source image window associated with each given subpixel has a position relative to the accessed image that corresponds to the position of the given subpixel relative to the subpixel-optimized image, such that the position of the source image windows associated with different subpixels of a given pixel varies in correspondence with the different positions of such subpixels relative to said given pixel.
41. A method as in claim 40 wherein: the bitmaps used to represent a given accessed image in said displays produced using each of said two different virtual screen resolutions are two different subpixel-optimized images; and these two different subpixel optimized images assigns luminosity values to subpixels based on source image windows that have different sizes and positions relative to the given accessed image.
42. A computing device comprising: one or more memory devices for storing information, including programming information; one or more processors for processing information in response to said programming information; one or more input devices for receiving inputs from a user that can be supplied to one or more of said processors; a display screen on which information can be shown to a user under control of said one or more processors; wherein said programming information includes programming for causing said computing device, under control of said one or more processors, to perform the following functions: accessing a web page's contents, including one or more images and one or more strings of displayable text, where the contents of said web page do not specify a designated layout position for each of said images and text; laying out the web page in a layout space having a horizontal and a vertical layout resolution, so as to determine a layout position in said layout space for each of said images and each portion of one of said strings that is to be displayed on a separate line in said layout space, said laying out including: treating said images and characters of said displayable text as having respective layout sizes in said layout space; flowing displayable characters of said strings across line boundaries, based on the layout size of said displayable characters, by breaking portions of strings that cross a line boundary into separate single line strings, each of which fits on a single line in said layout space; and displaying at least a portion of said laid out web page in a display shown on a display screen at a selected scale factor, including: displaying both said images and single line character strings at locations in said display corresponding to the positions at which they have been laid out in said layout space, scaled as a function of said selected scale factor; representing each of said images in said display by a corresponding bitmap in said display that has a pixel size relative to the image's layout size determined as a function of said selected scale factor; and representing a given single line strings by an image composed from a plurality of separate font bitmaps representing the characters in said string, where the image of an individual character of said string has a pixel size relative to the character's layout size determined as a function of said selected scale factor; wherein: said displaying of a portion of said laid out web page is performed at each of at least two different selected scale factors; and the shape and pixel alignment of a character represented by one of said font bitmap at a given scale factor has been selected to improve readability as a function of the size of said font bitmap used to represent the character at the given scale factor, causing a given character in a given string in two displayings of a given portion of said web page layout performed at different selected scale factors to be displayed with font bitmaps of different pixel size that represent the given character with different shapes and pixel alignments.
43. A computing device as in claim 42 wherein: said differences in the shape and pixel alignment of character at said different scale factors cause the relative horizontal width of the font bitmaps of some characters to change at different scale factors; one or more of said text strings are laid out in a horizontal manner; and the relative horizontal width of spacing between individual characters in a given single line strings relative to the horizontal width of characters is changed when displayed at different scale factors to compensate for such change in relative character width.
44. A computing device as in claim 42 wherein: the font bitmaps used to represent text at each of said different scale factors are anti-aliased bitmaps that assign a color value to a given screen pixel as a graded function of a coverage value representing the percent of the given pixel that is covered by a character shape being represented by the font bitmap; and the shape and pixel alignment of a given character represented by a different font bitmap at each of said different scale factors has been selected to increase the degree of alignment of edges of the character shape with pixel boundaries of the font bitmap used at each such the scale factor.
45. A computing device as in claim 44 wherein: the display screen on which the displays are drawn has pixels comprised of a given arrangement of separately-addressable, differently-colored subpixels; the anti-aliased font bitmaps used to compose the images of text in said displays are subpixel-optimized bitmaps that assign a luminosity value to a subpixel of a screen pixel having said given arrangement of differently-colored subpixels as a function of: a coverage value representing the percent of the subpixel that is covered by a character shape being represented by the font bitmap; in the case of at least some subpixels of said font bitmaps, a color balancing distribution of a percent of the subpixel's coverage value from said coverage value to coverage values of nearby subpixels, including subpixels of different color, made to prevent a color imbalance that would otherwise result from the difference between the subpixel's coverage value and the coverage values of a given set of one or more nearby subpixels of different colors; and in the case of at least some subpixels of said font bitmaps, such color balancing distributions to the subpixel's coverage value from one or more nearby subpixels.
46. A computing device as in claim 45 wherein said color balancing distributions only distribute portions of a subpixel's coverage value that causes color imbalance within the whole pixel of which it is part.
47. A computing device as in claim 44 wherein: said anti-aliased font bitmaps used to represent text at one selected scale factor include small font bitmaps having a small font size of eight pixels per em or less; and the shape and pixel alignment of characters represented in said small font bitmaps have been selected as a function of said small font size to increase the degree of alignment of edges of the character shape with pixel boundaries of the small font bitmap.
48. A computing device as in claim 47 wherein the font bitmaps of said small font size represent a majority of characters of the Roman alphabet within an advance width of 4 pixel columns or less.
49. A computing device as in claim 48 wherein the font bitmaps of said small font size represent a majority of lowercase letters with an x-height greater than 4 pixels.
50. A computing device as in claim 42: including providing a user interface that allows a user to select a succession of different scale factors selected from among a set of at least two different selectable scale factors; and wherein said displaying is performed at each of said successively selected scale factors.
51. A computing device as in claim 42 wherein: the web page's content indicates pixel sizes at which images are to be displayed; and at least two of said selected scale factors causes said display to represent said images at pixel sizes smaller that said indicated sizes.
52. A computing device as in claim 42 wherein one or more of said selected scale factors have different component values in a horizontal and a vertical direction, causing the scaling of images and characters to be different in those different directions.
53. A computing device as in claim 42 wherein one or more of said selected scale factors have the same value in a horizontal and a vertical direction, causing the scaling of images and characters to be the same in those different directions.
54. A computing device as in claim 42 wherein: said display screen has pixels each comprised of a given arrangement of separately-addressable, differently-colored, differently-positioned subpixels; and the bitmap used to represent a given image accessed as part of a web page in said display of a portion of a web page's layout at a given one of said selected scale factors is a subpixel-optimized image that: is scaled relative to the given accessed imaged as a function of said given selected scale factor; and assigns a luminosity to each differently-colored subpixel in the display of such an image as a function of the amount of luminosity of the given subpixel's color in a source image window in the given accessed image that is associated with the given subpixel; where the source image window associated with each given subpixel has a position relative to the accessed image that corresponds to the position of the given subpixel relative to the subpixel-optimized image, such that the position of the source image windows associated with different subpixels of a given pixel vary in correspondence with the different positions of such subpixels relative to said pixel.
55. A computing device as in claim 54 wherein: the bitmaps used to represent a given accessed image in said display at each of two different selected scale factor are two different subpixel-optimized images; and these two different subpixel optimized images assigns luminosity values to subpixels based on source image windows that have different sizes and positions relative to the given accessed image.
56. A computing device as in claim 42 wherein: said displayings at said different scale factors are performed on a client computer; the client computer requests a web page from a remote computer over a computer network; said remote computer performs said accessing of the web page's contents; said remote computer performs said laying out of said web page; said remote computer downloads a representation of said images, strings, and layout positions over said computer network to said client computer; and said client computer performs said displaying at each of said different scale factors by drawing said images, strings, and links at positions and sizes on said screen corresponding to those in said layout performed on said remote computer as scaled as a function of said different scale factors.
57. A computing device as in claim 56 wherein said image composed from a plurality of separate fonts bitmaps that represents a given single line string is composed by said client computer for the displaying performed at each of said different selected scale factors.
58. A computing device as in claim 56 wherein: said remote computer scales the images accessed as part of said web page to produce said scaled bitmaps used to represent said one or more images in the display at a first of said two scale factors, which scaled bitmaps are transmitted to said client computer as part of said download; said client computer performs said displaying for said first scale factor, including representing images in said display with the downloaded image bitmaps that have been scaled for said first scale factors; said client computer has a user interface that allows a user to select to have the layout displayed at a second of said scale factors; and said client computer responds to a selection to display the layout at said second scale factor by displaying the layout of said web page at said second scale factor without a download from said remote client of images scaled for display at said second scale factor.
59. A computing device as in claim 58 wherein said client's displaying of the layout of said web page at a second scale factor without download from said remote client of images scaled for said second scale factor includes: re-scaling said images scaled for display at said first scale factor to a size appropriate for display at said second scale factor; and displaying said re-scaled images at positions in said display produced at said second scale factor corresponding to the layout positions of said images at said second scale factor.
60. A computing device as in claim 59 wherein: the client computer also responds to said selection to display the layout at said second scale factor by uploading to the remote computer an indication that the remote computer should download images scaled for said second scale factor; in response to the uploading of such an indication, the remote computer: scales the images accessed as part of said web page to produce bitmaps scaled for use in the displaying at said second scale factor; and downloads the images scaled for the second scale factor to said client computer; and after the images scaled for the second scale factor have been downloaded, the client computer uses them to replace, in said display of the layout at said second scale factor, the previously displayed bitmaps that had been re-scaled by the client computer.
61. A computing device as in claim 42 further including: providing a user interface that allows a user to drag a pointing device across a selected part of said web page's layout shown on said screen at a first scale factor; and responding to such a drag by performing a zoom-to-fit displaying of said selected part of the web page layout at a second scale factor selected to cause said selected part of said web page layout to have a size that fits the size of said screen.
62. A computing device as in claim 61 wherein: the user interface that allows a user to drag a pointing device across a selected part of the web page layout responds to such a drag that extends across a boundary associated with a given edge of said screen by scrolling, onto said screen, across said given screen edge, portions of the web page layout previously not shown on the screen at said first scale factor, so as to allow said drag to select as said selected part of the web page layout a part that was either too large or not properly positioned to fit entirely within said screen when the drag first started; and said responding to such a drag performs said zoom-to-fit displaying for the part of the web page layout selected by such a drag.
63. A computing device as in claim 42 further including: providing a user interface that allows a user to click a pointing device on a selected part of said web page's layout shown on said screen at a first scale factor; and responding to such a click by performing a displaying of said selected part of the web page layout at a second scale factor that causes said selected part to be shown at a larger size.
64. A computing device as in claim 42 further including: providing a user interface that allows a user to drag a pointing device across a part of said web page's layout shown on said screen at a first of said selected scale factor; and responding to such a drag that extends across a boundary associated with a given edge of said screen by scrolling, onto said screen, across said given screen edge, portions of the web page layout previously not shown on the screen at said first scale factor.
65. A computing device as in claim 42 further including: responding to a press of a pointing device, made at a first layout position relative to a first portion of the web page layout displayed on said screen at a first scale factor, by replacing all or part of the display of said first layout portion with a display of a second, smaller portion of said web page layout, which includes said first position, at a second scale factor that causes said smaller portion to be shown at a larger size; responding to a subsequent releases of said press, made at a selected position relative to the layout shown at said second scale factor, by: acting as if a mouse click had occurred at said selected position relative to said web page layout; and replacing the display of said smaller portion on said screen with a display of the web page layout at said first scale factor.
66. A computing device as in claim 65 wherein said replacement of all or part of the display of said first portion of said web page layout with a display of said smaller portion of said layout during the press of said pointing device replaces all of the display of said first portion of said layout.
67. A computing device as in claim 65 further including displaying a cursor that indicates the position of the pointing device relative to the portion of said web page layout displayed at said second scale factor during said press, to inform a user of the location that would be treated as said selected position if the pointing device were released at its current location.
68. A computing device as in claim 67 wherein: said display screen is a touch screen display; and said cursor is displayed above the point at which the screen is being touched by a pointing device so the cursor can be seen over that pointing device.
69. A computing device as in claim 65 wherein said first layout position, which corresponds to the layout position of said pointing device at the time of said press, has substantially the same screen position in said display at said second scale factor made in response to said press as it did in the display at said first scale factor at the time said press was made.
70. A computing device as in claim 65 further including responding to movement of the pointing device during said press that extends across a boundary associated with a given edge of said screen by scrolling, onto said screen, across said given screen edge, portions of the web page layout previously not shown on the screen at said second scale factor, so as to allow said movement to select as said selected position relative to the layout a position that was not shown on said screen at said second scale when said movement during the press first started.
71. A computing device as in claim 42 further including: performing a different displaying of a given portion of said laid out web page that is similar to one of said displayings performed for said at least two different scale factors, except that said different displaying: is performed for a zoomed-out scale factor; and represents said one or more single line string with a greeked bitmap that indicates the size and location of said string in said layout.
72. A computing device comprising: one or more memory devices for storing information, including programming information; one or more processors for processing information in response to said programming information; one or more input devices for receiving inputs from a user that can be supplied to one or more of said processors; a display screen on which information can be shown to a user under control of said one or more processors; wherein said programming information includes programming for causing said computing device, under control of said one or more processors, to perform the following functions: accessing a web page's content, including one or more images and one or more strings of displayable text; laying out the web page for display at a given virtual screen resolution having a given horizontal and vertical pixel resolution so as to determine a layout position for each of said images and each portion of one of said strings that is to be displayed on a separate line, with said layout positions being determined in a layout space having a virtual pixel width equal to the larger of (a) a minimum width required by the contents of the web page, if such a minimum width exists, or (b) the horizontal resolution of the virtual screen resolution, which ever is larger, said laying out including: treating said images and displayable characters in said displayable text as having respective layout sizes in said layout space; flowing displayable characters of said strings of across line boundaries, based on the layout size of said displayable characters, by breaking portions of strings that cross a line boundary into separate single line strings, each of which fits on a single line in said layout space; and displaying at least a portion of said laid out web page in a display shown on a display screen at a given scale factor, including: displaying both said images and single line character strings at locations in said display corresponding to the positions at which they have been laid out in said layout space, scaled as a function of said given scale factor; representing each of said images in said display by a corresponding bitmap that has a size relative to the image's layout size determined as a function of said given scale factor; representing a given single line strings by an image composed from a plurality of separate font bitmaps representing the characters in said string, where the image of an individual character of said string has a pixel size relative to the character's layout size determined as a function of said given scale factor; performing said layout and displaying of said web page at each of at least two different virtual screen resolutions; wherein: the layout performed at a first, larger, one of said virtual screen resolutions lays out said images and strings at a first, relatively small, set of respective sizes relative to said larger virtual screen resolution; the layout at a second, smaller, one of said virtual screen resolutions lays out said images and strings at a second, relatively large, set of respective sizes relative to said smaller virtual screen resolution; and the given scale factors used, respectively, in the displayings performed at the first and second virtual screen resolutions are such that the images and text appear at smaller pixel sizes in the display of the layout produced using said larger virtual screen resolution and appear at larger pixel sizes in the display of the layout produced using said smaller virtual screen resolution; and the layout at the smaller virtual screen resolution makes text lines shorter relative to the size of fonts shown on those lines.
73. A computing device as in claim 72 wherein: said displayings at said different virtual screen resolutions are performed on a client computer system; the client computer system requests said web page from a remote computer system over a computer network; said remote computer system performs said accessing of the web page; said remote computer system performs said laying out of said web page at each of said virtual screen resolutions; said remote computer system downloads a representation of said images, strings, and layout positions over said computer network to said client computer system for each of said virtual screen resolutions; and said client computer system performs said displaying of said images and strings laid out at each of said virtual screen resolutions by drawing said images, and single line strings at relative positions and sizes on said screen corresponding to those in said layouts performed at each of said virtual screen resolutions on said remote computer system.
74. A computing device as in claim 73 wherein said image composed from a plurality of separate fonts bitmaps that represents a given single line string is composed by said client computer system for the layouts performed at each of said virtual screen resolutions from font bitmaps corresponding to the characters of said strings.
75. A computing device as in claim 72 wherein: at least in the displaying performed for the layout at one of said virtual screen resolutions, one or more of said single line strings are represented at a font size of 10 pixels per em or less and have individual characters represented by anti-aliased font bitmaps that assign a color value to a given screen pixel as a graded function of a coverage value representing the percent of the given pixel that is covered by a character shape being represented by the font bitmap; and the shape and pixel alignment of a character represented by such a font bitmap has been selected to increase the degree of alignment of edges of the character shape with pixel boundaries of the font bitmap as a function of the font size of each such a font bitmap.
76. A computing device as in claim 75 wherein: the display screen on which displays are drawn has pixels comprised of a given arrangement of separately-addressable, differently-colored subpixels; the anti-aliased font bitmaps used to represent said text strings at 10 pixels per em or less are subpixel-optimized bitmaps that assign a luminosity value to each given subpixel of said screen as a function of: a coverage value representing the percent of the given subpixel that is covered by a character shape being represented by the font bitmap; in the case of at least some subpixels of said font bitmaps, a color balancing distribution of a percent of a given subpixel's coverage value from said coverage value to coverage values of nearby subpixels, including subpixels of different color, made to a prevent color imbalance that would otherwise result from the difference between the given subpixel's coverage value and the coverage values of a given set of one or more nearby subpixels of different colors; and in the case of at least some subpixels of said font bitmaps, such color balancing distributions to a given subpixel's coverage value from one or more nearby subpixels.
77. A computing device as in claim 76 wherein said color balancing distributions only distribute portions of a subpixel's coverage value that causes color imbalance within the whole pixel of which it is part.
78. A computing device as in claim 75 wherein: said anti-aliased font bitmaps include small font bitmaps having a small font size of eight pixels per em or less; and the shape and pixel alignment of characters represented in said small font bitmaps have been selected as a function of said small font size to increase the degree of alignment of edges of the character shape with pixel boundaries of the small font bitmap.
79. A computing device as in claim 78 wherein the font bitmaps of said small font size represent a majority of characters of the Roman alphabet within an advance width of 4 pixel columns or less.
80. A computing device as in claim 79 wherein the font bitmaps of said small font size represent a majority of lowercase letters with an x-height greater than 4 pixels.
81. A computing device as in claim 72 wherein: said display screen has pixels each comprised of a given arrangement of separately-addressable, differently-colored, differently-positioned subpixels; and the bitmap used to represent a given image, accessed as part of a web page, in said display of a portion of the layout performed at one of said virtual screen resolutions is a subpixel-optimized image that: is scaled relative to the given accessed imaged as a function of said virtual screen resolution; and assigns a luminosity to each differently-colored subpixel in the display of such an image as a function of the amount of luminosity of the given subpixel's color in a source image window in the given accessed image that is associated with the given subpixel; where the source image window associated with each given subpixel has a position relative to the accessed image that corresponds to the position of the given subpixel relative to the subpixel-optimized image, such that the position of the source image windows associated with different subpixels of a given pixel varies in correspondence with the different positions of such subpixels relative to said given pixel.
82. A computing device as in claim 81 wherein: the bitmaps used to represent a given accessed image in said displays produced using each of said two different virtual screen resolutions are two different subpixel-optimized images; and these two different subpixel optimized images assigns luminosity values to subpixels based on source image windows that have different sizes and positions relative to the given accessed image.
Description
FIELD OF THE INVENTION
The present invention relates to methods, systems, and programming for computer display of images, text, and/or digital content.
BACKGROUND OF THE INVENTION
This patent application has many aspects that relate to the optimization of using computing devices with small or low resolution screens, such as handheld computers, cellphone computers, or computers with wrist or head mounted displays. A good portion of this optimizing has been done to improve the use of such small screen devices for browsing the World Wide Web or similar media, although many of its features can be used when viewing other types of screen content.
Another portion of this optimization has been focused on improving the ability to browse such media through relatively low bandwidth links, such as those that would be found on current wireless links. It should be appreciated, however, that many aspects of the inventions disclosed in this application are not limited to use for these purpose.
For example, some of the features that are designed to make it easier for users to view portions of Web pages at a larger size could be used to make reading the Web on traditional computers easier on the eye or easier to read at greater distances.
At the time this application is being filed there are multiple handheld computers that have approximately 240 by 320 pixel screens that measure approximately four inches diagonally. These include the Compaq iPaq H3650 Pocket PC, the Casio Cassiopeia, and the Hewlett-Packard Jornado 525. Unfortunately such a resolution would be too low to display most current Web pages on. Currently most Web pages can be viewed with 640.times.480 resolution screen (although a few web sites cannot even be properly viewed at this resolution). It would be desirable to be able to view most web pages with such hand held devices.
The manufacturers of liquid crystal displays are now capable of-making screens having substantially higher resolutions than those that are currently on the market. Makers of organic LED displays claim they can achieve even higher resolutions. This means that a four inch diagonal screen of the size currently in the handheld computers listed above could have a resolution of 480 by 640 or higher. Although such screens would provide an acceptable resolution for many web sites, even a higher effective resolution would be desirable to view many web pages.
In addition, in order for such screens to be seen at a relatively high resolution, they would have to be held close to a user's eyes. Although this might be satisfactory for many applications, users might often find it tiring or inconvenient to constantly hold a handheld computer close one eyes.
Such advances in display resolution would also mean that a 320 by 240 pixel screens could be made with a diagonal length of two inches or less. Such a display would be about the size of the display commonly contained in many present-day cellphones, and could also fit onto a wristwatch. Such displays would make many forms of applications currently used on hand held computers available on cellphones, wristwatches or other similarly small format computers. Unfortunately they would have the problem of both having a relatively low resolution that would tend to make it difficult for them to view most web pages, and of being so physically small that for a user to be able to see their resolution they would have to be held very close to the user's eyes. Again, holding such a device close to a user's eyes might be satisfactory at certain times, but over long periods of time, or in certain situations it might be inconvenient.
Currently there are several companies that provide head mounted displays that enable a person to see an image of a computer screen, either as a result of light reflected into the user's eyes through a device that appears somewhat like a pair of glasses, or from a mirror placed above, below, or off to the side of the user's eyes. To make it easy for user to interact with their surroundings while using such a head mounted display, it is often desirable to have such projected computer screens take up a relatively small portion of the user's optic field. Thus, users of such displays might face many of the same problems as would users of small handheld screens.
Some aspects of the invention relates to methods for optimizing the browsing of the Web or application screen output on a computer with relatively limited computational power, memory, or bandwidth to the Internet. For example, currently a standard Web browser of the type used in most desktop and laptop computers requires many megabytes of memory and a relatively large amount of computational power. They also require a connection to the Internet having at least the speed of a high-speed modem to work effectively with a type of Web content contained in many of the World Wide Web's more frequently used Web pages. Unfortunately, many handheld computers either do not have the storage or computational capacity to be able to effectively view many such web pages. Also most commonly available wireless systems have a bandwidth that is substantially below that which would be desirable for viewing many Web pages. As a result of these factors, one of the focus of some of the innovations contained in this application relate to methods for enabling computers with limited storage, commutation, or bandwidth to better browse the World Wide Web or similar media.
SUMMARY OF THE INVENTION
Summary of the Invention Re Innovation Group A
According to a first aspect of the present invention a method of producing a sub-pixel resolution representation of a shape suitable for display on a sub-pixel addressed screen, that is a screen having pixels comprised of separately-addressable, differently-colored sub-pixels, is provided. The method comprises producing a scaled subpixel optimized image of a bitmap image by associating a luminosity value with each sub-pixel of the scaled image as a function of the percent of the area of the sub-pixel's area in the image that is covered by the shape and a color balancing function designed to distribute a portion of a sub-pixel's luminosity value that otherwise would cause color imbalance to nearby sub-pixels of different colors. The percent of a subpixel's luminosity values that is so distributed is a function of the percent of the subpixel's luminosity value which causes color imbalance.
In some embodiments of this first aspect of the invention the shape of which the subpixel optimized image is made is a font.
In some embodiments of the first aspect of the invention the sub-pixel resolution bitmap image is created to represent an image of a shape which can be shown with a selected foreground color and a selected background color. The luminosity value calculated for an individual sub-pixel is an alpha value. This alpha value determines the relative extent to which its associated sub-pixel in an image having a foreground and a background color will have the component color value of the foreground color and/or of the background color that corresponds to the sub-pixel's color.
Thus, in such an embodiment, each of the three alpha values associated with a given pixel's three subpixels represents the extent to which the sub-pixel associated with that alpha value should derive its luminosity from a foreground color or a background color. The luminosity of a sub-pixel of a given color can be determined by the luminosity of the subpixel's color in the foreground color times the subpixel's alpha value plus the value of that subpixel's color in the background color times one minus the subpixel's alpha value.
According to a second aspect of the present invention a method of producing a sub-pixel resolution image suitable for display in an image area of a sub-pixel addressed screen where the image is of a shape defined at a resolution higher than the resolution of sub-pixels with the image area, is provided. The method determines a coverage value for each sub-pixel associated with the given pixel in the image area, which sub-pixel coverage value corresponds to the percentage of the sub-pixel which is covered by the shape. The method determines a pixel coverage value for the given pixel that is a function of the coverage values calculated for one or more of the sub-pixels with the given pixel. The method adds to a luminosity value calculated for each sub-pixel of the given pixel a value corresponding to the given pixel's coverage value. For each sub-pixel in the given pixel the method (a) determines a differential coverage value for each sub-pixel corresponding to the difference between the sub-pixel's coverage value and the given pixel's coverage value and (b) adds to the luminosity value calculated for each given sub-pixel and one or more nearby sub-pixels a value corresponding to a portion of the given sub-pixel's differential coverage value, where at least some of the nearby sub-pixels are located outside of the given sub-pixel's pixel.
Traditional techniques for producing sub-pixel optimized images of characters and other shapes can be used to determine a coverage value for a sub-pixel as a function of the extent to which the area represented by the sub-pixel in the character image is covered by the character's shape.
In the prior art systems color balance distributions have been performed with a center-weighted filter function, which, for example, distributes all of the luminosity associated with the coverage associated with each sub-pixel over an area of five sub-pixels centered around the given sub-pixel itself. The given sub-pixel gets the greatest portion of this luminosity, the two sub-pixels on either side of it receive a lesser amount, and the two sub-pixels on either side of them receive an even lesser amount. Such a distribution of all luminosity values does a good job of achieving color balance, but it produces a relatively large blurring of the spatial resolution achieved by the sub-pixel resolution.
The advantage of this second aspect of the invention is that it reduces the amount of luminosity values distributed for color balance purposes to approximately only that amount which is necessary to achieve color balance, and, thus, increases the clarity of sub pixel optimized images.
In some embodiments of this second aspect of the invention the shape of which the sub-pixel optimized image is made is a font.
In some embodiments of the second aspect of the invention the pixel coverage values used can be maximum, minimum, average, or some other function of the value of one or more of a pixel's sub-pixels. In some embodiments the pixel coverage value used in the non-linear scheme is the minimum. If the luminosity values that are added to a sub-pixel by the color balance filter would add up to more than the maximum luminosity of that sub-pixel, the sub-pixel's luminosity will be set to its maximum value.
In some embodiments of the second aspect of the invention the addition to the luminosity value calculated for each given sub-pixel and one or more nearby sub-pixels includes adding a larger value to the given sub-pixel than to the nearby sub-pixels.
In some embodiments of the second aspect of the invention the addition to the luminosity value calculated for each given sub-pixel and one or more nearby sub-pixels includes using a distribution filter that determines the size of the portion of the given sub-pixel's differential coverage value for which a corresponding value is added to the luminosity value calculated for the given sub-pixel and each of the nearby sub-pixels.
In some embodiments different distribution filters are used for sub-pixels of different colors. This is done because sub-pixels of different colors make different degrees of visual impression upon the eye. The human eye sees a green sub-pixel much better than a red pixel, and a red pixel much better than a blue pixel. As a result, the use of different color balance filters is appropriate to achieve perceived color balance between such different colors.
In some embodiments some of the distribution filters are asymmetrical, meaning that they distribute more to the luminosity values of nearby sub-pixels on one side of the given sub-pixel than to those of nearby sub-pixels on the other side of the given sub-pixel. Although a different filter could be used for each different color in some embodiments, in an RGB display reasonable results can be obtained by using the same symmetrical center-weighted distribution function for distributing portions of the coverage value of red and green pixels, and an asymmetrical distribution filter for blue that tends to distribute most of the color intensity not distributed to its blue sub-pixel to sub-pixels to the blue pixel's left.
In some embodiments of the second aspect of the invention the sub-pixel resolution bitmap image is created to represent an image of a shape which can be shown with a selected foreground color and a selected background color. The luminosity value calculated for an individual sub-pixel is an alpha value. This alpha value determines the relative extent to which its associated sub-pixel in an image having a foreground and a background color will have the component color value of the foreground color and/or of the background color that corresponds to the sub-pixel's color.
Some embodiments of the second aspect of the invention calculate the luminosity values for each sub-pixel of a given pixel which values are used to define a calculated color value which can be any one of a first number of values. Each calculated color value is mapped into a corresponding one of a second number of palette color values, where the second number is smaller than the first number and individual pixels in the image are represented by a palette color value into which its calculated color value has been mapped.
In some such embodiments a plurality of the palette color values are selected as a function of the frequency with which the given calculated color values occur in a plurality of the different images created by the method. A relatively large percentage of the combinations of colors which define the three-colored alpha values calculated for pixels actually used in sub-pixel optimized fonts fall into a relatively small portion of the potential color space. This has allowed the definition of a palette of colors representing most such sub-pixel alpha values that has a relatively limited number of entries. This decreases the number of bits required to define each pixel in an alpha value representation of a sub-pixel optimized font. This, in turn, substantially decreases the amount of bandwidth needed to download sub-pixel optimized bitmaps for use by those systems of the present invention in which such font bitmaps are downloaded.
In some embodiments non-gray calculated colors that differ in certain ways from any palette color are mapped into a substantially gray palette color. A plurality of gray scale values has been included in the color palette. The system maps into the closest grayscale value any three-colored alpha values calculated for pixels when creating sub-pixel optimized images which do not come sufficiently close in color space to any of the non-grayscale values in the palette. In these relatively few cases, the effect is much as if whole-pixel anti-aliasing had been used. In cases where bandwidth and/or memory is tight, this occasional replacement of sub-pixel optimized resolution with traditional anti-aliasing can be a desirable tradeoff.
Some aspects of the present invention relate to the method of displaying fonts created by the above process in the display of digital content.
Some aspects of the present invention relate to the method of downloading fonts created by the above process in the display of text.
All of the above innovations relate not only to a computerized method, but also to a computerized system including one or more computers and possibly the network interconnecting them configured or programmed to execute such methods, and to computer programming recorded in machine readable memory which can be used on one or more computers to execute such methods.
Other aspects of the invention not summarized above are shown in the following "Detailed Description Of Some Preferred Embodiments."
Because of the rush with which this application has been filed, so as to enable the assignee of its inventions to more rapidly attempt to market its innovating, the claims are represented below in the form of a claim outline which has not been fully completed.
In each this outline an invention is described by a heading in all capitalized text. For some such inventions a more detailed and/or accurate description is provided by text corresponding to possible claim language. This claim language text is not capitalized. In the claim outline, indentation is used to indicate claim dependence, with claims depending from the claim under which they are indented. Thus, for example, if a given claim recites "a method as in claim X" the claim the given claim depends from is the nearest claim above the given claim in the outline that is outdented (i.e., one heading level to the left) relative to the given claim.
Summary of the Invention Re Innovation Group B
According to a first aspect of the present invention method of displaying digital content including text and/or images is provided. The digital content is represented by a mark-up language including tags which identify images contained in the content. The display is performed on a subpixel addressable screen having pixels comprised of separately addressable differently colored sub pixels. The method comprises the following steps. The digital content is accessed, including its images, from a device in which it is stored or from programming which generates it dynamically; and displaying on the screen one or more of such accessed images at a first pixel scale in which the luminosity of each differently colored sub-pixel of a given pixel is derived from a different area of the same image at a second, higher resolution, pixel scale.
In some embodiments of this first aspect of the invention the accessing of such digital content is performed over a computer network.
In some such embodiments the accessing of such digital content is performed over the Internet.
In some embodiments of this aspect of the invention the digital content includes web pages.
In some embodiments the screen is part of a browser computer capable of browsing digital content. The browser computer includes browser programming which responds to user input requesting a given portion of digital content by requesting that content from a another entity, either a storage device, another computer, or other programming running on the browser computer. In response to the request from the browser programming, the digital content is read from memory or dynamically generated at a resolution higher than the first scale. After the image has been read from memory or dynamically generated in response to the user request, the image is scaled down to be first scale and the luminosities of differently colored sub-pixels are derived from a different area of the same image at the second, higher resolution, scale.
In some such dynamic scaling embodiments the image is read from memory or dynamically generated on a server computer system. The scaling down of an image to the first scale is performed by the server computer system and
the scaled down image is downloaded to the browser, which then displays the scaled down image.
In some dynamic scaling embodiments the browser computer communicates the user request over a computer network to a proxy server. The proxy server computer communicates the user request over an internetwork to a server computer system which stores or dynamically generates an image to be read. The server computer system sends one of the images to the proxy server. The scaling down of the image to the first scale is performed by the proxy server. The proxy server downloads the scaled down image to the browser, which then displays the scaled down image.
In some dynamic scaling embodiments the scaling down of an image to the first scale is performed by the browser computer, which then displays the scaled down image.
Some dynamic scaling embodiments allow a user of the browser computer to select one from a plurality of scale factors. The browser computer communicates the selected scale factor to the process which scales down an image read from storage and causes the scaling process to scale down and subpixel optimize the image by a horizontal and vertical scale factor which varies as a function of the selected scale factor.
In some such embodiments in which the user can select the scaling factor the serving computer is a remote computer relative to the browser and the scaling process is on the remote computer.
In some embodiments in which the user can select the scaling factor the allowing of the user to select from one of a plurality of scale factors can be performed after a given image has been read from storage or dynamically generated. It is then scaled down to the first scale and subpixel optimized, and displayed, so as to cause the given image to be scaled, subpixel optimized, and displayed at a second, different scale factor.
In some embodiments of the first aspect of the invention the luminosity of each differently colored sub-pixel of a given pixel is determined by defining for the sub-pixel a plurality of coverage lines which fit within a window in a higher resolution representation of the image, which window is different for each sub-pixel of a given pixel. The length of each coverage line which corresponds to given pixel in the higher resolution image is calculated. The luminosity of the sub-pixel is determined as a function of the length of each coverage line which corresponds to each higher resolution pixel and the respective luminosity in the sub-pixel's color of that higher resolution image pixel.
By a "continuous coverage function" we mean a function which determines the extent to which the area of an original image associated with a given subpixel is covered by a given color or shape is determined not as the function of a sampling function which tests whether or not there is coverage at each of a plurality of discrete locations, but rather as a result of a mathematical function which determines boundary locations at which the given coverage starts and stops in one or more dimensions, and calculates coverage as a function of lengths or areas between one or more such boundaries or between such boundaries and the boundary of the area in the image associated with a given subpixel.
Commonly when creating sub pixel optimized images of outline fonts, the window in the character image associated with each subpixel for purposes of initially calculating such a coverage value (i.e., before color balance filtering) has substantially the same area and location relative to the character's image as the given sub-pixel itself, and the coverage boundaries used are commonly the boundaries defined by the font outline and the boundaries of the sub pixel's associated area in the image.
On the other hand, commonly when creating sub-pixel optimized images of color bitmaps, the source image window associated with each subpixel of a given color often corresponds to an area of the source image approximately equal to the size of an entire pixel centered around a location in the original image corresponding to the given subpixel's location in the subpixel optimized representation of the original, or source, image. Commonly the coverage calculated for such a subpixel corresponds to the portion of the area associated with the subpixel that is covered by one or more source image pixels, each having a color component value corresponding to that of the given sub pixel. The boundaries used in determining such coverage include the boundaries of source image pixels as well as the boundaries of the source image window associated with the given sub pixel.
Such continuous coverage functions can be determined by measuring the portions of the length of one or more scanning lines in each of one or more dimensions within a subpixel's associated source image window which are covered by different source image pixels. Continuous coverage functions can also be determined at a greater computational cost by calculating the area of relevant coverage within a given subpixel's corresponding source image window which is covered by different source image pixels.
Some such coverage function embodiments of the invention allow a user of the browser computer to select one from a plurality of scale factors. The selected scale factor is communicated to the process which scales down an image and the scaling process scales down the image by a horizontal and vertical scale factor which varies as a function of the selected scale factor.
Some such embodiments further allow a user of the browser computer to select one from a plurality of scale factors which include one or more scale factors which are non-integer ratios of the screen size. They communicate the selected scale factor to the process which scales down an image and they cause the scaling process to scale down the image by a horizontal and vertical scale factor which varies as a function of the selected scale factor.
One of the benefits of such continuous coverage functions is that they tend to provide relatively higher resolution coverage calculations for a given level of computation than many sampling algorithms used to calculate coverage values, and thus they are better than such sampling algorithms at calculating luminosity values for individual sub pixels across a range of different scaling factors.
Some embodiments of the first aspect of the invention allow a user to select from a plurality of trade-offs between color accuracy and positional accuracy in the display of the scaled images. They communicate the selected color/positional accuracy selection to the process which scales down an image and cause the scaling process to scale down the image by a method which varies the portion of an image which is used to determine the luminosity of individual subpixels as a function of the user selected color/positional accuracy selection.
In some such embodiments the image is a color image and one of the user selections is between a more-grayscale selection and one is a less-grayscale selection. When the more-grayscale selection is made, the scaled image is calculated from a set of pixel color values in which the values of individual pixels' different color components have been adjusted toward the average of those color component values for the each such individual pixel. When the less-grayscale selection is made the scaled image is calculated from a set of pixel color values in which the values of individual pixels different color components have been less adjusted toward the average of those color component values for the each such individual pixel. The individual subpixel luminosity values in the scaled image produced in response to the more-grayscale selection are based more on the average whole pixel luminosities in the portion of the image corresponding to the subpixel's own area than in scaled images produced in response to the less-grayscale selection, in which the luminosity value of individual subpixels are based more on the luminosity of the subpixel's own color value in an pixels in a larger area of the image.
According to a second aspect of the present invention a method of producing a sub-pixel resolution representation of an image suitable for display on a sub-pixel addressed screen having pixels comprised of separately addressable differently colored sub-pixels is provided. The method determines the luminosity of each subpixel in a given pixel of the subpixel resolution representation by defining for the sub-pixel a plurality of coverage lines which fit within a window in a higher resolution representation of the image, which window is different for each sub-pixel of a given pixel. It calculates the length of each coverage line which corresponds to given pixel in the higher resolution image, and it determines the luminosity of the sub-pixel as a function of the length of each coverage line which corresponds to each higher resolution pixel and the respective luminosity in the sub-pixel's color of that higher resolution image pixel.
In some such embodiments the coverage lines associated with a given sub-pixel include at least two coverage lines which run in non-parallel directions on the sub-pixel's window.
This aspect of the invention relates to a "line coverage" type of the continuous coverage functions discussed above.
According to a third aspect of the present invention a method of producing a sub-pixel resolution representation of an image suitable for display on a sub-pixel addressed screen having pixels comprised of separately addressable differently colored sub-pixels is provided. The method determines the luminosity of each sub pixel in a given pixel of the subpixel resolution representation by defining for the sub-pixel a window in a higher resolution representation of the image, which window is different for each sub-pixel of a given pixel, calculating the area of each pixel in the higher resolution image which totally or partially fits within the sub-pixel's window, and determining the luminosity of the sub-pixel as a function of the included area calculated for each such higher resolution image pixel and the respective luminosity in the sub-pixel's color of that high resolution image pixel. This aspect of the invention relates to an "area coverage" type of the continuous coverage functions which are discussed above.
In some embodiments of such an area coverage method the window associated with each sub-pixel in the higher resolution image has a size equal to the portion of the higher resolution image corresponding to the sub-pixel's pixel and a center at the portion of the higher resolution image that corresponds to the center of the sub-pixel.
According to a fourth aspect of the present invention a method of producing a sub-pixel resolution representation of a source image suitable for display on a sub-pixel addressed screen having pixels comprised of separately addressable differently colored sub-pixels is provided. This method produces a scaled sub-pixel optimized image of a bitmap image by associating a luminosity value with each subpixel of the scaled image. The luminosity values are calculated as a function of the whole pixel luminosity of the one or more pixels in the source image which cover a source image window corresponding to the area of the subpixel, the percent of that window covered by each such source image pixels, and a color balancing function that distributes subpixel luminosity values to reduce color imbalance.
In some embodiments of this fourth aspect of the invention the source image is a gray scale image. In other embodiments the source image is a color image.
In some embodiments of this fourth aspect of the invention the extent to which a given luminosity value associated with a given subpixel's source image window is distributed to other subpixels is a function of extent to which the luminosity value causes a color imbalance.
All of the above innovations relate not only to a computerized method, but also to a computerized system including one or more computers and possibly the network interconnecting them configured or programmed to execute such methods, and to computer programming recorded in machine readable memory which can be used on one or more computers to execute such methods.
Other aspects of the invention not summarized above are shown in the following "Detailed Description Of Some Preferred Embodiments."
All of the above innovations relate not only to a computerized method, but also to a computerized system including one or more computers and possibly the network interconnecting them configured or programmed to execute such methods, and to computer programming recorded in machine readable memory which can be used on one or more computers to execute such methods.
Other aspects of the invention not summarized above are shown in the following "Detailed Description Of Some Preferred Embodiments."
Summary of the Invention Re Innovation Group C
According to a first aspect of the present invention a method of displaying, on a subpixel addressed screen having pixels comprised of separately-addressable, differently-colored subpixels, digital content, including text and images is provided. The method comprises displaying on the screen, a scaled-down subpixel-optimized representation of one or more of the images in which the luminosity of each differently colored subpixel of a given pixel is derived from a different area of the same image at a second, higher resolution, pixel scale. Also displayed on the screen are scaled-down subpixel-optimized representations of each of one or more character fonts of the text in which the luminosity of each differently colored subpixel of a given pixel of the scaled-down image of a given character shape is derived from a different area of a higher resolution image of that character.
In some embodiments of this first aspect of the invention the digital content is represented by tagged text written in a mark-up language that includes image tags that identify image files. The text displayed on the screen includes strings of characters from the tagged text, and the images displayed on the screen are images represented by image files identified by the image tags.
In some embodiments the digital content is a web page and the scaled-down and subpixel-optimized images and text allow a user to see the web page on a subpixel addressed screen having a given whole-pixel resolution as if viewing the web page on a screen with a higher resolution.
In some embodiments of the first aspect of the invention a method is provided wherein the digital content is screen output generated by a software application. The scaled-down and subpixel-optimized images and text allow a user to see the screen output on a subpixel addressed screen having a given whole-pixel resolution as if viewing the web page on a screen with a higher resolution.
In some embodiments of the first aspect of the invention a method is provided wherein the screen is part of a browser computer capable of browsing digital content. The browser computer includes browser programming which responds to user input requesting a given portion of digital content by requesting that content from another entity, either a storage device, another computer, or other programming running on the browser computer. In response to the request from the browser programming, the digital content is read from memory or dynamically generated at a resolution higher than the first scale. The scaled-down subpixel-optimized representations of the images are calculated after the digital content's images have been read from memory or dynamically generated in response to the user request. The size of the scaled-down subpixel-optimized representations of character fonts is determined as a function of the size identified for such fonts in the digital content after that digital content has been read from memory or dynamically generated in response to the user request.
In some embodiments a browser computer communicates a user request for a given portion of digital content over a computer network to a server computer system. The server computer system reads the requested digital content from memory or dynamically generates it. Calculation of the scaled-down and subpixel-optimized image representations is performed by the server computer system, and the scaled-down subpixel-optimized image representations and the digital content's text are downloaded over the network to the browser computer, which then displays the scaled down images and text. The server computer system which stores an image can include a multi-computer web server. If the system on which the images are stored is a peer-to-peer system it is considered a server for purposes of this claim.
In some embodiments a browser computer communicates a user request for a given portion of digital content over a computer network to a proxy server and the proxy server communicates the user request over the network to a remote computer system. The server computer system receiving the request reads the requested digital content from memory of dynamically generates it and sends the image to the proxy server over the computer network. The calculation of the scaled-down and subpixel-optimized image representations is performed by the proxy server and the scaled-down subpixel-optimized image representations and the digital content's text are downloaded over the network to the browser computer, which then displays the scaled down images and text.
In some embodiments the calculation of the scaled-down and subpixel-optimized image representations is performed by the proxy server, which then displays the scaled down image.
In some embodiments a method is provided which further includes enabling a user to select a desired display scale from a plurality of possible reduced-size scales each having a lower resolution than the resolution at which the image is read from memory or dynamically generated. The scale factor used in the calculation of the scaled-down and subpixel-optimized representations of images and in the scaling down of character font sizes is determined by this user selected display scale. This selection could be by allowing a user to select from a set or continuum of reduced-size scales or by allowing the user to select to zoom to a certain sized line or area.
According to a second aspect of the present invention a method of displaying, on a subpixel addressed screen having pixels comprised of separately-addressable, differently-colored subpixels, digital content that includes both text and multicolor images is provided. The method displays, on the screen, subpixel-optimized representations of both the digital content's multicolor images and text in which the luminance of individual subpixels of a pixel conveys information from different portions of the image or text character represented by that pixel. Different algorithms are used to produce the subpixel-optimized representations of multicolor images and of the shapes of text characters.
The image algorithm used to produce subpixel-optimized representations of a multicolored image and the text algorithm used to produce subpixel-optimized representations of text characters both determine the luminosity of each differently colored subpixel of a given pixel based on the luminosity, in a corresponding different window of a source representation, of the image or character shape to be represented. The image algorithm determines a given subpixel's luminosity based more on luminosity outside of the portion of the source representation that corresponds in size to the given subpixel than does the text algorithm. The image algorithm determines a given subpixel's luminosity based more exclusively on the amount of the luminosity of the given subpixels color found in the given subpixel's corresponding window in the source representation than does the text algorithm, whose determination of a given subpixel's luminosity value is less influenced by the given subpixel's color.
In the above method, when dealing with the text algorithm the luminosity corresponds to, and is mea