IP Library Patent Application 15571818
Patent Application
App. No. 15/571,818

METHOD AND DEVICE FOR PROCESSING COLOR IMAGE DATA REPRESENTING COLORS OF A COLOR GAMUT

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
15/571,818
Abstract

The present principles proposes an invertible and low complexity inverse gamut mapper that preserves invariance of colors near the white point.

Claims (56)

1 . A method for processing color image data representing colors of an original color gamut, wherein the method comprises an inverse-color gamut mapping step in the course of which color image data, represented by a 2D point M belonging to a triangle ABC, is mapped to a mapped color image data of an output color gamut, said triangle ABC representing the original color gamut in a chromaticity diagram and centered on the white point O of the original color gamut, said mapped color image data of the output color gamut being represented by a 2D point M′ belonging to a triangle A′B′C′ representing the output color gamut in the chromaticity diagram, wherein the inverse-color gamut mapping step comprises sub-steps of:

determining a triangle A λ0 B λ0 C λ0 in the chromaticity diagram by applying an homothety to the triangle ABC, said homothety being centered on the white point O and using a scaling factor λ 0 , said triangle A λ0 B λ0 C λ0 representing a preserved color gamut in which the color image data remain unchanged;

determining three angular sectors in the chromaticity diagram, each delimited by two lines starting from the white point O and joining one of the vertices A, B or C of the triangle ABC, and computing a 2×2 matrix for each of those three angular sectors according to the triangle ABC;

computing intermediate coordinates of the 2D point M, assuming this 2D point M belongs to one of the three angular sectors, by multiplying the coordinates of the 2D point M by the matrix relative to said angular sector;

if those intermediate coordinates are positive values and if their sum is lower or equal to 1, then the 2D point M belongs to the current angular sector, otherwise other intermediate coordinates are computed by considering another angular sector;

if the 2D point M does not belong to the triangle A λ0 B λ0 C λ0 , the 2D point M belonging to a quadrilateral defined by two vertices of the triangle A λ0 B λ0 C λ0 and two vertices of the triangle A′B′C′, determining the coordinates of the 2D point M′ as being a weighted linear combination of the coordinates of said four vertices, one of the weights of said combination depending on the distance of the 2D point M to a line joining two vertices of the triangle A λ0 B λ0 C λ0 relatively to a line joining the two vertices of the triangle ABC.

2 . A method for processing color image data representing colors of an output color gamut, wherein the method comprises a color gamut mapping step in the course of which mapped color image data, represented by a 2D point M′ belonging to a triangle A′B′C′, is mapped to a color image data of an original color gamut, said triangle A′B′C′ representing the output color gamut in a chromaticity diagram, said color image data of the original color gamut being represented by a 2D point M belonging to a triangle ABC representing the original color gamut in the chromaticity diagram, wherein the color gamut mapping step comprises sub-steps of:

determining a triangle A λ0 B λ0 C λ0 in the chromaticity diagram by applying an homothety to the triangle ABC, said homothety being centered on the white point of the original color gamut mapping and using a scaling factor λ 0 , said triangle A λ0 B λ0 C λ0 representing a preserved color gamut in which the color image data remain unchanged;

determining three angular sectors in the chromaticity diagram, a first, respectively second and third, angular sector being delimited by a first half-line defined by an intersection point S, respectively S 1 and S 2 , and a vertex of the triangle A′B′C′ and a second half-line defined by another vertex of the triangle A′B′C′ and said intersection point S, respectively S 1 and S 2 , said intersection point S, respectively S 1 and S 2 , being defined as the intersection of a first half-line defined by a vertex of the triangle A′B′C′ and a vertex of the triangle A λ0 B λ C λ0 , and a second half-line defined by another vertex of the triangle A λ0 B λ0 C λ0 and another vertex of the triangle A′B′C′, and computing a 2×2 matrix for each of those three angular sectors SA, SB and SC according to the triangle A′B′C′;

computing intermediate coordinates of the 2D point M′, assuming this 2D point M′ belongs to one of the three angular sectors, by multiplying the coordinates of the 2D point M′, relatively to the intersection point S, S 1 or S 2 according to the angular sector by the matrix relative to said angular sector;

if those intermediate coordinates are positive values and if their sum is greater than or equal to 1, then the 2D point M′ belongs to a current angular sector and is not invariant, the 2D point M belongs to a quadrilateral defined from two vertices of the triangle ABC and two vertices of the triangle A λ0 B λ0 C λ0 , and the coordinates of the 2D point M are determined as being a weighted linear combination of the coordinates of those four vertices,

otherwise other intermediate coordinates are computed by considering another angular sector.

