Slider to edit images with gain maps

WO2026182746A1PCT designated stage Publication Date: 2026-09-03GOOGLE LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/US2025/019327
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2025-02-28
Filing Date
2025-03-11
Publication Date
2026-09-03

Smart Images

  • Figure US2025019327_03092026_PF_FP_ABST
    Figure US2025019327_03092026_PF_FP_ABST
Patent Text Reader

Abstract

Various implementations described herein relate to displaying images with different dynamic ranges on display units with different capabilities. In some implementations, a computer-implemented method includes obtaining an initial image comprising an image having a first dynamic range and metadata that includes a gain map with information about a relationship between the image and a version of the image having another dynamic range; receiving input indicative of a control value corresponding to a target dynamic range; generating an updated image for display on a display unit of a client device by using the metadata to modify the image based on the control value and a boost value associated with the display unit; and displaying the updated image on the display unit. The control value may be received from a slider control element, allowing a user to adjust an amount of additional dynamic range incorporated into the image.
Need to check novelty before this filing date? Find Prior Art

Description

Attorney Docket No.: LE-3182-01 -WOSLIDER TO EDIT IMAGES WITH GAIN MAPSBACKGROUND

[0001] Users of devices such as smartphones or other digital camera devices capture and store a large number of photos and videos in their image libraries. High dynamic range (HDR) images can be captured by some cameras, offering a greater dynamic range and a more true-to-life picture quality than standard dynamic range (SDR) images captured by many other (e.g., older or less capable) cameras. Traditional HDR images can only be viewed on systems that can interpret the image encoding and only look as intended by the author on devices with sufficient capabilities relative to the content authoring.

[0002] A gain map in an HDR image is a piece of data included within an image file or another image container that instructs a corresponding display how to accurately render the full dynamic range of an image, allowing for a more realistic representation of highlights and shadows in the image. The gain map may even help on displays with limited HDR capabilities by dynamically adjusting brightness levels for pixels in the image based on the gain map data. A gain map may allow ways to display an image across different HDR display capabilities, with the ability to fall back to an SDR version if appropriate.

[0003] Image editing and management applications aim to provide a high level of user control during image editing, while providing a simple and intuitive interface. Different users may prefer various amounts of HDR-ness (total dynamic range) in their HDR images. Photo editing and management applications presently lack the capability to adjust the perceived HDR-ness of an image displayed on display units with different capabilities (in terms of dynamic range and settings, e.g., brightness level when the image editing / management application is active). For example, such applications do not provide easy ways to modify HDR-ness in relation to a specific user device. Also, such applications depend upon a user having in-depth knowledge about file formats and display software.

[0004] The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may notAttorney Docket No.: LE-3182-01 -WOotherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.SUMMARY

[0005] Implementations described herein relate to methods, non-transitory computer-readable media, and systems to edit images with gain maps.

[0006] In one aspect, a computer-implemented method to edit images with gain maps is provided, the method comprising: obtaining an initial image, the initial image comprising an image having a first dynamic range and metadata that includes a gain map with information descriptive of a relationship between the image and a different version of the image having a second dynamic range; receiving input indicative of a control value corresponding to a target dynamic range; generating an updated image for display on a display unit of a client device by using the metadata to modify the image based on the control value and a boost value associated with the display unit; and displaying the updated image on the display unit.

[0007] Various aspects of the computer-implemented method are described herein.

[0008] In some implementations, the input includes user input received via a graphical user interface (GUI) displayed on the display unit, the GUI comprising a slider control element operable by a user to select, as the control value, a number corresponding to a value in a range from a minimum value corresponding to the image to a maximum value corresponding to the different version of the image.

[0009] In some implementations, the image is a standard dynamic range (SDR) image and the different version of the image is a high dynamic range (HDR) image.

[0010] In some implementations, the control value is a value between a minimum value and a maximum value, if the control value is the minimum value, the image is displayed on the display unit, and if the control value is the maximum value, the different version of the image is displayed on the display unit, wherein to display the different version of the image, a gain map maximum value from the gain map is set as equal to the boost value associated with the display unit.

[0011] In some implementations, generating the updated image comprises updating an initial gain map maximum value and an initial high dynamic range (HDR) capacity maximumAttorney Docket No.: LE-3182-01 -WOvalue based on the boost value associated with the display unit and the control value to generate the updated image from the image.

[0012] In some implementations, the gain map corresponds to a single channel, and the metadata comprises an initial gain map minimum value, the initial gain map maximum value, and the initial HDR capacity maximum value.

[0013] In some implementations, the updated image is a standard dynamic range (SDR) generated by dropping the gain map from the image or by updating the initial gain map maximum value to a minimum value and the initial HDR capacity maximum value to a value greater than a minimum value.

[0014] In some implementations, the control value is betw een a minimum value of 0 and a maximum value of 1, and the method further comprises: updating the initial gain map maximum value based on a product in logarithmic space of the control value and the boost value associated with the display unit; and updating the initial HDR capacity maximum value to be equal to the updated gain map maximum value.

[0015] In some implementations, the method further comprises updating the initial gain map maximum value based on the boost value associated with the display unit and the control value.

[0016] In some implementations, the initial gain map maximum value is updated using the equation GainMapMaxOut= SliderValue * MaxDisplayBoost, the equation GainMapMaxOlltLinear— MaxDisplayBoostLinearsllderValue, or the equation GainMapMaxOutLinear= 1 + (J axDisplayBoostLinear— 1) * SliderValue , wherein GainMapMaxout is an updated gain map maximum value in a logarithmic space, MaxDisplayBoost is a boost value associated with the display unit in the logarithmic space, GainMapMaxOutLinear is an updated gain map maximum value in a linear space, MaxDisplayBoosttinear is a boost value associated with the display unit in the linear space, and SliderValue is the control value.

[0017] In some implementations, the metadata further comprises an initial gain map minimum value having a non-zero value and the initial gain map minimum value is updated based on the initial gain map maximum value and the updated gain map maximum value, and the initial gain map minimum value is applied to the image when generating the updated image.Attorney Docket No.: LE-3182-01 -WO

[0018] In some implementations, the initial gain map minimum value is updated using the equationequation GainMap near _wherein GainMapMinout is an output gain map minimum value in a logarithmic space, GainMapMinin is an input gain map minimum value in the logarithmic space, GainMapMaxout is an output gain map maximum value in the logarithmic space, GainMapMaxin is an input gain map maximum value in the logarithmic space, GainMapMinOutLinear is an output gain map minimum value in a linear space, GainMapMininLinear is an input gain map minimum value in the linear space, GainMapMaxinLinear is an input gain map maximum value in the linear space, and GainMapMaxoutLinear is an output gain map maximum value in the linear space.

[0019] In some implementations, the gain map is a gain map having multiple channels, the metadata comprises an initial gain map minimum value, an initial gain map maximum value, and an initial HDR capacity maximum value for each channel, and the method further comprises: identifying a particular channel of the multiple channels with a largest initial gain map maximum value as an initial overall largest gain map maximum value; updating the initial overall largest gain map maximum value based on the control value and the boost value associated with the display unit; updating each initial HDR capacity maximum value based on the updated overall largest gain map maximum value; and updating the initial gain map maximum value and the initial gain map minimum value for individual channels of the multiple channels based on the updated overall largest gain map maximum value.

[0020] In some implementations, the method further comprises: receiving additional input indicative of an updated control value corresponding to a second target dynamic range, wherein the additional input comprises an adjustment of the control value via additional user input or an adjustment of the boost value associated with display unit; and in response to receiving the additional input, generating a second updated image using the metadata based on the updated control value.

[0021] In some implementations, the control value is initially set as a maximum value if an initial gain map maximum value in the metadata is greater than the boost value associated with the display unit and the control value is set as a proportion of the boost value associated with the display unit consumed by the initial gain map maximum value in the metadata otherwise.Attorney Docket No.: LE-3182-01 -WO

[0022] In some implementations, the displaying is performed in real-time or in near realtime as the input indicative of the control value is received.

[0023] In some implementations, the input is received using a slider that is linear in terms of an amount of range added to or subtracted from the image, based on the boost value associated with the display unit and a dynamic range of the image, and wherein a range of control values selectable via the slider corresponds to an available range of the display unit.

[0024] In some implementations, the generating and the displaying do not alter the initial image.

[0025] In another aspect, there is provided a non-transitory computer-readable medium with instructions stored thereon that, responsive to execution by a processing device, causes the processing device to perform operations comprising: obtaining an initial image, the initial image comprising an image having a first dynamic range and metadata that includes a gain map with information descriptive of a relationship between the image and a different version of the image having a second dynamic range; receiving input indicative of a control value corresponding to a target dynamic range; generating an updated image for display on a display unit of a client device by using the metadata to modify the image based on the control value and a boost value associated with the display unit; and displaying the updated image on the display unit.

[0026] In yet another aspect, there is provided a system, comprising: a memory with instructions stored thereon; and a processing device, coupled to the memory, the processing device configured to access the memory and execute the instructions, wherein the instructions cause the processing device to perform operations comprising: obtaining an initial image, the initial image comprising an image having a first dynamic range and metadata that includes a gain map with information descriptive of a relationship between the image and a different version of the image having a second dynamic range; receiving input indicative of a control value corresponding to a target dynamic range; generating an updated image for display on a display unit of a client device by using the metadata to modify the image based on the control value and a boost value associated with the display unit; and displaying the updated image on the display unit.

[0027] According to yet another aspect, portions, features, and implementation details of the computing devices, methods, and other implementations including systems and nonAttorney Docket No.: LE-3182-01 -WOtransitory computer-readable media may be combined to form additional aspects, including some aspects which omit and / or modify some or portions of individual components or features, include additional components or features, and / or other modifications, and all such modifications are within the scope of this disclosure.BRIEF DESCRIPTION OF THE DRAWINGS

[0028] FIG. 1 is a block diagram of an example network environment which may be used for one or more implementations described herein.

[0029] FIG. 2 is a flow diagram illustrating an example method to update an amount of dynamic range in an image, according to some implementations.

[0030] FIG. 3 is a flow diagram illustrating additional details of an example method to update an amount of dynamic range in an image, according to some implementations.

[0031] FIG. 4 is a flow diagram illustrating additional details of an example method to update an amount of dynamic range in an image, according to some implementations.

[0032] FIG. 5 is a flow diagram illustrating an example method to obtain an image in a standard dynamic range (SDR) format from an initial image, according to some implementations.

[0033] FIG. 6 is a flow diagram illustrating an example method to adjust an amount of dynamic range in a multichannel image, according to some implementations.

[0034] FIG. 7A is an illustration of a standard dynamic range (SDR) image displayed when a slider control is set to have a minimum value, according to some implementations.

[0035] FIG. 7B is an illustration of a standard dynamic range (SDR) image displayed as an image with partial HDR when a slider control is set to have an intermediate value, according to some implementations.

[0036] FIG. 7C is an illustration of a standard dynamic range (SDR) image displayed as an image with full HDR when a slider control is set to have a maximum value, according to some implementations.Attorney Docket No.: LE-3182-01 -WO

[0037] FIG. 8 is a diagram of an initial image, a slider value, and a display unit, and using this information to generate an updated image, according to some implementations.

[0038] FIGS. 9A-9E are graphs illustrating characteristics of changes to various gain map metadata in response to example slider values, according to some implementations.

[0039] FIG. 10 is a block diagram of an example computing device which may be used for one or more implementations described herein.DETAILED DESCRIPTION

[0040] This disclosure relates to methods, systems, and non-transitory computer-readable media to control an amount of HDR-ness a gain map (e.g., an HDR gain map) applies in an editing application. The amount may be controlled by a simple and easy to use control based on user input such as via a slider displayed in a graphical user interface (GUI) or other user input (e.g., spoken command, text command, etc.).

[0041] In some implementations, an initial image is obtained, where the initial image includes an image with a first dynamic range and metadata that includes again map along with information descriptive of a relationship between the image and a different version of the image having a second dynamic range. Such metadata can also include additional information and is not limited to the gain map data. The gain map data can include information about dynamic range attributes of individual pixels in the image with the first dynamic range. The metadata may include such gain map data as well as various gain map metadata, parameters, values, and / or settings governing how to apply such information. Also received is input indicative of a control value corresponding to a target dynamic range for the image.

[0042] The initial image includes the image with the first dynamic range, as well as the gain map data, the gain map metadata, and any other metadata. Hence, the term initial image refers to a structure including an image with a first dynamic range and metadata including corresponding gain map data and associated gain map metadata. The metadata includes gain map data that encodes information about dynamic range for pixels in the image, as well as gain map metadata that govern how to apply to dynamic range. The term image or the term image with the first dynamic range refers to the image (e.g., a base image) from the initial image that is a standard dynamic range (SDR) image.Attorney Docket No.: LE-3182-01 -WO

[0043] An updated image is generated for display on a display unit of a client device by¬ using the metadata (e.g., the gain map metadata) to modify the image based on the control value and a boost value associated with the display unit. The updated image may be displayed on the display unit, e.g., in real time or near real-time as input controlling the dynamic range is received through a slider control element. Also, the image may be displayed and updated as the display unit's capabilities change over time (e.g., if a user takes a phone from a dark environment inside to a bright environment outside, if the user has an auto-brightness feature on, the change in ambient brightness may cause the display unit’s brightness to increase, which simultaneously reduces HDR display capabilities of the display unit.

