Method and apparatus for reducing storage requirements for display data
First Claim
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.
1 Assignment
0 Petitions
Accused Products
Abstract
A 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.
349 Citations
60 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
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. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
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. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
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. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41)
-
-
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. - View Dependent Claims (43, 44, 45, 46, 47, 48, 49, 50)
-
-
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. - View Dependent Claims (52, 53)
-
-
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. - View Dependent Claims (55, 56, 57)
-
-
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. - View Dependent Claims (59, 60)
-
Specification