IP Library Granted Patent US 8,953,876
Granted Patent B2
US 8,953,876 · App. 13/591,948 · Granted Feb 10, 2015

Creation of a color profile of an image

Inventors: Apostolos Lerios (Austin, TX); Ryan David Mack (Waltham, MA)
Assignee: Facebook, Inc.
G06T3/00H04N1/6058H04N1/54
View Patent ↗
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 8,953,876
App. No.
13/591,948
Granted
Feb 10, 2015
Kind
B2
Abstract

Techniques for accurate color representation of images stored within a social networking system. In an embodiment, an error metric and a target error threshold are determined. A binary search algorithm and a simulated annealing algorithm are performed. A color profile for transforming an image in a first color space to a second color space is created based on the binary search algorithm, the simulated annealing algorithm, the error metric, and the target error threshold. Determination of the error metric may comprise determining a frequency with which a color occurs in the image, assigning a weight to the color based on the frequency, and calculating the error metric based on the weight. Determination of the error metric may comprise dividing the image into a plurality of sections, assigning a plurality of importance values to the plurality of sections, and calculating the error metric based on the plurality of importance values.

Claims (52)

1. A method comprising:

by one or more computing devices, receiving an image that corresponds to a first color space; and

by one or more computing devices, creating, based on an approximation function, a color profile for transforming the image from the first color space to a second color space, wherein:

the approximation function is determined by a polyline;

the polyline comprises a number of line segments;

each of the line segments has one or more control points;

the number of line segments is determined by a binary search algorithm;

the control points for the line segments are determined by a simulated annealing algorithm; and

the polyline as determined by the binary search algorithm and the simulated annealing algorithm is separated from an ideal function curve for transforming the image by an error value that is within a pre-determined threshold.

2. The method of claim 1 , wherein the error value is calculated using an error metric for the color profile.

3. The method of claim 1 , wherein the plurality of polyline segments approximate the ideal function curve.

4. The method of claim 3 , wherein the control points lie on the ideal function curve.

5. The method of claim 3 , wherein the control points do not lie on an ideal function curve.

6. The method of claim 2 , wherein the determining the error metric comprises calculating a numerical difference between an ideal color and an approximate color.

7. The method of claim 2 , wherein determining the error metric comprises calculating a Delta-E for an ideal color and an approximate color.

8. The method of claim 2 , wherein determining the error metric comprises:

determining a frequency with which a color occurs in the image;

assigning a weight to the color based on the frequency; and

calculating the error metric based on the weight.

9. The method of claim 2 , wherein determining the error metric comprises:

dividing the image into a plurality of sections;

assigning a plurality of importance values to the plurality of sections; and

calculating the error metric based on the plurality of importance values.

10. The method of claim 2 , wherein determining the error metric comprises computing the error metric based on at least one color.

11. The method of claim 2 , wherein determining the error metric comprises computing the error metric based on a plurality of colors.

12. The method of claim 11 , wherein the plurality of colors are represented by consecutive bytes.

13. The method of claim 1 , wherein the binary search algorithm comprises determining an upper bound and a lower bound for the binary search algorithm.

14. The method of claim 13 , wherein an initial value for the binary search algorithm is the upper bound or the lower bound.

15. The method of claim 1 , wherein the simulated annealing algorithm comprises determining coordinates for the control points.

16. The method of claim 15 , wherein the coordinates minimize a distance between a polyline and an ideal function curve.

17. The method of claim 1 , wherein the creating the color profile comprises omitting consideration of a color that does not appear in the image.

18. The method of claim 1 , wherein the first color space comprises at least one of an RGB color space and an XYZ color space.

19. A system comprising:

at least one processor; and

a memory storing instructions configured to instruct the at least one processor to:

receive an image that corresponds to a first color space; and

create, based on an approximation function, a color profile for transforming the image from the first color space to a second color space, wherein:

the approximation function is determined by a polyline;

the polyline comprises a number of line segments;

each of the line segments has one or more control points;

the number of line segments is determined by a binary search algorithm;

the control points for the line segments are determined by a simulated annealing algorithm; and

the polyline as determined by the binary search algorithm and the simulated annealing algorithm is separated from an ideal function curve for transforming the image by an error value that is within a pre-determined threshold.

20. A non-transitory computer-readable storage medium storing computer-executable instructions that, when executed, cause a computer system to:

receive an image that corresponds to a first color space; and

create, based on an approximation function, a color profile for transforming the image from the first color space to a second color space, wherein:

the approximation function is determined by a polyline;

the polyline comprises a number of line segments;

each of the line segments has one or more control points;

the number of line segments is determined by a binary search algorithm;

the control points for the line segments are determined by a simulated annealing algorithm; and

the polyline as determined by the binary search algorithm and the simulated annealing algorithm is separated from an ideal function curve for transforming the image by an error value that is within a pre-determined threshold.

Assignments (2)
CHANGE OF NAME Recorded Jan 3, 2022
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058605/0840 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2012
From: LERIOS, APOSTOLOS; MACK, RYAN DAVID
To: FACEBOOK, INC.
Reel/Frame 029257/0848 →
Continuity (1)
Related Publication 20140056512A1 · Feb 27, 2014