[0044] When the slider is set to a minimum value, the image is not updated (e.g.. the SDR image that is displayed on the display unit). When the slider is set to a maximum value, the image is updated to fully take on the aspects of the different version (highest dynamic range). When the slider is set to an intermediate value, the image is updated to take on an intermediate amount of additional dynamic range. Hence, the slider provides a convenient way for users to manage an amount of dynamic range to include in the image. When the slider is set to the maximum value, the image is updated to fully' take on the aspects of the different version (i.e., the high dynamic range (HDR) version), to the maximum extent possible for the display unit.

[0045] The images managed and / or modified using these techniques can include still images and / or images in video. The techniques can be used to display an SDR version of an image by SDR display devices (in that techniques are able to determine that such display devices cannot incorporate high dynamic range (HDR) characteristics and simply display an SDR version of the image) and can be used to display an HDR version of the image by HDR display devices. The techniques can also be used to display intermediate versions of an image, subject to the display limitations and / or configuration (e.g., brightness level) of a given display unit.

[0046] Various implementations provide a high level of user control during image editing, while providing a simple and intuitive interface, e.g., via a slider. In particular, the implementations provide an easy and effective way for users to control an amount of dynamic range information to introduce into an initial image (accompanied by a gain map with data and gam map metadata, defining the dynamic range information) when displaying the image on an HDR-capable display. Different users may prefer various amounts of HDR-ness to their HDR images and the described implementations allow user control over HDR-ness.Attorney Docket No.: LE-3182-01 -WO

[0047] To this end, some implementations may provide a single slider that facilitates adjusting the perceived HDR-ness that is applied using the gain map. In some implementations, the term HDR-ness may be used to describe the amount of dynamic range, beyond the base SDR, that is present in an image. In other implementations, the image may include an HDR image, from which HDR-ness is reduced or removed. In practice, in some cases, this may correspond to adjusting the brightness of the highlights in the image when updating the image while leaving the rest of the image unchanged.

[0048] There are several aspects that make using a gain map to update the HDR-ness of an image a complex operation. A requirement is for any adjustment technique to be robust, e.g., such that it works for any arbitrary image having a gain map, regardless of the image source. Further, the adjustment technique can be usable for images with single-channel gain maps as well as for images with multi-channel gain maps, and for various states and / or format the initial gain map is obtained (e.g., via a camera at the time of image capture, via an image editing application that modifies the gain map, etc.). The adjustment technique may be adapted to be usable for whatever authoring source the image comes from. The techniques described herein fulfill these requirements.

[0049] Various techniques described herein enable performant real-time rendering of the image during preview. In other words, as a user moves the slider between higher and lower values on a user’s phone (or another client device or another display) or otherwise provides control input, a phone (or another client device or another display) is able to render the updates in real-time (or near real-time) so the image preview matches the current state of the slider with the user’s finger. Such real-time rendering is helpful because real-time rendering permits a user to easily view results corresponding to different settings of the slider. This property enables the user to quickly and easily find a preferred point corresponding to an intended HDR-ness for each particular image.

[0050] The described techniques result in an intuitive change for the user as the user moves the slider. In other words, the change in HDR-ness by moving the slider 10% of the total scale near the bottom end and top end results in a similar perceptual difference in HDR-ness. Stated another way. in some implementations, the slider is linear such that a particular amount of adjustment to the slider causes a similar amount of change in the updated image, e.g., adjusting the slider from 0.2 to 0.3, 0.5 to 0.6, or 0.85 to 0.95, or any other range, causes a similar amount of perceptible change in the HDR-ness of the image.Attorney Docket No.: LE-3182-01 -WO

[0051] The described techniques also adapt to the device HDR capabilities and configuration (e.g., brightness or other display settings) of client devices that enable HDR image viewing / editing, where the HDR capabilities may vary dramatically between different device models, as well as on the same device temporally. For example, a given client device’s maximum display boost capability7may change as display brightness adapts to ambient lighting conditions. Other causes may affect maximum display boost, such as available battery capacity, power fluctuations, graphics settings, etc.

[0052] Implementations are constructed to maintain as much information as possible from the original image so that future edits can continue to provide high quality modifications to the image’s HDR-ness. This may include the case where the user wishes to disable HDR altogether.

[0053] In some implementations, the original initial image is preserved unmodified and the updated image is stored as a separate file or in a separate container in the initial image. Such an approach permits the user to revert to information provided in the original initial image while making modifications to the updated image.

[0054] An updated image is associated with modified gain map metadata that is usable to view the updated image with different levels of HDR-ness based on the slider input (as the slider changes metadata and / or parameters of the gain map). In some implementations, intermediate adjustments are not saved as the user adjusts the slider. Alternatively, in some implementations the updated image may also be saved automatically (e.g., periodically) so that the user does not lose image adjustments.

[0055] For the purpose of illustration, the discussion herein refers to a slider where the slider position is represented by a value in the range [0.0, 1.0], with 0.0 representing an SDR version of the image and 1.0 representing the largest amount of HDR the slider may present to the user. Note that other similar slider ranges may be assumed, e.g. [0.0, 100.0] without loss of generality'. In some implementations, the image in question is an HDR image having a gain map (and associated metadata) associated with an SDR image.

[0056] Thus, the method can apply to gain map images wherein the base image (i.e., the image having the first dynamic range) is SDR and the gain map converts the base image to HDR, or to images where the base image is HDR and the gain map converts the base image to SDR. The method is also applicable to other gain map based formats, where the presentAttorney Docket No.: LE-3182-01 -WOtechniques may be adapted to gain map formats that have a base image and a gain map, where the base image is the unmodified image and the gain map includes metadata and / or parameters that adapt the gain map to include varying amounts of dynamic range when displaying images.

[0057] While there may be variants having a base image that is an HDR base image and that HDR image is modified using the gain map to remove portions of dynamic range to facilitate section, the disclosure assumes the base image is an SDR image unless specified otherwise.

[0058] The present disclosure uses certain terminology from certain high dynamic range (HDR) formats that provide a base image having an image with a first dynamic range and a gain map including gain map data and gain map metadata for applying the gain map data. This section also assumes Boost-related and GainMapMin / Max-related values are in log2 space unless otherwise specified. Presenting these values in log2 space is appropriate because human vision perceives changes in brightness in an approximately logarithmic manner and changing values using a logarithmic scale better aligns slider adjustments with perceived changes in dynamic range.

[0059] The following are terms referenced in certain formats for an initial image including an image with a first dynamic range (i.e., a base image), as well as a gain map. These terms are used as defined below throughout the disclosure, unless otherwise specified. In some cases, the terms are fully spelled out as phrases, such as for readability'. In other cases, the abbreviations are used, such as for easier presentation of mathematical formalities. Note that as these quantities change (in a gain map or as a display changes), the way in which the gain map data is applied also changes.

[0060] Gain Map Minimum (GainMapMin): The gain in log2 space that a gain map pixel with a value of “0” corresponds to.

[0061] Gain Map Maximum (GainMapMax): The gain in log2 space that a gain map pixel a value of “1” corresponds to.

[0062] To clarify, pixel values are represented in the gain map data such that ‘;0” is the minimum pixel value and “1” is the maximum pixel value. This property is why those are the specific values referenced. The specific representation is less important than indicating theyAttorney Docket No.: LE-3182-01 -WOcorrespond to the minimum representable pixel value and the maximum representable pixel value.

[0063] For example, [0.0, 1.0] is a common way to represent pixels as floating point values, but so is [0, X] for representing them as integers, such that X+l is the integer number of possible values a pixel may have. Also, the techniques may still be applied if other ranges are used to represent pixel values; the specifics are orthogonal to the pixel representation, but are based on the metadata representation, which could also take on different forms. Hence, other such representations could be applied with adaptations to the formulas.

[0064] Maximum Display Boost (MaxDisplayBoost): The maximum display boost, or gain, in log2 space that the display unit is capable of at a given point in time, relative to SDR white. The Maximum Display Boost is also referred to as the boost value associated with a display unit in the disclosure.

[0065] High Dynamic Range (HDR) Capacity Minimum (HDRCapacityMin): The minimum display boost at which to start applying the gain map.

[0066] High Dynamic Range (HDR) Capacity Maximum (HDRCapacityMax): The minimum display boost at which the gain map is fully applied.

[0067] The following subscripts are used as postfixes on the above terms at times, for clarity in equations presented below.

[0068] In: The input (e.g., initial) image’s initial value for a given setting, prior to modification.

[0069] Out: The edited (e.g., updated) image’s value for a given setting, after the present techniques are applied to modify dynamic range by altering metadata (e.g., gain map metadata or other gain map settings).

[0070] Linear: The value of a setting expressed in linear space, when the value of the setting is normally expressed in log2 space. In other words, the postfix indicates a value that is equivalent to the value of 2 raised to the power of the non-Linear value.

[0071] The term SDR relative is also used. As used herein, SDR relative refers to a color space where 0 is black, 1 is SDR white, and the values above 1 represent HDR values.Attorney Docket No.: LE-3182-01 -WO

[0072] Described features provide several technical advantages, including enabling efficient and easy modification of an amount of dynamic range to include in an image. The techniques work for various forms of gain map metadata and parameters and are agnostic (or mostly agnostic) to the contents of the gain map image pixel data itself.

[0073] Since the techniques generally operate using the gain map metadata, the techniques are simple and efficient to implement with good performance. At most, a handful of operations as illustrated in the equations are used for each frame. In the high dynamic range (HDR) base rendition case, the necessary operation may still be achieved with good performance in a shader to, for example, enable an efficient real-time preview of the edit operation.

[0074] The techniques match human perception, ensuring that the updated image that is produced via slider control is intuitive to users. For example, as a slider (or another control device) modifies a control value, appearance of the image with respect to dynamic range changes accordingly. Additionally, because the edit result is primarily tied to the display unit's capabilities, there is no issue with respect to moving the slider for the user if the device capabilities of the display unit change. The slider naturally remains in a constant position, providing a similar perceptual result, regardless of changes to the device’s maximum display boost value at different times.

[0075] The techniques ensure that changes at any point in the slider result in a visual change by being based on the display unit’s capabilities. Complementing this, the techniques also enable the user to take full advantage of their display unit's dynamic range capabilities if the editing image does not already do so.

[0076] Also, the initial pixel data is preserved in various implementations, therefore enabling future edits with respect to dynamic range. This approach also enables fidelity to be preserved for future edits.

[0077] As referred to herein, dynamic range relates to a ratio between the brightest and darkest parts of a scene. The dynamic range of SDR formats ordinarily does not exceed a particular low range, such as a standard dynamic range (SDR) conventional JPEG file (without a gain map) in a low range (e g., an SDR) color space / color profile.

[0078] Similarly, the displayed dynamic range output of SDR display devices is low. As referred to herein, an image with dynamic range greater (or higher) than an SDR image (e.g.,Attorney Docket No.: LE-3182-01 -WOconventional JPEG (without a gain map)) is considered an HDR image, and a display device capable of displaying that greater dynamic range is considered an HDR display device. An HDR image can store pixel values that span a greater tonal range than SDR.

[0079] In some examples, an HDR image can more accurately display the dynamic range of a real-world scene, and / or may have additional bit depth as compared to an SDR image (e.g., HDR images may commonly have greater than 8 bits per color channel). As detailed further herein, there may be a base image stored in one format (e g.,. SDR or HDR) and a gain map that provides the necessary7information that permits modification of the base image to a different dynamic range.

[0080] The resulting converted image’s dynamic range may be that as specified precisely by the gain map (e.g., especially in the case of an HDR base image) or it may be to a dynamic range that is intermediate (e.g., especially in the case of an SDR base image). The dynamic range may be based on how the gain map metadata relates to display capabilities; the first case occurs in case the gain map does not specify, at most, as much headroom as the display can provide. An intermediate dynamic range is likely to be used if the display unit’s capabilities are less than the maximum headroom allow by the gain map. An updated mage may include all or some of the dynamic range characteristics included in the corresponding image, as defined by the gain map data and the corresponding gain map metadata.

[0081] The use of “log’’ or “logarithm” in this description refers to a particular base of logarithm, and can be any base number, e.g., logarithms herein can be base 2, or base 10, etc. Logarithms are used in the description because human vision has an approximately logarithmic operation. Specifically base 2 logarithms are assumed unless otherwise noted, because they are approximately proportional to human perception changes in brightness.

[0082] Further to the descriptions herein, a user may be provided with controls permitting the user to make an election as to both if and when systems, programs, or features described herein may enable collection of user information (e.g., images from a user’s library7, social network, social actions, or activities, profession, a user’s preferences, a user’s current location, a user’s messages, or characteristics of a user’s device), and if the user is sent content or communications from a server.

[0083] In addition, certain data may be treated in one or more ways before it is stored or used, so that personally identifiable information is removed. For example, a user’s identify mayAttorney Docket No.: LE-3182-01 -WObe treated so that no personally identifiable information can be determined for the user, or a user’s geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined. Thus, the user may have control over what information is collected about the user, how that information is used, and what information is provided to the user.

