Page printer having adaptive data compression for memory minimization
First Claim
1. In a peripheral unit that converts an input data flow to a page-arranged output, said peripheral unit including random access memory with allocated memory space for storing only a portion of said page-arranged output, a processor and control memory containing a plurality of data compression procedures, each said procedure exhibiting a speed of compression performance characteristic, a method for compressing portions of said input data flow for storage in said random access memory, said method comprising the steps of:
- allocating portions of said input data flow for storage in said random access memory;
determining when an insufficient amount of said random access memory is available for allocation to said input data flow portions;
employing a first data compression procedure upon a said input data flow portion to produce a compressed data portion, said first data compression procedure generally accomplishing data compression in less time than other data compression procedures available in said peripheral unit;
testing a compression level of said compressed data portion against a compression threshold to determine if said compression level exceeds said threshold, and if not, employing another data compression procedure and repeating said testing in relation to a threshold, whereby a compression procedure is found that enables the compression level of said input data flow portion to exceed a said threshold and is employed to compress said data flow portion.
2 Assignments
0 Petitions
Accused Products
Abstract
A peripheral unit converts an input data flow to page-arranged outputs and includes a random access memory capacity that is insufficient in size to accommodate an entire page of raster data. The peripheral unit also includes a processor and a control memory that holds a plurality of data compression procedures, each procedure exhibiting a different performance characteristic. The peripheral unit performs a method for compressing portions of the input data flow that includes the steps of: allocating the random access memory to portions of the input data flow; determining when an insufficient amount of random access memory is available for such allocation; employing a first data compression procedure on the input data flow portions to produce a compressed data portion; testing the compressed data portion to determine if a level of compression has been achieved that exceeds a threshold and, if not, employing succeeding data compression procedures and repeating the test for each procedure against a threshold, whereby the compression procedure that first enables a threshold level of compression to be achieved is the compression procedure employed to compress the data flow portion. Improved compression methods and techniques for handling input data flows with both integral and independent image descriptors are also described.
209 Citations
31 Claims
-
1. In a peripheral unit that converts an input data flow to a page-arranged output, said peripheral unit including random access memory with allocated memory space for storing only a portion of said page-arranged output, a processor and control memory containing a plurality of data compression procedures, each said procedure exhibiting a speed of compression performance characteristic, a method for compressing portions of said input data flow for storage in said random access memory, said method comprising the steps of:
-
allocating portions of said input data flow for storage in said random access memory; determining when an insufficient amount of said random access memory is available for allocation to said input data flow portions; employing a first data compression procedure upon a said input data flow portion to produce a compressed data portion, said first data compression procedure generally accomplishing data compression in less time than other data compression procedures available in said peripheral unit; testing a compression level of said compressed data portion against a compression threshold to determine if said compression level exceeds said threshold, and if not, employing another data compression procedure and repeating said testing in relation to a threshold, whereby a compression procedure is found that enables the compression level of said input data flow portion to exceed a said threshold and is employed to compress said data flow portion. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for data compressing a raster pixel image, comprising the steps of:
-
a. performing run-length encoding for data segments in an initial raster row of said image and outputting, for each run of a data segment in said row, a run length command indicating a run count and an identification of the run data segment; and b. for data segments in a subsequent row of said image, comparing whether said data segments are the same as or different from data segments in an immediately previous raster row; and c. issuing commands which identify for said subsequent raster row, which of said data segments exhibit said "same" condition and further indicate said different said data segments. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A method for data compressing a raster-arranged pixel image, comprising the steps of:
-
a. providing a first table of data segment patterns indicative of an image comprised of clustered bit patterns and of an image comprised of dispersed bit patterns; b. comparing data segments of an image to said data segment patterns in said first table to determine a classification of said image, said classification comprising clustered or dispersed; c. compressing said image by reducing each n×
n bit block of said pixel image to an n-bit data segment and accompanying said compressed image by a classification indicator; andd. decompressing said image by employing said n-bit data segment to access a stored n×
n pixel matrix from a pair of matrix tables in accordance with said classification indicator, one said tables including n×
n-bit images classified as clustered and another said table including n×
n-bit images classified as dispersed, each said table addresses in accordance with said n-bit data segment. - View Dependent Claims (19, 20)
-
-
21. In a peripheral unit for converting an input data flow to a page--arranged output, said peripheral unit having insufficient random access memory allocated to store an entire video raster image of said page arranged output, a method for converting said input data flow to a page intermediate form that includes a plurality of image strips that make up said page arranged output, each image strip including image processing commands that enable subsequent conversion of each said image strip to a raster video form, said method comprising:
-
a. establishing a threshold value of data segments in an image strip; b. determining (1) if a number of data segments in an image strip exceeds said threshold value, and (2) if remaining memory in said random access memory is less than a predetermined level and if said determinations 1 and 2 are affirmative; c. converting said image strip immediately to raster video and attempting a compression thereof; d. storing in said random access memory, compressed raster video that results from step c; e. adjusting said threshold value to a smaller value to account for remaining random access memory in said random access memory; and f. repeating steps a-e for remaining image strip of said page. - View Dependent Claims (22, 23, 24)
-
-
25. In a peripheral unit that converts an input data flow to a page-arranged output, said data flow including data describing an image, a said image comprised of a set of subimages, each subimage further comprised of a video raster bit map and a descriptor having a field that identifies where said video raster bit map is stored, a method for compressing data representing a said image and subimages, comprising:
-
selecting a group of descriptors that represent a subset of said set of subimages; attempting to compress, through the use of a first compression technique, the video raster bit map associated with each said selected descriptor; comparing against a threshold, a level of compression of said subset of subimages achieved through said compression attempt and if said threshold is at least equalled, employing said first compression technique to data compress all subimages comprising said image. - View Dependent Claims (26, 27, 28, 29, 30, 31)
-
Specification