3 . A method for encoding color image data, wherein the method comprises an inverse-color gamut mapping step in the course of which color image data, represented by a 2D point M belonging to a triangle ABC, is mapped to a mapped color image data of an output color gamut, said triangle ABC representing the original color gamut in a chromaticity diagram and centered on the white point O of the original color gamut, said mapped color image data of the output color gamut being represented by a 2D point M′ belonging to a triangle A′B′C′ representing the output color gamut in the chromaticity diagram, wherein the inverse-color gamut mapping comprises sub-steps of:

determining a triangle A λ0 B λ0 C λ0 in the chromaticity diagram by applying an homothety to the triangle ABC, said homothety being centered on the white point O and using a scaling factor λ 0 , said triangle A λ0 B λ0 C λ0 representing a preserved color gamut in which the color image data remain unchanged;

determining three angular sectors in the chromaticity diagram, each delimited by two lines starting from the white point O and joining one of the vertices A, B or C of the triangle ABC, and computing a 2×2 matrix for each of those three angular sectors according to the triangle ABC;

computing intermediate coordinates of the 2D point M, assuming this 2D point M belongs to one of the three angular sectors, by multiplying the coordinates of the 2D point M by the matrix relative to said angular sector;

if those intermediate coordinates are positive values and if their sum is lower or equal to 1, then the 2D point M belongs to the current angular sector, otherwise other intermediate coordinates are computed by considering another angular sector;

if the 2D point M does not belong to the triangle A λ0 B λ0 C λ0 , the 2D point M belonging to a quadrilateral defined by two vertices of the triangle A λ0 B λ0 C λ0 and two vertices of the triangle A′B′C′, determining the coordinates of the 2D point M′ as being a weighted linear combination of the coordinates of said four vertices, one of the weights of said combination depending on the distance of the 2D point M to a line joining two vertices of the triangle A λ0 B λ0 C λ0 relatively to a line joining the two vertices of the triangle ABC.

4 . A method for decoding color image data, wherein the method comprises a color gamut mapping step in the course of which decoded color image data, represented by a 2D point M′ belonging to a triangle A′B′C′, is mapped to a color image data of an original color gamut, said triangle A′B′C′ representing the output color gamut in a chromaticity diagram, said color image data of the original color gamut being represented by a 2D point M belonging to a triangle ABC representing the original color gamut in the chromaticity diagram, wherein the color gamut mapping step comprises sub-steps of:

determining a triangle A λ0 B λ0 C λ0 in the chromaticity diagram by applying an homothety to the triangle ABC, said homothety being centered on the white point of the original color gamut mapping and using a scaling factor λ, said triangle A λ0 B λ0 C λ0 representing a preserved color gamut in which the color image data remain unchanged;

determining three angular sectors in the chromaticity diagram, a first, respectively second and third, angular sector being delimited by a first half-line defined by an intersection point S, respectively S 1 and S 2 , and a vertex of the triangle A′B′C′ and a second half-line defined by another vertex of the triangle A′B′C′ and said intersection point S, respectively S 1 and S 2 , said intersection point S, respectively S 1 and S 2 , being defined as the intersection of a first half-line defined by a vertex of the triangle A′B′C′ and a vertex of the triangle A λ0 B λ0 C λ0 and a second half-line defined by another vertex of the triangle A λ0 B λ0 C λ0 and another vertex of the triangle A′B′C′, and computing a 2×2 matrix for each of those three angular sectors SA, SB and SC according to the triangle A′B′C′;

computing intermediate coordinates of the 2D point M′, assuming this 2D point M′ belongs to one of the three angular sectors, by multiplying the coordinates of the 2D point M′, relatively to the intersection point S, S 1 or S 2 according to the angular sector by the matrix relative to said angular sector;

if those intermediate coordinates are positive values and if their sum is greater than or equal to 1, then the 2D point M′ belongs to a current angular sector and is not invariant, the 2D point M belongs to a quadrilateral defined from two vertices of the triangle ABC and two vertices of the triangle A λ0 B λ0 C λ0 and the coordinates of the 2D point M are determined as being a weighted linear combination of the coordinates of those four vertices,

otherwise other intermediate coordinates are computed by considering another angular sector.

5 . A device comprising a processor configured to apply an inverse-color gamut mapping to color image data representing colors of an original color gamut, characterized in that said inverse-color gamut mapping maps color image data, represented by a 2D point M belonging to a triangle ABC, to a mapped color image data of an output color gamut, said triangle ABC representing the original color gamut in a chromaticity diagram and centred on the white point O of the original color gamut, said mapped color image data of the output color gamut being represented by a 2D point M′ belonging to a triangle A′B′C′ representing the output color gamut in the chromaticity diagram, wherein said inverse-color gamut mapping comprises:

