WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method and apparatus for reducing storage requirements for display data    
United States Patent5638498   
Link to this pagehttp://www.wikipatents.com/5638498.html
Inventor(s)Tyler; William B. (Carmel, CA); Foskett; Nicholas J. (Mountain View, CA); Kong; Soon Y. (Cupertino, CA); Fall; Richard N. (Palo Alto, CA); Gentile; Ronald S. (Atherton, CA)
AbstractA method and apparatus for reducing storage requirements for display data on a computer system. Data objects to be displayed are organized into display lists and each data object includes an object type, such as text, graphic, and image. The data objects are rasterized into an uncompressed band buffer and divided into non-intersecting bitmap regions each identified with one or more object types. Each non-empty region is assigned a compression algorithm dependent upon the type of the region and specified compression constraints. The regions are combined with each other into larger regions if appropriate, and each region is compressed using its assigned compression algorithm into a compressed band buffer, thus reducing the required storage space for the data objects. The compressed data is decompressed in scan line order with a selected decompression algorithm corresponding to the assigned compression algorithms to produce uncompressed output data. The uncompressed output data is supplied to an output display device for display.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5638498
Method and apparatus for reducing storage requirements for display data - US Patent 5638498 Drawing
Method and apparatus for reducing storage requirements for display data
Inventor     Tyler; William B. (Carmel, CA); Foskett; Nicholas J. (Mountain View, CA); Kong; Soon Y. (Cupertino, CA); Fall; Richard N. (Palo Alto, CA); Gentile; Ronald S. (Atherton, CA)
Owner/Assignee     Adobe Systems Incorporated (San Jose, CA)
Patent assignment
All assignments
Publication Date     June 10, 1997
Application Number     08/484,344
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     June 7, 1995
US Classification     358/1.18 358/1.16
Int'l Classification     G06K 015/00
Examiner     Evans; Arthur G.
Assistant Examiner    
Attorney/Law Firm     Fish & Richardson P.C.
Address
Parent Case     CROSS REFERENCE TO RELATED APPLICATIONS This application is a continuation-in-part of co-pending parent patent application 07/974,204, filed Nov. 10, 1992 on behalf of Ronald S. Gentile, entitled, "Method and Apparatus for Processing Data for a Visual-Output Device with Reduced Buffer Memory Requirements," assigned to the assignee of this present application, and which is incorporated by reference herein.
Priority Data    
USPTO Field of Search     395/114 395/112 395/115 395/116 395/117 395/509 395/520 395/521 395/523 382/232 382/233 382/235 382/236 358/450 358/444 358/540 358/426 358/261.3 358/261.4 358/432 358/433
Patent Tags     reducing storage requirements display data
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5377312
Kobayashi
358/1.17
Dec,1994

[0 after 0 votes]
5374943
Lehmann

Dec,1994

[0 after 0 votes]
5355441
Kawai
358/1.16
Oct,1994

[0 after 0 votes]
5354135
Sakagami
400/124.01
Oct,1994

[0 after 0 votes]
5347368
Mochizuki
358/296
Sep,1994

[0 after 0 votes]
5299292
Kadowaki
358/1.8
Mar,1994

[0 after 0 votes]
5295233
Ota

Mar,1994

[0 after 0 votes]
5276780
Sugiura
358/1.17
Jan,1994

[0 after 0 votes]
5272768
Bauman
358/1.11
Dec,1993

[0 after 0 votes]
5270728
Lund
347/5
Dec,1993

[0 after 0 votes]
5241397
Yamada
358/296
Aug,1993

[0 after 0 votes]
5208676
Inui
358/296
May,1993

[0 after 0 votes]
5207517
Ito
358/1.8
May,1993

[0 after 0 votes]
5199803
Shimizu
358/1.8
Apr,1993

[0 after 0 votes]
5151949
Miyata
382/176
Sep,1992

[0 after 0 votes]
5150454
Wood
358/1.15
Sep,1992

