The disclosure relates to the field of high dynamic range imaging, and in particular, to expanding dynamic range based on luminance zones.
Recent advancements in display technology are beginning to allow for an extended range of color, luminance and contrast to be displayed. High dynamic range (HDR) technologies focus on capturing, processing and displaying content of a wider dynamic range. Although a number of HDR display devices have appeared, and image cameras capable of capturing images with an increased dynamic range are being developed, there is still very limited HDR content available. While recent developments promise native capture of HDR content in the near future, they do not address existing, low dynamic range (LDR) content.
Inverse tone mapping based on luminance zones is disclosed. A digital image can be obtained and luminance values of pixels of the digital image can be determined. One or more values of luminance zone boundaries can be determined. A zone expansion exponent map based on the luminance values and the one or more luminance zone boundaries can be determined. The one or more luminance zone boundaries divide the zone expansion exponent map into a plurality of luminance zones. The luminance values of the image can be inverse tone mapped based on the luminance zones to which these luminance values belong. An expanded dynamic range image can be provided based on the inverse tone mapped luminance values.
More precisely, a subject of the invention is a method for providing an expanded dynamic range image from a digital image defined by pixels associated with colors represented in a color space separating luminance (Y) from chrominance, comprising:
determining (103) a plurality of luminance zones in which luminance values representing said colors of pixels are distributed;
inverse tone mapping (105) each of said luminance values according to the luminance zone to which said each luminance value belongs; and
providing (106) an expanded dynamic range image based on the inverse tone mapped luminance values.
Preferably, this method comprises determining an expansion exponent value for each pixel of said digital image according to the luminance zone to which luminance value of said pixel belongs, wherein inverse tone mapping luminance value of said pixel comprises applying said expansion exponent value to said luminance value. Such an application is illustrated by equation (22) in embodiments below. The determination of these expansion exponent values forms generally an expansion exponent map.
Preferably, this method comprises low-pass filtering said luminance values, wherein determining an expansion exponent value for each pixel of said digital image is performed according to an expansion exponent quadratic function of the low-pass filtered luminance value of said pixel, wherein said quadratic function depends on the luminance zone to which luminance value of said pixel belongs. It means that there are as many different expansion exponent quadratic functions as luminance zones of the plurality.
Preferably, in this method, each of the different expansion exponent quadratic functions are defined by a different set of three parameters a, b, c which are different for each of the plurality of luminance zones.
Preferably, said expansion exponent quadratic functions are defined in relationship with a maximum display luminance for a HDR display device.
Preferably, said expansion exponent quadratic functions are defined in relationship with a minimum expansion exponent point.
Preferably, said plurality of luminance zones comprises at least three luminance zones, a low zone for luminances of low values, a high zone for luminances of high values, and a middle zone for luminances comprised between luminances of low values and luminances of high values.
In a variant, said expansion exponent quadratic functions are defined by the same set of three parameters a′, b′, c′ and by the position of at least five expansion exponent control points such that:
said expansion exponent quadratic function determining expansion exponent values in middle zone passes through the second, third, fourth of these five expansion exponent control points,
said expansion exponent quadratic function determining expansion exponent values in low zone passes through the first and second of these five expansion exponent control points, and
said expansion exponent quadratic function determining expansion exponent values in high zone passes through the fourth and fifth of these five expansion exponent control points.
It means that the different quadratic functions are shifted one in comparison with another, depending on the positioning of the at least five control points.
Preferably, this method comprises interpolating a global expansion exponent curve from the different expansion exponent quadratic functions using a spline interpolation method.
Preferably, this method comprises determining a contrast value for each pixel (p) of said digital image, wherein inverse tone mapping luminance value Y(p) of said pixel comprises multiplying luminance value obtained by the application of said expansion exponent value by said determined contrast value.
Preferably, determining a contrast value for each pixel is performed according to the luminance zone to which luminance value of said pixel belongs.
Preferably, determining a contrast value for each pixel of said digital image is performed according to a contrast quadratic function of said luminance values which depends on the luminance zone to which luminance value of said pixel belongs, wherein said contrast quadratic functions are defined through at least five contrast control points such that:
said contrast quadratic function determining contrast values in middle zone passes through the second, third, fourth of these five contrast control points,
said contrast quadratic function determining contrast values in low zone passes through the first and second of these five contrast control points, and
said contrast quadratic function determining contrast values in high zone passes through the fourth and fifth of these five contrast control points, and and said method comprises interpolating a global contrast curve from the different contrast quadratic functions using preferably a spline interpolation method.
Preferably, this method comprises determining a lift value for each pixel of said digital image, wherein inverse tone mapping luminance value of said pixel comprises shifting luminance value obtained by the application of said expansion exponent value by said lift value.
Preferably, determining a lift value for each pixel (p) is performed according to the luminance zone to which luminance value Y(p) of said pixel belongs.
Preferably, determining a lift value for each pixel of said digital image is performed according to a lift quadratic function of said luminance values which depends on the luminance zone to which luminance value Y(p) of said pixel belongs, wherein said lift quadratic functions are defined through at least five lift control points such that:
said lift quadratic function determining lift values in middle zone passes through the second, third, fourth of these five lift control points,
said lift quadratic function determining lift values in low zone passes through the first and second of these five lift control points, and
said lift quadratic function determining lift values in high zone passes through the fourth and fifth of these five lift control points, and and said method comprises interpolating a global lift curve from the different lift quadratic functions using preferably a spline interpolation method.
A subject of the invention is also an apparatus for providing an expanded dynamic range image from a digital image defined by pixels associated with colors represented in a color space separating luminance from chrominance, comprising a processing unit configured to implement the above method. This processing unit may comprise one or a plurality of processors.
A subject of the invention is also a non-transitory computer-readable medium storing computer-executable instructions executable to perform the above method.
An object of the invention is also a method comprising:
obtaining a digital image;
determining luminance values of pixels of the digital image;
determining one or more values of luminance zone boundaries;
determining a zone expansion exponent map based on the luminance values and the one or more luminance zone boundaries that divide the zone expansion exponent map into a plurality of luminance zones;
inverse tone mapping the luminance values based on the zone expansion exponent map; and
providing an expanded dynamic range image based on the inverse tone mapped luminance values.
Preferably, the one or more luminance zone boundaries divide the zone expansion exponent map into a shadow zone, a midtone zone, and a highlight zone.
Preferably, the method also comprises obtaining a maximum display luminance of a display device, wherein the zone expansion exponent map is based on the maximum display luminance.
Preferably, the zone expansion exponent map is based on a low-pass filtering of the luminance values.
Preferably, the zone expansion exponent map is based on a quadratic function.
Preferably, the quadratic function is defined by coefficients which are different for each of the plurality of luminance zones.
Preferably, the zone expansion exponent map is based on a maximum display luminance.
Preferably, the zone expansion exponent map is based on a minimum expansion exponent point.
An object of the invention is also an apparatus comprising:
a pre-processor that obtains a digital image and determines luminance values of pixels of the digital image;
a zone expansion mapper that determines one or more values of luminance zone boundaries and determines a zone expansion exponent map based on the luminance values and the one or more luminance zone boundaries that divide the zone expansion exponent map into a plurality of luminance zones;
an inverse tone mapper that applies inverse tone mapping to the luminance values based on the zone expansion exponent map; and
a post-processor (242) that provides an expanded dynamic range image based on the inverse tone mapped luminance values.
The disclosure will be more clearly understood on reading the description which follows, given by way of non-limiting examples and with reference to the appended figures in which:
In various embodiments, inverse tone mapping operators (ITMO) based on luminance zones can be used to expand the dynamic range of content, for example, to prepare LDR content for HDR display devices while allowing for independent adjustment of the expansion in different zones of luminance, for example, a shadow zone, a midtone zone, and a highlight zone. Luminance information of colors in the image content can be processed, for example, with the aim of recovering or recreating the appearance of the original scene. For example, such ITMOs can take a conventional (i.e. LDR) image as input, expand the luminance range of the colors of the image in a global manner, and subsequently process highlights or bright regions locally to enhance the HDR appearance of colors in the image. However, better results may be obtained if the expansion of luminance range is adjusted to better suit different luminance zones.
A plurality of different luminance zones are determined. Luminance zone boundaries divide the range of luminance values of the image into different zones. As explained below, such a division can allow independent adjustments to luminance expansion in the different luminance zones. Preferably, luminance values are divided into at least three zones, a low zone (e.g., a shadow zone), a middle zone (e.g., a midtone zone), and a high zone (e.g., a highlight zone). The amount of luminance expansion in each of the three zones can be independently adjusted. In this way, for example, the expansion of the dynamic range of an image can be adjusted to account for how different luminance zones of the image respond to the expansion. In various embodiments, the luminance zone boundaries can be automatically selected based on an analysis of the image. In other various embodiments, the luminance zone boundaries can be user-selected.
According to the invention, expansion of each luminance value is performed according to the luminance zone to which this luminance value belongs. Such a luminance expansion can notably be performed by applying an exponent value to the luminance value to expand. In this situation, expansion exponent values are determined for each luminance value to expand. Preferably, an expansion exponent map is determined based on the luminance values, such a determination depending on the luminance zone to which these luminance values belong. Such an expansion can also be performed by applying a scaling and/or an offset parameter to a luminance value that can be already expanded, notably by applying an exponent value as described above.
The zone expansion exponent map can be determined (104) based on the luminance values and the one or more luminance zone boundaries. The zone expansion exponent map can include values that represent exponents to be applied to the luminance values of the image in an inverse tone mapping operation. The luminance values of the image can be inverse tone mapped (105) based on the zone expansion exponent map, and an expanded dynamic range image can be provided (106) based on the inverse tone mapped luminance. In this way, for example, the dynamic range of the luminance of the inverse tone mapped image can be expanded, for example, to convert a low dynamic range image into a high dynamic range image. Because the zone expansion exponent map is based on selected luminance zone boundaries, the appearance of the expanded luminance within the zones of the tone mapped image can be individually adjusted.
System 200 can include one or more input devices 201 that can input data, such as an original LDR image 203, zone parameters 205, and a detail parameter (d) 207. One or more input devices 201 can include, for example, a data storage device, such as a hard disk drive, computer memory (RAM, ROM, etc.), optical drive, etc., an image capture device, such as a digital camera, digital video camera, etc., a user input device, such as a computer mouse and graphical user interface (GUI), a touch input device (such as a trackpad, touchscreen, etc.) and touch GUI, etc.
System 200 can also include a low-pass filterer 209, a zone expansion mapper 211, an inverse tone mapper 213, a detail enhancer 215, a saturation enhancer 217 and an HDR display device 219. Detail enhancer 215 can include a high frequency extractor 221 and a luminance enhancer 223.
A pre-processor 202 can obtain original LDR image 203 from one or more input devices 201, and luminance values (Y(p)) 225 can be provided to low-pass filterer 209 and high frequency extractor 221. Chrominance values (U(p) and V(p)) 227 can be provided to saturation enhancer 217. In various embodiments, original LDR image 203 can be in a color opponent space (e.g., YUV, XYZ, Yxy, CIE Lab), which includes luminance as an independent component. In this example, YUV is shown.
In various embodiments, colors of the original LDR image 203 could be represented in a device color space specific to a display device that does not represent luminance as an independent component (e.g., RGB), in which case system 200 can determine luminance values 225 (and color values 227) as one skilled in the art would readily understand. Such a device color space can be standardized, and the corresponding display device can be a virtual one. In such a situation, original LDR image 203 can be processed in a manner known per se such that the color and luminance of the image are represented in a color space separating luminance from chrominance. Thus, in various ways, a luminance value Y(p) and two color values U(p), V(p) can be associated with the color of any pixel, p or i, of original LDR image 203. For instance, RGB values representing colors of the original LDR image 203 in a device color space are converted in a color space having a luminance component Y and for instance two chromatic components, Cb and Cr.
Zone expansion mapper 211 can obtain zone expansion parameters 205 from one or more input devices 201 and can obtain a maximum display luminance (Lmax) 229 from HDR display device 219. Although Lmax 229 is obtained directly from HDR display device 219 in this example, one skilled in the art would readily understand that in various embodiments Lmax could be obtained, for example, from one or more input devices 201.
Low-pass filterer 209 can determined a low-pass filtered version of luminance Y(p), referred to herein as a base luminance, Ybase(p), shown as 231 in
Y
base(P)=Σi∈Ω′Y(pi)f′s(∥p1−p∥)f′r(∥Y(pi)−Y(p)∥) (1)
where f′s is first a Gaussian function applied on the spatial domain of the image, where f′r a second Gaussian function applied on the luminance range domain, where Ω′ is the size of a window of the image centered at the pixel p, and where pi is a pixel in this window.
In various embodiments, the window size can be for instance 5 or 7. Smaller values of window size may allow for better computational efficiency. In this example, the low-pass filtering is bilateral, which refers to the fact that the filtering is performed here both in spatial and luminance range domains.
In various embodiments, the value of the standard deviation, σs, of the first Gaussian function f′s can be greater than or equal to 2. In various embodiments, the value of the standard deviation, σr, of the second Gaussian function f′r can be high enough to smooth texture and noise in the original LDR image, but low enough to avoid crossing edges between objects of the image. In various embodiments, the value of the standard deviation, σr, can be between 0.1 max(Y) and 0.5 max(Y), where max(Y) is the maximum luminance value over all pixels of the original image. In various embodiments, the standard deviation for the spatial Gaussian function f′s can be set at σs=3, and the standard deviation for the luminance range Gaussian function f′r can be set at or =0.3×max(Y).
Ybase(p) 231 can be provided to high frequency extractor 221 of detail enhancer 215, which is described in more detail below. Ybase(p) 231 can also be provided to zone expansion mapper 211.
Zone expansion mapper 211 can determine a zone expansion exponent map allowing to map low-pass filtered luminance values Ybase(p) 231 into expansion exponent values E′(p), 235, zone parameters 205, and Lmax 229. Zone expansion exponent map, E′(p), 235 can be an image-sized floating point map, in which each value represents the exponent to be applied to Y(p) of each pixel in original LDR image 203. In various embodiments, an expansion exponent map, E(p), can be determined first.
In a variant of building an expansion exponent map, the expansion exponent map can be based on expansion exponent quadratic functions, such as:
E(p)=a(Ybase)2+bYbase+c (2)
where the coefficients of the expansion exponent quadratic function, a, b, and c, can be parameters determined as follows based on the maximum display luminance, Lmax:
a=p
a1exp(pa2Lmax)+pa3exp(pa4Lmax) (3)
b=p
b1
L
max
pb2
+p
b3 (4)
c=1.3 (5)
The parameters used in the above equations can be set, for example, as follows: pa1=−8.192e-7, pa2=0.000312, pa3=1.657e-5, pa4=−0.0006967, pb1=0.05941, pb2=0.03135, and pb3=−0.07579.
It means that the expansion exponent quadratic function is defined in relationship with the maximum display luminance Lmax.
In this way, for example, the shape of the expansion exponent map E(p) can change depending on the maximum display luminance, allowing for a global way of controlling the image appearance without requiring input from a user.
Then, the expansion exponent map, E(p), can be adjusted based on luminance zones. Zone expansion mapper 211 can adjust E(p) to obtain an zone expansion exponent map, E′(p). The zone expansion exponent map, E′(p), can be based on parameters that allow adjustment of the expansion exponent map, E(p), based on different zones of luminance.
In this way, for example, a user can be provided additional control over the expansion, which can, for example, allow a user to adjust the appearance of the resulting image and to better allow the user to convey (or preserve in the case of re-mastering) the director's intent. Independent adjusting of different luminance zones can, for example, allow better control of the luminance expansion in shadows and highlights.
In various embodiments, the minimum point of the curve of E(p) can be determined, and the value of E(p) at the minimum point, Ybase_mid, can be obtained. The minimum point of E(p) can serve as a luminance zone boundary between two luminance zones of E(p).
Thus, the two luminance zones can be based on the minimum point of the expansion exponent map E(p). The minimum point can be determined, for example, by determining for which base luminance value Ybase-mid the derivative of E(p) equals zero:
δE(p)=2aYbase+b (6)
0=2a(Ybase_mid)+b (7)
Y
base
_
mid
=−b/2a (8)
The minimum point GEmin is then:
GE
min
=a(Ybase_mid)2+bYbase_mid+c (9)
The minimum point of E(p) can be used a luminance zone boundary between two luminance zones. In various embodiments, the luminance zones, e.g., the left half and right half of the curve E(p), can be adjusted independently about the luminance zone boundary while maintaining continuity of the curve at the luminance zone boundary. In various embodiments, the luminance zones can be adjusted independently about the luminance zone boundary while also maintaining a smoothness of the curve at the luminance zone boundary.
Adjusting the left and right halves of curve E(p) in
In various embodiments, luminance values can be divided into three different zones, a shadow zone, a midtone zone and a highlight zone. In this situation, the expansion exponent values E(p) in the shadow, highlight and midtone zone can be adjusted based on zone adjustment parameters, respectively ps, ph, and pm, where ps is a shadow zone adjustment parameter, ph is a highlight zone adjustment parameter, and pm is a midtone adjustment parameter. The zone adjustment parameters can be used to compute new sets of a, b, and c values for the different quadratic curves E(p) of the different luminance zones. The zone adjustment parameters can be included in zone parameters 205 obtained from one or more input devices 201.
For example, for shadow luminance zone 303, a new set of coefficients, as, bs, and cs, can be determined to define the quadratic curve E(p) in the shadow luminance zone:
a
s
=p
s
a (10)
b
s
=p
s
b (11)
c
s
=p
s(c−Emin)+pmEmin (12)
The same process can be applied to determine new coefficient values ah, bh, and ch for highlight luminance zone 305, replacing ps with ph in the equations 10 to 12 above. A zone expansion exponent map, E′(p), 235 can be determined:
E′(p)=asYbase(p)2+bsYbase(p)+cs, if Ybase(p)<Ybase_mid
and
E′(p)=ahYbase(p)2+bhYbase(P)+ch, if Ybase(p)>=Ybase_mid (13)
It should be noted that as the zone adjustment parameters change the values of a, b, and c for determining E(p), they interact with the Lmax parameter, as a, b, and c can also be determined based on Lmax to globally change the shape of the curve E(p).
The zone adjustment parameters can be user-adjustable via, for example, a user interface such as described above with respect to one or more input devices 201. In various embodiments, Lmax can be fixed when the zone adjustment parameters are user-adjustable. For example, Lmax can be fixed at 1000 nits.
Although the parameters defined above can allow a user to control different parts of the expansion exponent map and therefore fine-tune the appearance of the result, they are restricted in that the range of values considered as highlights and shadows is fixed, depending on the position of the minimum point of E(p).
In contrast, in various other embodiments, the luminance zone boundaries between different luminance zones can be adjustable. To allow for controlling which range of input luminance is considered to be shadows, midtones, or highlights, for example, two additional parameters can be used. For example, a shadow cutoff parameter, ks, and a highlight cutoff parameter, kh, can be used. In various embodiments, the zone cutoff parameters can be user-adjustable. The cutoff parameters can be included in zone parameters 205 obtained from one or more input devices 201.
Two luminance boundary values, Ybase_s and Ybase_h, can be determined:
Y
base
_
s
=Y
base
_
min
−k
s(Ybase_min−Ybase_mid) (14)
Y
base
_
h
=Y
base
_
min
−k
h(Ybase_min−Ybase_mid) (15)
The values of Ybase_s and Ybase_h can be used to determine an additional parameter of the quadratic for each region accordingly. For example, a new base c″ parameter of the quadratic E(p) curve for the midtone zone can be determined:
c″=c−E
min
+p
m
E
min (16)
such that, in this midtone zone, we have: E(p)=a(Ybase)2+bYbase+c″.
By shifting with a shift of −Emin+pmEmin the parameter c defining this quadratic curve in this way, for example, the effect of the midtone parameter, pm, can be essentially incorporated. Next, expansion exponent values at the highlight cutoff point having a luminance value Ybase-h and at the shadow cutoff point having a luminance value Ybase-s can be determined:
E
s
=a(Ybase_s)2+bYbase_s+c″ (17)
E
h
=a(Ybase_h)2+bYbase_h+c″ (18)
Using these expansion exponent values Es, Eh, the amount of shift can be known for each zone of the E(p) curve when computing parameters cs and ch respectively for the shadow part of the E(p) curve and highlights part of the E(p) curve, therefore ensuring that there are no discontinuities in the global quadratic E(p) curve:
c
s
=p
s(c″−Es)+Es (19)
c
h
=p
h(c″−Eh)+Eh (20)
The zone expansion exponent map, E′(p), can then be determined:
E′(p)=asYbase(p)2+bsYbase(p)+cs, if Ybase(p)<Ybase_s
E′(p)=ahYbase(p)2+bhYbase(p)+ch, if Ybase(p)>Ybase_h
and
E′(p)=aYbase(p)2+bYbase(p)+c′, if Ybase_s=<Ybase(p)=<Ybase_h (21)
In this embodiment, the expansion exponent value of each pixel is then again computed according to an expansion exponent quadratic function which depends on the luminance zone to which luminance value of this pixel belongs. Here, we have three different expansion exponent quadratic functions, a first one for the shadow zone defined by the parameters as, bs and cs, and a second one for the highlight zone defined by the parameters ah, bh and ch, and a third one for the midtone zone defined by the parameters a, b and c″.
In preferred other various other embodiments of building an expansion exponent map, a spline-based interpolation method will be used to obtain a curve E(p) from control points determined by the application of user parameters by a user. These control points correspond to specific points of the E(p) curve. An advantage of these other embodiments is that not only the continuity of the E(p) curve is maintained, but also its smoothness.
In this variant, the user parameters are applied on these control points instead of being applied directly on the E(p) curve. By using such a spline interpolation, discontinuities in the image can be advantageously minimized even when extreme combinations of user parameters are applied by the user, since the spline will produce a smooth E(p) curve.
Preferably, luminance is divided into three zones, a low zone (e.g., a shadow zone), a middle zone (e.g., a midtone zone), and a high zone (e.g., a highlight zone).
Preferably, these control points comprises the following points of the E(p) curve: a low expansion exponent control point C1 at the low luminance boundary of the low zone, a low-middle expansion exponent control point C2 at the boundary between the low zone and the middle zone, a minimum expansion exponent control point C3 of the E(p) curve located in the middle zone, a middle-high expansion exponent control point C4 at the boundary between the middle zone and the high zone, and a high expansion exponent control point C5 at the high luminance boundary of the high zone. The low expansion exponent control point C1 corresponds preferably to the minimum luminance value (Ybase=0). The low-middle expansion exponent control point C2 corresponds to the shadow cutoff point above. The minimum expansion exponent control point C3 is preferably located at the middle of the middle zone. The middle-high expansion exponent control point C4 corresponds to the highlight cutoff point above. The high expansion exponent control point C5 corresponds preferably to the maximum luminance value (Ybase=255 when 8 bits are used for luminance values).
For the control points, the following user parameters and variables are preferably considered:
where wl and wh are weights depending on the placement of the control points located at boundaries between zones, namely C2 and C4, to allow for correct placement of the intermediate control points. These weights are for instance computed as wl=0.5*(κl+1) and wh=0.5*(κh+1.0), where a′, b′ and c′ are defined as respectively a, b and c in equations 3 to 5 of the previous variants above and are coefficients defining an expansion exponent quadratic function as in equation 2 above.
For instance, the initial placement of the control points can follow a quadratic curve as defined in the variant described above in reference to these equations 2 to 5. Then, in this variant, these initial control points can be easily displaced by shifting them up or down according to the user parameters p′h, p′m, and p′s respectively for the high zone, the middle zone and the low zone. In this variant, many calculations that were required for variants above can be easily avoided. As a matter of fact, in this variant, we simply use one set of parameters a, b and c defining a quadratic curve according to equation 2 above. This gives a ‘default’ position for each of the control points C2 to C5. Then in the calculation of the en value of table 1 (n=1 to 5) of each control point, positions of these control points are shifted according the user parameters p′h, p′m, and p′5. E.g. for C5, we only consider highlight parameter p′h, while for C4 we consider both midtone parameter pm and highlight parameter ph since C4 is in the junction between midtone and highlight regions.
In the previous various embodiments above, we had to calculate different quadratic curves defined by different sets of a, b, c values to control each part of the curve. Here instead, we can just calculate a starting or “default” position for each control point based on one quadratic curve defined by one set of a′, b′, c′ values and then move it up and down by adding a bit. E.g. for the control point C2, the starting default position gives the following quadratic curve: e2=a′*(i2)2+b′*i2+c′, which is then shifted with a shift +(1−wl)p′s+wlp′m which is based on user parameters p′s, p′m. It means that, at the end of the process of positioning the different control points C1 to C, we still have three different quadratic curves (that are shifted one in comparison with another), but only one set of a′, b′, c′ values, contrary to the previous various embodiments above.
Then, a spline interpolation is applied as described below to the combination of the different shifted quadratic curves, in order to obtain a global expansion exponent curve E(p).
Also note that the quadratic in this embodiment is evaluated ONLY for the control points. The remaining expansion exponent values are calculated through the spline interpolation which interpolates values between pairs of control points.
Once the five control points C1(i1, e1) to C5(i5, e5), above are computed, the whole expansion exponent map is interpolated from the different quadratic curves above using a spline-based interpolation applied preferably according to the following requirements:
a. The E(p) curve should go through all control points
b. The curve should not overshoot the data
c. The curve should be as smooth as possible
Because of these requirements, a known cubic Hermite interpolating polynomial is preferably used to compute the spline. The interpolants are for instance:
h
00(t)=2t3−3t2+1 (S1a)
h
10(t)=t3−2t2+t (S1b)
h
01(t)=−2t3+3t2 (S1c)
h
11(t)=t3−t2 (S1d)
To construct the spline, the gradient of the E(p) curve is computed at each control point, preferably using finite differences as follows:
For the two extreme control points C1 and C5,
Given the gradients and interpolant functions, the spline can be evaluated
for a given value y∈Ybase as follows using the two closest control points in each case:
E(y)=h00(t)en+h10(t)(in+1−in)M1+h01(t)en+1+h11(t)(in+1−in)Mn+1 (S3)
where in<y≤in+1 and
Note that for the first expansion exponent control point C1, the interval i1≤y≤i2 is considered.
Having applied such a spline interpolation method, a global E(p) curve and expansion exponent map is obtained. Because the spline computation is an interpolation operation, the shape of the curve can be advantageously varied and adapted much more flexibly based on user parameters. By changing the user parameters above, notably p′h, p′n, and p′s, a user can be provided better control over the expansion, notably in order to better convey the director's intent.
Advantageously, the amount of luminance expansion in each of the three luminance zones can be independently adjusted. In this way, for example, the expansion of the dynamic range of an image can be adjusted to account for how different luminance zones of the image respond to the expansion. In various embodiments, the luminance zone boundaries can be automatically selected based on an analysis of the image. In other various embodiments, the luminance zone boundaries can be user-selected.
Referring again to
Y
exp(p)=y(p)E′(p) (22)
Since the luminance expansion is done in this embodiment through an exponential function, noise and other artifacts in Y may be amplified. Although this issue is managed to some extend by using Ybase to compute E, in some cases—particularly in the presence of film grain—the amplification is sufficiently strong that it impacts visual quality. To avoid this, a noise reduction step can be incorporated in the luminance expansion step. It should be noted that this process should be optional and controllable as it is dependent on content and artistic preferences.
An example of denoising is described below.
Where the weight
and the threshold τ=10.
Advantageously, such a specific denoising process can be applied to the different luminance zones, using for instance the control points computed above. Specifically, instead of using a global threshold τ, separate thresholds τs, τm and τh may be defined for low, middle and high zone, respectively. Referring to Erreur ! Source du renvoi introuvable. above, pixels with values between i1 and i2 would follow Eq. (S4) with τs, pixels between i2 and i4 would use τm and finally values above i4 would use τh.
In order to provide more control to the user over the luminance expansion above obtained by applying an exponent value E′(i) or E(i) to the luminance value Y(i) to expand (see Eq. 22 above—i represents a pixel instead of p), a contrast value s(i) and/or a lift value A(i) can be advantageous applied to the expanded luminance value obtained by Eq. (22), such that:
Y
exp(i)=s(i)Y(i)E(i)+λ(i)Lmax (S5)
where s(i) corresponds to the contrast adjustment for pixel (i) and λ(i) to the lift adjustment for pixel (i). This formulation follows the lift-gamma-gain model that is commonly used in color grading applications.
In practice it is preferred to apply these contrast values s(i) and/or lift values λ(i) differently in high zone, in middle zone and in low zones. For this purpose, contrast parameters sh, sm and ss are defined for the high, middle and low zones respectively, and similarly lift parameters λh, λm and λs are defined for the high, middle and low zones respectively. Such contrast and lift values can be advantageously set by the user.
Similar to the expansion exponent computation according to the second variant above, a contrast curve s(i) and a lift curve λ(i) are advantageously determined based respectively on at least five contrast and lift control points having the same luminance values as the expansion exponent control points C1 to C5 used for determining the E(p) curve above.
As in the second variant of the expansion exponent computation above, a spline-based interpolation is also used advantageously, as it is critical that the mapping is continuous and smooth. Five contrast control points Cs1(i1, os1) to Cs5(i5, os5) are defined to apply contrast adjustments and five lift control points Cλ1(i1, oλ1) to Cλ5(i5, oλ5) are defined to apply lift adjustments, where in represents the input coordinates of the nth control point in either case and osn, oλn represent the output coordinates for the contrast and lift control points respectively. Using these control points, for each pixel in Yexp(i), a contrast value s(i) and lift value λ(i) are then computed using a spline based interpolation similar to that described above.
Although these contrast and lift adjustments are applied on an already expanded value Yexp, the spline interpolation takes the original luminance value Y as input, in order to avoid inversions of control points that would lead to subsequent over and undershoots and clipping in the resulting spline curve. A reason for computing contrast and lift adjustments based on original input luminance Y is that, for two luminance values Y(k)>Y(l), it cannot be guaranteed that Yexp(k)>Yexp(l). At the same time, the user defines how to define luminance zones according to the input content, so consequently, it is preferred to respect this even when applying the contrast and lift adjustment.
Based on that, control points for contrast and lift are given in Table 2 and Table 3 respectively. In both cases, for simplicity, the same input coordinates as those of the expansion control points C1 to C5 already used above (see Table 1) are kept. The output coordinates are then calculated as shown in these tables 2 (contrast) and 3 (lift) depending on the contrast and lift values provided by the user for each luminance zone.
To construct the global contrast curve s(i) based on its five contrast control points Cs1(i1, os1) to Cs5(i5, os5) and to construct the global lift curve λ(i) based on its five lift control points Cλ1(i1, oλ1) to Cλ5(i5, oλ5) using the same spline interpolation method as above, a gradient is computed at each control point following Eq. (S2) above, but using the control points defined in the above tables 2 and 3, obtaining tangents Msn and Mλn for the nth control point for contrast and lift respectively.
Since the same spline form is used, the interpolants defined above in Equations (S1a-d) can be re-used, allowing then to compute a contrast curve s(i) and a lift curve λ(i) for a given input luminance pixel Y(i), using Eq. (S3) above.
These curves can then directly be used in Eq. (S5) to obtain the final expanded luminance value for each pixel:
Y
exp(i)=s(i)Y(i)E(i)+λ(i)Lmax
Again, the shape of the contrast and lift curves can be advantageously varied and adapted based on user parameters. By changing the user parameters independently in the different luminance zones, notably the contrast values sh, sm and ss, and the lift values λh, λm and λs, a user can be provided better control over the luminance expansion, notably in order to better convey the director's intent.
After the luminance expansion process above, local detail can be optionally enhanced by using a high pass version of the image Ydetail.
To perform such local detail enhancement, Yexp(p) 237 can be provided to luminance enhancer 223 of detail enhancer 215, where various enhancements can be applied as described in more detail below.
High frequency extractor 221 of detail enhancer 215 can obtain base luminance Ybase(p) 231 and luminance Y(p) 225 and determine a luminance detail map, Ydetail(p), 233 based on Ybase(p) and Y(p).
For example, in various embodiments Ydetail(p) can be determined by first determining:
Y′
base(P)=Σi∈Ω″Y(pi)f″s(∥pi−p∥)f″r(∥Y(pi)−Y(p)∥) (23)
where f″s and f″r are the same Gaussian functions as above (f′s, f′r), but with larger standard deviation in the luminance range in order to remove more luminance details in the image,
where Ω″ is the size of a window of the image centered at the pixel, p, which can have the same size as above, and
where pi is a pixel in this window.
Thus, Y′base(p) can be determined by filtering Y(p) in a similar way that Ybase(p) is determined, but with parameters that remove more luminance details. For example, in various embodiments the standard deviation for the spatial Gaussian function f″s can be set such that σ″s=σ′s, and the standard deviation for the luminance range Gaussian function f″r can be set such as to remove more luminance details in the image, i.e., such that σ″r>σ′r. For instance σ″r can be set equal to 0.3×max(Y).
High frequency extractor 221 can determine Ydetail(p) as the ratio of Ybase(p) and Y′base(p):
Y
detail(P)=Ybase(p)/Y′base(p) (24)
Because σ″r>σ′r, this ratio corresponds to an extraction of high spatial frequencies of luminance values in the image. Other ways of extraction of high spatial frequencies of luminance values in the image can be used without departing from the disclosure.
Luminance enhancer 223 can enhance Yexp(p) 237 by applying luminance detail map, Ydetail(p), 233. For example, an enhanced expanded luminance, Y′exp(p), 239 can be determined based on the product of the expanded luminance and the luminance detail map, for example, for each pixel (p):
Y′
exp(p)=Y(p)E′(p)×[Ydetail(p)]d (25)
where d (shown as 207 in
Scaling of the Chromatic Channel (Including an Optional Adjustment of Saturation):
When expanding the luminance Y(p) of the original LDR image as described above into an expanded luminance value Y′exp(p), the appearance of color and saturation in the expanded image can be affected. Before recombining the different color components of the image and returning to RGB, the two chromatic channels Cb and Cr need to be scaled according to the expansion applied in Y, to ensure that saturation in the image is preserved.
In this regard, color information of the image may be adjusted by saturation enhancer 217. For example, saturation enhancer 217 can be used to preserve the artistic intent with respect to the color of the image. In various embodiments, saturations of colors can be enhanced using the expansion exponent values as a guide. More specifically, the saturation of the color of each pixel can be enhanced based on the zone expansion exponent map, E′(p), of the pixel.
For example, saturation of the color of a pixel p can be enhanced by adjusting a chroma value C(p) of the pixel. The chroma value can be determined as follows in a cylindrical version of the YUV space:
C(p)=√{square root over (U(p)2+V(p)2)} (26)
An adjusted chroma value C′(p) can be determined as the product of zone expansion exponent map E′(p) of the pixel p and the chroma value C(p) of the pixel:
C′(p)=E′(p)×C(p) (27)
In various embodiments, the chroma scaling, which transforms C(p) into C′(p), can be limited to a factor of 1.5 to avoid over-saturating highlights, e.g., to avoid light explosions and bright lights.
With these new values of C′(p), enhanced values of chrominance, U′(p) and V′(p), 241 can be calculated by converting from a cylindrical color space, such as LCH here, to a YUV space:
U′(p)=cos [H(p)]×C′(p) (28)
V′(p)=sin [(H(p)]×C′(p) (29)
where H(p) is the original hue computed from original U(p) and V(p) as follows:
H(p)=arctan [V(p),U(p)] (30)
Optionally, it is also possible to introduce a user parameter psat for additionally controlling global image saturation. Then, the output chromatic channels are computed as follows:
Cb
exp
=CbR
chrom
p
sat
Cr
exp
=CrR
chrom
p
sat
where Rchrom is a per-pixel scaling factor computed as
If psat=1, saturation should remain the same in the image after this scaling process (within the limitations of the color space used and the fact that the ITMO is operating on gammatized content).
Optionally, it is also possible to adjust the saturation in the different luminance zones by setting a psat parameter separately for low, middle and high zones, psat
If hard thresholds are used between the luminance zones as described above to adjust the saturation, discontinuities may appear in areas of smoothly changing luminance. To avoid this issue, a smooth transition area is preferably introduced around each transition point, where the saturation parameter varies smoothly. To that end, tolerance intervals vs, vm and vh are for instance defined for each luminance zone as a percentage of the distance between control points:
v
s=|0.2(i2−i1)|
v
m=|0.2(i4−i2)|
v
h=|0.2(i5−i4)|
Another option for such a smooth transition would be to repeat the process used above for calculating contrast or lift curves.
Using the above, the chromatic value for a pixel i can be computed as follows for the chromatic channel Cb:
The same computing is applied to the other chromatic channel Cr.
The Y, Cb and Cr channels representing colors of the expanded image are then recombined and then converted, if necessary, to the display color space, using known color space conversions. A post-processor 242 can combine the enhanced values of chrominance U′(p) and V′(p) 241 with enhanced expanded luminance Y′exp(p) 239 to obtain and provide an expanded HDR image 243.
Expanded HDR image 243 can be displayed on HDR display device 219. Of course, one skilled in the art would understand that expanded HDR image 243 may require conversion into a color space of the display device, such as RGB, before being displayed.
Apparatus 1100 can include a processor 1110 for executing the computer-executable programs that perform various techniques described above. The programs may be stored in a memory 1120, which may also store image data. A bus 1130 can connect processor 1110 and memory 1120 to each other and to other components of apparatus 1100. In some embodiments, apparatus 1100 may include multiple processors or processors with multiple processing cores, which may execute various parts of programs in parallel.
A mass storage device 1140 can be connected to bus 1130 via a disk controller 1150. Mass storage device 1140 may contain image or video data, as well as an operating system, other programs, other data, etc. Disk controller 1150 may operate according to Serial Advanced Technology Advancement (SATA), Small Computer System Interface (SCSI), or other standards, and may provide connection to multiple mass storage devices.
A video display 1160 can be connected to bus 1130 via a video controller 1170. Video controller 1170 may provide its own memory and graphics-processing capability for use in implementing or accelerating certain aspects of the processes of expanding dynamic range, as well as for providing the functions of image and UI display.
An input device 1180 can be connected to bus 1130 via an input/output (I/O) controller 1190. I/O controller 1190 may utilize one or more of USB, IEEE 1394a, or other standards. Multiple input devices may be connected, such as keyboards, mice, and trackpads. Image and video capture devices may also be connected to the system through I/O controller 1190 or additional I/O controllers implementing other I/O standards. Networking functionality may be provided by I/O controller 1190 or a separate I/O controller.
It will be recognized by one skilled in the art that various aspects of the methods of the present disclosure may be executed in parallel on multiple systems to provide faster processing. For instance, in the case of processing a video file, frames may be divided among tens or hundreds of computing systems to provide parallel processing. Particular components, such as video display 1160, may be omitted in some systems in some operating environments.
Furthermore, multiple systems may utilize shared storage accessed via an I/O bus or via a network.
It should also be appreciated that although various examples of various embodiments have been shown and described in detail herein, those skilled in the art can readily devise other varied embodiments that still remain within the scope of this disclosure.
All examples and conditional language recited herein are intended for instructional purposes to aid the reader in understanding the principles of the disclosure and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions.
Moreover, all statements herein reciting principles, aspects, and embodiments of the disclosure, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.
Thus, for example, it will be appreciated by those skilled in the art that the block diagrams presented herein represent conceptual views of illustrative circuitry, electrical components, optical components, etc., embodying the principles of the disclosure. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudocode, and the like represent various processes which may be substantially represented in computer readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
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. Such a software can take the form of, for example, stand-alone software, a plug-in to be integrated to another software, etc. The application program may be uploaded to, and executed by, an image processing device comprising any suitable architecture. 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 nonvolatile storage.
Other hardware, conventional and/or custom, may also be included.
Similarly, any switches shown in the figures are conceptual only. Their function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the implementer as more specifically understood from the context.
In the claims hereof, any element expressed as a means for performing a specified function is intended to encompass any way of performing that function including, for example, a combination of circuit elements that performs that function, software in any form, including, therefore, firmware, microcode or the like, combined with appropriate circuitry for executing that software to perform the function, etc. The disclosure as defined by such claims resides in the fact that the functionalities provided by the various recited means are combined and brought together in the manner which the claims call for. It is thus regarded that any means that can provide those functionalities are equivalent to those shown herein.
While the present disclosure is described with respect to particular examples and preferred embodiments, it is understood that the present disclosure is not limited to these examples and embodiments. The present disclosure as claimed therefore includes variations from the particular examples and preferred embodiments described herein, as will be apparent to one of skill in the art. While some of the specific embodiments may be described and claimed separately, it is understood that the various features of embodiments described and claimed herein may be used in combination. Reference numerals appearing in the claims are by way of illustration only and shall have no limiting effect on the scope of the claims.
Number | Date | Country | Kind |
---|---|---|---|
15306313.6 | Aug 2015 | EP | regional |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2016/070056 | 8/25/2016 | WO | 00 |