Method and device for luma mapping with inter-component scaling

By applying luma mapping with inter-component scaling as a post-processing or pre-processing step outside the prediction loop, the inefficiencies in existing video coding schemes are addressed, resulting in improved compression efficiency and reduced complexity.

JP7879115B2Active Publication Date: 2026-06-23INTERDIGITALCE PATENT HLDG SAS

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
INTERDIGITALCE PATENT HLDG SAS
Filing Date
2021-12-03
Publication Date
2026-06-23

AI Technical Summary

Technical Problem

Existing video coding schemes face inefficiencies in compression when applying luma mapping with inter-component scaling within the prediction loop, which can increase complexity and reduce optimal compression efficiency.

Method used

Implementing luma mapping with inter-component scaling as a post-processing or pre-processing step outside the prediction loop, allowing for flexible application of color component transformations based on syntax elements that specify the conversion process.

Benefits of technology

Improves compression efficiency by reducing complexity and enhancing the effectiveness of luma mapping with inter-component scaling, while maintaining image quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007879115000013
    Figure 0007879115000013
  • Figure 0007879115000014
    Figure 0007879115000014
  • Figure 0007879115000015
    Figure 0007879115000015
Patent Text Reader

Abstract

1. A method comprising: obtaining (601) a syntax element associated with video data, the syntax element specifying that an inter-color component conversion process, in which at least one second color component is converted based on at least one first color component different from the second color component, is to be applied to the video data as a post-processing process following a decoding process to be applied to the video data.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] At least one of these embodiments relates, in general, to a method and device for image coding and decoding, and more particularly to a method, apparatus and signal for controlling the application of luma mapping with an intercomponent scaling process. [Background technology]

[0002] To achieve high compression efficiency, video coding schemes typically employ prediction and transformation techniques that leverage the spatial and temporal redundancy of video content. During encoding, the video content image is divided into blocks of samples (i.e., pixels), which are then further divided into one or more subblocks, hereafter referred to as original subblocks. Intra-prediction or inter-prediction is then applied to each subblock to utilize intra- or inter-image correlations. Whatever prediction method is used (intra- or inter), a predictor subblock is determined for each original subblock. The subblock representing the difference between the original subblock and the predictor subblock is then often referred to as the prediction error subblock, prediction residual subblock, or simply residual block, and is transformed, quantized, and entropicoded to generate the encoded video stream. To reconstruct the video, the compressed data is decoded by the reverse processes corresponding to transformation, quantization, and entropicoding.

[0003] The original video signal to be encoded consists of a set of original values ​​that fall within the original dynamic range, represented by a number of bits (8 bits for a dynamic range of 0 to 255, 10 bits for a dynamic range of 0 to 1023). One effect of quantization is that the same quantized value can represent several different values. Therefore, the quantized video signal has reduced granularity compared to the original video signal. However, in some video signals, the majority of the original values ​​are concentrated in a limited subrange (or a limited subrange) of the original dynamic range. Applying quantization defined for the dynamic range to a signal that occupies only a limited subrange of the dynamic range will strongly affect the granularity of the video signal. Luminance mapping (i.e., mapping of luminance values) has been proposed to improve the encoding efficiency of video signals by making better use of the target dynamic range (i.e., luminance values ​​are redistributed across the target dynamic range to occupy the entire target dynamic range). The target dynamic range may be equal to or different from the original dynamic range.

[0004] In video signals, the lumens signal is generally associated with the chroma signal. If processing is applied to the lumens signal to improve its granularity once it has been quantized, then processing should also be applied to the associated chroma signal to obtain a similar improvement in granularity. Applying mapping to the chroma signal is possible, but it significantly increases the complexity of the video encoding and decoding process. To reduce encoding / decoding complexity, some methods propose applying mapping only to the lumens signal and then applying a scaling process to the chroma signal according to the mapped lumens signal. This scaling process is known in terms of inter-component scaling.

[0005] A new compression tool called Luma Mapping with Chroma Scaling (LMCS), which combines luma mapping with inter-component scaling, has been introduced into the international standard titled Versatile Video Coding (VVC), currently under development by the Joint Video Experts Team (JVET), a collaborative team of ITU-T and ISO / IEC experts. LMCS has been added as a new processing block prior to the loop filter. Therefore, LMCS is applied in the prediction loop of the encoding / decoding process.

[0006] Applying Luma mapping with inter-component scaling within the prediction loop may not be optimal from a compression efficiency standpoint. Other configurations, such as applying Luma mapping with inter-component scaling as a pre-processing or post-processing step from the prediction loop, may result in better compression efficiency.

[0007] It is desirable to propose a solution that allows for the application of luma mapping with inter-component scaling, or more generally, inter-color component transformations, either within or outside the prediction loop. [Overview of the project]

[0008] In a first aspect, one or more of these embodiments provide a method comprising obtaining a syntax element associated with video data, the syntax element specifying that an inter-color component transformation process, in which at least one second color component is transformed based on at least one first color component different from the second color component, should be applied to the video data as a post-processing process following a decoding process to be applied to the video data.

[0009] In one embodiment, the syntax element specifies with a first value that the inter-color component conversion process is applied to the video data as a post-processing process following the decoding process to be applied to the video data, and the syntax element specifies with a second value that the inter-color component conversion process is applied to the video data in a prediction loop included in the decoding process.

[0010] In one embodiment, the syntax element further specifies with a third value that a sample of the first color component before intracomponent conversion must be used for the intercomponent conversion process of at least one second component, and further specifies with a fourth value that a sample of the first color component after intracomponent conversion must be used for the intercomponent conversion of at least one second component.

[0011] In one embodiment, the color component conversion process is specified in a syntax element by a parameter representing at least one conversion.

[0012] In one embodiment, a transformation intended to be applied to one of at least one second color components is derived from a parameter representing a transformation applied to another of the at least one second color components specified in the syntax element, or from a parameter representing a transformation applied to a first color component specified in the syntax element.

[0013] In one embodiment, the syntax element specifies that a parameter representing the inter-color component conversion process is derived from a parameter specifying a chroma mapping with a chroma scaling process, which is obtained from another syntax element.

[0014] In one embodiment, the color component conversion process is luma mapping accompanied by a chroma scaling process.

[0015] In one embodiment, the color component conversion process is applied to the video data as a post-processing process following the decoding process, in response to the deactivation of a second color component conversion process to be applied in the prediction loop of the decoding process.

[0016] In a second embodiment, one or more of these embodiments provide a device, and the device is The present invention provides a means for obtaining a syntax element associated with video data, the syntax element specifying that an inter-color component transformation process, in which at least one second color component is transformed based on at least one first color component different from the second color component, should be applied to the video data as a post-processing process following a decoding process to be applied to the video data.

[0017] In one embodiment, the syntax element specifies with a first value that the inter-color component conversion process is applied to the video data as a post-processing process following the decoding process to be applied to the video data, and the syntax element specifies with a second value that the inter-color component conversion process is applied to the video data in a prediction loop included in the decoding process.

[0018] In one embodiment, the syntax element further specifies with a third value that a sample of the first color component before intracomponent conversion must be used for the intercomponent conversion process of at least one second component, and further specifies with a fourth value that a sample of the first color component after intracomponent conversion must be used for the intercomponent conversion of at least one second component.

[0019] In one embodiment, the color component conversion process is specified in a syntax element by a parameter representing at least one conversion.

[0020] In one embodiment, the conversion intended to be applied to one of at least one second color component is derived from a parameter representing a conversion to be applied to another one of the at least one second color component specified in the syntax element, or from a parameter representing a conversion to be applied to the first color component specified in the syntax element.

[0021] In one embodiment, the syntax element specifies that a parameter representing a color component conversion process is derived from a parameter specifying a luma mapping with a chroma scaling process obtained from another syntax element.

[0022] In one embodiment, the color component conversion process is a luma mapping with a chroma scaling process.

[0023] In one embodiment, the device comprises means for applying a color component conversion process to video data as a post - processing process following a decoding process to be applied to the video data, in response to de - activation of a second color component conversion process to be applied in a prediction loop of the decoding process.

[0024] In a third aspect, one or more of the present embodiments provide a signal including a syntax element associated with video data, the syntax element specifying that a color component conversion process in which at least one second color component is converted based on at least one first color component different from the second color component is to be applied to the video data as a post - processing process following a decoding process to be applied to the video data.

[0025] In one embodiment, the syntax element specifies, with a first value, that the color component conversion process is to be applied to the video data as a post - processing process following a decoding process to be applied to the video data, and the syntax element specifies, with a second value, that the color component conversion process is to be applied to the video data in a prediction loop included in the decoding process.

[0026] In one embodiment, the syntax element further specifies with a third value that a sample of the first color component before intracomponent conversion must be used for the intercomponent conversion process of at least one second component, and further specifies with a fourth value that a sample of the first color component after intracomponent conversion must be used for the intercomponent conversion of at least one second component.

[0027] In one embodiment, the color component conversion process is specified in a syntax element by a parameter representing at least one conversion.

[0028] In one embodiment, a transformation intended to be applied to one of at least one second color components is derived from a parameter representing a transformation applied to another of the at least one second color components specified in the syntax element, or from a parameter representing a transformation applied to a first color component specified in the syntax element.

[0029] In one embodiment, the syntax element specifies that a parameter representing the inter-color component conversion process is derived from a parameter specifying a chroma mapping with a chroma scaling process, which is obtained from another syntax element.

[0030] In one embodiment, the color component conversion process is luma mapping accompanied by a chroma scaling process.

[0031] In a fourth aspect, one or more of these embodiments provide a method, and the method is The process includes signaling a syntax element associated with video data, which specifies that an inter-color component transformation process, in which at least one second color component is transformed based on at least one first color component different from the second color component, should be applied to the video data as a post-processing process following a decoding process to be applied to the video data.