[0 after 0 votes]
5034804
Sasaki
348/231.4
Jul,1991

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A data processing system with selective object compression and decompression for processing data objects, comprising:

a rasterizer that converts data objects into bitmap objects;

means for dividing said bitmapped objects into non-intersecting regions, each of said regions having a type;

a compressor that compresses said regions with selected compression mechanisms chosen from a set of compression mechanisms to produce compressed bitmap object regions, where said type of said bitmap object region is used to select a compression mechanism for a particular bitmap object region, said compressor storing said compressed bitmap object regions in a memory; and

a decompressor that selectively decompresses said compressed bitmap object regions with selected decompression mechanisms chosen from a set of decompression mechanisms to produce uncompressed bitmap object regions, where the selection of a decompression mechanism for a particular compressed bitmap object region is dependent upon said selected compression mechanism for said particular compressed bitmap object region.

2. A data processing system as recited in claim 1 wherein said compressor and decompressor are implemented in an output device.

3. A data processing system as recited in claim 1 further including an output device for displaying uncompressed bitmapped objects received from said decompressor, said output device is one of the group consisting of a printer device and a screen display.

4. A data processing system as recited in claim 3 wherein said data objects are organized into at least one page where each said at least one page is organized into a plurality of bands, said bands having a display order on said page, wherein data objects on said page are displayed by said output device in said display order and where each of said non-overlapping regions associated with a data object spans only a single band.

5. A data processing system as recited in claim 4 wherein said data objects are stored in display lists, wherein a display list is provided for each band of said page.

6. A digital output processing system as recited in claim 1 wherein said types include text, graphics, and image types.

7. A data processing system as recited in claim 1 wherein each of said regions has a type, and wherein a region type is derived from all the types of the bitmap objects intersected by said region.

8. A data processing apparatus as recited in claim 1 wherein a region type for a particular region may be different from the type of bitmap object from which said region was derived.

9. A data processing system as recited in claim 4 wherein said decompressor further includes means for determining where an output scan line intersects compressed regions of a band, said decompressor decompressing said compressed regions where said scan line intersects said regions.

10. A data processing system as recited in claim 9 wherein said decompressor further includes means for outputting background data to said output device when where said scan line does not intersect a region including one or more bitmap objects.

11. A method for providing a digital output with selective object compression and decompression comprising:

receiving a page of output data including one or more objects, each object including type and location information respectively characterizing the type of the data from a predetermined plurality of data types and a location of said object on said page;

storing said type and location information for said objects in a display list indexed according to said location information;

compressing each of said objects with a selected compression algorithm chosen from a set of compression algorithms to produce compressed object data of said type, where said type information is used to select a compression algorithm for said compressed object data;

storing said compressed object data in a memory coupled to an output device;

when said page of data is to be displayed, identifying a first object to be displayed from said display list;

decompressing said compressed object data with a selected decompression algorithm chosen from a set of decompression algorithms to produce uncompressed output data, where said type information is used to select a decompression algorithm;

supplying output data associated with the object to be displayed to said output device;

identifying a next object to be displayed from said data stored in said display list; and

repeating the steps of decompressing the compressed object data, supplying output data and identifying a next object until all said objects in said page of output data have been supplied to said output device.

12. A method as recited in claim 11 further comprising the steps of:

dividing said page of output data into bands, and storing type and location information for each object within a band in an associated band display list; and

rasterizing one or more objects of said band display list as bitmap objects of an uncompressed band and storing the resultant uncompressed band objects in an uncompressed band buffer, wherein each bitmap object has a type corresponding to said type of said object from which was rasterized.

13. A method as recited in claim 12 wherein said step of compressing said object data includes compressing said uncompressed band objects into compressed band objects and said step of storing said compressed object data includes storing said compressed band objects in a compressed band buffer of a memory.

14. A method as recited in claim 13 wherein said step of compressing said output data includes selecting a set of compression algorithms which meet compression constraints.

