Method and apparatus for data compression of bitmaps using rows and columns of bit-mapped printer data divided into vertical slices
First Claim
1. A method of compressing data to be printed, comprising:
- (a) dividing initial print data of any type, including non-character print data, into a plurality of swaths of print information, each of said swaths containing a plurality of slices, and each of said slices having a plurality of bits representing pels to be printed;
(b) analyzing and, where appropriate compressing each individual one of said plurality of slices, using at least one data compression technique controlled by a processing circuit, and temporarily storing the resulting compressed data in a memory circuit as a plurality of compressed slices, such that when two different data compression techniques are used on each of said individual slices, each individual slice is examined to see which of the two different data compression techniques is more efficient in compressing the data for that particular slice, and then a compressed slice is created and stored using the more efficient of the two different data compression techniques for each of said plurality of slices; and
(c) decompressing where appropriate, using a corresponding data decompression technique that is compatible with said at least one data compression technique, each individual one of said plurality of compressed slices, thereby generating a plurality of uncompressed slices of print information for each of said swaths that are equivalent to said initial slices of print data before compression occurred, and presenting said equivalent print data of any type, including non-character print data, to a printing apparatus, such that the appropriate one of two different data decompression techniques that corresponds to said two different data compression techniques is used on each said individual compressed slice.
1 Assignment
0 Petitions
Accused Products
Abstract
An improved printing system is provided that compresses bitmap print data by determining, per each vertical slice of a horizontal swath of the printed page, which one of two different data compression techniques to more efficiently compresses each individual slice, then temporarily stores this compressed data in a memory circuit until needed by the printhead for actual printing of the final output in the form of print media. When using slices containing seven (7) different words per slice, the present invention utilizes a single "control bit" of a "control word" to represent each of the data words of the slice. Depending upon which type of compression technique is used, the control bit for each data word will be set to either Logic 1 or Logic 0, depending upon the value of the data word as compared to a pre-determined data word value that is chosen by the system, and which may be used in both types of data compression techniques. After each slice has been analyzed by both types of data compression techniques, certain of the data words in the slice can be temporarily discarded, leaving behind less than seven (7) data words to represent that slice as compressed data. This compressed data for each individual slice will be matched up with a "control word" that is made up of the individual control bits described above, thereby creating a relatively small data set that can be stored in memory in a space that would be less than the amount of memory required to store the uncompressed slices for the same print data. Later, these (compressed) data sets (one per individual slice) can be decompressed according to the proper decompression technique, and the full print data is then restored just before printing by the printhead. As part of the control word, a "mode bit" can be set to either binary value of Logic 1 or Logic 0, thereby indicating which of the two data compression techniques was initially used for that slice. The two data compression techniques used are called a "USE-X MODE" and a "REPEAT MODE."
160 Citations
13 Claims
-
1. A method of compressing data to be printed, comprising:
-
(a) dividing initial print data of any type, including non-character print data, into a plurality of swaths of print information, each of said swaths containing a plurality of slices, and each of said slices having a plurality of bits representing pels to be printed; (b) analyzing and, where appropriate compressing each individual one of said plurality of slices, using at least one data compression technique controlled by a processing circuit, and temporarily storing the resulting compressed data in a memory circuit as a plurality of compressed slices, such that when two different data compression techniques are used on each of said individual slices, each individual slice is examined to see which of the two different data compression techniques is more efficient in compressing the data for that particular slice, and then a compressed slice is created and stored using the more efficient of the two different data compression techniques for each of said plurality of slices; and (c) decompressing where appropriate, using a corresponding data decompression technique that is compatible with said at least one data compression technique, each individual one of said plurality of compressed slices, thereby generating a plurality of uncompressed slices of print information for each of said swaths that are equivalent to said initial slices of print data before compression occurred, and presenting said equivalent print data of any type, including non-character print data, to a printing apparatus, such that the appropriate one of two different data decompression techniques that corresponds to said two different data compression techniques is used on each said individual compressed slice. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A printing system having a host computer, a printer, and a communications link therebetween, said system comprising:
-
(a) a host computer having a first processing circuit, a first memory circuit, and a first communications port, wherein said first processing circuit is configured to compress a first data set of bitmap print data stored in said first memory circuit by; (i) dividing initial print data of any type, including non-character print data, into a plurality of swaths of print information, each of said swaths containing a plurality of slices, and each of said slices having a plurality of bits representing pels to be printed; and (ii) analyzing and, where appropriate compressing, using at least one data compression technique controlled by said first processing circuit, each individual one of said plurality of slices and temporarily storing the resulting compressed data in said first memory circuit as a plurality of compressed slices, such that when two different data compression techniques are used on each of said individual slices, each individual slice is examined to see which of the two different data compression techniques is more efficient in compressing the data for that particular slice, and then a compressed slice is created and stored using the more efficient of the two different data compression techniques for each of said plurality of slices, thereby creating a second data set that contains compressed print data; said first processing circuit being further configured to send said second data set to said first communications port; (b) a communications link that is operatively connected to said first communications port and that receives data from said first communications port; and (c) a printer having a second processing circuit, a second memory circuit, a second communications port and a print engine, said second communications port being operatively connected to said communications link and receiving data from said communications link, wherein said second processing circuit is configured to decompress said second data set by; (i) temporarily storing in said second memory circuit said second data set, (ii) decompressing where appropriate, using a corresponding data decompression technique that is compatible with said at least one data compression techniques, each individual one of said plurality of compressed slices of said second data set, thereby generating a plurality of uncompressed slices of print information for each of said swaths that are equivalent to said initial slices of print data before compression occurred, such that the appropriate one of two different data decompression techniques that corresponds to said two different data compression techniques is used on each said individual compressed slice, thereby creating a third data set that contains uncompressed print data of any type, including non-character print data; and (iii) transmitting, swath by swath, to said print engine said third data set of uncompressed print data; thereby printing an entire page which has an identical appearance according to said first data set of bitmap print data. - View Dependent Claims (9, 10, 11, 12, 13)
-
Specification