IP Library Granted Patent US 10,600,166
Granted Patent B2
US 10,600,166 · App. 16/486,392 · Granted Mar 24, 2020

Tone curve mapping for high dynamic range images

Inventors: Jaclyn Anne Pytlarz (Sunnyvale, CA); Robin Atkins (San Jose, CA)
Assignee: Dolby Laboratories Licensing Corporation
G06T5/009G06T2207/20208
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 10,600,166
App. No.
16/486,392
Granted
Mar 24, 2020
Kind
B2
Abstract

Methods for mapping an image from a first dynamic range to a second dynamic range are presented. The mapping is based on a function that includes two spline polynomials determined using three anchor points and three slopes. The first anchor N point is determined using the black point levels of the input and target output, the second anchor point is determined using the white point levels of the input and target output, and the third anchor point is determined using mid-tones information data for the input and target output. The mid-tones level of the target output is computed adaptively based on an ideal one-to-one mapping and by preserving input contrast in both the blacks and the highlights. An example tone-mapping transfer function based on third order (cubic) Hermite splines is presented.

Claims (70)

1. A method to map using a processor an image from a first dynamic range to a second dynamic range, the method comprising:

accessing first information data for an input image in the first dynamic range, the first information data comprising an input black point level (x1, SMin), an input mid-tones level (x2, SMid), and an input white point level (x3, SMax) in the first dynamic range;

accessing second information data for an output image in the second dynamic range, the second information data comprising a first output black point level (TminPQ) and a first output white point level (TmaxPQ) in the second dynamic range;

determining an output mid-tones value in the second dynamic range based on the first information data and the second information data;

computing a second output black point and a second output white point in the second dynamic range based on the second information data and the output mid-tones value;

computing a tail slope, a head slope, and a mid-tones slope based on the first information data, the second information data, and the output mid-tones value;

determining a transfer function to map pixel values of the input image in the first dynamic range to corresponding pixel values of the output image in the second dynamic range, wherein the transfer function comprises two segments, wherein the first segment is determined based on the tail slope, the mid-tones slope, the input black point level, the input mid-tones level, the second output black point, and the output mid-tones value, and the second segment is determined based on the mid-tones slope, the head slope, the input mid-tones level, the input white point level, the output mid-tones value, and the second output white point; and

mapping the input image to the output image using the determined transfer function.

2. The method of claim 1 , wherein computing the second output black point and the second output white point in the second dynamic range is further based on the first information data.

3. The method of claim 1 , wherein:

computing the tail slope is based on the input black point level, the input mid-tones level, the second output black point and the output mid-tones value;

computing the head slope is based on the input white point level, the input mid-tones level, the second output white point and the output mid-tones value; and

computing the mid-tones slope is based on the first information data, the second output black point, the second output white point and the output mid-tones value.

4. The method of claim 1 , wherein the first dynamic range comprises a high dynamic range and the second dynamic range comprises a standard dynamic range.

5. The method of claim 1 , wherein the transfer function further comprises a first linear segment for input values lower than the input black point level in the first dynamic range, wherein the linear segment has a slope equal to the tail slope, wherein optionally the transfer function for the first linear segment comprises

y=T Min+( x−S Min)*slopeMin,

wherein x denotes an input pixel value, y denotes an output pixel value, slopeMin denotes the tail slope, TMin denotes the second output black point in the second dynamic range, and SMin denotes the input black point level in the first dynamic range.

6. The method of claim 1 , wherein the transfer function further comprises a second linear segment for input values larger than the input white point level in the first dynamic range, wherein the linear segment has a slope equal to the head slope, wherein optionally the transfer function for the second linear segment comprises

y=T Max+( x−S Max)*slopeMax,

wherein x denotes an input pixel value, y denotes an output pixel value, slopeMax denotes the head slope, TMax denotes the second output white point in the second dynamic range, and SMax denotes the input white point level in the first dynamic range.

7. The method of claim 1 , wherein the first segment and/or the second segment are determined based on a third-order Hermite spline polynomial.

8. The method of claim 7 , wherein determining the first segment comprises computing

y =((2 T 3 −3 T 2 +1)* T Min+( T 3 −2 T 2 +T )*( S Mid− S Min)*slopeMin+(−2 T 3 +3 T 2 )* T Mid+( T 3 −T 2 )*( S Mid− S Min)*slopeMid),

wherein T=(x−SMin)/(SMid−SMin), x denotes an input pixel value, y denotes an output pixel value, slopeMin denotes the tail slope, slopeMid denotes the mid-tones slope, TMin and TMid denote the second output black point and the output mid-tones value, and SMin and SMid denote the input black point level and the input mid-tones level in the first dynamic range.

9. The method of claim 7 , wherein determining the second segment comprises computing

y =((2 T 3 −3 T 2 +1)* T Mid+( T 3 −2 T 2 +T )*( S Max− S Mid)*slopeMid+(−2 T 3 +3 T 2 )* T Max+( T 3 −T 2 )*( S Max− S Mid)*slopeMax),  (5c)