15. A method as recited in claim 13 wherein said steps of decompressing said compressed object data and supplying said data to said output device includes decompressing said compressed band objects and supplying decompressed band objects to said output device.

16. A method as recited in claim 15 wherein said step of compressing said uncompressed band objects includes checking when said uncompressed band objects fit in said compressed band buffer when compressed, and, when said uncompressed band objects do not fit, decompressing and recompressing compressed band objects that were previously compressed.

17. A method as recited in claim 12 further comprising a step of combining said objects into a single object when a cost of combining said objects is under a predetermined threshold, said cost determined by the separation between the objects.

18. A method as recited in claim 17 wherein said cost of combining is determined by the amount of background data that is included in a combined resulting object compared to the amount of data included in said objects that were to be combined.

19. A method as recited in claim 17 further comprising a step of forcing combinations of objects to free memory storage in said compressed band buffer.

20. A method as recited in claim 12 wherein if during the step of compressing said uncompressed band objects a number of objects compressed for a given band exceeds a predetermined number, then multiple objects are combined into a single object prior to compression to reduce the number of objects actually compressed for a given band.

21. A method for compressing and decompressing a page of bitmapped data, organized into a plurality of bands to be displayed by an output display device, comprising;

(a) receiving one of the bands that includes one or more regions, each region having at least one type;

(b) using a type of each region to select a compression method for each of said regions from a plurality of available compression methods;

(c) compressing each of said regions of said band according to its selected compression methods to create a compressed band;

(d) storing said compressed band in a compressed band buffer; and

(e) decompressing said compressed band in said compressed band buffer and sending said decompressed band to said output display device for display.

22. A method as recited in claim 21 wherein said step of receiving a band of data includes storing said band of data in an uncompressed band buffer, said uncompressed band buffer being able to store at least one band of data.

23. A method as recited in claim 22 where said regions include one or more input objects having type and location information, and said receiving step further includes organizing and storing said input objects into a plurality of display lists, where each display list corresponds to one of said bands of said page and at least one display list includes said input objects, and rasterizing said objects of one of said display lists into said uncompressed band buffer.

24. A method as recited in claim 23 wherein said steps of rasterizing said objects of a display list and compressing said rasterized objects occurs before all of said input objects are included in said display lists, wherein said rasterizing and compressing step is accomplished to free display list storage when display list storage is not available.

25. A method as recited in claim 23 further comprising a step of dividing said regions into subregions consisting of non-intersecting rectangles each of which subregions includes one or more objects of the same type.

26. A method as recited in claim 21 further comprising the step of repeating the steps of receiving a band of data, selecting a compression method, compression said regions and storing said compressed band for each band in said page, and repeating the step of decompressing said compressed band in display order for each band in said page to be displayed.

27. A method as recited in claim 25 wherein said subregions are characterized as empty regions if they do not contain an object or non-empty if they contain one or more objects, and where adjacent non-empty subregions are combined into a single subregion before compressing said subregions if all the objects contained in the adjacent subregions are of the same type.

28. A method as recited in claim 22 wherein a compression method is selected only for said non-empty subregions and where only said non-empty subregions are compressed in said compressing step.

29. A method as recited in claim 21 wherein said step of selecting a compression method includes using pre-defined constraints to select said compression method, said pre-defined constraints including an estimated compression ratio achieved when compressing said region and the visual quality of said region when displayed after said region is compressed.

30. A method as recited in claim 21 wherein said step of storing said compressed band in said compressed band buffer includes checking when said compressed band fits in said compressed band buffer and recompressing previously compressed bands, when necessary, to fit said compressed band in said compressed band buffer.

31. A method as recited in claim 30 wherein said regions of said band are compressed at a compression level, and wherein said step of storing said compressed band in said compressed band buffer includes selecting a new compression level, and decompressing and recompressing all previously compressed bands at a new compression level before compressing said compressed band at said new compression level.

