1. Field of the Invention
The present invention relates to an image processing apparatus and an image processing method, and particularly, to an image processing apparatus and an image processing method capable of image processing with a small memory area.
2. Description of the Related Art
In the related art, there exist image processing apparatuses which appropriately process image data transmitted from upper level devices such as a computer or a scanner, and output the image data to an image output device. For example, Japanese Laid-Open Patent Application No. 11-227263 (below, referred to as “reference 1”) discloses a technique in this field.
Below, descriptions are made of an image processing apparatus in the related art.
As an example, in
As shown in
The computer 101 includes an image data input unit 111, a data compression unit 112, and a transmission memory 113.
The image data input unit 111 receives the bitmap image data from image data stored in a memory (not illustrated) of the computer 101, or image data stored in other devices connected through wireless or cable communication networks such as telephone lines or LAN (Local Area Network) cables. In addition, the image data input unit 111 outputs the received bitmap image data to the data compression unit 112.
The data compression unit 112 compresses the received image data to form image data of a format supported by a printer driver, and outputs the compressed image data to the transmission memory 113.
The transmission memory 113 stores the compressed image data and outputs a preset amount of the compressed image data to the printer controller 102 at preset timings.
The printer controller 102 includes a reception memory 121, a data decompression unit 122, a frame memory 123, an image processing unit 124, and a line memory 125. The printer controller 102 receives the compressed image data from the computer 101, and stores the compressed image data in the reception memory 121.
The data decompression unit 122 decompresses the image data received from the reception memory 121 and generates the bitmap image data, and outputs the decompressed bitmap image data to the frame memory 123.
The frame memory 123 stores an amount of the bitmap image data equivalent to one frame (one picture), and outputs the stored bitmap image data to the image processing unit 124.
The image processing unit 124 performs color correction, color transformation, dither processing, edge processing, and other image processing on the bitmap image data, and outputs the processed image data to the line memory 125.
The line memory 125 outputs the image data to the printer engine 103, for example, by means of FIFO (First-In First-Out).
The printer engine 103 generates and outputs printing images from the image data received from the printer controller 102.
It should be noted that processes in the printer system 100 as shown in
In order to realize a high-speed color printer having high speed for printing color images, a tandem-type printer engine was proposed. The tandem-type printer engine has four image generation units and can generate CMYK four color images at the same time. With the tandem-type printer engine, the speed of generating a color image is the same as that of generating a monochromatic color.
Below, a printer controller adapted to support the tandem-type printer engine is described.
As shown in
The printer controller 202 receives the compressed image data from the computer 101, and stores the compressed image data in the reception memory 221.
The data decompression unit 222 decompresses the image data received from the reception memory 221 and generates the bitmap image data, and outputs the decompressed bitmap image data to the frame memory 223.
The image processing units 224-1 to 224-4 carry out color correction, color transformation, dither processing, edge processing, and other image processing on the bitmap image data for the four colors, respectively, output the processed image data to the printer engine 103 through the corresponding line memories 225-1 to 225-4. Usually, the line memories 225-1 to 225-4 for different colors have different capacities.
As shown in
However, as shown in
The present invention may solve one or more problems of the related art.
A preferred embodiment of the present invention may provide an image processing apparatus and an image processing method capable of image processing with a small memory area.
According to a first aspect of the present invention, there is provided an image processing apparatus for compressing and decompressing an image data, comprising:
a compression unit configured to compress the image data to a predetermined compression format;
an omission secondary compression unit configured to omit a portion of the compressed image data given by the compression unit, divide the compressed image data into blocks having predetermined block sizes, and perform secondary compression to generate omission secondary compression image data;
a data recovery unit configured to recover the omission secondary compression image data into the compressed image data;
an image rotation unit configured to rotate the compressed image data decompressed by the data decompression unit according to the block sizes;
a block storage unit configured to store the rotated compressed image data in units of the block sizes; and
a data decompression unit configured to decompress the compressed image data stored in the block storage unit according to predetermined conditions.
According to a second aspect of the present invention, there is provided an image processing apparatus, comprising:
an upper level device that includes
a control device that includes
As an embodiment, the omission secondary compression unit compares two successive compressed image data groups given by the compression unit, and omits the portion of the compressed image data groups according to comparison results.
As an embodiment, the omission secondary compression unit generates page information including address information of the omission secondary compression image data based on a predetermined rotational direction of the image rotation unit and an order of data decompression in the data decompression unit.
As an embodiment, the data recovery unit inserts predetermined values into color information and color selection information in the compressed image data omitted by the omission secondary compression unit.
As an embodiment, the image processing apparatus includes plural data decompression units or plural image rotation units when the image data includes plural colors.
According to a third aspect of the preset invention, there is provided an image processing method for compressing and decompressing an image data, comprising the steps of:
compressing the image data to a predetermined compression format;
omitting a portion of the compressed image data obtained in the step of compressing, dividing the compressed image data into blocks having predetermined block sizes, and performing secondary compression to generate omission secondary compression image data;
recovering the omission secondary compression image data into the compressed image data;
rotating the compressed image data produced in the step of recovering according to the block sizes;
storing the rotated compressed image data in units of the block sizes; and
decompressing the compressed image data stored in the step of storing according to predetermined conditions.
As an embodiment, the step of omitting includes a step of comparing two successive compressed image data groups obtained in the step of compressing, and omitting the portion of the compressed image data groups according to comparison results.
As an embodiment, the step of omitting includes a step of generating page information including address information of the omission secondary compression image data based on a predetermined rotational direction in the step of rotating and an order of data decompression in the step of decompressing.
As an embodiment, the step of recovering includes a step of inserting predetermined values into color information and color selection information in the compressed image data omitted by the omission secondary compression unit.
According to a fourth aspect of the present invention, there is provided a storage medium wherein an image processing program is stored, said image processing program being executable in a computer to drive the computer to execute the steps of:
compressing the image data to a predetermined compression format;
omitting a portion of the compressed image data obtained in the step of compressing, dividing the compressed image data into blocks having predetermined block sizes, and performing secondary compression to generate omission secondary compression image data;
recovering the omission secondary compression image data into the compressed image data;
rotating the compressed image data produced in the step of recovering according to the block sizes;
storing the rotated compressed image data in units of the block sizes; and
decompressing the compressed image data stored in the step of storing according to predetermined conditions.
According to the present invention, it is possible to perform image processing with a small memory area, and this reduces the capacity of the memory of an image processing apparatus.
These and other objects, features, and advantages of the present invention will become more apparent from the following detailed description of preferred embodiments given with reference to the accompanying drawings.
Below, preferred embodiments of the present invention are explained with reference to the accompanying drawings.
First, a general description of the present invention is made.
In an image processing apparatus of the present invention, in order to reduce the amount of data, compressed image data are generated with a portion thereof being omitted. In addition, the image processing apparatus of the present invention includes an image rotation unit for rotating the compressed image data without decompression, and a data decompression unit for decompressing the compressed image data after the rotation.
That is, in order to obtain an image processing apparatus with low cost, it is important to reduce the amount of data. Further, in addition to performing general data compression, it is also important to omit a portion of recoverable data, and edit compressed images (enlarge, reduce, paste, rotate, and others), while considering characteristics of the image data.
In embodiments of the present invention, a BTC (Block Truncation Coding) compression technique is used for compression, and additionally, various methods of data reduction and data edition are added while considering features of the BTC compression technique. Here, the BTC compression is a method of compression which utilizes the fact that adjacent dots have similar tints in image data sets, and BTC compression data include plural pieces of color information and color selection information indicating the typical color of each dot.
In
Below, a method of determining the typical four colors is described.
As shown in
Next, as shown in
Next, as shown in
In BTC compression, when performing color conversion, for example, from RGB to CMY, or image processing, for example, color correction, data processing may be performed only on the forward portion in the above-mentioned data format in
In addition, in the BTC compression described above, as an example, a method involving four-color approximation is explained, but the color space may be divided only once, that is, to make two-color approximation. In the latter case, the image quality might be degraded slightly, but the amount of data is reduced to be only half; hence it is expected that this method may be effective.
For example, the compression and decompression methods described in the above-mentioned Japanese Laid-Open Patent Application No. 11-227263 or in the Japanese Laid-Open Patent Application No. 60-87596 (below, referred to as “reference 2”) may be used in the BTC compression technique. In reference 1, the typical colors in the BTC compression are fixed to, for example, four colors. However, in common business documents created by spreadsheet software or word-processing software, usually, the number of colors in used is less than that in natural images, in other words, in the above-described compression technique, although four typical colors are used as an approximation, actually, only one or two colors are sufficient in many cases. Further, in many cases, the colors used before or after a block (in the above example of compression, the 4×4 block) are the same.
Thus, in the present invention, even for image data in the same page, the data are created such that a natural image in the page is expressed by BTC data of four typical colors, and another portion in the page is expressed by BTC data of two or one typical colors. In addition, data in the present block are compared to data in the prior block, and data having the same values (color information, color selection information, and others) are omitted, thereby, the amount of data is reduced.
Further, with respect to the compressed image data, which are subject to data compression and data omission, common compression techniques, such as JBIG (Joint Bi-level Image experts Group), or MH (Modified Huffman), are used to perform secondary compression. This can effectively reduce the amount of data. In this case, a printer controller receives the secondary compression image data and stores the received secondary compression image data in a reception memory temporarily, sequentially decompresses the secondary compression image data, and writes the BTC compression data in a frame memory.
Here, when it is necessary to rotate a page, usually, the BTC compression data corresponding to one side of a page are expanded in a frame memory, and by changing the reading position, the page can be rotated. However, in this method, since at least an area of the frame memory corresponding to one side of a page has to be used, and this is not effective.
Upon that, in the present invention, large blocks are formed each including plural (m×n) BTC blocks, each of which BTC blocks has a predetermined block size. By carrying out data compression and data omission in units of the large blocks, rotation of the compressed data itself can be realized without decompression.
Below, the large block method is described.
As shown in
In addition, each of the above mentioned BTC blocks includes plural dots. It should be noted that although it is illustrated that one BTC block includes 4×4 dots in
In embodiments of the present invention, common compression techniques, such as JBIG or MH are used to perform common compression (secondary compression) on the BTC data in units of large blocks. When the printer controller receives BTC secondary compression image data in units of large blocks, since the data are stored in the reception memory in order of the large blocks, by changing the order of decompressing the secondary compression image data, it is possible to realize rotation of images (pages) without decompressing all of the secondary compression image data.
In this process, since it is necessary for the printer controller to know where the secondary compression image data in units of large blocks are stored in the memory, it is necessary to receive page lists indicating addresses of the large blocks from printer drivers. Due to this, the amount of data transmitted from a computer to the printer increases more or less, but this increase is small compared to the total reduction of the data.
Next, preferred embodiments of the present invention are explained.
It should be noted that a color printer is taken as an example of the image processing apparatus of the present embodiment as shown in
As shown in
Here, it is assumed that the image processing apparatus 700 has functions of the computer 701 and the printer controller 702. The computer 701 and the printer controller 702 may be separate devices, or they may be integrated with each other. In the following descriptions, bitmap image data are used as an example of the image data subject to image processing, but the present embodiment is not limited to this.
<Computer 701>
The computer 701 includes an image data input unit 711, a data compression unit 712, an omission secondary compression unit 713, and a transmission memory 114.
The image data input unit 711 receives the bitmap image data from image data stored in a memory (not illustrated) of the computer 701, or image data stored in other devices connected through wireless or cable communication networks. In addition, the image data input unit 711 outputs the received bitmap image data to the data compression unit 712.
The data compression unit 712 compresses the received image data into a compression format available in a printer driver. For example, in the present embodiment, the above-mentioned BTC compression method is used. Next, the data compression unit 712 outputs the BTC compression image data to the omission secondary compression unit 713.
The omission secondary compression unit 713 performs compression (the so-called “secondary compression”) on the BTC compression image data in units of large blocks by means of compression techniques, such as JBIG (Joint Bi-level Image experts Group), or MH (Modified Huffman). Here, for example, one large block includes 8×8 BTC blocks.
During the secondary compression, the omission secondary compression unit 713 confirms the typical colors used in the BTC blocks in the large blocks, and when only two colors are used in all the BTC blocks, the omission secondary compression unit 713 deletes the other two unused colors. Due to this, it is sufficient that the color selection information have one bit for one dot, so that the amount of data is reduced by half compared to the case in which four typical colors exist.
In addition, when there is only one typical color used in all BTC blocks in the large blocks, for example, a blank space, a black and white drawing, since the color selection information is not necessary in this case, and it is sufficient to just output color information of one color, the amount of data can be reduced more. Then, the final number of pieces of the color information is added to the header of the corresponding large block.
Next, in order to further reduce the data, the omission secondary compression unit 713 compares the BTC data group processed immediately previously to the newly input BTC data group. Specifically, the omission secondary compression unit 713 compares RGB color information and color selection information in units of bytes, then, if the values of the bytes in the respective BTC data groups are different, a value “1” is assigned to the bytes, and if the values of the bytes in the respective BTC data groups are the same, a value “0” is assigned to the bytes. Then, a header is created, which is called a “difference header” and includes the same number of bits as the number of the bytes in the BTC data group. Then, omission data of the two BTC data groups are created respectively, each of which includes the difference header and data bytes following the difference header. The data bytes in the omission data of one BTC data group only include bytes having different values from the same byte in the other BTC data group, and the other bytes in the one BTC data group are deleted.
Below, the above-described process is explained.
In
As shown in
The omission secondary compression unit 713 sends the omission secondary compression image data to the transmission memory 714.
The transmission memory 714 stores the omission secondary compression image data and then outputs the omission secondary compression image data to the printer controller 702 through a data transmission unit (not illustrated).
In the above, the secondary compression is carried out in units of preset block sizes (large block), additionally, since the secondary compression involves variable-length compression, the printer controller 702, which receives the compressed data, cannot determine the starting addresses of the large blocks.
For this reason, when the omission secondary compression unit 713 stores the omission secondary compression image data in the transmission memory 714, the omission secondary compression unit 713 generates page information (page list) including address information of the omission secondary compression image data based on a preset rotational direction of image rotation units 723 and the order of data decompression in data decompression units 725, and stores the page information in the transmission memory 714. That is, the page list including addresses of the secondary compression image data is generated in order of decompression of the large block while taking into consideration the rotational direction of the data. The omission secondary compression image data and the page list are transmitted to the printer controller 702. In this way, the printer controller 702 can easily determine the starting addresses of the large blocks.
It should be noted that the page list may also include information related to the page in addition to the address information, for example, information indicating the compression method used in the secondary compression image data capacity, day and time of processing, and contents of the image data.
<Printer Controller 702>
Below, the printer controller 702 is explained. In the following, when explaining image rotation in units of large blocks, as an example, original image data as shown in
The original image data shown in
The printer controller 702 includes a reception memory 721, data recovery units 722-1 and 722-2, data rotation units 723-1 and 723-2, large block buffers (block storage unit) 724-1 and 724-2, data decompression units 725-1 and 725-2, image processing units 726-1 to 726-4, and line memories 727-1 to 727-4.
In the printer controller 702 shown in
In addition, the data recovery units 722-1 and 722-2, the data rotation units 723-1 and 723-2, the large block buffers 724-1 and 724-2, and the data decompression units 725-1 and 725-2 perform image processing on image data of at least one color out of image data of plural colors.
In the following descriptions, it is assumed that among the image data of CMYK four colors, the data recovery unit 722-1, the data rotation unit 723-1, the large block buffer 724-1, and the data decompression unit 725-1 perform image processing on image data of cyan (C) and magenta (M) colors; the data recovery unit 722-2, the data rotation unit 723-2, the large block buffer 724-2, and the data decompression unit 725-2 perform image processing on image data of yellow (Y) and black (K) colors. The effect of reducing the required memory capacity of the line memories 727 is described below.
Data omission and secondary compression are performed on image data of the large block A (901) through the large block AV (904), and the resulting image data are stored in the reception memory 721.
As described above, in the page list, which is sent from the computer 701 together with the omission secondary compression image data, there is information of “rotate by 90 degrees in the clockwise direction”, and based on this information, the address information of the large blocks, specifically, from a large block AO (903) to a large block H (902) in order, are written down.
The data recovery units 722-1 and 722-2 in the printer controller 702 refer to the page list and decompress the data, which are compressed in the secondary compression, from the large block AO (903) to the large block H (902) in order. In addition, the data recovery units 722-1 and 722-2 confirm headers of the large blocks and the difference headers of the BTC data groups, and recover the data.
As described above, the difference header of BTC data groups indicates the difference between the immediately preceding BTC data group and newly input BTC data group. That is, after comparing data, the byte having the same value assumes the value of the preceding byte, and for the bytes having different values, the value added to the next byte is used to form a data sequence. Therefore, following a procedure reverse to the data omission procedure as described with reference to
The header of the large block includes data indicating how many colors the color information corresponds to in all the BTC data in the large block. When the color information used in all the BTC data in the large block corresponds to two colors or one color, the data recovery units 722-1 and 722-2 collect the omitted color information and color selection information, and recover the data so that the data can be dealt with as BTC data of four typical colors in the later stage image processing units 726-1 to 726-4.
Since the color information may change along with the BTC data, it is necessary to adjust the data length of the recovered BTC data. In this case, for example, by inserting “zero” or preset values, it is possible to adjust the data length.
Below, this process is described in detail.
As shown by the BTC format 1001 in
As shown by the BTC format 1101 in
Next, the image rotation units 723-1 and 723-2 carry out image rotation processing on the BTC data of four typical colors, which correspond to one column of a large block recovered by the data recovery units 722-1 and 722-2, and expand the rotated compression image data in the large block buffers 724-1 and 724-2, respectively.
<Image Rotation Units 723-1 and 723-2>
Below, functions of the image rotation units 723-1 and 723-2 are described in detail.
The image rotation units 723-1 and 723-2 rotate, in a preset direction, the image data recovered by the data recovery units 722-1 and 722-2 according to address information of the large blocks which are shown in the page list and are arranged in order of reading the large blocks. Due to this, the image data have a state as that shown in
In
For this reason, next, the image rotation units 723-1 and 723-2 re-arrange the BTC data in the large blocks. Below, an explanation is made of the operation of re-arranging the BTC data in the large block with a large block A (1201) in
Since the BTC compression involves a fixed data length, after decompression of secondary compression image data, recovery by using the difference header, and addition of the omitted color information in the data recovery units 722-1 and 722-2, the starting addresses of all BTC data in the large blocks are known. Due to this, re-arrangement of the BTC data 1202, 1203, 1204, 1205 in the large block A (1201) can be realized easily.
In
Next, the image rotation units 723-1 and 723-2 further carry out image rotation inside the BTC blocks. As described above, this can be easily realized by re-arranging color selection information in the BTC data format. The image data after the rearrangement are shown in
The BTC data shown in
Due to the above process, by a series of operations such as BTC compression, creation of large blocks, color information omission, and difference header omission, it is possible to greatly reduce the amount of data compared to the related art, and thus, greatly reduce the required memory capacity.
In addition, the BTC data stored in the large block buffers 724-1 and 724-2 are called out when necessary, and the data decompression units 725-1 and 725-2 decompress the BTC data to generate bitmap image data. Further, the image processing units 726-1 to 726-4 carry out color conversion from RGB to CMY, black generation (BG), under color removal (UCR), registration error correction, dither processing, or edge processing on the bitmap image data generated by the data decompression units 725-1 and 725-2. The ultimately obtained image data are stored in the line memories 727-1 through 727-4, and then are sent to the printer engine 703.
The printer engine 703 receives the image data and forms an image on a printing medium according to the received signal.
<Method of Saving Line Memory 727>
Below, a method of saving the line memories 727-1 through 727-4 is described.
Generally, the BTC compression technique is characterized in that multi-level data of RGB can be obtained after decompression is performed. That is, the BTC compression technique is suitable for application to a color printer, which operates in a tandem mode and thus is able to process plural colors at the same time. However, an actual tandem-type color printer works in the way as shown in
In the above process, in the printer engine shown in
In the printer controller 702 of the present embodiment, in order to reduce the required capacities of the line memories 727-1 to 727-4, as shown in
For example, the data recovery unit 722-1, the data rotation unit 723-1, the large block buffer 724-1, and the data decompression unit 725-1 perform image processing on image data of cyan (C) and magenta (M) colors; the image processing unit 726-1 and the line memory 727-1 are used for cyan (C), and the image processing unit 726-2 and the line memory 727-2 are used for magenta (M).
In addition, the data recovery unit 722-2, the data rotation unit 723-2, the large block buffer 724-2, and the data decompression unit 725-2 perform image processing on image data of yellow (Y) and black (K) colors; the image processing unit 726-3 and the line memory 727-3 are used for yellow (Y), and the image processing unit 726-4 and the line memory 727-4 are used for black (K).
Due to this, it is sufficient for the line memories of magenta and black to have 3 MB in excess, and the capacity can be reduced by two-third.
According to the present embodiment, it is possible to reduce the memory capacity and realize an inexpensive printer controller.
Here, the image processing apparatus of the present embodiment may have the above hardware configuration to realize the image processing of the present invention, but the present embodiment may also be realized by executing an image processing program installed in a computer to perform the above image processing. For example, by installing the program on a common personal computer or a server, the image processing of the present embodiment can be realized very easily. In addition, by executing the program, the operations of the computer 701 and the printer controller 702 as described above can be executed.
<Hardware Configuration>
Below, descriptions are made of computer hardware configurations for the image processing of the present invention.
A computer shown in
The input unit 1501 includes a pointing device operated by a user, such as a keyboard and a mouse, for inputting various operation signals, such as instructions from the user for executing programs, or instructions from the user for inputting image data.
The output unit 1502 includes various windows used for operating the computer to execute image processing of the present invention, or a display (monitor) for displaying data, to present the process or results of execution of a control program by the CPU 1506.
In the present embodiment, for example, the image processing program to be installed in the computer is stored in a storage medium 1508, such as a CD-ROM. The storage medium 1508, in which the image processing program is stored, can be loaded in a drive device 1503, and the image processing program in the storage medium 1508 can be installed in the secondary storage unit 1504 via the drive unit 1503.
The drive unit 1503 stores programs in the storage medium 1508; due to this, by using the storage medium 1508, the image processing program of the present embodiment can be easily installed in any other computers to realize image processing of the present embodiment.
The secondary storage unit 1504 is a storage device such as a hard disk, which stores the image processing program of the present embodiment, image data used in the image processing, and control programs of the computer, and performs input or output when necessary.
The memory unit 1505 temporarily stores data when executing programs. The memory unit 1505 constitutes the above-described large block buffers and the line memories.
The CPU 1506 carries out various calculations or data input and output with hardware components of the computer based on an OS (operating system) or other control programs, and executive programs read into and temporarily stored in the memory unit 1505; and carries out overall control of the computer to realize the image processing of the present embodiment. In addition, the CPU 1506 acquires various kinds of information required when executing the programs from the secondary storage unit 1504 or stores the information in the secondary storage unit 1504.
The network connection unit 1507 is connected to a communication network; hence it is possible to acquire executive programs from other terminals connected to the communication network and transmit execution results obtained when executing executive programs, or transfer the executive programs of the present embodiment to the other terminals.
With the above hardware configuration, it is possible to realize image processing of the present embodiment by using existing devices without using any special devices, thus, at low cost. In addition, the image processing program of the present embodiment can be realized easily by just installing the image processing program of the present embodiment; thus it is possible to realize image processing with a small memory area, and reduce the memory capacity in the image processing apparatus.
<Image Processing Procedure>
Next, image processing by using the image processing program of the present embodiment is described with reference to flowcharts in
<<Compression Process>>
As shown in
Next, in step S2, the image data are compressed. In the present embodiment, there is no limitation to the image data, for example, the image data may be bitmap image data. Further, the above-mentioned BTC compression method is used for data compression.
Next, in step S3, the data omission and the secondary compression is performed on the BTC compression image data.
Specifically, two successive BTC format data groups are compared in units of bytes, and based on the comparison results, the difference header is created. Then, only bytes indicated to be different by the difference header are maintained, and other data are omitted. In this way, the amount of data is reduced.
The secondary compression is performed by using common compression techniques, such as JBIG or MH. This further reduces the amount of data.
Next, in step S4, the page list (page information), which includes addresses of the secondary compression image data, is generated in correspondence to the secondary compression image data and in order of decompression of the large blocks while taking into consideration of the rotational direction of the data in the rotation process.
Next, in step S5, the omission secondary compression image data obtained in step S3 and the page list obtained in step S5 are stored.
Next, in step S6, a preset amount of the omission secondary compression image data and the page list are transmitted to the printer controller 702 at preset timings.
<<Decompression Process>>
As shown in
Next, in step S12, the received omission secondary compression image data and the page list are stored in the memory.
Next, in step S13, the omission secondary compression image data stored in the memory in step S12 are read out for image data recovery. Specifically, with reference to the page list, the secondary compression image data are decompressed; in addition, the omitted data are recovered by confirming headers of the large blocks and the difference headers of the BTC data. Namely, following a procedure reverse to the data omission procedure as described with reference to
The header of one large block includes data indicating how many colors the color information corresponds to in all the BTC data in the large block. When the color information used in all the BTC data in the large block corresponds to two colors or one color, the omitted color information and color selection information are collected and added, and the data are recovered so that the data can be dealt with as BTC data of four typical colors in the later stage image processing.
Next, in step S14, with reference to the page list, the compression image data are rotated.
Next, in step S15, the rotated compression image data are stored in the large block buffers.
Since the image data are compressed by BTC compression, and the compression image data are further rotated, the amount of data is greatly reduced, and the required capacity of the large block buffers is small.
Next, in step S16, compression image data stored in the large block buffers are decompressed, and bitmap image data are generated.
Next, in step S17, color conversion from RGB to CMY, black generation (BG), under color removal (UCR), registration error correction, dither processing, or edge processing on the bitmap image data are carried out.
Next, in step S18, the ultimately obtained image data are stored in the line memories.
Next, in step S19, the image data stored in the line memories are sent to the printer engine serving as an image output unit.
As described above, by executing an image processing program, image processing can be realized using a small memory area, and it is possible to reduce hardware resources and the memory capacity in the image processing apparatus compared to the related art, thereby realizing an inexpensive printer controller. In addition, by installing the image processing program, it is possible to realize image processing easily.
In addition, in the embodiment of the present invention, since data omission is performed based on similarity of two compression image data groups, it is possible to reduce the amount of image data to be transmitted with high precision, and reduce the required memory capacity. In addition, since the image data can be rotated with hardware without decompression, it is possible to reduce the memory capacity. In addition, since printing data of plural colors can be generated from the compression image data at the same time, it is possible to reduce the circuitry scale.
The present invention is applicable to an image processing device able to decompress compression image data and output the decompressed image data to an image output device, for example, a controller for controlling a color printer. Certainly, the present invention is also applicable to other controllers for processing images or video.
While the present invention is described with reference to specific embodiments chosen for purpose of illustration, it should be apparent that the invention is not limited to these embodiments, but numerous modifications could be made thereto by those skilled in the art without departing from the basic concept and scope of the invention.
This patent application is based on Japanese Priority Patent Application No. 2005-227106 filed on Aug. 4, 2005, the entire contents of which are hereby incorporated by reference.
Number | Date | Country | Kind |
---|---|---|---|
2005-227106 | Aug 2005 | JP | national |