1. Field of the Invention
The present invention relates to a system and method for controlling a printing operation, and particularly a printing operation in which print data is processed efficiently.
2. Description of the Related Art
Along with recent advances in high-resolution printing and color printing in recent years, the volume of print data required when printing images on office and home printers has increased dramatically. The increased volume of print data has necessitated an increase in the volume of data saved on the printer for image processing and, consequently, an increase in memory capacity in the printer. However, an increase in memory capacity leads to an increase in the cost of the printer. To resolve this problem, techniques have been proposed for processing print data efficiently using a small memory capacity.
A page printer disclosed in Japanese unexamined patent application publication No. 2003-296054 has a function for generating de-compressible compression data from image data transmitted by a host device. The host device sequentially transmits a page worth of image data in units of bands, while the page printer function divides the page worth of data into a matrix having a plurality of blocks of image data and generates compression data for each block. The page printer has another function for rotating the image data received from the host device 90 degrees when generating print data based on these blocks of compressed data. A page printer having this construction can thus generate print data that has been rotated 90 degrees without allocating a storage area for storing one page worth of print data, thereby reducing the required capacity of the memory in the page printer.
However, when dividing the image data (original image) into a matrix during this process, the original image is not always of a size that can be divided into an integral number of blocks of the block size. Accordingly, a technique was proposed for first adding a blank image data to the end of the original image so that the original image can be divided into an integral number of blocks prior to dividing the image into a matrix.
Japanese unexamined patent application publication No. 2004-128811 proposes a technique for outputting an image that has undergone rotation processing after adding blank image data thereto without losing any of the original image data when processing the image divisions. Specifically, an image-processing device described in Japanese unexamined patent application publication No. 2004-128811 has a function for dividing the original image of a first size, such as A4 size, into image divisions (tile images) of a prescribed size using first coordinates as a reference, and generating a set of image divisions that together form a second size; a function for rotating the set of image divisions with respect to a center point of the second size; and a function for outputting an output image corresponding to the original image using the first coordinates as a reference, based on the set of rotated image divisions. Here, the generating function ensures that the entire rotated original image is included in the output image by determining which of the image divisions includes a differential region (margin) between the first size and the second size based on details of the rotation process formed by the processing means. This technique can prevent the loss of image data when rotating the image 180 degrees, for example, by providing a margin on the left and upper sides of the original image.
While the technique in Japanese unexamined patent application publication No. 2003-296054 divides image data for one page into a plurality of block images, the original image is not always of a size that can be divided into an integral number of block images, as described above. Accordingly, this technique requires special processes for providing margins and the like.
Further, while the technique in Japanese unexamined patent application publication No. 2004-128811 divides the original image data after adding margins, it is necessary to determine appropriately to which parts of the original image margin portions need to be added so that image data is not lost in the outputted image. This must be determined based on the details of the rotation process, such as the angle of rotation (90 degrees, 180 degrees, 270 degrees, or the like) In other words, the rotation conditions must be determined each time an image is divided, leading to a more complex process. Alternatively, the position for printing each image division can be adjusted individually, but this operation is also complex.
Further, when the printer driver of the host computer generates the image divisions, it is necessary not only to rotate the image divisions according to whether the orientation is a landscape orientation or a portrait orientation, but also to rotate the page based on the direction in which the paper is loaded in the printer, for example, when printing on A4-size paper in an A3 printer. In such a case, the printer driver and printer must communicate in order to determine the orientation of the loaded paper. Moreover, extremely complex processing is required when the rotational direction differs according to the page and when printing a plurality of pages on one sheet of paper.
Further, when the printer is generating the image divisions, a longer processing time is required since the CPU in the printer generally has a lower processing capacity than that in the host computer. Providing a high-capacity CPU in the printer to increase processing speed would also increase costs.
In view of the foregoing, it is an object of the present invention to provide a printing control system and a printing control method capable of suitably executing a printing operation and the like that includes rotation processes, without overly burdening the printer driver of the host computer and the printer controller.
In order to attain the above and other objects, the present invention provides a printing control system includes a drawing unit, a block data generating unit and a controlling unit. The drawing unit sets a drawing region in which a region of an original image falls, and draws the original image in the drawing region so that a center of the region of the original image is in coincidence with a center of the drawing region. The block data generating unit divides the drawing region into a plurality of blocks, each block having a size and shape identical to one another, and generates block data representative of the plurality of blocks. The controlling unit performs an image processing on a block data basis to generate print data. The image processing includes a rotating processing for rotating each block.
Another aspect of the present invention provides a printing control method includes steps (a)-(e). Step (a) sets a drawing region in which a region of an original image falls. Step (b) draws the original image in the drawing region so that a center of the region of the original image is in coincidence with a center of the drawing region. Step (c) divides the drawing region into a plurality of blocks, each block having a size and shape identical to one another Step (d) generates block data representative of the plurality of blocks. Step (e) performs an image processing on a block data basis to generate print data. The image processing includes a rotating processing for rotating each block.
The above and other objects, features and advantages of the invention will become more apparent from reading the following description of the preferred embodiments taken in connection with the accompanying drawings in which:
A printing control system and a printing control method according to first embodiment of the present invention will be described while referring to the accompanying drawings wherein like parts and components are designated by the same reference numerals to avoid duplicating description.
In the following description, the expressions “front”, “rear”, “upper”, “lower”, “right”, and “left” are used to define the various parts when the printing control system is disposed in an orientation in which it is intended to be used.
The host computer 1 includes an application 11 with which the user can directly input a print command; a graphics device interface (GDI) 12, which is a graphical subsystem provided in an operating system; a drawing device 13, such as a printer driver; and a block data generating device 14 for generating block data by dividing an image to be printed (print data) into tiles of a prescribed size. The block data generating device 14 may also be incorporated as a function of the drawing device 13.
The printer controller 3 includes a print controlling device 31, a receiver 32, a frame data storage unit 33, a block position data storage device 34, a data processor 35, a raster data block storage device 36, an image processor 37, a line data storage device 38, and an outputting device 39. The printer controller 3 is also connected to a printing engine 4.
In S104 the drawing device 13 draws the print data in a region, for example, on a virtual region in a memory (not shown) or a screen (not shown), which will hereinafter be referred to as the “drawing region,” so that the center of the region of the print data is substantially in coincidence with the center of the drawing region. The drawing region is larger than the region of the original image that is, for example A4 size, to be printed (print data) and is an integral multiple of the prescribed size for tile images produced by the block data generating device 14.
After the drawing device 13 draws the print data, in S105 the block data generating device 14 divides the drawing region for the print data into tile images and generates a block of data for each tile image. Each block is then compressed using a technique such as Modified Huffman (MH) coding. These processes help to reduce the amount of memory required for image processing.
FIGS. 3(b), 3(c), and 3(d) show the block layout of this compressed data as the original image is rotated clockwise 90 degrees, 180 degrees, and 270 degrees, respectively. When the image is rotated 90 degrees, as shown in
While the drawing device 13 draws the image so that the center of the original image region P1 is aligned with the center of the drawing region P2, there obviously must be some allowance for error in positioning due to the resolution of the image determined by the size of the printed dots and the like and, consequently, a slight shift in the images, but of a degree that does not affect printing quality.
Next, in S107, the block data generating device 14 generates additional information, such as the size of each block of compression data.
In S107 the block data generating device 14 generates data for a list of additional information in which the additional information A for all blocks is concatenated into a list. In S108 the host computer 1 transmits the list of additional information and the blocks of compression data to the printer controller 3 via the communication path 2.
In S201 the receiver 32 of the printer controller 3 receives the list of additional information and blocks of compressed data and notifies the print controlling device 31 of this reception. In S202 the print controlling device 31 commands the receiver 32 to transmit the received blocks of compressed data for storage in the frame data storage unit 33. The print controlling device 31 also receives the list of additional information from the receiver 32, as well as information on the orientation of paper mounted in a paper cassette that is managed by the printer controller 3. Based on this data, the print controlling device 31 creates a list of block position data in S203 and stores the results in the block position data storage device 34. The list of block position data is created by appending the rotation process data for each block of compressed data, and address data indicating where each block of compressed data is stored in the frame data storage unit 33 to the additional information for each respective block.
During this process, the print controlling device 31 calculates a new block layout for the compression data after page rotation and creates a list of block position data in an order for sequentially reading blocks of compressed data to process the data according to the new layout. Therefore, if rotation is required based on the loaded orientation of the paper in addition to rotation specified by the host computer, the printer controller 3 can readily perform a rotation process based on the rotation process data in this list.
The frame data storage unit 33 stores blocks of compressed data for at least one page worth. After at least one page worth of compressed data has been stored in the frame data storage unit 33, the data processor 35 is commanded by the print controlling device 31 to read each block of compressed data from the frame data storage unit 33 based on the list of block positioning data stored in the block position data storage device 34. In S204 the data processor 35 performs processes for decompressing and rotating the blocks of compressed data read from the data processor 35. In S205 the data processor 35 stores the processed data in the raster data block storage device 36.
After a prescribed amount of block data (such as one block worth of raster data) has been stored in the raster data block storage device 36, the print controlling device 31 commands the image processor 37 in S206 to read block data required for image processing and to perform image processing, such as gamma correction, UCR/BG (under color removal/black generation), and smoothing.
These processes are performed in parallel with the storage operation. Hence, after the image processor 37 has completed processing the blocks B61-B11 and shifts to the next block of raster data including blocks B62-B12, the data processor 35 begins reading the next blocks B63-B13 from the frame data storage unit 33 as shown in
In S207 data processed by the image processor 37 is stored in the line data storage device 38. The line data storage device 38 saves print data that the print engine can process directly. Once a fixed amount of line data, such as eight lines worth of data, has been stored in the line data storage device 38, the print controlling device 31 commands the outputting device 39 to transmit this line data to the printing engine 4. In S208 the outputting device 39 reads the line data from the line data storage device 38 and transmits the line data to the printing engine 4.
Here, the line data saved in the line data storage device 38 is data for the size of the drawing region P2 shown in
With the printing control system and printing control method of the preferred embodiment described above, a large load is not placed on the printer driver of the host computer 1 nor on the printer controller 3. Further, a printing process including rotation processes can be reliably executed without shifting the printed image. Hence, it is possible to conserve memory capacity and to achieve high processing speeds since no special processes are required.
Further, when printing a plurality of pages including rotated pages condensed and arranged on a single sheet of paper, the print data is drawn in the center of a drawing region configured of tile-like block data. Accordingly, no positional deviation occurs among the plurality of pages condensed on the same printing surface.
While the block data generating device 14 compresses all block data in the preferred embodiment, the block data generating device 14 may also be configured to selectively compress block data. In this case, it is possible to notify the printer controller 3 by indicating whether compression exists using the first compression flag A1 or second compression flag A2 in the additional information A of
Further, while the data processor 35 rotates the block data in the preferred embodiment, the image processor 37 may be configured to perform this rotation instead. In this case, the image processor 37 performs the rotation after reading rotation data for each block data from the block position data storage device 34 or after receiving the rotation data for each block data from the data processor 35.
Next, a second embodiment of the printing control system and printing control method according to the present invention will be described. The second embodiment differs from the first embodiment in that the block data generating device 14 does not generate the additional information A in a list, but appends the additional information A to the head of each block of compressed data and transmits the blocks of compressed data to the printer controller 3. Accordingly, the print controlling device 31 may generate a simplified list of block position data (rotation data and address data) and may store this list in the block position data storage device 34.
Here, a printing operation performed on the printing control system according to the second embodiment will be described. As in the operation according to the first embodiment, an original image is divided into tile images and blocks of compressed data are generated from the tile images. The block data generating device 14 appends the additional information A of each block to the head of the respective block of compressed data. Here, the additional information A in the second embodiment has the same structure as that shown in
Upon receiving the blocks of compressed data, the print controlling device 31 extracts the additional information A, creates a list of block position data based on the additional information A, and stores the list in the block position data storage device 34. In the second embodiment, the list of block position data includes rotation data for each block of compressed data and address data indicating where the blocks are stored in the frame data storage unit 33, but omits data indicating the method of compression and the like included in the additional information A.
The data processor 35 reads data according to the additional information A appended to each block of compressed data and the data described in the list of block position data, performs decompression and rotation processes on this data, and transmits the result to the raster data block storage device 36. The remaining steps of this process are the same as described in the first embodiment.
The second embodiment not only obtains the same effects as those described in the first embodiment, but can also reduce the volume of block position data stored in the block position data storage device 34. Accordingly, the second embodiment reduces the memory capacity required for this process, enabling the data processor 35 to execute the process more efficiently.
Next, a third embodiment of the printing control system and printing control method according to the present invention will be described.
Next, a printing operation performed by the printing control system according to the third embodiment will be described. First, the drawing device 13 of the host computer 1 performs drawing in the drawing region, as described in the first embodiment. The first block data generating device 15 then forms blocks in the drawing region, with the original image centered in the drawing region, using BTC or a similar compression technique, and generates blocks of data. Subsequently, the second block data generating device 16 produces macro blocks of data by combining a plurality of blocks generated by the first block data generating device 15 and compresses each macro block using MH coding or a similar technique to produce macro blocks of compressed data. In this example, each of the first blocks produced by the first block data generating device 15 are 8×8 dots in size, while the second macro blocks produced by the second block data generating device 16 are 8×8 blocks in size (in other words, 64×64 dots in size).
The second block data generating device 16 also generates additional information including the size of the compressed macro blocks, for example. The content of the additional information is identical to that in the first embodiment. The second block data generating device 16 then concatenates the additional information A for each of the compressed macro blocks in a list form and generates data for the list of additional information. The second block data generating device 16 transmits data for the list of additional information and the compressed macro blocks to the printer controller 3 via the communication path 2.
The printer controller 3 basically performs the same operations described in the first embodiment. However, since the image data is processed in units of macro blocks in the third embodiment, the data processor 35 must employ a decompressing process that decompresses both the second blocks and the first blocks.
The printing control system according to the third embodiment not only obtains the same effects as those described in the first embodiment, but can also generate compression data more efficiently by generating blocks of image data in a plurality of stages. Hence, the host computer 1 according to the third embodiment contributes to a reduced volume of data being exchanged and a lower required capacity of memory.
While the preferred embodiments described above are representative examples, a combination of these embodiments may also be employed.
For example, the methods in the second and third embodiments may be combined to generate blocks of data in a plurality of stages (macro blocks), to append additional information for each block to the head of the macro blocks of compressed data, and to subsequently transmit the compressed macro blocks to the printer controller 3. The present invention may also be employed to partially modify functions of a processing means constituting a system.
Though the drawing region is larger than the region of the original image in the above-described embodiments, the drawing region is smaller than the region of the original image. In such a case, if there are images only at a center of the original image, it produces an identical effect as the above-described embodiments.
Number | Date | Country | Kind |
---|---|---|---|
P2005-068956 | Mar 2005 | JP | national |