[0032] In one embodiment, the syntax element specifies with a first value that the inter-color component conversion process is applied to the video data as a post-processing process following the decoding process to be applied to the video data, and the syntax element specifies with a second value that the inter-color component conversion process is applied to the video data in a prediction loop included in the decoding process.

[0033] In one embodiment, the syntax element further specifies with a third value that a sample of the first color component before intracomponent conversion must be used for the intercomponent conversion process of at least one second component, and further specifies with a fourth value that a sample of the first color component after intracomponent conversion must be used for the intercomponent conversion of at least one second component.

[0034] In one embodiment, the color component conversion process is specified in a syntax element by a parameter representing at least one conversion.

[0035] In one embodiment, a transformation intended to be applied to one of at least one second color components is derived from a parameter representing a transformation applied to another of the at least one second color components specified in the syntax element, or from a parameter representing a transformation applied to a first color component specified in the syntax element.

[0036] In one embodiment, the syntax element specifies that a parameter representing the inter-color component conversion process is derived from a parameter specifying a chroma mapping with a chroma scaling process, which is obtained from another syntax element.

[0037] In one embodiment, the color component conversion process is luma mapping accompanied by a chroma scaling process.

[0038] In the fifth aspect, one or more of these embodiments provide a device, and the device is The system includes means for signaling syntax elements associated with video data, the syntax elements specifying that an inter-color component transformation process, in which at least one second color component is transformed based on at least one first color component different from the second color component, should be applied to the video data as a post-processing process following a decoding process to be applied to the video data.

[0039] In one embodiment, the syntax element specifies with a first value that the inter-color component conversion process is applied to the video data as a post-processing process following the decoding process to be applied to the video data, and the syntax element specifies with a second value that the inter-color component conversion process is applied to the video data in a prediction loop included in the decoding process.

[0040] In one embodiment, the syntax element further specifies with a third value that a sample of the first color component before intracomponent conversion must be used for the intercomponent conversion process of at least one second component, and further specifies with a fourth value that a sample of the first color component after intracomponent conversion must be used for the intercomponent conversion of at least one second component.

[0041] In one embodiment, the color component conversion process is specified in a syntax element by a parameter representing at least one conversion.

[0042] In one embodiment, a transformation intended to be applied to one of at least one second color components is derived from a parameter representing a transformation applied to another of the at least one second color components specified in the syntax element, or from a parameter representing a transformation applied to a first color component specified in the syntax element.

[0043] In one embodiment, the syntax element specifies that a parameter representing the inter-color component conversion process is derived from a parameter specifying a chroma mapping with a chroma scaling process, which is obtained from another syntax element.

[0044] In one embodiment, the color component conversion process is luma mapping accompanied by a chroma scaling process.

[0045] In the sixth aspect, one or more of these embodiments provide a computer program that includes program code instructions for implementing the method according to the first or fourth aspect.

[0046] In the seventh aspect, one or more of these embodiments provide an information storage medium for storing program code instructions for implementing the method according to the first or fourth aspect. [Brief explanation of the drawing]

[0047] [Figure 1] This shows an example of dividing the original video into image pixels. [Figure 2] This outlines a method for encoding a video stream, which is then performed by the encoding module. [Figure 3] This outlines a method for decoding an encoded video stream (i.e., a bitstream) using a decoding module. [Figure 4A] A schematic example of a hardware architecture for a processing module that can implement an encoding module or a decoding module, in which various aspects and embodiments are implemented, is shown. [Figure 4B] A block diagram of an example of a system in which various aspects and embodiments are implemented is shown. [Figure 5] This provides a schematic overview of the analysis of the corrected Color Remapping Information (CRI) SEI message. [Figure 6] This section outlines the analysis of CRI SEI messages using a decoding module. [Figure 7] This section outlines the analysis of LMCS_APS type APS using a decoding module. [Figure 8]The inter-component chromatic scaling function is shown. [Figure 9] This document presents an embodiment that enables improved out-of-loop application of LMCS. [Figure 10A] This shows the structure of an LMCS sequential mapping function that uses 8 segments. [Figure 10B] The derivation of the parameters for inter-component transformations from the LMCS parameters is shown. [Modes for carrying out the invention]

[0048] In the following description, some embodiments use tools developed in the context of VVC or HEVC ((ISO / IEC23008-2-MPEG-H Part 2, High Efficiency Video Coding / ITU-T H.265)). However, these embodiments are not limited to video encoding / decoding methods corresponding to VVC or HEVC, but are applicable to other video encoding / decoding methods such as AVC (H.264 / MPEG-4 Part 10), EVC (Essential Video Coding / MPEG-5), AV1, and VP9, ​​and are also applicable to image encoding / decoding methods.

[0049] A video compression method will be explained in relation to Figures 1, 2, and 3.

[0050] Figure 1 shows an example of the division that the image of sample 11 of the original video 10 undergoes. Here, the sample is thought to consist of three components, namely a luminance (or luma) component and two chrominance (or chroma) components. In this case, the sample corresponds to a pixel. However, the following embodiments are adapted to samples with a different number of components, for example, an image in which the sample consists of a gray-level sample containing one component, or an image in which the sample consists of three color components and a transparency component and / or depth component.

[0051] An image is divided into multiple coded entities. First, as shown in reference no. 13 in Figure 1, the image is divided into a grid of blocks called coding tree units (CTUs). A CTU consists of N×N blocks of luminance samples and two corresponding blocks of chrominance samples. N is generally a power of 2, with a maximum value of, for example, "128". Second, the image is divided into one or more groups of CTUs. For example, it can be divided into one or more tile rows and tile columns, where a tile is a sequence of CTUs covering a rectangular area of ​​the image. In some cases, a tile can be divided into one or more bricks, each brick consisting of at least one row of CTUs within the tile. Above the concepts of tiles and bricks, there exists another coded entity called a slice, which can incorporate at least one tile or at least one brick of a tile in an image.

[0052] In the example in Figure 1, as indicated by reference numeral 12, image 11 is divided into three equal slices S1, S2, and S3, each slice containing multiple tiles (not shown).

[0053] As shown in reference no. 14 in Figure 1, a CTU can be divided into a hierarchical tree of one or more subblocks called coding units (CUs). The CTU is the root (i.e., parent node) of the hierarchical tree and can be divided into multiple CUs (i.e., child nodes). Each CU becomes a leaf of the hierarchical tree if it has not been further divided into smaller CUs, and becomes the parent node of the smaller CUs (i.e., child nodes) if it has been further divided. Several types of hierarchical trees can be applied, including quadtrees, binary trees, and ternary trees. In a quadtree, each CTU (each CU) can be divided into four rectangular CUs of equal size (i.e., it can be its parent node). In a binary tree, each CTU (each CU) can be divided horizontally or vertically into two rectangular CUs of equal size. In a ternary tree, each CTU (each CU) can be divided horizontally or vertically into three rectangular CUs. For example, a CU with height N and width M is divided vertically (and horizontally) into a first CU with height N (each N / 4) and width M / 4 (each M), a second CU with height N (each N / 2) and width M / 2 (each M), and a third CU with height N (each N / 4) and width M / 4 (each M).

[0054] In the example in Figure 1, CTU14 is initially split into "four" rectangular CUs using a quadtree-type split. The top-left CU is a leaf in the hierarchical tree because it has not been split further, i.e., it is not the parent node of the other CUs. The top-right CU is further split into "four" smaller square CUs, again using a quadtree-type split. The bottom-right CU is vertically split into "two" rectangular CUs using a binary tree-type split. The bottom-left CU is vertically split into "three" rectangular CUs using a ternary tree-type split.

[0055] The combination of a binary tree and a ternary tree is known as a Multi-type tree (MTT).

[0056] During image encoding, the splitting is adaptive, and each CTU is split to optimize the compression efficiency based on the CTU standard.

[0057] In some video compression schemes, the concepts of prediction units (PUs) and transform units (TUs) have emerged. In this case, the coded entities used for prediction (i.e., PUs) and transformation (i.e., TUs) can be subdivisions of a CU. For example, as shown in Figure 1, a CU of size 2N × 2N can be divided into PUs of size N × 2N or 2N × N. Furthermore, this CU can be divided into four TUs of size N × N or sixteen TUs of size (N / 2) × (N / 2).

[0058] In this application, the terms “block,” “image block,” or “subblock” may be used to refer to any one of CTU, CU, PU, ​​and TU. Furthermore, the terms “block,” or “image block” may be used to refer to macroblocks, partitions, and subblocks as specified in MPEG-4 / AVC or other video coding standards, and more generally, to refer to arrays of samples of a large number of sizes.

[0059] In this application, the terms “reconstructed” and “decoded” may be used interchangeably, the terms “pixel” and “sample” may be used interchangeably, and the terms “image,” “picture,” “subpicture,” “slice,” and “frame” may be used interchangeably.

[0060] Figure 2 schematically illustrates a method for encoding a video stream, which is performed by the encoding module. While variations of this method for encoding are intended, for the sake of clarity, the encoding method in Figure 2 will be described below without describing all anticipated variations.

[0061] Encoding the current original image 200 begins with dividing the current original image 200 during step 202, as described in relation to Figure 1. This divides the current image 200 into CTU, CU, PU, ​​TU, etc. For each block, the encoding module determines the encoding mode between intra-prediction and inter-prediction.

[0062] Intra-prediction, as shown in step 203, consists of predicting a sample of the current block from a predicted block derived from a sample of a reconstructed block located in a causal neighborhood of the current block being coded, according to the intra-prediction method. The result of intra-prediction is a prediction direction indicating which sample of the neighboring block to use, and a residual block resulting from the calculation of the difference between the current block and the predicted block.

[0063] Interpretation involves predicting the samples in the current image from a block of samples called a reference block, which is a preceding or succeeding image of the current image. This reference image is referred to as the reference image.

[0064] During the coding of the current block by the interpretation method, the reference image block closest to the current block is determined by the motion estimation step 204 according to the similarity criteria. During step 204, a motion vector indicating the position of the reference block in the reference image is determined. This motion vector is used in the motion compensation step 205, during which the residual block is calculated in the form of the difference between the current block and the reference block.