determining a triangle A λ0 B λ0 C λ0 in the chromaticity diagram by applying an homothety to the triangle ABC, said homothety being centered on the white point O and using a scaling factor λ 0 , said triangle A λ0 B λ0 C λ0 representing a preserved color gamut in which the color image data remain unchanged;

determining three angular sectors in the chromaticity diagram, each delimited by two lines starting from the white point O and joining one of the vertices A, B or C of the triangle ABC, and computing a 2×2 matrix for each of those three angular sectors according to the triangle ABC;

computing intermediate coordinates of the 2D point M, assuming this 2D point M belongs to one of the three angular sectors, by multiplying the coordinates of the 2D point M by the matrix relative to said angular sector;

if those intermediate coordinates are positive values and if their sum is lower or equal to 1, then the 2D point M belongs to the current angular sector, otherwise other intermediate coordinates are computed by considering another angular sector;

if the 2D point M does not belong to the triangle A λ0 B λ0 C λ0 , the 2D point M belonging to a quadrilateral defined by two vertices of the triangle A λ0 B λ0 C λ0 and two vertices of the triangle A′B′C′, determining the coordinates of the 2D point M′ as being a weighted linear combination of the coordinates of said four vertices, one of the weights of said combination depending on the distance of the 2D point M to a line joining two vertices of the triangle A λ0 B λ0 C λ0 relatively to a line joining the two vertices of the triangle ABC.

6 . A device comprising a processor configured to apply a color gamut mapping to color image data representing colors of an output color gamut, characterized in that said color gamut mapping maps mapped color image data, represented by a 2D point M′ belonging to a triangle A′B′C′, to a color image data of an original color gamut, said triangle A′B′C′ representing the output color gamut in a chromaticity diagram, said color image data of the original color gamut being represented by a 2D point M belonging to a triangle ABC representing the original color gamut in the chromaticity diagram, wherein said color gamut mapping comprises:

determining a triangle A λ0 B λ0 C λ0 in the chromaticity diagram by applying an homothety to the triangle ABC, said homothety being centered on the white point of the original color gamut mapping and using a scaling factor λ 0 , said triangle A λ0 B λ0 C λ0 representing a preserved color gamut in which the color image data remain unchanged;

determining three angular sectors in the chromaticity diagram, a first, respectively second and third, angular sector being delimited by a first half-line defined by an intersection point S, respectively S 1 and S 2 , and a vertex of the triangle A′B′C′ and a second half-line defined by another vertex of the triangle A′B′C′ and said intersection point S, respectively S 1 and S 2 , said intersection point S, respectively S 1 and S 2 , being defined as the intersection of a first half-line defined by a vertex of the triangle A′B′C′ and a vertex of the triangle A λ0 B λ0 C λ0 , and a second half-line defined by another vertex of the triangle A λ0 B λ0 C λ0 and another vertex of the triangle A′B′C′, and computing a 2×2 matrix for each of those three angular sectors SA, SB and SC according to the triangle A′B′C′;

computing intermediate coordinates of the 2D point M′, assuming this 2D point M′ belongs to one of the three angular sectors, by multiplying the coordinates of the 2D point M′, relatively to the intersection point S, S 1 or S 2 according to the angular sector by the matrix relative to said angular sector;

if those intermediate coordinates are positive values and if their sum is greater than or equal to 1, then the 2D point M′ belongs to a current angular sector and is not invariant, the 2D point M belongs to a quadrilateral defined from two vertices of the triangle ABC and two vertices of the triangle A λ0 B λ0 C λ0 , and the coordinates of the 2D point M are determined as being a weighted linear combination of the coordinates of those four vertices,

otherwise other intermediate coordinates are computed by considering another angular sector.,

7 . A device for encoding color image data, wherein the device comprises a processor configured to apply an inverse-color gamut mapping which maps color image data, represented by a 2D point M belonging to a triangle ABC, to a mapped color image data of an output color gamut, said triangle ABC representing the original color gamut in a chromaticity diagram and centered on the white point O of the original color gamut, said mapped color image data of the output color gamut being represented by a 2D point M′ belonging to a triangle A′B′C′ representing the output color gamut in the chromaticity diagram, wherein said inverse-color gamut mapping comprises:

determining a triangle A λ0 B λ0 C λ0 in the chromaticity diagram by applying an homothety to the triangle ABC, said homothety being centered on the white point O and using a scaling factor λ 0 , said triangle A λ0 B λ0 C λ0 representing a preserved color gamut in which the color image data remain unchanged;

