Method, device, and apparatus for avoiding chroma clipping within a tone mapper while maintaining saturation and preserving hue.
The method and device address chroma clipping in SL-HDRx systems by segmenting luminance values and applying correction factors to maintain saturation and hue in SDR images, ensuring accurate color representation.
Patent Information
- Authority / Receiving Office
- KR · KR
- Patent Type
- Patents
- Current Assignee / Owner
- INTERDIGITALCE PATENT HLDG SAS
- Filing Date
- 2021-10-14
- Publication Date
- 2026-07-21
AI Technical Summary
Existing SL-HDRx systems suffer from chroma clipping during the conversion of HDR to SDR, leading to reconstruction errors and loss of hue in the derived SDR images.
A method and device that modify the color correction function by segmenting luminance values into partial ranges, estimating attenuation values, calculating global and final correction factors, and applying temporal stabilization to avoid chroma clipping while maintaining saturation and hue.
The solution effectively prevents chroma clipping and maintains saturation, ensuring the derived SDR images accurately represent the original HDR content's hue and color characteristics.
Smart Images

Figure 112023042764181-PCT00110_ABST
Abstract
Description
Technology Field
[0001] At least one of the embodiments relates to the field of distribution of HDR video using SL-HDRx systems (x=1, 2, or 3), and more specifically, to a method, device, and equipment for modifying a color correction function intended to correct the initial chroma components of a current image represented by the initial luminance components and the initial chroma components in order to obtain normalized corrected chroma components to avoid chroma clipping while maintaining saturation and preserving hue. Background Technology
[0002] Recent advancements in display technologies are beginning to allow for an extended dynamic range of color, luminance, and contrast in images to be displayed. The term “image” in this specification refers to image content that may be, for example, a video or a still picture or image.
[0003] High-Dynamic-Range (HDR) video describes the characteristics of video that has a greater dynamic range than that of Standard-Dynamic-Range (SDR) video. HDR video involves capture, production, content / encoding, and display. HDR capture and displays enable brighter whites and deeper blacks. To accommodate this, HDR encoding standards allow for higher maximum luminance (compared to 8-bit for non-professional SDR video and 10-bit for professional SDR video) and use at least a 10-bit dynamic range to maintain precision across this extended range.
[0004] Technically, "HDR" strictly refers to the ratio between maximum and minimum luminance, but the term "HDR video" is universally understood to also imply a wide color gamut.
[0005] Although numerous HDR display devices and image and video cameras capable of capturing images with increased dynamic range have emerged, there is still a very limited amount of available HDR content. Additionally, most current content distribution systems are designed to deliver SDR content.
[0006] The standard SL-HDR1 (ETSI TS 103 433-1 series, the latest version is v1.3.1) provides direct backward compatibility by using metadata that allows the reconstruction of HDR signals from SDR video streams. One advantage of SL-HDR1 is that it allows the use of existing SDR distribution networks and services to distribute HDR content. Furthermore, SL-HDR1 allows HDR rendering on HDR devices and SDR rendering on SDR devices using a single-layer video stream.
[0007] The standard SL-HDR2 (ETSI TS 103 433-2 series, the latest version is v1.2.1) is adapted for HDR devices. The standard SL-HDR2 allows the transmission of ST-2084 (also known as PQ (Perceptual Quantizer) or HDR10) streams along with metadata. When a stream is received by a device that is compatible only with ST-2084 and not with metadata, the latter ignores the metadata and displays the images without knowing all their technical details (depending on device models and their processing capabilities, color rendering and level details may not respect the original source). When a device that supports the ST-2084 format and metadata receives the stream, it displays an optimized image that best respects the content creator's intent.
[0008] The standard SL-HDR3 (ETSI TS 103 433-3 v1.1.1) allows the transmission of Hybrid Log Gamma (HLG) streams along with metadata. An SL-HDR3 system includes an HDR / SDR reconstruction block based on the SL-HDR2 HDR / SDR reconstruction block; that is, it consists of a cascade of HLG-to-ST-2084 Opto-Electronic Transfer Function (OETF) converters and SL-HDR2 HDR / SDR reconstruction blocks. OETF describes the characteristics of the sensor's action in converting scene brightness into data.
[0009] In some typical SL-HDRx systems, the luminance portion of the SDR signal (i.e., SDR luminance) is calculated by applying a tone mapping operation to the luminance of the original HDR signal calculated from the original HDR RGB components, or to the luminance of the original HDR signals calculated from the gammad versions of the HDR RGB components of the original HDR signal (i.e., HDR luminance). The chroma portion of the SDR signal (i.e., SDR chroma) is calculated from the gammad versions of the HDR RGB components of the original HDR signal and from a color correction factor dependent on the calculated SDR luminance.
[0010] In some cases, the generated SDR chroma components are clipped to the maximum possible value. Clipping is a direct cause of reconstruction errors when reconstructing an HDR signal from an SDR signal.
[0011] To eliminate clipping of SDR chroma components, some methods modify the saturation of the calculated SDR chroma components. However, these methods generate highly saturated SDR images that no longer match the original HDR signal in terms of colors (i.e., hue).
[0012] It is desirable to overcome the above disadvantages.
[0013] It is particularly desirable to define a method that allows avoiding clipping of SDR chroma components while maintaining the saturation and preserving the hue of the derived SDR signal.
[0014] In the first aspect, one or more of the embodiments provide a method for modifying a color correction function intended to correct the initial chroma components of a current image represented by an initial luminance component and initial chroma components in order to obtain normalized corrected chroma components, wherein the color correction function is defined as a set of initial tuples including a first coordinate and a second coordinate, and the method, for a current image,
[0015] A step of segmenting the range of luminance values of the initial luminance component into partial luminance ranges - each boundary (frontier) between two consecutive partial luminance ranges corresponds to the first coordinate of one of the initial tuples -;
[0016] A step of estimating attenuation values for initial chroma components within each partial luminance range - each attenuation value degrades the initial chroma components to enable avoiding clipping of said components -;
[0017] A step of determining global attenuation values for initial chroma components from attenuation values determined for each partial luminance range;
[0018] A step of calculating a factor for each partial luminance range that enables maintaining saturation in each partial luminance range based on a global attenuation value and an attenuation value associated with the partial luminance range;
[0019] For each boundary between two consecutive luminance ranges, a step of calculating a minimum factor representing the minimum value among the factors calculated for these two consecutive partial luminance ranges;
[0020] A step of calculating a final correction factor for each boundary between two consecutive partial luminance ranges based on a minimum factor and a global damping value corresponding to the above boundary; and
[0021] To obtain new tuples that define a new color correction function, the method includes the step of modifying at least one second coordinate of the initial tuples using final correction factors.
[0022] In one embodiment, the method includes temporal stabilization of new tuples based on filtering using new tuples calculated for images preceding the current image.
[0023] In one embodiment, temporal stabilization is performed on a set of images belonging to the same scene between two scene cuts.
[0024] In a second aspect, one or more of the embodiments provide a device for modifying a color correction function intended to correct the initial chroma components of a current image represented by an initial luminance component and initial chroma components in order to obtain normalized corrected chroma components, wherein the color correction function is defined as a set of initial tuples including a first coordinate and a second coordinate, and the device,
[0025] Means for segmenting the range of luminance values of the initial luminance component into partial luminance ranges - each boundary between two consecutive partial luminance ranges corresponds to the first coordinate of one of the initial tuples -;
[0026] Means for estimating attenuation values for initial chroma components within each partial luminance range—each attenuation value degrades the initial chroma components to enable avoidance of clipping of said components—;
[0027] Means for determining global attenuation values for initial chroma components from attenuation values determined for each partial luminance range;
[0028] Means for calculating a factor for each partial luminance range, which enables maintaining saturation in each partial luminance range based on a global attenuation value and an attenuation value associated with the said partial luminance range;
[0029] Means for calculating a minimum factor representing the minimum value among the factors calculated for two consecutive partial luminance ranges for each boundary between two consecutive luminance ranges;
[0030] Means for calculating a final correction factor for each boundary between two consecutive partial luminance ranges based on a minimum factor and a global damping value corresponding to the above boundary; and
[0031] To obtain new tuples defining a new color correction function, means for modifying at least one second coordinate of the initial tuples using final correction factors are included.
[0032] In one embodiment, the device includes means for applying temporal stabilization of new tuples based on filtering using new tuples calculated for images preceding the current image in a sequence of images.
[0033] In one embodiment, the device includes means for applying temporal stabilization to a set of images in a sequence of images belonging to the same scene between two scene cuts.
[0034] In a third aspect, one or more of the embodiments provide a method for tone mapping an image including an initial luminance component and an initial chroma component, and the method is,
[0035] A step of modifying a color correction function using the method of the first sun; and
[0036] It includes a step of applying color correction to the initial chroma component based on a new color correction function.
[0037] In the fourth aspect, one or more of the embodiments provide a method for jointly distributing images of the same content in HDR and SDR formats to a client system, and the method is,
[0038] Step of applying the method of the first sun or the third sun; and
[0039] It includes the step of transmitting data representing the new tuples in the form of metadata to a client system.
[0040] In the fifth aspect, one or more of the embodiments provide an apparatus for tone mapping an image including an initial luminance component and an initial chroma component, and the apparatus,
[0041] Device according to the second sun; and
[0042] It includes means for applying color correction to an initial chroma component based on a new color correction function.
[0043] In the sixth aspect, one or more of the embodiments provide a device for jointly distributing images of the same content in HDR and SDR formats to a client system, and the device,
[0044] A device according to the second sun or a device according to the fifth sun; and
[0045] It includes means for transmitting data representing the new tuples in the form of metadata to a client system.
[0046] In the seventh aspect, one or more of the embodiments provide equipment including a device according to the second aspect, or a device according to the fifth aspect or the sixth aspect.
[0047] In the eighth sun, one or more of the embodiments provide a signal generated by the method of the first sun, the third sun, or the fourth sun, or by the device of the second sun, or by the device according to the fifth sun or the sixth sun, or by the equipment of the seventh sun.
[0048] In the ninth aspect, one or more of the embodiments provide a computer program comprising program code instructions for implementing a method according to the first aspect, the third aspect, or the fourth aspect.
[0049] In the tenth aspect, one or more of the embodiments provide an information storage medium that stores program code instructions for implementing a method according to the first aspect, the third aspect, or the fourth aspect. Brief explanation of the drawing
[0050] Figure 1 illustrates an example of an SL-HDR1 system. Figure 2 schematically illustrates the details of the pre-processing module of the SL-HDR1 system. Figure 3 schematically illustrates the details of the post-processing module of the SL-HDR1 system. FIG. 4 schematically illustrates an example of a hardware architecture of a processing module capable of implementing various suns and embodiments. FIG. 5 illustrates a block diagram of an example of a first system in which various suns and embodiments are implemented. FIG. 6 illustrates a block diagram of an example of a second system in which various suns and embodiments are implemented. Figure 7 schematically illustrates an example of a preprocessing process. Figure 8 schematically illustrates an example of a post-processing process. Figure 9 schematically illustrates an example of a chroma clipping limiter process. FIG. 10a schematically illustrates a first example of a temporal stabilization process. FIG. 10b schematically illustrates a second example of a temporal stabilization process. Figure 11 schematically illustrates the process for determining attenuation values for chroma components within partial luminance ranges. Figure 12 illustrates the execution of a chroma clipping limiter process. FIG. 13 illustrates the first detail of the temporal stabilization process. FIG. 14 illustrates a second detail of the temporal stabilization process. Specific details for implementing the invention
[0051] Various embodiments and examples are described below in the context of the SL-HDR1 system. However, these embodiments and examples may be adapted to any SL-HDRx system including color correction.
[0052] 도 1 This exemplifies an example of an SL-HDR1 system.
[0053] The SL-HDR1 system of FIG. 1 includes a server (1) and a client system (3) that communicate through a communication network (2). The client system (3) is connected to a first display device called an HDR display device (5) capable of displaying HDR content using a communication link (4), and is connected to a second display device called an SDR display device (7) capable of displaying SDR content using a communication link (6).
[0054] The server (1) obtains the original HDR content and generates an SDR encoded signal and metadata.
[0055] The client (3) receives an SDR encoded signal and metadata, generates decoded SDR content, and reconstructs HDR content from the SDR decoded SDR content and metadata.
[0056] The server (1) includes a preprocessing module, an encoding module (12), and a transmission module (14) as described in detail in relation to FIG. 2.
[0057] The preprocessing module (10) generates SDR content and metadata from the original HDR content by applying the process described below in relation to FIGS. 7 and FIG. 9.
[0058] The encoding module (12) encodes the SDR content and metadata. The encoding module (12) generates an encoded video stream that conforms to, for example, video compression standards such as HEVC (ISO / IEC 23008-2 - MPEG-H Part 2, High Efficiency Video Coding / ITU-T H.265) or AVC (ISO / IEC 14496-10 - MPEG-4 Part 10, Advanced Video Coding) or a standard under development called [Versatile Video Coding (VVC)]. The metadata is processed by SEI messages such as, for example, user data registration SEI messages, HEVC Color Remapping Information (CRI) or Mastering Display Color Volume (MDCV) SEI messages.
[0059] When encoded, the encoded video stream is transmitted to the client system (3) via the communication network (2) by the transmission module (14).
[0060] The client system (3) includes a receiving module (30), a decoding module (32), and a post-processing module (34) described in detail in relation to FIG. 3.
[0061] The receiving module (30) receives an encoded video stream containing encoded SDR content and metadata.
[0062] The decoding module (32) decodes the encoded video stream to reconstruct the SDR content and metadata. No additional processing is applied to the SDR content transmitted directly to the SDR display device (7).
[0063] The post-processing module (34) reconstructs HDR content from decoded SDR content and metadata by applying the process described in relation to FIG. 8.
[0064] 도 2 This outlines the details of the preprocessing module (10).
[0065] The preprocessing module (10) includes a conversion module (10A) and an HDR-SDR (HDR-to-SDR) signal decomposition module (10C).
[0066] The HDR-SDR signal decomposition module (10C) requires a linear optical RGB signal at its input. The conversion module (10A) enables format adaptation to the input required by the HDR-SDR signal decomposition module (10C), that is, it converts an input HDR video, which can have any format (OETF, YUV, …), into a linear optical RGB signal if necessary.
[0067] The HDR-SDR signal decomposition module (10C) generates an SDR backward-compatible version of the original HDR signal using an invertible process described in relation to the steps (701 to 708) of FIG. 7, which ensure a high-quality reconstructed HDR signal.
[0068] In one embodiment, the preprocessing module (10) includes an optional color gamut mapping module (10B). The color gamut mapping module (10B) may be used when the original HDR signal and SDR signal are represented in different color gamuts or color spaces.
[0069] 도 3 This outlines the details of the post-processing module (34).
[0070] The post-processing module (34) includes an SDR-HDR reconstruction module (34C) and a conversion module (34A).
[0071] The SDR-HDR reconstruction module (34C) receives the decoded SDR signal and metadata, and reconstructs the HDR signal as described in relation to the steps (801 to 807) of FIG. 8 by reversing the process of the HDR-SDR decomposition module (10C).
[0072] The conversion module (34A) enables format adaptation of the reconstructed HDR signal to a targeted system (e.g., a set-top box (STB), a connected TV, etc.) connected to the client system (3). The conversion module (34A) applies the process described by step (808) of FIG. 8.
[0073] In an embodiment where the preprocessing module (10) includes a color gamut mapping module (10B), the postprocessing module (34) includes an optional inverse color gamut mapping module (34B) that inverts the process of the color gamut mapping module (10B).
[0074] 도 4 This schematically illustrates an example of a hardware architecture of a processing module (100) that can implement different aspects and embodiments, which is included in a pre-processing module (10) in a server (1), an encoding module (12), or a transmission module (14), or included in a receiving module (30), a decoding module (32), or a post-processing module (34) in a client system (3).A processing module (100) comprises a processor or central processing unit (CPU) (1000) connected by a communication bus (1005), including, as non-limiting examples, one or more microprocessors, general-purpose computers, special-purpose computers, and processors based on a multi-core architecture; random access memory (RAM) (1001); and read-only memory (ROM) (1002); A storage unit (1003) that may include electrically eraseable programmable read-only memory (EEPROM), read-only memory (ROM), programmable read-only memory (PROM), random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), flash, magnetic disk drive, and / or optical disk drive, non-volatile memory and / or volatile memory, or a storage medium reader, such as a secure digital (SD) card reader and / or a hard disk drive (HDD) and / or a network-accessible storage device; and at least one communication interface (1004) for exchanging data with other modules, devices, systems or equipment. The communication interface (1004) may include, but is not limited to, a transceiver configured to transmit and receive data through a communication network (2); The communication interface (1004) may include a modem or a network card, but is not limited thereto.
[0075] For example, the communication interface (1004) is, for example, a processing module (100),
[0076] When the processing module (100) is included in the server (1), it receives the original HDR content and outputs an encoded video stream containing encoded SDR content and metadata;
[0077] When the processing module (100) is included in the pre-processing module (10), it receives the original HDR content and outputs the SDR content along with metadata;
[0078] When the processing module (100) is included in the encoding module (12), it receives SDR content and metadata, and outputs an encoded video stream representing the SDR content and metadata;
[0079] When the processing module is included in the transmission module (14), it receives the encoded video stream and transmits the encoded video stream to the client system (3);
[0080] When the processing module (100) is included in the client system (3), it receives an encoded video stream from the server (1) and outputs corresponding SDR and / or HDR content;
[0081] When the processing module (100) is included in the receiving module (30), it receives an encoded video stream from the server (1) and forwards the encoded video stream to the decoding module (32);
[0082] When the processing module (100) is included in the decoding module (32), it receives an encoded video stream from the receiving module (30) and outputs reconstructed SDR content and metadata;
[0083] When the processing module (100) is included in the post-processing module (34), it can receive reconstructed SDR content and metadata, and output reconstructed HDR content.
[0084] The processor (1000) can execute instructions loaded into RAM (1001) from ROM (1002), from external memory (not shown), from a storage medium, or from a communication network. When power is supplied to the processing module (100), the processor (1000) can read instructions from RAM (1001) and execute them. These instructions form a computer program that causes an implementation by the processor (1000) of, for example, the preprocessing process described in connection with FIGS. 7 and 9, the encoding process, the decoding process, and / or the postprocessing process described in connection with FIG. 8.
[0085] All or part of the algorithms and steps of the above processes may be implemented in software form by the execution of a set of instructions by a programmable machine, such as a digital signal processor (DSP) or a microcontroller, or may be implemented in hardware form by a machine or dedicated component, such as a field-programmable gate array (FPGA) or an application-specific integrated circuit (ASIC).
[0086] 도 5 It illustrates a block diagram of an example of a system (A) adapted to implement a server (1), a preprocessing module (10), an encoding module (12) and / or a transmission module (14), and various aspects and embodiments are implemented.
[0087] System (A) may be implemented as a device comprising the various components or modules described above and configured to perform one or more of the embodiments and examples described herein. Examples of such systems include, but are not limited to, various electronic systems, such as personal computers, laptop computers, smartphones, tablet computers, connected home appliances, servers, and cameras. The components of System (A) may be implemented in a single integrated circuit (IC), multiple ICs, and / or separate components, either alone or in combination. For example, in at least one embodiment, System (A) includes a pre-processing process (10), an encoding module (12) or a transmission module (14), or a processing module (100) that implements any combination of these modules. In various embodiments, System (A) is coupled to one or more other systems or other electronic devices, for example, via a communication bus or through dedicated input and / or output ports.
[0088] Inputs to the processing module (100) may be provided through various input modules as shown in block (60). Such input modules include, but are not limited to, (i) a radio frequency (RF) module that receives radio frequency (RF) signals transmitted over the air, for example by a broadcaster, (ii) a component (COMP) input module (or a set of COMP input modules), (iii) a universal serial bus (USB) input module, and / or (iv) a high definition multimedia interface (HDMI) input module. Other examples not shown in FIG. 5 include composite video.
[0089] In various embodiments, the input modules of block (60) have their respective associated input processing elements as known in the art. For example, an RF module may be associated with elements suitable for (i) selecting a desired frequency (also referred to as selecting a signal, band-limiting the signal to a band of frequencies), (ii) downconverting the selected signal, (iii) band-limiting again to a narrower band of frequencies to select a signal frequency band that may be referred to as a channel in some embodiments, (iv) demodulating the downconverted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select a desired stream of data packets. An RF module of various embodiments includes one or more elements for performing these functions, such as frequency selectors, signal selectors, band-limiters, channel selectors, filters, downconverters, demodulators, error correctors, and demultiplexers. The RF portion may include a tuner that performs various such functions, for example, including down-converting the received signal to a lower frequency (e.g., an intermediate frequency or a frequency near the baseband) or to the baseband. Various embodiments rearrange the order of the aforementioned (and other) elements, remove some of these elements and / or add other elements that perform similar or different functions. Adding elements may include inserting elements between existing elements, such as inserting amplifiers and analog-to-digital converters. In various embodiments, the RF module includes an antenna.
[0090] Additionally, USB and / or HDMI modules may include their own interface processors for connecting the system (A) to other electronic devices via USB and / or HDMI connectors. It should be understood that various forms of input processing, for example, Reed Solomon error correction, may be implemented, for example, within a separate input processing IC or within the processing module (100), as needed. Similarly, forms of USB or HDMI interface processing may be implemented within a separate interface IC or within the processing module (100), as needed. A demodulated, error-corrected, and demultiplexed stream is provided to the processing module (100).
[0091] Various elements of system (A) may be provided within an integrated housing. Within the integrated housing, the various elements may be interconnected using internal buses as known in the art, including suitable connection arrangements, e.g., inter-IC (I2C) buses, wiring, and printed circuit boards, and may transmit data between them. For example, in system (A), a processing module (100) is interconnected to other elements of system (A) by a bus (1005).
[0092] The communication interface (1004) of the processing module (100) enables the system (A) to communicate over a communication network (2). The communication network (2) may be implemented, for example, within a wired and / or wireless medium.
[0093] In various embodiments, data is streamed to or otherwise provided to System (A) using a wireless network, such as a Wi-Fi network, e.g., IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers). Wi-Fi signals in these embodiments are received via a communication network (2) and a communication interface (1004) adapted for Wi-Fi communications. The communication network (2) in these embodiments is typically connected to an access point or router that provides access to external networks, including the Internet, to allow streaming applications and other over-the-top communications. Other embodiments provide streamed data to System (A) using the RF connection of the input block (60). As described above, various embodiments provide data in a non-streaming manner, for example, when System (A) is a camera, a smartphone, or a tablet. Additionally, various embodiments use wireless networks other than Wi-Fi, e.g., a cellular network or a Bluetooth network.
[0094] The system (A) can provide output signals to various output devices using a communication network (2) or a bus (1005). For example, when implementing a preprocessing module (10), the system (A) provides output signals to an encoding module (12) using a bus (1005) or a communication network (2). When implementing a server (1), the system (A) provides SDR signals and metadata to a client system (3) using a communication network (2).
[0095] Various embodiments involve applying a preprocessing process and / or an encoding process. As used in this application, the preprocessing process or the encoding process may encompass all or part of the processes performed on a received HDR image or video stream to produce, for example, SDR content or encoded SDR content along with metadata. In various embodiments related to the encoding process, such a process comprises one or more of the processes typically performed by a video encoder, for example, an H.264 / AVC (ISO / IEC 14496-10 - MPEG-4 Part 10, Advanced Video Coding) encoder being developed by a joint collaboration team of ITU-T and ISO / IEC experts known as the JVET (Joint Video Experts Team), an H.265 / HEVC (ISO / IEC 23008-2 - MPEG-H Part 2, High Efficiency Video Coding / ITU-T H.265) encoder and an H.266 / VVC (Versatile Video Coding) encoder, an AV1 encoder, or a VP9 encoder.
[0096] 도 6 It illustrates a block diagram of an example of System B, which is adapted to implement a client system (3), a receiving module (30), a decoding module (32) and / or a post-processing module (34), and various aspects and embodiments are implemented.
[0097] System B may be implemented as a device comprising the various components and modules described above and configured to perform one or more of the aspects and embodiments described in this document.
[0098] Examples of such devices include, but are not limited to, various electronic devices, such as personal computers, laptop computers, smartphones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, and connected home appliances. Elements or modules of System B may be implemented, either alone or in combination, in a single integrated circuit (IC), multiple ICs, and / or separate components. For example, in at least one embodiment, System B includes a receiving module (30), a decoding module (32), and a post-processing module (34), or a processing module (100) implementing any combination of these modules. In various embodiments, System B is communically coupled to one or more other systems or other electronic devices, for example, via a communication bus or via dedicated input and / or output ports.
[0099] Inputs to the processing module (100) can be provided through various input modules such as those shown in the block (60) already described in relation to FIG. 5.
[0100] Various elements of System B may be provided within an integrated housing. Within the integrated housing, the various elements may be interconnected using internal buses as known in the art, including suitable connection arrangements, e.g., inter-IC (I2C) buses, wiring, and printed circuit boards, and may transmit data between them. For example, in System B, a processing module (100) is interconnected to other elements of System B by a bus (1005).
[0101] The communication interface (1004) of the processing module (100) enables System B to communicate over a communication network (6). The communication network (2) may be implemented, for example, within a wired and / or wireless medium.
[0102] In various embodiments, data is streamed to System B or otherwise provided using a wireless network, such as a Wi-Fi network, e.g., IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers). Wi-Fi signals in these embodiments are received via a communication network (2) and a communication interface (1004) adapted for Wi-Fi communications. The communication network (2) in these embodiments is typically connected to an access point or router that provides access to external networks, including the Internet, to allow streaming applications and other over-the-top communications. Other embodiments provide streamed data to System B using the RF connection of the input block (60). As previously mentioned, various embodiments provide data in a non-streaming manner. Additionally, various embodiments use wireless networks other than Wi-Fi, e.g., a cellular network or a Bluetooth network.
[0103] System B can provide output signals to various output devices, including a display (64) (corresponding to the display devices (5, 7) of FIG. 1), speakers (65), and other peripheral devices (66). In various embodiments, the display (64) includes, for example, one or more of a touchscreen display, an organic light-emitting diode (OLED) display, a curved display, and / or a foldable display. The display (64) may be for a television, tablet, laptop, mobile phone, or other device. The display (64) may also be integrated with other components (for example, as in a smartphone) or may be separate (for example, an external monitor for a laptop). The display device (64) is compatible with SDR or HDR content. In various examples of embodiments, other peripheral devices (66) include one or more of a standalone digital video disc (or digital multifunction disc) (for both terms, a DVR), a disc player, a stereo system, and / or a lighting system. Various embodiments use one or more peripheral devices (66) that provide functions based on the output of system B. For example, a disc player performs the function of playing the output of system B.
[0104] In various embodiments, control signals are communicated between System B and the display (64), speakers (65), or other peripheral devices (66) using signaling such as AV.Link, Consumer Electronics Control (CEC), or other communication protocols that enable device-to-device control with or without user intervention. Output devices may be communicateably coupled to System B through dedicated connections via their respective interfaces (61, 62, 63). Alternatively, output devices may be connected to System B using a communication network (2) via a communication interface (1004). The display (64) and speakers (65) may be integrated into a single unit with other components of System B in an electronic device, for example, a television. In various embodiments, the display interface (61) includes a display driver, for example, a timing controller (T Con) chip.
[0105] The display (64) and speakers (65) may alternatively be separate from one or more of the other components, for example, if the RF module of the input unit (60) is part of a separate set-top box. In various embodiments where the display (64) and speakers (65) are external components, the output signal may be provided through dedicated output connections, for example, HDMI ports, USB ports, or COMP outputs.
[0106] Various embodiments involve applying a post-processing process including a decoding process. As used in this application, the decoding process may encompass all or part of the processes performed on a received encoded video stream to produce, for example, an SDR signal. In various embodiments, such a decoding process includes one or more of the processes typically performed by an image or video decoder, for example, an H.264 / AVC (ISO / IEC 14496-10 - MPEG-4 Part 10, Advanced Video Coding) decoder being developed by a joint team of ITU-T and ISO / IEC experts known as JVET, an H.265 / HEVC (ISO / IEC 23008-2 - MPEG-H Part 2, High Efficiency Video Coding / ITU-T H.265) decoder, an H.266 / VVC (Versatile Video Coding) decoder, and an AV1 decoder or a VP9 decoder. The post-processing process encompasses all processes required to reconstruct HDR content from reconstructed SDR content and metadata.
[0107] It must be understood that when a drawing is presented as a flowchart, it also provides a block diagram of the corresponding device. Similarly, it must be understood that when a drawing is presented as a block diagram, it also provides a flowchart of the corresponding method / process.
[0108] The embodiments and aspects described herein may be implemented, for example, in a method or process, a device, a software program, a data stream, or a signal. Even if discussed in the context of a single form of the embodiment (e.g., discussed only as a method), embodiments of the features discussed may be implemented in other forms (e.g., a device or a program). A device may be implemented, for example, in suitable hardware, software, and firmware. Methods may be implemented, for example, in a processor, which generally refers to processing devices, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, computers, mobile phones, portable / personal digital assistants ("PDAs"), and other devices that facilitate the communication of information between end users.
[0109] References to "one embodiment," "one example," "one embodiment," or "one embodiment," as well as other variations thereof, imply that specific features, structures, properties, etc. described in relation to the embodiment are included in at least one embodiment. Accordingly, the phrases "in one embodiment," "in one example," "in one embodiment," or "in one embodiment," as well as the appearance of any other variations appearing throughout this application, do not necessarily all refer to the same embodiment.
[0110] Additionally, the present application may refer to "determining" various information. Determining information may include, for example, estimating information, calculating information, predicting information, retrieving information from memory, or, for example, obtaining information from another device, module, or user.
[0111] Additionally, the present application may refer to "accessing" various information. Accessing information may include, for example, receiving information, retrieving information (for example, from memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.
[0112] Additionally, the present application may refer to various types of information as "receiving." Receiving is intended to be a broad term, similar to "accessing." Receiving information may include, for example, accessing information, or retrieving information (for example, from memory). Furthermore, "receiving" is typically involved in some way during, for example, an operation of storing information, an operation of processing information, an operation of transmitting information, an operation of moving information, an operation of copying information, an operation of erasing information, an operation of calculating information, an operation of determining information, an operation of predicting information, or an operation of estimating information.
[0113] It will be understood that any of the following uses of " / ", "and / or", "at least one of", and "one or more of" are intended to encompass the selection of the first enumerated option (A) alone, the selection of the second enumerated option (B) alone, or the selection of both options (A, B), in cases such as, for example, "A / B", "A and / or B", "at least one of A and B", and "one or more of A and B". As another example, in the cases of “A, B and / or C” and “at least one of A, B and C” and “one or more of A, B and C”, such phrases are intended to encompass the selection of the first listed option (A) alone, or the selection of the second listed option (B) alone, or the selection of the third listed option (C) alone, or the selection of the first and second listed options (A and B) alone, or the selection of the first and third listed options (A and C) alone, or the selection of the second and third listed options (B and C) alone, or the selection of all three options (A, B and C). This may be extended to many items as described in this specification, as will be apparent to those skilled in the art of this specification and the relevant field.
[0114] As is apparent to those skilled in the art, the embodiments or examples may produce various signals formatted to convey information that may be stored or transmitted, for example. For example, the information may include instructions for performing a method, or data produced by one of the described embodiments or examples. For example, the signal may be formatted to convey an SDR image or video sequence and metadata of the described embodiment. Such a signal may be formatted, for example, as an electromagnetic wave (e.g., using the radio frequency portion of the spectrum) or as a baseband signal. Formatting may include, for example, encoding the SDR image or video sequence with metadata into an encoded stream and modulating the carrier into the encoded stream. The information conveyed by the signal may be, for example, analog or digital information. The signal may be transmitted over various different wired or wireless links, as is known. The signal may be stored on a processor-readable medium.
[0115] 도 7 This outlines an example of a preprocessing process.
[0116] An example of a preprocessing process is adapted to the SL-HDR1 system in NCL (Non Constant Luminance) mode. In this example, the preprocessing module (10) receives the original HDR content and generates SDR content and metadata. The preprocessing process is executed for each pixel of each image of the original HDR content by the processing module (100) included in the server (1). In the example of FIG. 7, the pixel contains three color components corresponding to the primary colors red (R), green (G), and blue (B), that is, the pixel is an RGB signal.
[0117] In step (701), the processing module (100) obtains an image of the original HDR content and derives mapping parameters from the image and, for example, its characteristics as described in standard SL-HDR1. The mapping parameters are transmitted to a client system (3) as metadata.
[0118] In step (702), the processing module (100) obtains a luminance (luma) component from the linear optical RGB signal of the image as follows: L' Deriving:
[0119] (Mathematical Formula 1)
[0120] Here is a transformation matrix, and γ is, for example, the same gamma factor as "2.4".
[0121] In step (703), the processing module (100) is a luma component L' By applying tone mapping to, the tone-mapped value as follows Get:
[0122] (Mathematical Formula 2)
[0123] Here is within the full range of luminance values and , is a lookup table representing a tone mapping function.
[0124] In step (704), the processing module (100) applies gamma to the linear optical RGB signal as follows:
[0125] (Mathematical Formula 3)
[0126] In step (705), the processing module (100) derives chrominance (chroma) components from the gamma-generated RGB signal as follows:
[0127] (Mathematical Formula 4)
[0128] Here and is a transformation matrix. is, for example, a reference 3x3 RGB-YUV conversion matrix (as specified in ITU-R Rec. BT.2020 or ITU-R Rec. BT.709 depending on the color space).
[0129] In step (706), the processing module (100) chroma components and By applying co-normalization and color correction to, the normalized and corrected chroma components as follows and Get:
[0130] (Mathematical Formula 5)
[0131] and It is clipped between two clipping values [CLIP_MIN;CLIP_MAX] (e.g., clipped within [CLIP_MIN=-512; CLIP_MAX=511]).
[0132] corresponds to a color correction function, and below ColorCorrection(y) It is called a color correction function. ColorCorrection(y) An example of this can be derived, for example, from Section 7.2.3.2 of document ETSI TS 103 433-1 v1.3.1. In this document, the color correction function is n Dogs' two-ples (x[i],y[i]) It is expressed as a set of, and below 초기 투플들 It is called, and in one embodiment, n = 6 and i is an integer value within [0;n-1].
[0133] In step (707), the processing module (100) obtains the tone-mapped luminance value Tone-mapped luminance values corrected as follows by applying chroma injection Get:
[0134] (Mathematical Formula 6)
[0135] In step (708), the processing module (40) processes the luminance and chroma values and Converts to a given output format. Step (708) is the chroma components and Eh, for example, the same value as "512" midsample A substep for adding, optionally, a substep for downsampling chroma components that compresses the signal by reducing the number of chroma samples, and optionally, lumina and chroma components representing pixels of the SDR signal It includes a sub-step of converting from full range values (when encoded with 10 bits, the YUV components range from "0" to "1023") to limited range values (the Y components range from "64" to "940", and the UV components range from "64" to "960") to obtain. The purpose of step (708) is, for example, to convert a full range YUV444 signal into a limited range YUV420 signal.
[0136] Sometimes, for certain HDR RGB values, the generated SDR chroma components and It is higher than CLIP_MAX or lower than CLIP_MIN, and accordingly, is clipped to their maximum possible value (i.e., CLIP_MAX) or their minimum possible value (i.e., CLIP_MIN). This clipping generates reconstruction errors in the HDR reconstruction signal on the client system side. To eliminate clipping of SDR chroma components, and silver By reducing the coefficient matrix or color correction function ColorCorrection(y) (in other words, It can be lowered by reducing ).
[0137] The method proposed below in relation to Fig. 9 is a color correction function ColorCorrection(y) Using, while maintaining saturation and hue consistency and Removes clipping of.
[0138] 도 8 Figure 8 schematically illustrates an example of a post-processing process. The process of Figure 8 is executed by the processing module (100) when the processing module (100) implements the post-processing module (34) and, more specifically, the SDR-HDR reconstruction step (34C). The reconstruction process is applied to each pixel of the decoded SDR content generated by the decoding module (32). The reconstruction process of Figure 8 follows, for example, the pre-processing processes of Figure 7. Thus, the signal output by the pre-processing process is the input signal of the reconstruction process. Thus, the reconstruction process receives a limited range YUV420 signal.
[0139] In step (801), the processing module (100) receives the received YUV420 signal as a full-range YUV444 signal. Convert to (the reverse process of step (708)).
[0140] After conversion, the processing module (100) chroma components and Centered on, the chroma components at the center and Obtains. Placing it as the center is performed as follows:
[0141]
[0142] Here midsample It is, for example, the same as "512".
[0143] In step (802), the processing module (100) applies chroma injection correction to the luminance component as follows:
[0144]
[0145] Here, parameters a and bIn section 7.2.4 of the document ETSI TS 103 433-1 v1.3.1 mu 0 and mu 1 It is defined as such, and max(x,y) takes the maximum value of x and y.
[0146] Luma ingredient ...is then clipped into [0; 1023] Creates.
[0147] In step (803), the processing module (100) is a luma component By applying inverse tone mapping to the luminance component L' Derives:
[0148]
[0149] In step (804), the processing module (100) has the chroma components at the center as follows: and Apply inverse color correction to:
[0150]
[0151] Note that it can be noted.
[0152] In step (805), the processing module (100) calculates the intermediate RGB signal as follows:
[0153]
[0154] In step (806), the processing module (100) processes the intermediate RGB signal cast L' Scale to:
[0155]
[0156] In step (807), the processing module (100) regenerates a linear light signal from the scaled RGB signal:
[0157]
[0158] In step (808), the processing module (100) converts the linear optical signal into a desired output format.
[0159] 도 9 This schematically illustrates an example of a chroma clipping limiter process.
[0160] The main intention of this method is twofold:
[0161] 1. Avoiding SDR chroma component clipping while preserving tone:
[0162] To avoid clipping, U (i.e., ) or V(i.e., ) One or both of the components are damping values for U UDivMax Attenuation value for V by and / or VDivMax If degradation by is required, both U and V components have the same damping value UVDivMax , that is, it must be degraded by the following maximum damping value: UVDivMax = MAX( UDivMax , VDivMax This ensures that the tones of the original HDR content are preserved. Color correction function ColorCorrection(y) go and Since it is applied simultaneously to both components, the damping value UVDivMax is (at step (706)) and Color correction function when calculating ColorCorrection(y) It applies to.
[0163] Color correction function ColorCorrection(y) (in other words, Modifying ) is to ensure accurate HDR reconstruction, using an appropriate color correction function of step (804). It needs to be compensated with the same amount of correction. Therefore, the color correction function ColorCorrection(y) (in other words, Tuples describing the form are transmitted to the post-processing module (34) from the metadata transmitted by the server (1) to the client system (3).
[0164] 2. Maintain SDR saturation as much as possible:
[0165] Maximum attenuation value (i.e., maximum color correction amount) UVDivMax )this ColorCorrection(y) When applied to all points of the function, there is a risk of unnecessarily lowering the saturation of chroma components across the entire luminance range, even if correction is needed for only a small portion of the luminance range. To avoid unnecessarily lowering saturation, the color correction function ColorCorrection(y) The luminance range of is a finite number of partial luminance ranges n It is segmented as. When processing "10"-bit SDR content, the maximum number of partial luminance ranges "n" is "1023", that is, each value of y is a specific color correction function ColorCorrection(y) It can have a value.
[0166] Each partial luminance range i ( i = [0; n At -1]), damping values UDivMax[i] , VDivMax[i] and UVDivMax[i] is calculated. Maximum attenuation value (i.e., maximum color correction amount) UVDivMax all damping values UVDivMax[i] It is the maximum value.
[0167] Maximum color correction amount UVDivMax The resaturation factor for, the resaturation factor Resaturation[i] = UVDivMax / UVDivMax[i] (At this time, i = [0; n By calculating [-1], it can be applied to each partial luminance range. This potentially allows for re-saturation of each partial luminance range while still avoiding clipping of UV components in these partial luminance ranges.
[0168] The respective boundaries of two consecutive partial luminance ranges are the color correction function ColorCorrection(y) expressing n initial tuples ( x[i], y[i] It is assigned to one of the following (for SL-HDR1): n = 6). Resaturation factor applicable at these boundaries ResaturationFrontier[j] (At this time, j = [0.. n -2]Im) are the resaturation factors of two consecutive ranges surrounding these boundaries Resaturation [i] It is the minimum value.
[0169] Next, the color correction factor that can be applied at each boundary is calculated as ColorCorrectionFrontier[j]=UVDivMax / ResaturationFrontier[j].
[0170] Finally, color correction factors at the boundaries ColorCorrectionFrontier[j] is a color correction function ColorCorrection(y) It is used to modify.
[0171] The above-mentioned process, described in detail below in relation to Fig. 9, for each partial luminance range:
[0172] UV clipping is avoided while preserving color tone;
[0173] It ensures that saturation is maintained as much as possible.
[0174] The method of FIG. 9 is executed on the current image after step (706) during the pre-processing process of FIG. 7 by the processing module (100) of the server (1).
[0175] In step (901), the processing module (100) [requires] the entire range of luminance values (i.e., [0 .. 1023]). n+1 Segmented into several partial luminance ranges.
[0176] The respective boundary between two consecutive partial luminance ranges is the color correction function ColorCorrection() Initial tuples representing (x[i], y[i]) One of the given x[i] Corresponds to coordinates. In the example of SL-HDR1, n+1 = 7 partial luminance ranges and n = 6 boundaries are defined, and this is a color correction function ColorCorrection(y) that enables the definition of n = 6 initial tuples (x[i], y[i]) Corresponds to. In some cases, "6" initial tuples (x[i], y[i]) It has default values. For example, x[i] The values can be evenly distributed across the "1024" values of the entire range of luminance values. For example, x [0] = 146, x [1] = 292, x [2] = 438, x [3] = 584, x [4] = 730, x [5] = 876.
[0177] Optionally, for example, from the analysis of the current image to be pre-processed (for example, from the luminance histogram of the current image), n Different mappings of the boundaries of partial luminance ranges can be derived. These mappings can be dynamic for each image, or static for all images belonging to a scene (a scene is defined by two scene cuts at its ends).
[0178] y[i] The values are default values y_default It has, that is, y [0] = y [1] = y [2] = y [3] = y [4] = y [5] = y_default am.
[0179] In the case of SL-HDR1, color correction function ColorCorrection(y) Is sgf_x[i] and sgf_y[i] It is represented using up to six 8-bit tuples named, and accordingly, the range is "0" to "255". Thus, specific SL-HDR1 values can be, for example, as follows: sgf_x [0] = 36, sgf_x [1] = 73, sgf_x [2] = 109, sgf_x [3] = 146, sgf_x [4] = 182, sgf_x [5] = 219, and sgf_y [ i ] = 128, at this time, i is within [0..5]. Subsequently, x [ i ] and y [ i ] for larger ranges such as the entire luminance range [0;1024] sgf_x [ i ] and sgf_y [ i Each can be derived from ]
[0180] In step (902), the processing module (100) estimates attenuation values for chroma components within each partial luminance range, said attenuation values degrade the chroma components to avoid clipping of said components. In other words, the processing module (100) estimates attenuation values for component U UDivMax[i] , damping values for component V VDivMax[i] , and i = 0 to n Maximum damping value for UVDivMax[i] Estimates.
[0181] 도 11 It schematically illustrates the process for determining the attenuation values for chroma components within each partial luminance range.
[0182] In step (9020), the processing module (100) is "0" to n of jFor each possible value of, set the damping values UDivMax[j] and VDivMax[j] to "1", the intermediate damping values UDivCur and VDivCur to "1", and the variable i Initializes to "0".
[0183] In step (9021), the processing module (100) is, i value NbPixels Determines whether it is the same as, where, NbPixels represents the number of pixels in the current image to be pre-processed. In step (9021), the processing module (100) of the current image i The component values of the i-th pixel Gets.
[0184] i < NbPixels In this case, step (9022) follows step (9021).
[0185] In step (9022), the processing module (100) determines the partial luminance range (identifier) to which the current pixel belongs. j Determines (identified by). In one embodiment, partial luminance range identifier j is determined as follows:
[0186]
[0187] Here, INT( x )Is x Taking an integer value of, FullRangeMaxValue is the maximum value of the entire range of luminance values. In the current example, FullRangeMaxValue = 1023 and, n+ 1 = 7(color correction function ColorCorrection(y) Initial tuples defining (x[i], y[i]) It corresponds to the number of partial luminance ranges dependent on the number of
[0188] In step (9023), the processing module (100) determines the value of component U Compare to the maximum clipping value CLIP_MAX. In the current example of the embodiment, CLIP_MAX=511. If so, step (9024) follows step (9023). Otherwise, step (9026) follows step (9023).
[0189] In step (9024), the processing module (100) obtains an intermediate damping value for component U as follows. UDivCur Calculate:
[0190]
[0191] In step (9025), the processing module (100) determines the attenuation value for component U for the partial luminance range identified in step (9022) as follows. UDivMax[j] Calculate:
[0192] UDivMax[j] = max(UDivCur, UDivMax[j])
[0193] Step (9026) follows Step (9025).
[0194] In step (9026), the processing module (100) determines the value of component U Compare to the minimum clipping value CLIP_MIN. In the current example of the example, CLIP_MIN=-512. If so, step (9027) follows step (9026). Otherwise, step (9029) follows step (9026).
[0195] In step (9027), the processing module (100) obtains an intermediate damping value for component U as follows. UDivCur Calculate:
[0196]
[0197] In step (9028), the processing module (100) determines the attenuation value for component U for the partial luminance range identified in step (9022) as follows. UDivMax[j] Calculate:
[0198] UDivMax[j] = max(UDivCur, UDivMax[j])
[0199] In step (9029), the processing module (100) determines the value of the V component Compares to the maximum clipping value CLIP_MAX. If so, step (9030) follows step (9029). Otherwise, step (9032) follows step (9029).
[0200] In step (9030), the processing module (100) obtains an intermediate damping value for component V as follows. VDivCur Calculate:
[0201]
[0202] In step (9031), the processing module (100) determines the attenuation value for component V for the partial luminance range identified in step (9022) as follows. VDivMax[j] Calculate:
[0203] VDivMax[j] = max(VDivCur, VDivMax[j])
[0204] In step (9032), the processing module (100) determines the value of component V Compare to the minimum clipping value CLIP_MIN. In the current example of the example, CLIP_MIN=-512. If so, step (9033) follows step (9032). Otherwise, step (9035) follows step (9032).
[0205] In step (9033), the processing module (100) obtains an intermediate damping value for component V as follows. VDivCur Calculate:
[0206]
[0207] In step (9034), the processing module (100) determines the attenuation value for component V for the partial luminance range identified in step (9022) as follows. VDivMax[j] Calculate:
[0208] VDivMax[j] = max(VDivCur, VDivMax[j])
[0209] In step (9035), the variable i It is incremented by 1 unit.
[0210] i = NbPixels In this case, at step (9036), attenuation values for chroma components U and V are determined for each partial luminance range. For each partial luminance range, attenuation values for chroma components U and V are determined as follows:
[0211] UVDivMax[j] = MAX(UDivMax[j],VDivMax[j])
[0212] In the first variation of the process of FIG. 11, i Intermediate attenuation values calculated for at least one pixel adjacent to the i-th pixel UDivCur and VDivCur By calculating the weighted average, i Intermediate attenuation values of the nth pixel UDivCur and VDivCur Filtering is applied when calculating.
[0213] In the second variation of the process of FIG. 11, UDivCur and VDivCur The histogram of all different values is calculated. This includes some high values that may appear irregularly due to noise present in the current image. UDivCur and VDivCur It enables the detection of values. In such cases, high intermediate attenuation values corresponding to the noise UDivCur and VDivCur It is not necessary to apply this to every pixel. Therefore, starting from the highest bins, the intermediate attenuation values are obtained by counting the number of bins present in the histogram. UDivCur and VDivCur Consistent intermediate damping values by enforcing a fixed, predetermined minimum count UDivCur and VDivCur This can be estimated.
[0214] Returning to FIG. 9, in step (903), the processing module (100) determines the attenuation values for the chroma components U and V for each partial luminance range. UVDivMax[j] From global attenuation values for chroma components (i.e., maximum color correction amount) UVDivMax Deciding on:
[0215] UVDivMax = MAX( UVDivMaxPartial[j] ) and, at this time, j = [0;n].
[0216] In step (904), the processing module (100) has a resaturation factor for each partial luminance range as follows. Resaturation[j] Calculating:
[0217] Resaturation[j] = UVDivMax / UVDivMax[j], where j = [0;n].
[0218] The resaturation factor enables the maintenance of saturation in each partial luminance range while still avoiding clipping of the chroma components U and V in these partial luminance ranges (i.e., allowing resaturation).
[0219] In step (905), the processing module (100) represents, for each boundary between two consecutive partial luminance ranges, a value representing the minimum of the resaturation factors calculated for these two consecutive partial luminance ranges. ResaturationFrontier[j] ( j = [0; n Calculate -1]). As an example, nIf it is 6:
[0220] ResaturationFrontier [0] = MIN(Resaturation [0], Resaturation [1]);
[0221] ResaturationFrontier [1] = MIN(Resaturation [1], Resaturation [2]);
[0222] ResaturationFrontier [2] = MIN(Resaturation [2], Resaturation [3]);
[0223] ResaturationFrontier [3] = MIN(Resaturation [3], Resaturation [4]);
[0224] ResaturationFrontier [4] = MIN(Resaturation [4], Resaturation [5]);
[0225] ResaturationFrontier [5] = MIN(Resaturation [5], Resaturation [6]).
[0226] In step (906), the processing module (100) provides a final correction factor for each boundary between two consecutive partial luminance ranges as follows. ColorCorrectionFrontier[j] Calculating:
[0227] ColorCorrectionFrontier[j] = ResaturationFrontier[j] / UVDivMax, where j is within [0;n-1].
[0228] In step (907), the processing module (100) has a color correction function ColorCorrection(y) Initial tuples representing ( x[i], y[i] Each coordinate of ) y[i] The final correction factor corresponding to ColorCorrectionFrontier[] and multiplying:
[0229] y'[j] = y[j] * ColorCorrectionFrontier[j], where j is within [0;n-1].
[0230] Step (907) enables obtaining new tuples that prevent clipping of SDR chroma components while maintaining the saturation and preserving the hue of the derived SDR signal. Thus, Step (907) provides a new color correction function ColorCorrection'(y) To obtain the final correction factor ColorCorrectionFrontier[i] Initial tuples using ( x[i], y[i] The coordinates of ) y[i] It consists of modifying. Step (907) is at least one tuple ( x[i], y[i] The coordinates of ) y[i] Modify.
[0231] n Dog new tuples (y'[i], x[i]) (Here, i (is an integer value within [0;n-1]) is used in the second execution of this step (706), and the initial tuples in the metadata (y[i], x[i]) Instead, it is sent to the client system (3). The post-processing process is a function Initial tuples to derive (y[i], x[i]) Instead, new tuples (y'[i], x[i]) Except for the fact that this is used, it remains the same as the process described in relation to Fig. 8.
[0232] FIG. 12 illustrates the execution of the chroma clipping limiter process of FIG. 9 using an HDR test pattern composed of BT2020 primary and secondary colors.
[0233] In one embodiment of the chroma clipping limiter process, the process is in step (908) new tuples ( x[i],y'[i] Includes temporal stabilization of ).
[0234] In the first variation of step (908), temporal stabilization is a new color correction function ColorCorrection'(y) New tuples expressing ( x[i], y'[i] ) coordinates y'[i] It applies to. For example, [0; n Each within -1] i Regarding, the final parameter yfinal[i] Parameters calculated for the current image y'[i] and At least one parameter calculated for at least one preceding image y'[i] It can be calculated as the weighted average of.
[0235] In a second variation of step (908), temporal stabilization assumes that these parameters do not have fixed, predefined values, but have values derived from the analysis of the current image or the scene containing the current image, and the initial tuples (x[i], y[i]) coordinates x[j] It can be applied to ( j Is [0;n-1] (Inside).
[0236] 도 10a ... schematically illustrates the first example of a temporal stabilization process. Here, new tuples ( x[i] , y'[i] ) coordinates y'[i] Only the temporal stabilization of is considered. The exact same principle also applies to the coordinates x[i] It can be applied to the temporal stabilization of.
[0237] The main idea of temporal stabilization is coordinates over a predetermined period prior to the current time (i.e., in a predetermined set of images preceding the current image). y'[i] Collect each of the values, and these coordinates at the current time y'[j] Each filtered version yfinal[i] It is to convey.
[0238] In step (9081), the processing module (100) determines whether a scene cut is detected between the current image and the preceding images.
[0239] If a scene cut is detected, the processing module executes step (9083).
[0240] During step (9083), new tuples (x[i], y'[i]) The coordinates of y'[i] is initialized.
[0241] 도 13 It represents the details of step (9083).
[0242] In step (130), each coordinate y'[i] Regarding, size nbuf The configurable buffer is initialized. Buffer size nbuf is the current coordinates y'[i] filtered version of yfinal[i] Represents the number of consecutive images analyzed to calculate. Buffer size nbuf all coordinates y'[i] It may be the same or different. Each value of each buffer is initialized as described below:
[0243] y_buf [i][j] = y'[j] and, at this time, i is [0; nbuf It is within -1], j is [0; n It is within -1].
[0244] As you can see, here the variable i are the coordinates of consecutive images considered for temporal filtering y'[j] Enable parsing, and variables j는 Coordinates for the same image y'[j] Enables parsing.
[0245] In step (131), each parameter y'[j] For, the accumulated value representing all values in the corresponding buffer cum_ y'[j] is calculated by the processing module (100):
[0246] cum_ y'[j] = f( y_buf [i][j] ) and, at this time, iis [0; nbuf It is within -1], and j is [0; n It is within -1].
[0247] function f() It can be a simple sum, or a weighted sum that gives more weight to specific positions within the buffer.
[0248] For example, if the accumulated value is a simple sum of all coordinates, each coordinate Accumulated value for cum_y'[j] It is as follows:
[0249]
[0250] In step (132), the processing module (100) has an index representing the position of the current frame in the frame buffer. index Initialize to 0.
[0251] If no scene cut is detected, the processing module executes step (9082).
[0252] 도 14 represents the details of step (9082).
[0253] In step (140), the processing module (100) determines each parameter by the following y'[i] The cumulative value corresponding to cum_y'[j] Update:
[0254] cum_y'[j] buffer from y_buf[i][j] The oldest coordinates within y'[i] Subtract the value of. The oldest coordinates mentioned above are the buffer y_buf[i][j] internal location i = index It is located in. The subtraction may be a weighted subtraction or a simple subtraction of a combination between the oldest coordinate value and any of the subsequent ones;
[0255] Just now cum_y'[j] The last calculated coordinates received y'[i] Add the value of. The addition may be a weighted sum or a simple sum of combinations between the last calculated coordinate and any of the preceding ones.
[0256] In step (141), each coordinate y'[i] Regarding this, the processing module (100) is a location within the buffer i = index The last calculated coordinates y'[i] By inserting the buffer y_buf[i][j] Updates.
[0257] In step (142), the processing module (100) handles each coordinate y'[j] Filtered value for yfinal[j] Calculates. In one embodiment, filtering is the corresponding accumulated value cum_y'[j] The size of the corresponding buffer nbuf It consists of simple division by. In another embodiment, filtering is the corresponding accumulated value cum_y'[j] It is composed of division by the number of frames considered when calculating the above accumulated value.
[0258] For example, in the case where the accumulated value is a simple sum of all coordinates and the filtered value is the buffer size nbuf In the case of simple division by, all filtered values are calculated as follows:
[0259] cum_y'[j] = cum_y'[j] - y_buf [index][j] + y'[j];
[0260] y_buf [index][j] = y[j];
[0261] yfinal[j] = cum_y'[j] / nbuf;
[0262] At this time j is [0; n It is within -1].
[0263] In step (143), the processing module (100) index index Update as follows:
[0264] index = index +1 and, subsequently, index = nbuf In the case of, index = 0.
[0265] In one embodiment, the buffer size nbuf = 30.
[0266] 도 10bThis outlines a second example of a temporal stabilization process.
[0267] Compared to Fig. 10a, all steps are identical except for step (9081) which is replaced by step (9081bis).
[0268] In step (9081bis), the processing module determines whether the current image is the first image of the current content. If yes, step (9083) follows step (9081bis). Otherwise, step (9082) follows step (9081bis).
[0269] A number of embodiments have been described above. Features of these embodiments may be provided alone or in any combination. Additionally, embodiments may include one or more of the following features, devices, or aspects alone or in any combination across various claims and types:
[0270] A bitstream or signal comprising one or more of the described image data or video data, or variations thereof.
[0271] Generating, transmitting, receiving, or decoding a bitstream or signal containing one or more of the described image data or metadata, or variations thereof.
[0272] A server, camera, TV, set-top box, mobile phone, tablet, personal computer, or other electronic device performing at least one of the described embodiments.
[0273] A TV, set-top box, mobile phone, tablet, personal computer, or other electronic device that performs at least one of the described embodiments and displays the generated image (e.g., using a monitor, screen, or other type of display).
[0274] A TV, set-top box, mobile phone, tablet, personal computer, or other electronic device that tunes a channel to receive a signal including encoded images and metadata (e.g., using a tuner) and performs at least one of the described embodiments.
[0275] A TV, set-top box, mobile phone, tablet, or other electronic device that receives a signal including encoded images and metadata via public wireless communication (e.g., using an antenna) and performs at least one of the described embodiments.
[0276] A server, camera, mobile phone, tablet, personal computer, or other electronic device that tunes a channel for transmitting a signal including encoded images and metadata (e.g., using a tuner) and performs at least one of the described embodiments.
[0277] A server, camera, mobile phone, tablet, personal computer, or other electronic device that transmits a signal including encoded images and metadata via public wireless communication (e.g., using an antenna) and performs at least one of the described embodiments.
Claims
Claim 1 A method for modifying a color correction function intended to correct the initial chroma components of a current image represented by the initial luminance components and the initial chroma components in order to obtain corrected chroma components, wherein the color correction function is defined as a set of initial tuples including a first coordinate and a second coordinate, and the method comprises, for the current image, a step of segmenting a range of luminance values of the initial luminance components into partial luminance ranges—each frontier between two consecutive partial luminance ranges follows the first coordinate of one of the initial tuples—; a step of estimating attenuation values for the initial chroma components within at least one partial luminance range—each attenuation value degrades the initial chroma components to avoid clipping of the initial chroma components—; a step of determining a global attenuation value for the initial chroma components using the estimated attenuation values; and, based on the global attenuation value and the attenuation value associated with the partial luminance range, each partial A method comprising: a step of calculating a factor for each partial luminance range that enables maintaining saturation in the luminance range; a step (905) of calculating a minimum factor representing the minimum value among the factors calculated for each of the two consecutive partial luminance ranges for each boundary between two consecutive luminance ranges; a step of calculating a final correction factor for each boundary between two consecutive partial luminance ranges based on the minimum factor corresponding to the boundary and the global attenuation value; and a step (907) of modifying at least one of the second coordinates of the initial tuples using the final correction factors to obtain new tuples that define a new color correction function. Claim 2 The method of claim 1, wherein the method comprises temporal stabilization of the new tuples based on filtering using the new tuples calculated for the images preceding the current image in a sequence of images. Claim 3 A method according to paragraph 2, wherein the temporal stabilization is performed on a set of images of a sequence of images belonging to the same scene between two scene cuts. Claim 4 A method for tone mapping an image including initial luminance components and initial chroma components, comprising: a step of modifying a color correction function using the method of claim 1, 2, or 3; and a step of applying color correction to the initial chroma components based on the new color correction function. Claim 5 A method for distributing images of the same content in HDR and SDR formats to a client system, comprising: a step of applying the method of claim 1, 2 or 3; and a step of transmitting data representing the new tuples in the form of metadata to the client system. Claim 6 A device for modifying a color correction function intended to correct the initial chroma components of a current image represented by the initial luminance components and the initial chroma components in order to obtain corrected chroma components, wherein the color correction function is defined by a set of initial tuples including a first coordinate and a second coordinate, and the device comprises an electronic circuit, wherein the electronic circuit comprises: segmenting a range of luminance values of the initial luminance components into partial luminance ranges—each boundary between two consecutive partial luminance ranges follows the first coordinate of one of the initial tuples—; estimating attenuation values for the initial chroma components within at least one partial luminance range—each attenuation value degrades the initial chroma components to avoid clipping of the initial chroma components—; determining a global attenuation value for the initial chroma components using the estimated attenuation values determined for each partial luminance range; and the attenuation associated with the global attenuation value and the partial luminance range A device configured to calculate a factor for each partial luminance range that enables saturation to be maintained in each partial luminance range based on a value; to calculate a minimum factor representing the minimum value among the factors calculated for each of the two consecutive partial luminance ranges for each boundary between two consecutive luminance ranges; to calculate a final correction factor for each boundary between two consecutive partial luminance ranges based on the minimum factor and the global attenuation value corresponding to the boundary; and to modify at least one of the second coordinates of the initial tuples using the final correction factors to obtain new tuples that define a new color correction function. Claim 7 In claim 6, the device is further configured to apply temporal stabilization of the new tuples, wherein the electronic circuit is based on filtering that uses the new tuples calculated for the images preceding the current image in a sequence of images. Claim 8 A device comprising an electronic circuit portion configured to apply the temporal stabilization in a set of images of a sequence of images belonging to the same scene between two scene cuts, in claim 7. Claim 9 A device for tone mapping an image including an initial luminance component and an initial chroma component, comprising: a device according to claim 6, 7, or 8; and an electronic circuit configured to apply color correction to the initial chroma component based on a new color correction function. Claim 10 A device for distributing images of the same content in HDR and SDR formats to a client system, comprising: a device according to claim 6, 7 or 8; and an electronic circuit configured to transmit data representing the new tuples in the form of metadata to the client system. Claim 11 A non-transient information storage medium storing program code instructions for implementing a method according to any one of paragraphs 1 to 3. Claim 12 delete Claim 13 delete Claim 14 delete