[0065] In the first video compression standards, the one-way interpredictive mode described above was the only intermode available. As video compression standards have evolved, the family of intermodes has grown significantly and now includes many different intermodes.

[0066] During selection step 206, the coding module selects a prediction mode from among the tested prediction modes (intra-prediction mode, inter-prediction mode) that optimizes compression performance according to the rate / distortion criterion (i.e., the RDO criterion).

[0067] Once a prediction mode is selected, in step 207, a residual block corresponding to the selected prediction mode is obtained (for example, from the residual blocks calculated in steps 203 and 205), transformed in step 209, and quantized in step 210. During quantization, in the transformed region, the transformed coefficients are weighted by a scaling matrix in addition to the quantization parameters. The scaling matrix is ​​a coding tool that allows prioritizing certain frequencies at the expense of others. Generally, lower frequencies are preferred.

[0068] Note that the encoding module can skip the transformation and directly apply quantization to the untransformed residual signal.

[0069] Once the current block is coded according to the intra-prediction mode, the prediction direction and the transformed and quantized residual block are encoded by the entropy encoder during step 212.

[0070] Once the current block is encoded according to the interprediction mode, the motion data associated with this interprediction mode is encoded in step 211.

[0071] Generally, two modes can be used to encode motion data, called AMVP (Adaptive Motion Vector Prediction) and merge, respectively.

[0072] AMVP essentially involves signaling a reference image, a motion vector predictor index, and a motion vector difference (also known as a motion vector residual) used to predict the current block.

[0073] The merge mode signals indices of several motion data collected in a list of motion data predictors. The list consists of five or seven candidates and is configured similarly on the decoder and encoder sides. Thus, the merge mode aims to derive several motion data to be extracted from the merge list. The merge list typically contains motion data associated with several spatially and temporally adjacent blocks, which are available in a reconfigured state while the current block is being processed.

[0074] If predicted, the motion information is then encoded by the entropy encoder during step 212, along with the transformed and quantized residual blocks. Note that the encoding module can bypass both transformation and quantization; i.e., entropy encoding is applied to the residuals without applying any transformation or quantization processes. The result of the entropy encoding is inserted into the encoded video stream (i.e., bitstream) 213.

[0075] It should be noted that entropy encoders can be implemented in the form of context adaptive binary arithmetic coders (CABACs). CABACs encode binary symbols, keeping complexity low and enabling probabilistic modeling of more frequently used bits for any given symbol.

[0076] After the quantization step 210, the current block is reconstructed so that the pixels corresponding to that block can be used for future predictions. This reconstruction stage is also called the prediction loop. Thus, inverse quantization is applied to the residual block that was transformed and quantized in step 214, and the inverse transform is applied in step 215. The prediction block of the current block is reconstructed by the prediction mode used for the current block, which was acquired in step 217. If the current block is encoded according to an inter-prediction mode, the encoding module applies motion compensation to the reference block using the motion information of the current block in step 218, where appropriate. If the current block is encoded according to an intra-prediction mode, in step 220, the prediction direction corresponding to the current block is used to reconstruct the reference block of the current block.

[0077] In step 221, the base block and the reconstructed residual block are added to obtain the reconstructed current block.

[0078] After reconstruction, during step 223, in-loop post-filtering is applied to the reconstructed block, intended to reduce encoding artifacts. This post-filtering is called in-loop post-filtering because it is performed in the prediction loop to avoid drift between the encoding and decoding processes, by acquiring the same reference image in the encoder as the decoder. For example, in-loop post-filtering includes deblocking filtering, SAO (sample adaptive offset) filtering, and adaptive loop filtering (ALF) with block-based filter adaptation.

[0079] A parameter representing the activation or deactivation of the in-loop deblocking filter, and, if activated, the properties of the in-loop deblocking filter, are introduced into the encoded video stream 213 during the entropycoding step 212.

[0080] Once a block is reconstructed, it is inserted into the reconstructed image stored in the decoded picture buffer (DPB) 225 during step 224. The reconstructed image thus stored can serve as a reference image for other images to be coded.

[0081] Figure 3 schematically illustrates a method for decoding an encoded video stream (i.e., bitstream) 213, encoded according to the method described in relation to Figure 2. This decoding method is performed by a decoding module. While variations of this decoding method are conceivable, for clarity, the decoding method shown in Figure 3 will be described below without describing all anticipated variations.

[0082] Decoding is performed block by block. For the current block, decoding begins with entropy decoding the current block during step 312. Entropy decoding allows us to obtain the predicted mode of the block.

[0083] If the current block is encoded according to the intra-prediction mode, entropy decoding allows us to obtain information representing the prediction direction and residual block.

[0084] If the current block is encoded according to inter-prediction mode, entropy decoding allows the acquisition of motion data and data representing the residual block. Where appropriate, during step 311, the motion data is reconstructed for the current block according to AMVP or merge mode. In merge mode, the motion data acquired by entropy decoding includes an index in a list of motion vector predictor candidates. The decoding module applies the same process as the encoding module to construct lists of candidates for normal merge mode and sub-block merge mode. Using the reconstructed lists and indices, the decoding module can extract the motion vectors used to predict the motion vectors of the block.

[0085] This decoding method includes steps 312, 314, 315, 317, 318, 319, 320, 321, and 323, which are identical in all respects to steps 212, 214, 215, 217, 218, 219, 220, 221, and 223 of the encoding method, respectively. In step 324, the decoded blocks are stored in the decoded image, and the decoded image is stored in DPB325. When the decoding module decodes a given image, the image stored in DPB325 is identical to the image stored in DPB225 by the encoding module during the encoding of the given image. The decoded image can also be output by the decoding module, for example, for display.

[0086] As described above, variations of the encoding method in Figure 2 and the decoding method in Figure 3 are intended, in particular, variations that include luminous mapping with an inter-component scaling process or, more generally, inter-color component conversion. Hereafter, luminous mapping with inter-component scaling and inter-color component conversion will be used interchangeably. In fact, in luminous mapping with inter-component scaling, the chroma component is transformed based on the lumina component. In inter-color component conversion, at least one first color component is transformed based on at least one second color component that is different from the first color component. Therefore, the concept of inter-color component conversion is broader than the concept of luminous mapping with inter-component scaling. However, the various embodiments described later apply to inter-color component conversion and luminous mapping with inter-component scaling.

[0087] The introduction of luma mapping, which involves an inter-component scaling process in encoding and decoding methods, can take various forms.

[0088] In the first embodiment, Luma Mapping with an inter-component scaling process (LMCCS) is implemented in the prediction loop.

[0089] An example implementation of the LMCCS process within the prediction loop (an example of the first embodiment) is LMCS. LMCS has two main components, namely • In-loop mapping of Luma components based on an adaptive classification linear model, It has a luma-dependent residual scaling applied to the chroma component.

[0090] Luma's in-loop mapping uses the forward Luma mapping function FwdMap and its corresponding inverse Luma mapping function InvMap. The forward Luma mapping function FwdMap is signaled using a piecewise linear model with "16" equal parts. The inverse Luma mapping function InvMap does not need to be signaled and is instead derived from the forward Luma mapping function FwdMap.

[0091] The Luma mapping function is signaled within a container called an adaptation parameter set (APS) using a piecewise linear model. The piecewise linear model divides the dynamic range of the input signal into 16 equal parts, and for each part, its linear mapping parameters are represented using several codewords assigned to that part. Taking a 10-bit input signal as an example, each of the 16 pieces has 64 codewords assigned by default. The signaled number of codewords is used to calculate a scaling factor and adjust the Luma mapping function for that part accordingly. Each part of the piecewise linear model is defined by two input pivot points and two output (mapped) pivot points.

[0092] On the decoding side, as shown in Figure 3, the forward luma mapping function is applied during step 319. In step 322, the inverse luma mapping function is applied. As seen in Figure 3, for inter-predicted blocks, motion compensation is performed in the original region. After the motion-compensated predicted block Y_pred is calculated based on the reference image in DPB325, the forward mapping function FwdMap is applied to map the luma component of the predicted block Y_pred from the original region (i.e., the original dynamic range) to the mapped region (i.e., the target dynamic range): Y'_pred = FwdMap(Y_pred). For intra-encoded blocks, the forward mapping function FwdMap is not applied because intra-prediction is performed in the mapped region.

[0093] In step 321, after the reconstructed block Y_r is calculated from the predicted block Y_pred and the residual block Y_res, in step 322, the inverse mapping function InvMap is applied to convert the reconstructed luma value back from the mapped region to the original region: Y_i = InvMap(Y_r). The inverse mapping function InvMap is applied to both intra-encoded luma blocks and inter-encoded luma blocks.

[0094] Lumma mapping processes (forward mapping and / or reverse mapping) can be implemented using look-up tables (LUTs) or on-the-fly calculations.

[0095] Luma-dependent chroma residual scaling is designed to compensate for the interaction between the luma signal and its corresponding chroma signal. When luma mapping is enabled, an additional flag is signaled to indicate whether luma-dependent chroma residual scaling is enabled.

[0096] Luma-dependent chroma residual scaling depends on the mean values ​​of the reconstructed adjacent chroma samples at the top and / or left. avgYr is shown as the mean of the reconstructed adjacent chroma samples. The value of the scaling factor C_ScaleInv is calculated in the following steps. 1. Based on the InvMap function, find the index Y_Idx of the piecewise linear model to which avgYr belongs. 2. C_ScaleInv = cScaleInv[Y_Idx], where cScaleInv[] is a set of 16 LUTs pre-calculated based on the signaled values ​​in APS.

[0097] Unlike sample-based chroma mapping and inverse chroma mapping, the scaling factor C_ScaleInv is a constant value across the entire chroma block.

