Method and apparatus for compressing and decompressing print data in the background operations of a printer
First Claim
1. In an image processing system having a memory circuit for storing information, a data compression circuit, an image output device, and a processing circuit that controls the routing of data between said memory circuit, data compression circuit, and image output device;
- a method for selectively compressing image data, said method comprising the steps of;
(a) selecting a predetermined threshold value of memory size;
(b) dividing a page of image data into a plurality of blocks;
(c) initiating processing of each of said plurality of blocks of image data;
(d) comparing the actual size of free memory space within said memory circuit with respect to said predetermined threshold value, and;
(i) if said actual size of free memory space is greater than said predetermined threshold value, temporarily storing at least one of said plurality of blocks of image data in said memory circuit; and
(ii) if said actual size of free memory space is not greater than said predetermined threshold value, compressing at least one of said plurality of blocks of image data via said data compression circuit, and temporarily storing said at least one of said plurality of blocks of compressed image data in said memory circuit, while virtually simultaneously continuing processing of said plurality of blocks of image data using available free memory space of said memory circuit.
1 Assignment
0 Petitions
Accused Products
Abstract
An improved printer is provided which includes a separate hardware compression module and hardware decompression module contained within the ASIC of the print engine. A "Request Counter" register is decremented each time memory is requested to store a block of bitmap image data. When the Request Counter decreases to a predetermined value, the current size of the remaining "free memory" space is evaluated. If this free memory is less than another predetermined value (a "low water mark"), then blocks of data that have already been stored in the printer'"'"'s memory are sent to the compression module to be compressed before the printer literally runs out of free memory, and the printer can continue storing and processing more incoming print job data. By thus preserving some of the free memory, the printer can continue to process or rasterize more print data while the compression hardware simultaneously operates independently to compress one or more blocks of data. Since the compressor hardware operate independently of the printer'"'"'s microprocessor, the printer can continue to process further data during the actual compression operations, thereby preventing the printer'"'"'s microprocessor from becoming idle, which otherwise would become a very inefficient utilization of the printer'"'"'s processing power. The present invention is especially useful in processing color data, especially in printers containing relatively small quantities of RAM, since color data typically requires four (4) planes of bitmap image data per page to be printed.
62 Citations
30 Claims
-
1. In an image processing system having a memory circuit for storing information, a data compression circuit, an image output device, and a processing circuit that controls the routing of data between said memory circuit, data compression circuit, and image output device;
- a method for selectively compressing image data, said method comprising the steps of;
(a) selecting a predetermined threshold value of memory size; (b) dividing a page of image data into a plurality of blocks; (c) initiating processing of each of said plurality of blocks of image data; (d) comparing the actual size of free memory space within said memory circuit with respect to said predetermined threshold value, and; (i) if said actual size of free memory space is greater than said predetermined threshold value, temporarily storing at least one of said plurality of blocks of image data in said memory circuit; and (ii) if said actual size of free memory space is not greater than said predetermined threshold value, compressing at least one of said plurality of blocks of image data via said data compression circuit, and temporarily storing said at least one of said plurality of blocks of compressed image data in said memory circuit, while virtually simultaneously continuing processing of said plurality of blocks of image data using available free memory space of said memory circuit. - View Dependent Claims (2, 3)
- a method for selectively compressing image data, said method comprising the steps of;
-
4. In an image processing system having a memory circuit for storing information, a data compression circuit, an image output device, and a processing circuit that controls the routing of data between said memory circuit, data compression circuit, and image output device;
- a method for selectively compressing image data, said method comprising the steps of;
(a) setting a Request Counter to a predetermined value, and selecting a first predetermined threshold value and a second predetermined threshold value; (b) dividing a page of image data into a plurality of blocks; (c) initiating processing of each of said plurality of blocks of image data; (d) said Request Counter'"'"'s value is not greater than said first threshold value, comparing the actual size of free memory space within said memory circuit with respect to said second threshold value, and; (i) said actual size of free memory space is greater than said second threshold value, temporarily storing at least one of said plurality of blocks of image data in said memory circuit; (ii) if said actual size of free memory space is not greater than said second threshold value, compressing at least one of said plurality of blocks of image data via said data compression circuit, and temporarily storing said at least one of said plurality of blocks of compressed image data in said memory circuit, virtually simultaneously continuing processing of said plurality of blocks of image data using available free memory space of said memory circuit; and (e) if said Request Counter'"'"'s value is greater than said first threshold value, decreasing said Request Counter'"'"'s value upon each occurrence of storing one of said plurality of blocks. - View Dependent Claims (5, 6, 7, 8, 9)
- a method for selectively compressing image data, said method comprising the steps of;
-
10. In a printing system having a memory circuit for storing information, a data compression circuit, a print engine, and a processing circuit that controls the routing of data between said memory circuit, data compression circuit, and print engine;
- a method for selectively compressing image data, said method comprising the steps of;
(a) selecting a predetermined threshold value of memory size; (b) dividing a page of image data into a plurality of blocks; (c) initiating processing of each of said plurality of blocks of image data; (d) comparing the actual size of free memory space within said memory circuit with respect to said predetermined threshold value, and; (i) if said actual size of free memory space is greater than said predetermined threshold value, temporarily storing at least one of said plurality of blocks of image data in said memory circuit; and (ii) if said actual size of free memory space is not greater than said predetermined threshold value, compressing at least one of said plurality of blocks of image data via said data compression circuit, and temporarily storing said at least one of said plurality of blocks of compressed image data in said memory circuit, while virtually simultaneously continuing processing of said plurality of blocks of image data using available free memory space of said memory circuit. - View Dependent Claims (11, 12)
- a method for selectively compressing image data, said method comprising the steps of;
-
13. In a printing system having a memory circuit for storing information, a data compression circuit, a print engine, and a processing circuit that controls the routing of data between said memory circuit, data compression circuit, and print engine;
- a method for selectively compressing image data, said method comprising the steps of;
(a) setting a Request Counter to a predetermined value, and selecting a first predetermined threshold value and a second predetermined threshold value; (b) dividing a page of image data into a plurality of blocks; (c) initiating processing of each of said plurality of blocks of image data; (d) said Request Counter'"'"'s value is not greater than said first threshold value, comparing the actual size of free memory space within said memory circuit with respect to said second threshold value, and; (i) said actual size of free memory space is greater than said second threshold value, temporarily storing at least one of said plurality of blocks of image data in said memory circuit; (ii) if said actual size of free memory space is not greater than said second threshold value, compressing at least one of said plurality of blocks of image data via said data compression circuit, and temporarily storing said at least one of said plurality of blocks of compressed image data in said memory circuit, virtually simultaneously continuing processing of said plurality of blocks of image data using available free memory space of said memory circuit; and (e) if said Request Counter'"'"'s value is greater than said first threshold value, decreasing said Request Counter'"'"'s value upon each occurrence of storing one of said plurality of blocks. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21)
- a method for selectively compressing image data, said method comprising the steps of;
-
22. A printing apparatus, comprising:
-
(a) a memory circuit used for storing image data; (b) a data compression circuit used for compressing image data; (c) a processing circuit that is configured to control the flow of data between said memory circuit and said data compression circuit, said processing circuit being configured to divide a page of image data into a plurality of blocks; and
to set a predetermined threshold value of memory size;(d) said processing circuit also being configured to initiate processing of each of said plurality of blocks of image data, and to compare the actual size of free memory space within said memory circuit to said threshold value;
wherein if said actual size of free memory space is greater than said threshold value, at least one of said plurality of blocks of image data is stored in said memory circuit, and if said actual size of free memory space is not greater than said threshold value, said processing circuit being further configured to command said data compression circuit to compress at least one of said plurality of blocks of image data while said processing circuit continues to process others of said plurality of blocks of image data using available free memory space of said memory circuit; and(e) said data compression circuit being configured to perform its compression operation independently of said processing circuit; the effect of which is to have a compression function and an image processing function occurring simultaneously within said printing apparatus. - View Dependent Claims (23, 24, 25)
-
-
26. A printing apparatus, comprising:
-
(a) a memory circuit used for storing image data; (b) a data compression circuit used for compressing image data; (c) a processing circuit that is configured to control the flow of data between said memory circuit and said data compression circuit, said processing circuit being configured to divide a page of image data into a plurality of blocks; and
to set a Request Counter to a predetermined value, to set a first predetermined threshold value, and to set a second predetermined threshold value;(d) said processing circuit also being configured to initiate processing of each of said plurality of blocks of image data, and if said Request Counter'"'"'s value is not greater than said first threshold value, to compare the actual size of free memory space within said memory circuit to said second threshold value;
wherein if said actual size of free memory space is greater than said second threshold value, at least one of said plurality of blocks of image data is stored in said memory circuit, and if said actual size of free memory space is not greater than said second threshold value, said processing circuit being further configured to command said data compression circuit to compress at least one of said plurality of blocks of image data while said processing circuit continues to process others of said plurality of blocks of image data using available free memory space of said memory circuit; and(e) said data compression circuit being configured to perform its compression operation independently of said processing circuit; the effect of which is to have a compression function and an image processing function occurring simultaneously within said printing apparatus. - View Dependent Claims (27, 28, 29, 30)
-
Specification