Abstract:
An image processing system includes a server apparatus and a plurality of image output apparatuses connected to the server apparatus is provided. The server apparatus comprises an intermediate code generation unit configured to generate an intermediate code on the basis of image data, and an intermediate code transmission unit configured to transmit the intermediate code to each of the plurality of image output apparatuses. Each of the plurality of image output apparatuses comprises an intermediate code reception unit configured to receive the intermediate code from the server apparatus, an output color correction unit configured to execute, for the intermediate code, color correction for output, a rendering unit configured to render an image on the basis of the intermediate code which has undergone the color correction and an image output unit configured to output the rendered image.

Description:
FIELD OF THE INVENTION  
       [0001]     The present invention relates to an image processing system and method and, more particularly, to an image processing system and method which control clustering output to a plurality of printers.  
       BACKGROUND OF THE INVENTION  
       [0002]     A system is known in which one print job is processed by two or more printers in parallel, i.e., clustering output can be executed by connecting a server apparatus and a plurality of color printers through a network. In this system, since a plurality of printers are used, faster output than printing by one printer can be done.  
         [0003]     For example, Japanese Patent Laid-Open No. 2001-290622 describes a method of implementing high-speed clustering output. According to this reference, print data is converted into intermediate data and divided for each printer. Then, rasterization to printer-oriented final print data and transmission of the rasterized data to the printers are executed simultaneously in parallel.  
         [0004]     In this clustering print system, even when a printer is inoperative, output by the remaining printers is possible. Hence, the system can guarantee a stable printing operation.  
         [0005]     Moreover, in a technique described in, e.g., Japanese Patent Laid-Open No. 10-340164, a fault monitoring unit to monitor the status of each machine is provided on a network. When a failure occurs in a printer or machine, print data is diverted to another printer, thereby enabling recovery for each page.  
         [0006]     For, e.g., clustering output of print data described in a page description language (PDL) such as PostScript, an optimum intermediate code data is preferably generated in each printer as an output target. In the conventional print system, interpreter processing is executed by preparing a software RIP (Raster Image Processor) with an interpreter for each printer on the server side and creating intermediate code data at a high speed or by executing interpreter processing for each printer one by one and outputting intermediate code data.  
         [0007]     In the former case, however, the cost increases because of the software RIP. In the latter case, the processing speed decreases.  
       SUMMARY OF THE INVENTION  
       [0008]     In view of the above problems in the conventional art, the present invention has an object to provide an image processing technique which efficiently create an intermediate code corresponding to each of a plurality of image output devices when a server apparatus outputs the same image data to them.  
         [0009]     In one aspect of the present invention, an image processing system includes a server apparatus and a plurality of image output apparatuses connected to the server apparatus. The server apparatus comprises an intermediate code generation unit configured to generate an intermediate code on the basis of image data, and an intermediate code transmission unit configured to transmit the intermediate code to each of the plurality of image output apparatuses. Each of the plurality of image output apparatuses comprises an intermediate code reception unit configured to receive the intermediate code from the server apparatus, an output color correction unit configured to execute, for the intermediate code, color correction for output, a rendering unit configured to render an image on the basis of the intermediate code which has undergone the color correction and an image output unit configured to output the rendered image.  
         [0010]     The above and other objects and features of the present invention will appear more fully hereinafter from a consideration of the following description taken in connection with the accompanying drawing wherein one example is illustrated by way of example.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0011]     The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention, and together with the description, serve to explain the principles of the invention.  
         [0012]      FIG. 1  is a view showing the configuration of a network system according to an embodiment of the present invention;  
         [0013]      FIG. 2  is a block diagram showing the functional arrangement of a job management server;  
         [0014]      FIG. 3  is a block diagram showing the functional arrangements of a front-end server and a printer engine;  
         [0015]      FIG. 4  is a view showing an arrangement example of a color sensor in the printer engine;  
         [0016]      FIG. 5  is a view showing an example of print job ticket data;  
         [0017]      FIG. 6  is a view showing the outline of color matching processing executed in the job management server of the embodiment;  
         [0018]      FIG. 7  is a view showing the outline of normal color matching processing executed in the front-end server of the embodiment;  
         [0019]      FIG. 8  is a view showing the outline of black preservation color matching processing executed in the front-end server;  
         [0020]      FIG. 9  is a flowchart showing the main processing of clustering output of the embodiment;  
         [0021]      FIG. 10  is a flowchart showing calibration processing (S 105 ) using a spectrophotometer;  
         [0022]      FIG. 11  is a flowchart showing calibration processing (S 106 ) using a color sensor;  
         [0023]      FIG. 12  is a flowchart showing black preservation color matching processing (S 111 : RGB input) in the job management server of the embodiment;  
         [0024]      FIG. 13  is a flowchart showing black preservation color matching processing (S 111 : CMYK input) in the job management server of the embodiment;  
         [0025]      FIG. 14  is a flowchart showing intermediate data output processing (S 115 ) from the printer engine;  
         [0026]      FIG. 15  is a flowchart showing black preservation color matching processing (S 602 : RGB input) in the. front-end server of the embodiment;  
         [0027]      FIG. 16  is a flowchart showing black preservation color matching processing (S 602 : CMYK input) in the front-end server of the embodiment;  
         [0028]      FIG. 17  is a view showing the outline of color matching processing executed in a job management server according to the second embodiment;  
         [0029]      FIG. 18  is a view showing the outline of normal color matching processing executed in a front-end server according to the second embodiment;  
         [0030]      FIG. 19  is a flowchart showing black preservation color matching processing (S 111 : RGB input) in the job management server of the second embodiment;  
         [0031]      FIG. 20  is a flowchart showing black preservation color matching processing (S 111 : CMYK input) in the job management server of the second embodiment;  
         [0032]      FIG. 21  is a flowchart showing black preservation color matching processing (S 602 : RGB input) in the front-end server of the second embodiment;  
         [0033]      FIG. 22  is a flowchart showing black preservation color matching processing (S 602 : CMYK input) in the front-end server of the second embodiment; and  
         [0034]      FIG. 23  is a view showing the outline of calibration by updating a one-dimensional density table. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0035]     Preferred embodiments of the present invention will be described in detail in accordance with the accompanying drawings. The present invention is not limited by the disclosure of the embodiments and all combinations of the features described in the embodiments are not always indispensable to solving means of the present invention.  
       First Embodiment  
       [0000]     (System Configuration)  
         [0036]      FIG. 1  is a view showing the configuration of a network system according to this embodiment. A job management server  100 , front-end server A ( 200 ), front-end server B ( 300 ), and client  400  are connected by a LAN to be able to communicate with each other. A spectrophotometer  110  is connected to the job management server  100 . Printer engines A ( 210 ) and B ( 310 ) are connected to the network through the front-end servers A ( 200 ) and B ( 300 ), respectively. The client  400  comprises, e.g., a CPU and VRAM necessary for monitor display and image processing and a communication function necessary for communication on the network.  
         [0037]      FIG. 2  is a block diagram showing the functional arrangement of the job management server  100 . Referring to  FIG. 2 , a network I/F (interface) unit  10  is a communication interface to connect the network. A job control unit  11  controls job data. A PDL interpreter  12  interprets PDL (Page Description Language) and generates intermediate data. An intermediate data storage unit  13  stores the intermediate data generated by the PDL interpreter  12 . A color management processing unit  14  executes designated color matching processing for a job. A profile storage unit  14 A stores profiles to be used for color matching. A patch data storage unit  15  stores color patch data for the profile correction using a fewer number of patches than that in the case of creating profile. A spectrophotometer control unit  16  controls the spectrophotometer  110 . A calibration processing unit  18  executes the profile correction using a fewer number of patches than that in the case of creating profile.  
         [0038]      FIG. 3  is a block diagram showing the arrangements of the front-end server A  200  and printer engine A  210 . The front-end server B  300  and printer engine B  310  have the same arrangements as in  FIG. 3 .  
         [0039]     In the front-end server A  200  shown in  FIG. 3 , a network I/F (interface) unit  20  is a communication interface to connect to the network. An intermediate data storage unit  21  stores intermediate data transmitted from the job management server  100 . A communication interface unit  22  is an interface to transmit/receive data to/from the printer engine A  210 . A rendering unit  23  converts the intermediate data stored in the intermediate data storage unit  21  into bitmap image data. A color management processing unit  24  executes designated color matching processing for the intermediate data. A profile storage unit  24 A stores profiles to be used for color matching. A calibration processing unit  25  executes the profile correction using a fewer number of patches than that in the case of creating profile. A read data storage unit  26  stores data read by a color sensor  33  of the printer engine A  210 .  
         [0040]     In the printer engine A  210 , a communication I/F unit  30  transmits/receives data to/from the front-end server A  200 . An output unit  31  performs print output. A color sensor control unit  32  controls the color sensor  33 . The color sensor  33  reads a patch output. A read data storage unit  34  stores the data read by the color sensor  33 .  FIG. 4  shows an arrangement example of the color sensor  33  in the printer engine A  210 . This arrangement example is the same as that described in Japanese Patent Laid-Open No. 2001-324846, and only its outline will be described here. As shown in  FIG. 4 , the color sensor  33  is formed by incorporating a light-emitting element  33 A such as an LED and a light-receiving element  33 B such as a photodiode or CdS in a holder  33 C. A patch T on a transfer belt  36  is irradiated with light from the light-emitting element  33 A. The light-receiving element  33 B receives reflected light from the patch T, thereby measuring the density of the patch T.  
         [0041]      FIG. 5  shows an example of print job ticket data of this embodiment. As shown in  FIG. 5 , job ticket data contains job setting information including color management information such as input and output profiles, rendering intent, and black preservation flag, and layout information such as the size and type of paper.  
         [0000]     (Color Matching Processing)  
         [0000]     Color Matching in Job Management Server  
         [0042]      FIG. 6  is a view showing the outline of color matching processing executed by the color management processing unit  14  in the job management server  100 . As a characteristic feature, color matching to the reference color space of a printer is executed.  
         [0043]     Referring to  FIG. 6 , when RGB data or CMYK data is input, color matching is executed on the basis of a source profile, destination profile, and rendering intent information representing a color matching scheme, which are set in a color management module (CMM). The data is output as CMYK data (C 1 M 1 Y 1 K 1 ) corrected on the color space of the reference printer.  
         [0044]     Generally, there are three kinds of rendering intents: “Perceptual” to output a photo image, “Colorimetric” to faithfully reproduce, e.g., a logotype, and “Saturation” to clearly output a pie chart or text. As for color matching data for practicing the three schemes, Lab→reference printer CMYK conversion LUTs (lookup tables) are prepared as the destination profile, as shown in  FIG. 6 , in correspondence with the schemes. An LUT corresponding to set rendering intent information is selected and used for color matching.  
         [0045]     In this embodiment, two cases are assumed, as shown in the table on the lower side of  FIG. 6 . In the first case, the source profile is an RGB source profile (e.g., sRGB profile), and the destination profile is a printer reference profile (CMYK). In the second case, the source profile is a CMYK source profile (e.g., JMPA profile), and the destination profile is a printer reference profile (CMYK).  
         [0000]     Color Matching in Front-End Server  
         [0046]      FIG. 7  is a view showing the outline of color matching processing in normal output, which is executed by the color management processing unit  24  in the front-end server A  200  (or B  300 ). As a characteristic feature, color matching from the reference color space of a printer to the color space of an output printer (printer engine A  210 ) is executed.  
         [0047]     Referring to  FIG. 7 , when CMYK data (C 1 M 1 Y 1 K 1  transmitted from the job management server) is input, color matching is executed on the basis of a source profile, destination profile, and rendering intent information which are set in a CMM. The result is output as CMYK data (C 2 M 2 Y 2 K 2 ) corrected on the color space of the output printer.  
         [0048]     In this embodiment, “Colorimetric” is assumed as rendering intent in normal output of the front-end server. Hence, a Lab→printer CMYK conversion LUT for “Colorimetric” is prepared as the destination profile, as shown in  FIG. 7 , and used for color matching.  
         [0049]     In this embodiment, a case is assumed, as shown in the table on the lower side of  FIG. 7 , in which the source profile is a printer reference profile (CMYK), and the destination profile is a printer profile (CMYK).  
         [0050]     In outputting patch data for calibration, CMYK data prepared in advance is directly output without intervening the CMM.  
         [0051]      FIG. 8  is a view showing the outline of black preservation color matching processing executed by the color management processing unit  24  in the front-end server A  200  (or B  300 ) when a black preservation flag is ON. As a characteristic feature, color matching to the color space of the output printer (printer engine A  210 ) is executed for only black data.  
         [0052]     Referring to  FIG. 8 , when RGB data or CMYK data is input, color matching for black preservation is executed on the basis of a source profile, destination profile, and rendering intent information which are set in a CMM. The result is output as CMYK data (C 2 M 2 Y 2 K 2 ) corrected on the color space of the output printer.  
         [0053]     Three kinds of rendering intents, i.e., “Perceptual”, “Colorimetric”, and “Saturation” are present in black preservation output of the front-end server. Lab→output printer CMYK conversion LUTs are prepared as the destination profile, as shown in  FIG. 8 , in correspondence with the schemes. An LUT corresponding to rendering intent information is used for color matching.  
         [0054]     In this embodiment, a case is assumed, as shown in the table on the lower side of  FIG. 8 , in which the source profile is an RGB source profile or CMYK source profile, and the destination profile is a printer profile (CMYK).  
         [0000]     (Clustering Output)  
         [0055]      FIG. 9  is a flowchart showing the main processing of clustering output of the embodiment. This processing is executed by the job management server  100 , front-end server A  200 , and front-end server B  300  to control clustering output of the printer engines A  210  and B  310 .  
         [0056]     First, patch data is extracted from the patch data storage unit  15  of the job management server  100  (S 100 ). The patch data is analyzed by the PDL interpreter  12  (S 101 ). Intermediate data as the analysis result is stored in the intermediate data storage unit  13  (S 102 ) and transmitted to the front-end servers A  200  and B  300  (S 103 ).  
         [0057]     In the front-end servers A  200  and B  300 , patch output is done by the printer engines A  210  and B  310  on the basis of the received intermediate data, and calibration processing based on the colorimetric value is executed. If the spectrophotometer  110  is used to acquire the color value of the patch data, calibration processing using the spectrophotometer  110  is executed in the job management server  100  (S 105 ). If the spectrophotometer  110  is not used, the color sensor is used. Hence, calibration processing using the color sensors  33  of the printer engines A  210  and B  310  is executed in the front-end servers A  200  and B  300  (S 106 ). Details of the calibration processing will be described later.  
         [0058]     The client  400  transmits print job data to the job management server  100  (S 107 ). The job control unit  11  of the job management server  100  extracts a job data file in the received Job (S 108 ). The PDL interpreter  12  analyzes the job data file (S 109 ).  
         [0059]     Depending on whether to save a black plate (S 110 ) in color matching processing, i.e., when the black preservation flag shown in  FIG. 5  is ON, the color management processing unit  14  executes black preservation color matching processing (to be described later) (S 111 ). When the black preservation flag is OFF, the color management processing unit  14  executes normal color matching processing (S 112 ). The normal color matching processing is executed by using an RGB source profile or CMYK source profile as the source profile and a printer reference profile (CMYK) as the destination profile shown in  FIG. 6 . When the source profile is an RGB profile, processing is performed while setting “Perceptual” or “Saturation” in the rendering intent flag shown in  FIG. 5 . When the source profile is a CMYK profile, processing is performed while setting “Colorimetric” in the rendering intent flag.  
         [0060]     Intermediate data generated by the color matching is stored in the intermediate data storage unit  13  (S 113 ) and transmitted to the front-end servers A  200  and B  300  (S 114 ). When the intermediate data is output from the printer engines A  210  and B  310  (S 115 ), the clustering output of this embodiment is ended.  
         [0061]     As described above, the following effect can be obtained by the clustering output of this embodiment. The intermediate data of printer reference CMYK created by one PDL interpreter processing (S 109 ) can be subjected to calibration processing (S 115  (S 602  and S 603  in  FIG. 14  to be described later)) corresponding to each of two printers and output.  
         [0000]     (Calibration Processing Using Colorimeter)  
         [0062]      FIG. 10  is a flowchart showing details of the above-described calibration processing using the spectrophotometer  110  in step S 105  in  FIG. 9 . This calibration processing is executed in the front-end servers A  200  and B  300 . Processing in the front-end server A  200  will be exemplified here.  
         [0063]     Intermediate data transmitted from the job management server  100  is stored in the intermediate data storage unit  21  of the front-end server A  200  (S 200 ). The color management processing unit  24  executes processing in patch data output shown in  FIG. 7  (S 201 ). That is, no color matching processing is executed here.  
         [0064]     The rendering unit  23  renders the intermediate data to bitmap image data for printer output (S 202 ). The rendered bitmap image data is transferred to the printer engine A  210  (S 203 ). The patch data is printed (S 204 ).  
         [0065]     Color Measurement of the printed patch data is done by the spectrophotometer  110  connected to the job management server  100 . The calorimetric result (calorimetric data) is stored in the colorimetric data storage unit  17  of the job management server  100  (S 205 ).  
         [0066]     The calibration processing unit  18  of the job management server  100  extracts the calorimetric data from the colorimetric data storage unit  17  (S 206 ) and the printer profile from the profile storage unit  14 A (S 207 ). The colorimetric data expressed by the XYZ calorimetric system is converted into Lab data (S 208 ). The printer profile is corrected on the basis of the Lab data (S 209 ). To correct the profile, a correction method based on a small number of patch data colorimetric values as described in, e.g., Japanese Patent Laid-Open No. 10-136219 can be used.  
         [0067]     When profile correction is ended, the job management server  100  transmits the calibrated printer profile to the front-end server A  200  (S 210 ). The front-end server A  200  stores the received profile in the profile storage unit  24 A (S 211 ).  
         [0000]     (Calibration Processing Using Color Sensor)  
         [0068]      FIG. 11  is a flowchart showing details of the above-described calibration processing using the color sensor in step S 106  in  FIG. 9 . This calibration processing is executed in the front-end servers A  200  and B  300 . Processing in the front-end server A  200  will be exemplified here.  
         [0069]     Intermediate data transmitted from the job management server  100  is stored in the intermediate data storage unit  21  of the front-end server A  200  ($ 300 ). The color management processing unit  24  executes processing in patch data output shown in  FIG. 7  (S 301 ). That is, no color matching processing is executed here.  
         [0070]     The rendering unit  23  renders the intermediate data to bitmap image data for printer output (S 302 ). The rendered bitmap image data is transferred to the printer engine A  210  (S 303 ). The patch data is printed (S 304 ).  
         [0071]     The printed patch data is read by the color sensor  33  provided in the printer engine A  210 . The read data is stored in the read data storage unit  34  of the printer engine A  210  (S 305 ). The read data is transferred to the front-end server A  200  (S 306 ) and stored in the read data storage unit  26  of the front-end server A  200  (S 307 ).  
         [0072]     In the front-end server A  200 , the read data is extracted from the read data storage unit  26  (S 308 ). The printer profile is extracted from the profile storage unit  24 A (S 309 ). The read data is converted into XYZ data (S 310 ). The XYZ data is converted into Lab data (S 311 ). The printer profile is corrected on the basis of the Lab data and set in the profile storage unit  24 A (S 312 ). To correct the profile the same method as that in the above-described processing using the spectrophotometer can be used.  
         [0000]     (Black Plate Saving Color Matching Processing in Job Management Server (RGB Input))  
         [0073]      FIG. 12  is a flowchart showing details of the above-described processing in step S 111  in  FIG. 9 , i.e., black preservation color matching processing by the color management processing unit  14  in the job management server  100  particularly when the input color space is an RGB space.  
         [0074]     RGB data in the job data file is extracted (S 400 ). If R=G=B, i.e., the data is black (gray) data, the black flag for the data is turned on (S 403 ), and the RGB values are converted into CMYK values (S 404 ).  
         [0075]     C=0, M=0, Y=0, K=255−R  
         [0076]     The black flag is set individually for all color data in black preservation color matching processing of this embodiment. The black flag is OFF in the initial state. This flag is used to select normal color matching processing (black flag=OFF) or black preservation color matching processing (black flag=ON) to be executed for the color data.  
         [0077]     If NO in step S 401 , the color management processing unit  14  executes normal color matching processing (S 402 ). The normal color matching processing is executed by using an RGB source profile as the source profile and a printer reference profile (CMYK) as the destination profile shown in  FIG. 6 . The processing is performed while setting ‘Perceptual’ or “Saturation” in the rendering intent flag shown in  FIG. 5 .  
         [0078]     If RGB data remains in the job data file in step S 405 , the flow returns to step S 400 . If no RGB data remains, the color matching processing is ended.  
         [0079]     With the above-described processing, when the input color space is an RGB space, the color management processing unit  14  in the job management server  100  can create intermediate data having the printer reference CMYK values saved as the black plate.  
         [0000]     (Black plate Saving Color Matching Processing in Job Management Server (CMYK Input))  
         [0080]      FIG. 13  is a flowchart showing details of the above-described processing in step S 111  in  FIG. 9 , i.e., black preservation color matching processing by the color management processing unit  14  in the job management server  100  particularly when the input color space is a CMYK space.  
         [0081]     CMYK data in the job data file is extracted (S 500 ). If (C,M,Y,K)=(0,0,0,K), i.e., the data is black (gray) data, the black flag for the data is turned on (S 503 ). Otherwise, the color management processing unit  14  executes normal color matching processing (S 502 ). The normal color matching processing is executed by using a CMYK source profile as the source profile and a printer reference profile (CMYK) as the destination profile shown in  FIG. 6 . The processing is performed while setting “Colorimetric” in the rendering intent flag shown in  FIG. 5 .  
         [0082]     If CMYK data remains in the job data file in step S 504 , the flow returns to step S 500 . If no CMYK data remains, the color matching processing is ended.  
         [0083]     With the above-described processing, when the input color space is a CMYK space, the color management processing unit  14  in the job management server  100  can create intermediate data having the printer reference CMYK values saved as the black plate.  
         [0000]     (Output Processing from Printer Engine)  
         [0084]      FIG. 14  is a flowchart showing details of the above-described intermediate data output processing from the printer engine in step S 115  in  FIG. 9 . This processing is executed in the front-end servers A  200  and B  300 . Processing in the front-end server A  200  will be exemplified here.  
         [0085]     Intermediate data transmitted from the job management server  100  is stored in the intermediate data storage unit  21  (S 600 ). Depending on whether to save a black plate (S 601 ) in color matching processing, the color management processing unit  24  operates differently. When the black preservation flag shown in  FIG. 5  is ON, the color management processing unit  24  executes black preservation color matching processing (to be described later) (S 602 ).  
         [0086]     On the other hand, when the black preservation flag is OFF, the color management processing unit  24  executes normal color matching processing (S 603 ). The normal color matching processing is executed by using the printer reference profile as the source profile and a printer profile (CMYK) as the destination profile shown in  FIG. 7 . Processing is performed while setting “Colorimetric” in the rendering intent flag shown in  FIG. 5 . The printer profile used here has been corrected by the above-described calibration processing in step S 105  or S 106  in  FIG. 9 .  
         [0087]     The rendering unit  23  renders the intermediate data to bitmap image data for printer output (S 604 ). The rendered bitmap image data is transferred to the printer engine A  210  (S 605 ). The bitmap image data is printed by the printer engine A  210 , and the processing is ended (S 606 ).  
         [0000]     (Black Plate Saving Color Matching Processing in Front-End Server (RGB Input))  
         [0088]      FIG. 15  is a flowchart showing details of the above-described processing in step S 602 , i.e., black preservation color matching processing by the color management processing units  24  in the front-end servers A  200  and B  300  particularly when the input color space is an RGB space. This processing is executed in the front-end servers A  200  and B  300 . Processing in the front-end server A  200  will be exemplified here.  
         [0089]     CMYK data in the intermediate data file is extracted (S 700 ). If (C,M,Y,K)=(0,0,0,K), i.e., the data is black (gray) data (S 701 ), and the black flag of the data is ON (S 702 ) the CMYK data is converted into RGB values (S 703 ).  
         [0090]     R=255−K, G=255−K, B=255−K  
         [0091]     The black flag is set in black preservation color matching processing (S 111  in  FIG. 9 ) in the job management server  100 .  
         [0092]     The color management processing unit  24  executes black preservation color matching processing (S 704 ). The processing is executed by a method described in, e.g., Japanese Patent Laid-Open No. 2004-120566. The processing is executed by using an RGB source profile as the source profile and a printer profile (CMYK) as the destination profile shown in  FIG. 8  while setting “Perceptual” or “Saturation” in the rendering intent flag.  
         [0093]     If the black flag is OFF, or (C,M,Y,K)≠(0,0,0,K), the color management processing unit  24  executes normal color matching processing (S 705 ). The normal color matching processing is executed by using a printer reference profile (CMYK) as the source profile and a printer profile as the destination profile shown in  FIG. 7 . The processing is executed while setting “Colorimetric” in the rendering intent flag.  
         [0094]     If CMYK data remains in the job data file, the flow returns to step S 700 . If no CMYK data remains, the processing is ended.  
         [0095]     The printer profile used in the color matching processing in steps S 704  and S 705  has been corrected by the above-described calibration processing in step S 105  or S 106  in  FIG. 9 .  
         [0096]     With the above-described processing, when the input color space is an RGB space, the color management processing unit  24  in the front-end server A  200  can create intermediate data having the printer CMYK values saved as the black plate.  
         [0000]     (Black Plate Saving Color Matching Processing in Front-End Server (CMYK Input))  
         [0097]      FIG. 16  is a flowchart showing details of the above-described processing in step S 602 , i.e., black preservation color matching processing by the color management processing units  24  in the front-end servers A  200  and B  300  particularly when the input color space is a CMYK space. This processing is executed in the front-end servers A  200  and B  300 . Processing in the front-end server A  200  will be exemplified here.  
         [0098]     CMYK data in the intermediate data file is extracted (S 800 ). If (C,M,Y,K)=(0,0,0,K), i.e., the data is black (gray) data, and the black flag of the data is ON (S 802 ), the color management processing unit  24  executes black preservation color matching processing (S 803 ). The black flag is set in black preservation color matching processing (S 111  in  FIG. 9 ) in the job management server  100 . The black preservation color matching processing is executed by a method in, e.g., Japanese Patent Laid-Open No. 2004-120566. The processing is executed by using a CMYK source profile as the source profile and a printer profile (CMYK) as the destination profile shown in  FIG. 8  while setting “Colorimetric” in the rendering intent flag.  
         [0099]     If the black flag is OFF, or (C,M,Y,K)≠(0,0,0,K), the color management processing unit  24  executes normal color matching processing (S 804 ). The normal color matching processing is executed by using a printer reference profile (CMYK) as the source profile and a printer profile as the destination profile shown in  FIG. 7  while setting “Colorimetric” in the rendering intent flag.  
         [0100]     If CMYK data remains in the job data file, the flow returns to step S 800 . If no CMYK data remains, the processing is ended.  
         [0101]     The printer profile used in the color matching processing in steps S 803  and S 804  has been corrected by the above-described calibration processing in step S 105  or S 106  in  FIG. 9 .  
         [0102]     With the above-described processing, when the input color space is a CMYK space, the color management processing unit  24  in the front-end server A.  200  can create intermediate data having the printer CMYK values saved as the black plate.  
       Effects of Embodiment  
       [0103]     As described above, according to this embodiment, in clustering output using a plurality of color printers through the network, the job management server  100  creates intermediate data by one PDL interpreter processing. Then, each front-end server to control each printer executes, for the intermediate data, calibration suitable for each printer and outputs the data. Hence, efficient clustering output can be done, and cost performance can be improved.  
       Second Embodiment  
       [0104]     The second embodiment of the present invention will be described below.  
         [0105]     In the above-described first embodiment, a printer reference CMYK color space is applied as the color space of intermediate data. As a characteristic feature of the second embodiment, a Lab color space is used. The system and device components in the second embodiment are the same as in the above-described first embodiment, and a description thereof will be omitted.  
         [0106]     In the second embodiment, normal color matching processing in the job management server shown in  FIG. 6  of the first embodiment is replaced with processing shown in  FIG. 17 . Normal color matching processing in the front-end server shown in  FIG. 7  is replaced with processing shown in  FIG. 18 . Black plate saving color matching processing operations in the job management server shown in  FIGS. 12 and 13  are replaced with processing operations shown in  FIGS. 19 and 20 , respectively. Black plate saving color matching processing operations in the front-end server shown in  FIGS. 15 and 16  are replaced with processing operations shown in  FIGS. 21 and 22 , respectively. The remaining processing operations are the same as in the first embodiment.  
         [0107]     The processing operations replaced in the second embodiment will be described below.  
         [0000]     (Color Matching in Job Management Server)  
         [0108]      FIG. 17  is a view showing the outline of color matching processing executed by a color management processing unit  14  in a job management server  100  according to the second embodiment. As a characteristic feature, color matching to a Lab color space is executed.  
         [0109]     Referring to  FIG. 17 , when RGB data or CMYK data is input, color matching is executed on the basis of a source profile, destination profile, and rendering intent information representing a color matching scheme, which are set in a CMM. The data is output as Lab data corrected on a Lab color space.  
         [0110]     In the second embodiment, a case is assumed, as shown in the table on the lower side of  FIG. 17 , in which the source profile is an RGB source profile or CMYK source profile, and the destination profile is a Lab profile.  
         [0000]     (Color Matching in Front-End Server)  
         [0111]      FIG. 18  is a view showing the outline of color matching processing in normal output, which is executed by a color management processing unit  24  in a front-end server A  200  (or B  300 ). As a characteristic feature, color matching from a Lab color space to the color space of an output printer (printer engine A  210 ) is executed.  
         [0112]     Referring to  FIG. 18 , when Lab data is input, color matching is executed on the basis of a source profile, destination profile, and rendering intent information which are set in a CMM. The result is output as CMYK data (C 2 M 2 Y 2 K 2 ) corrected on the color space of the output printer.  
         [0113]     In the second embodiment, a case is assumed, as shown in the table on the lower side of  FIG. 18 , in which the source profile is a Lab profile, and the destination profile is a printer profile (CMYK).  
         [0114]     In outputting patch data for calibration, CMYK data prepared in advance is directly output without intervening the CMM.  
         [0000]     (Black Plate Saving Color Matching Processing in Job Management Server (RGB Input))  
         [0115]      FIG. 19  is a flowchart showing details of the processing in step S 111  in  FIG. 9 , i.e., black preservation color matching processing by the color management processing unit  14  in the job management server  100  particularly when the input color space is an RGB space.  
         [0116]     RGB data in the job data file is extracted (S 900 ). If R=G=B, i.e., the data is black (gray) data, the RGB values are converted into LabK values (S 904 ).  
         [0117]     L=0, a=0, b=0, K=255−R  
         [0118]     If NO in step S 901 , the color management processing unit  14  executes normal color matching processing (S 902 ). The normal color matching processing is executed by using an RGB source profile as the source profile and a Lab profile as the destination profile shown in  FIG. 17 . The processing is performed while setting “Perceptual” or “Saturation” in the rendering intent flag shown in  FIG. 5 . Then, the Lab data is converted into LabK data (S 903 ).  
         [0119]     L=L, a=a, b=b, K=0  
         [0120]     If RGB data remains in the job data file in step S 905 , the flow returns to step S 900 . If no RGB data remains, the color matching processing is ended.  
         [0121]     With the above-described processing, when the input color space is an RGB space, the color management processing unit  14  in the job management server  100  can create intermediate data having the LabK values saved as the black plate.  
         [0000]     (Black Plate Saving Color Matching Processing in Job Management Server (CMYK Input))  
         [0122]      FIG. 20  is a flowchart showing details of the above-described processing in step S 111  in  FIG. 9 , i.e., black preservation color matching processing by the color management processing unit  14  in the job management server  100  particularly when the input color space is a CMYK space.  
         [0123]     CMYK data in the job data file is extracted (S 1000 ). If (C,M,Y,K)=(0,0,0,K), i.e., the data is black (gray) data, the CMYK data is converted into LabK data (S 1004 ).  
         [0124]     L=0, a=0, b=0, K=K  
         [0125]     If (C,M,Y,K)≠(0,0,0,K), the color management processing unit  14  executes normal color matching processing (S 1002 ). The normal color matching processing is executed by using a CMYK source profile as the source profile and a Lab profile as the destination profile shown in  FIG. 17 . The processing is performed while setting “Colorimetric” in the rendering intent flag. Then, the Lab data is converted into LabK data (S 1003 ).  
         [0126]     L=L, a=a, b=b, K=0  
         [0127]     If CMYK data remains in the job data file in step S 1005 , the flow returns to step S 1000 . If no CMYK data remains, the color matching processing is ended.  
         [0128]     With the above-described processing, when the input color space is a CMYK space, the color management processing unit  14  in the job management server  100  can create intermediate data having the LabK values saved as the black plate.  
         [0000]     (Black Plate Saving Color Matching Processing in Front-End Server (RGB Input))  
         [0129]      FIG. 21  is a flowchart showing details of the above-described processing in step S 602 , i.e., black preservation color matching processing by the color management processing units  24  in the front-end servers A  200  and B  300  particularly when the input color space is an RGB space. This processing is executed in the front-end servers A  200  and B  300 . Processing in the front-end server A  200  will be exemplified here.  
         [0130]     LabK data in the intermediate data file is extracted (S 1100 ). If (L,a,b,K)=(0,0,0,K). i.e., the data is black (gray) data (S 1101 ), the LabK data is converted into RGB values (S 1104 ).  
         [0131]     R=255−K, G=255−K, B=255−K  
         [0132]     The color management processing unit  24  executes black preservation color matching processing (S 1105 ). The processing is executed by a method described in, e.g., Japanese Patent Laid-Open No. 2004-120566. The processing is executed by using an RGB source profile as the source profile and a printer profile (CMYK) as the destination profile shown in  FIG. 8  while setting “Perceptual” or “Saturation” in the rendering intent flag.  
         [0133]     If (L,a,b,K)≠(0,0,0,K), the LabK data is converted into Lab data (S 1102 ).  
         [0134]     L=L, a=a, b=b  
         [0135]     The color management processing unit  24  executes normal color matching processing (S 1103 ). The normal color matching processing is executed by using a Lab profile as the source profile and a printer profile (CMYK) as the destination profile shown in  FIG. 18 . The processing is executed while setting “Colorimetric” in the rendering intent flag.  
         [0136]     If LabK data remains in the job data file, the flow returns to step S 1100 . If no LabK data remains, the processing is ended.  
         [0137]     With the above-described processing, when the input color space is an RGB space, the color management processing unit  24  in the front-end server A  200  can create intermediate data having the printer CMYK values saved as the black plate.  
         [0000]     (Black Plate Saving Color Matching Processing in Front-End Server (CMYK Input))  
         [0138]      FIG. 22  is a flowchart showing details of the above-described processing in step S 602 , i.e., black preservation color matching processing by the color management processing units  24  in the front-end servers A  200  and B  300  particularly when the input color space is a CMYK space. This processing is executed in the front-end servers A  200  and B  300 . Processing in the front-end server A  200  will be exemplified here.  
         [0139]     LabK data in the intermediate data file is extracted (S 1200 ). If (L,a,b,K)=(0,0,0,K), i.e., the data is black (gray) data, the LabK data is converted into CMYK data (S 1204 ).  
         [0140]     C=0, M=0, Y=0, K=K  
         [0141]     The color management processing-unit  24  executes black preservation color matching processing (S 1205 ). The black preservation color matching processing is executed by a method in, e.g., Japanese Patent Laid-Open No. 2004-120566. The processing is executed by using a CMYK source profile as the source profile and a printer profile (CMYK) as the destination profile shown in  FIG. 8  while setting “Colorimetric” in the rendering intent flag.  
         [0142]     If (L,a,b,K)≠(0,0,0,K), the LabK data is converted into Lab data (S 1202 ).  
         [0143]     L=L, a=a, b=b  
         [0144]     The color management processing unit  24  executes normal color matching processing (S 1203 ). The normal color matching processing is executed by using a Lab profile as the source profile and a printer profile (CMYK) as the destination profile shown in  FIG. 18  while setting “Colorimetric” in the rendering intent flag.  
         [0145]     If LabK data remains in the job data file, the flow returns to step S 1200 . If no LabK data remains, the processing is ended.  
         [0146]     With the above-described processing, when the input color space is a CMYK space, the color management processing unit  24  in the front-end server A  200  can create intermediate data having the printer CMYK values saved as the black plate.  
       Effects of Second Embodiment  
       [0147]     As described above, according to the second embodiment, the same effects as in the above-described first embodiment can be obtained by using Lab data as intermediate data. In addition, the accuracy of color matching between the plurality of printers can be increased.  
         [0000]     &lt;Modifications&gt; 
         [0148]     In the above-described first and second embodiments, the front-end server and printer engine are separated so that print processing before printer engine output is done in the front-end server. The present invention can also be applied to a printer in which a printer controller and a printer engine are integrated so that print processing before printer engine output is done in the internal printer controller.  
         [0149]     In the first and second embodiments, the profile is updated in calibration processing. However, calibration of the present invention is not limited to this. For example, a one-dimensional density table may be updated without changing the profile.  FIG. 23  shows the outline of calibration by updating a one-dimensional density table. Referring to  FIG. 23 , the profile is fixed. Calibration is implemented by updating a one-dimensional LUT for each color of CMYK.  
       Other Embodiments  
       [0150]     Note that the present invention can be applied to an apparatus comprising a single device or to system constituted by a plurality of devices.  
         [0151]     Furthermore, the invention can be implemented by supplying a software program, which implements the functions of the foregoing embodiments, directly or indirectly to a system or apparatus, reading the supplied program code with a computer of the system or apparatus, and then executing the program code. In this case, so long as the system or apparatus has the functions of the program, the mode of implementation need not rely upon a program.  
         [0152]     Accordingly, since the functions of the present invention are implemented by computer, the program code installed in the computer also implements the present invention. In other words, the claims of the present invention also cover a computer program for the purpose of implementing the functions of the present invention.  
         [0153]     In this case, so long as the system or apparatus has the functions of the program, the program may be executed in any form, such as an object code, a program executed by an interpreter, or scrip data supplied to an operating system.  
         [0154]     Example of storage media that can be used for supplying the program are a floppy disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a CD-R, a CD-RW, a magnetic tape, a non-volatile type memory card, a ROM, and a DVD (DVD-ROM and a DVD-R).  
         [0155]     As for the method of supplying the program, a client computer can be connected to a website on the Internet using a browser of the client computer, and the computer program of the present invention or an automatically-installable compressed file of the program can be downloaded to a recording medium such as a hard disk. Further, the program of the present invention can be supplied by dividing the program code constituting the program into a plurality of files and downloading the files from different websites. In other words, a WWW (World Wide Web) server that downloads, to multiple users, the program files that implement the functions of the present invention by computer is also covered by the claims of the present invention.  
         [0156]     It is also possible to encrypt and store the program of the present invention on a storage medium such as a CD-ROM, distribute the storage medium to users, allow users who meet certain requirements to download decryption key information from a website via the Internet, and allow these users to decrypt the encrypted program by using the key information, whereby the program is installed in the user computer.  
         [0157]     Besides the cases where the aforementioned functions according to the embodiments are implemented by executing the read program by computer, an operating system or the like running on the computer may perform all or a part of the actual processing so that the functions of the foregoing embodiments can be implemented by this processing.  
         [0158]     Furthermore, after the program read from the storage medium is written to a function expansion board inserted into the computer or to a memory provided in a function expansion unit connected to the computer, a CPU or the like mounted on the function expansion board or function expansion unit performs all or a part of the actual processing so that the functions of the foregoing embodiments can be implemented by this processing.  
         [0159]     As many apparently widely different embodiments of the present invention can be made without departing from the spirit and scope thereof, it is to be understood that the invention is not limited to the specific embodiments thereof except as defined in the appended claims.  
         [0160]     This application claims the benefit of Japanese Patent Application No. 2005-140001 filed on May 12, 2005, which is hereby incorporated by reference herein in its entirety.