[0098] On the decoding side, in step 316, a chroma-dependent chroma residual scaling process is applied to the scaled chroma residual block before the reconstruction of the current chroma block. The chroma residual block C_Res is obtained by scaling the scaled chroma residual block using the scaling factor C_ScaleInv. C_Res=C_ResScale * C_ScaleInv

[0099] Next, in step 321, the residual block C_res is added to the chroma predictor block C_pred to reconstruct the current chroma block C_r. C_r = C_Res + C_pred

[0100] As can be seen, for chroma, neither inverse mapping before in-loop filtering nor forward mapping after motion compensation is performed.

[0101] On the encoding side, the introduction of LMCS is represented by the introduction of steps 201, 208, 216, 219, and 222 in the encoding method shown in Figure 2. Steps 216, 219, and 222 are identical to steps 316, 319, and 322, respectively. Step 201 is identical to step 219, except that the LMCCS process is applied to the original image, while in step 219 it is applied to the reconstructed image.

[0102] In step 208, a chroma-dependent chroma residual scaling process is applied to the chroma residual block. The scaled chroma residual block C_ResScale is obtained by scaling the chroma residual block using the scaling factor C_ScaleInv. C_ResScale = C_Res / C_ScaleInv

[0103] As mentioned above, in some implementations, LMCS parameters are stored within an APS container of type LMCS_APS. LMCS parameters are stored in a syntax element called lmcs_data.

[0104] [Table 1]

[0105] Table TAB1 represents the syntax element lmcs_data. The semantics of the syntax element lmcs_data can be found in section 7.4.3.19 of document JVET-S2001vH, Versatile Video Coding (Draft 10), ITU-T SG16 WP3 and ISO / IEC JTC1 / SC29 / WG11 Joint Video Experts Team (JVET), 19th Meeting: Remote Meeting, June 22 - July 1, 2020.

