Hue changing color gamut mapping

11290696 · 2022-03-29

Assignee

Inventors

Cpc classification

International classification

Abstract

An aspect of present principles is directed to methods and systems for gamut mapping colors from a either a source color gamut or a content color gamut towards a target color gamut. A source hue of the source specific colors and a source hue of the content specific colors is changed towards a target hue of the corresponding target specific colors. Color gamut mapping is performed for the source colors of either the whole source color gamut or the content color gamut towards the target color gamut based on the mapped specific colors. The specific colors are selected from primary colors, secondary colors, a group of primary colors and secondary colors.

Claims

1. A method comprising: accessing a first set of colors comprising colors on a curve going through an achromatic color, a specific color of a first source color gamut, a specific color of a second source color gamut, and a specific color of a target color gamut, wherein colors lying on the curve are source colors from either the first source color gamut or the second source color gamut, wherein the specific color of the first source color gamut and the specific color of the second source color gamut are on the curve between the achromatic color and the specific color of the target color gamut; accessing a second set of colors comprising colors on a line of a constant hue corresponding to a hue of the corresponding specific color of the target color gamut; and color gamut mapping one color among colors lying on the curve towards the target color gamut, wherein the color gamut mapping is based on a hue difference between a hue of a first color from the first set of colors and a hue of a second color from the second set of colors, the second color from the second set of colors having a same chroma as the first color from the first set of colors, wherein the hue difference depends on the same chroma of the first color or the second color; wherein the achromatic color is common to the first source color gamut, the second source color gamut, and the target color gamut; and wherein the specific color of the first source color gamut, the specific color of the second source color gamut, and the specific color of the target color gamut are a same color in the first source gamut, the second source gamut, and the target color gamut, respectively, selected from a group of primary colors and secondary colors.

2. The method of claim 1, wherein the first source color gamut, second source color gamut, and the target color gamut are in at least one color space having a lightness axis and a chromaticity plane, and wherein color gamut mapping comprises rotating a hue of the one color towards a hue of a mapped color based on the hue difference.

3. The method of claim 1, wherein color gamut mapping further comprises determining a third color from the first set of colors and interpolating a hue of the third color from the first set of colors based on the hue difference for the first color from the first set of colors and a hue difference for the third color from the first set of colors.

4. The method of claim 1, wherein color gamut mapping further comprises saturation compressing such that mapped colors are within the target color gamut or saturation expanding such that the mapped colors populate a larger part of the target color gamut.

5. The method of claim 1, wherein the hue difference corresponds to a hue rotation angle for the first color from the first set of colors, such that when any sample color from the first set of colors is rotated by the hue rotation angle, a mapped sample color of the first set of colors coincides with a color of the second set of colors.

6. The method of claim 1, wherein the second source color gamut is a content color gamut.

7. The method of claim 1, wherein the curve results from selection of the specific color of the first source color gamut, the specific color of the second source color gamut, and the specific color of the target color gamut.

8. The method of claim 1, wherein the first source color gamut is different from the target color gamut, the second source color gamut is different from the target color gamut, and the first source color gamut is different from the second source color gamut.

9. The method of claim 1, wherein a first hue leaf color of a first hue leaf is mapped in a first manner, and a second hue leaf color of the first hue left is mapped in a second manner that is different from the first manner, wherein hue mapping of colors of the first hue leaf depends on chroma of colors of the first hue leaf.

10. A system comprising: at least one processor; and at least one memory having stored instructions operative, when executed by the at least one processor, to cause the at least one processor to: access a first set of colors comprising colors on a curve going through an achromatic color, a specific color of a first source color gamut, a specific color of a second source color gamut, and a specific color of a target color gamut, wherein colors lying on the curve are source colors from either the first color gamut or the second color gamut, wherein the specific color of the first source color gamut and the specific color of the second source color gamut are on the curve between the achromatic color and the specific color of the target color gamut; access a second set of colors comprising colors on a line of a constant hue corresponding to a hue of the corresponding specific color of the target color gamut; and color gamut map one color among colors lying on the curve towards the target color gamut, wherein the color gamut mapping is based on a hue difference between a hue of a first color from the first set of colors and a hue of a second color from the second set of colors, the second color from the second set of colors having a same chroma as the first color from the first set of colors, wherein the hue difference depends on the same chroma of the first color or the second color; wherein the achromatic color is common to the first source color gamut, the second source color gamut, and the target color gamut; and wherein the specific color of the first source color gamut, the specific color of the second source color gamut, and the specific color of the target color gamut are a same color in the first source gamut, the second source gamut, and the target color gamut, respectively, selected from a group of primary colors and secondary colors.

11. The system of claim 10, wherein the first source color gamut, the second source color gamut, and the target color gamut are in at least one color space having a lightness axis and a chromaticity plane, and wherein gamut color mapping comprises rotating a hue of the one color towards a hue of a mapped color based on the hue difference.

12. The system of claim 10, wherein color gamut mapping further comprises determining a third color from the first set of colors and interpolating a hue of the third color from the first set of colors based on the hue difference for the first color from the first set of colors and a hue difference for the third color from the first set of colors.

13. The system of claim 10, wherein color gamut mapping further comprises saturation compressing such that mapped colors are within the target color gamut or saturation expanding such that the mapped colors populate a larger part of the target color gamut.

14. The system of claim 10, wherein the hue difference corresponds to a hue rotation angle for the first color from the first set of colors, such that when any sample color from the first set of colors is rotated by the hue rotation angle, a mapped sample color of the first set of colors coincides with a color of the second set of colors.

15. A non-transitory computer-readable storage medium having stored thereon instructions that are operative, when executed by a processor, to cause the processor to perform: accessing a first set of colors comprising colors on a curve going through an achromatic color, a specific color of a first source color gamut, a specific color of a second source color gamut, and a specific color of a target color gamut, wherein colors lying on the curve are source colors from either the first color gamut or the second color gamut, wherein the specific color of the first source color gamut and the specific color of the second source color gamut are on the curve between the achromatic color and the specific color of the target color gamut; accessing a second set of colors comprising colors on a line of a constant hue corresponding to hue of the corresponding specific color of the target color gamut; and color gamut mapping one color among colors lying on the curve towards the target color gamut, wherein the color gamut mapping is based on a hue difference between a hue of a first color from the first set of colors and a hue of a second color from the second set of colors, the second color from the second set of colors having a same chroma as the first color from the first set of colors, wherein the hue difference depends on the same chroma of the first color or the second color; wherein the achromatic color is common to the first source color gamut, the second source color gamut, and the target color gamut; and wherein the specific color of the first source color gamut, the specific color of the second source color gamut, and the specific color of the target color gamut are a same color in the first source gamut, the second source gamut, and the target color gamut, respectively, selected from a group of primary colors and secondary colors.

16. The non-transitory computer-readable storage medium of claim 15, wherein color gamut mapping further comprises determining a Look Up Table (LUT), wherein the LUT includes a mapping of input LUT colors to resulting LUT colors determined based on the color gamut mapping for the colors of the first source color gamut or the second source color gamut towards the target color gamut based on the hue difference.

