Abstract:
An image synthesis method including the steps of: executing a lossless compression of first image data of a first image in a pixel unit by utilizing a table which correlates coordinate values expressed in m bits in a color space to index values expressed in n bits that is smaller than the m bits; executing a lossless compression of second image data of a second image in a pixel unit by utilizing the table used to execute the lossless compression of the first image data; generating compressed synthetic image data by synthesizing the compressed first image data and the compressed second image data in a pixel unit; and decompressing the compressed synthetic image data in a pixel unit by utilizing the table to generate synthetic image data in which each pixel of the synthetic image data is expressed as a coordinate value in the color space.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
       [0001]    The present application is based on Japanese Patent Application No. 2008-125931 filed with Japanese Patent Office on May 13, 2008, the entire content of which is hereby incorporated by reference. 
       BACKGROUND OF THE INVENTION 
       [0002]    1. Technical Field 
         [0003]    The present invention relates to an image synthesis method, a print system, and an image synthesis program, particularly relates to an image synthesis method for synthesizing a color multi-valued image, a print system for printing an image synthesized in the image synthesis method and an image synthesis program. 
         [0004]    2. Description of Prior Art 
         [0005]    In recent years, richer contents, smaller lot, and quicker-delivery are desired in on-demand-printing markets and variable printing markets, such as direct mail, a label, POP and a report. The printer, which outputs those printed materials, is also becoming speedier each year. However, it abundantly requires considerable time to generate a raster image for high-resolution full color printing from the print data in which pictures and photographs are used. Therefore, in case when a page contains a content that requires complicated image processes, the generation capacity of raster image may become lower than printing capability. 
         [0006]    As a solution to this problem, there are methods called a form overlay method and a variable data print method. The variable data print method is a method that began to attract attention in recent years. PPML (Personalized Print Markup Language) and PPML/VDX (PPML/Variable Data Exchange) of an industry standard are used as a variable data print language. This variable data print method has a reusable object and a non-reusable object as a minimum constitutional unit. The reusable object is a common part used for a plurality of times in a plurality of pages or on the same page. The non-reusable object is a variable part used for only once in a text. Layout information in the print data clearly defines whether each variable object is a reusable object or is a non-reusable object. How a variable object group will be laid out in each page is described in the layout information. 
         [0007]    Generally, functions of an image process in the printer (or print system), which supports the variable data print language, can roughly be divided into a raster image generation (rasterization) and an image synthesis (page layout). In rasterization, image data is created by executing bit map developments of the variable objects. In that case, since the reusable objects are used over a plurality of pages, the reusable objects are cached into a memory, such as a memory and a hard disk. In the page layout, the variable objects rasterized are synthesized on a page buffer based on the layout information. 
         [0008]    When performing the cache of the rasterized reusable objects into memory, it is common to perform a data compression by a certain method in order to conserve the system resources to be used. As a data compression method, there are a variable-length coding method represented by JPEG and ZIP, and a fixed-length coding method as disclosed in Japanese Unexamined Patent Publication No. H07-336675. 
         [0009]    The variable-length coding method is adopted in respect to high compression efficiency, or from the point of a diffusion rate. However, in case when compressing image data by a variable-length coding method, since synthesizing in a compressed state is impracticable, there is a need to synthesize the image data once a decoding has been performed. That is, it implies that the decoding process occurs for the number of times that the reusable object is synthesized. As a result, in the variable-length coding method, there is a problem that page layout time delays proportional to the rate of the number of times of use and of the area ratio of the reusable object. 
         [0010]    As one method in solving this problem, there is a technique of synthesizing the image to which the block compression was performed as disclosed in the Japanese Patent Publication. In this method, since the decoding process is not required, the synthesis is done in the compressed state and the data volume handled in the synthesis process can be small when compared to the data volume in an uncompressed state after the decoding, the shorter synthesis process time can be expected. 
         [0011]    However, the block compression is a kind of lossy compression and has the problem that degradation of an image occurs at the time of decoding. Therefore, application of this method is difficult in respect to the demand of high-definition printing. 
       SUMMARY 
       [0012]    The present invention has one perspective addressing the above problem, and the major object of the present invention according to the perspective is to provide an image synthesis method, a print system and an image synthesis program that can efficiently synthesize the images. One of more specific objects of the present invention according to the perspective is to achieve the efficient synthesize of the images while preventing the degradation of the image at the time of decoding. 
         [0013]    To achieve at least one of the above-mentioned objects or other objects, an image synthesis method reflecting one aspect of the present invention including the steps of: 
         [0014]    executing a lossless compression of first image data of a first image in a pixel unit by utilizing a table which correlates coordinate values expressed in m bits in a color space to index values expressed in n bits that is smaller than the m bits; 
         [0015]    executing a lossless compression of second image data of a second image in a pixel unit by utilizing the table used to execute the lossless compression of the first image data; 
         [0016]    generating compressed synthetic image data by synthesizing the compressed first image data and the compressed second image data in a pixel unit; and 
         [0017]    decompressing the compressed synthetic image data in a pixel unit by utilizing the table to generate synthetic image data in which each pixel of the synthetic image data is expressed as a coordinate value in the color space. 
         [0018]    In the image synthesis method reflecting the other aspect of the present invention, the above-mentioned table can be established in the steps of executing the lossless compressions of the first image data of the first image and the second image data of the second image in a pixel unit. 
         [0019]    The image synthesis method reflecting the other aspect of the present invention further includes a step of comparing the number of the index values to be used for expressing a target images of synthesis with a predetermined threshold value, wherein the lossless compressions, the generation of the compressed synthetic image data, and the decompression of the compressed synthetic image data in a pixel unit are executed in cases where the number of the index values is not greater than the threshold value. 
         [0020]    The image synthesis method reflecting the other aspect of the present invention further includes a step of comparing the number of pixels each of which has a specific attribute value in a target image of synthesis with a predetermined threshold value, wherein the lossless compressions, the generation of the compressed synthetic image data, and the decompression of the compressed synthetic image data in a pixel unit are executed in cases where the number of pixels having the specific attribute value is not greater than the threshold value. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0021]    These and other objects, advantages and features of the invention will become apparent from the following description thereof taken in conjunction with the accompanying drawings in which: 
           [0022]      FIG. 1  illustrates a diagram showing a configuration of a variable print system related to a first embodiment of the present invention; 
           [0023]      FIG. 2  illustrates a flow chart showing the entire flow of the variable print system related to the first embodiment of the present invention; 
           [0024]      FIG. 3  illustrates a flow chart showing a common coding process in a printer controller related to the first embodiment of the present invention; 
           [0025]      FIG. 4  illustrates a flow chart showing a compression synthesis process in the printer controller related to the first embodiment of the present invention; 
           [0026]      FIG. 5  illustrates a flow chart showing a common decoding process in the printer controller related to the first embodiment of the present invention; 
           [0027]      FIG. 6  illustrates a diagram showing a concrete example of a common coding table related to the first embodiment of the present invention; 
           [0028]      FIG. 7  illustrates a schematic diagram showing a common coding process related to the first embodiment of the present invention; 
           [0029]      FIG. 8  illustrates a schematic diagram showing a compression synthesis process related to the first embodiment of the present invention; 
           [0030]      FIG. 9  illustrates a schematic diagram showing the common coding process related to the first embodiment of the present invention. 
           [0031]      FIG. 10  illustrates a diagram showing a configuration of a variable print system related to a second embodiment of the present invention; 
           [0032]      FIG. 11  illustrates a flow chart showing the entire flow of the variable print system related to the second embodiment of the present invention; 
           [0033]      FIG. 12  illustrates a flow chart showing an application determining process in a printer controller related to the second embodiment of the present invention; 
           [0034]      FIG. 13  illustrates a flow chart showing the application determining process in the printer controller related to a third embodiment of the present invention; 
           [0035]      FIG. 14  illustrates a flow chart showing the entire flow of the variable print system related to a fourth embodiment of the present invention; 
           [0036]      FIG. 15  illustrates a diagram showing a configuration of a conventional variable print system; 
           [0037]      FIG. 16  illustrates a flow chart showing the entire flow of the conventional variable print system; and 
           [0038]      FIG. 17  illustrates a flow chart showing the synthesis process in a conventional printer controller. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0039]    As described in the background art, in order to increase the efficiency of a variable printing, methods for classifying an object into a reusable object and a non-reusable object and for executing cache of the reusable object to a memory are used. However, in order to conserve system resources, the reusable object needs to be compressed, and a variable-length coding method is usually adopted for high compression efficiency or for a diffusion rate. 
         [0040]    Hereafter, a configuration and an operation of a conventional variable print system are outlined in reference to  FIGS. 15-17 . 
         [0041]    As shown in  FIG. 15 , the conventional variable print system is roughly configured by client PCs ( 11 A- 11 C), printer controllers ( 12 A,  12 B) and printers ( 13 A,  13 B). Each one of them is connected via a communication line. 
         [0042]    The client PCs ( 11 A- 11 C) are a personal computer in which printer driver software for creating print data is installed. The printer controllers ( 12 A,  12 B) receive the print data from the client PCs ( 11 A- 11 C), create a raster image on each page and transmit the created raster image to the printers ( 13 A,  13 B). The printers ( 13 A,  13 B) print the raster image received from the printer controllers ( 12 A,  12 B) for each page. 
         [0043]    The printer controllers ( 12 A,  12 B) are configured by a control section ( 120 ), an image generating section ( 121 ), an image synthesizing section ( 122 ), a coding section ( 123 A), a decoding section ( 124 A), printer engine I/F ( 125 ), an external memory ( 130 ) and a memory ( 140 ). 
         [0044]    When printing print data by using the variable print system of the above-mentioned configuration, a user creates variable print data by using application software installed in the client PCs ( 11 A- 11 C). The created variable print data is stored in the external memory ( 130 ) of a printer controller ( 12 B) through a communication line ( 14 ). 
         [0045]    And as shown in a flow chart of  FIG. 16 , the control section ( 120 ) of the printer controller ( 12 B) acquires layout information ( 132 ) from variable print data ( 131 ) stored in the external memory ( 130 ). From the layout information ( 132 ), the control section ( 120 ) generates a reusable image ( 142 ) included in a variable object group ( 133 ) with the image generating section ( 121 ) (S 401 ). Next, after coding (compressing) the generated reusable image ( 142 ) by the coding section ( 123 A), the coded reusable image ( 142 ) is cached to the memory ( 140 ) (S 402 ). Next, the control section ( 120 ) acquires the layout information for one page, instructs the image synthesizing section ( 122 ) for the page layout for one page, and synthesizes an image based on the layout information by the image synthesizing section ( 122 ) (S 403 ). Finally, the control section ( 120 ) sends a page image ( 141 ), to which the page layout was completed, to the printer ( 13 B) via printer engine I/F ( 125 ), and performs printing and finishing processes in the printer ( 13 B) (S 404 ). The control section ( 120 ) determines whether a printout of all pages was completed (S 405 ), and repeats the above-mentioned process until printout of all pages is completed. 
         [0046]    The details of the synthesis process of the above-mentioned step S 403  are shown in the flow chart of  FIG. 17 . First, the image synthesizing section ( 122 ) reads in the layout information for one page, which was given by the control section ( 120 ) (S 403   a ). Next, layout information for one object within the layout information for one page is read in (S 403   b ). Next, whether the object is a reusable image ( 142 ) or a non-reusable image ( 143 ) is determined (S 403   c ). In a case when the object is determined to be the reusable image ( 142 ), after a corresponding image is read from a cache (S 403   d ) and the image is decoded based on the instruction given to the decoding section ( 124 A) (S 403   e ), the image is synthesized based on the layout information (S 403   f ). On the other hand, in a case when the object is determined to be the non-reusable image ( 143 ), the image is synthesized based on the layout information (S 403   f ) after the image was generated by the image generating section ( 121 ) (S 403   h ). The image synthesizing section ( 122 ) determines whether the synthesis process of all targeted objects indicated by the layout information for one page is completed (S 403   g ), and the above-mentioned process is repeated until the synthesis process of all targeted objects is completed. 
         [0047]    Thus, in case when a variable-length coding method is used as a technique of the data compression, there is a problem that the page layout takes a considerable time. The reason is that since synthesizing images in a compressed state is impracticable, the reusable object is required to be synthesized each time after being decoded in Step S 403   e.    
         [0048]    On the other hand, there is a fixed-length block truncation code as a fixed-length coding method. The technology related to the superposition edit (include synthesis) of the compressed images with the fixed-length block truncation code is disclosed in Japanese Unexamined Patent Publication No. H07-336675. The images can be synthesized in the compressed state. However, since a block truncation code method is a kind of lossy compression, there is a problem that the degradation of images occurring at the time of decoding. 
         [0049]    In the Japanese Patent Publication, the block truncation code method compresses 4×4 pixels as one block in a block unit, and the synthesis process is realized by replacing the contents of the block. Therefore, in a case where the block boundary of two images, one of which will be the place where the image will be synthesized and the other of which will be a place where the image is synthesized from, are not aligned or in a case where only the specific pixel in a block is synthesized, since the contents of the block cannot be simply replaced, a complicated process, such as re-coding is necessary to be conducted after performing the synthesis of the content of the block. In this case, there is a problem that the page layout time will become long as well as the page layout time in the variable-length coding method. 
         [0050]    Accordingly, in the embodiments of the present invention, a fixed-length coding method is used in order to solve the problem of the above-mentioned variable-length coding method. In order to solve the problem at the time of compressing data in the block unit, a coding (compression) in a pixel unit is performed. Further, in order to solve the problem of degradation of the image in lossy compression, the technique for performing a lossless compression using a common coding table is adopted. 
         [0051]    With respect to the compression efficiency, the above-mentioned technique is inferior to the block compression, which is a type of the conventional variable-length coding method or lossy compression. However, the size of memories installed in a printer (or print system) is increasing with the recent low pricing of the memory. When considering the demand in faster/higher-definition image of a color print system of recent years, the improvement in speed of the page layout time or in the image degradation at the time of decoding are more important than the compression efficiency. From that, the above-mentioned technique can be concluded to be superior to the variable-length coding method or the block compression. 
       FIRST EMBODIMENT 
       [0052]    An image synthesis method, a print system and an image synthesis program related to a first embodiment of the present invention will be described in reference to  FIG. 1-FIG .  9  in order to describe in further detail about the above-mentioned embodiment of the present invention.  FIG. 1  illustrates a configuration of a variable print system of an embodiment of the present invention.  FIG. 2  illustrates a flow chart showing the entire flow of the variable print system of this embodiment of the present invention.  FIG. 3  illustrates a flow chart showing a common coding process in a printer controller.  FIG. 4  illustrates a flow chart showing a compression synthesis process in the printer controller.  FIG. 5  illustrates a flow chart showing a common decoding process in the printer controller.  FIG. 6  illustrates a diagram showing a concrete example of the common coding table.  FIG. 7  illustrates a schematic diagram showing the common coding process.  FIG. 8  illustrates a schematic diagram showing the compression synthesis process.  FIG. 9  illustrates a schematic diagram showing the common coding process. 
         [0053]    Firstly, a coding by indexed colors used as the foundation of a compression technology related to an embodiment of the present invention will be described. 
         [0054]    An indexed color is a kind of a color expression method of a bitmap image. The indexed color does not directly specify a color as coordinates in the color space for every pixel. The indexed color is widely known in general as a form that expresses the image by specifying the color number (index value) on the color definition table called a color map. 
         [0055]    This method is a method, which focuses on the feature that the numbers of colors used in the image is limited in many cases when the image is dominantly configured with texts or illustrations. The colors being used are previously defined by the color numbers, such as “color number 1: red 100/green 50/blue/20, and color number 2: red4/green/90/blue50.” By specifying this color number as data for every pixel, data volume is reducible while having high color resolution. Such color expression is called “indexed color” or “pseudo color”. On the other hand, the color expression, which directly specifies a color as coordinates on the color space for every pixel, is called “true color” or “full color”. 
         [0056]    The table for defining the actual corresponding color and color number in the indexed color is called “color map”, “color lookup table” or “color palette.” For example, in case when the size of the color map is for four colors, the data needed for each pixel is 2 bits, 4 bits for 16 colors, and 8 bits for 256 colors. Since 8 bits is frequently used as a unit of data processing of CPU (Central Processing Unit), the indexed color of 256 colors is most frequently used. 
         [0057]    The indexed color is completely reproducible in an actual color from a color number. Thus, the indexed color can be considered as a kind of lossless compression. The decoding process for converting to an actual color from a color number can be performed with an easy implementation for only referring to the color map. Therefore, the decoding process will be realized by hardware (such as a video output circuit). In this case, since an image can be displayed only by transmitting a small volume of pixel data, high-speed drawing can be attained as long as the color map is written in the special section of the output circuit in advance. 
         [0058]    Accordingly, this embodiment of the present invention focuses on the point that the fixed-length coding is possible by replacing the color component value (coordinate value on the color space) with the color number in a pixel unit, which is a feature of the indexed color. This embodiment of the present invention also focuses on the point that a lossless compression that can completely restore an actual color from an indexed color via a color map. In this embodiment of the present invention, the variable objects can be synthesized in the color number state (the state a color is represented by a color number), that is, in a compressed state, by converting all variable objects into indexed colors by using the common color map. In the case of variable printed materials, such as a ledger sheet and an invoice, the image is mainly configured by texts and graphics, such as a logo and a ruled line. There is a very high possibility that the numbers of colors being used is limited. Thus, this is a very suitable example. Hereafter, an example of a system, which realizes the above-mentioned technique, will be described. 
         [0059]      FIG. 1  illustrates an example of the variable print system of this embodiment of the present invention. The variable print system of this embodiment of the present invention is configured by client PCs ( 11 A- 11 C), printer controllers ( 12 A,  12 B) and printers ( 13 A,  13 B). Each of which is connected via a communication line ( 14 ). 
         [0060]    The client PC ( 11 A,  11 B, or  11 C) is a personal computer in which the printer driver software for creating print data is installed. The client PC ( 11 A,  11 B, or  11 C) can be used for monitoring the processing state of the printer controller ( 12 A or  12 B) or for displaying the raster image created by the printer controller ( 12 A or  12 B) for each page. 
         [0061]    The printer controller ( 12 A or  12 B) receives the print data from the client PC ( 11 A,  11 B, or  11 C). The printer controller ( 12 A or  12 B) forms the raster image for each page using the external memory ( 130 ) and the memory ( 140 ). The formed raster image is transmitted to the printer ( 13 A or  13 B) through the printer engine I/F ( 125 ). 
         [0062]    The printer ( 13 A or  13 B) prints the raster image for each page received from the printer controller ( 12 A or  12 B). The printer is not particularly limited. However, since the greatest advantage of the variable print system of this embodiment of the present invention is to make the high-speed printing of the high resolution color image possible, the printer is desired to be a model in which high-speed and high-definition printing is possible. 
         [0063]    The communication line ( 14 ) connects the printer controllers ( 12 A,  12 B) with the client PCs ( 11 A- 11 C) mutually with Ethernet. The print data generated in the client PC ( 11 A or  11 B) is transmitted to the printer controller ( 12 A or  12 B) through this communication line ( 14 ). 
         [0064]    The printer controller ( 12 A or  12 B) is configured by a control section ( 120 ), an image generating section ( 121 ), an image synthesizing section ( 122 ), a common coding section ( 123 ), a common decoding section ( 124 ), the printer engine I/F ( 125 ), the external memory ( 130 ) and the memory ( 140 ). Namely, in this embodiment of the present invention, the common coding section ( 123 ) and the common decoding section ( 124 ) are provided in place of the coding section ( 123 A) and the decoding section ( 124 A) in the conventional configuration shown in  FIG. 15 . The color map (in this embodiment of the present invention, it is called a common coding table ( 144 )) is memorized to a memory ( 140 ). Hereafter, each component will be described. 
         [0065]    The control section ( 120 ) is configured by a memory and the like, such as CPU, ROM (Read Only Memory) and RAM (Random Access Memory). The control section ( 120 ) performs a flow control regarding the image formation of the print data ( 131 ), image synthesis of the print data ( 131 ) and transmission of the print data ( 131 ) to the printer ( 13 A or  13 B). 
         [0066]    The image generating section ( 121 ) generates a raster image from the variable object group ( 133 ) stored in the external memory ( 130 ) by the instruction of the control section ( 120 ). There are a reusable image ( 142 ) to be used repeatedly within the print data and a non-reusable image ( 143 ) to be used only few times (for example, one time) within the print data in raster images ( 142 ,  143 ). 
         [0067]    The image synthesizing section ( 122 ) performs image synthesis using the reusable image ( 142 ) and the non-reusable image ( 143 ), which are recorded in the memory ( 140 ), and generates a page image ( 141 ) for one page from the instruction of the control section ( 120 ). 
         [0068]    The common coding section ( 123 ) codes (compresses) specified raster images ( 142 , 143 ) by referencing to the common coding table ( 144 ) from the instruction of the control section ( 120 ). 
         [0069]    The common decoding section ( 124 ) decodes (expands) the page image ( 141 ) by referencing to the common coding table ( 144 ) according to the instruction of the control section ( 120 ). 
         [0070]    The printer engine I/F ( 125 ) performs a control of the printer ( 13 B) and a transmission of the page image ( 141 ) to the printer ( 13 B). 
         [0071]    The external memory ( 130 ) memorizes the print data created by the client PCs ( 11 A,  11 B, or  11 C). 
         [0072]    The variable print data ( 131 ) is configured by the layout information ( 132 ) and the variable object group ( 133 ). 
         [0073]    The object information (identification name and whether it is the reusable object or not, and so on) of the variable object group ( 133 ) and the information (name of a layout object, origin of coordinates of where the object will be laid out, width/height of the object) related to the page layout are described in the layout information ( 132 ). 
         [0074]    The variable object group ( 133 ) includes page description language data (PS (Post Script), PDF (Portable Document Format) and EPS (Encapsulated Post Script)), raster image data (JPEG and TIFF) and vector image data (SVG (Scalable Vector Graphics)). The variable object group ( 133 ) does not need to be stored in the external memory ( 130 ) of the printer controller ( 12 B). The variable object group ( 133 ) may be stored in a remote database or a share file system. 
         [0075]    The memory ( 140 ) temporarily memorizes the page image ( 141 ) created in the image synthesizing section ( 122 ) and the raster images ( 142 , 143 ) generated in the image generating section ( 121 ). These data are transmitted to the external memory ( 130 ) and the printer engine I/F ( 125 ) by the control section ( 120 ). 
         [0076]    The page image ( 141 ) is an image that illustrates the contents of the page to be printed. The page image ( 141 ) is transmitted to the printer ( 13 A or  13 B) by the control section ( 120 ). 
         [0077]    The reusable image ( 142 ) is a raster image to be used a plurality of times in a document, and is generated by the image generating section ( 121 ). The fact that the image is reusable is described in the layout information ( 132 ). The reusable image ( 142 ) is cached until the creation of the page image for all the pages is completed. 
         [0078]    The non-reusable image ( 143 ) is a raster image to be used only few times (for example, one time) in a document, and is generated by the image generating section ( 121 ). For example, in the case of direct mail, a customer name and a customer address can be included. The fact that the image is non-reusable is indicated in the layout information ( 132 ). After the use, the non-reusable image is promptly eliminated from the memory ( 140 ). 
         [0079]    The common coding table ( 144 ) is a common color map by which a color number (index value) and actual color component value (coordinate value on a color space) are defined. The size of a color map shall be defined in advance by the limited numbers of colors (256 colors or 65536 colors) from which the effect of the image synthesis method of this embodiment of the present invention can be expected. The common coding table ( 144 ) is held in the memory ( 140 ) until the creation for all pages is completed. The concrete contents of the common coding table are illustrated in  FIG. 6 . 
         [0080]    The above-mentioned image synthesizing section ( 122 ), common coding section ( 123 ) and common decoding section ( 124 ) may be configured as hardware. A configuration is also possible where an image synthesis program to have a computer function the image synthesizing section ( 122 ), the common coding section ( 123 ) and the common decoding section ( 124 ). The computer can be configured so that the image synthesis program may operate on the control section ( 120 ). Hereafter, the image synthesis method of this embodiment of the present invention will be described. 
       [The Entire Flow] 
       [0081]    Firstly, the entire flow of the variable print system of this embodiment of the present invention will be described in reference to the flow chart of  FIG. 2 . 
         [0082]    A user creates variable print data using the application software installed in the client PC ( 11 A,  11 B, or  11 C). The created variable print data is stored in the external memory ( 130 ) of the printer controller ( 12 A or  12 B) through the communication line ( 14 ). 
         [0083]    Next, in Step S 101 , the control section ( 120 ) of the printer controller ( 12 A or  12 B) acquires the layout information ( 132 ) from the variable print data ( 131 ) stored in the external memory ( 130 ), and generates the reusable images ( 142 ) included in the variable object group ( 133 ) from the layout information ( 132 ) with the image generating section ( 121 ). 
         [0084]    Next, in Step S 102 , after the control section ( 120 ) compresses the generated reusable images ( 142 ) via the common coding section ( 123 ), the generated reusable images ( 142 ) will be cached in the memory ( 140 ). The details of this common coding process will be described later. 
         [0085]    Next, in Step S 103 , the control section ( 120 ) acquires the layout information for one page, and instructs the image synthesizing section ( 122 ) of page layout for one page. The image synthesizing section ( 122 ) synthesizes an image based on the layout information. In that case, the synthesis is performed in a compressed state. The details of this image synthesis process will be described later. 
         [0086]    Next, in Step S 104 , the control section ( 120 ) decodes the page image ( 141 ) having the page layout completed with the common decoding section ( 124 ), and sends the page image ( 141 ) to the printer ( 13 B) via the printer engine I/F ( 125 ). The details of this common decoding process will be described later. 
         [0087]    In Step S 105 , the control section ( 120 ) determines whether the printout for all pages has been completed, and returns to Step S 103  in case when the printout for all pages is not completed. Then, the above-mentioned process is repeated until the printout of all the pages is completed. 
         [0088]    The above-mentioned flow illustrated the case where the common decoding process (S 104 ) was performed by the common decoding section ( 124 ) of the printer controller ( 12 B). However, in case when the hardware on the printer engine I/F ( 125 ) or the printer ( 13 B) is able to decode data, the common decoding section ( 124 ) can be omitted. 
       [Common Coding Process] 
       [0089]    Next, the details of the common coding process of Step S 102  will be described in reference to the flow chart of  FIG. 3 . This common coding process is executed by the common coding section ( 123 ) in accordance with the control of the control section ( 120 ). 
         [0090]    Firstly, one of the data of the raster images ( 142 ,  143 ) specified by the control section ( 120 ) is read in Step S 102   a.    
         [0091]    Next, common coding is performed while scanning all the pixels in the read image. A targeted pixel shall move from the starting point (usually upper left) of an image in order of the main scanning direction (horizontal)/the sub-scanning direction (vertical). Concretely, the color component value of the targeted pixel is read in Step S 102   b.  Whether the color component value of the read targeted pixel is already registered in the common coding table ( 144 ) is determined in Step S 102   c.  In case when the color component value is not registered, the color component value is registered into the common coding table ( 144 ). In the common coding table ( 144 ), the registration is performed after the sequential color numbers (0—(size of the common coding table—one)), which will be a new code, are assigned. 
         [0092]    Next, a code (color number) corresponding to the color component value is acquired from the common coding table ( 144 ) in Step S 102   d.    
         [0093]    Next, the acquired code (color number) is written in as compressed data in Step S 102   e.    
         [0094]    Whether the coding of all of the data of the specified raster images ( 142 ,  143 ) has been completed or not is determined in Step S 102   f.  Then, the above-mentioned process is repeated until the coding of all of the data of the specified raster images ( 142 ,  143 ) completes. A concrete process image of this common coding process is illustrated in  FIG. 7 . 
         [0095]    In  FIG. 3 , whether the color component value is registered in the common coding table in a pixel unit is determined. However, as it is easy to understand when imagining the text and the solid coated section, there is a very high possibility that the targeted pixel and a vicinity pixel surrounding the targeted pixel are set up in the same color. Focusing on this point, the common coding process may be configured to perform the access to the common coding table only in the case when the color component value of the targeted pixel and the color component value of the already scanned vicinity pixels (the left-hand of the targeted pixel, or the pixel right above) differ after the comparison of the two color component values. Thereby, the high efficiency of process can be attained. This technique may also be applied to the common decoding process and the application determining process, which will be described henceforth. 
       [Compression Synthesis Process] 
       [0096]    Next, the detail of the compression synthesis process of Step S 103  will be described in reference to the flow chart of  FIG. 4 . This compression synthesis process is executed by the image synthesizing section ( 122 ) in accordance with the control of the control section ( 120 ). 
         [0097]    Firstly, the layout information of one page received from the control section ( 120 ) is read in at Step S 103   a.    
         [0098]    Next, the layout information for one object within the layout information of one page is read in at Step S 103   b.    
         [0099]    Next, whether the object to be laid out is either the reusable image ( 142 ) or the non-reusable image ( 143 ) is determined in Step S 103   c.  In case when the object to be laid out is the reusable image ( 142 ), a corresponding image is read from a cache in Step S 103   d,  and synthesis (replacement of the color number) is performed in the compressed state without decoding in Step S 103   e.  On the other hand, in case when the object to be laid out is the non-reusable image ( 143 ), an image is generated by the image generating section ( 121 ) in Step S 103   g,  and after being compressed via the common coding section ( 123 ) in Step S 103   h,  synthesis (replacement of the color number) is performed in the compressed state in Step S 103   e.    
         [0100]    Next, the above-mentioned process is repeated until it is determined that the synthesis process of all objects indicated in the layout information of one page in Step S 103   f  is completed. A concrete processing image of this compression synthesis process is illustrated in  FIG. 8 . 
       [Common Decoding Process] 
       [0101]    Next, the detail of the common decoding process of Step S 104  will be described in reference to the flow chart of  FIG. 5 . This common decoding process will be executed by the common coding section ( 123 ) in accordance with the control by the control section ( 120 ). 
         [0102]    Firstly, the page image ( 141 ), which was specified by the control section ( 120 ) and has been compressed and synthesized, is read in Step S 104   a.    
         [0103]    Next, all of the pixels of the read page image ( 141 ) are decoded while scanning all the pixels in Step S 104   b.    
         [0104]    Next, the color component value corresponding to the code (color number) of the read targeted pixel is acquired from the common coding table ( 144 ) in Step S 104   c.    
         [0105]    Next, the acquired color component value is written in as decoded data in Step S 104   d.    
         [0106]    The above-mentioned process is repeated until it is determined that the decoding of all pixels of the specified page image ( 141 ) is completed in Step S 104   e.  The concrete processing image of this common decoding process is illustrated in  FIG. 9 . 
         [0107]    Thus, in this embodiment of the present invention, the layout information ( 132 ) is acquired from the variable print data ( 131 ). The reusable image ( 142 ) included in the variable object group ( 133 ) is generated from the layout information ( 132 ). The color component value (coordinate value on a color space) of each pixel of the reusable image ( 142 ) is converted into the color number (index value) by using the common coding table ( 144 ), and is compressed. The compressed data is cached. The image is synthesized in the compressed state at the time of image synthesis. Since the color number of each pixels of the image compressed using the above-mentioned common coding table ( 144 ) is converted into the color component value and extracted or decompressed at the time of decoding process, the image can be efficiently synthesized while controlling the degradation of the image. 
       SECOND EMBODIMENT 
       [0108]    Next, the image synthesis method, the print system and the image synthesis program related to a second embodiment of the present invention will be described in reference to  FIGS. 10-12 .  FIG. 10  is a diagram illustrating a configuration of the variable print system of this embodiment of the present invention.  FIG. 11  is a flow chart illustrating the entire flow of the variable print system of this embodiment of the present invention.  FIG. 12  is a flow chart illustrating the application determining process in the printer controller. 
         [0109]    In the above-mentioned first embodiment, the size of the common coding table ( 144 ) was set up with the fixed value in advance assuming that the image synthesis method, the print system and the image synthesis program will be used in the environment where only printing the document, such as a ledger sheet and an invoice, in which the numbers of colors used are limited. However, needless to say, there is a possibility that the printed material, in which natural pictures, such as a photograph, are abundantly used, is inputted. In that case, there is a possibility that the numbers of colors used may exceed the size of the common coding table ( 144 ). 
         [0110]    Accordingly, in this embodiment of the present invention, before performing the synthesis process of a head page, a process of determining applicability of the common coding is performed based on the numbers of colors used for all of the reusable images ( 142 ) and non-reusable image ( 143 ) to be laid out in the head page. In case when the common coding is applicable, the common coding process will be performed. In case when the common coding is not applicable, the conventional process will be performed. The reason why the target of application determination of the non-reusable image ( 143 ) is set only to the head page is that as a characteristic of the variable printing, it is common to print the pages by substituting the data of the same attribution (text, illustration and image) at the same place in the following pages. 
         [0111]      FIG. 10  illustrates an example of the variable print system of this embodiment of the present invention. In this embodiment of the present invention, the coding section ( 123 A), the decoding section ( 124 A) and the application determining section ( 126 ) are provided in the printer controllers ( 12 A,  12 B) of  FIG. 1 . Hereafter, sections that are different from the system configuration of first embodiment will be described. 
         [0112]    The coding section ( 123 A) is used when the reusable image ( 142 ) and the non-reusable image ( 143 ) of the head page are cached in the memory ( 130 ). 
         [0113]    The decoding section ( 124 A) is used when decoding the cached reusable image ( 142 ) and non-reusable image ( 143 ) of the head page. 
         [0114]    The application determining section ( 126 ) is arranged to determine whether the common coding is applicable or not by comparing the size of the predetermined threshold value to the numbers of colors used of the reusable image ( 142 ) and the non-reusable image ( 143 ) of the head page with instructions of the control section ( 120 ). The limited numbers of colors, from which the effect of the image synthesis method of this embodiment can be expected, may be arbitrary set to the threshold value. 
         [0115]    The image synthesizing section ( 122 ), the common coding section ( 123 ), the common decoding section ( 124 ), the coding section ( 123 A), the decoding section ( 124 A) and the application determining section ( 126 ) may be configured by hardware. A configuration is also possible where an image synthesis program is configured to allow the computer function as the image synthesizing section ( 122 ), the common coding section ( 123 ), the common decoding section ( 124 ), the coding section ( 123 A), the decoding section ( 124 A) and the application determining section ( 126 ). This image synthesis program may be configured to operate in the control section ( 120 ). 
       [The Entire Flow] 
       [0116]    Next, the entire flow of the variable print system of this embodiment of the present invention will be described in reference to the flow chart of  FIG. 11 . 
         [0117]    A user creates the variable print data using the application software installed in the client PC ( 11 A,  11 B, or  11 C). The created variable print data is stored in the external memory ( 130 ) of the printer controller ( 12 B) through the communication line ( 14 ). 
         [0118]    Next, in Step S 201 , the control section ( 120 ) of the printer controller ( 12 A or  12 B) acquires the layout information ( 132 ) from the variable print data ( 131 ) stored in the external memory ( 130 ). Then, the control section ( 120 ) of the printer controller ( 12 B) generates the reusable images ( 142 ) included in the variable object group ( 133 ) from the layout information ( 132 ) with the image generating section ( 121 ). 
         [0119]    Next, in Step S 202 , after the generated reusable images ( 142 ) are compressed via the coding section ( 123 A), the control section ( 120 ) caches the generated reusable images ( 142 ) to the memory ( 140 ). 
         [0120]    Next, in Step S 203 , the control section ( 120 ) acquires the layout information of one page. The control section ( 120 ) generates only the non-reusable images ( 143 ) of the head page included in the variable object group ( 133 ) with the image generating section ( 121 ). 
         [0121]    Next, in Step S 204 , after the generated non-reusable images ( 143 ) are compressed via the coding section ( 123 A), the control section ( 120 ) caches the generated non-reusable images ( 143 ) of the head page to the memory ( 140 ). 
         [0122]    Next, in Step S 205 , the control section ( 120 ) instructs the application determining section ( 126 ) to perform the application determining of the common coding based on the reusable images ( 142 ) cached in the memory ( 130 ) and the non-reusable images ( 143 ) of the head page. The details of this application determining process will be described later. 
         [0123]    In case when the common coding was determined to be applicable in Step S 206 , the control section ( 120 ) re-caches the reusable images ( 142 ) and the non-reusable images ( 143 ) of the head page into the memory ( 140 ) after the re-usable images ( 142 ) and the non-reusable images ( 143 ) of the head page are compressed via the common coding section ( 123 ) in Step S 207 . The process of the subsequent steps S 208 -S 211  is the same as Steps S 103 -S 106  of the first embodiment. On the other hand, in case when the common coding is determined to be not applicable, the conventional process will be performed. 
       [Application Determining Process] 
       [0124]    Next, the details of the application determining process of Step S 205  will be described in reference to the flow chart of  FIG. 12 . This application determining process is executed by the application determining section ( 126 ) in accordance with the control of the control section ( 120 ). 
         [0125]    Firstly, one raster image data being application determination target specified by the control section ( 122 ) is read in Step S 205   a.    
         [0126]    Next, in case when the read raster image data is compressed by the coding section ( 123 A), the raster image data will be decoded via the decoding section ( 124 A) in Step S 205   b.    
         [0127]    Next, the determination of applicability of the common coding process will be performed while extracting the color component values of all pixels in the read image. Concretely, the color component value of the targeted pixel is read in Step S 205   c.  In Step S 205   d,  whether the color component value of the targeted pixel is already registered to the common coding table or not is determined. In case when the color component value of the targeted pixel is not registered, the color component value is registered into the common coding table in Step S 205   h.  Next, the sizes of the number of the currently registered color component values in the common coding table and the predetermined threshold value are compared in Step S 205   i.  When the number of registered color component values in the common coding table exceeds the threshold value, the common coding is determined to be not applicable in Step S 205   j  and the process ends immediately. 
         [0128]    On the other hand, in case when the number of registered color component values in the common coding table is not more than the threshold value, whether the analysis of all pixels has been completed or not is determined in Step S 205   e.  When the analysis of all pixels is determined not to be complete, the process returns to Step S 205   c.  When analysis of all pixels is determined to be complete, whether the analysis of all targeted raster image data has been completed or not is determined in Step S 205   f.  When the analysis of all targeted raster image data is determined not to be complete, the process returns to Step S 205   a.  When the analysis of all targeted raster image data is determined to be complete, the common coding is determined to be applicable in Step S 205   g  and the application determining process ends. 
         [0129]    Thus, the predetermined threshold value is compared with the numbers of colors used for the reusable image ( 142 ) and non-reusable image ( 143 ) of the head page. The printing process may be executed properly even when the natural image, such as photograph, is abundantly used in the printing material by determining that the common coding process is applicable when the numbers of colors used is not more than the threshold value. 
       Third Embodiment 
       [0130]    Next, the image synthesis method, the print system and the image synthesis program related to a third embodiment of the present invention will be described in reference to  FIG. 13 .  FIG. 13  is a flow chart illustrating the application determining process of the printer controller of this embodiment of the present invention. 
         [0131]    In the above mentioned second embodiment, the numbers of colors used of the reusable images ( 142 ) and of the non-reusable images ( 143 ) of the head page were compared with the predetermined threshold value at the time when determining the applicability of the common coding process. However, other techniques can also be used. 
         [0132]    For example, in an image generating device (RIP (Raster Image Processor)), there is an image generating device that is capable of outputting, for each pixel, the attribute data along with the color component values, such as CMYK values. As the outputted attribute value, three classifications of texts, graphics and images (photographic images) are common. Among them, a text portion and a graphics portion have a high possibility that the numbers of colors used, such as black monochrome and solid coating, are very little. Conversely, an image portion has a high possibility that the numbers of colors used is very large. Focusing on this point, whether the common coding process is applicable or not is determined based on the quantity of pixels equivalent to the image in this embodiment of the present invention. When this embodiment of the present invention is compared with the above mentioned second embodiment, the verification of the color component value being registered in the common coding table will not be needed. Therefore, in this embodiment of the present invention, the application determination may be performed faster. The concrete contents of process of the application determination will be described below. 
       [Application Determining Process] 
       [0133]    The details of the application determining process will be described in reference to the flow chart of  FIG. 13 . This application determining process is executed by the application determining section ( 126 ) in accordance with control of the control section ( 120 ). 
         [0134]    Firstly, the image pixel counter that is preliminary provided in the printer controller ( 12 B) is cleared to be zero in Step S 215   a.    
         [0135]    Next, in Step S 215   b,  one attribute data corresponding to the raster image data being the target of the common coding specified by the control section ( 120 ) is read. Here, it is assumed that the attribute data is configured with the same quantity of pixels as the raster image data. 
         [0136]    Next, in Step S 215   c,  in case when the read attribute data is compressed by the coding section ( 123 A), the attribute data is decoded via the decoding section ( 124 A). 
         [0137]    Next, applicability of common coding is determined while extracting the attribute values of all pixels of the read attribute data in order. Concretely, in Step S 215   d,  the attribute value corresponding to the targeted pixel is read in. In Step S 215   e,  whether the attribute value of the targeted pixel read in is the “image” or not is determined. In case the attribute value of the targeted pixel read in is the “image,” an image pixel counter increments in Step S 215   i.  Next, the sizes of the predetermined threshold value and of the image pixel counter are compared in Step S 215   j.  When the number of image pixel counter exceeds the threshold value, the common coding is determined not to be applicable in Step S 215   k  and the process ends immediately. 
         [0138]    On the other hand, in case when the number of image pixel counter is not more than the threshold value, the analysis of all pixels is determined to be complete in Step S 215   f.  When the analysis of all pixels is not completed, the process returns to Step S 215   d.  Then, whether the analysis of all targeted raster image data is complete or not is determined in Step S 215   g.  When the analysis of all targeted raster image data is not complete, the process returns to Step S 215   b.  Then, the common coding is determined to be applicable in Step S 215   h  and the application determining process ends. 
         [0139]    Thus, the quantity of pixels of the attribute value indicating the “image” and the predetermined threshold value are compared. The verification of the color component value being registered in the common coding table becomes unnecessary and the application determination can be performed faster by determining that the common coding is applicable when the quantity of pixels is not more than the threshold value. 
       Fourth Embodiment 
       [0140]    Next, the image synthesis method, the print system and the image synthesis program related to a fourth embodiment of the present invention will be described in reference to  FIG. 14 .  FIG. 14  is a flow chart illustrating the entire flow of the variable print system of this embodiment of the present invention. 
         [0141]    In the above-mentioned second and third embodiments, the application determination was performed to the pixel data of both of the reusable objects and the non-reusable objects. However, there is a possibility that printing materials, which are mainly configured by the headline texts, such as “bargain” and “price busters”, or the background of logo or illustration as reusable objects, for example, POP, and in which pictures of merchandises are abundantly used as the non-reusable objects, are inputted. In this case, there is a high possibility that the common coding process is applicable to the reusable object portions and not applicable to the non-reusable object portions. 
         [0142]    Accordingly, in this embodiment of the present invention, the application determination of the common coding process is individually performed to each of the reusable objects and the non-reusable objects. That is, the processing time for performing the synthesis process to the reusable object portions can be shortened by performing the common coding process to the reusable object portions and performing the conventional process to the non-reusable object portions (namely, perform hybrid processing) when the common coding process is only applicable to the reusable objects. The concrete contents of the processing are described below. 
       [The Entire Flow] 
       [0143]    The entire flow of the variable print system of this embodiment of the present invention will be described in reference to the flow chart of  FIG. 14 . 
         [0144]    A user creates the variable print data using the application software installed in the client PC ( 11 A,  11 B, or  11 C). The created variable print data is stored in the external memory ( 130 ) of the printer controller ( 12 A or  12 B) through the communication line ( 14 ). 
         [0145]    Next, in Step S 301 , the control section ( 120 ) acquires the layout information ( 132 ) from the variable print data ( 131 ) stored in the external memory ( 130 ). The control section ( 120 ) generates the reusable images ( 142 ) included in the variable object group ( 133 ) from the layout information ( 132 ) with the image generating section ( 121 ). 
         [0146]    Next, in Step S 302 , after the generated reusable images ( 142 ) are compressed via the common coding section ( 123 ), the control section ( 120 ) caches the generated reusable images ( 142 ) to the memory ( 140 ). 
         [0147]    Next, in Step S 303 , the control section ( 120 ) instructs the application determining section ( 126 ) to perform the application determination of the common coding based on the reusable images ( 142 ), which is cached to the memory ( 140 ). When the common coding is determined to be applicable in Step S 304 , the reusable images ( 142 ) are re-cached into the memory ( 140 ) after being compressed via the common coding section ( 123 ) in Step S 305 . When the common coding is determined to be not applicable, the conventional process is performed. 
         [0148]    Next, in Step S 306 , the control section ( 120 ) acquires the layout information of one page. The image generating section ( 121 ) generates the non-reusable images ( 143 ) of the head page included in the variable object group ( 133 ). 
         [0149]    Next, in Step S 307 , the control section ( 120 ) caches the generated non-reusable images ( 143 ) of the head page into the memory ( 140 ) after the generated non-reusable images ( 143 ) of the head page are compressed via a coding section ( 123 A). 
         [0150]    Next, the control section ( 120 ) instructs the application determining section ( 126 ) to perform the application determination of the common coding based on the non-reusable images ( 143 ) of the head page, which are cached in the memory ( 140 ). When the common coding is determined to be applicable in Step S 308 , the non-reusable images ( 143 ) of the head page is re-cached into the memory ( 140 ) after the non-reusable images ( 143 ) of the head page are compressed via the common coding section ( 123 ) in Step S 309 . The process of the subsequent steps S 310 -S 313  is the same as Steps S 103 -S 106  of the first embodiment. 
         [0151]    On the other hand, in case when the common coding is determined to be inapplicable in Step S 308 , the control section ( 120 ) acquires the layout information of one page. Then in Step S 314 , the control section ( 120 ) instructs the image synthesizing section ( 122 ) to perform the page layout with compression synthesis only to the reusable objects for one page. 
         [0152]    Next, in Step S 315 , the control section ( 120 ) instructs the common decoding section ( 124 ) to decode the page image ( 141 ) to which the page layout of only reusable objects is completed. In Step S 316 , the control section ( 120 ) instructs the image synthesizing section ( 122 ) to perform page layout with normal synthesis only to the non-reusable objects for one page. 
         [0153]    Lastly, in Step S 317 , the control section ( 120 ) sends the page image ( 141 ), in which the page layout has been completed, to the printer ( 13 B) via the printer engine I/F ( 125 ). 
         [0154]    In Step S 318 , the control section ( 120 ) determines whether the printout of all pages has been completed. When the printout of all pages is not completed, the process returns to Step S 314 . When the printout of all pages has been completed, the process ends. 
         [0155]    Thus, the time involved in the synthesis process of the reusable object portions can be shortened by performing the application determining of the common coding process to each of the reusable objects and non-reusable objects. 
         [0156]    In each of the above-mentioned embodiments, the color component value (coordinate value on a color space) and the color number (index value) are respectively represented by 32 bits and 8 bits; however, the concrete numbers of the bits are not limited thereto, insofar as the number of bits of the color number is smaller than the number of bit of the color component value. In each of the above-mentioned embodiments, a case in which the printer controller generates the rasterized image and executes compression, synthesis and expansion of this rasterizing image were described. However, the present invention is not limited to the above-mentioned embodiments. It may be configured so that all or a part of generating, compressing, synthesizing and expanding of the rasterized image may be performed in the printer. The system configuration may have a function of the printer controller included in the printer. 
         [0157]    According to the image synthesis method, the print system and the image synthesis program of the preferred embodiments of the present invention, the unnecessary degradation of an image at the time of decoding can be prevented, and the image can be efficiently synthesized. 
         [0158]    The reasons are that a plurality sets of image data to be the target of synthesis are coded (compressed) by fixed-length lossless compression form in a pixel unit with using the common coding table, these sets of coded image data are synthesized in a pixel unit and the image data is decoded (decompressed) in a pixel unit using the above mentioned common coding table after the synthesis. 
         [0159]    The present invention can be used for an image forming apparatus and a printer controller, such as a copying machine and a multi function peripheral.