[0106] According to some implementations, the sequential lmcsCW[i](i) is derived as follows for i=0 to "15" or "16". est (represents the number of codewords in a section), InputPivot[i](i est (represents the input pivot point of the portion), lmcsPivot[i](i est (The formula number is defined by the part representing the output pivot point) (the formula number is from the VVC standard, document ITU-T H.266, SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS, Infrastructure of audiovisual services - Coding of moving video, Versatile video coding, 08 / 2020).

[0107] The parameter LmcsMaxBinIdx is set to equal ("15" - lmcs_delta_max_bin_idx). The following italicized text is copied from the VVC standard.

[0108] The variable OrgCW is derived as follows: OrgCW=(1< <BitDepth) / 16 (93)

[0109] The variable lmcsDeltaCW[i](i=lmcs_min_bin_idx~LmcsMaxBinIdx) is derived as follows: lmcsDeltaCW[i]=(1-2 * lmcs_delta_sign_cw_flag[i]) * lmcs_delta_abs_cw[i] (94)

[0110] The variable lmcsCW[i] is derived as follows: - If i=0~lmcs_min_bin_idx-1, lmcsCW[i] is set to equal to 0. - If i=lmcs_min_bin_idx~LmcsMaxBinIdx, the following applies: lmcsCW[i]=OrgCW+lmcsDeltaCW[i] (95)

[0111] The value of lmcsCW[i] must be within the range that includes both ends of OrgCW>>3~(OrgCW<<3)-1. - If i = LmcsMaxBinIdx + 1 to 15, then lmcsCW[i] is set to equal to 0.

[0112] The following conditions must be true for the bitstream to be compatible:

[0113]

number

[0114] The variable InputPivot[i] (i=0~15) is derived as follows: InputPivot[i]=i * OrgCW (97)

[0115] The variables LmcsPivot[i] (i = 0 to 16), ScaleCoeff[i], and InvScaleCoeff[i] (i = 0 to 15) are derived as follows. LmcsPivot[0] = 0 for (i = 0; i <= 15; i++) { LmcsPivot[i + 1] = LmcsPivot[i] + lmcsCW[i] ScaleCoeff[i] = (lmcsCW[i] * (1 << 11) + (1 << (Log2(OrgCW) - 1))) >> (Log2(OrgCW)) if (lmcsCW[i] == 0) (98) InvScaleCoeff[i] = 0 else InvScaleCoeff[i] = OrgCW * (1 << 11) / lmcsCW[i] }

[0116] A diagram using 8 segments (instead of 16) of the LMCS order mapping function configuration is provided in FIG. 10A. As seen above, applying the LMCCS process within the prediction loop is one possible embodiment, but other embodiments also exist.

[0117] In the second embodiment, the LMCSS process is applied outside the prediction loop.

[0118] On the decoding side, compared to the first embodiment, steps 316, 319, and 322 are removed from the method for decoding in FIG. 3. A new post - processing step 326 is introduced. When the LMCSS process is LMCS, the inverse mapping function InvMap is applied to convert the reconstructed luma values of the reconstructed image from the mapped region to the original region. The scaling coefficient C_ScaleInv determined using the above - described process is applied to the chroma values of the reconstructed image.

[0119] On the encoding side, steps 208, 216, 219, and 222 are removed from the encoding method in Figure 2 compared to the first embodiment. Step 201 remains the same.

[0120] The first and second embodiments are adapted, in particular, to control the granularity of the quantized luma and chroma signals. However, the LMCSS process may be used for other purposes.

[0121] In a third embodiment, an LMCSS process is used to map the output of the decoding process from the original dynamic range to a target dynamic range. For example, the LMCSS process is used to augment coded video (with higher quality graded content, e.g., UHDTV Rec.2020) if the display is capable of displaying such augmented data. It also allows for graceful degrading (e.g., Rec.2020 colorist grade) of wide-gamut graded content (e.g., Rec.709 colorist grade).

[0122] In the third embodiment, steps 201, 208, 216, 219, 222, 316, 319, and 322 are removed from the encoding and decoding methods compared to the second embodiment. Step 326 is retained but consists of applying a forward mapping function instead of a reverse mapping function. If the LMCSS process is LMCS, during step 326, the forward mapping function fwdMap is applied to convert the reconstructed chroma values ​​of the reconstructed image from the original regions to the mapped regions. A scaling factor 1 / (C_ScaleInv) is applied to the chroma values ​​of the reconstructed image.

[0123] In the fourth embodiment, the first and third embodiments, or the second and third embodiments, are combined.

[0124] Previous generations of video compression standards were known to have two syntax elements that enabled the transport of data related to color mapping. • The above APS for transporting LMCS parameters. • SEI messages called Color Remapping Information (CRI).

[0125] For example, SEI (Supplemental Extensions) messages, as defined in standards such as AVC, HEVC, or VVC, are data containers associated with a video stream that contain metadata providing information about the video stream.

[0126] [Table 2]

[0127] Table TAB2 provides the syntax for CRI SEI messages as defined in section D.2.23 of the HEVC standard. The semantics of the syntax elements contained in CRI SEI messages are provided in section D.3.33 of HEVC. CRI SEI messages provide information that enables the mapping of reconstructed color samples of an output image by a decoder, for purposes such as converting the output image to a representation more suitable for an alternative display.

[0128] CRI SEI defines three transformations. • The first transformation (hereinafter referred to as "pre_lut") is based on three 1D-LUTs applied to each color component, • The second transformation is based on a 3x3 matrix, and The third transformation (hereinafter referred to as "post_lut") is based on three 1D-LUTs applied to each color component.

[0129] The three transformations can be performed in cascade. When the 3x3 matrix transformation is enabled, the color components must be processed in a 4:4:4 format, which means there are three color samples per pixel. When only the 1D-LUT transformation is used, each color sample is processed independently of the others, so the process can be applied in 4:2:0, 4:2:2, or 4:4:4 color formats. The cascade transformation is given by the following formula for the three color components, denoted by C0, C1, and C2, respectively. The input samples C0_in(p), C1_in(p), and C2_in(p) at relative position p in the picture are processed as follows to produce the output samples C0_out(p), C1_out(p), and C2_out(p).

[0130] First conversion application: C0'=pre_lut[0][C0_in(p)] C1'=pre_lut[1][C1_in(p)] (Formula 1) C2'=pre_lut[2][C2_in(p)] In the formula, pre_lut[0][] represents the first transformation applied to the first component, pre_lut[1][] represents the first transformation applied to the second component, and pre_lut[2][] represents the first transformation applied to the third component.

[0131] 3x3 matrix application (if applicable): (C0, C1, C2) T =M3×3.(C0',C1',C2') T (Formula 2)

[0132] In the formula, M3×3 is a 3×3 matrix (syntax element colour_remap_coeffs[c][i]), ( T This is the transpose operator.

[0133] Second conversion application: C0_out(p)=post_lut[0][C0”] C1_out(p)=post_lut[1][C1”] (Formula 3) C2_out(p)=post_lut[2][C2”] In the formula, post_lut[0][] represents the second transformation applied to the first component, post_lut[1][] represents the second transformation applied to the second component, and post_lut[2][] represents the second transformation applied to the third component.

[0134] Please note that the 1D-LUT is applied independently to each color component corresponding to the intra-component conversion.

[0135] As can be seen, the CRI SEI message is not adapted to provide parameters for the LMCCS process, more generally for color component conversion. Furthermore, the CRI SEI message provides color mapping parameters for the post-processing process. On the other hand, the APS container of type LMCS_APS is designed to provide parameters for the LMCCS process (LMCS in this case), and the LMCCS process is applied in the prediction loop. Therefore, the CRI SEI message and the APS container of type LMCS_APS do not conform to the respective embodiments invoked above.

[0136] Therefore, a solution is needed to support the LMCCS process and, more generally, to support color component conversions.

[0137] According to the fifth embodiment, a new conversion is added to the CRI SEI message to enable conversion between color components. The new conversion is applied based on the 1D-LUT as follows (shown below using the first conversion (pre_lut)). In a modified form, this can be extended to a second conversion example (post_lut).

[0138] The input sample C0_in of the first color component is mapped to the output sample C0_out of the first component for each pixel at relative position p using the intracomponent transformation pre_lut. C0_out(p)=pre_lut[0][C0_in(p)] (Equation 4)

[0139] The input samples C1_in(p) and C2_in(p) of the second and third color components are mapped to the output samples C1_out(p) and C2_out(p) of the second and third components, respectively, using component-to-component conversion as follows. C1_out(p)=pre_lut[1][C0coloc(p)] * C1_in(p)-2 * B1-1)+2 * B1-1 C2_out(p)=pre_lut[2][C0coloc(p)] * C2_in(p)-2 * B2-1)+2 * B2-1 (Formula 5) In the formula, B1 and B2 are the bit depths of the second and third color component samples, respectively, and C0coloc(p) is the value calculated from the first component sample located at or near relative position p.

[0140] According to the fifth embodiment, the syntax element colour_remap_pre_lut_cross_component_flag is added to the CRI SEI message to indicate whether the 1D LUT representing the first transformation pre_lut for the second and third components is used as an intra-component transformation or as an inter-component transformation.

[0141] In a variation of the first embodiment, a similar syntax element, colour_remap_post_lut_cross_component_flag, is added to the CRI SEI message for the second transformation, post_lut.

[0142] Table TAB3 shows the insertion of the syntax elements colour_remap_pre_lut_cross_component_flag and colour_remap_post_lut_cross_component_flag into the CRI SEI message. The new syntax elements are shown in bold.

[0143] In the variant form, syntax elements may also be inserted to indicate whether a sample from a first component used in an inter-component transformation is used before or after being transformed by the first transformation.

[0144] Examples of the semantics of new syntactic elements are as follows: A colour_remap_pre_lut_cross_component_flag equal to "1" indicates that the syntax elements pre_lut_coded_value[1][i] and pre_lut_coded_value[2][i] (i.e., representing the transformations pre_lut[1][i] and pre_lut[2][i] respectively) define a piecewise linear scaling function that is indexed by a value corresponding to the first color component sample and applied to the second and third color component samples, respectively. Equivalent to "0". A colour_remap_pre_lut_cross_component_flag indicates that the syntax elements pre_lut_coded_value[1][i] and pre_lut_coded_value[2][i] (i.e., representing the transformations pre_lut[1][i] and pre_lut[2][i] respectively) define a piecewise linear function that is applied to the second and third color component samples, respectively. • colour_remap_pre_lut_cross_comp_mode indicates that the transformations of the second and third color component samples, defined by the syntax elements pre_lut_coded_value[1][i] and pre_lut_coded_value[2][i], respectively, depend on the first color component sample before (colour_remap_pre_lut_cross_comp_mode is equal to "0") or after (colour_remap_pre_lut_cross_comp_mode is equal to "1") they are processed by the transformation defined by the syntax element pre_lut_coded_value[0][i] (i.e., the transformation pre_lut[0][i]). • colour_remap_post_lut_cross_component_flag has the same semantics as colour_remap_pre_lut_cross_component_flag, but with "pre" replaced by "post". • colour_remap_post_lut_cross_comp_mode has the same semantics as colour_remap_pre_lut_cross_comp_mode, but with "pre" replaced by "post".

[0145] [Table 3]

[0146] Figure 5 provides a schematic overview of the analysis of the modified CRI SEI message. Figure 5 focuses on the new syntax elements introduced into the CRI SEI message, as shown in Table TAB3.

[0147] The process shown in Figure 5 is executed by the processing module 40, which will be described later in relation to Figures 4A and 4B, during the analysis of the CRI SEI message.

[0148] In step 501, the processing module 40 obtains the syntax element colour_remap_pre_lut_cross_component_flag and determines whether the syntax element colour_remap_pre_lut_cross_component_flag is equal to zero. If the syntax element colour_remap_pre_lut_cross_component_flag is equal to zero, the processing module 40 applies an intracomponent transformation to each color component in step 502 using equations 1, 2, and 3.

[0149] If non-zero, in step 503, the processing module 40 applies an intra-component transformation to the first color component using Equation 4. Thus, a syntax element colour_remap_pre_lut_cross_component_flag equal to "1" specifies that an inter-component transformation process should be applied. By default (i.e., without further information), this inter-component transformation process should be applied as a post-processing process following the decoding process.

[0150] In step 504, the processing module 40 determines whether the syntax element colour_remap_pre_lut_cross_comp_mode is equal to zero. If the syntax element colour_remap_pre_lut_cross_comp_mode is equal to zero, the processing module 40 determines that a sample of the first component before intracomponent conversion must be used for intercomponent conversion of the second and third components.

[0151] If the value is non-zero, the processing module 40 determines in step 506 that the converted sample of the first component after intracomponent conversion must be used for intercomponent conversion of the second and third components.

[0152] Steps 505 and 506 are followed by step 507, during which the processing module 40 applies inter-component transformations to the second and third components using formula 5 and the transformed or untransformed samples of the first component determined in steps 505 and 506.

[0153] In the variant form, the syntax element colour_remap_in_loop_flag is added to the CRI SEI message (as shown in bold in Table TAB4) to indicate whether the color component conversion is achieved within the prediction loop of the video decoding process or as a post-processing step after the decoding process.

[0154] [Table 4]

[0155] Figure 6 schematically shows the analysis of CRI SEI messages by the decoding module.

[0156] The process in Figure 6 focuses on the analysis of the syntax element colour_remap_in_loop_flag.

[0157] In step 601, the processing module 40 of the decoding module determines whether the syntax element colour_remap_in_loop_flag is equal to "1".

[0158] If the syntax element colour_remap_in_loop_flag is equal to "1", in step 602, a color component transformation (e.g., LMCS) is applied within the prediction loop, as described in the first embodiment. If the syntax element colour_remap_in_loop_flag is equal to "0", in step 603, a color component transformation (e.g., LMCS) is applied as a post-processing step after the decoding process, as described in the second and third embodiments.

[0159] In the variant shown in Table TAB5, when inter-component transformations are enabled, the syntax element colour_remap_pre_lut_number_minus1 is added to indicate whether one or two LUTs are signaled for inter-component transformations of the second and third color components. For example, if colour_remap_pre_lut_number_minus1 is equal to "0", only transformation pre_lut[1][i] (represented by the syntax element pre_lut_coded_value[1][i]) is signaled, and transformation pre_lut[2][i] (represented by the syntax element pre_lut_coded_value[2][i]) is set to be equal to transformation pre_lut[1][i]. If colour_remap_pre_lut_number_minus1 is equal to "1", both transformations are signaled.

[0160] In the variants shown in Table TAB5, when inter-component transformations are enabled, the syntax element colour_remap_pre_lut_cross_component_inferred_flag is added to indicate whether the transformations pre_lut[1][i] and pre_lut[2][i] used for inter-component transformations of the second and third color components are explicitly signaled or inferred from the transformation associated with the first color component. For example, if colour_remap_pre_lut_cross_component_inferred_flag is equal to "0", the transformations are signaled. If colour_remap_pre_lut_cross_component_inferred_flag is equal to "1", the transformations pre_lut[1][i] and pre_lut[2][i] are inferred from the transformation pre_lut[0][i]. For example, the transformations pre_lut[1][i] and pre_lut[2][i] are calculated as slopes, or as filtered versions of the slope value of transformation pre_lut[0][i].

[0161] [Table 5]

[0162] In the sixth embodiment, instead of using SEI messages to transmit metadata, the metadata is transmitted via an Adaptive Parameter Set (APS).

[0163] The parameters for inter-component mapping are embedded in the VVC LMCS syntax included in the APS of type LMCS_APS.

[0164] In the sixth embodiment, the syntax element lmcs_in_loop_flag is added to the APS of type LMCS_APS to indicate whether the LMCS process is achieved within the prediction loop of the video decoding process or as a post-processing step after the video decoding process, as described in Equations 4 and 5.

[0165] [Table 6]

[0166] Table TAB6 shows (in bold) the insertion of the syntax element lmcs_in_loop_flag of type LMCS_APS into the APS syntax element lmcs_data.

[0167] Figure 7 schematically shows the analysis of LMCS_APS type APS by the decoding module.

[0168] The process in Figure 7 focuses on the analysis of the syntax element lmcs_in_loop_flag.

[0169] In step 701, the processing module 40 of the decoding module determines whether the syntax element lmcs_in_loop_flag is equal to "1".

[0170] If the syntax element lmcs_in_loop_flag is equal to "1", in step 702 the LMCS process is applied within the prediction loop, as described in the first embodiment. If the syntax element lmcs_in_loop_flag is equal to "0", in step 703 the LMCS process is applied as a post-processing step after the decoding process, as described in the second and third embodiments.

[0171] In a variation of the sixth embodiment, when an inter-component transformation is selected in the CRI SEI message, the flag colour_remap_pre_lut_from_APS_flag is inserted into the CRI SEI message to indicate that the parameters of the inter-component transformation are inherited (i.e., derived) from the LMCS parameters embedded in the bitstream's APS.

[0172] If the `colour_remap_pre_lut_from_APS_flag` flag is true, the parameter `colour_remap_pre_lut_from_APS_id` is added, indicating the identifier of the APS to be referenced. The APS identifier is, for example, the syntax element `aps_adaptation_parameter_set_id`. The syntax elements `pre_lut_num_val_minus1`, `pre_lut_coded_value`, and `pre_lut_target_value` are inferred from the syntax element `lmcs_data` signaled in the APS.

[0173] An example of an inference process is described below. pre_lut_num_val_minus1[c] is set to "16" as in LMCS, and "16" segments are used for c=0~2 which represent the color components. pre_lut_coded_value[0][i] is set to lmcsPivot[i] for i=0 to "16". pre_lut_target_value[0][i] is set to InputPivot[i] for i=0 to "16".

[0174] The following can be applied to the transformation of components "1" and "2" represented by LUTpre_lut[1][i] and pre_lut[2][i] for c=1 and "2", and i=0 to "15". pre_lut_coded_value[c][i]=pre_lut_coded_value[0][i] slope=pre_lut_target_value[0][i+1]-pre_lut_target_value[0][i] If slope=0, pre_lut_target_value[c][i]=2048 Otherwise, pre_lut_target_value[c][i]=OrgCW * 2048 / slope

[0175] The value "2048" corresponds to neutral component scaling, i.e., it is equivalent to "1.0" in floating-point representation.

[0176] A diagram using the function shown in Figure 10A is provided in Figure 10B.

[0177] [Table 7]

[0178] Table TAB7 shows (in bold) the insertion of the syntax elements colour_remap_pre_lut_cross_component_flag, colour_remap_pre_lut_from_APS_flag, and colour_remap_pre_lut_from_APS_id into the CRI SEI message.

[0179] The same principle applies to the conversion post_lut (by replacing "pre" with "post").

[0180] Alternatively, a syntax element indicating whether the LMCS process is achieved within the prediction loop of the video decoding process or as a post-processing step after the video decoding process can also be inserted into other high-level syntax structures such as the SPS (Sequence Parameter Set), PPS (Picture Parameter Set), picture header, slice header, tile header, and subpicture header. Preferably, this syntax element should be inserted into the SPS, PPS, or picture header, because it is expected to apply to the entire picture and also to the set of pictures contained within a single intra-period (in other words, inserted with the IDR picture).

[0181] [Table 8]

[0182] Table TAB8 shows the modifications to the SPS syntax (shown in bold) to which the syntax element sps_lmcs_in_loop_flag has been added. If the syntax element sps_lmcs_in_loop_flag is equal to "1", the LMCS process is applied within the prediction loop, as described in the first embodiment. If the syntax element sps_lmcs_in_loop_flag is equal to "0", the LMCS process is applied as a post-processing step after the decoding process, as described in the second and third embodiments.

[0183] Alternatively, the constraint flag for gci_no_lmcs_in_loop_constraint_flag may be defined as shown in Table TAB9.

[0184] [Table 9]

[0185] The definition is as follows: A gci_no_lmcs_constraint_flag equal to "1" specifies that sps_lmcs_enabled_flag must be equal to "0" for all pictures within OlsInScope. A gci_no_lmcs_constraint_flag equal to "0" does not impose such a constraint. A gci_no_lmcs_in_loop_constraint_flag equal to "1" specifies that sps_lmcs_in_loop_flag must be equal to "0" for all pictures in OlsInScope, and color_remap_in_loop_flag must be equal to 0 if received. A gci_no_lmcs_inloop_constraint_flag equal to "0" imposes no such constraint.

[0186] Alternatively, signaling of these parameters can be done at the system level rather than within SEI messages, or in addition to syntax elements within high-level syntax. Some of the benefits may be that some encoders do not support SEI messages, and that information used throughout the session can be readily available at the signaling / payload negotiation level.

[0187] For example, these parameters can be signaled in the following: • SDP (Session Description Protocol), a format for describing multimedia communication sessions for the purpose of session announcement and session invitation, for example, as described in an RFC and used in conjunction with RTP (Real-time Transport Protocol) transmission. For example, it can be defined as follows: a=fmtp:xxx profile-id=xxx;lmcs_inloop_flag=1;Color_Mapping_in_loop_flag=1; • DASH (Dynamic Adaptive Streaming over HTTP) MPD (Media Presentation Description) descriptor. For example, used in DASH and transmitted over HTTP, a descriptor is associated with a representation or set of representations to provide additional characteristics to the content representation (where content is, for example, a video stream). • For example, the RTP header extension defined in RFC8285, used during RTP streaming. For example, it can be defined as follows: a=extmap:xxx URI-lmcs_in_loop_flag a=extmap:xxx URI-color_mapping_in_loop_flag m=video a=sendrecv; Alternatively, an ISO-based media file format, such as the one used in OMAF (Omnidirectional MediA Format), which uses boxes, object-oriented construction blocks defined by a unique type identifier and length, also known as "atom" in some specifications.

[0188] In classical LMCS designs, the inter-component chroma scaling function is defined as a series of fixed values ​​for each interval, resulting in a discontinuous function as shown in Figure 8. When applied outside the loop, these discontinuities can lead to coding efficiency losses. Indeed, small fluctuations in the luma value can lead to large differences in the chroma scaling value. These differences can occur frequently because luma signals are susceptible to compression errors. An example of such a discontinuous function is shown in Figure 9, defined by the luma component Y within the mapped region (labeled Ymap in Figures 8 and 9).

[0189] Therefore, to avoid this drawback, it is proposed to use a smoothed or more continuous version of the chromoscaling function for the intercomponent function. For example, a piecewise linear function defined from the chromoscaling values ​​of the LMCS chromoscaling function can be used, as shown by the dashed line in Figure 9.

[0190] We have now seen a fourth embodiment that combines the first (or second) embodiment with the third embodiment. For example, in this fourth embodiment, the LMCS within the prediction loop (or outside the prediction loop, as in the first embodiment) is combined with the inter-color component transformation defined in the CRI SEI message. For example, the CRI is used to perform the inter-component transformation using a static function for each intra-period, and the LMCS is used to adjust or refine the transformation for each frame. This can provide a favorable coding gain compared to using only the CRI, or only the LMCS, or neither.

[0191] In the seventh embodiment, the inter-component conversion from the loop LMCS and the CRI SEI message is mutually exclusive. The inter-component conversion can only be applied when the LMCS is disabled.

[0192] In the eighth embodiment, the in-loop LMCS and the inter-component conversion from the CRI SEI message are non-exclusive. This can be advantageously utilized to enable end-user bitrate reduction and energy consumption control. For example, the input video is in HDR PQ format (BT.2020PQ). This is mapped to a more SDR-like video by an out-loop mapping signaled in SEI. The mapped video is encoded and decoded using VUI (Video Usability Information as defined in ITU-T Recommendation H.274 ISO / IEC23002-7) signaling that the encoded video is SDR. The in-loop LMCS can be used to complement the out-loop mapping to achieve higher encoding performance (using a mapping function signaled in APS, different from the out-loop mapping function). In the decoder, the compressed video is decoded. Because it has lower picture brightness than the HDR version, it can be displayed as is, i.e., as an SDR-like video which may consume less energy on the display. If an end user wants to view an HDR version, they can apply an SEI-signaled out-of-loop inverse mapping to indicate that the target video is in HDR PQ format. There are three advantages to this. 1. Bitrate Reduction: Out-of-loop mapping provides better coding compression than in-loop LMCS for HDR PQ (e.g., as defined in Recommendation BT.2100) video, and LMCS can be applied on top of out-of-loop mapping to mapped video to obtain additional coding gain. In fact, LMCS is also useful for coding SDR video. 2. Reduced energy consumption in streaming: Improved compression, and consequently higher bitrates, reduce the energy consumption required to stream video. 3. Reducing energy consumption in rendering: On the rendering side, depending on the energy usage selected by the client / end user, it is possible to select the decoded and mapped video as is, with lower brightness and consequently lower display energy consumption, or to process the decoded and mapped video using out-loop inverse mapping, and select it with higher brightness and consequently higher display energy consumption.

[0193] In the modified form of the CRI SEI message, pre_lut_coded_value[c][i] is not coded but is set to a default value (pre_lut_num_val_minus1[c]+1) depending on the signal bit depth and the number of coded values. For example, pre_lut_coded_value[c][0] is set to "0", and pre_lut_coded_value[c][i+1] = pre_lut_coded_value[c][i] + preLutDelta, where preLutDelta = 2 bitdepth This is / (pre_lut_num_val_minus1[c]+1). Furthermore, instead of encoding pre_lut_target_value[c][i] as an absolute value, it can also be encoded as a difference value relative to pre_lut_target_value[c][i-1]. By applying this modified form, it actually corresponds to signaling similar to LMCS APS signaling. Similarly, this can be applied to the syntax associated with the transformation post_lut. An example of the corresponding syntax is provided in Table TAB10, which concatenates different modified forms of the modified CRI SEI message described herein. In addition, the SEI message is a renamed Colour Transform Information SEI message, as it is a generalized version of the CRI SEI message.

[0194] [Table 10-1]

[0195] [Table 10-2]

[0196] When colour_transform_pre_lut_cross_component_flag is equal to "0", the variable colourTransformPreLutNumber is equal to "3" ("3" transformation pre_luts are signaled for components c=0 to 2). When colour_transform_pre_lut_cross_component_flag is equal to "1", colour_transform_pre_lut_cross_component_inferred_flag is equal to "1" (a single transform pre_lut of "1" is signaled for component c=0, and transform pre_lut for component c=1 and "2" are inferred from this signaled single transform pre_lut), colourTransformPreLutNumber is equal to "1", or when colour_transform_pre_lut_cross_component_inferred_flag is equal to "0" (a transform pre_lut of "1" is signaled for component c=0, and transform pre_lut for component c=1 (colour_transform_pre_lut_number_minus1+1) and "2" are signaled), colourTransformPreLutNumber is equal to (2+colour_transform_pre_lut_number_minus1). The same applies to the conversion post_lut by replacing "pred" with "post".

[0197] The fifth, sixth, and seventh embodiments were described primarily in relation to the decoding module and decoding method shown in Figure 3. However, it is clear that all the syntax elements described in relation to the fifth, sixth, and seventh embodiments (i.e., the modified CRI SEI message and the modified APS of type LMCS_APS) obtained by the decoding module along with the encoded video stream 211 are associated with the encoded video stream 211 by the encoding module.

[0198] Figure 4A schematically shows an example of a hardware architecture of a processing module 40 that can implement an encoding module or a decoding module that can implement the encoding method of Figure 2 and the decoding method of Figure 3, respectively, as modified according to the different embodiments and models described above. The processing module 40 includes, in non-limiting examples, a processor or CPU (central processing unit) 400, which includes one or more microprocessors, general-purpose computers, dedicated computers, and processors based on a multi-core architecture, connected by a communication bus 405; random access memory (RAM) 401; read-only memory (ROM) 402; 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, magnetic disk drive, and / or optical disk drive, or SD (secure digital) card reader and / or hard disk drive. The storage unit 403 includes, but is not limited to, a storage medium reader such as a drive, HDD, etc., and / or a network-accessible storage device, which may include non-volatile memory and / or volatile memory; and at least one communication interface 404 for exchanging data with other modules, devices, or equipment. The communication interface 404 may include, but is not limited to, a transceiver configured to transmit and receive data over a communication channel. The communication interface 404 may include, but is not limited to, a modem or a network card.

[0199] If the processing module 40 implements a decoding module, the communication interface 404 enables, for example, the processing module 40 to receive an encoded video stream and provide a decoded video stream. If the processing module 40 implements an encoding module, the communication interface 404 enables, for example, the processing module 40 to receive original image data, encode it, and provide an encoded video stream.

[0200] The processor 400 can execute instructions loaded into the RAM 401 from the ROM 402, external memory (not shown), a storage medium, or a communication network. When the processing module 40 is powered on, the processor 400 can read instructions from the RAM 401 and execute them. These instructions form a computer program to be executed by the processor 400, for example, the decoding method described in relation to Figure 3 or the encoding method described in relation to Figure 2, and the decoding method and encoding method include various aspects and embodiments described herein.

[0201] All or part of the algorithms and steps of the encoding or decoding method may be implemented in software form by the execution of an instruction set by a programmable machine such as a DSP (digital signal processor) or microcontroller, or in hardware form by a machine or dedicated component such as an FPGA (field-programmable gate array) or ASIC (application-specific integrated circuit).

[0202] Figure 4B shows a block diagram of an example of System 4 in which various aspects and embodiments are implemented. System 4 can be embodied as a device including various components described later and configured to perform one or more aspects and embodiments described herein. 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, connected home appliances, cameras, and servers. The elements of System 4 can be embodied individually or in combination in one integrated circuit (IC), multiple ICs, and / or separate components. For example, in at least one embodiment, System 4 comprises one processing module 40 that implements a decoding module or an encoding module. However, in another embodiment, System 4 may comprise a first processing module 40 that implements a decoding module and a second processing module 40 that implements a decoding module, or one processing module 40 that implements a decoding module and an encoding module. In various embodiments, system 40 is communicably 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. In various embodiments, system 4 is configured to implement one or more of the embodiments described herein.

[0203] System 4 includes at least one processing module 40 that can implement one or both of the encoding module and / or the decoding module.

[0204] Inputs to the processing module 40 can be provided through various input modules as shown in block 42. Such input modules include, but are not limited to, (i) an RF module for receiving radio frequency (RF) signals transmitted wirelessly from a broadcasting station, (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. Another example not shown in Figure 4B is composite video.

[0205] In various embodiments, the input module of block 42 has 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 or band-limiting a signal to a frequency band), (ii) down-converting the selected signal, (iii) in a particular embodiment, band-limiting again to a narrower frequency band in order to select a signal frequency band which may be referred to as a channel, (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) multiplexing to select a desired stream of data packets. RF modules in various embodiments include one or more elements that perform these functions, e.g., 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 functions of these functions, e.g., down-converting a received signal to a lower frequency (e.g., an intermediate frequency or a frequency close to the baseband) or the baseband. In one embodiment of a set-top box, the RF module and its associated input processing elements receive an RF signal transmitted via a wired (e.g., cable) medium and perform frequency selection by filtering, down-converting, and re-filtering it to a desired frequency band. Various embodiments may involve rearranging the order of the elements described above (and others), removing some of these elements, and / or adding other elements that perform similar or different functions. Adding elements may include inserting elements between existing elements, such as inserting an amplifier and an analog-to-digital converter. In various embodiments, the RF module includes an antenna.

[0206] Additionally, the USB module and / or HDMI module may include their respective interface processors for connecting system 4 to other electronic devices via USB and / or HDMI connections. It should be understood that various aspects of input processing, such as Reed-Solomon error correction, can be performed, for example, in a separate input processing IC or, if necessary, in the processing module 40. Similarly, aspects of USB or HDMI interface processing can be performed in a separate interface IC or, if necessary, in the processing module 40. The demodulated, error-corrected, and demultiplexed streams are provided to the processing module 40.

[0207] Various elements of System 4 can be housed within an integrated housing. Within the integrated housing, the various elements can be interconnected and transmit data between them using internal buses known in the art, such as inter-IC (I2C) buses, wiring, and printed circuit boards, with appropriate connection arrangements. For example, in System 4, the processing module 40 is interconnected with other elements of System 4 by bus 405.

[0208] The communication interface 404 of the processing module 40 enables the system 4 to communicate over the communication channel 41. The communication channel 41 can be implemented, for example, within a wired and / or wireless medium.

[0209] In various embodiments, the data is streamed to the system 4 or otherwise provided using a wireless network such as a Wi-Fi network, e.g., IEEE 802.11 (IEEE stands for Institute of Electrical and Electronics Engineers). The Wi-Fi signals in these embodiments are received on a communication channel 41 and a communication interface 404 adapted for Wi-Fi communication. The communication channel 41 in these embodiments is typically connected to an access point or router that provides access to an external network, including the Internet, to enable streaming applications and other over-the-top communications. In other embodiments, streaming data is provided to the system 4 using a set-top box that distributes data via an HDMI connection in the input block 42. In yet another embodiment, streaming data is provided to the system 4 using an RF connection in the input block 42. As shown above, various embodiments provide data in a non-streaming manner. Additionally, various embodiments use wireless networks other than Wi-Fi, e.g., cellular networks or Bluetooth networks.

[0210] System 4 can provide output signals to various output devices, including a display 46, a speaker 47, and other peripheral devices 48. In various embodiments, the display 46 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 46 may be for a television, tablet, laptop, mobile phone, or other device. The display 46 may also be integrated with other components (e.g., as in a smartphone) or separate (e.g., an external monitor for a laptop). Other peripheral devices 46, in various embodiments of the embodiment, include one or more of a standalone digital video disc (or digital versatile disc, DVR) (for both terms, digital versatile disc, DVR), a disc player, a stereo system, and / or a lighting system. Various embodiments use one or more peripheral devices 48 that provide functions based on the output of System 4. For example, a disc player performs the function of playing back the output of System 4.

[0211] In various embodiments, control signals are communicated between the system 4 and the display 46, speaker 47, or other peripheral devices 48 using signaling such as AV.Link, Consumer Electronics Control (CEC), or other communication protocols that enable control between devices with or without user intervention. Output devices can be communicably coupled to the system 4 via dedicated connections through their respective interfaces 43, 44, and 45. Alternatively, output devices can be connected to the system 4 using a communication channel 41 via a communication interface 404. The display 46 and speaker 47 may be integrated into a single unit with other components of the system 4 in an electronic device such as a television. In various embodiments, the display interface 43 includes a display driver, such as a timing controller (TCon) chip.

[0212] Alternatively, the display 46 and speaker 47 can be separated from one or more of the other components, for example, if the RF module of input 42 is part of a separate set-top box. In various embodiments where the display 46 and speaker 47 are external components, output signals can be provided via dedicated output connections, such as an HDMI port, a USB port, or a COMP output.

[0213] Various implementations include decoding. As used in this application, “decoding” may encompass all or part of the processes performed on a received encoded video stream to produce, for example, a final output suitable for a display. In various embodiments, such processing includes one or more of the processes commonly performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and prediction. In various embodiments, such processing may further, or alternatively, include processes performed by the decoder of the various implementations or embodiments described in this application to apply, for example, an in-loop or out-of-loop color component conversion process, an LMCCS process, or an LMCS process.

[0214] Whether the phrase "decryption process" is intended to refer specifically to a working subset or to refer to a broader decoding process as a whole will become clear from the context of the specific explanation and should be well understood by those skilled in the art.

[0215] Various implementations involve encoding. As with the above considerations regarding "decoding," as used in this application, "encoding" may encompass all or part of the processes performed on the input video sequence to generate an encoded video stream. In various embodiments, such processes include one or more processes typically performed by an encoder, such as splitting, prediction, transformation, quantization, in-loop post-filtering, and entropy coding. In various embodiments, such processes may further, or alternatively, include processes performed by the encoder of the various implementations or embodiments described in this application to apply, for example, an in-loop or out-of-loop color component conversion process, an LMCCS process, or an LMCS process.

[0216] Whether the phrase "encoding process" is intended to refer specifically to a working subset or to refer to a broader encoding process as a whole will become clear from the context of the specific explanation and should be well understood by those skilled in the art.

[0217] It should be noted that the syntactic element names, flag names, container names, and coding tool names used herein are descriptive terms. Therefore, they do not preclude the use of other syntactic element names, flag names, container names, or coding tool names.

[0218] If a diagram is presented as a flowchart, it should be understood that the diagram also provides a block diagram of the corresponding device. Similarly, if a diagram is presented as a block diagram, it should be understood that the diagram also provides a flowchart of the corresponding method / process.

[0219] Various embodiments refer to rate-distortion optimization. In particular, a balance or trade-off between rate and distortion is usually considered during the coding process. Rate-distortion optimization is typically formulated to minimize a rate-distortion function, which is a weighted sum of rate and distortion. There are different approaches to solving rate-distortion optimization problems. For example, these approaches are obtained based on extensive testing of all coding options, including all considered mode or coding parameter values, and involve a complete evaluation of their coding costs, as well as the associated distortions of the reconstructed signals after coding and decoding. Alternatively, to reduce coding complexity, faster approaches can be used, in particular, by calculating approximate distortions based on prediction or prediction residual signals rather than the reconstructed signals. A mixture of these two methods can also be used, such as using approximate distortions for only some of the possible coding options and full distortions for others. Other methods evaluate only a subset of the possible coding options. More generally, many approaches employ one of various techniques to perform the optimization, but the optimization is not necessarily a complete evaluation of both the coding costs and associated distortions.

[0220] The implementation forms and embodiments described herein can be implemented, for example, in methods or processes, apparatus, software programs, data streams, or signals. Even if considered only in the context of a single implementation form (for example, considered only as a method), the implementation forms of the considered features can also be implemented in other forms (for example, apparatus or programs). For example, apparatus can be implemented in appropriate hardware, software, and firmware. A method can be implemented, for example, in a processor, where a processor refers to a general processing device, such as a computer, microprocessor, integrated circuit, or programmable logic device. A processor also includes communication devices, such as computers, mobile phones, and portable / mobile information terminals ("Personal Digital Assistants, PDAs"), which facilitate the communication of information between end users.

[0221] References to “one embodiment” or “a certain embodiment,” or “one implementation” or “a certain implementation,” or to other variations thereof, mean that the specific features, structures, characteristics, etc. described in relation to that embodiment are included in at least one embodiment. Therefore, when the phrases “in one embodiment” or “in a certain embodiment,” or “in one implementation” or “in a certain implementation,” or other variations appear in various places throughout this application, they do not necessarily all refer to the same embodiment.

[0222] In addition, this application may refer to "determining" various types of information. Determining information may include, for example, one or more of the following: estimating information, calculating information, predicting information, inferring information from other information, retrieving information from memory, or obtaining information from another device, module, or user, for example.

[0223] Furthermore, this application may refer to "accessing" various types of information. Accessing information may include, for example, receiving information, retrieving information (e.g., from memory), storing information, moving information, copying information, calculating information, determining information, predicting information, inferring information, or estimating information.

[0224] In addition, this application may refer to "receiving" various types of information. 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 included in some way during operations such as, for example, storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, inferring information, or estimating information.

[0225] The use of any of the following phrases, for example, " / ", "and / or", "at least one of", or "one or more", should be understood as being intended to include the selection of only the first listed option (A), or only the second listed option (B), or both options (A and B). As further examples, in the case of "A, B, and / or C" and "at least one of A, B, and C", or "one or more of A, B, and C", such phrases are intended to include the selection of 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). This can be extended to the number of listed items, as will be obvious to those skilled in the art in the relevant and related fields.

[0226] Furthermore, as used herein, the term “signaling” specifically means indicating something to the corresponding decoder. For example, in some embodiments, the encoder signals information related to color component conversion, LMCCS, or LMCS in the APS or SEI message. Thus, in some embodiments, the same parameter is used on both the encoder and decoder sides. Therefore, for example, the encoder can transmit a specific parameter to the decoder so that the decoder can use the same specific parameter (explicit signaling). On the other hand, if the decoder already has other parameters along with that specific parameter, it can use non-transmitted signaling (implicit signaling) so that the decoder simply knows and can select that specific parameter. Bit saving is achieved in various embodiments by avoiding the transmission of any actual function. It will be understood that signaling can be achieved in various ways. For example, one or more syntax elements, flags, etc., are used in various embodiments to signal information to the corresponding decoder. The above relates to the verb form of the word “signal,” which may also be used as a noun herein.

[0227] As will be obvious to those skilled in the art, the implementation can bring about a variety of signals formatted to carry information that can be stored or transmitted. The information may include, for example, instructions for performing a method or data generated by one of the implementations described. For example, a signal can be formatted to carry an encoded video stream of the embodiment described. 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 encoded video stream and modulating the carrier wave with the encoded video stream. The information carried by the signal may be, for example, analog information or digital information. As is known, the signal can be transmitted over a variety of different wired or wireless links. The signal can be stored in a processor-readable medium.

[0228] Furthermore, embodiments may include, individually or in any combination, one or more of the following features, devices, or aspects across various claims and types: • A bitstream or signal containing syntax elements that carry information generated by any of the embodiments described, Inserting syntactic elements into the signaling that allow the decoder to adapt the decoding process in a manner corresponding to the method used by the encoder. • To create and / or transmit and / or receive and / or decode a bitstream or signal that contains one or more of the described syntax elements or their variations. • Creating and / or transmitting and / or receiving and / or decrypting by any of the embodiments described, • A method, process, apparatus, medium for storing instructions, medium for storing data, or signal according to any of the embodiments described, • A TV, set-top box, mobile phone, tablet, or other electronic device that performs an adaptation of the encoding or decoding process according to any of the embodiments described. • Perform an adaptation of the encoding or decoding process according to any of the embodiments described, and display the resulting image (for example, using a monitor, screen, or other type of display) on a TV, set-top box, mobile phone, tablet, or other electronic device. A TV, set-top box, mobile phone, tablet, or other electronic device that selects a channel (for example, using a tuner) to receive a signal containing an encoded image and performs an adaptation of the decoding process according to one of the embodiments described. A TV, set-top box, mobile phone, tablet, or other electronic device that receives a radio signal containing an encoded image (for example, using an antenna) and performs an adaptation of the encoding process according to any of the embodiments described.

Claims

1. It is a method, Obtaining an information set associated with video data, wherein each sample of each picture represented by the video data is represented by a first color component, a second color component, and a third color component, and the information set is A first syntax element representing a dependency between a first transformation that enables mapping the value of a first component from a first dynamic range to a second dynamic range, and a second transformation that enables mapping the values ​​of the second and third components from a third dynamic range to a fourth dynamic range, Acquisition of a second syntax element present in the information set in response to a first value of the first syntax element, wherein the second syntax element includes a second syntax element indicating by a second value that the first transformation is explicitly signaled in the information set for the first color component and that the second transformation is inferred from the first transformation, and a third value indicating that information enabling the determination of at least one of the first and second transformations is explicitly signaled in the information set, A method comprising decoding the video data based on the first syntax element and the second syntax element.

2. The method according to claim 1, wherein the first color component is a lumina component and the second color component is a chroma component.

3. The method according to claim 1, wherein, in response to the second syntax element being equal to the second value, the second transformation is derived from information representing the gradient of the first transformation.

4. The method according to claim 1, wherein, in response to the second syntax element being equal to the second value, the second transformation is derived from the first transformation by adding a difference value signaled in the information set for the second transformation to information representing the first transformation signaled in the information set.

5. It is a method, The process includes signaling an information set associated with video data, wherein each sample of each picture represented by the video data is represented by a first color component, a second color component, and a third color component, and the information set is A first syntax element representing a dependency between a first transformation that enables mapping the value of a first component from a first dynamic range to a second dynamic range, and a second transformation that enables mapping the values ​​of the second and third components from a third dynamic range to a fourth dynamic range, A method comprising: a second syntax element present in the information set in response to a first value of the first syntax element, wherein the second syntax element has a second value indicating that the first transformation is explicitly signaled in the information set for the first color component and that the second transformation is inferred from the first transformation, and a third value indicating that information enabling the determination of at least one of the first and second transformations is explicitly signaled in the information set.

6. The method according to claim 5, wherein the first color component is a lumina component and the second color component is a chroma component.

7. The method according to claim 5, wherein, in response to the second syntax element being equal to the second value, the second transformation is derived from information representing the gradient of the first transformation.

8. The method according to claim 5, wherein, in response to the second syntax element being equal to the second value, the second transformation is derived from the first transformation by adding the difference value signaled in the information set for the second transformation to the information representing the first transformation signaled in the information set.

9. A device comprising an electronic circuit, wherein the electronic circuit is Obtaining an information set associated with video data, wherein each sample of each picture represented by the video data is represented by a first color component, a second color component, and a third color component, and the information set is A first syntax element representing a dependency between a first transformation that enables mapping the value of a first component from a first dynamic range to a second dynamic range, and a second transformation that enables mapping the values ​​of the second and third components from a third dynamic range to a fourth dynamic range, Acquisition of a second syntax element present in the information set in response to a first value of the first syntax element, wherein the second syntax element includes a second syntax element indicating by a second value that the first transformation is explicitly signaled in the information set for the first color component and that the second transformation is inferred from the first transformation, and a third value indicating that information enabling the determination of at least one of the first and second transformations is explicitly signaled in the information set, A device configured to decode the video data based on the first syntax element and the second syntax element.

10. The device according to claim 9, wherein the first color component is a luminous component and the second color component is a chroma component.

11. The device according to claim 9, wherein, in response to the second syntax element being equal to the second value, the second transformation is derived from information representing the gradient of the first transformation.

12. The device according to claim 9, wherein, in response to the second syntax element being equal to the second value, the second transformation is derived from the first transformation by adding a difference value signaled in the information set for the second transformation to information representing the first transformation signaled in the information set.

13. A device comprising an electronic circuit, wherein the electronic circuit is The process includes signaling an information set associated with video data, wherein each sample of each picture represented by the video data is represented by a first color component, a second color component, and a third color component, and the information set is A first syntax element representing a dependency between a first transformation that enables mapping the value of a first component from a first dynamic range to a second dynamic range, and a second transformation that enables mapping the values ​​of the second and third components from a third dynamic range to a fourth dynamic range, A device comprising a second syntax element present in the information set in response to a first value of the first syntax element, the second syntax element having a second value indicating that the first transformation is explicitly signaled in the information set for the first color component and that the second transformation is inferred from the first transformation, and a third value indicating that information enabling the determination of at least one of the first and second transformations is explicitly signaled in the information set.

14. The device according to claim 13, wherein the first color component is a luminous component and the second color component is a chroma component.

15. The device according to claim 13, wherein, in response to the second syntax element being equal to the second value, the second transformation is derived from information representing the gradient of the first transformation.

16. The device according to claim 13, wherein, in response to the second syntax element being equal to the second value, the second transformation is derived from the first transformation by adding a difference value signaled in the information set for the second transformation to information representing the first transformation signaled in the information set.

17. An information storage medium for storing program code instructions for implementing the method described in claim 1.

18. An information storage medium for storing program code instructions for implementing the method described in claim 5.