The invention relates to the field of color management, and more particularly relates to performing spectral gamut mapping for reproducing an image.
In spectral color reproduction, there is typically a mismatch between the spectral gamut of the source device and that of the destination device. The adjustment for this gamut mismatch is referred to as spectral gamut mapping.
In this regard, it is typically noted that 31 dimensions are sufficient to represent the spectral reflectance of a physical stimuli, which gives rise to a particular color sensation under a given illuminant and viewing condition. The 31 dimensions correspond to the visible wavelengths from 400 nm to 700 nm, at every 10 nm interval.
However, spectral gamut mapping using 31 dimensions may be too demanding for some computing hardware, such as general purpose computers or specialized ASIC devices. As such, an interim connection space (ICS) may be used for spectral gamut mapping. An ICS is an intermediate space which can be used to reduce the number of dimensions associated with spectral gamut mapping. In principle, an ICS has any dimension lower than 31. Typically, an ICS has a dimension ranging from 5 to 8.
In designing an ICS, the ICS should be accurate enough such that its relatively low dimension can still carry the information needed for spectral color imaging. In other words, the ICS should work for many illuminants, not just one or two. On the other hand, since many operations are typically associated with spectral gamut mapping (e.g., convex hulling), and these operations involve or generate results of complexity that may depend exponentially on the dimension, there is a desire to keep the dimension as low as possible.
Thus, there is a need for improved efficiency in spectral gamut mapping using an ICS, so that accuracy is maintain and the number of dimensions is reduced.
Disclosed embodiments describe systems and methods for performing spectral gamut mapping for reproducing an image comprising a plurality of pixels using a device. Sample data is generated to span a spectral gamut of the device, and the sample data is divided into plural subdivisions based on colorimetry of the sample data. A local interim connection space (ICS) is constructed for each of the plural subdivisions, and a sub-gamut corresponding to each of the local ICS's is constructed. For each of the plurality of pixels, a sub-gamut which corresponds to the pixel is selected from the constructed sub-gamuts, and spectral gamut mapping is performed for the pixel using the selected sub-gamut in the local ICS.
Thus, in an example embodiment described herein, a method for performing spectral gamut mapping for reproducing an image comprising a plurality of pixels using a device is provided. The method includes the steps of generating sample data to span a spectral gamut of the device, dividing the sample data into plural subdivisions based on colorimetry of the sample data, constructing a local ICS for each of the plural subdivisions, and constructing a sub-gamut corresponding to each of the local ICS's. The method further includes the steps of, for each of the plurality of pixels, selecting a sub-gamut, from the constructed sub-gamuts, which corresponds to the pixel, and performing spectral gamut mapping for the pixel using the selected sub-gamut in the local ICS.
In a further example embodiment, a color management module which performs spectral gamut mapping for reproducing an image comprising a plurality of pixels using a device is provided. The color management module includes a generating module constructed to generate sample data to span a spectral gamut of the device, a dividing module constructed to divide the sample data into plural subdivisions based on colorimetry of the sample data, a first constructing module constructed to construct a local ICS for each of the plural subdivisions, and a second constructing module constructed to construct a sub-gamut corresponding to each of the local ICS's. The color management module further includes a selecting module constructed to select, for each of the plurality of pixels, a sub-gamut, from the constructed sub-gamuts, which corresponds to the pixel. In addition, the color management module includes a spectral gamut mapping module constructed to perform, for each of the plurality of pixels, spectral gamut mapping for the pixel using the selected sub-gamut in the local ICS.
In yet a further example embodiment, a color management apparatus is provided and includes a computer-readable memory constructed to store computer-executable process steps, and a processor constructed to execute the computer-executable process steps stored in the memory. The process steps stored in the memory cause the processor to perform spectral gamut mapping for reproducing an image comprising a plurality of pixels using a device, and include computer-executable process steps to generate sample data to span a spectral gamut of the device, divide the sample data into plural subdivisions based on colorimetry of the sample data, construct a local ICS for each of the plural subdivisions, and construct a sub-gamut corresponding to each of the local ICS's. The process steps further include computer-executable process steps to, for each of the plurality of pixels, select a sub-gamut, from the constructed sub-gamuts, which corresponds to the pixel, and perform spectral gamut mapping for the pixel using the selected sub-gamut in the local ICS.
In yet a further example embodiment, a computer-readable memory medium on which is stored computer-executable process steps for causing a computer to perform spectral gamut mapping for reproducing an image comprising a plurality of pixels using a device is provided. The process steps include generating sample data to span a spectral gamut of the device, dividing the sample data into plural subdivisions based on colorimetry of the sample data, constructing a local ICS for each of the plural subdivisions, and constructing a sub-gamut corresponding to each of the local ICS's. The process steps further include, for each of the plurality of pixels, selecting a sub-gamut, from the constructed sub-gamuts, which corresponds to the pixel, and performing spectral gamut mapping for the pixel using the selected sub-gamut in the local ICS.
The generating, dividing, constructing the local ICS and constructing the sub-gamut can be performed during an offline phase, after device characterization data is collected for the device. The selecting and performing can be performed during an online phase, when the image has been received.
The generated sample data can correspond with a stratified sampling of a device space of the device, and the stratified sampling can be associated with sampling of the device space at different sampling rates, depending on a dimension of the stratum. The generating the sample data can include generating sample device values for the device, and determining spectral reflectance arrays corresponding to the sample device values using a forward device model for the device.
The sample data can include a set of samples, with each sample within the set corresponding to at least one of the plural subdivisions. The dividing the sample data can include converting the sample data to XYZ values under a reference illuminant, converting the XYZ values to LCh values based on a media white point of the device, and dividing the sample data into plural subdivisions based on the LCh values.
The dividing the sample data into plural subdivisions can be based on a neutral spine and a collection of hue leaves for the sample data. The constructing the local ICS can include, for each of the plural subdivisions, determining whether the subdivision is part of the neutral spine, determining neighboring subdivisions in the neutral spine, in a case where it is determined that the subdivision is part of the neutral spine, determining neighboring subdivisions in a hue leaf, in a case where it is determined that the subdivision is not part of the neutral spine, and constructing the local ICS for the subdivision based on samples in the determined neighboring subdivisions.
The selecting the sub-gamut, from the constructed sub-gamuts, which corresponds to the pixel can include converting a spectral reflectance which corresponds to the pixel to a colorimetric value, performing colorimetric gamut mapping on the colorimetric value, converting the colorimetric gamut-mapped value to an LCh value based on a media white point of the device, and selecting the sub-gamut based on the LCh value.
This brief summary has been provided so that the nature of this disclosure may be understood quickly. A more complete understanding can be obtained by reference to the following detailed description and to the attached drawings.
Host computer 108 also includes computer-readable memory media such as computer hard disk 116 and DVD disc drive 114, which are constructed to store computer-readable information such as computer-executable process steps. DVD disc drive 114 provides a means whereby host computer 108 can access information, such as image data, computer-executable process steps, application programs, etc. stored on removable memory media. In an alternative, information can also be retrieved through other computer-readable media such as a USB storage device connected to a USB port (not shown), or through network interface 120. Other devices for accessing information stored on removable or remote media may also be provided.
Projector 118 is a first example of a color output device, and in this example is provided for projecting images in accordance with image data from host computer 108 onto a projection screen (not shown). Printer 106 is a second example of a color output device, and in this example is provided for forming color images in accordance with image data from host computer 108 onto a medium such as paper.
Digital color scanner 112 is a first example of a color input device, and is provided for scanning documents and images and sending the corresponding image data to host computer 108. Digital color camera 102 is a second example of a color input device, and is provided for sending digital image data to host computer 108.
Of course, host computer 108 may acquire digital image data from other sources such as a digital video camera, a local area network or the Internet via network interface 120. Likewise, host computer 108 may interface with other color output devices, such as color output devices accessible over network interface 120.
RAM 218 interfaces with computer bus 200 so as to provide information stored in RAM 218 to CPU 202 during execution of the instructions in software programs such as an operating system, application programs, color management modules, and device drivers. More specifically, CPU 202 first loads computer-executable process steps from fixed disk 116, or another storage device into a region of RAM 218. CPU 202 can then execute the stored process steps from RAM 218 in order to execute the loaded computer-executable process steps. Data such as color images or other information can be stored in RAM 218, so that the data can be accessed by CPU 202 during the execution of computer-executable software programs, to the extent that such software programs have a need to access and/or modify the data.
As also shown in
Color management module (CMM) 238 manages colors that are transferred from a source device to a destination device, such as the transfer of color image data from capture by digital camera 102 to a printout by printer 106. CMM 238 can comprise computer-executable process steps to convert digital values corresponding to colors of an image from the source device to the destination device. In doing so, CMM 238 can perform spectral gamut mapping for reproducing an image. For example, in a separate stage typically occurring in a device profiling process such as in a device manufacturer's facility, a special purpose program, typically referred to as device profiling software, can perform the following: generate sample data to span a spectral gamut of the device, divide the sample data into plural subdivisions based on colorimetry of the sample data, construct a local ICS for each of the plural subdivisions, construct a sub-gamut corresponding to each of the local ICS's, and save the results to a file. The file, in turn, can be shipped to a user. When the user chooses to print an image, CMM 238 can read the constructed local ICS's and sub-gamuts from the file. For each of the plurality of pixels of the image, CMM 238 can select a sub-gamut, from the constructed sub-gamuts, which corresponds to the pixel, and perform spectral gamut mapping for the pixel using the selected sub-gamut in the local ICS.
CMM 238 may be configured as a part of operating system 228, as part of a device driver (e.g., printer driver, digital camera driver), or as a stand-alone application program such as a color management system. It may also be configured as a plug-in or dynamic link library (DLL) to the operating system, device driver or application program. For example, CMM 238 according to example embodiments may be incorporated in an input/output device driver for execution in a computing device, embedded in the firmware of an input/output device, or provided in a stand-alone color management application for use on a general purpose computer. In one example embodiment described herein, CMM 238 is incorporated directly into the operating system for general purpose host computer 108. It can be appreciated that the present disclosure is not limited to these embodiments and that the disclosed color management module may be used in other environments in which color management is used.
As can be seen in
It should be noted that the source device referred to in
In general, the goal in spectral color management is color reproduction that achieves a spectral match. In other words, the spectral reflectance of the reproduction is the same as the original. This enables a color match under arbitrary light sources.
In this regard, spectral reflectance typically refers to destination devices that are reflective. For example, such devices include printers with multiple inks, and devices including reflective displays (e.g., e-paper).
As noted above, spectral gamut mapping which uses 31 dimensions may be too demanding for some computing hardware, such as general purpose computers or specialized ASIC devices. As such, an interim connection space (ICS) may be used to reduce the number of dimensions associated with spectral gamut mapping. Typically, an ICS has a dimension ranging from 5 to 8.
When an ICS is used, the spectral gamut mapping can be thought of conceptually as occurring in the ICS. As can be seen in
In using the approach for spectral gamut mapping as illustrated in
In general, the problem with spectral gamut mapping is computational efficiency and feasibility. Further, the computational complexity of spectral gamut mapping algorithms typically depends exponentially on the dimension. The dimension can be 31, if the space of spectral reflectance is used, or can be the dimension of an ICS, if an ICS is used. As noted above, the dimension of an ICS is typically a small number from 5 to 8, but this dimension can still be considered high in gamut mapping calculations, relative to the 3 dimensions used in conventional color management.
While the use of a relatively low dimensional ICS can theoretically solve the problem of computational complexity, is it not without issues. For example, introduction of an ICS typically causes a loss in precision. More particularly, an ICS is designed to remove dimensions which are considered insignificant. However, certain dimensions can be insignificant under certain illuminants but more significant under other illuminants. Such an ICS may result in a reproduction which is not a good match for original image data under certain illuminants. If this problem is simply addressed by including the removed insignificant dimensions, the problem of computational complexity increasing exponentially with dimension reappears. Thus, there is a need for improved efficiency in spectral gamut mapping using an ICS, so that accuracy is maintained and the number of dimensions is reduced.
Building on the idea of spectral gamut mapping constrained to fixed colorimetry, it is possible to subdivide sample data by classifying them according to their colorimetry. Instead of constructing one ICS for all the sample data, a local ICS can be constructed for each subset of data, and sub-gamut of the spectral gamut can be constructed in each local ICS, as shown in
In an online phase, at each time an input image is received, a spectral device model can be built (block 714) based on the device profile 710. Further, spectral gamut mapping can be performed (716) using the built spectral device model and ICS/gamut cached file 712, to produce an output image.
In general, as many sample points as are computationally feasible to describe the gamut can be used. For a 6-ink printer and 256 levels per channel, the total number of ink combinations is 2566=248. Unfortunately, this number of samples can be infeasible or impractical for computers in terms of speed and storage. Further, the number of ink combinations grows exponentially with the number of inks. Thus, an algorithm other than exhaustive enumeration, whose complexity is of polynomial growth in the number of inks, can be used.
In this regard, it can be assumed that the primary part of the spectral gamut is spanned by 3-or-less-ink combinations. Thus, if there are N inks, and n+1 steps are sampled in each ink channel, then the total number of 3-or-less-ink combinations can be calculated as follows:
For example, if there are 6 inks (N=6), and n=51 (i.e., steps of 5 digital counts, or about 2%), then the total number is 2,692,342.
With reference to
where n1+1 steps are used in sampling all i-dimensional strata. Using the above-mentioned example, this corresponds to the case N=6, n0=1, n1=n2=n3=51 and n4=n5=n6=0. In general, a judicial choice of a stratified sampling can help to sample the important areas of the gamut while reducing the number of samples to a manageable number. In addition, 4 or more inks in an ink combination can be allowed, with the sampling rate for those combinations being reduced. For example, the values of N=6, n0=1, n1=n2=255, n3=51, n4=17, n5=n6=0 can be used. This results in the inclusion of 4-ink combinations, but at a reduced sampling rate of 18 steps and a total “nominal” number of 4,882,741. The number is called “nominal” because of ink limiting, as explained in the following.
It should be noted that even when a maximum of 3 inks at a time is set, not all combinations are printable due to ink limiting. In fact, the actual printable ink combinations may be significantly lower in number. For example, after ink limiting is applied to a Canon i9900™ inkjet printer with 6 inks, the number of printable 3-ink combinations described above is typically reduced to 1,285,896, and the number of printable 4-ink combinations described above is typically reduced to 2,317,811.
Because of the large number of samples, it may not be practical to perform actual measurements. This is especially true if the device is a printer, meaning that color patches would need to be physically printed on paper and measured. Accordingly, a device model can first be established. In this regard, a device model is a mathematical representation of the physical device, based on collected measurement data. However, the number of measurement data needed for a device characterization, resulting in the device model, is typically considerably less than performing measurements for all samples, which can be in the order of millions of measurements. For example, in the case of a multi-ink printer, a Cellular Yule-Nielsen Spectral Neugebauer modeling method can be used successfully to model a printer based on spectral measurements of 4000 to 6000 color patches. Other techniques based on other physical ink mixing theories, such as the Kubelka-Munk theory, may also yield an acceptable printer device model. The device model, more specifically the forward device model, relates device values to the corresponding spectral reflectance. Thus, by invoking the forward device model on each of the printable 3-or-less-ink combinations, corresponding spectral reflectance data can be obtained.
Based on the constrained mapping strategy, the samples of set S can be classified according to their colorimetry under a reference illuminant (e.g., D50). More specifically, small, localized regions in the D50 CIELCh space, not necessarily disjoint from each other, can be determined to cover the colorimetric gamut in LCh space. Samples of spectral reflectance data can then be classified into one or more of these regions based on their D50 colorimetry. It should be noted that each of these local covering regions should contain approximately the same number of samples, so as to ensure sufficient representation in that region of the gamut.
As can be seen in
The integration can be done by discrete summation at 1 nm intervals. The illuminant and the CIE “standard observer” functions
Following block 902, the XYZ values can be converted to LCh using the media white point (block 906). The media white point is typically preferred to the white point of the reference illuminant in this conversion, because the resulting LCh gamut will typically have its neutral axis aligned with the L* axis. In particular, the media white point will typically have an LCh of (100, 0, 0). The media white point is the XYZ of the white color patch. In the case of a printer, this corresponds to no colorants. Most conveniently, it can be arranged to be the first sample in the sample set S. If the media white point is X0, Y0, Z0, then values for Lab can be calculated as follows:
Further, values for LCh, corresponding to the cylindrical coordinates for Lab, can be calculated as follows:
C
ab*=√{square root over (a*2+b*2)} (Equation 10)
h
ab=arc tan(b*/a*) (Equation 11)
For convenience, the set of LCh values converted from the spectral reflectance arrays in S will be denoted by Ŝ.
Following block 906, the constrained subdivision can be calculated based on the LCh values and the original set of samples of spectral reflectance data (block 908). The process then ends (end block 910).
In determining the constrained subdivision, the general strategy is to treat the following two cases separately: the near-neutral samples (e.g., the neutral spine), and samples falling on a hue angle (e.g., on a hue leaf). In this regard, it should be noted that samples with small chroma may have a hue angle that is noisy and thus, it is desirable to treat them separately instead of classifying them by their hue angles.
Ŝ
neutral
={s ∈ Ŝ|C
ab(s)≦C0} (Equation 12)
When referring to a sample s in Ŝ, it typically refers to an index into Ŝ. In this example implementation, memory space can be saved by storing the index rather than storing the 3-tuple of LCh or 31-tuple of spectral reflectance. The notation Cab*(S) denotes the chroma of the samples in D50 LCh space.
Ŝneutral can be partitioned into regions with approximately an equal number of samples. At block 1006 of
With reference to
where [x] denotes a rounding operator that returns the closest integer to x. The l0, l1, . . . , lp can correspond to these breakpoints. Furthermore, the samples in the p regions can be described in terms of the ordinal numbers of the sorted samples, as follows:
As noted above, in determining the constrained subdivision, the near-neutral samples (e.g., the neutral spine) and the samples falling on a hue angle (e.g., on a hue leaf) can be treated separately. In this regard,
In the example of
In this regard, with reference to a given hue leaf, for integers hue h=0, 1, 2, . . . , 359, a subset Ŝh of Ŝ can be determined, and can be defined as follows:
Ŝ
k
={s ∈ Ŝ||h
ab(s)−h|≦1 (Equation 15)
In other words, sample points with a hue angle within 1 degree from the target hue h can be included, as illustrated in
Following start block 1400, given a hue leaf Ŝh, a target size per lightness KL lightness is chosen (block 1402). A number of partitions is determined as pL=┌#(Ŝh)/KL┐ (block 1404). Samples in Ŝh are sorted by lightness (block 1408). Sorted samples in pL in are partitioned into approximately equal subsets (block 1408). In other words, the subset Ŝh is partitioned into subsets of approximately equal number of samples of a target size (e.g., 500) based on the lightness (e.g., L*). This process can be similar to the neutral spine case and involves sorting the samples in L* in ascending order and splitting the sorted samples.
Next, in the loop defined by blocks 1410 and 1420, for each Ŝh,L, a target size K is chosen (block 1412), the number of partitions is defined by p=|#(Ŝh,L)/K| (block 1414), the samples in Ŝh,L are sorted by chroma (block 1416), and the sorted samples are partitioned into p approximately equal subsets (block 1418). The result corresponds to the partitioned hue leaf. The process then ends (end block 1422).
In other words, one of the subsets, Ŝh,L, can be selected. For example, Ŝh,L can consist of samples with hue angle around the given hue h and lightness in a bracketed range. The samples in this set can be sorted in ascending values of chroma and partitioned into regions with approximately equal number of samples of a target size (e.g., 100). After this step is performed on each of the subsets Ŝh,L the whole hue leaf can be partitioned into regions of approximately 100 samples, with approximately 6 subsets in a given lightness range. This is illustrated in
ICS can be considered a generalization of basis functions, which in turn is a generation of the classical Fourier series expansion. In the context of spectral color imaging, a set of basis functions consists of orthonormal functions {b1(λ),b2(λ), . . . ,bn(λ)} of wavelength λ, where “orthonormal” means that the basis functions are mutually orthogonal, and each has unit length. In other words,
A spectral reflectance r(λ) can then be expanded as follows:
r(λ)=c1b1(λ)+c2b2(λ)+ . . . +cnbn(λ) (Equation 17)
where the coefficients are defined by
c
i(λ)=∫400700r(λ)bi(λ)dλ. (Equation 18)
The coordinates c1, c2, . . . , cn can be considered to be describing a point in a space. Generalizing this such that the method of generating the coordinates is not restricted to one arising from basis functions, a more general notion of an ICS can be realized. More particularly, to define an ICS, a method to convert spectral reflectance data to ICS data, denoted by P, and a method to convert ICS data to spectral reflectance data, denoted by Q, should typically be provided. For an ICS arising from basis functions, the above equations for ci(λ) and r(λ) respectively provide the algorithms for P and Q, and are linear transformations. In general, P and Q can be nonlinear transformations. Examples of such nonlinear transformations include LabPQR and LabRGB. Of course, many choices of the transformation P and Q are possible, with each choice typically giving rise to a different ICS. Each choice shall be referred to as an “ICS algorithm”. Each ICS algorithm typically has different performance, where performance can be measured by various means. For example, round-trip error can be used as a metric. In more detail, given a spectral reflectance (λ), conversion to ICS and conversion back to spectral reflectance typically results in a truncated spectral reflectance s(λ)=Q(P(r(λ)). The difference between r and s can be considered a measure of the accuracy of the ICS, with there being numerous ways to measure the difference between two spectral reflectances. For instance, the spectral RMS error can be used. A more meaningful metric that correlates with visual error is a delta-E under an illuminant, such as D50. Alternatively, delta-E's under multiple illuminants can be considered.
For example, one ICS algorithm can give rise to an ICS called In, where the dimension of the ICS to be constructed is n. More particularly, an initial set of samples of spectral reflectance data can be obtained, either by direct measurements or by generation by a forward device model. In the following description, such data is arranged as a 31×M matrix C, where M is the number of samples, and 31 is the number of spectral bands from 400 nm to 700 nm at every 10 nm interval. It should be noted that the number of spectral bands can be different, depending on the start wavelength or end wavelength or the length of the sampling interval. Another input to the algorithm is a set of m illuminants I1(λ),I2(λ), . . . ,Im(λ). For example, this can be a fixed list D50, A, F2, F7, F11, with only the first m illuminants being used, and with m being determined by n, the dimension of the ICS that is being constructed. For example, if n=6, then m=┌n/3┐=2, and D50 and A can be used.
The illuminants give rise to a 3m×31 matrix A, defined as:
in which δ(λ−λ0) is the discrete delta function centered at wavelength λ0. Singular value decomposition (SVD) of the matrix product AC can then be calculated as follows:
AC=U1D1V1T,
where U1 is a 3m×3m orthogonal matrix, D1 is a 3m×3m diagonal matrix of singular values, and V1 is an 3m×M orthogonal matrix. It should be noted that this singular value decomposition can correspond with an economical form, in which no matrix of order M×M appears. This form can be used because M may be a large number, possibly of the order of millions. Thus, the presence of matrices of order M×M may require a considerable amount of memory, such that SVD in full form may fail on some computers. Further, D1 can be of the form:
In addition, its truncated inverse can be defined and denoted D1x, as the 3m×3m matrix as follows:
By taking the first n columns of the matrix product CV1 and denoting the resulting matrix CV1(*,1 . . . n), a second singular value decomposition can be calculated:
CV
1(*,1 . . . n)=U2D2V2T (Equation 22)
The matrices U2, D2, V2 have dimensions 31×31, 31×n and n×n, respectively. The transformation Q defining the conversion from ICS to spectral reflectance can be defined to be the matrix obtained by taking the first n columns of U2:
Q=U
2(*,1 . . . n) (Equation 23)
The transformation P defining the conversion from spectral reflectance to ICS is defined to be the matrix:
P=QTCV1D1xU1TA. (Equation 24)
Thus, the L space can be provided.
Referring back to
Following start block 1700, a determination is made whether a particular subdivision is part of the neutral spine (decision diamond 1702). For a given subdivision, it may belong to the neutral spine or a hue leaf. In either case, the neighboring subdivisions should be determined. The reason for this is because, if only the samples from the subdivision itself are used, then there may be abrupt changes in the sample point distribution from subdivision to subdivision. By also taking the samples in the neighboring subdivisions, the sample point distribution tends to vary more smoothly from subdivision to subdivision, which implies a smooth transition of sub-gamuts. The procedure for determining the neighboring subdivisions is different for neutral spine and hue leaves.
Accordingly, if the answer to the inquiry from decision diamond 1702 is yes, a determination is made whether neighboring subdivisions are in the neutral spine (block 1706). In this regard,
If the answer to the inquiry from decision diamond 1702 is no, a determination is made whether neighboring subdivisions are within the hue leaf (block 1704).
Referring back to
Following start block 2000 of
As shown in
Referring back to
Referring back to
Referring back to
A representation of the spectral gamut can be used for checking whether a spectral reflectance is inside the spectral gamut or not, and if not, can be used in further gamut mapping. The computational complexity of these operations can be measured by the number of vertices and facets of the gamut representation. Table 1 shows some example statistics which are typical of the complexity of the gamut hull constructed in I5, I6 and local I5:
The statistics for convex hull in I5 and I6 are typically lower bounds only. The reason is because computation using the sample set S (which typically consists of 1,285,896 samples) appeared to require an extraordinary amount of memory and computing resources. The above statistics for I5 and I6 were obtained using a reduced sample set obtained by using 18 steps instead of 52 steps per channel. This resulted in a sample set of 46,671 samples. The actual number of vertices and facets, if the set S was used instead, is likely to be larger than the above estimates. For local I5, the number of vertices and facets are averaged over 26670 subdivisions. In this example, the worst case has 637 vertices and 16212 facets. Thus, the use of local ICS is seen to greatly reduce the complexity of the gamut boundary representation.
The output of the colorimetric gamut mapping can be converted to LCh using the media white point (block 2506) if it is not already in LCh relative to the media white point. The LCh value can be used to determine the containing subdivision as illustrated in
In the next step, the gamut section, which is the set of spectral reflectance data inside the sub-gamut that has the same colorimetry as the LCh value, can be calculated (block 2510). The calculation of the gamut section is typically computationally intensive, so the fact that the sub-gamut constructed above has reduced complexity compared to the whole spectral gamut can significantly facilitate in this calculation. With the gamut section determined, an optimal spectral reflectance can be determined from the spectral reflectances in the gamut section (block 2514) based on an objective function 2512, Obj(r, s), where r is the input spectral reflectance, and s is a spectral reflectance in the gamut section. Various choices for the objective function are possible. For example, the Euclidean distance in the space of spectral reflectance can be used, and this function is proportional to the spectral RMS error. Alternatively, another choice can be:
Obj(r,s)=max I∈{D50,D65,A,F2,F7,F11}ΔE(r,s,I) (Equation 25)
where the notation ΔE(r,s,I) denotes the delta-E (e.g. ΔE94) of the spectral reflectances r and s, under illuminant I. This objective function typically has the benefit that visual errors (delta-E's) are used, and the illuminants can cover a balanced set of illuminants from daylight, incandescent to fluorescent. Accordingly, the result of
As shown in
This disclosure has provided a detailed description with respect to particular representative embodiments. It is understood that the scope of the appended claims is not limited to the above-described embodiments and that various changes and modifications may be made without departing from the scope of the claims.