[0084] In various implementations, various blocks of methods 200, 300, 400, 500, and / or 600 may be combined, split into multiple blocks, performed in parallel, or performed asynchronously. In some implementations, one or more blocks of these methods may not be performed or may be performed in a different order than shown in these figures. For example, in various implementations, various blocks of FIG. 2, FIG. 3, FIG. 4, FIG. 5, and / or FIG. 6 can be performed in different orders or in parallel. Methods 200, 300, 400, 500, and / or 600, or portions thereof, may be repeated any number of times using additional inputs. For example, in some implementations, the methods may be performed in response when the user changes the control value or when the boost value changes.

[0085] In some implementations, the HDR image and SDR image can be reversed in their respective roles described above. For example, an HDR image can be stored as the image to be modified using the gain map and associated gain map metadata instead of an original SDR image that has a lower dynamic range than the HDR image.

[0086] In various implementations, gain map metadata can be determined and stored in the base image (i.e., an appropriate image container) that indicates ways to display the included HDR image as an output SDR image on an SDR display device that can only display a lower dynamic range that is lower than the dynamic range of the HDR image. The gain map metadata can include gains and / or scaling factors that are based on the original SDR image that, in some implementations, can be a tone-mapped (or otherwise range converted version) of the HDR image.

[0087] FIG. 1 illustrates a block diagram of an example network environment 100, which may be used in some implementations described herein. In some implementations, network environment 100 includes one or more server systems, e g., server system 102 in the example of FIG. 1, and a plurality of client devices, e.g., client devices 120-126, each associated with a respective user of users U1-U4, as shown in FIG. 1. Each of server system 102 and client devices 120-126 may be configured to communicate with a network 130.Attorney Docket No.: LE-3182-01 -WO

[0088] Server system 102 can include a server device 104 and an image database 110. In some implementations, server device 104 may provide image application 106a. In FIG. 1 and the remaining figures, a letter after a reference number, e.g., “106a,” represents a reference to the element having that particular reference number. A reference number in the text without a following letter, e.g., “106,” represents a general reference to implementations of the element bearing that reference number.

[0089] Image database 110 may be stored on a storage device that is part of server system 102. In some implementations, image database 110 may be implemented using a relational database, a key-value structure, or other type of database structure. In some implementations, image database 110 may include a plurality of partitions, each corresponding to a respective image library for each of users 1-4. For example, as seen in FIG. 1, image database 110 may include a first image li brary (image library71 , 108a) for user 1 , and other image libraries (image library 2. ..., image library7n) for various other users. While FIG. 1 shows a single image database 110, it may be understood that image database 110 may be implemented as a distributed database, e.g., over a plurality of database servers. Further, while FIG. 1 shows a plurality of partitions, one for each user, in some implementations, each image library may be implemented as a separate database.

[0090] Image library 108a may store a plurality of images associated with user 1. metadata associated with the plurality of images, and one or more other database fields, stored in association with the plurality7of images. Access permissions for image library7108a may be restricted such that user 1 can control how images and other data in image library 108a may be accessed, e.g., by image application 106, by other applications, and / or by one or more other users. Server system 102 may be configured to implement the access permissions, such that image data of a particular user is accessible only as permitted by the user.

[0091] An image as referred to herein can include a digital image having pixels with one or more pixel values (e.g., color values, brightness values, etc.). An image can be a still image (e.g., still photos, images with a single frame, etc.), a dynamic image (e.g., animations, animated GIFs, cinemagraphs where a portion of the image includes motion while other portions are static, etc.), or a video (e.g., a sequence of images or image frames that may optionally include audio). An image as used herein may be understood as any of the above. For example, implementations described herein can be used with still images (e.g., a photograph, or other image), videos, or dynamic images.Attorney Docket No.: LE-3182-01 -WO

[0092] Network environment 100 can include one or more client devices, e.g., client devices 120, 122, 124. and 126, which may communicate with each other and / or with server system 102 via network 130. Network 130 can be any type of communication network, including one or more of the Internet, local area networks (LAN), wireless networks, switch or hub connections, etc. In some implementations, network 130 can include peer-to-peer communication between devices, e.g., using peer-to-peer wireless protocols (e.g.. Bluetooth®, Wi-Fi Direct, etc.), etc. One example of peer-to-peer communication between two client devices 120 and 122 is shown by arrow 132.

[0093] In various implementations, users 1, 2, 3, and 4 may communicate with server system 102 and / or each other using respective client devices 120, 122, 124, and 126. In some examples, users 1, 2, 3, and 4 may interact with each other via applications running on respective client devices and / or server system 102 and / or via a network service, e.g., a social network service or other type of network service, implemented on server system 102. For example, respective client devices 120, 122. 124, and 126 may communicate data to and from one or more server systems, e.g., server system 102.

[0094] In some implementations, the server system 102 may provide appropriate data to the client devices such that each client device can receive communicated content or shared content uploaded to the server system 102 and / or a network service. In some examples, users 1-4 can interact via image sharing, audio or video conferencing, audio, video, or text chat, or other communication modes or applications.

[0095] A network service implemented by server system 102 can include a system allowing users to perform a variety of communications, form links and associations, upload and post shared content such as images, text, audio, and other types of content, and / or perform other functions. For example, a client device can display received data such as content posts sent or streamed to the client device and originating from a different client device via a server and / or network service (or from the different client device directly), or originating from a server system and / or network sen-ice. In some implementations, client devices can communicate directly with each other, e.g., using peer-to-peer communications between client devices as described above. In some implementations, a "‘user"’ can include one or more programs or virtual entities, as well as persons that interface with the system or network.Attorney Docket No.: LE-3182-01 -WO

[0096] In some implementations, any of client devices 120, 122, 124, and / or 126 can provide one or more applications. For example, as shown in FIG. 1, client device 120 may provide image application 106b. Client devices 122-126 may also provide similar applications. Image application 106a may be implemented using hardware and / or software of client device 120. In different implementations, image application 106a may be a standalone client application, e.g., executed on any of client devices 120-124, or may work in conjunction with image application 106b provided on server system 102.

[0097] Image application 106 may provide various features, implemented with user permission, that are related to images. For example, such features may include one or more of capturing images using a camera, modifying the images, determining image quality (e.g., based on factors such as face size, blurriness, number of faces, image composition, lighting, exposure, etc.), storing images or videos in an image library 108, encoding and decoding images into any of various image formats (including formats described herein), providing user interfaces to view displayed images or image-based creations or compilations, etc.

[0098] Client device 120 may include an image library 108b of user 1, wftich may be a standalone image library'. In some implementations, image library 108b may be usable in combination with image library’ 108a on server system 102. For example, with user permission, image library’ 108a and image library 108b may be synchronized via network 130. In some implementations, image library 108 may include a plurality of images associated with user 1, e.g., images captured by the user (e.g., using a camera of client device 120, or other device), images shared with the user 1 (e.g., from respective image libraries of other users 2-4), images downloaded by the user 1 (e.g., from websites, from messaging applications, etc.), screenshots, and other images. In some implementations, image library 108b on client device 120 may include a subset of images in image library 108a on server system 102. For example, such implementations may be advantageous when a limited amount of storage space is available on client device 120.

[0099] In various implementations, client device 120 and / or server system 102 may include other applications (not shown) that may be applications that provide various types of functionality. A user interface on a client device 120, 122, 124, and / or 126 can enable the display of user content and other content, including images, image-based creations, data, and other content as well as communications, privacy settings, notifications, and other data. Such a user interface can be displayed using softyvare on the client device, softyvare on the serverAttorney Docket No.: LE-3182-01 -WOdevice, and / or a combination of client software and server software executing on server device 104, e.g.. application software or client software in communication with server system 102. The user interface can be displayed by a display device of a client device or server device, e.g., a touchscreen or other display screen, projector, etc. In some implementations, application programs running on a server system can communicate with a client device to receive user input at the client device and to output data such as visual data, audio data, etc. at the client device.

[0100] For ease of illustration, FIG. 1 shows one block for server system 102, server device 104, image database 110, and shows four blocks for client devices 120, 122, 124, and 126. Server blocks 102. 104, and 110 may represent multiple systems, server devices, and network databases, and the blocks can be provided in different configurations than shown. For example, server system 102 can represent multiple server systems that can communicate with other server systems via the network 130. In some implementations, server system 102 can include cloud hosting servers, for example. In some examples, image database 110 may be stored on storage devices provided in server system block(s) that are separate from server device 104 and can communicate with server device 104 and other server systems via netw ork 130.

[0101] Also, there may be any number of client devices. Each client device can be any type of electronic device, e.g., desktop computer, laptop computer, portable or mobile device, cell phone, smartphone, tablet computer, television, TV set top box or entertainment device, wearable devices (e.g., display glasses or goggles, wristw atch, headset, armband, jewelry, etc.), personal digital assistant (PDA), media player, game device, etc. In some implementations, network environment 100 may not have all of the components shown and / or may have other elements including other t pes of elements instead of, or in addition to, those described herein.

[0102] Other implementations of features described herein can use any type of system and / or service. For example, other networked services (e.g., connected to the Internet) can be used instead of or in addition to a social networking service. Any type of electronic device can make use of features described herein. Some implementations can provide one or more features described herein on one or more client or server devices disconnected from or intermittently connected to computer networks. In some examples, a client device including or connected to a display device can display content posts stored on storage devices local to the client device, e.g., received previously over communication networks.Attorney Docket No.: LE-3182-01 -WO

[0103] FIG. 2 is a flow diagram illustrating an example method 200 to update an amount of dynamic range in an image, according to some implementations.

[0104] In some implementations, method 200 can be performed, for example, on a server system 102 as shown in FIG. 1. In some implementations, some or all of the method 200 can be implemented on one or more client devices such as client devices 120, 122. 124, or 126 of FIG. 1. one or more server devices such as server device 104 of FIG. 1, and / or on both server device(s) and client device(s). In described examples, the implementing system includes one or more digital processors or processing circuitry ("processors"), and one or more storage devices (e.g.. a database or other storage). In some implementations, different components of one or more servers and / or clients can perform different blocks or other parts of the method 200. In some examples, a device is described as performing blocks of method 200. Some implementations can have one or more blocks of method 200 performed by one or more other devices (e.g.. other client devices or server devices) that can send results or data to the first device.

[0105] In some implementations, the method 200, or portions of the method, can be initiated automatically by a system. For example, the method (or portions thereof) can be performed periodically, or can be performed based on one or more particular events or conditions, e.g., a client device launching image application 106, capture of new images by an image capture device of a client device, reception of images over a network by a device, upload of new7images to a server system 102, a predetermined time period having expired since the last performance of method 200, and / or one or more other conditions occurring which can be specified in settings read by the method.

[0106] Method 200 may begin at block 210. In block 210, an initial image is obtained as the basis of modification in method 200 as described herein. For example, the initial image that is obtained can include an initial image from images stored on a client device (e.g.. any of client devices 120-126) and / or a server device, image metadata, user data related to the use of an image application, other image-based creations, etc. As discussed above, such an initial image includes metadata including gain map data and gain map metadata, where the metadata includes information about modifying dynamic range in an image having a first dynamic range included in the initial image.Attorney Docket No.: LE-3182-01 -WO

[0107] In block 210, the user is provided with options to selectively provide permission to access such user data. For example, a user may choose to provide permission to access all of the requested user data, any subset of the requested data, or none of the requested data. One or more blocks of the methods described herein may use such user data in some implementations.

[0108] The initial image may be an enhanced image and / or an image container in a format that includes an image with a first dynamic range and a gain map including gain map data and gain map metadata with various values that can be used to modify the amount of dynamic range present in the image into a different version of the image having a second dynamic range. Once the initial image is obtained in block 210, block 210 may be followed by block 212.

[0109] In block 212, input indicative of a control value is received. For example, the control value may be a value in a range corresponding to an amount of dynamic range adjustment between leaving the original image unchanged and incorporating the entire second dynamic range into the original image (i.e., the image with the first dynamic range).

[0110] The control value is referred to, throughout the disclosure, as either a “control value” or a “slider value” or “SliderValue” because while the control value is not limited to a slider value, most of the concepts are more easily illustrated based on the assumption that the control value is set by a value of a slider control that falls within a certain range proportional to the amount of modified dynamic range.

[0111] For example, the range may be [0.0, 1.0]. [0.0, 100.0], or any other range with a lower and upper bound. In some implementations, the input is received using a slider (e.g., a slider that may be adjusted in a number of ways, such as a touchscreen, a keyboard, a mouse, and so on, or by other instructions such as audio or text inputs, or a call from an Application Programming Interface (API)) or another graphical user interface control. In other implementations, the input may be received in other ways. Block 212 may be followed by block 214.

[0112] In block 214. the updated image is generated. Specifically, the updated image is generated based on using the gain map data and the gain map metadata to modify the image having the first dynamic range based on the control value and a boost value associated with the display unit.Attorney Docket No.: LE-3182-01 -WO