wherein T=(x−SMid)/(SMax−SMid), x denotes an input pixel value, y denotes an output pixel value, slopeMax denotes the head slope, slopeMid denotes the mid-tones slope, TMid and TMax denote the output mid-tones value and the second output white point in the second dynamic range, and SMid and SMax denote the input mid-tones level and the input white point level in the first dynamic range.

10. The method of claim 1 , wherein computing the output mid-tones value comprises computing:

if SMid<TminPQ+a*TMinPQ

then TMid=TMinPQ+a*TMinPQ;

else if SMid>TmaxPQ−b*TmaxPQ

then TMid=TmaxPQ−b*TmaxPQ;

else TMid=SMid;

wherein TMid denotes the output mid-tones value, a and b are percentile values in [0, 1], SMid denotes the input mid-tones level, and TminPQ and TmaxPQ comprise values in the second information data.

11. The method of claim 1 , wherein computing the output mid-tones value further comprises:

determining a preliminary output mid-tones value in the second dynamic range, and first and second bounding values for the preliminary output mid-tones value, based on the first information data and the first output black point;

computing a head offset and a tail offset in the second dynamic range based on the preliminary output mid-tones value, the first and a second bounding values, and one or more input contrast preservation values; and

computing the output mid-tones value in the second dynamic range based on the input mid-tones level in the first dynamic range and the head and tail offsets.

12. The method of claim 11 , wherein determining the preliminary output mid-tones value and the first and second bounding values for the first output mid-tones value, comprises computing

midLoc=( S Mid− T min PQ )/ TDR;

headroom=( S Max− S Mid)/ TDR;

tailroom=( S Mid− S Min)/ TDR;

wherein

TDR=T max PQ−T min PQ,

midLoc denotes the preliminary output mid-tones value, tailroom and headroom denote the first and second bounding values for the first output mid-tones value, SMin, SMid, and SMax denote the first information data, and TminPQ denotes the first output black point level.

13. The method of claim 11 , wherein at least one contrast preservation value is approximately 50%.

14. The method of claim 11 , wherein computing the output mid-tones value (TMid) comprises computing

T Mid= S Mid−offsetHead+offsetTail,

wherein SMid denotes the input mid-tones level in the first dynamic range, and offsetHead and offsetTail denote the head and tail offsets.

15. The method of claim 14 , wherein computing the second output white point and the second output black point in the second dynamic range comprises computing

T Max=min( T Mid+ S Max− S Mid, T max PQ ),

T Min=max( T Mid− S Mid+ S Min, T min PQ,

wherein TMin denotes the second output black point, TMax denotes the second output white point, SMin and SMax denote the input black point level and the input white point level in the first dynamic range, and TminPQ and TmaxPQ denote the first output black point and the first output white point in the second dynamic range.

16. The method of claim 10 , further comprising computing a maximum value of the tail slope (maxMinSlope) and/or a maximum value of the head slope (maxMaxSlope) as

maxMinSlope=3*( T Mid− T Min)/( S Mid− S Min),

maxMaxSlope=3*( T Max− T Mid)/( S Max− S Mid),

wherein optionally:

computing the tail slope (slopeMin), the mid-tones slope (slopeMid), and the head slope (slopeMax) further comprises computing

slopeMin=min([maxMinSlope,(( T Mid− T Min)/( S Mid− S Min)) 2 ]);

slopeMax=min([maxMaxSlope,1,(( T Max− T Mid)/( S Max− S Mid)) 4 ]);

slopeMid=min([maxMinSlope,maxMaxSlope,contrastFactor*(1 −S Mid+ T Mid)]);

wherein contrastFactor denotes a contrast parameter.

17. The method of claim 1 , further comprising determining a backward look-up table to map an image from the second dynamic range back to the first dynamic range, the method comprising:

determining a forward look-up table mapping a plurality of x(i) values in the first dynamic range to y(i) values in the second dynamic range based on the determined transfer function; and

generating the backward look-up table mapping a plurality of y′(k) values in the second dynamic range to corresponding x′(k) values in the first dynamic range by setting:

if y′(k)=y(i), then x′(k)=x(i)

otherwise

if y(i)<y′(k)<y(i+1), then the corresponding output x′(k) is generated by interpolating a value between x(i) and x(i+1).

18. An apparatus comprising a processor configured to perform the method recited in claim 1 .

19. A non-transitory computer-readable storage medium having stored thereon computer-executable instruction for executing a method with one or more processors in accordance with claim 1 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2019
From: PYTLARZ, JACLYN ANNE; ATKINS, ROBIN
To: DOLBY LABORATORIES LICENSING CORPORATION
Reel/Frame 050068/0529 →
Priority Claims (1)
EP 17156284 · Feb 15, 2017 · regional
Continuity (3)
Provisional Application 62465298 · Mar 1, 2017
Provisional Application 62459141 · Feb 15, 2017
Related Publication 20200005441A1 · Jan 2, 2020
Cited By (7)
US 12,293,498 US 12,413,693 US 12,452,450 US 12,573,352 US 12,632,944 US 12,646,156 US 12,700,428