Method and apparatus for saving printer memory
First Claim
1. A method of increasing throughput and reducing the memory requirements for a printer which has memory allocated for storing display list commands, uncompressed rasterized data, and compressed rasterized data, where said printer receives a page description language representation of a page, said page description language representation comprised of a sequence of page description language commands, which the printer converts into a raster data representation of that page for printing, comprising:
- (1) converting the page description language representation of the page into display list commands and storing the display list commands in a display list memory allocation until the display list memory allocation is exhausted;
(2) rasterizing the display list commands from the display list memory allocation to form raster data which represents at least a portion of the page, and storing the raster data in a raster data memory allocation, thereby freeing up the display list memory allocation for further use;
(3) compressing said first raster data in the raster data memory allocation using a compression technique which minimizes compression and decompression times to form compressed raster data and storing the compressed raster data in a compressed raster data memory allocation, thus freeing up the raster data memory allocation for further use while maximizing throughput;
(4) continuing conversion of the page description language commands into second display list commands until either the display list memory allocation is again exhausted or the conversion is complete;
(5) decompressing the compressed raster data in the compressed raster data memory allocation and either sending it to the print engine for printing or storing it in the raster data memory, in either case freeing up the compressed raster data memory allocation for further use;
(6) rasterizing the second display list commands and combining it with the raster data in the raster data memory allocation;
(7) if the conversion in step (4) was not complete, carrying out steps (4) through (6) again;
or(8) if the conversion in step (4) converted the complete data for the page, printing the page from the raster data memory or compressed raster data memory, or both, thereby maximizing printer throughput without causing printer overruns.
2 Assignments
0 Petitions
Accused Products
Abstract
A page printer uses alternative internal representations for the print data in each of multiple lateral strips that make up the page. Page description language input is converted to an intermediate display list format that is sorted into display commands associated with each strip. If during input the display list representation of the data fills the memory allotted to its storage, one or more of the strips is converted from display list format to raster format and compressed using a lossless compression algorithm. If storage of compressed strips subsequently exceeds available memory, raster data is further compressed using a lossy compression algorithm. Additional display list commands are rasterized by decompressing the compressed strips, processing the new commands and recompressing the data using lossless or lossy compression as required. If the display list does not overflow memory during input, the complete strips are rasterized and compressed one at a time in the order in which they will be printed. The rasterizing time is stored. Should memory overflow at any point in the process, then the rasterizing times for the remaining strips are determined without storing the raster output. A decision can then be made for each strip to rasterize it to the print engine on the fly, precompute and store it as lossless compressed raster data, or revert to a lossy-compressed precomputed version.
64 Citations
1 Claim
-
1. A method of increasing throughput and reducing the memory requirements for a printer which has memory allocated for storing display list commands, uncompressed rasterized data, and compressed rasterized data, where said printer receives a page description language representation of a page, said page description language representation comprised of a sequence of page description language commands, which the printer converts into a raster data representation of that page for printing, comprising:
-
(1) converting the page description language representation of the page into display list commands and storing the display list commands in a display list memory allocation until the display list memory allocation is exhausted; (2) rasterizing the display list commands from the display list memory allocation to form raster data which represents at least a portion of the page, and storing the raster data in a raster data memory allocation, thereby freeing up the display list memory allocation for further use; (3) compressing said first raster data in the raster data memory allocation using a compression technique which minimizes compression and decompression times to form compressed raster data and storing the compressed raster data in a compressed raster data memory allocation, thus freeing up the raster data memory allocation for further use while maximizing throughput; (4) continuing conversion of the page description language commands into second display list commands until either the display list memory allocation is again exhausted or the conversion is complete; (5) decompressing the compressed raster data in the compressed raster data memory allocation and either sending it to the print engine for printing or storing it in the raster data memory, in either case freeing up the compressed raster data memory allocation for further use; (6) rasterizing the second display list commands and combining it with the raster data in the raster data memory allocation; (7) if the conversion in step (4) was not complete, carrying out steps (4) through (6) again;
or(8) if the conversion in step (4) converted the complete data for the page, printing the page from the raster data memory or compressed raster data memory, or both, thereby maximizing printer throughput without causing printer overruns.
-
Specification