determining three angular sectors in the chromaticity diagram, each delimited by two lines starting from the white point O and joining one of the vertices A, B or C of the triangle ABC, and computing a 2×2 matrix for each of those three angular sectors according to the triangle ABC;

computing intermediate coordinates of the 2D point M, assuming this 2D point M belongs to one of the three angular sectors, by multiplying the coordinates of the 2D point M by the matrix relative to said angular sector;

if those intermediate coordinates are positive values and if their sum is lower or equal to 1, then the 2D point M belongs to the current angular sector, otherwise other intermediate coordinates are computed by considering another angular sector;

if the 2D point M does not belong to the triangle A λ0 B λ0 C λ0 , the 2D point M belonging to a quadrilateral defined by two vertices of the triangle A λ0 B λ0 C λ0 and two vertices of the triangle A′B′C′, determining the coordinates of the 2D point M′ as being a weighted linear combination of the coordinates of said four vertices, one of the weights of said combination depending on the distance of the 2D point M to a line joining two vertices of the triangle A λ0 B λ0 C λ0 relatively to a line joining the two vertices of the triangle ABC.

8 . A device for decoding color image data, wherein the device comprises a processor configured to apply a color gamut mapping which maps decoded color image data, represented by a 2D point M′ belonging to a triangle A′B′C′, to a color image data of an original color gamut, said triangle A′B′C′ representing the output color gamut in a chromaticity diagram, said color image data of the original color gamut being represented by a 2D point M belonging to a triangle ABC representing the original color gamut in the chromaticity diagram, wherein said color gamut mapping comprises:

determining a triangle A λ0 B λ0 C λ0 in the chromaticity diagram by applying an homothety to the triangle ABC, said homothety being centered on the white point of the original color gamut mapping and using a scaling factor λ 0 , said triangle A λ0 B λ0 C λ0 representing a preserved color gamut in which the color image data remain unchanged;

determining three angular sectors in the chromaticity diagram, a first, respectively second and third, angular sector being delimited by a first half-line defined by an intersection point S, respectively S 1 and S 2 , and a vertex of the triangle A′B′C′ and a second half-line defined by another vertex of the triangle A′B′C′ and said intersection point S, respectively S 1 and S 2 , said intersection point S, respectively S 1 and S 2 , being defined as the intersection of a first half-line defined by a vertex of the triangle A′B′C′ and a vertex of the triangle A λ0 B λ0 C λ0 , and a second half-line defined by another vertex of the triangle A λ0 B λ0 C λ0 and another vertex of the triangle A′B′C′, and computing a 2×2 matrix for each of those three angular sectors SA, SB and SC according to the triangle A′B′C′;

computing intermediate coordinates of the 2D point M′, assuming this 2D point M′ belongs to one of the three angular sectors, by multiplying the coordinates of the 2D point M′, relatively to the intersection point S, S 1 or S 2 according to the angular sector by the matrix relative to said angular sector;

if those intermediate coordinates are positive values and if their sum is greater than or equal to 1, then the 2D point M′ belongs to a current angular sector and is not invariant, the 2D point M belongs to a quadrilateral defined from two vertices of the triangle ABC and two vertices of the triangle A λ0 B λ0 C λ0 ,and the coordinates of the 2D point M are determined as being a weighted linear combination of the coordinates of those four vertices,

otherwise other intermediate coordinates are computed by considering another angular sector.

9 . A computer program product comprising program code instructions to execute the steps of the method of claim 1 when this program is executed on a computer.

10 . Non-transitory storage medium carrying instructions of program code for executing steps of the method of claim 1 when said program is executed on a computing device.

11 . A computer program product comprising program code instructions to execute the steps of the method of claim 2 when this program is executed on a computer.

12 . A computer program product comprising program code instructions to execute the steps of the method of claim 3 when this program is executed on a computer.

13 . A computer program product comprising program code instructions to execute the steps of the method of claim 4 when this program is executed on a computer.

14 . Non-transitory storage medium carrying instructions of program code for executing steps of the method of claim 2 when said program is executed on a computing device.

15 . Non-transitory storage medium carrying instructions of program code for executing steps of the method of claim 3 when said program is executed on a computing device.

16 . Non-transitory storage medium carrying instructions of program code for executing steps of the method of claim 4 when said program is executed on a computing device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2019
From: THOMSON LICENSING
To: INTERDIGITAL VC HOLDINGS, INC.
Reel/Frame 050042/0865 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2019
From: FRANCOIS, EDOUARD; LOPEZ, PATRICK; OLIVER, YANNICK
To: THOMSON LICENSING
Reel/Frame 049422/0741 →