In recent years, along with the popularization of personal computers, it becomes easy to input an image using an image input device such as a digital camera, color scanner, or the like, to display and confirm that image using an image display device such as a CRT, LCD, or the like, and to output the image via an image output device such as a color printer or the like. In this case, in order to correct any color appearance difference due to the difference between color gamuts of the display and output devices, a color matching process (gamut mapping) is normally executed. That is, the color appearance difference between the devices is absorbed by the color matching process.
As one of color matching processes, a method using an ICC profile is known. Note that the ICC profile is a profile based on a format defined by International Color Consortium.
As shown in FIG. 1, the process using an ICC profile converts the RGB values of an image obtained by the input device into CIEXYZ or CIEL*a*b* values as a device-independent color space using a source profile, and converts the CIEXYZ or CIEL*a*b* values into the device RGB values of the output (display) device using a destination profile. The source profile describes an RGB to XYZ conversion matrix or an RGB to Lab conversion lookup table (LUT) that represents the color reproduction character of the input device. On the other hand, the destination profile describes a Lab to device RGB LUT according to a specific format. The LUT of this destination profile has the following format. That is, grid point data obtained by evenly n-slicing (n is an integer; to divide into n−1 slices) an L* value region 0≦L*≦100, an a* value region −128≦a*≦127, and an b* value region −128≦b*≦127 are defined, and the LUT describes device RGB values obtained by mapping these L*a*b* values onto the color gamut of the output device.
In this manner, in the processing system of the ICC profile, color matching information, i.e., gamut mapping information is described in the LUT in the destination profile together with color gamut information of the output device.
On the other hand, a color appearance model that models the human visual character with higher precision than the conventional CIELAB color space has been announced. The color values (e.g., J*a*b* values) of this color appearance space can be calculated from CIEXYZ values. By making gamut mapping using these J*a*b* values, color matching more suited to the human visual character can be done.
When an estimation of color matching using the color appearance space realized by the processing system of the ICC profile is made, a new destination profile must be generated from a destination profile of the ICC profile. Note that this generation method is the invention to explain later, however, this generation method is explained in here to clear a subject of the invention.
The destination profile is embedded with the LUT in the predetermined format that describes the relationship between the L*a*b* values and RGB values (DevRGB). In other words, in order to convert color matching information using the color appearance space into a destination profile, the following processes are required: (i) the L*a*b* grid points in the predetermined format are converted into J*a*b* values using color appearance conversion formulas, (ii) the J*a*b* values are mapped into the color gamut of the output device, (iii) the mapped J*a*b* values are converted into the device RGB, and (iv) the device RGB values are stored in an LUT. The flow of calculations is L*a*b*→J*a*b*→J*′a*′b*′→DevRGB, as shown in FIG. 2.
However, the conversion formula required to obtain the color values J*a*b* of the color appearance space does not support colors outside of the visible region. In the color appearance conversion, for example, color adaptation conversion, cone response conversion, or opponent-colors response conversion is made so the color values approximate the human visible character. The conversion method of the color adaptation conversion is linear conversion represented by matrix conversion given by:
                              A          ′                =                              (                                                                                a                    00                                                                                        a                    01                                                                                        a                    02                                                                                                                    a                    10                                                                                        a                    11                                                                                        a                    12                                                                                                                    a                    20                                                                                        a                    21                                                                                        a                    22                                                                        )                    ⁢          A                                    (        1        )            The cone response conversion also performs, in addition to the matrix conversion, an exponentiation given by:
                              A          ′                =                                                            b                ⁡                                  (                                      cA                    /                    d                                    )                                            e                                      f              +                                                (                                      cA                    /                    d                                    )                                e                                              +          g                                    (        2        )            where a00 to a22, and b to g are constants (for 0≦e≦1), A is a value before conversion, and A′ is a value after conversion.
The opponent-colors response conversion converts the values after cone response conversion into coordinate J*a*b* values suited to the human visual character, and linear conversion and triangular function conversion are used as its representative conversion formulas.
According to these conversion formulas, when XYZ values indicating a color outside of the visible region are input, the color adaptation conversion (equation (1)) as the linear conversion can be calculated, but calculation errors may occur when the exponentiation like equation (2) is calculated. This is for the following reason. That is, the constants in equations (1) and (2) are set so that (cA/d) in equation (2) assumes a positive value in case of the color within the visible region. However, (cA/d) often assumes a negative value when a color outside of the visible region is input, thus disabling calculations.
More specifically, as shown in FIG. 3, of the L*a*b* grit points defined on the CIELAB space, a color (e.g., L*=0, a*=−128, b*=−128) outside of the visible region cannot be converted into J*a*b* values, and device RGB values corresponding to that grid point cannot be calculated. In practice, when color matching is done by the processing system of the ICC profile, it is impossible that an input image includes a color outside of the visible region, but a color in proximity of a boundary of the visible region often exists. In order to interpolate such color using an LUT, since not only grid points within the visible region but also those outside of the visible region are used, appropriate device RGB values must be set for the grid points outside of the visible region.
As a color matching method using the ICC profile and color appearance space, a technique disclosed in Japanese Patent Laid-Open No. 2000-40140 (corresponding to U.S. Pat. No. 7,027,067, issued Apr. 11, 2006) has been proposed. However, the method disclosed in this reference is different from the method described in FIG. 2. The technique disclosed in this reference loads the color gamuts of respective devices from the source profile and destination profile described in the ICC profile format into a dedicated apparatus, and attains gamut mapping by converting the respective color gamuts into J*a*b* values using a CIECAM97 conversion formula as one of color appearance conversion formulas. When this technique is used, a new destination profile that records gamut mapping information on the J*a*b* space need not be generated, and the same profiles as the conventional ones need only be used. Hence, no problems caused by impossibility of color conversion as described above occur. However, since this technique requires a special apparatus upon color matching, it cannot be used in a general image manipulation application such as PhotoShop®. Since color matching is done using the dedicated apparatus, gamut mapping information described in the ICC profile is completely ignored.
In the processing system of the ICC profile, it is required to adopt gamut mapping using the color appearance space. Not only when an ICC profile is generated but also when a process is made on the color appearance space, it is inconvenient that colors outside of the visible region are not supported.