This invention relates to an image processing system for dividing one page into areas, which will be hereinafter referred to as "bands," and performing image processing in sequence in band units.
A sequence of data input to image formation in a conventional printer will be discussed with reference to FIG. 13A. First, when one page of page description language (PDL) data is input from a personal computer, a workstation, etc., through various interfaces to an image processing system, the PDL is interpreted in instruction contents and is converted into intermediate code by conversion means 52 and the intermediate code is once stored in an intermediate buffer 41. The intermediate code stored in the intermediate buffer 41 is expanded to bit map data in sequence by expansion means 54 and the bit map data is stored in an image memory. When 1-page bit map data is thus complete, the bit map data is output to an image output terminal (IOT) and an image is formed on recording paper.
The features of the PDL, bit map data, and intermediate code depending on the data format difference among them are as follows: As shown in FIG. 14, the PDL has the smallest information amount, the bit map data has the largest information amount, and the intermediate code has an information amount between the PDL and bit map data information amounts. Therefore, the PDL has the smallest memory occupation amount and the bit map data has the largest memory occupation amount. In contrast, the time required for converting the intermediate code into the bit map data is shorter than the time required for converting the PDL into the bit map data. This means that the load imposed on the CPU when the PDL is expanded to the bit map data is larger than that when the intermediate code is expanded to the bit map data. The features are two sides of the same coin and the feature differences are used to shorten the data transfer time and realize smooth image formation.
Further, the memory capacity installed in the printer should be minimized from the aspect of costs. From this viewpoint, also proposed is a system which divides intermediate code into which PDL is converted by conversion means 52 into N bands by number-of-divisions determination means 51, selects the intermediate code for each of the N bands in sequence by selection means 53, expands the intermediate code to bit map data by expansion means 54, and outputs the bit map data to IOT for forming an image on recording paper. This system eliminates the need for the image memory for storing 1-page bit map data and may comprise an image memory for storing bit map data of about one-Nth of one page, which will be hereinafter referred to as band memory 6, enabling memory saving. Such a function is called banding function.
However, if it takes time in expanding the intermediate code to the bit map data and output of the bit map data to the print engine is delayed, it takes time in forming an image and image defects occur in response to the printer type because 1-page bit map data cannot be stored in the printer. That is, for an ink jet printer, etc., if bit map data supply is temporarily stopped during the image formation, this accident prolongs the time required for the image formation. However, the image formation itself does not involve a large problem. On the other hand, for an electrophotographic printer such as a laser printer, a photosensitive body rotates at a given speed during the image formation, thus once 1-page image formation is started, stopping of bit map data supply during the image formation immediately leads to an image lack.
To provide the banding function with no problem for the printer where stopping of bit map data supply during the image formation is not allowed, if the capability of the expansion means is constant (the CPU power is constant), the intermediate code can be set to low-level intermediate code whose expansion does not take much time (in FIG. 14, level close to the bit map data). However, the expansion time of the intermediate code to the bit map data and the information amount (memory occupation amount) of the intermediate code are both sides of the same coin as described above; if low-level intermediate code is prepared, the image lack problem can be circumvented undoubtedly, but it becomes necessary to provide a large-capacity intermediate buffer. This ignores the original purpose of the banding function to lessen the image memory for memory saving. The demand for smooth image formation with no image lack, etc., with limited CPU power and installed memory capacity is a very important problem in the printer.
By the way, nowadays, a so-called complex machine provided with digital copy, printer, and facsimile functions is known. Such a complex machine comprises an image memory of at least one page so as to function as a digital copy unit. To provide the banding function for the complex machine, even if it takes time in expanding intermediate code, if image formation is executed after 1-page bit map data is stored in the image memory, an image lack, etc., does not occur.
A printer rather than the complex machine is also proposed for furthermore compressing bands expanded to bit map data and storing compressed 1-page bit map data, then while decompressing the compressed data, outputting the decompressed data to an IOT. This decompressing enables real-time image formation.
The complex machine or the printer compressing and storing bit map data in band units can output bit map data of a 1-page image to the printer engine with no delay, thus ensures smooth image formation with no image lack, etc. Thus, installed memory saving can be considered primarily between directly-opposed demands for installed memory saving and smooth image formation with no image lack, etc., required for the printer.
Therefore, in the complex machine and the printer compressing and storing bit map data in band units, information amount saving is first needed as intermediate code. To provide the banding function, some mechanism is required for establishing correspondence between the intermediate code corresponding to objects of characters (text), graphic forms, etc., and bands to which the objects belong; it is also desirable to easily establish the correspondence.
From such viewpoints, for saving the information amount of intermediate code, an art of forming the intermediate code at a level close to the PDL as much as possible, namely, at the upper level in FIG. 14 is disclosed in the Unexamined Japanese Patent Application Publication No. Hei 4-009338. In this art, graphic form data is converted into intermediate code in parameter format (for example, the center coordinates and radius for a circle or representative point coordinates and vector information for a line graphic form) for saving the intermediate buffer capacity.
For the mechanism for establishing correspondence between the intermediate code and bands to which the characters (text), graphic forms, etc., represented by the intermediate code belong, an art of checking intermediate code stored in an intermediate buffer and selecting in a range check circuit each time drawing is executed in band units is disclosed in the Unexamined Japanese Patent Application Publication No. Hei 4-009338 mentioned above. Further, disclosed in the Unexamined Japanese Patent Application Publication No. Sho 63-021158 is an art of previously scanning intermediate code in an intermediate buffer and preparing band map information indicating which band each intermediate code belongs, which will be hereinafter referred to as area information, apart from the intermediate buffer.
Although elements of intermediate code representing objects of characters (text), graphic forms, etc., include elements proper to the object and those common to objects, the proper elements and the common elements are not distinguished in handling in the art described in the Unexamined Japanese Patent Application Publication No. Hei 4-009338 concerning saving of the intermediate code information amount, thus each intermediate code contains elements common to other intermediate codes, resulting in an increase in the information amount. For example, to output 1000 12-point characters, 1000 intermediate code elements of "12 points" become necessary in total for the 1000 characters. Considering that character size, font, and the like are not frequently changed in normal document image formation, fairly redundant common elements are contained in intermediate code.
In the art described in the Unexamined Japanese Patent Application Publication No. Hei 4-009338 showing the mechanism for establishing correspondence between the intermediate code and bands to which the characters (text), graphic forms, etc., represented by the intermediate code belong, the intermediate code stored in the intermediate buffer is checked each time drawing is executed in band units. Thus, if one page is divided into N pieces, whether or not intermediate code belongs to the corresponding band needs to be determined N times, causing an efficiency problem to arise.
In the art disclosed in the Unexamined Japanese Patent Application Publication No. Sho 63-021158, the intermediate code in the intermediate buffer is previously scanned, thus if one page is divided into N pieces, which band the intermediate code belongs needs to be determined only once at the beginning; the correspondence between the intermediate code and bands can be established in a small information amount. However, a new problem also arises in the art. That is, in the system, the band map information indicating which band each intermediate code belongs is provided in an area separate from the intermediate buffer, thus an intermediate buffer overflow and a band map information storage area overflow may occur separately on memory management and need to be handled separately, leading to complicated overflow handling.
In particular, this invention relates to a drawing system, a drawing method, a medium, a printer, and an image display unit for performing drawing processing by a so-called banding method.
Hitherto, in a field of page printers, etc., a drawing system has been known which has a so-called banding function of dividing one page into bands for expanding print data comprising code data into bit map data for each band to save a memory. To divide one page into bands for expanding print data into bit map data in a drawing memory (band buffer), it is necessary to prepare intermediate code with added management information to distribute print data to bands and provide an intermediate buffer for storing the intermediate code.
The data amount of the intermediate code stored in the intermediate buffer depends greatly on which level of code data to bit map data the intermediate code is prepared at. Generally, in a drawing system which stores drawing information giving a drawing instruction and attribute information attendant on the drawing information in an intermediate buffer as intermediate code, the code amount lessens as the intermediate code is prepared at a level closer to print data (code data in PDL, etc.,). It grows as the intermediate code is prepared at a level close to bit map data into which print data is furthermore expanded. Various types of drawing information and attribute information are possible depending on the intermediate code level, etc.,; for example, the drawing information includes drawing specification of a point, a line, a rectangular area, etc., and the attribute information includes fill pattern information (information concerning the presence or absence of a pattern and the pattern type if a pattern exists) and information such as logical operation specification on a source and an expansion destination memory and clip area specification.
Therefore, to decrease the intermediate code amount and lessen the intermediate buffer capacity, it is desirable to adopt intermediate code at a level closer to print data. However, if intermediate code at a level closer to print data is adopted, complicated code data would overflow from the intermediate buffer because of an increase in attribute information, etc. One of conventionally available countermeasures against such an overflow is a method of expanding some intermediate code stored in an intermediate buffer in a band buffer as a temporary measure, compressing and saving the resultant code in another storage area, and storing remaining overflow intermediate code in the intermediate buffer, then merging the intermediate code, when expanding the intermediate code in the band buffer, with the data resulting from decompressing the compressed code data. Another countermeasure is a method of again preparing intermediate code at low resolution, thereby decreasing the code amount.
By the way, paying attention to the fact that the proportion of attribute information to the whole increases if a high level such as drawing information and attribution information is adopted as intermediate code, a method of storing attribute information in an intermediate buffer only when the attribute information value changes is possible as a measure for furthermore decreasing the intermediate code amount. However, this method introduces a problem of image quality degradation caused by an attribute information mismatch when the intermediate code is expanded for each band. Specifically, to output entries of the first band (drawing information belonging to the band) to entries of the last band in sequence from the intermediate buffer, when entry output of each band is started, the initial value of the attribute information to be originally set is not set, the attribute information corresponding to the last entry of the preceding band is set, and drawing is executed based on erroneous attribute information.