17. The non-transitory computer-readable storage medium of claim 15, wherein the first source color gamut, the second source color gamut, and the target color gamut are in at least one color space having a lightness axis and a chromaticity plane, and wherein color gamut mapping comprises rotating a hue of the one color towards a hue of a mapped color based on the hue difference.

18. The non-transitory computer-readable storage medium of claim 15, wherein color gamut mapping further comprises determining a third color from the first set of colors and interpolating a hue of the third color from the first set of colors based on the hue difference for the first color of from the first set of colors and a hue difference for the third color from the first set of colors.

19. The non-transitory computer-readable storage medium of claim 15, wherein color gamut mapping further comprises saturation compressing such that mapped colors are within the target color gamut or saturation expanding such that the mapped colors populate a larger part of the target color gamut.

20. The non-transitory computer-readable storage medium of claim 15, wherein the hue difference corresponds to a hue rotation angle for the first color from the first set of colors, such that when any sample color from the first set of colors is rotated by the hue rotation angle, a mapped sample color of the first set of colors coincides with a color of the second set of colors.

Description

BRIEF DESCRIPTION OF DRAWINGS

(1) The invention will be more clearly understood on reading the description which follows, given by way of non-limiting example and with reference to the appended figures in which:

(2) FIG. 1 illustrates an exemplary color gamut in the RGB color space;

(3) FIG. 2 illustrates an exemplary hue rotation mapping;

(4) FIG. 3a illustrates an exemplary plot diagram of saturation gain;

(5) FIG. 3b illustrates an exemplary plot diagram of hue rotation;

(6) FIG. 4a illustrates an exemplary color gamut mapping in accordance with present principles;

(7) FIG. 4b illustrates an exemplary portion of a hue rotation mapping in accordance with present principles;

(8) FIG. 5 illustrates an exemplary method in accordance with present principles;

(9) FIG. 6 illustrates an exemplary system in accordance with present principles;

(10) FIG. 7 illustrates an exemplary device in accordance with present principles;

(11) FIG. 8 illustrates another exemplary color gamut mapping in accordance with present principles.

DESCRIPTION OF EMBODIMENTS

(12) Color gamut mapping includes a gamut boundary description (GBD). The GBD defines the boundary surface, or hull, of a color gamut in a color space. GBDs often comprise of explicit, generic 3D representations such as triangle meshes or volume models. For example, a GBD of a color gamut can be based on a mesh of triangles, each triangle being defined by its three vertices in the color space of this GBD. These vertices are colors located on the boundary of the color gamut.

(13) Colors as well as GBD(s) are usually represented in a color space, although not necessarily in the same color space. A color space is a space where colors can be represented by color coordinates. A color space may correspond with a type of display or with an input source (e.g., a camera). The same color gamut can be represented in different color spaces (RGB, Lab, IPT . . . ). However a color gamut represented in different color spaces usually has a different shape in each of those different color spaces. A type of color space is a three-dimensional space that includes a lightness—L-axis, a chroma—C-axis, and a hue—h-axis. In some color spaces (such as Lab or IPT), hue may be defined as the angle around a central vertical axis of the cylindrical representation of the color space, chroma (i.e. saturation) may be defined as the distance from the axis and lightness as the distance along the axis.

(14) The cusp of a color gamut is a set of colors, where each color has a larger chroma (i.e. saturation) compared to all other colors being in the same constant-hue leaf of a 3D color space and being within the color gamut. The constant-hue leaf expands along a lightness (L) axis and a chroma (C) axis. When a color gamut is described by a GBD based on discrete surface elements such as triangles, the cusp includes singular points (vertices) or lines (edges) on the boundary surface that limits a color gamut. For a color gamut of a trichromatic, additive display, the cusp usually includes the primary colors red, green, blue and the secondary colors yellow, magenta, cyan. The primary and secondary colors are in at least one of the color channels of the input of the display at either the minimum or at maximum levels. The cusp of a color gamut can be modeled using a gamut boundary description based on mesh of triangles where the cusp is a closed polygon based on vertices of some triangles. Cusp colors corresponding to these vertices are generally defined as the in-gamut color of maximum chroma in a given constant-hue leaf.

(15) The cusp line of a color gamut is a line joining cusp colors. When the color gamut is represented in a color space having a measure for chroma (e.g., Lab color space or JCh color space according to the CIECAM-02 model defined by the CIE in 2002, or IPT color space as defined by Ebner Fritz and Mark D. Fairchild in their paper “Development and testing of a color space (IPT) with improved hue uniformity” published at the conference Color and Imaging Conference in 1998), a cusp color corresponds to the color of maximum chroma (i.e. maximum saturation) in a plane defined by a constant hue. The chroma (i.e. the saturation) of a color can be obtained from human observers using psycho-physical experiments. However different viewing conditions and/or different models can lead to different chroma (i.e. saturation) definitions. For example, in the Lab color space (respectively in the IPT color space), chroma (i.e. saturation) is defined to be the square root of the sum of the squares of a and b (respectively P and T). A plane defined by a constant hue is generally named “constant hue leaf”. More generally, cusp colors often correspond to singular points (“vertices”) or singular lines (“edges”) on the boundary surface that limits a color gamut. The cusp line of a color gamut can be generally modeled as a line forming a closed polygon on the gamut boundary of this color gamut.

(16) A color gamut mapping method (or gamut mapping algorithm) may map sourcecolors from a source color gamut (having its own source cusp points or source cusp line) to a target color gamut (having also its own target cusp points or destination cusp line) where the source colors are distributed with in a content color gamut (having its own source cusp points or source cusp line). The content color gamut is included in the source colors gamut. In order to take advantage of the range of colors in the target gamut, the gamut mapping method may map a source cusp point/line into the target cusp point/line. Such gamut mapping algorithms are known as cusp gamut mapping algorithms.

(17) FIG. 1 illustrates an example of a color gamut 100 in the RGB color space. The color gamut 100 of FIG. 1 may be the color gamut of a trichromatic display or a trichromatic camera. The color gamut 100 corresponds to the cube (the inside and the surface) shown in FIG. 1.

(18) As shown in FIG. 1, RGB color gamut 100 includes a cusp line 105. The cusp line 105 is the dotted line forming a closed polygon, corresponding to the set of lines linking the primary colors to the secondary colors. The cusp line 105 is composed of singular lines linking each primary color of the display (for example red 153, green 158 and blue 155) with a secondary color (for example yellow 152, magenta 157 and cyan 156) that has that primary color as a component. For example, the cusp line 105 may link colors as follows: red 153 with yellow 152, red 153 with magenta 157, green 158 with yellow 152, green 158 with cyan 156, blue 155 with cyan 156 and blue 155 with magenta 157. The cusp line 105 is shown by dotted lines in FIG. 1.