[0113] As noted, the control value and the boost value are applied to the gain map metadata, where the gain map metadata governs incorporating information from the gain map data into the image having the first dynamic range. For example, the gain map metadata may include the GainMapMin, GainMapMax, HDRCapacityMin. and HDRCapacityMax (as abbreviations for certain types of metadata, parameters, or settings for applying gain map data, as defined above).

[0114] Additional details of the influence that the control value and the boost value have on updating and / or changing the gain map metadata are presented in the discussion of FIG. 3 and FIG. 4. Once the gain map metadata is updated, the gain map metadata places constraints on the gain map data, acting to control how much of the gain from the gain map data is actually incorporated into the updated image. Block 214 may be followed by block 216.

[0115] In block 216, the updated image is displayed on the display unit. The updated image is obtained by modification from the original image with the first dynamic range in the initial image such that the updated image has an amount of dynamic range that reflects the control value input, and that has a dynamic range that is tailored to features of a given display unit. The method may end at block 216.

[0116] FIG. 3 is a flow diagram illustrating additional details of an example method 300 to update an amount of dynamic range in an image, according to some implementations.

[0117] In some implementations, method 300 can be performed, for example, on a server system 102 as shown in FIG. 1. In some implementations, some or all of the method 300 can be implemented on one or more client devices such as client devices 120, 122, 124, or 126 of FIG. 1, one or more server devices such as server device 104 of FIG. 1, and / or on both server device(s) and client device(s). In described examples, the implementing system includes one or more digital processors or processing circuitry ("processors"), and one or more storage devices (e.g.. a database or other storage). In some implementations, different components of one or more servers and / or clients can perform different blocks or other parts of the method 300. In some examples, a device is described as performing blocks of method 300. Some implementations can have one or more blocks of method 300 performed by one or more other devices (e.g.. other client devices or server devices) that can send results or data to the first device.

[0118] In some implementations, the method 300, or portions of the method, can be initiated automatically by a system. For example, the method (or portions thereof) can beAttorney Docket No.: LE-3182-01 -WOperformed periodically, or can be performed based on one or more particular events or conditions, e.g., a client device launching image application 106, capture of new images by an image capture device of a client device, reception of images over a network by a device, upload of new images to a server system 102, a predetermined time period having expired since the last performance of method 300, and / or one or more other conditions occurring which can be specified in settings read by the method.

[0119] Method 300 may begin at block 310. In block 310, a maximum display boost value is determined. As noted, the maximum display boost value is the maximum display boost, or gain, in log2 space that the display unit is capable of (e.g., at a given point in time based on display unit settings and / or the overall capability of the display unit based on the display hardware), relative to standard dynamic range (white).

[0120] Display boost in HDR refers to a feature that artificially enhances the brightness and color vibrancy of an HDR image on a display, essentially pushing the limits of the screen's capabilities to make HDR content appear vivid and impactful, often by increasing the maximum luminance (e.g., nits) provided by a screen. This essentially makes highlights appear brighter and darker areas appear deeper. By boosting the brightness range, a display boost can make HDR content appear more realistic and improve its visual characteristics.

[0121] Display boost refers to the instantaneous capabilities of a display to produce luminance values above SDR. There may be at least three things that contribute to determining the value. First, display boost may be based on what is the brightest image the display is physically capable of displaying, ignoring software and only considering hardware capabilities, perhaps as limited by power or heat or other physical constraints.

[0122] Second, display boost may be based on what brightness SDR white corresponds to. This aspect is largely influenced by software decisions, either by the operating system (OS) (e.g., auto brightness) or influenced by the user (e.g., via a brightness slider). For example, on a bright sunny day, a display SDR white might be set to nearly as high as the physical display is capable of.

[0123] Third, display boost may be due to user experience (UX) or other software considerations, such as what is the brightest such considerations permit the display to become at a given time. For example, a user looking at a phone in bed with the lights off, the SDRAttorney Docket No.: LE-3182-01 -WOwhite probably corresponds to something very dark, with the display at or near its minimum brightness setting.

[0124] In this case, it is possible that the display could be physically capable of something like 8 stops or more of display boost (e.g., about 200 times brighter in linear terms), but the system would intentionally limit the display boost value so as to not cause discomfort to the user (e.g., causing severe eye discomfort because the user feels suddenly blinded by HDR content appearing on a media feed.)

[0125] Display boost is not used as a mechanism to make images HDR. Rather, display boost is a term that describes a display’s capabilities to display HDR content accurately to the author’s intent. Display boost is a capacity of the display, not as a means to artificially supplement images, especially not without information such as a gain map to intentionally inform dynamic range conversion. Block 310 may be followed by block 312.

