Methods, apparatus, computer programs, and signals for avoiding chroma clipping in tone mappers by utilizing flexible lightness, saturation, and hue preservation.
By defining and using the color correction and tone mapping function parameters in the SL-HDR1 system, the problem of SDR chromaticity component clipping was solved, preserving the hue and saturation of the SDR signal and achieving a high-quality tone mapping process.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- INTERDIGITAL CE PATENT HOLDINGS SAS
- Filing Date
- 2024-10-16
- Publication Date
- 2026-06-02
AI Technical Summary
In existing SL-HDR1 systems, when reconstructing HDR signals from SDR signals, the SDR chromaticity components are easily clipped, resulting in color inconsistencies and reduced saturation.
By defining the parameters of the first color correction function and tone mapping function, and using metadata signals to inform these parameters, chromaticity component clipping is avoided and saturation is maintained. Piecewise saturation gain functions and perceptual uniform signal conversion are used to calculate the minimum factor and global attenuation value to correct the tone mapping process.
This effectively avoids SDR chromaticity component clipping, maintains the hue and saturation of the SDR signal, and ensures the accuracy and quality of the tone mapping process.
Smart Images

Figure CN122139356A_ABST
Abstract
Description
Technical Field
[0001] At least one embodiment in this example relates generally to the field of distributing HDR (High Dynamic Range) video using an SL-HDR1 system, and more specifically to a method, apparatus, and equipment for avoiding cropping of the U and V components of an SDR (Standard Dynamic Range) image while maintaining the saturation and hue of the SDR image as much as possible. Background Technology
[0002] Recent advances in display technology have begun to allow for an extended dynamic range of color, brightness, and contrast in images to be displayed. Here, the term... image It refers to image content, which can be, for example, a video, a still image, or a graphic.
[0003] High Dynamic Range (HDR) video describes video with a dynamic range greater than that of Standard Dynamic Range (SDR) video. HDR video involves capture, production, content / encoding, and display. HDR capture and display enable brighter whites and deeper blacks. To accommodate this, the HDR encoding standard allows for higher maximum luminance.
[0004] While technically "HDR" strictly refers to the ratio between maximum and minimum brightness, the term "HDR video" is often understood to imply a wide color gamut.
[0005] Although many HDR display devices and image and video cameras capable of capturing images with increased dynamic range have emerged, the amount of available HDR content remains very limited. Furthermore, most current content delivery systems are designed for transmitting SDR content.
[0006] The standard SL-HDR1 (ETSI TS 103 433-1 V1.4.1) provides direct backward compatibility through the use of metadata, allowing HDR signals to be reconstructed from SDR video streams. One advantage of SL-HDR1 is that it allows the distribution of HDR content using existing SDR distribution networks and services. Furthermore, SL-HDR1 allows for HDR rendering on HDR devices and SDR rendering on SDR devices using a single-layer video stream.
[0007] In some typical SL-HDR1 systems, the luminance component 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 by applying a tone mapping operation to the luminance of the original HDR signal (i.e., HDR luminance) calculated from the gamma-rated version of the original HDR RGB components. The chromaticity component of the SDR signal (i.e., SDR chromaticity) is calculated based on the gamma-rated version of the original HDR RGB components and a color correction factor that depends on the calculated SDR luminance.
[0008] In some cases, the generated SDR chromaticity components are cropped to their maximum possible value. When reconstructing an HDR signal from an SDR signal, cropping is a direct source of reconstruction error.
[0009] To eliminate SDR chromaticity component clipping, some methods modify the saturation of the calculated SDR chromaticity components. However, these methods produce extremely desaturated SDR images that are no longer consistent with the original HDR signal in terms of color (i.e., hue).
[0010] The desired outcome is to overcome the above shortcomings.
[0011] Of particular interest is the definition of a method that allows for the avoidance of SDR chromaticity component clipping while maintaining saturation and preserving the hue of the derived SDR signal. Summary of the Invention
[0012] In a first aspect, one or more embodiments of this embodiment provide a method comprising: Obtain the first image within the first dynamic range; Obtain the parameters that define the first color correction function to prevent the cropping of the color components of the second image caused by the tone mapping of the first image in the second dynamic range; In the metadata, a signal is sent to define the parameters of the tone mapping function, which are derived from the parameters of the first color correction function. The metadata signals the definition of the parameters for the second color correction function, which are obtained from default values; and The third image within the second dynamic range is obtained by signaling the parameters of the tone mapping function and the second color correction function together with the metadata in the video data.
[0013] In an embodiment, the parameters defining the tone mapping function define a fine-tuning function, and obtaining the parameters defining the tone mapping function includes converting the parameters defining the first color correction function from a gamma signal to a perceived uniform signal.
[0014] In an embodiment, the parameters defining the first color correction function are the points defining the piecewise saturation gain function, and obtaining the parameters defining the tone mapping function includes interpolating the piecewise saturation gain function based on these points.
[0015] In this embodiment, obtaining the parameters defining the first color correction function includes: The luminance value range of the initial luminance component of the first image is divided into partial luminance ranges, and each boundary between two consecutive partial luminance ranges depends on the first coordinate of one of the initial tuples that defines the initial color correction function; Estimate the attenuation value of the initial chromaticity component of the first image within at least one portion of the luminance range, each attenuation value allowing for a reduction in the initial chromaticity component to avoid cropping of the initial chromaticity component; Use the estimated attenuation value to determine the global attenuation value of the initial chromaticity component; Based on the global attenuation value and the attenuation value associated with the partial luminance range, calculate the factor that allows saturation to be maintained in each partial luminance range; For each boundary between two consecutive luminance ranges, calculate the minimum factor, which represents the minimum value of the factors calculated for these two consecutive luminance ranges. Calculate the 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 Modify the second coordinate of at least one of the initial tuples using the final correction factor to obtain a new tuple, which is the parameter defining the first color correction function.
[0016] In this embodiment, the parameters for defining the second color correction function are also obtained from the parameters for defining the first color correction function.
[0017] In the embodiments, the parameters used to calculate the tone mapping function and the parameters of the second color correction function are defined such that the level of use of the parameters of the first color correction function depends on a single value.
[0018] In a second aspect, one or more embodiments of this example provide an apparatus including an electronic circuit system configured to: Obtain the first image within the first dynamic range; Obtain the parameters that define the first color correction function to prevent the cropping of the color components of the second image caused by the tone mapping of the first image in the second dynamic range; The parameters of the tone mapping function are signaled in the metadata, and the parameters of the tone mapping function are derived from the parameters of the first color correction function. The metadata signals the definition of the parameters for the second color correction function, which are obtained from default values; and The third image within the second dynamic range is obtained by signaling the parameters of the tone mapping function and the second color correction function together with the metadata in the video data.
[0019] In an embodiment, the parameters defining the tone mapping function define a fine-tuning function, and obtaining the parameters defining the tone mapping function includes converting the parameters defining the first color correction function from a gamma signal to a perceived uniform signal.
[0020] In an embodiment, the parameters defining the first color correction function are the points defining the piecewise saturation gain function, and obtaining the parameters defining the tone mapping function includes interpolating the piecewise saturation gain function based on these points.
[0021] In this embodiment, obtaining the parameters defining the first color correction function includes: The luminance value range of the initial luminance component of the first image data is divided into partial luminance ranges, and each boundary between two consecutive partial luminance ranges depends on the first coordinate of one of the initial tuples that define the initial color correction function; Estimate the attenuation value of the initial chromaticity component of the first image data within at least one partial luminance range, each attenuation value allowing for a reduction in the initial chromaticity component to avoid cropping of the initial chromaticity component; Use the estimated attenuation value to determine the global attenuation value of the initial chromaticity component; Based on the global attenuation value and the attenuation value associated with the partial luminance range, calculate the factor that allows saturation to be maintained in each partial luminance range; For each boundary between two consecutive luminance ranges, calculate the minimum factor, which represents the minimum value of the factors calculated for these two consecutive luminance ranges. Calculate the 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 Modify the second coordinate of at least one of the initial tuples using the final correction factor to obtain a new tuple, which is the parameter defining the first color correction function.
[0022] In this embodiment, the parameters for defining the second color correction function are also obtained from the parameters for defining the first color correction function.
[0023] In the embodiments, the parameters used to calculate the tone mapping function and the parameters of the second color correction function are defined such that the level of use of the parameters of the first color correction function depends on a single value.
[0024] In a third aspect, one or more embodiments of this embodiment provide a non-transitory information storage medium that stores program code instructions for implementing the method according to the first aspect.
[0025] In a fourth aspect, one or more embodiments of this embodiment provide a computer program that includes program code instructions for implementing the method according to the first aspect.
[0026] In the fifth aspect, one or more embodiments of this embodiment provide a signal generated by the method of the first aspect or by the device of the second aspect. Attached Figure Description
[0027] Figure 1 Illustrated example of the SL-HDR1 system; Figure 2 The illustration schematically shows details of the preprocessing module of the SL-HDR1 system; Figure 3 The illustration schematically shows details of the post-processing module of the SL-HDR1 system; Figure 4 The illustrations schematically depict examples of hardware architectures for processing modules capable of implementing various aspects and embodiments. Figure 5 The diagram illustrates a block diagram of an example of a first system that implements various aspects and embodiments; Figure 6 The diagram illustrates a block diagram of an example of a second system that implements various aspects and embodiments; Figure 7 An example of a preprocessing procedure is illustrated schematically. Figure 8 An example of a post-processing procedure is illustrated schematically. Figure 9 The illustration schematically depicts a first embodiment of the color-cutting limiter process; Figure 10 The illustration schematically shows details of a first embodiment of the color-cutting limiter process; Figure 11 A second embodiment of the color-cutting limiter process is schematically illustrated; Figure 12 Details of a second embodiment of the illustrated color-cutting limiter process; and... Figure 13 The illustration shows a second detail of a second embodiment of the color cutting limiter process. Detailed Implementation
[0028] Various aspects and embodiments are described below in the context of the SL-HDR1 system.
[0029] Figure 1 An example of the SL-HDR1 system is shown in the diagram.
[0030] Figure 1 The SL-HDR1 system includes a server 1 and a client system 3 that communicate via a communication network 2. The client system 3 connects to a first display device 5 (referred to as...) capable of displaying HDR content via a communication link 4. HDR display devices ), and uses communication link 6 to connect to a second display device 7 (referred to as ), capable of displaying SDR content. SDR display devices ).
[0031] Server 1 obtains the raw HDR content and generates SDR encoded signals and metadata.
[0032] Client system 3 receives SDR encoded signals and metadata and generates decoded SDR content, and reconstructs HDR content based on the decoded SDR content and metadata.
[0033] Server 1 includes information about Figure 2 The preprocessing module, encoding module 12, and transmission module 14 are described in detail.
[0034] Preprocessing module 10 is used in the following text about Figure 7 , Figure 9 , Figure 10 , Figure 11 , Figure 12 and Figure 13 The described process generates SDR content and metadata based on the original HDR content.
[0035] Encoding module 12 encodes the SDR content and metadata. Encoding module 12 generates, for example, an encoded video stream conforming to video compression standards HEVC (ISO / IEC 23008-2 – MPEG-H Part 2, High Efficiency Video Codec / ITU-T H.265), AVC (ISO / IEC 14496-10 – MPEG-4 Part 10, Advanced Video Codec), or VVC (ISO / IEC 23090-3 – MPEG-I: Universal Video Codec (VVC) / ITU-T H.266). Metadata is implemented, for example, by SEI messages, such as SEI messages registered via user data (as detailed in Annex A of the SL-HDR1 standard ETSI TS 103 433-1 V1.4.1) and / or SL-HDR information via Master Display Color Quantity (MDCV) SEI messages.
[0036] When encoded, the encoded video stream is transmitted from the transmission module 14 to the client system 3 via the communication network 2.
[0037] Client system 3 includes receiving module 30, decoding module 32, and about Figure 3 Post-processing module 34 is described in detail.
[0038] The receiving module 30 receives an encoded video stream that includes encoded SDR content and metadata.
[0039] Decoding module 32 decodes the encoded video stream to reconstruct the SDR content and metadata. No further processing is applied to the SDR content directly transmitted to the SDR display device 7.
[0040] Post-processing module 34 application about Figure 8 The described process reconstructs HDR content based on decoded SDR content and metadata.
[0041] Figure 2 The details of the preprocessing module 10 are schematically illustrated.
[0042] The preprocessing module 10 includes a conversion module 10A and an HDR to SDR signal decomposition module 10C.
[0043] The HDR to SDR signal decomposition module 10C requires a linear light RGB signal at its input. The conversion module 10A adapts the format of the input required by the HDR to SDR signal decomposition module 10C, that is, it converts the input HDR video, which may have any format (OETF, YUV, ...), into a linear light RGB signal if needed.
[0044] HDR to SDR signal decomposition module 10C usage information Figure 7The reversible process described in steps 701 to 708 generates an SDR backward-compatible version of the original HDR signal, which guarantees high-quality reconstruction of the HDR signal.
[0045] In this embodiment, the preprocessing module 10 includes an optional color gamut mapping module 10B. The color gamut mapping module 10B can be used when the original HDR signal and SDR signal are represented using different color gamuts or color spaces.
[0046] Figure 3 The details of the post-processing module 34 are schematically illustrated.
[0047] The post-processing module 34 includes an SDR to HDR reconstruction module 34C and a conversion module 34A.
[0048] The SDR to HDR reconstruction module 34C receives the decoded SDR signal and metadata, and reverses the process of the HDR to SDR signal decomposition module 10C, as described in the relevant section. Figure 8 The HDR signal is reconstructed as described in steps 801 to 807.
[0049] Conversion module 34A reconstructs the HDR signal to adapt its format to the target system (e.g., set-top box (STB), connected TV, etc.) connected to client system 3. Conversion module 34A is applied through... Figure 8 The process described in step 808.
[0050] 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 performs the process of inverting the color gamut mapping module 10B.
[0051] Figure 4The illustration schematically depicts an example of the hardware architecture of the processing module 100, which is included in a server 1, a preprocessing module 10, an encoding module 12 or a transmission module 14 or a client system 3, a receiving module 30, a decoding module 32 or a postprocessing module 34, and is capable of implementing different aspects and embodiments. Processing module 100 includes the following components connected via communication bus 1005: a processor or CPU (Central Processing Unit) 1000, which, as a non-limiting example, encompasses one or more microprocessors, general-purpose computers, special-purpose computers, and processors based on multi-core architectures; random access memory (RAM) 1001; read-only memory (ROM) 1002; a storage unit 1003, which may include non-volatile memory and / or volatile memory, including but not limited to electrically erasable 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 memory, disk drives, and / or optical disk drives, or storage media readers such as SD (Secure Digital) card readers and / or hard disk drives (HDDs) and / or network-accessible storage devices; and at least one communication interface 1004 for exchanging data with other modules, devices, systems, or equipment. Communication interface 1004 may include, but is not limited to, a transceiver configured to transmit and receive data via communication network 2. The communication interface 1004 may include, but is not limited to, a modem or a network card.
[0052] For example, the communication interface 1004 enables the processing module 100 to: receive raw HDR content and output an encoded video stream including encoded SDR content and metadata when the processing module 100 is included in the server 1; receive raw HDR content and output SDR content with metadata when the processing module 100 is included in the preprocessing module 10; receive SDR content and metadata and output an encoded video stream representing the SDR content and metadata when the processing module 100 is included in the encoding module 12; and receive and transmit the encoded video stream when the processing module is included in the transmission module 14. When the processing module 100 is included in the client system 3, it receives the encoded video stream from the server 1 and outputs the corresponding SDR and / or HDR content; when the processing module 100 is included in the receiving module 30, it receives the encoded video stream from the server 1 and forwards the encoded video stream to the decoding module 32; when the processing module 100 is included in the decoding module 32, it receives the encoded video stream from the receiving module 30 and outputs the reconstructed SDR content and metadata; when the processing module 100 is included in the post-processing module 34, it receives the reconstructed SDR content and metadata and outputs the reconstructed HDR content.
[0053] Processor 1000 is capable of executing instructions loaded into RAM 1001 from ROM 1002, external memory (not shown), storage medium, or communication network. When processing module 100 is powered on, processor 1000 is capable of reading instructions from RAM 1001 and executing them. These instructions form a computer program that, for example, causes processor 1000 to implement... Figure 7 , Figure 9 , Figure 11 , Figure 12 and Figure 13 The described preprocessing procedure, or about Figure 8 The post-processing procedure described, or both.
[0054] All or some of the algorithms and steps of the process can be implemented in software by a programmable machine such as a DSP (Digital Signal Processor) or microcontroller executing a set of instructions, or in hardware by a machine or dedicated component such as an FPGA (Field Programmable Gate Array) or ASIC (Application-Specific Integrated Circuit). DSPs, microcontrollers, FPGAs, ASICs, and processors are all examples of electrical circuit systems.
[0055] Figure 5 The diagram illustrates a block diagram of an example of a system A suitable for implementing server 1, preprocessing module 10, encoding module 12 and / or transmission module 14, and in which various aspects and embodiments of system A are implemented.
[0056] System A may be embodied as a device including the various components or modules described above, and configured to implement one or more aspects and embodiments described in this document. 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. Components of System A may be embodied individually or in combination in a single integrated circuit (IC), multiple ICs, and / or discrete components. For example, in at least one embodiment, System A includes a processing module 100 that implements a preprocessing module 10, an encoding module 12, or a transmission module 14, or any combination of these modules. In various embodiments, System A is communicatively 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.
[0057] Inputs to the processing module 100 may be provided by various input modules as indicated in box 60. Such input modules include, but are not limited to: (i) a radio frequency (RF) module that receives, for example, RF signals transmitted over the air 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. Figure 5 Other examples not shown include composite video.
[0058] In various embodiments, the input module of block 60 has associated corresponding input processing elements as known in the art. For example, the RF module may be associated with elements suitable for performing the following operations: (i) selecting a desired frequency (also known as selecting a signal, or bandfinding a signal to a certain frequency band); (ii) downconverting the selected signal; (iii) bandfinding it again to a narrower frequency band to select, for example, a signal band, which in some embodiments may be referred to as a channel; (iv) demodulating the downconverted and bandfinded signal; (v) performing error correction; and (vi) performing demultiplexing to select a desired data packet stream. The RF module in various embodiments includes one or more elements for performing these functions, such as a frequency selector, signal selector, bandfinder, channel selector, filter, downconverter, demodulator, error corrector, and demultiplexer. The RF section may include a tuner that performs various of these functions, including, for example, downconverting a received signal to a lower frequency (e.g., an intermediate frequency or near-baseband frequency) or downconverting it to baseband. Various embodiments rearrange the order of the above (and other) components, remove some of these components, and / or add other components that perform similar or different functions. Adding components may include inserting components between existing components, such as, for example, inserting amplifiers and analog-to-digital converters. In various embodiments, the RF module includes an antenna.
[0059] Additionally, the USB and / or HDMI modules may include corresponding interface processors for connecting System A to other electronic devices across USB and / or HDMI connections. It should be understood that various aspects of input processing (e.g., Reed-Solomon error correction) may be implemented, for example, within a separate input processing IC or processing module 100 as needed. Similarly, aspects of USB or HDMI interface processing may be implemented, as needed, within a separate interface IC or processing module 100. The demodulated, error-corrected, and demultiplexed stream is provided to processing module 100.
[0060] Various components of System A can be provided within an integrated housing. Within the integrated housing, the various components can be interconnected and transmit data therebetween using suitable connection arrangements, such as internal buses known in the art, including inter-IC (I2C) buses, wiring, and printed circuit boards. For example, in System A, processing module 100 is interconnected to other components of System A via bus 1005.
[0061] The communication interface 1004 of the processing module 100 allows system A to communicate on the communication network 2. The communication network 2 can be implemented, for example, in a wired and / or wireless medium.
[0062] In various embodiments, a wireless network, such as a Wi-Fi network (e.g., IEEE 802.11, where IEEE stands for Institute of Electrical and Electronics Engineers), is used to stream or otherwise provide data to System A. In these embodiments, the Wi-Fi signal is received via a communication network 2 suitable for Wi-Fi communication and a communication interface 1004. 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 use the RF connection of input box 60 to provide streaming data to System A. As indicated above, when System A is, for example, a camera, smartphone, or tablet computer, various embodiments provide data in a non-streaming manner. Additionally, various embodiments use wireless networks other than Wi-Fi, such as cellular networks or Bluetooth networks.
[0063] System A can use communication network 2 or bus 1005 to provide output signals to various output devices. For example, when implementing preprocessing module 10, system A uses bus 1005 or communication network 2 to provide output signals to encoding module 12. When implementing server 1, system A uses communication network 2 to provide SDR signals and metadata to client system 3.
[0064] Various implementations involve application preprocessing and / or encoding processes. As used in this application, the preprocessing or encoding process may encompass, for example, all or part of the process performed on a received HDR image or video stream to produce SDR content or encoded SDR content with metadata. In various embodiments relating to the encoding process, such a process includes one or more processes typically performed by a video encoder (e.g., an AVC encoder, HEVC encoder, VVC encoder, AV1 encoder, or VP9 encoder).
[0065] Figure 6The diagram is a block diagram of an example of a system B that implements client system 3, receiving module 30, decoding module 32 and / or post-processing module 34, and in which various aspects and embodiments of system B are implemented.
[0066] System B may be embodied as a device including the various components and modules described above, and configured to implement one or more aspects and embodiments described in this document and in the embodiments thereof.
[0067] Examples of such devices include, but are not limited to, various electronic devices such as personal computers, laptops, smartphones, tablets, digital multimedia set-top boxes, digital television receivers, personal video recording systems, and connected home appliances. Components or modules of System B may be embodied individually or in combination in a single integrated circuit (IC), multiple ICs, and / or discrete components. For example, in at least one embodiment, System B includes a processing module 100 that implements a receiving module 30, a decoding module 32, and a post-processing module 34, or any combination of these modules. In various embodiments, System B is communicatively 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.
[0068] The input to the processing module 100 can be obtained through, as already mentioned... Figure 5 The various input modules shown in box 60 of the description are provided.
[0069] Various components of System B can be provided within an integrated housing. Within the integrated housing, the various components can be interconnected and transmit data therebetween using suitable connection arrangements, such as internal buses known in the art, including inter-IC (I2C) buses, wiring, and printed circuit boards. For example, in System B, processing module 100 is interconnected to other components of System B via bus 1005.
[0070] The communication interface 1004 of the processing module 100 allows system B to communicate on the communication network 2. The communication network 2 can be implemented, for example, in a wired and / or wireless medium.
[0071] In various embodiments, a wireless network, such as a Wi-Fi network (e.g., IEEE 802.11, where IEEE stands for Institute of Electrical and Electronics Engineers), is used to stream or otherwise provide data to System B. In these embodiments, the Wi-Fi signal is received via a communication network 2 suitable for Wi-Fi communication and a communication interface 1004. 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 use the RF connection of input box 60 to provide streaming data to System B. As indicated above, various embodiments provide data in a non-streaming manner. Additionally, various embodiments use wireless networks other than Wi-Fi, such as cellular networks or Bluetooth networks.
[0072] System B can provide output signals to various output devices, including display 64 (corresponding to...). Figure 1 The display 64 includes a display device 5 or 7, a speaker 65, and other peripheral devices 66. Various embodiments of the display 64 may include one or more of the following: a touchscreen display, an organic light-emitting diode (OLED) display, a curved display, and / or a foldable display. The display 64 can be used in a television, tablet computer, laptop computer, cellular phone (mobile phone), or other device. The display 64 may also be integrated with other components (e.g., as in a smartphone) or standalone (e.g., an external monitor for a laptop computer). The display 64 is SDR or HDR content compatible. In various examples of embodiments, other peripheral devices 66 include one or more of the following: a standalone digital video disc (or digital universal disc) (DVR, used for both terms), a disc player, a stereo system, and / or a lighting system. Various embodiments use one or more peripheral devices 66, which provide functionality based on the output of system B. For example, a disc player performs the function of playing the output of system B.
[0073] In various embodiments, control signals communicate between System B and display 64, speaker 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 can be communicatively coupled to System B via dedicated connections through corresponding interfaces 61, 62, and 63. Alternatively, output devices can be connected to System B via communication interface 1004 using communication network 2. Display 64 and speaker 65 can be integrated into a single unit along with other components of System B in electronic devices such as, for example, televisions. In various embodiments, display interface 61 includes a display driver, such as, for example, a timing controller (TCon) chip.
[0074] Alternatively, for example, if the RF module of input 60 is part of a separate set-top box, the display 64 and speaker 65 can be separated from one or more other components. In various embodiments where the display 64 and speaker 65 are external components, the output signal can be provided via a dedicated output connection, including, for example, an HDMI port, a USB port, or a COMP output.
[0075] Various implementations involve post-processing and decoding processes. As used in this application, the decoding process can encompass, for example, all or part of the process performed on a received encoded video stream to generate an SDR signal. In various embodiments, such a decoding process includes one or more processes typically performed by an image or video decoder (e.g., an H.264 / AVC decoder, an H.265 / HEVC decoder, an H.266 / VVC decoder, and an AV1 or VP9 decoder). The post-processing process encompasses all the processes required to reconstruct HDR content based on the reconstructed SDR content and metadata.
[0076] When a diagram is presented as a flowchart, it should be understood that it also provides a block diagram of the corresponding apparatus. Similarly, when a diagram is presented as a block diagram, it should be understood that it also provides a flowchart of the corresponding method / process.
[0077] The embodiments and aspects described herein can be implemented, for example, in a method or process, apparatus, software program, data stream, or signal. Even if discussed only in the context of a single form of embodiment (e.g., discussed only as a method), embodiments of the features discussed can be implemented in other forms (e.g., apparatus or program). Apparatus can be implemented, for example, in suitable hardware, software, and firmware. Methods can be implemented, for example, in a processor, which generally refers to a processing device, including, for example, a computer, microprocessor, integrated circuit, or programmable logic device. Processors also include communication devices, such as, for example, computers, cellular phones, portable / personal digital assistants ("PDAs"), smartphones, tablet computers, and other devices that facilitate information communication between end users.
[0078] The references to "an embodiment" or "an embodiment" or "an implementation" or "an implementation" and other variations thereof mean that a particular feature, structure, characteristic, etc., described in connection with that embodiment is included in at least one embodiment. Therefore, the phrases "in an embodiment" or "in an embodiment" or "in an implementation" or "in an implementation" appearing throughout various places in this application, as well as the appearance of any other variations, do not necessarily all refer to the same embodiment.
[0079] Additionally, this application may involve "determining" various pieces of information. Determining information may include one or more of the following: estimated information, calculated information, predicted information, information retrieved from memory, or information obtained, for example, from another device, module, or from a user.
[0080] Furthermore, this application may involve “accessing” various information fragments. Accessing information may include one or more of the following: receiving information, retrieving information (e.g., from memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.
[0081] Additionally, this application may involve "receiving" various pieces of information. Like "accessing," receiving is intended to be a broad term. Receiving information may include, for example, accessing information or retrieving information (e.g., from memory) or more. Furthermore, "receiving" is generally referred to in one way or another during operations such as, for example, storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information.
[0082] It should be understood that, for example, in the cases of “A / B,” “A and / or B,” “at least one of A and B,” and “one or more of A and B,” the use of any of the following “ / ,” “and / or,” and “at least one of…” or “one or more of…” is intended to cover selecting only the first listed option (A), or only the second listed option (B), or both options (A and B). As another example, in the cases of “A, B, and / or C,” “at least one of A, B, and C,” and “one or more of A, B, and C,” this wording is intended to cover selecting only the first listed option (A), or only the second listed option (B), or only the third listed option (C), or only the first and second listed options (A and B), or only the first and third listed options (A and C), or only the second and third listed options (B and C), or all three options (A, B, and C). As will be apparent to those skilled in the art and related fields, this can be extended to the many items listed.
[0083] As will be apparent to those skilled in the art, embodiments or implementations can generate a wide variety of signals formatted to carry information that can, for example, be stored or transmitted. The information may include, for example, instructions for performing a method, or data generated by one of the described embodiments or implementations. For example, a signal may be formatted to carry an SDR image or video sequence and metadata of a 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, for example, include encoding the SDR image or video sequence along with metadata into a coded stream, and modulating a carrier wave with that coded stream. The information carried by the signal may be, for example, analog or digital information. It is well known that signals can be transmitted via a wide variety of different wired or wireless links. The signal may be stored on a processor-readable medium.
[0084] Figure 7 An example of a preprocessing procedure is illustrated schematically.
[0085] Figure 7 The example preprocessing procedure is suitable for an SL-HDR1 system in NC (Non-Constant Luminosity) mode. In this example, preprocessing module 10 obtains the raw HDR content and generates SDR content and metadata. The preprocessing procedure is performed by processing module 100, included in server 1, on each pixel of each image of the raw HDR content. Figure 7 In the example, the pixel includes three color components corresponding to the primary colors red (R), green (G), and blue (B), that is, the pixel is an RGB signal.
[0086] In step 701, processing module 100 obtains an image of the original HDR content and derives a tone mapping curve from the image, represented by tone mapping parameters. As described, for example, in section 7.2.3.1 of the standard SL-HDR1, the tone mapping parameters include... tmInputSignalBlackLevelOffset , tmInputSignalWhiteLevelOffset , shadowGain , highlightGain , midToneWidthAdjFactor , tmOutputFineTuningNumVal , tmOutputFineTuningX[i] and tmOutputFineTuningY[i] ,in i In zero to tmOutputFineTuningNumVal-1 The tone mapping parameters are transmitted to the client system 3 as metadata in the form of SL-HDR Information SEI messages as defined in Appendix A of SL-HDR1. Once the mapping parameters have been exported, the luminance tone mapping function is obtained from the metadata. .
[0087] In step 702, the processing module 100 applies gamma conversion to the linear optical RGB signal as follows: (Equation 1) Where γ is the gamma factor, for example, equal to "2.4".
[0088] In step 703, the processing module 100 performs the following steps from the gamma-processed R of the image: S G S B S The signal derives the luminance (brightness) component. : (Equation 2) in It is a transformation matrix.
[0089] In step 704, the processing module 100 processes the downward luminance component. Apply tone mapping to obtain tone-mapped values. : (Equation 3) in Within the full range of luminance values .
[0090] In step 705, the processing module 100 derives the chromaticity (chromaticity) components from the gamma-processed RGB signal as follows: (Equation 4) in and It is a transformation matrix. For example, a regular 3x3 RGB to YUV conversion matrix (as specified in ITU-R Rec.BT.2020 or ITU-R Rec.BT.709 according to the color space).
[0091] In step 706, the processing module 100 performs the following adjustments to the chromaticity components: and Joint normalization and color correction are applied to obtain normalized and corrected chromaticity components. and : (Equation 5) and Clip between two clipping values [CLIP_MIN;CLIP_MAX] (e.g., clipped within [CLIP_MIN=-512;CLIP_MAX=511]).
[0092] Corresponding to the color correction function, and referred to below as ColorCorrection(y)In the case of SL-HDR1, the color correction function will be defined later in this document. ColorCorrection(y) Specifically, the color correction function ColorCorrection(y) It is constructed using the parameters defined in section 6.3.6 of SL-HDR1, which are numerical... n = saturationGainNumVal saturation gain function curve points Definition, number saturationGainNumVal Between "0" and "6", and in the following text, the saturation gain function curve point is an 8-bit byte ( sgf_x[i], sgf_y[i] (i.e., in SL-HDR1) saturationGainX[i] and saturationGainY[i] Therefore, it is between "0" and "255". (Tuple) saturationGainX[i],saturationGainY[i] ) and numbers saturationGainNumVal The metadata is transmitted to the client system 3 in the form of SL-HDR information SEI messages as defined in Appendix A of SL-HDR1.
[0093] In step 707, the processing module 100 outputs the following brightness value after tone mapping. Apply chromaticity injection to obtain calibrated, tone-mapped luminance values. : (Equation 6).
[0094] In step 708, the processing module 40 converts the luminance and chromaticity values in a given output format. , and Step 708 includes adjusting the color component. and Add a value, for example, equal to "512". midsample The sub-step includes: optionally, a sub-step for downsampling the chromaticity components, which compresses the signal by reducing the number of chromaticity samples; and optionally, a conversion from full-range values (where the YUV components are between "0" and "1023" when encoded in 10 bits) to a finite-range value (where the Y component is between "64" and "940" and the UV component is between "64" and "960") to obtain the luminance and chromaticity components of the pixels representing the SDR signal. The sub-step of step 708. The purpose of step 708 is, for example, to convert a full-range YUV 444 signal into a limited-range YUV 420 signal. The SDR image generated by step 708 is provided to the encoding module 12, which signals the SDR image along with metadata in the video data. The video data is then transmitted to the client system 3 by the transmission module 14.
[0095] Sometimes, for certain HDR RGB values, the SDR chromaticity components generated in step 706... and SDR chromaticity component clipping is either above CLIP_MAX or below CLIP_MIN, and is therefore cropped to its maximum possible value (i.e., CLIP_MAX) or its minimum possible value (i.e., CLIP_MIN). This clipping introduces reconstruction error into the HDR reconstruction signal at the client system side. To eliminate SDR chromaticity component clipping, it can be reduced... The coefficient matrix or by reducing the color correction function ColorCorrection(y) (Right now, To reduce and .
[0096] In the following text about Figure 9 The proposed method uses a color correction function. ColorCorrection(y) To eliminate and The cropping process maintains saturation and hue consistency within the UV color space (i.e., the UV domain). Further details below... Figure 11 , Figure 12 and Figure 13 The proposed method proposes a corrected tone mapping function (and inverse tone mapping function) or a corrected tone mapping function (and inverse tone mapping function) and a color correction function to eliminate and The cropping process maintains saturation and hue consistency within the xy color space (i.e., the xy domain).
[0097] Figure 8 This diagram illustrates an example of a post-processing procedure. When processing module 100 implements post-processing module 34, and more specifically, SDR to HDR reconstruction module 34C, Figure 8 The process is performed by the processing module 100. The reconstruction process is applied to each pixel of the decoded SDR content generated by the decoding module 32. Figure 8 The reconstruction process, for example, in Figure 7 This occurs after the preprocessing process. Therefore, the signal output by the preprocessing process is the input signal for the reconstruction process.
[0098] In step 801, the processing module 100 converts the received YUV 420 signal into a full-range YUV 444 signal. (The reverse process of step 708).
[0099] After conversion, the processing module 100 converts the chromaticity components. and Concentrate to obtain concentrated chromaticity components. and The following measures will be implemented: in midsampleFor example, it equals "512". It can be noted that... and .
[0100] In step 802, the processing module 100 applies chromaticity injection correction to the luminance component as follows: (Equation 7) Where parameters a and b Defined in section 7.2.4 of the document SL-HDR1 mu 0 and mu 1 And max(x,y) is selected x and y The maximum value. It can be noted that... .
[0101] Then, the luminance component It is clipped within [0;1023].
[0102] In step 803, the processing module 100 directs the output to the luminance component. The luminance component is derived by applying inverse tone mapping. : (Equation 8) in It is a luminance inverse hue mapping function, which is a luminance hue mapping function. The inverse. As indicated above, the tone mapping function The parameters are provided to the post-processing module 34 by the preprocessing module 10 due to the SL-HDR1 metadata. It can be noted that... .
[0103] In step 804, the processing module 100 performs the following chromaticity component processing. and Apply inverse color correction: (Equation 9) It can be noted that, .
[0104] Inverse color correction function (referred to as in section 7.2.3.2 of SL-HDR1) lutCC[] ) is specified in the SL-HDR SEI message and depends on (and therefore also depends on) Therefore, the color correction function applied at preprocessing module 10 Depend on definition.
[0105] Therefore, the color correction applied on the preprocessing module 10 side (based on The inverse color correction applied at the post-processing module 34 side (based on) To compensate. As indicated above, the color correction function The parameters are provided to the post-processing module 34 by the preprocessing module 10 due to the SL-HDR1 metadata.
[0106] therefore: According to equation (Equation 5) therefore Therefore, (Equation 9) gives: .
[0107] In step 805, the processing module 100 calculates the intermediate HDR RGB signal as follows: (Equation 10).
[0108] In step 806, the processing module 100 scales the intermediate HDR RGB signal. To retrieve gamma RGB values: (Equation 11) Then, Cut to ,in peakLum It is a predefined peak luminance value.
[0109] In step 807, the processing module 100 regenerates the linear light signal based on the scaled RGB signal: .
[0110] In step 808, the processing module 100 converts the linear optical signal into the desired output format.
[0111] Figure 9 The illustration schematically depicts a first embodiment of the color-cutting limiter process.
[0112] Figure 9 The main intent of the method is twofold: 1. Avoid SDR chromaticity trimming while maintaining hue: If in order to avoid trimming, it is necessary to reduce U (i.e., ) or V (i.e., One or both of the components are affected by the attenuation value. UDivMax (For U) and / or attenuation value VDivMax If (for V) decreases, then both the U component and the V component should pass through the same attenuation value. UVDivMax Reduce, i.e., the maximum attenuation value: UVDivMax = MAX(UDivMax, VDivMax) This ensures that the hue of the original HDR content is preserved in the UV domain. This is because simultaneously... and Both components apply color correction functions ColorCorrection(y) Therefore, in calculation and At that time (in step 706), the color correction function ColorCorrection(y) Apply attenuation value UVDivMax .
[0113] Modify color correction function ColorCorrection(y) (Right now, In step 804, an appropriate color correction function is required. The same amount of correction is applied to ensure correct HDR reconstruction. Therefore, the color correction function is described. ColorCorrection(y) (Right now, The tuples in the shape of ) are sent to the post-processing module 34 in the metadata transmitted from server 1 to client system 3.
[0114] 2. Maintain SDR saturation as much as possible: If the highest attenuation value (i.e., the highest color correction amount) is taken as... UVDivMax ) Applied to ColorCorrection(y) If all points of the function are corrected, even if correction is only needed in a small portion of the luminance range, there is a risk of unnecessarily desaturating the chromaticity components across the entire luminance range. To avoid unnecessary desaturation, the color correction function... ColorCorrection(y) The luminance range is divided into a finite number of partial luminance ranges. n When processing 10-bit SDR content, the maximum number of partial luminance ranges, "n", is 1024, that is, y Each value can have a specific color correction function. ColorCorrection(y) value.
[0115] luminance range in each section i ( i = [0; n Within -1]), calculate the attenuation value. UDivMax[i] , VDivMax[i] And UVDivMax[i]. Maximum attenuation value (i.e., maximum color correction amount). UVDivMax All attenuation values UVDivMax[i] The maximum value in.
[0116] The resaturation factor can be calculated. Resaturation[i] = UVDivMax / UVDivMax[i] (in i=[0; n -1]) while applying the highest color correction amount within each partial luminance range. UVDivMax The resaturation factor. This potentially allows for resaturation for each partial luminance range while avoiding UV component clipping within that partial luminance range.
[0117] Each boundary of two consecutive partial luminance ranges is assigned to a color correction function. ColorCorrection (y) of n-1=saturationGainNumVal Initial tuple ( sgf_x[i] , sgf_y[i] One of them. The resaturation factor that can be applied at this boundary. ResaturationFrontier[j] (in j = [0.. n -2]) is the resaturation factor for two consecutive ranges surrounding this boundary. Resaturation[i] The minimum value in.
[0118] Then, the color correction factor that can be applied at each boundary is calculated as follows: ColorCorrectionFrontier[j] = UVDivMax / ResaturationFrontier[j] .
[0119] Finally, use the color correction factor at the boundary. ColorCorrectionFrontier[j] To modify the color correction function ColorCorrection(y) .
[0120] The following text is about Figure 9 The detailed process described above ensures that, for each portion of the luminance range: • Avoid U and V cropping while preserving hue; • Maintain saturation as much as possible.
[0121] Figure 9 The method is handled by the processing module 100 of server 1. Figure 7 The preprocessing step 701 is performed on the current image of the original HDR content.
[0122] In step 900, the processing module 100 applies to each pixel of the current image. Figure 7 The preprocessing method includes steps 701 to 706. In step 706, no preprocessing is performed. and Apply cropping. Step 900 produces a pixel image, where each pixel is associated with three component values. Related.
[0123] In step 901, the processing module 100 divides the full range of luminance values (i.e., for example, [0..1023]) into... n Each part of the brightness range, among which (n - 1) = saturationGainNumVal Each boundary between two consecutive luminance ranges corresponds to a color correction function.ColorCorrection() initial tuple (sgf_x[i], sgf_y[i]) One of the given sgf_x[i] Coordinates, where i = [0.. n -2].
[0124] In step 902, processing module 100 estimates the attenuation value of the chromaticity component within each partial luminance range. This attenuation value allows for reduction of the chromaticity component to avoid clipping. In other words, processing module 100 estimates the attenuation value of component U. UDivMax[j] and the attenuation value of component V VDivMax[j] And the maximum attenuation value: UVDivMax[j] ,for j =0 to n -1.
[0125] Figure 10 This schematically illustrates the process used to determine the attenuation value of the chromaticity component within each portion of the luminance range.
[0126] Figure 10 The process is an embodiment of step 902.
[0127] In step 9020, the processing module 100 will attenuate the value UDivMax[j] and VDivMax[j] Initialize to "1" (for values from "0" to "1"). n -1 n A number of partial brightness ranges j (each possible value in the data), intermediate decay value UDivCur and VDivCur Initialize to "1", and set the variable i Initialize to "0".
[0128] In step 9021, the processing module 100 determines... i Is it equal to the value? NbPixels ,in NbPixels This represents the number of pixels in the current image minus 1. In step 9021, the processing module 100 obtains the number of pixels in the current image... i Components of each pixel The value of .
[0129] if i < NbPixels Then step 9021 is followed by step 9022.
[0130] In step 9022, the processing module 100 determines the partial luminance range to which the current pixel belongs (by an identifier). j (Identifier). In this embodiment, a partial luminance range identifier is determined as follows. j : Where INT( x Select x integer values, FullRangeMaxValue It is the maximum value among all brightness values. In the current example, FullRangeMaxValue =1023.
[0131] In step 9023, the processing module 100 assigns the value of component U to... Compare with the maximum clipping value CLIP_MAX. In the current example of this embodiment, CLIP_MAX = 511. If If so, then step 9023 is followed by step 9024. Otherwise, step 9023 is followed by step 9026.
[0132] In step 9024, the processing module 100 calculates the intermediate attenuation value of component U as follows: UDivCur : .
[0133] In step 9025, processing module 100 performs the following actions on the partial luminance range identified in step 9022: j Calculate the attenuation value of component U. UDivMax[j] : UDivMax[j] = max( UDivCur , UDivMax[j] ).
[0134] Step 9025 is followed by step 9026.
[0135] In step 9026, the processing module 100 assigns the value of component U to... Compare with the minimum clipping value CLIP_MIN. In the current example of this embodiment, CLIP_MIN = -512. If If so, then step 9026 is followed by step 9027. Otherwise, step 9026 is followed by step 9029.
[0136] In step 9027, the processing module 100 calculates the intermediate attenuation value of component U as follows: UDivCur : .
[0137] In step 9028, processing module 100 performs the following actions on the partial luminance range identified in step 9022: j Calculate the attenuation value of component U. UDivMax[j] : UDivMax[j] = max( UDivCur , UDivMax[j] ).
[0138] In step 9029, the processing module 100 processes the value of the V component. Compare with the maximum clipping value CLIP_MAX. If If so, then step 9029 is followed by step 9030. Otherwise, step 9029 is followed by step 9032.
[0139] In step 9030, the processing module 100 calculates the intermediate attenuation value of component V as follows: VDivCur : .
[0140] In step 9031, processing module 100 performs the following actions on the partial luminance range identified in step 9022: j Calculate the attenuation value of component V. VDivMax[j] : VDivMax[j] = max( VDivCur , VDivMax[j] ).
[0141] In step 9032, the processing module 100 assigns the value of component V to... Compare with the minimum clipping value CLIP_MIN. In the current example of this embodiment, CLIP_MIN = -512. If If so, then step 9032 is followed by step 9033. Otherwise, step 9032 is followed by step 9035.
[0142] In step 9033, the processing module 100 calculates the intermediate attenuation value of component V as follows: VDivCur : .
[0143] In step 9034, processing module 100 performs the following actions on the partial luminance range identified in step 9022: j Calculate the attenuation value of component V. VDivMax[j] : VDivMax[j] = max( VDivCur , VDivMax[j] ).
[0144] In step 9035, the variable i Increment by 1 unit.
[0145] if i = NbPixels Then, in step 9036, the attenuation values of chromaticity components U and V are determined within each partial luminance range. Within each partial luminance range, the attenuation values of chromaticity components U and V are determined as follows: UVDivMax[j] = MAX( UDivMax[j] ,VDivMax[j] ).
[0146] exist Figure 10 In the first variation of the process, by targeting the nearest neighbor... i The intermediate attenuation value calculated from at least one pixel of the pixel. UDivCur and VDivCur Calculate the weighted average and apply filtering to calculate the first... i The median attenuation value of each pixel UDivCur and VDivCur .
[0147] exist Figure 10 In the second variation of the process, the calculation UDivCur and VDivCur A histogram of all distinct values. This allows for the detection of some high values that may appear irregularly due to noise present in the current image. UDivCur and VDivCur In this case, it is unnecessary to apply a high intermediate attenuation value corresponding to the noise to all pixels. UDivCur and VDivCur Therefore, the number of bins present in the histogram can be counted starting from the highest bin, by forcing an intermediate decay value. UDivCur and VDivCur A fixed, predetermined minimum count is used to estimate a consistent intermediate attenuation value. UDivCur and VDivCur .
[0148] Back Figure 9 In step 903, the processing module 100 determines the attenuation values of chromaticity components U and V for each partial luminance range. UVDivMax[j] Determine the global attenuation value (i.e., the maximum color correction amount) for the chromaticity component. UVDivMax : UVDivMax = MAX(UVDivMaxPartial[j]), where j = [0; n -1].
[0149] In step 904, the processing module 100 calculates the resaturation factor for each partial luminance range as follows: Resaturation[j] : Resaturation[j] = UVDivMax / UVDivMax[j] ,in j = [0; n -1].
[0150] The resaturation factor allows saturation to be maintained within each partial luminance range (i.e., allows resaturation) while avoiding clipping of the chromaticity components U and V within that partial luminance range.
[0151] In step 905, processing module 100 calculates values for each boundary between two consecutive partial luminance ranges. ResaturationFrontier[k] ( k = [0; n -2] represents the minimum of the resaturation factors calculated for these two consecutive luminance ranges. As an example, if n =7, then: ResaturationFrontier [0] = MIN( Resaturation [0], Resaturation [1] ); ResaturationFrontier [1] = MIN( Resaturation [1], Resaturation [2] ); ResaturationFrontier [2] = MIN( Resaturation [2], Resaturation [3]) ; ResaturationFrontier [3] = MIN( Resaturation [3], Resaturation [4] ); ResaturationFrontier [4] = MIN( Resaturation [4], Resaturation [5] ); ResaturationFrontier [5] = MIN( Resaturation [5], Resaturation [6] ).
[0152] In step 906, processing module 100 calculates the final correction factor for each boundary between two consecutive partial luminance ranges as follows. ColorCorrectionFrontier[k] : ColorCorrectionFrontier[k] = ResaturationFrontier[k] / UVDivMax, where k In [0; n -2]inside.
[0153] In step 907, the processing module 100 will represent the color correction function ColorCorrect. i o nColorCorrection(y) The initial tuple ( sgf_x[k], sgf_y[k] Each coordinate in ) sgf_y[k Multiply by the corresponding final correction factor ColorCorrectionFrontier[] : ColorCorrectionToApply[k] = y[k] × ColorCorrectionFrontier[k] ,in k In [0; n -2]inside.
[0154] Step 907 allows obtaining a new tuple ( sgf_x[k] , ColorCorrectionToApply[k] This prevents the clipping of the SDR chromaticity components while maintaining saturation and preserving the hue of the derived SDR signal. During step 907, at least one tuple is modified ( sgf_x[k], sgf_y[k]coordinates in ) sgf_y[k ].
[0155] Use in step 706 n-1 A new tuple ( sgf_x[k] , ColorCorrectionToApply[k] )(in k It is [0; n Integer values within [-2]), and replace the initial tuple ( sgf_x[k], sgf_y[k] ) This is transmitted to the client system in the metadata. The post-processing maintains the information about... Figure 8 The process is the same, except that new tuples are used ( sgf_x [k] , ColorCorrectionToApply[k] ) replace the initial tuple ( sgf_x[k], sgf_y[k] To derive functions outside.
[0156] The following presents a second embodiment of the color cutting limiter process.
[0157] The second embodiment includes applications. Figure 9 The color trimming limiter process. However, the new tuple (sgf_x[ i ], ColorCorrectionToApply[k] It is not transmitted in the metadata, but is used to at least modify the tone mapping function. .
[0158] The second embodiment is based on a color correction function. and inverse color correction function The following properties of: .
[0159] In the first variant, the second embodiment modifies only the tone mapping function. To apply by Figure 9 The correction is determined by the color trimming limiter process. In the second variant, the second embodiment is achieved via tuples ( sgf_x[k],sgf_y [k] Modify tone mapping function and color correction function ColorCorrection(y) (Right now, To apply by Figure 9 The correction determined by the color cutting limiter process.
[0160] Figure 11 The illustration schematically depicts a second embodiment of the color-cutting limiter process.
[0161] The color trimming limiter process in the second embodiment is handled by the processing module 100 of server 1. Figure 7 It is applied in step 701 of the preprocessing procedure.
[0162] In the first variant of the second embodiment, for a given RGB linear light input pixel, the following is obtained via equation (Equation 2): The value is obtained through equation (Equation 3). Value, if value It needs to be corrected using a correction factor to ensure that it does not exceed (or lower) CLIP_MIN Then a correction factor needs to be applied. corr , making .
[0163] On the server 1 side, the first variation of the second embodiment includes using a corrected tone mapping function in step 704. Replace tone mapping function , so that: in .
[0164] In this case, in step 706: .
[0165] Known , This leads to .
[0166] It can be seen that using the corrected tone mapping function Ensure portion and No longer being cut.
[0167] By modifying the original tone mapping function To obtain the corrected tone mapping function In SL-HDR1, as described in section C.2.2, the tone mapping function is obtained. This includes the step of obtaining the tone mapping curve (section C.2.2.4), followed by the step of obtaining the adjustment curve (section C.2.2.5), which is generated by applying a fine-tuning curve to the tone mapping curve. The tone mapping curve is defined by five parameters: shadowGain , highlightGain , midToneWidthAdjFactor ,as well as tmInputSignalBlackLevelOffset , tmInputSignalWhiteLevelOffset The fine-tuning curve is determined by parameters. tmOutputFineTuningNumVal And define the size of the fine-tuning function as tmOutputFineTuningNumVal tmOutputFineTuningX[i] and tmOutputFineTuningY[i]The two array definitions. Parameters tmOutputFineTuningNumVal Provide values between "0" and "10". As mentioned above, the parameters specifying the tone mapping curve and fine-tuning curve are signaled in the metadata transmitted from server 1 to client system 3. For example, arrays tmOutputFineTuningX[i] and tmOutputFineTuningY[i] In metadata via syntax elements tone_mapping_output_fine_tuning_x [i] and tone_mapping_output_fine_tuning_y[i] Signal notifications are sent, and metadata is sent in the form of SL-HDR Information SEI messages as defined in Appendix A of SL-HDR1.
[0168] In the first variation of the second embodiment, the parameters of the fine-tuning curve are modified. tmOutputFineTuningX[i] and tmOutputFineTuningY[i] And thus, the corrected tone mapping function is obtained. tone mapping function The modifications. Modified parameters. tmOutputFineTuningX[i] and tmOutputFineTuningY[i] Then in the metadata via syntax elements tone_mapping_output_fine_tuning_x[i] and tone_mapping_ output_fine_tuning_y[i Send a signal to notify.
[0169] Then, on the client system 3 side, in the SDR to HDR reconstruction module 34C implemented by the post-processing module (34), due to the corrected tone mapping function Due to syntax elements tmOutputFineTuningNumVal and arrays tone_mapping_output_fine_tuning_x[i ]and tone_mapping_output_fine_tuning_y[i And thus transmitted, equation (Equation 8) becomes: in yes The reverse.
[0170] Therefore, restore the correct value.
[0171] Equation (Equation 9) becomes: in , According to equation (Equation 9).
[0172] Therefore, the SDR to HDR reconstruction module 34C compensates for the correction function applied by the HDR to SDR signal decomposition module 10C, thereby maintaining the reconstruction process.
[0173] The following section signals the syntax elements of the fine-tuning function. tone_mapping_output_fine_tuning_ x[i and tone_mapping_output_fine_tuning_y[i They are respectively called ftf_x[i and ftf_y[i ,and tmOutputFineTuningNumVal Known as NumFTF .
[0174] In step 1101, the processing module 100 obtains a new tuple ( sgf_x[i , ColorCorrectionToApply [i] For example, applications Figure 9 The process of determining new tuples ( sgf_x[i],ColorCorrectionToApply[i In step 1101, the processing module 100 thus obtains the parameters defining the color correction function, thereby preventing the cropping of the color components of the SDR image caused by the tone mapping of the initial HDR image.
[0175] In step 1102, the processing module 100 sends a signal in the metadata to notify the parameters. ftf_x[i and ftf_y[i The new value, the new value is formed by the new tuple ( sgf_x[i], ColorCorrectionToApply[i In other words, the processing module 100 signals the parameters defining the tone mapping function in the metadata, and the parameters of the tone mapping function are derived from the parameters defining the color correction function.
[0176] In the first variation of step 1102, it is assumed that the definition of the tone mapping curve does not use a fine-tuning function. In this case, the new tuple ( sgf_x[i],ColorCorrectionToApply[i Directly mapped to values ub_ftf_x[i and sub_ftf_y[i ,value ub_ftf_x[i and sub_ftf_y[i Then it is stored in the syntax element after conversion. ftf_x [i] and ftf_y[i middle.
[0177] Figure 12 The first variation of step 1102 is illustrated schematically.
[0178] In step 11021, the processing module 100 will change the variables i Initialize to zero.
[0179] In step 11022, the processing module 100 determines the variables. i Is it equal to NumFTF If so, then processing module 100 executes step 11023. Figure 12 The process.
[0180] Otherwise, the processing module 100 applies step 11024.
[0181] During step 11024, processing module 100 applies the method described in section 7.2.3.1.3 of the standard SL-HDR1 (ETSI TS 103 433-1V1.4.1) to calculate the values of the gamma signal. sub_ftf_x[i and sub_ ftf_y[i Converted into a uniform sensing signal value CC_ftf_PU_orig[i and CC_ftf_PU_mod[i .
[0182] In step 11025, the processing module 100 processes the syntax elements. ftf_x[i and ftf_y[i Signal notification from the center NumFTF value CC_ftf_PU_orig[i and CC_ftf_PU_mod[i The i-th component: ftf_x[i] = CC_ftf_PU_orig[i ftf_y[i] = CC_ftf_PU_mod[i .
[0183] In step 11026, the processing module 100 makes the variable i Increment by 1 unit. Step 11026 is followed by step 11022.
[0184] In the second variation of step 1102, it is assumed that the tone mapping curve is defined using a fine-tuning function. Therefore, adjustments to the values are required. sub_ftf_x[i and sub_ftf_y[i Interpolation is performed to match and correct syntax elements. ftf_x[i and ftf_y[i The value. This is accomplished using the following method: Figure 13 The second variation of step 1102 is illustrated schematically.
[0185] In step 11030, the processing module 100 will change the variables i Initialize to zero.
[0186] In step 11031, the processing module 100 determines the variables. i Is it equal to NumFTF If so, then processing module 100 executes in step 11032. Figure 13 The process.
[0187] Otherwise, the processing module 100 applies step 11033.
[0188] In step 11033, the processing module 100 converts the syntax elements for sensing uniform signals in the following manner. ftf_x [i]The value is converted into a gamma signal: First, a perceptual uniform-to-linear signal conversion as described in section C.2.2.7 of SL-HDR1 is applied, and then the gamma function g(y) = y(1 / 2.4) is applied to the obtained linear signal. This yields the gamma signal. sgf_x_from_ftf[i The value of .
[0189] In step 11034, the processing module 100 interpolates the saturation gain function to find the gamma signal. sgf_x_ from_ftf[i The required correction is achieved by first finding the corresponding segment of the saturation gain function, i.e., finding the current... sgf_x_from_ftf [i Located in which consecutive sgf_x[i Between the values, and determine the function representing the saturation gain function line (a part of the piecewise saturation gain function) for that segment; and secondly, based on sgf_x_from_ftf[i The gamma signal is calculated using a determined function representing a portion of the piecewise saturated gain function. sgf_y_from_ftf[i The value of .
[0190] The following pseudocode can be used to determine the gamma signal. sgf_y_from_ftf[i] of value: x1 , x2 , y1 , y2 It is a floating-point variable.
[0191] sgfSegmentFound It is an integer value that has been initialized to zero.
[0192] sfg_x_incr It is an integer value that has been initialized to zero.
[0193] Here is an example of an implementation in C code: .
[0194] Step 11034 is followed by step 11035. During step 11035, processing module 100 calculates the default value. def_ sgf_y Compared to what has already been applied to gamma signals sgf_y_from_ftf[i Correction correction_sgf_y : correction_sgf_y = sgf_y_from_ftf[i] / def_sgf_y .
[0195] In step 11036, the processing module 100 senses the uniform signal in the following manner. ftf_y[iConversion to a gamma signal: First, a perceptual uniform-to-linear signal conversion as described in section C.2.2.7 of SL-HDR1 is applied, and then the gamma function g(y) = y(1 / 2.4) is applied to the converted signal. This yields the value original_sgf_y_from_ftf [i] .
[0196] In step 11037, the processing module 100 uses the calculated correction as follows: correction_sgf_y To correct value original_sgf_y_from_ftf[i]: corrected_sgf_y_from_ftf[i]= original_sgf_y_from_ftf[i]×correction_ sgf_y .
[0197] In step 11038, the processing module 100 processes the gamma signal. corrected_sgf_y_from_ftf[i] Converted into a uniform sensing signal corrected_ftf_y[i] As described in section 7.2.3.1.3 of SL-HDR1.
[0198] In step 11039, the processing module 100 only... corrected_ftf_y[i] Below ftf_y[i] Only when the original value is obtained will a uniform signal be perceived. corrected_ftf_y[i] Signal to syntax elements ftf_y[i] In fact, correction can only reduce the fine-tuning curve, because only a reduction in luminance can reduce the risk of cropping.
[0199] Step 11039 is followed by step 11040. During step 11040, the variable is... i Increment by 1 unit. Step 11040 is followed by step 11031.
[0200] Back Figure 11 Step 1102 is followed by step 1103.
[0201] In step 1103, the processing module 100 sends a signal to notify the value representing the saturation gain function. For example, in... Figure 9 As in the method described, the coordinates of the saturation gain function are... sgf_x[i] Mapped to the boundary values of two consecutive luminance ranges. Coordinates sgf_y[i] The value uses its default value. sgf_y_default[i] filling.
[0202] In step 1104, the processing module 100 is based on syntax elements. ftf_x[i] and ftf_y[i] The new values determine the tone mapping function and the inverse tone mapping function.
[0203] In step 1105, the processing module 100 determines the color correction function. .because It has been updated, so calculations are needed before further processing. Color correction function.
[0204] In a second variation of the second embodiment, in addition to modifying the tone mapping function, the color correction function is also modified. In this case, the new tuple ( sgf_x[i] , ColorCorrectionToApply[i] ) is partially divided into parameters ( sgf_x [i] , sub_sgf_y[i] ) and parameters ( sub_ftf_x[i] , sub_ftf_y[i] ),parameter( sgf_x[i] , sub_sgf_y [i] Then it is mapped to the parameters of the saturation gain function. sgf_x[i] , sgf_y[i] ),parameter( sub_ftf_x[i] , sub_ ftf_y[i] Then it is converted into the parameters of the fine-tuning function. ftf_x[i] , ftf_y[i] ).
[0205] via parameters ratioSgf The control should be applied to the ratio of the corrections to the saturation gain function and the fine-tuning function. If ratioSgf = 1, then only the saturation gain function is corrected, not the fine-tuning function. This is equivalent to applying only the method of the first embodiment ( Figure 9 ).
[0206] if ratioSgf If the value is 0, then only the fine-tuning function is corrected, and the saturation gain function is not. This case corresponds to the first variant of the second embodiment.
[0207] When 0 < ratioSgf When <1, a compromise is obtained between the first embodiment and the first variant of the second embodiment.
[0208] In a second variation of the second embodiment, by ratio ratioSgf A new tuple that controls the parameters used to calculate the saturation gain function and the fine-tuning function. sgf_x[i] , ColorCorrectionToApply[i] The level of use of ).
[0209] Towards Figure 11 The process applies the following modifications. Similarly, the color trimming limiter process of the second embodiment is handled by the processing module 100 of server 1. Figure 7 It is applied in step 701 of the preprocessing procedure.
[0210] In step 1101, based on the ratio ratioSgf The following calculates the tuple ( sub_ftf_x[i] ,sub_ftf_y[i] Sum of values sub_sgf_y[i] : For from i =0 to i =( saturationGainNumVal -1) each i value: sub_sgf_y[i] = sgf_y_default – (( sgf_y_default - ColorCorrectionToApply [i] ) × ratioSgf + 0.5)); sub_ftf_y[i] = sgf_y_default - sub_sgf_y[i] + ColorCorrectionToApply [i] ; sub_ftf_x[i] = sgf_x[i] ; Step 1102 remains unchanged.
[0211] In step 1103, the processing module 100 sends a signal to notify the value representing the saturation gain function. For example, in... Figure 9 As in the method described, the coordinates of the saturation gain function are... sgf_x[i] Mapped to the boundary values of two consecutive luminance ranges. Using values sub_sgf_y[i] Fill coordinates sgf_y[i] .
[0212] Steps 1104 and 1105 remain unchanged.
[0213] As a result of a second variation of the second embodiment, it can be noted that ratioSgf The closer to zero, the better the color consistency (i.e., the closer the color is to the original color), and the lower the luminance. ratioSgf The closer it is to "1", the worse the color consistency and the higher the brightness.
[0214] The foregoing describes numerous embodiments. The features of these embodiments may be provided individually or in any combination. Furthermore, embodiments may include one or more of the following features, devices, or aspects, individually or in any combination, across various claim classes and types: • Includes bitstreams or signals of one or more of the described image data or video data or variations thereof.
[0215] • Create and / or transmit and / or receive and / or decode bit streams or signals including one or more of the described image data or metadata or variations thereof.
[0216] • Server, camera, TV, set-top box, cellular phone, tablet computer, personal computer, or other electronic device implementing at least one of the described embodiments.
[0217] • TV, set-top box, cellular phone, tablet computer, personal computer, or other electronic device that implements at least one of the described embodiments and displays (e.g., using a monitor, screen, or other type of display) the resulting image.
[0218] • TV, set-top box, cellular phone, tablet computer, personal computer, or other electronic devices that tune (e.g., use a tuner) a channel to receive signals including encoded images and metadata and to perform at least one embodiment of the described embodiments.
[0219] • TV, set-top box, cellular phone, tablet computer, or other electronic device that receives signals including encoded images and metadata over the air (e.g., using an antenna) and performs at least one embodiment of the described embodiments.
[0220] • Servers, cameras, cellular phones, tablet computers, personal computers, or other electronic devices that tune (e.g., use a tuner) channels to transmit signals including encoded images and metadata and implement at least one of the embodiments described.
[0221] A server, camera, cellular phone, tablet computer, personal computer, or other electronic device that transmits signals including encoded images and metadata over the air (e.g., using an antenna) and performs at least one embodiment of the described embodiments.
Claims
1. A method comprising: Obtain the first image within the first dynamic range (701); Obtain the parameters of the first color correction function defined by (1101) to prevent the cropping of the color components of the second image caused by the tone mapping of the first image in the second dynamic range; In the metadata, signal (1102) to define the parameters of the tone mapping function, which are derived from the parameters of the first color correction function; The metadata signals (1103) to define the parameters of the second color correction function, which are obtained from default values; and The video data, along with metadata, is used to signal the parameters of the tone mapping function and the second color correction function to obtain a third picture within the second dynamic range (1104, 1105).
2. The method of claim 1, wherein the parameters defining the tone mapping function define a fine-tuning function, and obtaining the parameters defining the tone mapping function includes converting the parameters defining the first color correction function from a gamma signal to a perceived uniform signal.
3. The method according to claim 1 or 2, wherein the parameters defining the first color correction function are points defining the piecewise saturation gain function, and obtaining the parameters defining the tone mapping function includes interpolating the piecewise saturation gain function based on said points.
4. The method according to claim 1, 2, or 3, wherein obtaining the parameters defining the first color correction function includes: The luminance value range of the initial luminance component of the first image data is divided (901) into partial luminance ranges, and each boundary between two consecutive partial luminance ranges depends on the first coordinate of one of the initial tuples that defines the initial color correction function; Estimate (902) attenuation values of the initial chromaticity components of the first image data within at least a portion of the luminance range, each attenuation value allowing for reduction of the initial chromaticity components to avoid cropping of the initial chromaticity components; The estimated attenuation value is used to determine the global attenuation value of the initial chromaticity component (903); (904) Calculate (based on the global attenuation value and the attenuation value associated with the partial luminance range) a factor that allows saturation to be maintained in each partial luminance range; For each boundary between two consecutive luminance ranges, calculate the (905) minimum factor, which represents the minimum of the factors calculated for these two consecutive luminance ranges; Calculate (906) the 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; as well as Modify the second coordinates of at least one of the initial tuples in the (907) initial tuples using the final correction factor to obtain a new tuple, which is the parameter defining the first color correction function.
5. The method according to any of the preceding claims, wherein the parameters defining the second color correction function are also obtained from the parameters defining the first color correction function.
6. The method of claim 5, wherein the parameters for calculating the tone mapping function and the parameters for the second color correction function are defined, and the level of use of the parameters of the first color correction function depends on a single value.
7. An apparatus including an electronic circuit system, said electronic circuit system being configured to: Obtain the first image within the first dynamic range (701); Obtain the parameters of the first color correction function defined by (1101) to prevent the cropping of the color components of the second image caused by the tone mapping of the first image in the second dynamic range; In the metadata, signal (1102) to define the parameters of the tone mapping function, which are derived from the parameters of the first color correction function; The metadata signals (1103) to define the parameters of the second color correction function, which are obtained from default values; and The video data, along with metadata, is used to signal the parameters of the tone mapping function and the second color correction function to obtain a third picture within the second dynamic range (1104, 1105).
8. The device of claim 7, wherein the parameters defining the tone mapping function define a fine-tuning function, and obtaining the parameters defining the tone mapping function includes converting the parameters defining the first color correction function from a gamma signal to a perceived uniform signal.
9. The device according to claim 7 or 8, wherein the parameters defining the first color correction function are points defining the piecewise saturation gain function, and obtaining the parameters defining the tone mapping function includes interpolating the piecewise saturation gain function based on said points.
10. The device according to claim 7, 8, or 9, wherein obtaining the parameters defining the first color correction function comprises: The luminance value range of the initial luminance component of the first image data is divided (901) into partial luminance ranges, and each boundary between two consecutive partial luminance ranges depends on the first coordinate of one of the initial tuples that defines the initial color correction function; Estimate (902) attenuation values of the initial chromaticity components of the first image data within at least a portion of the luminance range, each attenuation value allowing for reduction of the initial chromaticity components to avoid cropping of the initial chromaticity components; The estimated attenuation value is used to determine the global attenuation value of the initial chromaticity component (903); (904) Calculate (based on the global attenuation value and the attenuation value associated with the partial luminance range) a factor that allows saturation to be maintained in each partial luminance range; For each boundary between two consecutive luminance ranges, calculate the (905) minimum factor, which represents the minimum of the factors calculated for these two consecutive luminance ranges; Calculate (906) the 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; as well as, Modify the second coordinates of at least one of the initial tuples in the (907) initial tuples using the final correction factor to obtain a new tuple, which is the parameter defining the first color correction function.
11. The device according to any one of claims 7 to 10, wherein the parameters defining the second color correction function are also obtained from the parameters defining the first color correction function.
12. The device of claim 11, wherein the parameters for calculating the tone mapping function and the parameters for the second color correction function are defined, and the level of use of the parameters of the first color correction function depends on a single value.
13. A non-transitory information storage medium storing program code instructions for implementing the method according to any one of the preceding claims 1 to 6.
14. A computer program comprising program code instructions for implementing the method according to any one of the preceding claims 1 to 6.
15. A signal generated by the method of any one of the preceding claims 1 to 6 or by the device of any one of the preceding claims 7 to 12.