(19) FIG. 2 illustrates an example of a hue rotation color gamut mapping in a PT-plane of the IPT color space. FIG. 2 includes the cusp of a source color gamut 201, generated by projecting the 3D cusp of the source color gamut into the PT-plane, the cusp of a target color gamut 202, generated by projecting the 3D cusp of the target color gamut into the PT-plane, and the cusp of a hue mapped source gamut 203 using full hue rotation, generated by projecting the 3D cusp of the hue mapped source color gamut into the PT-plane. The P and T axes are the two chromatic axis of the IPT color space. The hue mapped source gamut 203 is the result of aligning the hue of the primary and the secondary colors of the source color gamut 201 with the hue of the respective primary and the secondary colors of the target color gamut 202, thereby providing full hue rotation.

(20) FIG. 3a illustrates an exemplary plot diagram 300 illustrating the modification of saturation resulting from color gamut mapping using chroma compression or expansion with or without the full hue rotation. As used herein, the modification of saturation may be defined as a ratio of color saturation before and after color gamut mapping. For example when using chroma compression or expansion without hue rotation, the saturation ratio of the cusp points of the source color gamut may correspond to the ratio between the saturation of the cusp point in the source color gamut and the saturation of the cusp point having the same hue in the target color gamut.

(21) The plot diagram 300 illustrates the modification of saturation that is induced by color gamut mapping using chroma compression. The vertical axis of the plot diagram 300 pertains to the saturation ratio. The horizontal axis of the plot diagram 300 pertains to hue angle measured in degrees. The plot diagram 300 includes a plot line 301 that demonstrates the saturation ratio versus hue angle when there is no hue rotation. Plot line 301 relates to mapping the source color gamut to the target color gamut (using a chroma compression without hue rotation). The plot diagram 300 further includes a plot line 302 that demonstrates the saturation ratio versus hue angle when there is a full hue rotation. Plot line 302 relates to mapping the source color gamut (using a gamut mapping with full hue rotation such as Henley) to the target color gamut.

(22) FIG. 3b illustrates an exemplary plot diagram 310 of hue rotation resulting from a color gamut mapping with or without the full hue rotation. The plot diagram 310 illustrates the hue rotation (change of hue) that is induced by full hue rotation mapping of the source color gamut to the target color gamut. The vertical axis of the plot diagram 310 pertains to hue rotation angle in degrees. The horizontal axis of the plot diagram 310 pertains to hue angle in degrees. The plot diagram 310 includes a plot line 311 that demonstrates the hue rotation angle versus hue angle when there is no hue rotation. The plot diagram 310 further includes a plot line 312 that demonstrates the hue rotation angle versus hue angle when there is a full hue rotation. As shown in FIG. 3b, most of the colors get shifted by a large amount when there is full hue rotation. As can be seen from FIGS. 3a and 3b, while full hue rotation effectively improves the uniformity of the saturation ratio, full hue rotation also results in the colors getting shifted.

(23) An aspect of present principles relates to mapping of the hue of colors of a first and second source color gamuts being for instance a source color gamut and a content color gamut. An aspect of present principles is directed to hue mapping. An aspect of present principles is directed to mapping the source color gamut and the content color gamut towards, but not necessarily into, the target color gamut. For example, the hue of the colors in the source color gamut or the content color gamut may be modified such that the resulting hue mapped source color gamut and the resulting hue mapped content color gamut are closer to the target color gamut. However, after the hue mapping, some colors of the hue mapped content color gamut might still lie outside of the target color gamut and/or the target color gamut might not be completely covered by the hue mapped content color gamut. In the same way, after the hue mapping, some colors of the hue mapped source color gamut might still lie outside of the target color gamut and/or the target color gamut might not be completely covered by the hue mapped source color gamut. The hue mapped colors may then need to be further mapped towards the target color gamut so that all hue mapped colors lie inside the target color gamut and/or the target color gamut is completely covered by the hue mapped colors.

(24) FIG. 4a illustrates an example of a hue rotation color gamut mapping in a PT-plane of the IPT color space. FIG. 4a includes the cusp of a source color gamut 201, the cusp of a target color gamut 202, the cusp of a content color gamut 401 and the cusp of a hue mapped content color gamut 402 using full hue rotation. The hue mapped content gamut 402 is the result of aligning the hue of the primary and the secondary colors (C.sub.C2) of the content color gamut 401 with the hue of the respective primary and the secondary colors (C.sub.T2) of the target color gamut 202, thereby providing full hue rotation. As shown on FIG. 4a, if content color gamut 201 is smaller than source color gamut 401, the target color gamut may expose less chroma than content color gamut 201 and than source color gamut 401 for some hues (around C.sub.T2) while having colors with larger chroma for other hues (around C.sub.T5). Indeed any gamut mapping is compatible with the hue mapping of the present principles.

(25) In one example of present principles, the hue mapping may exclude or may include other mapping processes, such as cusp color gamut mapping. In one example, gamut mapping with chroma compression or expansion is applied after hue mapping, thereby minimizing color neighborhood degradation.

(26) An aspect of present principles is a method for color gamut mapping such that the source color gamut is changed or modified towards the target color gamut and at the same time the content color gamut is changed or modified towards the target color gamut. An aspect of present principles is directed to hue mapping based on mapping of the hue of primary and secondary colors of both the source and the content gamuts towards the hue of the corresponding primary and secondary colors of the target color gamut. This mapping or modification might include a complete hue mapping—similar to the known CARISMA algorithm—of primary or secondary colors of the source or of the content gamut towards the corresponding primary or secondary colors of the target color gamut such that the hue of the mapped primary or secondary colors is identical to the hue of the corresponding primary or secondary colors of the target color gamut. This mapping or modification might include also an adaptive hue mapping—similar to the known method from WO2016206981—of primary or secondary colors of the source or of the content gamut towards the corresponding primary or secondary colors of the target color gamut such that the hue of the mapped primary or secondary colors is closer to the hue of the corresponding primary or secondary colors of the target color gamut than before mapping.

(27) As used herein, primary (C.sub.T1, C.sub.T3, C.sub.T5) or secondary (C.sub.T2, C.sub.T4, C.sub.T6) “corresponding” colors of a target color gamut correspond to the primary or secondary color (only C.sub.S2 is represented) of the source color gamut and to the primary or secondary color (only C.sub.C2 is represented) of the content color gamut. For example, the ‘red’ color of the target color gamut is the target color corresponding to the ‘red’ of the source color gamut and to the ‘red’ of the content color gamut. These three different ‘reds’ are corresponding specific colors. Alternatively, the corresponding colors of a target color gamut can refer to the specific color of the target color gamut with the closest hue to the specific colors of the source and content color gamuts.

(28) An aspect of present principles is directed to a hue mapping in a color space, this color space being characterized in that the hue of a color is represented by a cylindrical angle, the lightness of a color by the coordinate on the longitudinal axis of the cylindrical coordinate representation of the color space and the chroma by the distance of the color to the longitudinal axis. The lightness axis (O) corresponds to the achromatic color. The hue mapping includes a rotation of the cusp points of the source and content color gamuts around the lightness axis. The colors may be rotated in the ab plane in Lab color space or PT space in IPT color space as shown on FIG. 4a. The rotation may then be applied to modify source colors represented in any other color space (e.g., RGB, YUV).