32. A method as recited in claim 21 wherein said step of sending said decompressed band to said output display includes outputting background display data for portions of said page not covered by said compressed regions.

33. A method as recited in claim 32 wherein said step of sending said decompressed bands to said output display includes determining where an output scan line intersects said regions of a band such that said compressed regions are decompressed when said scan line intersects said regions.

34. A system for compressing and decompressing data comprising:

a memory;

means for storing received data including a plurality of display lists, said received data including one or more objects each having a type, said objects organized into at least one page, said page organized into a plurality of bands, wherein a display list is provided for each band of said page;

means for identifying a band of data for processing including means for storing objects from a display list associated with said identified band in an uncompressed band buffer included in said memory;

means for partitioning said objects into non-overlapping regions and storing said regions in a region buffer included in said memory, each of said regions that include objects characterized by a type selected from one of the types of one of the objects that said region covers;

means for compressing said regions using said type of each of said regions to select a compression method from a plurality of compression method from a plurality of compression methods and storing said compressed regions in a compressed band buffer included in said memory;

means for decompressing said regions using said type of each of said regions to select a decompression method from a plurality of decompression methods and storing said decompressed regions in said compressed band buffer; and

an output display device for receiving decompressed data from said means for decompressing and displaying said decompressed data.

35. A system as recited in claim 34 further comprising means for rasterizing at least some of said objects from said display list into said uncompressed band buffer.

36. A system as recited in claim 34 wherein said means for partitioning said objects includes storing coordinates of objects in arrays in said memory and assigning regions to areas of said band between said coordinates.

37. A system as recited in claim 34 wherein said regions are characterized as either empty regions covering no objects, or as non-empty regions covering objects, said system further including means for combining adjacent non-empty regions into a single region.

38. A system as recited in claim 37 wherein said means for combining combines non-empty regions having the same selected compression algorithm into a single region.

39. A digital output processing system as recited in claim 37 wherein said means for combining combines non-empty regions having the same type and any empty regions disposed between said non-empty regions into a single region when there is insufficient space in said compressed band buffer to store an entire band of data.

40. A system as recited in claim 37 wherein said means for compressing only compresses non-empty regions.

41. A system as recited in claim 34 wherein said means for decompressing means further includes means for outputting background data to said output display device when compressed region data is not being displayed.

42. A system for processing data objects each representing display data for a display area and each having a data type and a location in the display area, comprising:

a divider for dividing the display area into a plurality of non-overlapping non-empty regions, where each region contains all or part of at least one data object and each region has a location and a region type derived from the data types of the object data in the region;

a plurality of compression mechanisms and decompression mechanisms, where each compression mechanism has an associated decompression mechanism;

a compressor that selects one of the compression mechanisms for each of the non-empty regions according to its region type and then uses the selected compression mechanism to compress those portions of the object data found in the region, thereby producing compressed object data;

a memory coupled to the compressor for storing compressed object data;

a decompressor coupled to the memory that decompresses compressed object data to produce uncompressed object data by applying to each compressed object data a decompression mechanism associated with the compression mechanism used to create the compressed object data; and

a monitor coupled to the compressor, decompressor, and memory for detecting when the memory is becoming full and triggering the decompression of previously compressed object data and the recompression thereof to free up space in the memory.

43. The system of claim 42 further comprising an object data combiner for combining one or more regions of uncompressed object data into a single region of uncompressed object data, where:

the object data combiner is invoked when the monitor has detected the memory is becoming full; and

the object combiner combines the uncompressed object data associated with each region according to predefined criteria, the uncompressed object data for the combined region to be recompressed by the compressor resulting in the freeing up of space in the memory.

44. The system of claim 43 wherein the object data combiner combines regions of uncompressed object data into a single combined region when a cost of combining the objects, determined by the separation between the regions, is under a predetermined threshold.

45. The system of claim 44 wherein the cost of combining is determined by the amount of background data that is included in a combined resulting region compared to the amount of object data included in the regions that were to be combined.