[0126] In some implementations, the input gain map metadata are single channel (the gain map metadata has identical values for each channel of a multi-channel image, e.g., a red-green-blue (RGB) image; although the gain map pixel data may still be multi-channel) and has a GainMapMin value of 0.0 in log2 space (a "0” value in the gain map data indicates no change to the dynamic range of an image). In this case, the slider (or other mechanism used to set the control value) affects the GainMapMax and HDRCapacityMax values. Such values, in turn, affect how a gain map itself is applied when generating an updated image.

[0127] In such techniques, setting the slider to 0.0 may cause the image to appear in SDR, potentially achieved by either dropping the gain map (e.g., the gain map data and gain map metadata) from the image altogether, or by setting GainMapMax to 0.0 and HDRCapacityMax to a negligible value above 0.0 (e g. 0.01, to avoid setting HDRCapacityMin and HDRCapacityMax equal to one another). Having such values be equal violates constraints of certain formats that store an image with a gain map (including gain map data and associated with gain map metadata). It may be preferable to drop the gain map altogether, to prevent confusion that may be caused by identifi ing an image as HDR that is never actually displayed as such. Additional aspects of such rendering are presented in the discussion of FIG. 5.

[0128] Setting the slider to 1.0 (or otherwise using input to set the control value to a maximum, in other examples) causes the image to appear in the greatest amount of HDR possible. Such a greatest amount is determined based on the display capabilities of the displayAttorney Docket No.: LE-3182-01 -WOunit at that time. In other words, the editing application queries the display unit to establish a value of MaxDisplay Boost and then set GainMapMax to match this value.

[0129] Note that MaxDisplayBoost may change over time as a function of screen brightness (e.g., due to changes in ambient brightness, or other factors). The MaxDisplayBoost is queried at one point in time corresponding, e.g. to the moment in time that the user opens the image for editing. In another example, MaxDisplayBoost is queried after a large enough change in screen brightness has been detected to lead to an update of the metadata associated with the gain map and a re-rendering of the updated image.

[0130] At block 312, an initial gam map maximum value is updated. For example, the initial gain map maximum value may be based on a control value (such as a slider value) and a boost property of a display unit. Additional details are presented in FIG. 4 and FIG. 5. Block 312 may be followed by block 314. For intermediate slider values (or control values), GainMapMax is directly tied to the slider value (or control value, as a fraction of the display's available headroom.

[0131] Headroom is a uantity associated with a display unit and refers to the amount of space between the maximum brightness the display unit can produce and the brightness of a standard white level. Headroom may be used as an alternative term for display boost associated with a display unit.

[0132] Also, headroom can also be used in regard to content, not just display. For example, GainMapMax essentially represents the headroom required to show the full dynamic range desired for a particular image. Headroom helps clarify relationships between GainMapMax and display boost.

[0133] Headroom essentially represents the dynamic range available before hitting the limit of range the screen can show, particularly important when dealing with HDR (High Dynamic Range) content where a wider range of brightness levels are present; the higher the headroom, the more detail can be displayed in very bright areas of an image. Alternatively put, headroom is the ratio of the luminance of the screen's brightest white to the luminance of standard dynamic range (SDR) white, in the screen's native color space. Headroom might also be informed by software considerations related to user experience (UX) (e.g., not suddenly presenting a user in a dim environment with a bright light, that might cause user discomfort).Attorney Docket No.: LE-3182-01 -WO

[0134] These updates may be carried out using certain equations. For example, two equations that perform these updates may include:

[0135] GainMapMaxOut= SliderValue * MaxDisplayBoost (Equation 1-1, Updating GainMapMax).

[0136] HDRCapacityMaxOut= GainMapMaxOut(Equation 1-2, Updating HDRCapacit Max)

[0137] For example, if the input value of GainMapMax is 4, and MaxDisplayBoost is also 4, and the SliderValue is 0.5, the method results in an output GainMapMax of 2. Note that in these equations, SliderValue is the control value that may be provided by a graphical user interface, which may be a slider control. The control value may also be provided in different ways. The equations are based on a SliderValue between 0.0 and 1.0, but they may be modified as needed if the control value takes on different values.

[0138] The result means that the input image and the display unit have 4 stops of headroom above SDR, and the output image now makes use of 2 stops of headroom. A stop is a doubling or halving of the amount of light let in when taking a photo.

[0139] For example, if a photographer says the photograph is going to increase an exposure by 1 stop, the photographer simply means the photographer is going to capture twice as much light as on the previous shot. Note that while, strictly speaking, 2 stops may not necessarily be perceived as precisely half as bright as 4 stops, it is generally reasonable to expect that the perception is close to this due to characteristics of human perception of changes in brightness. Part of the reason for the lack of precision around perception is that perception is not identical for each person.

[0140] Considering the above example again, but with MaxDisplayBoost as 2, then the result is an output GainMapMax of 1. The result is perceptually about half as bright as the display unit is capable of, an appropriate action given the half-way slider position. Thus, basing GainMapMax as a fraction of the MaxDisplayBoost, determined using the SliderValue information causes the amount of applied gain to vary in a w ay that appears to proportionally alter the amount of dynamic range presented by the display.Attorney Docket No.: LE-3182-01 -WO

[0141] Considering the above example one last time but with MaxDisplayBoost as 8, then the result is an output GainMapMax of 4. The result is identical to the input and again appropriate because the input image was utilizing half of the perceptual capabilities of the display. FIG. 3 illustrates a way to update the initial gain map maximum value performed in a logarithmic space. An alternative is presented in FIG. 4 (using different equations).

[0142] Most simply, the update is done in logarithmic space. The same update can also be done in linear space, by representing the formulas differently. A result would be the same. There are unlimited ways to represent any given equation, but a linear representation is presented in the disclosure for convenience, since this might be a common way to understand these principles. There is another method to use simpler math in linear space.

[0143] At block 314, an initial high dynamic range capacity maximum value is updated. Such updating involves the use of Equation 1 -2, unless the GainMapMax value does not change. This involves setting the output value of the HDR capacity maximum to the gain map maximum.

[0144] This approach is effective because HDR capacity maximum is defined as the minimum display boost at which the gain map is fully applied, so it makes sense to have this correspond to GainMapMax (the gain in log2 space that a gain map pixel a value of “1” corresponds to). This causes a gain map to be fully applied when a gain map pixel has a value of “1”, providing appropriate results, as a gain map value of “1” is used to indicate that gain map information is to be fully applied. Block 314 may be followed by block 316.

[0145] At block 316, an initial gain map minimum value is updated. Block 316 may be optional, in that the initial gain map minimum value may be left alone when the initial gain map minimum value starts with a value of zero. In such a scenario, the gain map minimum value may not involve any adjustment, in that a value of zero generally already corresponds to a quantity gain map minimum value is supposed to measure, namely, the gain in log2 space that a gain map pixel with a value of “0” corresponds to.

[0146] The initial gain map minimum value may be nonzero. In this case, the techniques are to additionally influence GainMapMin based on the relative change of GainMapMax. For example, such an influence may use Equation 4 (GainMapMin addition): GainMapMinOut=GainMapMiniInn* - GalnMapMaxIn. This corresp ronding to scaling to of GainMap rMin ensures that theAttorney Docket No.: LE-3182-01 -WOrelative tonal differences encoded in the gain map are preserved. So, for example, a gain map pixel that indicates no brightness change between SDR and HDR renditions maintains this semantic meaning.

[0147] Preserving such tonal differences helps ensure that the look of the image stays looking correct. For example, an issue that might arise if this is not done would be skin tones looking wrong, whether to another observer or to a person in the photo who might feel it no longer captures how the person actually looks.

[0148] As an example, the input GainMapMax and MaxDisplayBoost values may each be 4, the input GainMapMin is -2. and the slider value is 0.5. Using the techniques described herein yields an output GainMapMax of 2 and output GainMapMin of -1. The range adjustment provided by the gain map has been roughly halved perceptually, and the gain map value of 0.33 (repeating) that corresponds to no brightness change has been preserved.

[0149] In linear space, this equation can be represented in several ways, such that one is:(Equation 5, GainMapMin addition represented in linear space). For clarity, this is GainMapMininLinear to the exponent of the log of GainMapMaxoutLinear in base GainMapM xinputLinear. By a series of mathematical techniques, this expression (Equation 5) may be obtained from Equation 4 as an alternative expression of a similar concept.

[0150] Given the beneficial feature of ensuring a corresponding scaling of GainMapMin relative to GainMapMax to ensure consistent tonal difference encoding in the gain map, a linear variation (analogous to Equation 3 for updating GainMapMax) is not relevant here. The alternative scaling (using Equation 3) for GainMapMax forgoes some of the benefit of matching perceptual expectations (e.g., it would no longer be expected that a 10% change in a slider at one end of the slider would tend to correspond to a similar perceived amount of change in brightness as it would at the other end).

[0151] Once a piece of given GainMapMin or GainMapMax metadata has been modified, then there is only one possible value that the other value can take on to ensure tonal differences are preserved. For example, this may occur if only the gain map metadata is changed and the pixels in the gain map data are unmodified. Some implementations are effectively solving for this value as a function of the first modification that is made.Attorney Docket No.: LE-3182-01 -WO

[0152] Also, the first modification is made on the largest GainMapMax value because it is the one that the display boost limits (e.g., if another lower value is chosen to modify fist, it might occur that the highest value is set up above the display boost capabilities, and then it is not possible to preview the change for the user accurately.

[0153] Given the same example as provided in log space above, there is a linear input GainMapMax and MaxDisplayBoost of 16, and linear input GainMapMin of 0.25. The output linear values are then GainMapMax of 4 and GainMapMin of 0.5.

[0154] After the various gain map metadata have been updated as discussed in method 300, the gain map metadata (and any other relevant metadata) may be used to govern the application of the gain map data to the original image, and the result may be displayed.

[0155] FIG. 4 is a flow diagram illustrating additional details of an example method 400 to update an amount of dynamic range in an image, according to some implementations.

[0156] In some implementations, method 400 can be performed, for example, on a server system 102 as shown in FIG. 1. In some implementations, some or all of the method 400 can be implemented on one or more client devices such as client devices 120, 122. 124, or 126 of FIG. 1, one or more server devices such as server device 104 of FIG. 1, and / or on both server device(s) and client device(s). In described examples, the implementing system includes one or more digital processors or processing circuitry ("processors"), and one or more storage devices (e.g.. a database or other storage). In some implementations, different components of one or more servers and / or clients can perform different blocks or other parts of the method 400. In some examples, a device is described as performing blocks of method 400. Some implementations can have one or more blocks of method 400 performed by one or more other devices (e.g.. other client devices or server devices) that can send results or data to the first device.

[0157] In some implementations, the method 400, or portions of the method, can be initiated automatically by a system. For example, the method (or portions thereof) can be performed periodically, or can be performed based on one or more particular events or conditions, e.g., a client device launching image application 106, capture of new images by an image capture device of a client device, reception of images over a network by a device, upload of new images to a server system 102, a predetermined time period having expired since theAttorney Docket No.: LE-3182-01 -WOlast performance of method 400. and / or one or more other conditions occurring which can be specified in settings read by the method.

[0158] Method 400 may begin at block 410. In block 410, a maximum display boost value is determined. For example, block 410 may be analogous to block 310. As noted, the maximum display boost value may change over time.

[0159] A display boost value, usually referring to a characteristic that measures the dynamic range abi 1 i ty of a display unit to enhance visual quality or performance on a monitor, can change due to several factors including: changing monitor (or other display) settings like refresh rate or resolution, switching between different display modes on a graphics card, updating graphics drivers, modifying graphical settings (e g., for an application such as a game), or even just changing the application being used, such as if a given application makes a request to change the display boost value, depending on the design of the boost function.

[0160] A linear space represents a scale where equal increments on the axis correspond to equal changes in the data, while a logarithmic space is non-linear; in a logarithmic space, equal intervals on the axis represent multiplicative changes in the data, not additive ones like in a linear space. In the present disclosure, the logarithmic spaces referred to herein in examples use a base-2 logarithm (so that units refer to doubling) unless otherwise specified.

[0161] Such a logarithm is convenient in this context because of the relation to a human perception of brightness, and the large scale of brightnesses that human tend to interact with on a regular basis. Such a large scale may have evolved from this phenomenon and why photographers use stops when taking photographs. Other bases may be used as well, but this may deviate from human perception. By matching human perception, a proportional adjustment of the control (e.g., a slider) corresponds to an amount of perceived adjustment in dynamic range. If other bases are used, the formulas should be updated accordingly, though bases that were not originally 2 should be expected to require their specific bases. Block 410 may be followed by block 412.

[0162] At block 412. it is determined if an update to an initial gain map maximum value is to occur in a linear space or a logarithmic space. If the update is to occur in a logarithmic space, block 412 is followed by block 414. If the update is to occur in a linear space, block 412 is followed by block 416.Attorney Docket No.: LE-3182-01 -WO

[0163] At block 414, the initial gain map maximum value is updated in a logarithmic space. Block414 may befollowedby block418. For example, updating the initial gain map maximum value in a logarithmic space uses Equation 1-1 (based on a product of SliderValue (corresponding to the control value) and MaxDisplay Boost (corresponding to the display unit)).

[0164] At block 416, the initial gain map maximum value is updated in a linear space. Block 416 may be followed by block 418. Note that, if representing GainMapMax and MaxDisplayBoost in linear space, Equation 1-1 can be written as: GainMapM axOutLinear= MaxDisplayBoostLinearsllderValue(Equation 2, Updating GainMapMax represented in linear).

[0165] Considering the same initial example above from log space, say that GainMapMax and MaxDisplayBoost are both 16 (in linear space) and the slider value is 0.5. This results in a linear output GainMapMax of 4 (the square root of 16). As mentioned above, the result is less than half as bright in a linear scale of brightness but the result works well because these changes are perceptually about half as bright and the slider value is set to 0.5.

[0166] Considering the linear space where MaxDisplayBoost is 4 in linear space, then there is a linear output GainMapMax of 2 (the square root of 4). As a final example in a linear space, if the MaxDisplayBoost is 256 in linear space, then there is a linear output GainMapMax of 16 (the square root of 256), with no change to the image.

[0167] If working with linear values, it may also be acceptable to simply scale in linear space according to the following, alternative equation: GainMapMaxOutLlnear= 1 + MaxDisplayBoostLinear— 1) * SliderValue (Equation 3, Linear scaling alternative to update GainMapMax). If scaling in linear space using this technique, the perceptual change along the slider may be somew hat skewed towards the lower end of the slider. In other words, users perceive a greater change in the low er end of the slider relative to the higher end of the slider. This tradeoff may be acceptable for the benefit of a simpler implementation in some cases.

[0168] Due to human perception of brightness being roughly logarithmic, scaling in that domain (or the linear equality) may provide the most even perceptual response of the slider’s effect on the image. Using Equation 3 still permits easy image manipulation, and may be moreAttorney Docket No.: LE-3182-01 -WOcomputationally efficient, using fewer resources and making it easier to reflect slider manipulation (or changes in maximum display boost) in real-time or near real-time.

[0169] At block 418, the initial high dynamic range capacity maximum value is updated. As noted above, this updating may be accomplished by setting the high dynamic range capacity maximum value to that of updated gain map maximum value, as obtained in block 414 or block 416.

[0170] The techniques discussed herein assume that HDRCapacityMin is 0.0. If anon-zero value is encountered, when implementing the techniques, HDRCapacityMin may be set to 0.0 to ensure compliance with standards for the image with regards to standards on the relative values of HDRCapacityMin and HDRCapacity Max. Block 418 may be analogous to block 314. Block 418 may be followed by block 420.

[0171] At block 420, the updated image is generated. The generation generally includes taking the gain map metadata (as modified earlier in methods 300 and / or 400) and using the metadata (i.e., gain map metadata) to apply the gain map data to the image having the first dynamic range to generate the updated image. That is, each pixel of the gain map data may include information about modifying the dynamic range of corresponding pixel(s) of the image having the first dynamic range. Block 420 may be followed by block 422.

[0172] At block 422, the updated image is displayed. Because the updated image has been updated in a way that takes into account the maximum display boost of the display unit (used to display the updated image), the updated image falls within a range where the dynamic range of the image is not modified in any way (for example, the updated image simply reflects the dynamic range of the initial image). Alternatively, the updated image may be presented in a way that incorporates the maximum amount of additional dynamic range that the display unit is capable of displaying.

[0173] Additionally, the slider control (or another control value) may be configured in a way that corresponds to proportional adjustments of dynamic range, in keeping with the logarithmic way that humans perceive brightness. Alternatively, the changes may be supplied in a linear manner, saving some resources and / or possibly reducing complexity but possibly resulting in some perceptual anomalies (again, based on the logarithmic way that humans perceive brightness).Attorney Docket No.: LE-3182-01 -WO

[0174] FIG. 5 is a flow diagram illustrating an example method 500 to obtain a base image in a standard dynamic range (SDR) format from an initial image, according to some implementations.

[0175] In some implementations, method 500 can be performed, for example, on a server system 102 as shown in FIG. 1. In some implementations, some or all of the method 500 can be implemented on one or more client devices such as client devices 120, 122. 124, or 126 of FIG. 1, one or more server devices such as server device 104 of FIG. 1, and / or on both server device(s) and client device(s). In described examples, the implementing system includes one or more digital processors or processing circuitry ("processors"), and one or more storage devices (e.g.. a database or other storage). In some implementations, different components of one or more servers and / or clients can perform different blocks or other parts of the method 500. In some examples, a device is described as performing blocks of method 500. Some implementations can have one or more blocks of method 500 performed by one or more other devices (e.g.. other client devices or server devices) that can send results or data to the first device.

[0176] In some implementations, the method 500, or portions of the method, can be initiated automatically by a system. For example, the method (or portions thereof) can be performed periodically, or can be performed based on one or more particular events or conditions, e.g., a client device launching image application 106, capture of new images by an image capture device of a client device, reception of images over a network by a device, upload of new images to a server system 102, a predetermined time period having expired since the last performance of method 500, and / or one or more other conditions occurring which can be specified in settings read by the method.

[0177] Method 500 may begin at block 510. In block 510, a request to produce a standard dynamic range (SDR) image is received. When producing an SDR image, the SDR image may occur in a situation such that the initial image includes an SDR image (as an image having a first dynamic range) and the gain map data and gain map metadata include information that provides techniques to add additional dynamic range to such an SDR image. Method 500 illustrates a method such that an image with gain map data and gain map metadata may be presented without using any of the information from the gain map data and gain map metadata to modify the image with a first dynamic range. Block 510 may be followed by block 520.Attorney Docket No.: LE-3182-01 -WO

[0178] At block 520, it is determined whether to produce the SDR image by dropping a gain map (including gain map data and gain map metadata) or by updating the metadata associated with the gain map data. Either of these techniques operates based on the idea that it is possible to produce an SDR image by leaving the original SDR image unmodified. If it is determined to drop the gain map, block 520 is followed by block 530. If it is determined to update the metadata, block 520 is followed by block 532.

[0179] At block 530, the gain map is dropped from the base image. Such dropping of the gain map w ould not happen until save time. It w ould be possible to drop the gain map only at save time. It may be helpful to retain the gain map, in case it is needed again. Remaining is the first version of the image, generally corresponding to an SDR image. Hence, simply using the unmodified SDR results in an image for rendering that has an unmodified dynamic range, generating the image that is requested (an SDR image). Block 530 may be followed by block 534.

[0180] At block 532, the gain map metadata is updated to produce the SDR image. In particular, the initial gain map maximum and the HDR capacity maximum value are updated. GainMapMax may be set to 0.0 and HDRCapacityMax may be set to a negligible value greater than 0.0 (e.g., 0.01, to avoid setting HDRCapacilyMin and HDRCapacityMax as equal to one another. Having such values equal is not permitted by some formats of the base image, since there is a range between these two values for the values to make sense.

[0181] By setting the gain map metadata in this manner, it causes a minimal amount of HDR to be applied to the initial SDR image. The gain map metadata may be set in a w ay that any difference is so small as to be imperceptible to a human viewer. It may be preferable to drop the gain map altogether (gain map data and gain map metadata) (as in block 530) to prevent confusion that may be caused by identifying an image as HDR (e.g., via a label or other indicator in a user interface) that is never actually displayed as such, even if the amount of applied HDR is minimal. Block 532 may be followed by block 534.

[0182] At block 534, the updated SDR image is produced. For example, if the gain map was dropped at block 530. the updated SDR image may be produced simply by taking unmodified, the first version of the base image and using the first version of the base image as the updated SDR image. If the gain map was modified at block 532, applying such a modified gain map (e.g., having modified gain map metadata) to the first version of the base imageAttorney Docket No.: LE-3182-01 -WOmodifies the first version of the base image in a way such that the resulting updated image is the updated SDR image (i.e., the gain map metadata has been set such that none or minimal amounts of the information in the gain map data are applied to the original image). Block 534 may be followed by block 536.

[0183] At block 536. the updated SDR image is displayed. This involves simply displaying the onginal image having the first dynamic range (i.e., there is no gam map information applied) or displaying the original image having the first dynamic range without significant modifications (i.e., the gain map metadata is set such that no gain map data or minimal gain map data change the SDR image).

[0184] While method 500 illustrates a method in which the unmodified image is an SDR image, the unmodified image may also be an HDR image where applying the gain map data and the gain map metadata strips HDR. For example, the techniques so far assume that the base rendition is SDR. It may be possible to apply similar techniques in the case of an HDR base rendition image, where the application of the gain map data and the gain map metadata creates an SDR image. The handling is more complex in such a scenario, in that the HDR base image’s pixels are updated.

[0185] To update the HDR image’s pixels in accordance with the present techniques, for each pixel, first convert the pixel to SDR relative, linear Red / Green / Blue (RGB) according to the base image’s color space. Then, scale each channel, R, G, and B, to match the modification to GainMapMax that is obtained using Equation 2, using the following equation: ChannelOutLinear= ChannelInLinearSUderValue. Finally, convert the pixel back to the base image color space.

[0186] It is usually not possible to meaningfully operate on or otherwise manipulate color data in a non-linear space. Thus, color data is converted to a linear space. An SDR relative space is convenient, but not strictly necessary. The color space of the base image is used to inform how to convert to the linear space (e.g., if the base image is sRGB (a standard red-green-blue color space), that implies a certain non-linearity with a well-defined set of math to get back to a linear space).

[0187] In some implementations, the data may be converted back to the base image color space (e.g.. sRGB (a standard red-green-blue color space)) at the end because this is probablyAttorney Docket No.: LE-3182-01 -WOwhat the user expects and there is no reason to change that color space. It is presumably a color space that is convenient for the user.

[0188] With those prerequisites in mind, the formulas apply the same scaling of the luminance of the image relative to the display capabilities, and such that the gain map will still result in the same SDR image.

[0189] Handling images in this way may still be used in conjunction with real-time or near real-time rendering. Real-time rendering may be achieved by performing the methods described herein in a shader for an edit preview.

[0190] This handling also somewhat complicates maintaining the HDR information from the initial image, because the handling involves modifying the pixel data, but this may be difficult to avoid if user acts to modify the HDR-ness of an HDR base rendition image (in that such manipulation inherently involves manipulating HDR values to be displayed, and therefore the HDR base rendition pixels). One way to avoid this in some implementations is to maintain a copy of the original image along with the corresponding gain map, so that there is data to revert to, increasing the flexibility of such implementations.

[0191] FIG. 6 is a flow diagram illustrating an example method 600 to adjust an amount of dynamic range in a multichannel image, according to some implementations.

[0192] In some implementations, method 600 can be performed, for example, on a server system 102 as shown in FIG. 1. In some implementations, some or all of the method 600 can be implemented on one or more client devices such as client devices 120, 122, 124, or 126 of FIG. 1, one or more server devices such as server device 104 of FIG. 1, and / or on both server device(s) and client device(s). In described examples, the implementing system includes one or more digital processors or processing circuitry ("processors"), and one or more storage devices (e g., a database or other storage). In some implementations, different components of one or more servers and / or clients can perform different blocks or other parts of the method 600. In some examples, a device is described as performing blocks of method 600. Some implementations can have one or more blocks of method 600 performed by one or more other devices (e g., other client devices or server devices) that can send results or data to the first device.Attorney Docket No.: LE-3182-01 -WO

[0193] In some implementations, the method 600, or portions of the method, can be initiated automatically by a system. For example, the method (or portions thereof) can be performed periodically, or can be performed based on one or more particular events or conditions, e.g., a client device launching image application 106, capture of new images by an image capture device of a client device, reception of images over a network by a device, upload of new images to a server system 102, a predetermined time period having expired since the last performance of method 600, and / or one or more other conditions occurring which can be specified in settings read by the method.

[0194] Method 600 may begin at block 610. In block 610, an image is received with a multichannel gain map. The techniques as discussed so far consider the case of a singlechannel, monochrome gain map. Other gain map architectures are possible.

[0195] For example, there may be red-green-blue (RGB) gain maps, where the input gain map is multichannel. In this case, the techniques are configured to output an RGB, multichannel gain map as well, where the method additionally ensures that relative chromatic changes are preserved. This ends up being an extension of the mechanism used in the base method and the implementation where GainMapMin is non-zero.

[0196] For example, the multichannel gain map may include a gain map for three channels, each corresponding to one of red, green, and blue (RGB) information in the gain map associated with the image. Block 610 may be followed by block 620.

[0197] At block 620, a channel from the multiple channels is found with the largest initial gain map maximum value. For example, there may be initial input gain map values as follows. GainMapMaxin may include the set {2.0, 3.0, 4.0} with an RGB ordering. GainMapMini,, may include the set {-1.0, -05, -0.25} with an RGB ordering. HDRCapacityMaxin may be 4.0.

[0198] In such an example, the MaxDisplayBoost may be 4.0 and the slider value may be 0.5. This example is discussed in logarithmic space, but similar operations may be performed in linear space. Because the blue channel has an initial GainMapMaxin value of 4.0, this value is identified as the largest initial gain map maximum value. Block 620 may be followed by block 630.

[0199] At block 630, the largest initial gain map maximum value may be updated. For example, applying Equation 1-1 yields GainMapMaxout of 2.0, as this is the product of theAttorney Docket No.: LE-3182-01 -WOMaxDisplayBoost value (i.e., 4.0) and the SliderValue (i.e., 0.5). Block 630 may be followed by block 640.

[0200] At block 640, the initial high dynamic range capacity values are updated. For example, applying Equation 1-2 yields HDRCapacityMaxout of 2.0, used as universal to every channel. HDRCapacityMax is implicitly universal to every channel; there are never multiple values for it. Block 640 may be followed by block 650.

[0201] At block 650, the initial gain map minimum and maximum values are updated. For example, this may occur by applying Equation 4 to the remaining GainMapMax channels, red and green, and the GainMapMin channels to get the remaining results.

[0202] For example, the GainMapMaxout corresponds to the set {1.0, 1.5, 2.0} (each channel is scaled based on its proportion to the largest GainMapMaxout value) and GainMapMinout corresponds to {-0.5, -0.25. -0.125) (based on Equation 4).

[0203] Thus, method 600 may include applying GainMapMax handling to the channel with the largest GainMapMax value (using Equation 1-1. Equation 2, or Equation 3). HDRCapacityMax may be updated by applying Equation 1-2 to this result. Then, the handling is applied to GainMapMin, via Equation 4 or Equation 5 to each other GainMapMax and GainMapMin value.

[0204] However. Equation 4 and Equation 5 refer to GainMapMin and may be adapted when applying to determine each value of Min and Max for each of R, G, and B channels other than the maximum GainMapMax channel.

[0205] FIG. 7A is an illustration of a standard dynamic range (SDR) image displayed when a slider control is set to have a minimum value 700a, according to some implementations. FIG.7A illustrates a smartphone 710 having a screen. The screen of smartphone 710 displays a slider control 712. Slider control 712 is set to a minimum value. For example, if the slider control 712 selects a value in the range [0.0, 1.0], slider control 712 illustrates a setting of 0.0. This setting means that the screen of smartphone 710 is to display an SDR image 714. The SDR image 714 may correspond to a first version of a base image (the image having the first dynamic range), where none of the information in the gain map data is applied to the base image.Attorney Docket No.: LE-3182-01 -WO

[0206] It is to be noted that slider control 712 is only one example of how to set the control value used to control an amount of dynamic range into an updated image, and other user interface elements and / or peripherals may allow another user to change the control value. Alternatively, another program could use an Application Programming Interface (API) to manage the control value.

[0207] FIG. 7B is an illustration of a standard dynamic range (SDR) image displayed as an image with partial HDR when a slider control is set to have an intermediate value 700b, according to some implementations. FIG. 7B illustrates a smartphone 720 having a screen. The screen of smartphone 720 displays a slider control 722.

[0208] Slider control 722 is set to an intermediate value. For example, if the slider control 722 selects a value in the range [0.0, 1.0], slider control 722 illustrates a setting of 0.0. This setting means that the screen of smartphone 720 is to display an image with partial HDR 724. The image with partial HDR 724 may correspond to a modified first version of a base image, where some of the information in the gain map is applied to the image having the first dynamic range. For example, the value obtained from slider control 722 (e.g. 0.5) is applied to the values in the gain map metadata, modifying the gain map metadata in a way that causes the gain map metadata to incorporate a portion of the changes to dynamic range provided in the gain map data, but not all.

[0209] While the slider control 722 is illustrated as having a value of 0.5, the slider control 722 may be moved left (e.g.. to decrease the amount of dynamic range added by the gain map metadata) or right (e.g.. to increase the amount of dynamic range added by the gain map metadata). Moving the slider control results in visual changes to the displayed image that are proportional to the amount of movement of the slider.

[0210] It may be noted that the choice to have a minimum value as a leftmost value and a maximum value as a rightmost value is arbitrary; it is also possible to have a control value of 1.0 as a leftmost value and a value of 0.0 as a rightmost value. The control value may be applied to generate the updated image in the same manner; it is simply set by a user in an inverted manner.

[0211] Other realignments could be applied if other controls are used. Additionally, the horizontal alignment is not to be taken as limiting. The slider could be vertical as well. In addition, other forms of input could adjust the control value. For example, the control valueAttorney Docket No.: LE-3182-01 -WOcould be proportional to an amount of pressure applied using a touchscreen, or by using other GUI elements such as radio buttons, a text field, or a drop-down menu. For example, there could be presets at each 0.1 difference of the control value.

[0212] To ensure a good user experience, it is helpful to enable re-rendering the edit preview as often as each frame. Note that if nothing changes, there is no re-render; the image can simply be left alone. Based on the equations laid out above, there are two key inputs to the edit result, triggering a re-render on the next possible frame.

[0213] One, the slider value changes (or another change is made to the control value). Two, maximum display boost changes. There may be a threshold as to an amount of change in one or both of these two quantities that is to occur before a re-render occurs. If the threshold is sufficiently small, then effectively any change in these quantities leads to a re-render.

[0214] This means that the editing application may either listen for changes to these parameters or monitor them (with user permission) and re-render the editing preview whenever they change.

[0215] There is one other key consideration in an interactive session. Techniques determine the initial slider position. The determination of the initial slider position is made based on the relative values of the maximum input GainMapMax and Maximum Display Boost at the time the session starts.

[0216] If the input GainMapMax is greater than the maximum display boost, then the initial slider position is 1 (its maximum value), since the display unit cannot portray the full range associated with the image, so the display unit is driven so as to do the most dynamic range modification the display unit is capable of. In some implementations, the display unit is driven as much as the operating system (OS) or a current application deems reasonably appropriate. Otherw ise, the slider position is dictated by the proportion of the maximum display boost that the maximum input GainMapMax consumes. SliderValue =GamMapMaXln(Equation 6,MaxDisplayBoostSetting the Initial Slider Position).

[0217] This approach ensures that, when possible, the slider is set to an initial position that indicates the same maximum output GainMapMax as the maximum input GainMapMax. In other words, setting the slider in this manner ensures that, if possible, the edit session starts the slider position as indicating no change to the image.Attorney Docket No.: LE-3182-01 -WO

[0218] In the cases where such matching cannot be attained (maximum input GainMapMax is greater than max display boost), the slider value is set to 1 to get as close as the display unit can, and effectively enable the user to lower the HDR-ness via the slider (and not increase the HDR-ness), since this is what the user can preview given the input image and the current display state (given the limitations of the display unit with respect to increasing dynamic range further). Other considerations that may affect a max display boost value may include user experience (UX) considerations by an operating system (OS) or another software aspect of the system.

[0219] FIG. 7C is an illustration of a standard dynamic range (SDR) image displayed as an image with full HDR when a slider control is set to have a maximum value 700c. according to some implementations. FIG. 7C illustrates a smartphone 730 having a screen. The screen of smartphone 730 displays a slider control 732. Slider control 712 is set to a minimum value.

[0220] For example, if the slider control 712 selects a value in the range [0.0, 1.0], slider control 712 illustrates a setting of 0.0. This setting means that the screen of smartphone 710 is to display an SDR image 714. The SDR image 714 may correspond to a first version of a base image having a first dynamic range, where none of the information in the gain map data is applied to the base image having the first dynamic range.

[0221] FIGS. 7A-7C illustrate an example of using a slider control to modify a control value that affects the amount of the information in a gain map that is to be applied to an original image. For example, the illustrated slider control is associated with a leftmost position with a minimum amount of added dynamic range (e.g., a total absence of additional gain map data information), a central position with a moderate amount of added dynamic range (e.g., a partial amount of gain map data information), and a rightmost position with a high amount of added dynamic range (e.g., a total presence of additional gain map data information, possibly subject to display unit constraints).

[0222] Some other implementations may manage the control value in different ways. For example, instead of [0.0, 1.0], the range may be [0.0, 100.0], or another suitable range including a minimum and a maximum. As noted, the slider control's configuration (that the minimum value is associated with a leftmost position, and the maximum value is associated with a rightmost position, may easily be reversed or the slider control may be vertical (or any alternative orientation).Attorney Docket No.: LE-3182-01 -WO

[0223] Also, the control value may be set using other ways than using a slider control. For example, other graphical controls may permit use of a touchscreen, a mouse, a keyboard, and so on to manage the control value. As an example, in lieu of a slider, a knob-type control that a user twists using various ty pes of input could be used to adjust the control value.

[0224] One alternative way to set the control value may be the use of audio input (e.g., the utterance "make 50% more dynamic”), text input (e.g.. the text command “increase dynamic range by 25%”), or any other form of input. The input may also be received via an Application Programming Interface (e.g., the techniques may be called by a different app that sends the input (the different app may receive the value of the control value via whatever mechanism). Various techniques could automate certain aspects of the adjustment.

[0225] FIG. 8 is a diagram 800 of an initial image, a slider value, and a display unit, and using this information to generate an updated image, according to some implementations. FIG.8 illustrates an initial image 810. Such an initial image 810 acts as a container for an image that includes dynamic range information, such as through a gain map. The initial image 810 includes an image with a first dynamic range 820. As discussed throughout this disclosure, the image with the first dynamic range 820 may be a SDR image, that has a default dynamic range. There is also metadata 822 that stores information about modifying dynamic range in the image with the first dynamic range 820. The metadata 822 includes gain map data 824 (which may include the actual pixel data when applying a gain map) and gain map metadata 830 (which may include various information about how to apply the gain map data 824).

[0226] Gain map metadata 830 (e.g., gain map settings) in metadata 822 specifies ways to apply the gain map data 824 information itself to the image with the first dynamic range 820. Specifically, gain map metadata 830 include a gain map minimum value 832, a gain map maximum value 834, an HDR minimum value 836, and an HDR maximum value 838. These values are not limiting, and additional values may also be stored as gain map metadata 830, in addition to or instead of these values. FIG. 8 shows gain map metadata 830 for a single channel, but it is also possible to use gain map metadata 830 for multiple channels as discussed in FIG.6.

[0227] An important aspect of ways the techniques work is by receiving a control value 840 (which may be a slider value 840) and applying the control value 840 to modify all or some of the individual aspects of gain map metadata 830. FIG. 8 illustrates control value 840 as theAttorney Docket No.: LE-3182-01 -WOcontrol value used to modify gain map metadata 830 from metadata 822. Other sources of a control value 840 besides a slider value 840 may be used in other implementations, as discussed throughout this disclosure.

[0228] In addition to the initial image 810, FIG. 8 illustrates a control value 840 and a display unit 850, and an image updater 860 that interact with initial image 810. For example, control value 840 is received from a relevant user through a slider (or another sort of user interface or through an API call, depending on the implementation). As discussed above, control value 840 governs ways in which the gain map metadata 830 are changed, governing ways that gain map data 824 is applied to the image with the first dynamic range 820.

[0229] FIG. 8 also illustrates that display unit 850 interacts with image updater 860. For example, display unit 850 may be a screen integrated into a device, such as a touchscreen integrated into a smartphone, a tablet, a phablet, and so on. The screen may also be a screen integrated into a laptop computer. Alternatively, the screen may be an external screen such as a television, a monitor, and so on. Display unit 850 is associated with maximum boost value 852, as discussed above.

[0230] FIG. 8 illustrates image updater 860. Image updater may be implemented at the server-side, the client-side, or a combination. Image updater 860 may be a separate entity or may be integrated into the module that manages the initial image 810 or manages variation in the control value 840 or may be integrated into the display using 850.

[0231] Image updater 860 uses gain map metadata 830 (associated with initial image 810), such as all or some of gain map minimum value 832, gain map maximum value 834, HDR minimum value 836, and HDR maximum value 838 in combination with the maximum boost value 852 determined at display unit 850 and the control value 840.

[0232] In particular, the control value 840 and the maximum boost value 852 are used to update all or some of the values included in gain map metadata 830. The updating of the gain map metadata 830 involves beginning with initial (or original) values for the values in the gain map metadata 830.

[0233] As discussed above, the techniques consider the initial values of certain items in the gain map metadata 830, along with the control value 840 and the maximum boost value 852, and the image updater 860 generates updated values of some of the elements in the gain mapAttorney Docket No.: LE-3182-01 -WOmetadata 830. Other elements in the gain map metadata 830 are then further updated by considering previously updated elements in the gain map metadata 830. Additional details of the updating are presented in FIGS. 2-6 in methods 200, 300, 400, 500, and 600.

[0234] Once the gain map metadata 830 are fully updated in response to control value 840, image updater 860 applies the gain map metadata 830 to the gain map data 824, and that gain map data 824 is used to generate an updated image 862. The updated image 862. as discussed previously, takes the image with first dynamic range 820 and modifies the dynamic range in the updated image 862 by applying the gain map data 824 as the basis of the modification. Once the updated image 862 is ready (the dynamic range changes are applied to the image), the updated image 862 may be sent to display unit 850 for rendering and display.

[0235] In a general case, the updates to the image with first dynamic range 820 are primarily done via updates to the gain map metadata 830. The case where this approach is not true is an HDR base image case (where the gain map converts to SDR rather than to HDR). In that case, the image with first dynamic range 820 may also be modified to create the updated image 862.

[0236] One aspect of the rendering of updated image 862 is that the updated image 862 reflects changes to control value 840 and maximum boost value 852. For example, if control value 840 changes, the gain map metadata 830 are changed accordingly, and then applied again to generate updated image 862 accordingly so that display unit 850 makes a corresponding change to the content that is displayed by the display unit 850.

[0237] Likewise, if maximum boost value 852 changes (i.e., due to a display setting or a power adjustment) updated image 862 is modified accordingly. Such updates may occur in real-time or near real-time. By performing the updates in this manner, the interface is more useful and intuitive. For example, as the control value 840 changes, the dynamic range changes accordingly. This makes it easier for a user to adjust an amount of dynamic range without having to wait a long time for changes to be implemented.

[0238] Likewise, as the maximum boost value 852 changes, the gain map metadata 830 change accordingly. The modifications made in response to adjustments to the maximum boost value 852 are somewhat different from those based on changes to control value 840. Instead of changing the appearance of updated image 862 to correspond to different positions of control value 840, as the maximum boost value 852 changes, the gain map metadata 830 are adjustedAttorney Docket No.: LE-3182-01 -WOto maintain the appropriate appearance of updated image 862 relative to the display capabilities at that point in time, such that the slider position does not change but continues to be shown to the user. For example, the display unit may likely be changing what the display unit shows to a user, and so adjusting the gain map metadata as that happens is likely to be less obtrusive to a user experience than possible alternatives (e.g., moving a slider control without user input).

[0239] FIGS. 9A-9E are graphs 900a, 900b, 900c, 900d. and 900e graphs illustrating characteristics of changes to various gain map metadata in response to example slider values, according to some implementations.

[0240] FIG. 9A is a graph 900a illustrating GainMapMin and GainMapMax response in log space as a slider is adjusted between 0 and 1. Graph 900a is associated with an input GainMapMin of -1 and GainMapMax of 3 (each in log space). For example, in graph 900a, GainMapMin and GainMapMax each have a value of 0 when the slider value is 0.0. GainMapMin has a value of -1 when the slider value is 1.0 and GainMapMax has a value of 3 when the slider value is 1.0.

[0241] As illustrated in graph 900a. GainMapMin and GainMapMax smoothly (i.e., linearly) transition between the values of 0 and -1 and 0 and 3, respectively. This linear transition corresponds to values that change in log space. Hence, the values appear proportional based on the way a human observer perceives gain changes, because the actual amount of gain is being measured in a logarithmic space.

[0242] FIG. 9B is a graph 900b illustrating GainMapMin and GainMapMax response in linear space as a slider is adjusted between 0 and 1. Graph 900b is associated with an input GainMapMin of 0.5 and GainMapMax of 8.0 (each in linear space). For example, in graph 900b, GainMapMin and GainMapMax each have a value of 1.0 when the slider value is 0.0. GainMapMin has a value of 0.5 when the slider value is 1.0 and GainMapMax has a value of 8.0 when the slider value is 1.0.

[0243] As illustrated in graph 900b, GainMapMin and GainMapMax exponentially transition between the values of 1 and 0.5 and 1 and 8.0, respectively. This exponential transition corresponds to values that change linearly in a log space (as illustrated in FIG. 9A). Hence, the values appear proportional based on the way a human observer perceives gain changes, even though the actual amount of gain is exponential in a linear space.Attorney Docket No.: LE-3182-01 -WO

[0244] FIG. 9C is a graph 900c illustrating comparing GainMapMax handling in log versus linear. Graph 900c shows a slider value ranging between 0.0 and 1.0 and corresponding values of GainMapMax in log and linear spaces, with a MaxDisplayBoost value of 3.0.

[0245] Graph 900c illustrates a smooth (linear) transition between a GainMapMax value of 0.0 and 3.0, corresponding to the MaxDisplayBoost value of 3.0. One aspect of the modification that is illustrated in graph 900c is that there is a smooth (i.e. linear) change in GainMapMax, corresponding to no change when the slider value is 0.0 and a maximized change when the slider value, such that the maximized change is 3.0 (matching the MaxDisplayBoost value). This also ensures a visible change is observable throughout the entire scale, and that the scale utilizes the entire range provided by the MaxDisplayBoost.

[0246] FIG. 9D is a graph 900d illustrating comparing GainMapMin handling in log versus linear. Graph 900d illustrates a slider value ranging between 0.0 and 1.0 and corresponding values of GainMapMin in log and linear spaces, with a GainMapMinin value of -1.0.

[0247] Graph 900d illustrates a smooth (linear) transition between a GainMapMin value of 0.0 and -1.0, corresponding to the GainMapMinin value of -1.0. One aspect of the modification that is illustrated in graph 900d is that there is a smooth (i.e. linear) change in GainMapMin, corresponding to no change when the slider value is 0.0 and a maximized change when the slider value, such that the maximized change is -1.0 (matching the GainMapMinin value).

[0248] FIG. 9E is a graph 900e illustrating a point of no change relative to a slider value. For example, in graph 900e, the slider value may vary between 0.0 and 1.0. There may be associated corresponding initial values of GainMapMinin of -1.0 and GainMapMaxi„ of 3.0. There may be an associated corresponding point of no change relative to the slider value.

[0249] Such a point of no change may have the value of 0.25, regardless of slider value, in both logarithmic and linear space. This value is 0.25 in that a smooth perceived transition, corresponding to each ty pe of space, includes 0.25 as a midpoint, such that there is no change in dynamic range introduced. The constant value of 0.25 may sen e as an illustration that tonal differences are preserved no matter what change in dynamic range is introduced.

[0250] FIG. 10 is a block diagram of an example device 1000 which may be used for one or more implementations described herein. In one example, device 1000 may be used to implement a client device, e.g., any of client devices 120-126 shown in FIG. 1. Alternatively,Attorney Docket No.: LE-3182-01 -WOdevice 1000 can implement a server device, e.g., server device 104. In some implementations, device 1000 may be used to implement a client device, a server device, or both client and server devices. Device 1000 can be any suitable computer system, server, or other electronic or hardware device as described above.

[0251] One or more methods described herein can operate in several environments and platforms, e.g., as a standalone computer program that can be executed on any type of computing device, as a web application having web pages, a program run on a web browser, a mobile application (“app”) run on a mobile computing device (e.g., cell phone, smart phone, tablet computer, wearable device (wristwatch, armband, jewelry, headwear, virtual reality goggles or glasses, augmented reality goggles or glasses, head mounted display, etc.), laptop computer, etc.). In one example, a client / server architecture can be used, e.g., a mobile computing device (as a client device) sends user input data to a server device and receives from the server the final output data for output (e.g., for display). In another example, all computations can be performed within the mobile app (and / or other apps) on the mobile computing device. In another example, computations can be split between the mobile computing device and one or more server devices.

[0252] In some implementations, device 1000 includes a processor 1002. a memory 1004, and input / output (I / O) interface 1006. Processor 1002 can be one or more processors and / or processing circuits to execute program code and control basic operations of the device 1000. A “processor” includes any suitable hardware system, mechanism or component that processes data, signals or other information. A processor may include a system with a general-purpose central processing unit (CPU) with one or more cores (e.g., in a single-core, dual-core, or multicore configuration), multiple processing units (e.g., in a multiprocessor configuration), a graphics processing unit (GPU), a field-programmable gate array (FPGA), an applicationspecific integrated circuit (ASIC), a complex programmable logic device (CPLD), dedicated circuitry for achieving functionality, a special-purpose processor to implement neural network model-based processing, neural circuits, processors optimized for matrix computations (e.g., matrix multiplication), or other systems. In some implementations, processor 1002 may include one or more co-processors that implement neural-network processing. In some implementations, processor 1002 may be a processor that processes data to produce probabilistic output, e.g., the output produced by processor 1002 may be imprecise or may be accurate within a range from an expected output. Processing need not be limited to a particularAttorney Docket No.: LE-3182-01 -WOgeographic location, or have temporal limitations. For example, a processor may perform its functions in “real-time,” “offline.” in a “batch mode,” etc. Portions of processing may be performed at different times and at different locations, by different (or the same) processing systems. A computer may be any processor in communication with a memory.

[0253] Memory 1004 is typically provided in device 1000 for access by the processor 1002, and may be any suitable processor-readable storage medium, such as random access memory (RAM), read-only memory (ROM), Electrical Erasable Read-only Memory (EEPROM), Flash memoty, etc., suitable for storing instructions for execution by the processor, and located separate from processor 1002 and / or integrated therewith. Memory 1004 can store software operating on the server device 1000 by the processor 1002. including an operating system 1008, image application 1010 (e.g., which may be image application 106 of FIG. 1), other applications 1012, and application data 1014. Other applications 1012 may include applications such as a data display engine, web hosting engine, map applications, image display engine, notification engine, social networking engine, media display applications, communication applications, web hosting engines or applications, media sharing applications, etc. In some implementations, the image application 1010 can include instructions that enable processor 1002 to perform functions described herein, e.g., some or all of the methods of FIGS. 2-6. In some implementations, images stored in the image formats described herein (including recovery maps, metadata, etc.) can be stored as application data 1014 or other data in memory 1004, and / or on other storage devices of one or more other devices in communication with device 1000. In some examples, image application 1010, or other applications stored in memory' 1004, can include an image encoding and container creation module and / or an image decoding module (e.g., performing the methods of FIGS. 2-6), or such modules can be integrated into a single module or application.

[0254] Any software in memory' 1004 can alternatively be stored on any other suitable storage location or computer-readable medium. In addition, memory 1004 (and / or other connected storage device(s)) can store one or more messages, one or more taxonomies, electronic encyclopedia, dictionaries, digital maps, thesauruses, knowledge bases, message data, grammars, user preferences, and / or other instructions and data used in the features described herein. Memory 1004 and any other type of storage (magnetic disk, optical disk, magnetic tape, or other tangible media) can be considered "storage" or "storage devices."Attorney Docket No.: LE-3182-01 -WO

[0255] I / O interface 1006 can provide functions to enable interfacing the server device 1000 with other systems and devices. Interfaced devices can be included as part of the device 1000 or can be separate and communicate with the device 1000. For example, network communication devices, storage devices (e.g., memory and / or database), and input / output devices can communicate via I / O interface 1006. In some implementations, the I / O interface can connect to interface devices such as input devices (keyboard, pointing device, touchscreen, microphone, camera, scanner, sensors, etc.) and / or output devices (display devices, speaker devices, printers, motors, etc.).

[0256] Some examples of interfaced devices that can connect to I / O interface 1006 can include one or more display devices 1020 that can be used to display content, e.g., images, video, and / or a user interface of an application as described herein. Display device 1020 can be connected to device 1000 via local connections (e.g., display bus) and / or via networked connections and can be any suitable display device. Display device 1020 can include any suitable display device such as an LCD. LED, or plasma display screen, CRT, television, monitor, touchscreen, 3-D display screen, or other visual display device. Display device 1020 may also act as an input device, e.g., a touchscreen input device. For example, display device 1020 can be a flat display screen provided on a mobile device, multiple display screens provided in glasses or a headset device, or a monitor screen for a computer device.

[0257] The I / O interface 1006 can interface to other input and output devices. Some examples include one or more cameras which can capture images and / or detect gestures. Some implementations can provide a microphone for capturing sound (e.g., as a part of captured images, voice commands, etc.), a radar or other sensors for detecting gestures, audio speaker devices for outputting sound, or other input and output devices.

[0258] For ease of illustration, FIG. 10 shows one block for each of processor 1002, memory 1004, I / O interface 1006, and software blocks 1008-1014. These blocks may represent one or more processors or processing circuitries, operating systems, memories, I / O interfaces, applications, and / or software modules. In other implementations, device 1000 may not have all of the components shown and / or may have other elements including other ty pes of elements instead of, or in addition to, those shown herein. While some components are described as performing blocks and operations as descnbed in some implementations herein, any suitable component or combination of components of environment 100, device 1000, similar systems,Attorney Docket No.: LE-3182-01 -WOor any suitable processor or processors associated with such a system, may perform the blocks and operations described.

[0259] Methods described herein can be implemented by computer program instructions or code, which can be executed on a computer. For example, the code can be implemented by one or more digital processors (e.g., microprocessors or other processing circuitry) and can be stored on a computer program product including a non-transitory computer-readable medium (e g., storage medium), such as a magnetic, optical, electromagnetic, or semiconductor storage medium, including semiconductor or solid state memory', magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), flash memory, a rigid magnetic disk, an optical disk, a solid-state memory drive, etc. The program instructions can also be contained in, and provided as, an electronic signal, for example in the form of software as a service (SaaS) delivered from a server (e.g., a distributed system and / or a cloud computing system). Alternatively, one or more methods can be implemented in hardware (logic gates, etc.), or in a combination of hardware and software. Example hardware can be programmable processors (e.g. Field-Programmable Gate Array (FPGA), Complex Programmable Logic Device), general purpose processors, graphics processors, Application Specific Integrated Circuits (ASICs), and the like. One or more methods can be performed as part of or component of an application running on the system, or as an application or software running in conjunction with other applications and operating systems.

[0260] Although the description has been described with respect to particular implementations thereof, these particular implementations are merely illustrative, and not restrictive. Concepts illustrated in the examples may be applied to other examples and implementations.

[0261] Further to the descriptions above, a user may be provided with controls allowing the user to make an election as to both if and when systems, programs, or features described herein may enable collection of user information (e.g., information about a user’s social network, social actions, or activities, profession, a user’s preferences, or a user’s current location), and if the user is sent content or communications from a server. In addition, certain data may be treated in one or more ways before it is stored or used, so that personally identifiable information is removed. For example, a user’s identity may be treated so that no personally identifiable information can be determined for the user, or a user’s geographic location may be generalized where location information is obtained (such as to a cit , ZIP code,Attorney Docket No.: LE-3182-01 -WOor state level), so that a particular location of a user cannot be determined. Thus, the user may have control over what information is collected about the user, how that information is used, and what information is provided to the user.

[0262] Note that the functional blocks, operations, features, methods, devices, and systems described in the present disclosure may be integrated or divided into different combinations of systems, devices, and functional blocks as would be known to those skilled in the art. Any suitable programming language and programming techniques may be used to implement the routines of particular implementations. Different programming techniques may be employed, e.g., procedural or object-oriented. The routines may execute on a single processing device or multiple processors. Although the steps, operations, or computations may be presented in a specific order, the order may be changed in different particular implementations. In some implementations, multiple steps or operations shown as sequential in this specification may be performed at the same time.

Claims

Attorney Docket No.: LE-3182-01 -WOCLAIMS1. A computer-implemented method to edit images with gain maps, the method comprising:obtaining an initial image, the initial image comprising an image having a first dynamic range and metadata that includes a gam map with information descriptive of a relationship between the image and a different version of the image having a second dynamic range;receiving input indicative of a control value corresponding to a target dynamic range; generating an updated image for display on a display unit of a client device by using the metadata to modify' the image based on the control value and a boost value associated with the display unit; anddisplaying the updated image on the display unit.

2. The computer-implemented method of claim 1, wherein the input includes user input received via a graphical user interface (GUI) displayed on the display unit, the GUI comprising a slider control element operable by a user to select, as the control value, a number corresponding to a value in a range from a minimum value corresponding to the image to a maximum value corresponding to the different version of the image.

3. The computer-implemented method of claim 1, wherein the image is a standard dynamic range (SDR) image and the different version of the image is a high dynamic range (HDR) image.

4. The computer-implemented method of claim 3, wherein:the control value is a value between a minimum value and a maximum value, if the control value is the minimum value, the image is displayed on the display unit, andif the control value is the maximum value, the different version of the image is displayed on the display unit, wherein to display the different version of the image, a gain map maximum value from the gain map is set as equal to the boost value associated with the display unit.Attorney Docket No.: LE-3182-01 -WO5. The computer-implemented method of claim 1, wherein generating the updated image comprises updating an initial gain map maximum value and an initial high dynamic range (HDR) capacity maximum value based on the boost value associated with the display unit and the control value to generate the updated image from the image.

6. The computer-implemented method of claim 5, wherein the gain map corresponds to a single channel, and the metadata comprises an initial gain map minimum value, the initial gain map maximum value, and the initial HDR capacity maximum value.

7. The computer-implemented method of claim 5, wherein the updated image is a standard dynamic range (SDR) generated by dropping the gain map from the image or by¬ updating the initial gain map maximum value to a minimum value and the initial HDR capacity maximum value to a value greater than a minimum value.

8. The computer-implemented method of claim 5, wherein the control value is between a minimum value of 0 and a maximum value of 1, and the method further comprises:updating the initial gain map maximum value based on a product in logarithmic space of the control value and the boost value associated w ith the display unit; andupdating the initial HDR capacity- maximum value to be equal to the updated gain map maximum value.

9. The computer-implemented method of claim 5, further comprising: updating the initial gain map maximum value based on the boost value associated with the display unit and the control value.

10. The computer-implemented method of claim 9, wherein the initial gain map maximum value is updated using the equation GainMapMaxOut= SliderValue * MaxDisplayBoost, the equation GainMapMaxOutLinear= MaxDisplayBoostLinearslldei Value, or the equation GainM apM axOutLinear= 1 + MaxDisplayBoostLinear— 1) * SliderValue ,wherein GainMapMaxout is an updated gain map maximum value in a logarithmic space, MaxDisplayBoost is a boost value associated with the display unit in the logarithmic space, GainMapMaxOutLinear is an updated gain map maximum value in a linear space.Attorney Docket No.: LE-3182-01 -WOMaxDisplayBoosttinear is a boost value associated with the display unit in the linear space, and SliderValue is the control value.

11. The computer-implemented method of claim 5, wherein the metadata further comprises an initial gain map minimum value having a non-zero value and the initial gain map minimum value is updated based on the initial gain map maximum value and the updated gain map maximum value, and the initial gain map minimum value is applied to the image when generating the updated image.

12. The computer-implemented method of claim 11, wherein the initial gain map minimum value is updated using the equation GainMapMinOut= GainMapMinin* — Gain : -MapMaxnut or th > e equati •G ct in AT tp A7 ctx on GainMapMinOutLinear=wherein GainMapMinout is an output gain map minimum value in a logarithmic space, GainMapMinin is an input gain map minimum value in the logarithmic space, GainMapMaxout is an output gain map maximum value in the logarithmic space, GainMapMaxin is an input gain map maximum value in the logarithmic space, GainMapMinOutLinear is an output gain map minimum value in a linear space, GainMapMininLinear is an input gain map minimum value in the linear space, GainMapMaxinLinear is an input gain map maximum value in the linear space, and GainMapMaxoutLinear is an output gain map maximum value in the linear space.

13. The computer-implemented method of claim 1, wherein the gain map is a gain map having multiple channels, the metadata comprises an initial gain map minimum value, an initial gain map maximum value, and an initial HDR capacity maximum value for each channel, and the method further comprises:identifying a particular channel of the multiple channels with a largest initial gain map maximum value as an initial overall largest gain map maximum value;updating the initial overall largest gain map maximum value based on the control value and the boost value associated with the display unit;updating each initial HDR capacity maximum value based on the updated overall largest gain map maximum value; andAttorney Docket No.: LE-3182-01 -WOupdating the initial gain map maximum value and the initial gain map minimum value for individual channels of the multiple channels based on the updated overall largest gain map maximum value.

14. The computer-implemented method of claim 1, further comprising: receiving additional input indicative of an updated control value corresponding to a second target dynamic range, wherein the additional input comprises an adjustment of the control value via additional user input or an adjustment of the boost value associated with the display unit; andin response to receiving the additional input, generating a second updated image using the metadata based on the updated control value.

15. The computer-implemented method of claim 1, wherein the control value is initially set as a maximum value if an initial gain map maximum value in the metadata is greater than the boost value associated with the display unit and the control value is set as a proportion of the boost value associated with the display unit consumed by the initial gain map maximum value in the metadata otherwise.

16. The computer-implemented method of claim 1, wherein the displaying is performed in real-time or in near real-time as the input indicative of the control value is received.

17. The computer-implemented method of claim 1, wherein the input is received using a slider that is linear in terms of an amount of range added to or subtracted from the image, based on the boost value associated with the display unit and a dynamic range of the image, and wherein a range of control values selectable via the slider corresponds to an available range of the display unit.

18. The computer-implemented method of claim 1, wherein the generating and the displaying do not alter the initial image.

19. A non-transitory computer-readable medium with instructions stored thereon that, responsive to execution by a processing device, causes the processing device to perform operations comprising:Attorney Docket No.: LE-3182-01 -WOobtaining an initial image, the initial image comprising an image having a first dynamic range and metadata that includes a gain map with information descriptive of a relationship between the image and a different version of the image having a second dynamic range;receiving input indicative of a control value corresponding to a target dynamic range; generating an updated image for display on a display unit of a client device by using the metadata to modify the image based on the control value and a boost value associated with the display unit; anddisplaying the updated image on the display unit.

20. A system, comprising:a memory with instructions stored thereon; anda processing device, coupled to the memory, the processing device configured to access the memory and execute the instructions, wherein the instructions cause the processing device to perform operations comprising:obtaining an initial image, the initial image comprising an image having a first dynamic range and metadata that includes a gain map with information descriptive of a relationship between the image and a different version of the image having a second dynamic range;receiving input indicative of a control value corresponding to a target dynamic range; generating an updated image for display on a display unit of a client device by using the metadata to modify the image based on the control value and a boost value associated with the display unit; anddisplaying the updated image on the display unit.