(29) An aspect of present principles is that two colors within the same hue leaf are hue mapped in different manners. According to a salient feature of the present principles, the hue mapping of colors of a same hue leaf depend on the chroma of colors. This is different from known methods such as CARISMA and WO2016206981 where the rotation of a cusp point of a hue leaf defines a rotation of all colors of the hue leaf. In one example, the angle of rotation further varies with the hue. FIG. 4b illustrates an exemplary portion of a hue rotation mapping in accordance with present principles. The colors C and C′ of the source color gamut have the same hue and thus are part of a same hue leaf. Each of the colors C and C′ are hue mapped in accordance with present principles based on the hue difference of one color on the first set of colors (403) namely C.sub.S or C′.sub.S, respectively, and the second set of colors (404). For example, a hue rotation angle can be defined for each of C and C′ having the same value as the mentioned hue difference of C.sub.S or C′.sub.S, respectively. Since the hue differences of C.sub.S and C′.sub.S are generally not the same, the hue rotation angle of C and C′ are generally distinct.

(30) An aspect of present principles is directed to a method for mapping, in a color space, colors of a source color gamut towards colors of a target color gamut, where hue, saturation and lightness can either be directly represented by a coordinate of the color space or obtained from the coordinates of the color space.

(31) Hue rotation for colors other than colors of a first set of colors may be determined based on hue rotation angles determined for the colors of at least one first set of colors. For example, hue rotation angles for a such other color can be obtained by interpolation of the hue rotation angles of the colors of at least one first set of colors having the same or close chroma. Alternatively, hue rotation angles may be obtained by interpolation of the hue rotation angles of the colors of at least one first set of colors having the same or close lightness.

(32) An aspect of present principles allows for an improvement in uniformity of the saturation gain induced by color gamut mapping, while accounting for potential hue modifications. An aspect of present principles relates to a method that improves the uniformity of the saturation gain not only of colors distributed all over the source color gamut but also the saturation gain of colors distributed all over the content color gamut. An aspect of present principles relates to a method that not only improves the uniformity of the saturation gain—thereby minimizing the color neighborhood degradation—but also minimizes the average change of hue. An aspect of present principles is directed to the preservation of the color neighborhood, which includes maintaining the spatial uniformity in color space of features of the content colors (e.g., lightness, chroma or hue) after mapping towards the target color gamut. In one example, an aspect of present principles is directed to hue rotation angles smaller than the full hue rotation angle.

(33) In one example, the range of hue rotation is between a minimum rotation and a maximum rotation where the minimum is 0—no rotation—and the maximum is the hue angle difference between the specific colors in the source color or content color gamut and the corresponding specific colors in the target color gamut (alignment of the source primary color hue to the hue of the target primary color).

(34) In another example, the range of hue rotation is between a minimum rotation and a maximum rotation where the minimum is the negative hue angle difference between the specific color in the source color gamut and the corresponding specific colors in the target color gamut (alignment of the source primary or secondary color C.sub.S2 hue to the hue of the target primary or secondary color C.sub.T2) and the maximum is the positive hue angle difference between the specific color in the content color gamut and the corresponding specific colors in the target color gamut (alignment of the content primary or secondary color C.sub.C2 hue to the hue of the target primary or secondary color C.sub.T2).

(35) In another example, the range of hue rotation is between a minimum rotation and a maximum rotation where the minimum is the negative hue angle difference between the specific color in the content color gamut and the corresponding specific colors in the target color gamut (alignment of the content primary color hue to the hue of the target primary color) and the maximum is the positive hue angle difference between the specific color in the source color gamut and the corresponding specific colors in the target color gamut (alignment of the source primary color hue to the hue of the target primary color). This example is shown in FIG. 4a for the specific target color C.sub.T1.

(36) In another example, the range of hue rotation is between a minimum rotation and a maximum rotation where the minimum is the negative hue angle difference between the specific color in the source or content color gamut and the corresponding specific colors in the target color gamut (alignment of the source or content primary color hue, respectively, to the hue of the target primary color as for C.sub.T3, C.sub.T4 C.sub.T5) and the maximum is 0 corresponding to no rotation.

(37) The method can be applied to the primary colors only or advantageously to the primary and the secondary colors. The other colors of the source gamut are also rotated using an interpolation of the hue rotation angles of the neighboring primary (and advantageously the secondary) colors in the simplest implementation, the rotation angle for colors of same chroma is a piecewise linear function of hue. In one example, the method is applied to the 2D projection of the 3D cusp on the chroma plane (ab plane in Lab space, PT plane in IPT space). However it may be possible to apply this, without modification, to the 3D cusp using angles measured in the 3D color space. In this particular case, the hue change might depend on third coordinate (i.e. the lightness, the intensity or the luminance). In one other example, two neighboring specific color (for example for C.sub.T1, C.sub.T2) of color (C or C′) and interpolating the rotating hue of the color (C or C′) based on the hue difference for each of the two neighboring specific color. Advantageously, the rotation angle for color C of same chroma is a linear function of hue applied to the hue difference for each of the two neighboring specific colors (C.sub.T1, C.sub.T2).

(38) In one example, advantages of present principles include the ability to optimize the mapping at the same time to the source color gamut and to the content color gamut. Another advantage includes the ability to preserve artistic intent as moderate hue shift is applied in most cases, and maximum hue shift is only applied when needed. Another advantage includes preservation of color neighborhood increasing the uniformity of the saturation gain of a cusp gamut mapping at the same time for two types of source color distributions, the first distribution using the whole source color gamut, the second only using the content color gamut.

(39) FIG. 5 illustrates a flow diagram illustrating a method 500 for hue mapping in accordance with present principles. In one example, method 500 is directed to performing hue rotation mapping of both a source color gamut and a content color gamut towards a target color gamut. Method 500 may include changing the hue of the colors of the source color gamut.

(40) Method 500 may include a block 501 for receiving information regarding a source color gamut. Block 501 may receive source color gamut information, e.g., information identifying the entire color gamut. In another example, block 501 may receive an identifier that identifies stored color gamut information (e.g., an indicator that identifies prestored color gamut information). The received source color gamut information may be information that identifies the source color gamut. The source color gamut could be limited to the coordinates of primary colors, secondary colors, the achromatic point, gamut boundary description, coordinates of some colors, the cusp line, cusp points, etc. The source color gamut can be represented in any defined color space (e.g., RGB, XYZ, Lab, and IPT). The source color gamut may be received from any source (e.g., from a device delivering the input content, such as a camera, a set top box, a camera sensor, a HDMI receiver, a communication interface, a mobile network (including 3G or 4G network), a wireless network (including Wi-Fi, Bluetooth network or links), a TV Broadcast network (e.g. DVB or ATSC receiver interface), a wired network (including web network), a wired link or bus (including HMDI, USB), an optical disk player (including DVD or Blu-Ray player, a video stream or a storage medium (e.g. a Blu-Ray Disk, a memory)). The source color gamut may alternatively or in addition be compliant with a standard (e.g. rec.709, rec.2020)).