46. The system of claim 42 wherein the predefined criteria include combining adjacent regions that are of the same type and combining non-adjacent regions that are of the same type if the space separating the non-adjacent regions does not contain any object data.

47. The system of claim 42 further comprising a display engine coupled to receive uncompressed object data from the decompressor.

48. The system of claim 47 where the display engine is one of the group consisting of a laser printer engine, a plotter, and a CRT.

49. The system of claim 42 further comprising an embedded computer comprising:

a computer processor, and

a program memory coupled to the computer processor; and

a display engine coupled to receive uncompressed object data from the decompressor;

where

the display engine is coupled to the embedded computer; and

the compressor and decompressor are implemented as computer program instructions tangibly stored in the program memory.

50. The system of claim 42 further comprising:

means coupled to the decompressor for displaying the uncompressed object data; and

means for updating a pointer to indicate a next portion of a display area to display such that when the pointer intersects a non-empty region the decompressor decompresses and outputs the compressed data associated with the non-empty region and when the pointer does not intersect a non-empty region the decompressor outputs background data.

51. A system for processing data objects each representing display data for a page and each having a data type and a location on the page, where the page is divided into bands, the system comprising:

a memory;

a display list in the memory for each band of the page for storing those portions of the object data found in the band;

a divider coupled to the display list memory for dividing the object data in each band into a plurality of non-overlapping non-empty regions where each region contains all or part of at least one data object and each region has a location and a region type derived from the data types of the object data in the region;

a plurality of compression mechanisms and decompression mechanisms, where each compression mechanism has an associated decompression mechanism;

a compressor that selects one of the compression mechanisms for each of the non-empty regions according to the corresponding region type, uses the selected compression mechanism to compress the object data found in the region, thereby producing compressed object data, and stores compressed object data in the memory;

a decompressor coupled to the memory that decompresses compressed object data to produce uncompressed object data by applying to the compressed object data a decompression mechanism associated with the compression mechanism used to create the compressed object data; and

a monitor coupled to the compressor, decompressor, and memory for detecting when the memory is becoming full and triggering the decompression of previously compressed object data and the recompression thereof to free up space in the memory.

52. The system of claim 51 further comprising:

a rasterizer coupled to the display list memory to rasterize the data objects to produce bitmaps stored in the non-empty regions; and

a raster output device display engine coupled to receive uncompressed object data;

where the compression mechanisms operate on bitmaps to produce compressed bitmap object data; and

the decompression mechanisms operate on compressed bitmap object data to produce uncompressed bitmap object data for the raster output device display engine.

53. The system of claim 52 further comprising:

means for updating a pointer to indicate a next portion of a band to output to the raster output device such that when the pointer intersects a non-empty region the decompressor decompresses the compressed data associated with the non-empty region and outputs it, and when the pointer does not intersect a non-empty region the decompressor outputs background data.

54. A method for processing data objects each representing display data for a display area and having a data type and a location in the display area, the method comprising the steps of:

(a) receiving the data objects;

(b) storing the data objects in a display list associated with the display area;

(c) dividing the display area into a plurality of non-overlapping non-empty regions, each region including one or more data objects or portions of data objects and each region having a location and a region type derived from the data types of the data objects and portions of data objects in the region;

(d) providing a plurality of compression mechanisms and decompression mechanisms, where each compression mechanism has an associated decompression mechanism;

(e) compressing the object data in each non-empty region by selecting one of the compression mechanisms according to the corresponding region type and compressing the object data, thereby producing compressed object data;

(f) storing the compressed object data in a memory;

(g) decompressing the compressed object data by selecting a decompression mechanism associated with the compression mechanism used to create the compressed object data and decompressing the compressed object data to produce uncompressed object data; and,

(h) monitoring to detect when the memory is becoming full and triggering the decompression of previously compressed object data and the recompression thereof to free up space in the memory.

55. The method of claim 54 further comprising the steps of:

combining a plurality of regions of uncompressed object data into a combined region of object data when the memory is becoming full; and

compressing the object data in the resulting combined region to free up space in the memory.

56. The method of claim 55 wherein regions are combined when a cost of combining the objects, determined by the separation between the regions, is under a predetermined threshold.

57. The method of claim 56 wherein the cost of combining is determined by the amount of background data that is included in a combined resulting region as compared to the amount of object data included in the regions that were to be combined.

58. A method for processing data objects each representing display data for a display area and having a data type and a location in the display area, the method comprising the steps of:

receiving the data objects;

establishing in the display area a plurality of non-overlapping bands;

dividing any data objects that span more than one band into multiple data objects that are each located in only one band;

establishing for each band a display list associated with the band;

storing the data objects located in a band in the display list associated with the band;

dividing each band into a plurality of non-overlapping non-empty regions each having a location and a region type derived from the data types of the data objects in the region;

providing a plurality of compression mechanisms and decompression mechanisms, where each compression mechanism has an associated decompression mechanism;

compressing a first band of data objects by selecting one of the compression mechanisms for each non-empty region in the first band according to the corresponding region type and using the selected compression mechanism to compress the data objects in the region, thereby producing compressed data objects;

storing the compressed data objects in a memory;

compressing and storing the remaining bands in the display area by applying to them the preceding two steps, respectively;

decompressing each band of compressed data objects by selecting for each compressed data object a decompression mechanism associated with the compression mechanism used to create the compressed data object and decompressing it to produce an uncompressed data object; and

monitoring to detect when the memory is becoming full and triggering the decompression of previously compressed data objects and the recompression thereof to free up space in the memory.

59. The method of claim 58 further comprising the steps of:

sending the uncompressed data objects to an output display; and

determining where an output scan line intersects the regions of a band such that the compressed regions are decompressed when the scan line intersects the regions.

60. The method of claim 58 further comprising the step of:

sending the uncompressed data objects to an output display; and

outputting background display data for portions of the page not covered by uncompressed data objects.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

The present invention relates generally to the display of data by output devices, and more particularly to a method and apparatus for reducing memory storage requirements when displaying data on an output display device.

A computer system can output data to a wide variety of output display devices. Output display devices such as laser printers, plotters, and other printing devices produce an image or "visual representation" onto a sheet of paper or the like, while output display devices such as computer monitors develop visual representations on a computer screen.

Many output display devices receive display data in the form of a "bitmap" or "pixel map" and generate visual representations from the display data. A pixel is a fundamental picture element of a visual representation generated by a display device, and a bitmap is a data structure including information concerning a number of pixels of the representation. Bitmaps that contain more than on/off information are often referred to as "pixel maps." As used herein, both bitmaps and pixel maps are referred to as "bitmaps."

A printer can print dots on a piece of paper corresponding to the information of a bitmap. Alternatively, a computer monitor can illuminate pixels based upon the information of the bitmap. A "raster" output device creates a visual representation by displaying the array of pixels arranged in rows and columns from the bitmap. Most output devices, other than plotters, are raster output devices. Typically, a "page" of pixels corresponding to a printed or displayed page is received and stored in memory before the pixels are displayed by the output display device.

A visual representation can contain a number of image types, including text, graphics, photographic images, etc. Data of these types can be efficiently stored in files with other image information as high level "objects." An "object", as referred to herein, is the data and attributes defining a particular visual representation. The objects can be edited or otherwise manipulated using an application program ("software") running on a computer. When displaying the objects with an output display device such as a printer or display screen, the objects are typically first rasterized (or "rendered") into bitmaps. The output display device stores display bitmap data in memory before displaying the data.

A problem in the prior art methods of providing bitmaps to output display devices is that a large amount of storage space is required to store the bitmap before it is displayed. The requirements for storage space have become greater as the desire for high-resolution representations with more realistic attributes has become more prominent. For example, using a laser printer capable of p