An imaging system may be arranged to output an image. Color data in an image may be represented using a first color gamut. In examples, an image represented using a first color gamut may be converted to being represented by a second color gamut. For example, a device may receive an image represented with a first color gamut and may be to output the image using the second color gamut. In such examples, a conversion or mapping between the first color gamut and the second color gamut may be used in order to convert color data between the color gamuts.
Various features of the present disclosure will be apparent from the detailed description which follows, taken in conjunction with the accompanying drawings, which together illustrate features of the present disclosure, and wherein:
Certain examples described herein relate to color mapping for an imaging system. Color mapping is a process by which a first representation of a given color is mapped to a second representation of the same color. Although color is a concept that is understood intuitively by human beings, it can be represented in a large variety of ways.
For example, color-related representations may be categorized into four main types: spectral representations; appearance representations; colorimetric representations; and device-dependent representations. Spectral representations consider properties such as power, intensity, reflectance and transmission as a function of wavelength across the visible spectrum. This is a representation of one or more physical properties that relate to color that is independent of human vision. Appearance representations predict human color perception instead of describing physical colorimetric stimuli. Colorimetric representations express a human observer's visual response to a stimulus in terms of its color. Example colorimetric representations are CIE XYZ color space and color spaces derived from it, e.g., CIELAB etc. Certain color spaces, such as CIELAB, are designed to be perceptually uniform with respect to a human observer's visual response. That is, equal changes in position within a perceptually uniform color space result in equal differences in color perceived by a human observer.
In the context of device-dependent representations, a device color model may be used to associate device color spaces with colorimetric and/or spectral ones, by predicting the latter from the former. The association between spectral and calorimetric spaces may not be based on a color model, but rather defined using a system of colorimetry, such as those defined by the CIE, which results in XYZ and derived spaces. For each color representation, values within that representation may be visualized as expressing a position along the variable dimensions of a particular color space used by the representation.
For example, device-dependent representations represent color in a manner that is specific to a particular imaging device. For example, a device-dependent color space may be based on a color model, such as a Red, Green, and Blue (RGB) color model, wherein a given point in the device-dependent color space is specified using a value defining an amount of each of a red primary, a green primary, and a blue primary at that point. Similarly, a device-dependent color space may use a Cyan, Magenta, Yellow (CMYK) color model, wherein a given point in the device-dependent color space is specified using a value defining an amount of each of a cyan primary, a magenta primary, a yellow primary. In another example, a device-dependent color space may use a Cyan, Magenta, Yellow, Key/Black (CMYK) color model, wherein in addition to CMY primaries, an amount of black is specified for the given point. However, such a specification of a given point within a device-dependent color space does not define a colorimetric value for the color represented by the given point: the given point attains colorimetry based on the properties of the specific imaging device. For example, returning to the device-dependent color space based on an RGB color model, the given point, having given values of R, G and B, attains a calorimetric value by the colorimetric values of the red, green and blue primaries used by the specific imaging device.
When working with color, the term gamut may refer to a multi-dimensional volume in a color space that represents color values that may be represented by an imaging system. Certain calorimetric color spaces, such as CIELAB, are three-dimensional to correspond with human perception of color. Device-dependent color spaces have a number of dimensions that are based on the nature of the imaging device as described above; this number may be three, or may be greater or lesser than three. A gamut may take the form of an arbitrary volume in a calorimetric color space wherein color values within the volume are available to the imaging system but where color values falling outside the volume are not available. The terms color mapping, color model, color space and color gamut, as explained above, will be used in the following description.
Imaging devices described in examples herein, such as printers or display devices, or a computing device in communication with such an imaging device, may implement a color transformation that converts an image received as an input and represented with a first gamut, to output the pixels using a second gamut. For example, an output device may receive an image represented with a first, reference or source, gamut, and may output the image using second, destination or device, gamut. However, the reference gamut and the device-dependent gamut may define a different volume in a colorimetric color space, such as CIELAB.
In an example, a display device may receive images represented with an sRGB reference gamut and use a device-dependent RGB gamut to output the image. As such, in this example, both the reference gamut and the device gamut are based on an RGB color model. The device-dependent RGB gamut may comprise a color gamut which is different to the reference sRGB color gamut, for example because the colorimetric values of the RGB primaries used by the device and the calorimetric values of the RGB primaries used by the reference gamut are not the same. Therefore, when viewed in the CIELAB colorimetric color space, the device-dependent RGB gamut may define a smaller volume than the sRGB gamut, or may define a subset of the sRGB gamut. In other examples, the device-dependent RGB gamut may be larger than the sRGB color gamut, or the device-dependent color gamut and sRGB gamut may have the same size but occupy different volumes in the CIELAB color space.
In another example, an imaging device may comprise a device-dependent gamut comprising a set of colors represented using a CMY, or CMYK model. For example, the imaging device may be a printer using cyan, magenta, yellow and black ink to print images. Images received for printing by the printer may be received in a reference gamut, such as sRGB, as described above for an RGB output device. In a similar manner to as described above for a device-dependent RGB gamut, the CMY/K device-dependent gamut of a printer may occupy a different volume, for example a different sized volume in the colorimetric color space. Examples described herein provide a method of converting between two different gamuts, such as the example reference color gamut and device-dependent color gamuts described above. Examples described herein provide a morphed color gamut formed by morphing a first gamut to a second gamut.
In the example of
The morphed reference gamut produced by the execution of the instructions 250 by the processor 200 may be used to map images from the reference gamut to the device gamut, for output by the imaging device 260. While in one example, as described above, the method of producing the mapping may be part of the setup of the imaging device, in another example, the mapping process may be carried out in relation to an in-service imaging device, such as an in-service printer. For example, the mapping process may be executed to respond to a printer's given state. That is, the device gamut of the imaging device 260 may, in some examples, be dependent on the configuration of the output device 260. For example, the device gamut of a printer may depend on the combination of the printer and the print medium, e.g. paper, on which the printer is to print. The device gamut may also depend on printing parameters, such as print mode, quality, speed, number of passes, resolution, halftoning setting, etc. and on the properties of the set of inks used, e.g. whether photoblack or matteblack is used. As such, a new device gamut may be created depending on the configuration of the output device 260. When a new device gamut is created the method described herein may be executed to produce a new morphed gamut, this time wherein the reference gamut is morphed to the new device gamut. As such, methods described herein may be performed after initialization of the example output device 260, in order to take account of changes in the configuration of the output device 260 and resulting changes in the device gamut.
In this example, the first color space 300 may be considered to be an intermediate color space which is used for defining a relationship between the first color gamut 310 and the second color gamut 320. In examples, the first color space 300 may be a Profile connection space, PCS, used under techniques proposed by the International Color Consortium, ICC. In such a technique, the first gamut 310 is represented in the PCS, as is the second gamut 320. The first gamut 310 and second gamut 320 then may be related or compared to each other via the calorimetric values they comprise in the PCS. The colorimetric values referred to here are, in the example of
In this example, the first gamut 310 is an sRGB gamut. As such, the first color gamut 310 is a reference color gamut produced with an additive color model. The first gamut 310 comprises a black point 311 which, in this example, is coincident with the black point 301 of the color space 300. The black point 311 of the first gamut 310 is coincident with the black point 301 of the first color space 300 since the black point 311 represents a point represented in the RGB model having (R, G, B) =(0, 0, 0). In this example, the first color gamut 310 is shown to have a white point 312 which is coincident with the white point 302 of the color space 300, although in other examples, this may not be the case. In this example, when represented in the RGB color model of sRGB, the white point 312 has maximal values for each of R, G and B, e.g. (255, 255, 255) for 16-bit RGB values.
In this example, the second gamut 320 is a device-dependent gamut. In one example, the second gamut 320 is the device-dependent gamut of the imaging device 260 which is produced with a subtractive color CMY color model. As shown in
In some examples, methods described herein may be applied to provide a mapping between two color gamuts each having a black point which may or may not be coincident with the black point 301 of the first color space 300 and a white point which may or may not be coincident with the white point 302 of the first color space 300.
The first color space 300 comprises a set of L*a*b values lying between the black point 301 and white point 302 along the lightness axis, i.e. having hue=0 (a=0, b=0). This set of values is referred to as the gray axis 303 of the first color space 300. The first gamut 310 and the second gamut 320 can also each be considered to have a gray axis, which, for a particular gamut, is the set of points lying between the black point of the gamut and the white point of that gamut. That is, the gray axis of each gamut is the set of colors produced by adding equal amounts of each primary color used in the color model of that gamut. The gray axis of a gamut may not be a straight line when represented in the first color space 300. For example, in an RGB device-dependent gamut, wherein colors in the gamut are defined by (R, G, BY) coordinates, each having minimum value 0 and maximum value 255, the gray axis is the line comprising the colors (0, 0, 0) and (255, 255, 255) and all other colors with equal values of R, G and B. When represented in the first color space 300, these values may not all have hue =0. That is, the colors on the gray axis of a particular gamut may not be gray as measured in the first color space 300.
In this example, the first gamut 310 has a gray axis 313 comprising the set of points in the first color space 300 lying between the black point 311 of the first gamut 310 and the white point 312 of the first gamut 310. In this example, the gray axis 313 of the first gamut 310 in the first color space 300 is coincident with the gray axis 303 of the first color space 300.
In this example, the second gamut 320 has a gray axis 323 comprising the set of points lying between the black point 321 and white point 322 of the second gamut 320. As can be seen in
Example methods according to the present disclosure comprise aligning the first gamut 310 and the second gamut 320 with respect to the gray axis 303 of the first color space 300. In the example shown in
In the example of
During the alignment which produces the aligned second gamut 320a of
As described above, in the example of
Through the operations described above with reference to
The vertices 424, 425, 426, 427 and an additional two vertices which are not visible in
In
In other examples, wherein the imaging device 260 uses a CMY color model, the object 420a is a CMY cube. That is, the aligned second gamut 320b when represented in the second color space 400 comprises the entirety of the cube 420a. While in this example, the object 420a is a cube, it should be appreciated that in other examples the object 420a representing the aligned second gamut 320b in the second color space 400 may be a regular object other than a cube comprising a plurality of vertices each representing the set of primary colors represented by the vertices of object 420. In other examples, the second color space 400 may be a CMYK color space in which the aligned second gamut 320 is represented as a four-dimensional hypercube. In examples of the method described herein wherein the second gamut 320 is a gamut of a device using a CMYK color model, the cube 420a may still be represented as a CMY cube. That is, in such examples, a particular level of black may be set, i.e. a black separation level, and the cube 420a indexed as a CMY cube. The method described herein may then produce a morphed gamut which applies for the particular level of black separation. The method may be repeated for different levels of black separation to produce a separate morphed gamut specific to the particular level of black separation.
In examples, the cube 420a representing the aligned second gamut 320b in the second color space 400 is indexed with a set of indices comprising a first index and a second index. That is, for a given point in the cube 420a, the first index for that point denotes a device-dependent value defining the position of the point in the second color space 400. In this example, the first index is an RGB value denoting a position in the second color space 400, i.e. a position within the cube 420a. The second index of the set of indices denotes a point in the first color space 300 to which the point in the cube 420a corresponds. In this example, the second index is an L*a*b value of the color represented by the given point within the aligned second gamut 320b. In the example where the given point is the vertex 425a representing the red primary, the first index 1 stores the RGB value of the red primary, e.g. (255, 0, 0), while the second index 2 stores the L*a*b value of the red primary of the aligned second gamut 320b. This L*a*b value may be determined by any of a number of suitable methods, for example during the characterization of the second gamut 320 by measuring the L*a*b value of a particular RGB output, for example using a scanning device. This L*a*b value of the red primary of the second gamut 320 in this example is then shifted during the alignment operation which produces the aligned second gamut 320b. For each point in the aligned second gamut 320b, therefore, the first index and the second index defines the correspondence between the aligned second gamut 320b as represented in the first color space 300 and as represented in the second color space 400.
Further to the first index 1 and the second index 2, the example method described herein comprises providing a third index 3 of the set of indices for certain points within the cube 420a, The points for which a third index 3 is provided are determined as will be described below. The third index 3 is indicative of the position to which a point corresponds in the first color space 300 relative to the position in the first color space 300 to which vertices of the cube 420a correspond. The third index 3 denotes a distance of a given point, as measured in the first color space 300, from the vertices of the object 420. The points for which a third index is provided may be referred to herein as nodes. Vertices of the cube 420a may also be referred to as nodes. The determination of nodes within the object 420a and the third index for these nodes will now be described with reference to
In the example method, as described with reference to
With reference to
In examples, determining the position of the new node 501 is done by using a recursive method to find a point in the first color space 300 which lies on the white to red ramp and which is equidistant between the white point 422 and the red point 425 in the first color space 300. In an example this involves identifying the point in the cube 420a having a value for the second index 2, i.e. an L*a*b value, for the new node 501 which is equidistant between the white point 422 and the red point 425. The first index 1 for the new node 501 is the device-dependent, e.g. RGB, value defining the position of the new node 501 in the cube 420a, Once the point 501 is identified, the third index 3 of the new node 501 is set to denote it as the mid-point between the two colors white and red in the first color space 300. The third index 3 may be similar to an RGB set of values, providing three values denoting the position of a node with respect to the RGB vertices in the first color space 300. For example, where each number of the third index ranges from 0 to 1, the new node 501 will be given a value for the third index of (0,5, 0, 0). The white point 422a then in this example has a value of (0, 0, 0) for the third index, and the red point has a value of the (1, 0, 0) for the third index, as shown in
The above-described method of determining a set of nodes and indexing each node with a third index 3 is repeated for each edge of the sub-object 450a, resulting in further new nodes 502-506 being determined and indexed. Each further new node 502-506 is given a third index 3 with a value denoting it at the mid-point of the ramp on which it is positioned.
Through this method of determining nodes which are at the mid-point of a ramp between primaries in the first color space 300, i.e. the perceptually uniform LAB color space 300, the third index 3 denotes a set of nodes which are at perceptually uniform intervals within the first color space 300 and associates these nodes with the device-dependent, e.g. RGB, values of the second color space 400.
Now referring to
The new nodes determined by the process described with reference to
The process described above with reference to
With reference to
In an example, morphing the first gamut 310 to the second gamut 320 comprises adjusting the colorimetric, i.e. L*a*b, values of points within the aligned first gamut 310b to equal the colorimetric values of the corresponding points in the aligned second gamut 320b. For example, in this example the aligned first gamut 310b is the aligned version of the sRGB gamut. The sRGB gamut has been aligned, as described with reference to
As such, in this example, the colorimetric values of the standard set of primary colors of the first gamut 310, e.g. sRGB gamut, which will be referred to here as R1, G1, and B1, may be adjusted to have the same colorimetric values respectively as the primary colors of the device dependent color space 400, which will be referred to here as R2, G2, and B2, Thereby producing a morphed gamut. Furthermore, in determining an L*a*b value for a point in the morphed gamut which lies between nodes, the L*a*b value for that point may be interpolated from the L*a*b values of neighboring nodes. For example, a value for the third index 3 for a given point between nodes 501 and 601 may be interpolated from the values of the third index 3 of the nodes 501 and 601. The L*a*b value to which to map the given point may then be interpolated from the L*a*b values held by the second indices 2 at each of the nodes 501 and 601. The process described thus far may be considered to be a complete morphing of the aligned first gamut 310b to the aligned second gamut 320b since all L*a*b values of the aligned first gamut 310b are adjusted to corresponding values of the aligned second gamut 32013. Following this process, in an example, actual colorimetric values present in the first gamut 310 and the second gamut 320 may be retrieved from the morphed gamut values by undoing the alignment process, e.g. performing the reverse operation of the shifting operation which was performed on each point in the gamuts in the alignment process described in
The above-described method may therefore provide for a perceptually uniform mapping between the first gamut 310 and the second gamut 320 which maintains the linearity of the second color space 400 used by the imaging device 260. In certain examples, which will be explained below with reference to
Referring now to
In this example, a 100% value is held at the red vertex R, indicating that a 100% weighting is applied when adjusting the L*a*b of the red node 415a of the cube 410a to the L*a*b value of the red node 425a of the cube 420a. That is, the colorimetric value of the red primary of the first gamut 310, i.e. the sRGB gamut, is fully adjusted to equal the colorimetric value of the second gamut 320, i.e. the device-dependent gamut. Similarly, a 100% value is held for the yellow vertex. In this example, values of 0% are held for all other positions in the weighting map 800. This indicates that in this example the L*a*b values of the red primary and the yellow primary of the first gamut 310 should be adjusted, and the colorimetry of all other points within the first gamut 310 should be left unchanged. In some examples, the weighting map 800 may comprise weighting values corresponding to each of the nodes of the cubes 410a and 420a. In other examples, the weighting map 800 may comprise weighting values for some but not all of the nodes of the cubes 410a, 420a. In such examples, during the mapping operation of the cube 410a to the cube 420a, an interpolation operation may be performed to provide weighting values corresponding to the nodes for which a weighting value is not provided for by weighting map 800.
In the example of
In another example, a weighting value stored for a point in the weighting map, for example the green point, may be 20%. In such an example, the colorimetric value of the green point in the cube 410a is adjusted determined as follows. Where the colorimetric L*a*b value at the green point of the cube 410a is LAB-1 and the colorimetric L*a*b value at the green point of the cube 420a is LAB-2, the L*a*b value for the green point is adjusted to equal: 0.8*LAB-1+0.2*LAB-2.
In some examples, color data is mapped from the second gamut 320 to the first gamut 310 rather than from the first gamut 310 to the second gamut 320 as described in the example above. The same advantages provided for in the above example may also apply in this mapping in the reverse direction. That is, the linearity of the first gamut 310 is respected when mapping colors of the second gamut 320 to the first gamut 310.
In methods described herein, colorimetric values may be adjusted for particular points which are within both the first gamut 310 and the second gamut 320, for example as described above. The methods may be contrasted with a method in which points having colorimetric values in both gamuts are preserved and points outside one gamut but inside of the other are mapped to a point in the gamut which they lie outside, which may be referred to a relative colorimetric mapping. Certain examples described herein may therefore provide color mapping which makes fuller use of available colorants, e,g, native inks, when using an imaging device 260 with a particular output gamut. Example methods may result in a departure to some extent from the original color content but this in turn may result in more vividness of colors through utilizing the native primaries of the imaging device 260 to a fuller extent. That is, while in some examples the colorimetric value of a particular color in the first gamut 310, e.g. the sRGB reference gamut, is preserved when converting from the first gamut 310 to the second gamut 320, in other examples the overall color reproduction may involve not preserving the colorimetric value of the particular color from the first gamut 310. Near the boundaries, and provided that the shapes of the first gamut 310 and the second gamut 320 are different, undesired effects may arise with a trivial mapping such as a relative colorimetric mapping: out of the destination gamut colors may be clipped and so smooth transitions in the original gamut cannot be encoded properly for the imaging device 260. In this case, examples described herein provide a method of adjusting the colorimetry of an image to produce a particular result.
The type of color mapping e.g. the weighting values used, between the first gamut 310 and the second gamut 320 can depend on the capabilities of the imaging device 260 to represent the colors of the first gamut 310. For example, the second, device, gamut 320 may be smaller, i.e. represent a smaller set of colors, than the first, reference, gamut 310. There may be several possible mappings between a first gamut 310, and a second gamut 320, which may result in different visual effects in an image output by the imaging device 260. A particular mapping may be chosen based on these resulting visual effects based on the circumstances, for example based on the image type, intended use of the image produced or the desired visual effect. For example, a more comprehensive morphing of the first gamut 310 to the second gamut 320 may be chosen for use with graphics which are not photographs, for example computer graphics, where close reproduction of colorimetric values is not a particular concern.
Certain factors may influence the desirability of a particular weighting when mapping between gamuts. For example, the actual mapping used may determined with consideration of content type, for example, how is the output image to be displayed or viewed and/or what is its purpose; is the source/output image high contrast or intended to show detailed color transitions, and/or user preference. The particular weighting values for mapping between points in the first gamut and the second gamut may be determined based on the position of a given point within the gamut. For example, points far from a boundary of the first gamut and the second gamut may have a low percentage weighting value, such that the colorimetric value of a color being converted from one gamut to the other is substantially preserved. In one example, points in the first gamut 310 which are close to skin tones, e.g. for use in reproducing photographs, may have a low weighting value, so as to preserve the colorimetric value of skin tone colors. Points nearer the boundary of either or both of the gamuts, which in examples may be points close to primary colors, may have a higher percentage weighting value. For example, points in the first, reference, gamut 310 close to a primary color may be mapped to a greater extent to the corresponding point in the second gamut 320, which may allow for fuller use of the colors available to the imaging device 260.
Examples in the present disclosure can be provided as methods, systems or machine readable instructions. Such machine readable instructions may be included on a computer readable storage medium, such as disc storage, CD-ROM, optical storage, etc., having computer readable program codes therein or thereon.
The machine readable instructions may, for example, be executed by a general purpose computer, a special purpose computer, an embedded processor or processors of other programmable data processing devices to realize the functions described in the description and diagrams. In particular, a processor or processing apparatus may execute the machine readable instructions. Thus the functional modules or functional units of the apparatus and devices may be implemented by a processor executing machine readable instructions stored in a memory, or a processor operating in accordance with instructions embedded in logic circuitry. The terms processor and processing circuitry may include a CPU, processing unit, ASIC, logic unit, or programmable gate array etc. In examples, the methods and functional modules may all be performed by a single processor or divided amongst several processers.
Above-described examples of the mapping process may be considered to provide a device characterization mapping. That is, a mapping is obtained from the CIELAB values of the reference gamut, such as the sRGB gamut, to the RGB color space of a device being characterized. This may be considered to produce a characterization of the device color behavior which characterizes the device with a behavior which is altered when compared to the normal behavior of the device. For example, the mapping produced by the above-described method could be implemented by a selection of a type of rendering intent using a device ICC profile such as an input ICC profile for a capturing device or an output ICC profile for a reproduction device. In examples, an example method is implemented based on a selection of a rendering intent using such a device ICC profile. For example, an example method could be implemented during an implementation of a perceptual rendering intent, or a saturation rendering intent. It should be noted that, in other examples, the described method may be implemented in what may be referred to as a device mapping characterization. That is, the resulting characterization produced by the method described above may be encoded as a device link ICC profile. Since through the above method, a mapping may be produced which maps from the color values of the source gamut, e.g., the RGB color values of the sRGB gamut or other RGB or CMYK values, to the color space of the device, e.g. the device-dependent RGB color values of the device or the device-dependent CMY/CMYK color values of the device, In yet another example, the method may be used to produce what may be referred to as a color mapping characterization. That is, the resulting characterization produced by the method described above may be encoded as a mapping between CIE LAB values of a first gamut and CIE LAB values of the second gamut. Such a characterization may in examples be encoded in an abstract ICC profile, for converting between CIE LAB values of one gamut to CIE LAB values of another gamut.
The preceding description has been presented to illustrate and describe examples of the principles described. This description is not intended to be exhaustive or to limit these principles to any precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is to be understood that any feature described in relation to any one example may be used alone, or in combination with other features described, and may also be used in combination with any features of any other of the examples, or any combination of any other of the examples,
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2018/054229 | 10/3/2018 | WO | 00 |