(41) Block 502 may determine the cusp line of the received source color gamut. Block 502 may determine each cusp point for each hue. In one example, block 502 may determine, for each hue, the color with the maximum saturation. Block 502 may represent the cusp line as a saturation per hue. In another example, block 502 may represent the cusp line based on 3D coordinates of the cusp points.

(42) Method 500 may further include a block 503 for receiving information regarding a target color gamut. Block 503 may receive target color gamut information, e.g., information identifying the entire color gamut. In another example, block 503 may receive an identifier that identifies stored color gamut information (e.g., an indicator that identifies prestored color gamut information). The received target color gamut information may be information that identifies the target color gamut. The target color gamut could be limited to the coordinates of primary colors, secondary colors, the achromatic point, gamut boundary description, coordinates of some colors, the cusp line, cusp points, etc. The target color gamut can be represented in any defined color space (e.g., RGB, XYZ, Lab, and IPT). The target color gamut may be transmitted from any device/system (e.g., from a device that will display the content such as a television, a monitor, a smartphone, a tablet, a laptop, a gaming interface, or any other type of display, a communication interface, a destination interface, or a communication link (e.g. Wi-Fi, USB) or wired Link (e.g. HDMI, local area network)). The target color gamut may alternatively or in addition be a color gamut that is compliant with a standard (e.g. rec.709, rec.2020)). The target color gamut may be transmitted and/or received via a destination interface, e.g. an interface with a display or a communication link (including wireless (e.g. Wi-Fi, USB) or wired Link (e.g. HDMI, local area network).

(43) In one example, the color space of the target color gamut may be different than the color space of the source color gamut. In one example, the target color gamut information may be received from a different device/system than the source color gamut information. For example, source images with source colors from a system using RGB color space according to BT.2020 are to be mapped to target colors in target images for a system using RGB color space according to BT.709.

(44) Block 504 may determine the cusp line(s) of the target color gamut. Block 504 may determine the cusp line in accordance with principles described in connection with block 502.

(45) Method 500 may further include a block 505 for receiving information regarding a content color gamut. Block 505 may receive content color gamut information, e.g., information identifying the entire color gamut. In another example, block 505 may receive an identifier that identifies stored color gamut information (e.g., an indicator that identifies prestored color gamut information). The received content color gamut information may be information that identifies the content color gamut. The content color gamut could be limited to the coordinates of primary colors, secondary colors, the white point, gamut boundary description, coordinates of some colors, the cusp line, cusp points, etc. The content color gamut can be represented in any defined color space (e.g., RGB, XYZ, Lab, and IPT). The content color gamut may be transmitted from any device/system (e.g., from a device that will display the content such as a television, a monitor, a smartphone, a tablet, a laptop, a gaming interface, or any other type of display, a communication interface, a destination interface, or a communication link (e.g. Wi-Fi, USB) or wired Link (e.g. HDMI, local area network)). The content color gamut may alternatively or in addition be a color gamut that is compliant with a standard (e.g. rec.709, rec.2020)). The content color gamut may be transmitted and/or received via a destination interface, e.g. an interface with a display or a communication link (including wireless (e.g. Wi-Fi, USB) or wired Link (e.g. HDMI, local area network).

(46) In one example, the color space of the content color gamut may be different than the color space of the source color gamut. In one example, the content color gamut information may be received from a different device/system than the source color gamut information.

(47) Block 506 may determine the cusp line(s) of the content color gamut. Block 506 may determine the cusp line in accordance with principles described in connection with block 502.

(48) Block 507 may determine hue rotation angles. In one example block 507 may determine hue rotation angles based on primary colors. In another example, block 507 may determine hue rotation angles based on secondary colors. In one example of present principles, block 507 may determine hue rotation angles based on only primary colors. In another example of present principles, block 507 may determine hue rotation angles based on only secondary colors. In another example, block 507 may determine hue rotation angles based on both primary and secondary colors.

(49) Block 507 may determine hue changes for each source color, and in particular for each specific color (i.e., primary and/or secondary color). As used herein, “specific colors” are defined as primary color(s), secondary color(s) or primary and secondary colors of a color gamut. Block 507 may determine hue changes of the specific colors of the source color gamut in the direction of the hue of the corresponding primary and/or the secondary color of the target color gamut. In one example, block 507 may determine hue changes by determining hue rotations that are defined by rotation angles.

(50) In one example block 507 can determine hue changes, i.e., a hue rotation angle, for any hue, including hues of non-specific colors. In one example, block 507 may determine the hue rotation angle based on interpolation (e.g., linear, splines) of the hue rotation angles obtained for the primary and/or the secondary colors. In one example, the angle of rotation of colors other than specific colors may be determined by linear interpolation of the angle of rotation of the specific colors surrounding (i.e adjacent to) the hue angle of said specific colors in the source color gamut. Other interpolation methods could be used (e.g. spline interpolation). In one example, block 507 may perform such principles.

(51) In another example, non-specific colors (colors other than primary and/or secondary colors) of the source color gamut may be rotated using a linear interpolation of the hue rotation angles of the adjacent primary (and optionally also the secondary) colors in the source color gamut. The hue rotation angle may be a piecewise linear function of hue. In one example, block 507 may perform this example.

(52) In one example, block 507 may determine a look-up table (“LUT”) for mapping input colors (e.g., colors from input images/video) to output colors (e.g., output images/video).

(53) Block 507 may determine hue rotation angles for the primary and/or the secondary colors in accordance with the principles described in connection with steps 1-4 described hereafter.

(54) Block 508 may apply hue rotation based on the determinations of block 507. In one example, block 508 may apply hue rotation based on the hue rotation angles from block 507. In one example, block 508 may generate a LUT based on applying the hue rotation determinations from block 507 to each input color to determine an output color. In another example, block 508 may apply hue rotation based on an LUT that was previously determined in accordance with present principles, including the hue rotation determinations of block 507. Once an LUT is generated in accordance with present principles, it may be stored for future application without performing the determinations of blocks 501-507. The LUT may be generated in accordance with the principles described in connection with blocks 501-507 and steps 1-4.

(55) Block 508 may receive input color information. The input color information may be color information of input pixels of the input video. In one example, block 508 may determine an output color that is determined based on the rotated hue. Block 508 may then provide the output color.

(56) In one example, blocks 509 and 510 may apply color space conversion to input or output color (e.g., pixels). The color conversion may be performed in the same step or the same process as the hue rotation. The color space conversion may change the representation of a color from a first color space to another color space. In one example, blocks 509 and 510 may be optional. In one example, blocks 509 and 510 may apply color space conversion based on color space representation of an LUT. In another example, blocks 509 and 510 may apply color space conversion based on the color space used to perform the hue rotation. Method 500 discusses an example of performing aspects of present principles in a color space such as Lab or IPT. In such color space, the modification of hue corresponds to a rotation of colors.

(57) Method 500 may be modified for other implementations, such as implementations utilizing LUTs that modify the hue. For example if method 500 is modified to utilize LUTs, block 508 may implement the LUT. In this example, blocks 501-507 may not be utilized or may be utilized to generate the LUT.

(58) FIG. 8 illustrates an exemplary plot diagram 800 of a source color gamut 201, a content color gamut 401 and a target color gamut 202 at a certain lightness level in the ab-plane of CIELAB color space.

(59) In one example, block 507 of FIG. 5 may determine hue rotation angles for the primary and/or the secondary colors in the following way. The hue rotation angle for the primary or secondary color of the source color gamut is determined such that after hue mapping the hue of the mapped primary or secondary color of the source color gamut is identical to the hue of the corresponding primary of secondary color of the target color gamut (alignment of the source primary or secondary color hue to the hue of the target primary or secondary color). The hue rotation angle for the corresponding primary or secondary color of the content color gamut is determined such that after hue mapping the hue of the mapped primary or secondary color of the content color gamut is identical to the hue of the corresponding primary of secondary color of the target color gamut (alignment of the content primary or secondary color hue to the hue of the target primary or secondary color).

(60) In another example, block 507 of FIG. 5 may determine hue rotation angles for a first set of selected source colors in the following way. The set of selected colors 403 is defined by a curve going through the white (i.e origin of the ab plane or lightness axis) and through all three corresponding primary or secondary colors of the source, content and target color gamuts, respectively (such as C.sub.S2, C.sub.C2, C.sub.T2). Such curve corresponds to a first continuous set of selected colors. According to a variant, only a first discrete set of colors of the continuous set of selected colors of the curve are used. In a non-limiting example, the first discrete set of colors comprises 10 color samples. Such variant is particularly well adapted to reduce processing power for implementing the method. In one example, the curve a piecewise strait line. In one other example, the curve a spline. The hue rotation for this set of selected source colors is defined such that after hue rotation the mapped set of selected source colors is identical to the set of selected target colors 404. The set of selected target colors 404 is defined by a curve going through the white (i.e origin of the ab plane or lightness axis or achromatic color) and the corresponding primary or secondary color of the target color gamut. Such curve 404 corresponds to a second continuous set of selected colors. Advantageously, this curve 404 is a straight line corresponding to a constant hue or a same hue leaf. As for the first set of colors, the second set of colors might be discrete. Such strait line limits the artifacts when chroma is compressed in a further chroma mapping step of a gamut mapping method.

(61) In total, six sets of selected source colors 403 are mapped to corresponding six sets of selected target colors 404 for all six primary and secondary colors ‘red, ‘green’, ‘blue, ‘cyan’, ‘magenta’ and ‘yellow’. In this example, the hue rotation angle depends on the chroma. One source color of the set of selected source colors is a source color gamut primary or secondary color that is mapped to the corresponding primary or secondary color (alignment of the source primary or secondary color hue to the hue of the target primary or secondary color). One source color of the set of selected source colors is a content color gamut primary or secondary color that is mapped to the corresponding primary or secondary color (alignment of the content primary or secondary color hue to the hue of the target primary or secondary color). The hue rotation angles of the primary or secondary colors of the source and content color gamuts, respectively, are different if the hues of the primary or secondary colors of the source and content color gamuts, respectively, are different.

(62) In one example of present principles, the set of selected source colors 403 is not passing through target color.

(63) In one example of present principles, a hue rotation angle (θ) may be determined as follows. The following example may be implemented by block 507 of FIG. 5. The following steps are applied: 1. For source sample colors and corresponding content and target sample colors, access a first set of colors (801) comprising an achromatic color, the specific color of the source color gamut, a corresponding specific color of the content color gamut and a corresponding specific color of the target color gamut. In one example, a curve (403) going through the origin and the three specific colors is created in block 507 or is recovered from information on the color gamuts. The colors of this curve are called set of selected source colors or first continuous set of colors. 2. For source sample colors and corresponding content and target sample colors, access a second set of colors (404) comprising colors of a constant hue corresponding to hue of the specific color of the target color gamut. In one example, a curve (404) going through origin and the specific target color is created or is recovered from information on the color gamuts. The curve is different from the curve (403) of step 1. The colors of this curve are called set of selected target colors or second set of colors. 3. In preliminary step of step 4, a hue difference is computed between a first sample color from the first set of colors (403) towards the second set of colors (404). The hue difference corresponds to a hue rotation angle for the first sample color of the first set of colors (403) such that when any sample color from the first set of colors is rotated by this hue rotation angle, the mapped sample color of the first set of colors will coincide with a color of the second set of colors (404). Such hue differences for selected specific colors may be stored in a LUT for latter use in step 4. 4. For any given color of one of a source color gamut or a content color gamut, performing color gamut mapping towards the target color gamut is based the hue differences of sample colors having a same chroma as the given color and computed in step 3. In one example, a hue rotation angle (θ) is computed by interpolation of the hue rotation angles calculated in step 3, for instance of 2 neighboring sample colors.

(64) A first continuous set of colors corresponding to a source specific color C.sub.S, to a target specific color C.sub.T and to a content specific color C.sub.C according to step 1 can be constructed for example using key points defining a cubic splines curve in the following manner: A set of key points in color space is defined containing: One point corresponding to the specific color C.sub.S of the source color gamut, One point corresponding to the specific color C.sub.T of the target color gamut, One point corresponding to the specific color C.sub.C of the content color gamut, One preservation point C.sub.P for not modifying the hue at low chroma which is on the line between a first anchor point C.sub.A1 on the lightness axis and the specific color C.sub.T of the target color gamut at 20% distance from the first anchor point: C.sub.P=C.sub.A1+0.2(C.sub.T−C.sub.A1), where the anchor point C.sub.A1 has same lightness as C.sub.T but the chromatic coordinates are zero. In CIELAB space, if C.sub.T=(L.sub.T, a.sub.T, b.sub.T), the first anchor point is C.sub.A1=(L.sub.T, 0,0) and the preservation point is C.sub.P=(L.sub.T, 0.2 a.sub.T, 0.2 b.sub.T). Another first anchor point could be chosen according to artistic intent of color preservation, for example C.sub.A1=(50,0,0) which is an anchor point at half maximum lightness on the lightness axis. This preservation point guides the cubic splines curve to colors of same hue as C.sub.T for lower chroma within 20% of the target color gamut. The percentage of 20% can be increased, for example 25%, or reduced, for example 15%, depending on the artistic intent of hue preservation for low chroma. One extrapolation point C.sub.E having a larger chroma than all of the three specific colors of source, target and content gamuts. If for example—such as shown in FIG. 4a for C.sub.S5—the specific color C.sub.S5 has a larger chroma than the corresponding specific colors of the target and content gamuts, the extrapolation point is chosen to be C.sub.E=C.sub.S5+0.2 (C.sub.S5−C.sub.A2), where the second anchor point C.sub.A2 has same lightness as C.sub.S5 but the chromatic coordinates are zero. In CIELAB space, if C.sub.S5=(L.sub.S, a.sub.S, b.sub.S), the second anchor point is C.sub.A2=(L.sub.S, 0, 0) and the extrapolation point is C.sub.E=(L.sub.S, 1.2 a.sub.S, 1.2 b.sub.S). Another second anchor point could be chosen according to artistic intent of color extrapolation, for example C.sub.A2=(50,0,0) which is an anchor point at half maximum lightness on the lightness axis. The extrapolation point guides the cubic splines curve to colors of same hue as C.sub.S5 for large chroma beyond the largest color gamut. The factor of 0.2 can be increased, for example 0.3, or reduced, for example 0.1, depending on the artistic intent of mapping behaviour for large chroma. The key points {C.sub.T, C.sub.S, C.sub.C, C.sub.P, C.sub.E} are associated with the corresponding chroma values {c.sub.T, c.sub.S, c.sub.C, c.sub.P, c.sub.E} where in CIELAB space holds c.sub.T=√{square root over (a.sub.T.sup.2+b.sub.T.sup.2)} and correspondingly for c.sub.S, c.sub.C, c.sub.P, c.sub.E. Three cubic splines curves f.sub.L(c), f.sub.a(c), f.sub.b(c) are calculated using known methods, for example the method “interpld” from the module “interpolate” of the Python library “scipy”, where The first curve f.sub.L(c) is calculated from the lightness values {L.sub.T, L.sub.S, L.sub.C, L.sub.P, L.sub.E} of the key points {C.sub.T, C.sub.S, C.sub.C, C.sub.P, C.sub.E} and the corresponding chroma values {c.sub.T, c.sub.S, c.sub.C, c.sub.P, c.sub.E}; The second curve f.sub.a(c) is calculated from the a coordinate values {a.sub.T, a.sub.S, a.sub.C, a.sub.P, a.sub.E} of the key points {C.sub.T, C.sub.S, C.sub.C, C.sub.P, C.sub.E} and the corresponding chroma values {c.sub.T, c.sub.S, c.sub.C, c.sub.P, c.sub.E}; The third curve f.sub.b(c) is calculated from the b coordinate values {b.sub.T, b.sub.S, b.sub.C, b.sub.P, b.sub.E} of the key points {C.sub.T, C.sub.S, C.sub.C, C.sub.P, C.sub.E} and the corresponding chroma values {c.sub.T, c.sub.S, c.sub.C, c.sub.P, c.sub.E}. The first continuous set of colors is than given by {(L,a,b)/L=f.sub.L(c), a=f.sub.a(c), b=f.sub.b(c), 0<c<c.sub.max} where c.sub.max is the chroma of the specific color among corresponding specific colors for source, target and content gamuts having the largest chroma. For example, for the first continuous set of colors for the specific color C.sub.S5, c.sub.max is the chroma of C.sub.S5.

(65) In step 3 above, the hue rotation angles may be calculated for a set of N sample colors out of the first continuous set of colors, for example {(L.sub.i,a.sub.i,b.sub.i)/L.sub.i=f.sub.L(c.sub.i), a.sub.i=f.sub.a(c.sub.i), b.sub.i=f.sub.b(c.sub.i), c.sub.i=c.sub.maxi/N, 0≤i<N−1}. If C.sub.T=(L.sub.T, a.sub.T, b.sub.T) is the corresponding specific color of the target color gamut, the rotation angles are the angles between the vectors {(a.sub.i,b.sub.i)} and the vector {(a.sub.T,b.sub.T)} in the ab-plane of CIELAB space. The resulting rotation angles {α.sub.i=angle((a.sub.i,b.sub.i), (a.sub.T,b.sub.T)/0≤i<N−1} can form a Look Up Table (LUT) {(L.sub.i,a.sub.i,b.sub.i,α.sub.i)/0≤i<N−1} indicating for a color {(L.sub.i,a.sub.i,b.sub.i) in color space the corresponding rotation angle α.sub.i to be applied in order to hue map the color. Such a LUT can be created for each first continuous set of colors of all specific colors of the source color gamut and all these LUTs can be combined into a global LUT, for example {(L.sub.i,a.sub.ib.sub.i,α.sub.i)/0≤i<6 N−1} supposing three primary and three secondary colors to be the specific colors of the source color gamut.

(66) In step 4 above, in order to hue map any given color of one of a source color gamut or a content color gamut, a hue rotation angle (θ) can computed by interpolation of the entries of the global LUT {(L.sub.i,a.sub.i,b.sub.i,α.sub.i)/0≤i<6 N−1}. Any known interpolation method can be used, for example bilinear interpolation of the two closest LUT entries.

(67) In step 4 above, after hue mapping, chroma compression or expansion can be applied in order to bring the mapped colors into the target color gamut—by compression—or in order to make the mapped colors populating the entire target color gamut—by expansion. In case of compression, for example a chroma mapping algorithm can be used that maps colors along straight mapping trajectories that are anchored each to an anchor point belonging to the achromatic L-axis. Each hue mapped color is chroma mapped onto a target color in direction to the anchor point along a mapping trajectory. The mapping of a hue mapped color can be described as a modification of the distance D of this hue mapped color from the anchor point into a distance D′ of the resulting target color from the same anchor point.

(68) In order to map D to D′, the well known three segment mapping function can be used such as discussed by Montag et al. in their paper entitled “Gamut mapping: Evaluation of chroma clipping techniques for three destination gamuts” and published at the IS&T/SID Sixth Color Imaging Conference. This mapping function has a first segment having a slope of one covering 40% of the chroma, a last segment being a hard clipping, and a middle segment connecting the other two segments covering 60% of chroma.

(69) These examples, as well as the principles described in connection with steps 1-4 may be performed by block 507 of method 500 illustrated in FIG. 5.

(70) FIG. 6 illustrates an exemplary system 600 in accordance with present principles. The system 600 may include one or more of intermediary system 601, intermediary system 602 and display system 603. As it can be appreciated, system 600 may include only one of these systems 601-603. Alternatively, system 600 may include some or all of the systems 601-603. Alternatively, system 600 may include additional or different systems for performing color gamut mapping other than systems 601-603. In one example, each of the systems 601-603 may be a device similar to device 700 of FIG. 7. Alternatively, each of the systems 601-603 may be implemented in whole or in part with device 700 of FIG. 7.

(71) System 600 illustrates first color gamut 604, second color gamut 605, and third color gamut 606. Or one or more of the color gamuts 604-606 may be included, or different color gamuts than the examples provided herein may be further included.

(72) Each of the color gamuts 604-606 may be received or may be signaled. Additionally, as used herein, the word “signal” refers to indicating something, e.g., information of a stored color gamut or color gamut mapping information. For example, a system may receive a signal identifying a known color gamut (e.g., a standardized color gamut). A system may signal one or more parameters relating to a color gamut in order to make a system aware of which color gamut is utilized on the color gamut mapping system side. In this way, parameters or identifiers may be utilized to identify color gamuts. By avoiding transmission of any actual parameters, savings may be realized. It is to be appreciated that signaling may be accomplished in a variety of ways. For example, one or more syntax elements, flags, and so forth may be used to signal information.

(73) Each of the color gamuts 604-606 may correspond to color gamuts, such as the color gamuts of a display panel, of a camera, of present or future color gamut standards (e.g., NTSC, rec. 709, rec. 2020, Adobe RGB, and DCI-P3). The color gamuts 604-606 may be received from any device/system (e.g., from a device delivering the input content, such as a camera, a set top box, a Blu-ray player, a camera sensor, a HDMI receiver, a communication interface). The color gamuts may alternatively or in addition be compliant with a standard (e.g. rec.709, rec.2020)). The color gamuts may be received via any medium (e.g., a mobile network (including 3G or 4G network), a wireless network (including Wi-Fi, Bluetooth network or links), a TV Broadcast network (e.g. DVB or ATSC receiver interface), a wired network (including web network), a wired link or bus (including HMDI, USB), an optical disk player (including DVD or Blu-Ray player, a video stream or a storage medium (e.g. a Blu-Ray Disk, a memory).

(74) Each of the systems 601-603 may include a color gamut mapping block 610. The color gamut mapping block 610 may perform color gamut mapping in accordance with the principles described in connection with FIG. 5 and steps 1-4. The color gamut mapping 610 may be performed locally or may be performed in whole or in part remotely (e.g., on a server, in the cloud).

(75) In one example, intermediary system 601 may be a camera. The intermediary system 601 may perform color gamut mapping 610 in accordance with present principles to map a camera sensor color gamut to another color gamut (e.g., a standardized color gamut, or the color gamut of the camera display). In one example, intermediary system 601 may be a broadcaster encoder. The intermediary system 601 may perform color gamut mapping 610 in accordance with present principles to map a color gamut of the original video content (e.g., a standardized color gamut like rec. 2020) to a color gamut of the transmission channel (e.g., a standardized color gamut like rec. 709). In one example, intermediary system 602 may be a set-top box system, a video recorder, or a Blu-ray player for performing color gamut mapping between two different standards (e.g. NTSC, rec. 709, rec. 2020, Adobe RGB, and DCI-P3). As shown in FIG. 6, the source color gamut, the target color gamut or both the source and target color gamut may be provided to intermediary system 602. In one example, there may be multiple intermediary systems 602 that may perform color gamut mapping during the transmission/reception of color gamut information. In one example, display system 603 may be a display. The display system 603 may perform color gamut mapping 610 in accordance for present principles to map the color gamut of the video content (e.g. utilizing rec. 2020) to the color gamut of the physical display panel (e.g. defined by its primary and the secondary colors).

(76) Alternatively, each of the systems 601-603 may apply an LUT that was determined in accordance with the principles described in connection with FIG. 5 and steps 1-4. The LUT may be determined based on hue rotation in accordance with present principles. In this particular case, the hue rotation angle for the specific colors (e.g. primary colors and/or secondary colors) may be obtained utilizing steps 1-4. During the generation of the LUT, each possible color input of the LUT may be provided as input to the apply hue rotation (e.g., block 508 of FIG. 5). The output of the apply hue rotation is then stored in the LUT as corresponding to the possible color input.

(77) In one example, during the generation of the LUT, depending on the format of the LUT input (e.g. RGB or YUV, 8 bit, 12 bit or 16 bit), each possible LUT input color value may be optionally first converted (e.g., block 509) to the working color space (e.g. Lab or IPT). The hue rotation angle may then be determined for each possible LUT input value. The hue rotation may then be applied (e.g., block 508) to the color before the optional conversion (e.g., block 510) to the LUT output color space (e.g. Lab, IPT, RGB, or YUV). The output color value may be known as the LUT result and may be stored in the LUT. The LUT input may have a smaller resolution than the actual system input and the missing information may be interpolated before applying the LUT. Thus, the LUT provides a mapping of input LUT colors to resulting LUT processed colors, where the resulting LUT colors are processed in accordance with present principles, including the principles described in connection with steps 1-4 and FIG. 5.

(78) FIG. 7 represents an exemplary architecture of a device 700 which may be configured to implement methods described in relation with FIG. 5 and steps 1-4. The present principles may be performed locally or may be performed in whole or in part remotely (e.g., on a server, in the cloud). As described above, device 700 may be part of one or more systems 601-603 of FIG. 6.

(79) In one example, FIG. 7 represents an apparatus that may be configured to implement the color processing methods according to present principles.

(80) Device 700 comprises following elements that are linked together by a data and address bus 701: a microprocessor 702 (or CPU), which is, for example, a DSP (or Digital Signal Processor); a ROM (or Read Only Memory) 703; a RAM (or Random Access Memory) 704; an I/O interface 705 for reception of data to transmit, from an application; and a battery 706 (or other suitable power source).

(81) According to an example, the battery 706 is external to the device. In each of mentioned memory, the word «register» used in the specification can correspond to area of small capacity (some bits) or to very large area (e.g. a whole program or large amount of received or decoded data). ROM 703 comprises at least a program and parameters. Algorithm of the methods according to the invention is stored in the ROM 703. When switched on, the CPU 702 uploads the program in the RAM and executes the corresponding instructions.

(82) RAM 704 comprises, in a register, the program executed by the CPU 702 and uploaded after switch on of the device 700, input data in a register, intermediate data in different states of the method in a register, and other variables used for the execution of the method in a register.

(83) The implementations described herein may be implemented in, for example, a method or a process, an apparatus, a software program, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method or a device), the implementation of features discussed may also be implemented in other forms (for example a program). An apparatus may be implemented in, for example, appropriate hardware, software, and firmware. The methods may be implemented in, for example, an apparatus such as, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, computers, cell phones, portable/personal digital assistants (“PDAs”), and other devices that facilitate communication of information between end-users. The system 700 may include memory 703 and/or 704 and processor(s) 702. In one example, the processor 702 may perform the operations described in connection with FIG. 5. In one example, the memory 703 and/or 704 may store data related to the operations described in connection with FIG. 5.

(84) The functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. Moreover, explicit use of the term “processor” or “controller” should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (“DSP”) hardware, read-only memory (“ROM”) for storing software, random access memory (“RAM”), and non-volatile storage. Other hardware, conventional and/or custom, may also be included.

(85) Moreover, the software may be implemented as an application program tangibly embodied on a program storage unit. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (“CPU”), a random access memory (“RAM”), and input/output (“I/O”) interfaces. The computer platform may also include an operating system and microinstruction code. The various processes and functions described herein may be either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU. In addition, various other peripheral units may be connected to the computer platform such as an additional data storage unit and a printing unit.

(86) While the present invention is described with respect to a particular embodiment, it is understood that the present invention is not limited to this embodiment. The present invention as claimed therefore includes variations from this embodiment described herein, as will be apparent to one of skill in the art.

(87) It is to be further understood that, because some of the constituent system components and methods depicted in the accompanying drawings are preferably implemented in software, the actual connections between the system components or the process function blocks may differ depending upon the manner in which the invention is implemented.