Method and device for encoding and decoding images
Patent Information
- Application Number
- BR122026018458
- Authority / Receiving Office
- BR · BR
- Patent Type
- Applications
- Publication Date
- 2026-09-01
Smart Images

Figure 00000000_0000_ABST
Description
1 / 78 “METHOD AND DEVICE FOR ENCODING AND DECODING IMAGES” Divided from BR1120210136118, filed on February 25, 2020. FIELD OF INVENTION 1. TECHNICAL FIELD
[001] At least one of the present embodiments generally refers to a method and a device for image encoding and decoding and, more particularly, to a method and a device for image encoding and decoding with independent luma and chroma partitioning. 2. PREVIOUS TECHNIQUE
[002] To achieve high compression efficiency, image and video coding schemes generally employ prediction and transform to leverage spatial and temporal redundancy in video content. Generally, intraprediction or interprediction is used to exploit intra- or inter-frame correlation, so the differences between the original image block and the predicted image block, often denoted as prediction errors or residual prediction, are transformed, quantized, and entropy-encoded. During encoding, the original image block is usually partitioned / divided into sub-blocks, possibly using quad-tree partitioning. To reconstruct the video, the compressed data is decoded by inverse processes corresponding to prediction, transform, quantization, and entropy coding. 3. BRIEF SUMMARY
[003] In accordance with a general aspect of at least one modality, a method for decoding video data is presented, comprising: - activate a cross-component dependent tool to be used for a chroma block of an image in response to a specified size. Petition 870260073855, dated 07 / 24 / 2026, p. 10 / 117 2 / 78 chroma block and at least one luma block in size co-located with the chroma block; - decode the aforementioned chroma block in response to the aforementioned activation of the aforementioned cross-component-dependent tool.
[004] According to a general aspect of at least one embodiment, an apparatus for decoding video data is presented, comprising one or more processors configured to perform: - activate a cross-component-dependent tool to be used for a chroma block of an image in response to the size of said chroma block and the size of at least one luma block co-located with the chroma block; and - decode the aforementioned chroma block in response to the aforementioned activation of the aforementioned cross-component-dependent tool.
[005] According to another general aspect of at least one mode, a bit stream is formatted to include the signal generated according to the encoding methods described above.
[006] In accordance with a general aspect of at least one modality, a method for encoding video data is presented, comprising: - activate a cross-component dependent tool to be used for a chroma block of an image in response to the size of said chroma block and the size of at least one luma block co-located with the chroma block; - to encode the aforementioned chroma block in response to the aforementioned activation of the aforementioned cross-component-dependent tool.
[007] According to a general aspect of at least one embodiment, an apparatus for encoding video data is presented, comprising one or more processors configured to perform: Petition 870260073855, dated 07 / 24 / 2026, p. 11 / 117 3 / 78 - activate a cross-component-dependent tool to be used for a chroma block of an image in response to the size of said chroma block and the size of at least one luma block co-located with the chroma block; and - to encode the aforementioned chroma block in response to the aforementioned activation of the aforementioned cross-component-dependent tool.
[008] According to another general aspect of at least one mode, a bit stream is formatted to include the signal generated according to the encoding methods described above.
[009] According to another general aspect, the method for decoding or encoding video or the apparatus for decoding or encoding video further comprises determining the position in the image of a given sample position in the chroma block, determining a colocalized luma block being a luma block comprising the colocalized luma sample with the position in the chroma block, determining neighboring luma samples of the colocalized luma block, determining a luma value of the determined neighboring luma samples, determining a scaling factor based on the determined luma value, and applying a scale to the residual chroma block according to the scaling factor.
[010] One or more of the present embodiments also provide a computer-readable storage medium having stored instructions for encoding or decoding video data according to at least part of any of the methods described above. One or more embodiments also provide a computer-readable storage medium having stored a bitstream generated according to the encoding methods described above. One or more embodiments also provide a method and apparatus for transmitting or receiving the bitstream generated according to the encoding methods described above. One or more embodiments also provide a computer program product, Petition 870260073855, dated 07 / 24 / 2026, page 12 / 117 4 / 78 including instructions for performing at least part of any of the methods described above. 4. BRIEF SUMMARY OF THE DRAWINGS
[011] Figure 1 represents a Coding Tree Unit (CTU);
[012] Figure 2 represents a coding tree unit divided into coding units, prediction units and transform units;
[013] Figures 3 and 4 represent a CTU divided into Coding Units using Quad-Tree Plus Binary-Tree (QTBT);
[014] Figure 5 illustrates the division modes of a coding unit, as defined by the Quad-Tree plus Binary-Tree coding tool.
[015] Figure 6 illustrates additional division modes of a coding unit, for example, asymmetric binary division modes and triple tree division modes;
[016] Figure 7 represents a flowchart of a method for activating or deactivating a cross-component dependent coding tool according to a modality;
[017] Figures 8A, 8B, 8C, 8D illustrate the activation / deactivation principle of a cross-component dependent coding tool according to the modality of Figure 7;
[018] Figure 9 represents a flowchart of a method for activating or deactivating a cross-component dependent coding tool according to a modality;
[019] Figure 10 illustrates a chroma block and its collocated luma blocks according to an example;
[020] Figure 11 illustrates the activation / deactivation principle of a cross-component dependent coding tool according to the modality of Figure 9; Petition 870260073855, dated 07 / 24 / 2026, page 13 / 117 5 / 78
[021] Figure 12 represents a flowchart of a method for activating or deactivating a cross-component dependent coding tool according to a modality;
[022] Figures 13 and 14 illustrate the activation / deactivation principle of a cross-component dependent coding tool according to the modality of Figure 12;
[023] Figure 15 represents a flowchart of a method for activating or deactivating a cross-component dependent coding tool according to a modality;
[024] Figure 16 illustrates the activation / deactivation principle of a cross-component dependent coding tool according to the modality of Figure 15;
[025] Figure 17 represents a flowchart of a method for obtaining a scale factor or scale factor index for a chroma block according to a modality;
[026] Figure 18 represents a current chroma block and some neighboring chroma blocks;
[027] Figures 19, 20 and 21 illustrate the activation / deactivation principle of a cross-component dependent coding tool according to a modality;
[028] Figure 22 represents a flowchart of a method for determining a scaling factor to be used in the residual chroma scale according to a modality;
[029] Figures 23A, 23B, 23C and 23D represent a chroma block and a colocalized luma block;
[030] Figures 24A and 24B illustrate examples of distances between a sample of upper left neighboring luma and neighboring chroma samples; Petition 870260073855, dated 07 / 24 / 2026, page 14 / 117 6 / 78
[031] Figure 25 represents a flowchart of a method for verifying luma sample availability based on its placed chroma samples and the current block chroma samples.
[032] Figure 26 illustrates a block diagram of a video encoder according to a modality;
[033] Figure 27 illustrates a block diagram of a video decoder according to a modality; and
[034] Figure 28 illustrates a block diagram of an example of a system in which various aspects and modalities are implemented. 5. DETAILED DESCRIPTION
[035] In HEVC encoding, an image is partitioned into square-shaped CTUs with a configurable size typically 64x64, 128x128, or 256x256. A CTU is the root of a quad-tree partition into 4 square encoding units (CU) of equal size, i.e., half the size of the parent block in width and height, as illustrated in Figure 1. A quad-tree is a tree in which a parent node can be split into four child nodes, each of which can become a parent node for another split into four child nodes. In HEVC, an encoding block (CB) is partitioned into one or more prediction blocks (PB) and forms the root of a quad-tree partitioning into transform blocks (TBs).Corresponding to the Coding Block, Prediction Block, and Transform Block, a Coding Unit (CU) includes the Prediction Units (PUs) and the tree-structured set of Transform Units (TUs). A PU includes the prediction information (e.g., intraprediction or Inter parameters) for all color components, and a TU includes the residual coding syntax structure for each color component, as illustrated in Figure 2. The Intra or Inter coding mode is assigned to a CU. The size of a CB, PB, and TB of the luma component applies to the corresponding CU, PU, and TU. Petition 870260073855, dated 07 / 24 / 2026, page 15 / 117 7 / 78
[036] In more recent coding systems, a CTU is the root of a coding tree partitioning into Coding Units (CUs). A coding tree is a tree in which a parent node (usually corresponding to a block) can be split into child nodes (e.g., into 2, 3, or 4 child nodes), each of which can become a parent node for further splitting into child nodes. In addition to the quad-tree splitting mode, new splitting modes (symmetric binary tree splitting modes, asymmetric binary tree splitting modes, and triple tree splitting modes) are also defined, which increases the total number of possible splitting modes. The coding tree has a unique root node, e.g., a CTU. A leaf of the coding tree is an end node of the tree. Each node in the coding tree represents a block that can be split into smaller blocks also called sub-blocks.Once the partitioning of a CTU into CUs is determined, CUs corresponding to the leaves of the encoding tree are encoded. The partitioning of a CTU into CUs and the encoding parameters used to encode each CU (corresponding to a leaf of the encoding tree) can be determined on the encoder side through a rate distortion optimization procedure.
[037] Figure 3 represents a partitioning of a CTU into CUs where the encoding units can be divided according to quad-tree and symmetric binary tree splitting modes. This type of splitting is known as QTBT (Quad-Tree plus Binary Tree). The symmetric binary tree splitting modes are defined to allow a CU to be split horizontally or vertically into two encoding units of equal size. In Figure 3, the solid lines indicate quad-tree partitioning and the dashed lines indicate the binary splitting of a CU into symmetric CUs. Figure 4 represents the associated encoding tree. In Figure 4, the solid lines represent quad-tree splitting and the dashed lines represent the binary splitting that is spatially embedded in the leaves of the quad-tree. Petition 870260073855, dated 07 / 24 / 2026, page 16 / 117 8 / 78 tree. Figure 5 represents the 4 split modes used in Figure 3. The NO_SPLIT mode indicates that the UC is no longer split. The QT_SPLIT mode indicates that the UC is split into 4 quadrants according to a quad-tree, the quadrants being separated by two split lines. The HOR mode indicates that the UC is split horizontally into two UCs of equal size, separated by a split line. VER indicates that the UC is split vertically into two UCs of equal size, separated by a split line. The split lines are represented by dashed lines in Figure 5.
[038] With QTBT division, a CU has a square or rectangular shape. The size of a coding unit is a power of 2 and typically ranges from 4 to 128 in both directions (horizontal and vertical). QTBT has several differences with HEVC division.
[039] First, the QTBT splitting of a CTU is composed of two stages. A CTU is first split into a quad-tree form. Each leaf of the quad-tree can then be split in a binary form. This is illustrated on the right of Figure 3, where the solid lines represent the quad-tree decomposition phase and the dashed lines represent the binary decomposition that is spatially embedded in the leaves of the quad-tree.
[040] Secondly, the partition structure of the luma and Chroma block can be separated and decided independently, mainly in internal slices.
[041] Additional partitioning types can also be used. Asymmetric binary tree (ABT) splitting modes are defined to allow a CU to be split horizontally into two encoding units with respective rectangular sizes (w, h / 4) and (w, 3h / 4) or vertically into two encoding units with respective rectangular sizes (w / 4, h) and (3w / 4, h)) as shown in Figure 6. The two encoding units are Petition 870260073855, dated 07 / 24 / 2026, page 17 / 117 9 / 78 separated by a dividing line represented by a dashed line in Figure 6.
[042] Figure 6 also illustrates triple tree division modes according to which a coding unit is divided into three coding units in the vertical and horizontal directions. In the horizontal direction, a CU is divided into three coding units of respective sizes (w, h / 4), (w, h / 2) and (w, h / 4). In the vertical direction, a CU is divided into three coding units of respective sizes (w / 4, h), (w / 2, h) and (w / 4, h).
[043] The division of a coding unit is decided on the encoder side by means of rate distortion optimization, which consists of determining the CTU representation with minimum rate distortion cost.
[044] In the present application, the term block or image block may be used to refer to any one of a CTU, a CU, a PU, a TU, a CB, a PB and a TB. In addition, the term block or image block may be used to refer to a macroblock, a partition and a subblock as specified in H.264 / AVC or other video coding standards and, more generally, to refer to a series of samples of various sizes.
[045] In the present application, the terms reconstructed and decoded may be used interchangeably, the terms pixel and sample may be used interchangeably, the terms image, slice, block, picture and “frame” may be used interchangeably. Normally, but not necessarily, the term reconstructed is used on the encoder side, while decoded is used on the decoder side.
[046] The use of these new topologies allows for significantly improved coding efficiency. In particular, a significant gain is obtained for the chroma components. This gain comes from the separation / independence of the Luma and Chroma coding trees (or partitioning). Petition 870260073855, dated 07 / 24 / 2026, page 18 / 117 10 / 78
[047] However, this separation of the Luma and Chroma encoding tree at the CTU level presents some problems in terms of hardware implementation. A CTU is typically sized 128x128 or 256x256. The complete separation of the encoding trees of the Luma and Chroma components implies that these Luma and Chroma are also completely separated in the compressed domain, therefore they also appear separately in the encoded bitstream. This causes some problems for decoder implementations, where one would like to ensure that a decoding pipeline can be achieved at a maximum decoding unit size that can be smaller than the CTU size. Typically, a 64x64-based decoder pipeline is desired for some decoder implementation. To do this, a maximum transform block size equal to 64x64 was chosen in the versatile video encoding test model.
[048] Combining the use of separate luma / chroma coding trees with coding tools involving an interdependence between the chroma and its colocalized luma samples (e.g., luma-dependent chroma residual scaling) can be problematic. In fact, to process a chroma block, the chroma block's luma samples colocalized with the chroma block in question must be processed before the chroma block. If the luma block is large in size, this can generate a large delay in the structural pipeline before it is able to process the chroma block.
[049] At least one embodiment applies restriction(s) on the combined use of separate luma / chroma coding trees and coding tools involving an interdependence between the chroma and its colocalized luma samples (e.g., chroma residual scale, Crossed Component Linear Model known as CCLM) in response to the size of at least one colocalized luma-coded block with the chroma-coded block. Petition 870260073855, dated 07 / 24 / 2026, page 19 / 117 11 / 78
[050] At least one modality activates or deactivates the component-dependent coding tool (e.g., luma-dependent chroma residual scaling for chroma-coded blocks) in response to the size (or horizontal / vertical dimensions) of the chroma-coded block and the luma-coded blocks colocalized with samples of the chroma-coded block considered.
[051] At least one embodiment provides a solution for chroma blocks in the case where residual chroma scaling is disabled due to the restrictions mentioned above on the combined use of separate luma / chroma encoding tree and residual chroma scaling.
[052] Luma-dependent chroma residual scaling is an example of an encoding tool that involves an interdependence between chroma and its colocalized luma samples. Luma-dependent chroma residual scaling is disclosed in JVET-M0427 by Lu et al, entitled CE12: Mapping functions (test CE12-1 and CE12-2). Luma-dependent chroma residual scaling comprises the use of a scaling table or inverse scaling indexed by luma values. The table is explicitly signaled in the stream or deduced from a table encoded in the stream.
[053] On the encoder side, the process works as follows. When encoding a chroma block, a luma value, representative of the colocalized luma block, is calculated. This is typically the average of the luma samples in the (or reconstructed) luma prediction block colocalized with the chroma block under consideration. From the calculated luma value, a scale value is obtained from the scale table. The scale value is applied as a multiplicative factor to the chroma prediction residual, before applying the transform and then the quantization to the chroma residual signal.
[054] On the decoder side, the process works as follows. When decoding a chroma block, a luma value, representative of the luma block Petition 870260073855, dated 07 / 24 / 2026, page 20 / 117 12 / 78, colocalized with the chroma block under consideration, is calculated. This is typically the average of the luma samples in the (or reconstructed) luma prediction block colocalized with the chroma block under consideration. From the calculated luma value, an inverse scaling value is obtained from the inverse scaling table signaled in the stream or deduced from the data signaled in the stream. The inverse scaling value is applied to the residual of the chroma prediction, after applying inverse quantization and inverse transform.
[055] JVET-M0427 suggests disabling residual chroma scaling in the case of using a separate luma / chroma encoding tree. This solution generates encoding loss for the chroma components.
[056] In the various modes, separate luma / chroma tree partitioning is enabled, i.e., luma and chroma partitioning can be achieved independently. The proposed modes improve encoding efficiency, especially for chroma components.
[057] Hereafter, the chroma format is considered 4:2:0, that is, the dimensions of the chroma components are half the dimensions of the luma component. It will be appreciated, however, that the present embodiments are not restricted to this specific chroma format. Other chroma formats may be used by modifying the ratio between the luma dimensions and the chroma dimensions.
[058] For simplification and readability purposes, in the following figures, the same resolution is represented for the luma and chroma components, even if the actual resolutions are different, such as, for example, in the case of the 4:2:0 chroma format. In this case, a simple scale should be applied to the chroma images.
[059] The maximum horizontal / vertical dimensions Wmax / Hmax are specified to restrict the use of luma-dependent residual chroma scaling to a given chroma-encoded block, in the case where separate luma / chroma tree partitioning is enabled. The image is divided into areas Petition 870260073855, dated 07 / 24 / 2026, page 21 / 117 13 / 78 non-overlapping rectangular areas of size Wmax / Hmax for luma, WmaxC / HmaxC for chroma (typically Wmax = Hmax = 32 for luma, or for chroma WmaxC = HmaxC = 16), named below authorized rectangular areas (ARAs). In multiple variant embodiments, the activation of the luma-dependent residual chroma scale (LDCRS observed below) is conditioned on the position and size of the chroma block and the luma blocks colocalized with the grid-related chroma block ARAs.
[060] The various modalities refer to luma blocks colocalized with the chroma block considered. Luma blocks colocalized with a chroma block can be defined as: - The luma block contains a pixel colocated with a specific position in the chroma block, such as the center of the chroma block, for example, defined as the relative position ((x0 + Wc) / 2, (y0 + Hc) / 2) in the chroma block, where (x0, y0) corresponds to the relative position in the chroma image of the upper left sample of the chroma block, and (Wc, Hc) are the horizontal / vertical dimensions of the chroma block. The upper left position in the chroma block is defined as the relative position (x0, y0) in the chroma image. The lower right position in the chroma block is defined as the relative position (x0 + Wc-1, y0 + Hc-1) in the chroma image. The upper right position in the chroma block is defined as the relative position (x0 + Wc-1, y0) in the chroma image. The lower left location in the chroma block is defined as the relative position. (x0, y0 + Hc-1) in the chroma key image - the colocalized luma blocks with various positions given in the chroma block, such as those mentioned above; for example, the colocalized luma blocks Petition 870260073855, dated 07 / 24 / 2026, p. 22 / 117 14 / 78 with the 4 chroma block positions top left, top right, bottom left, bottom right are considered (see Figure 10); or - the luma blocks colocalized with all the chroma sample positions of the considered chroma block. Mode 1 - LDCRS disabled in cases where the chroma block crosses ARA boundaries.
[061] In at least one mode, if the chroma block under consideration is not entirely contained within a single chroma ARA, the LDCRS is disabled. This corresponds to the following equations: If ((x0 / WmaxC)! = ((X0 + Wc - 1) / WmaxC)) || ((y0 / HmaxC)! = ((y0 + Hc - 1) / HmaxC)), LDCRS is disabled where x || y is a boolean logical OR of x and y. “! =” means “Not equal to”.
[062] A simplified block diagram of the process is shown in Figure 7. Step 300 checks if the chroma block is within a single chroma ARA. If this condition is true, LDCRS is activated (step 303). If this condition is false, LDCRS is deactivated (step 302).
[063] Figures 8A, 8B, 8C, 8D illustrate some cases of chroma partitioning, with gray blocks corresponding to chroma blocks where LDCRS is enabled and white blocks corresponding to chroma blocks where LDCRS is disabled. The chroma blocks are outlined by bold black lines. The grid defined by WmaxC and HmaxC is indicated with dashed lines: - In Figure 8A, the 2 chroma blocks cross several chroma ARAs; according to the current mode, LDCRS is disabled for both chroma blocks; - In Figure 8B, 2 chroma blocks are inside a chroma ARA; according to the current mode, LDCRS is activated for both chroma blocks; Petition 870260073855, dated 07 / 24 / 2026, p. 23 / 117 15 / 78 - In Figure 8C, one rectangular vertical chroma block crosses two chroma ARAs; according to the current mode, LDCRS is disabled for this chroma block. All other chroma blocks are within a chroma ARA, and therefore LDCRS can be enabled for those chroma blocks; - In Figure 8D, a horizontal chroma block crosses two chroma ARAs; according to the current mode, LDCRS is disabled for this chroma block. All other chroma blocks are within a chroma ARA, and therefore LDCRS can be enabled for those chroma blocks. Mode 2 - LDCRS disabled if the chroma block crosses the edges of the chroma ARAs or if at least one of the colocalized luma blocks crosses the edges of the colocalized luma ARAs.
[064] In one mode, LDCRS is disabled if at least one of the following conditions is true: • The chroma block in question is not entirely contained within a single chroma ARA. • At least one of the luma blocks colocalized with the chroma block in question is not entirely contained within the luma ARA colocalized with the chroma ARA; that is, it crosses the boundaries of the colocalized luma ARAs.
[065] A simplified block diagram of the process is shown in Figure 9. Step 400 checks if the chroma block is within a single chroma ARA. If this condition is false, LDCRS is disabled (step 401). If this condition is true, the luma blocks colocalized with the considered chroma block are identified (step 402). Step 403 checks if all colocalized luma blocks are within the chroma ARA. If this condition is false, LDCRS is disabled (step 404). If this condition is true, LDCRS is enabled (step 405). Petition 870260073855, dated 07 / 24 / 2026, page 24 / 117 16 / 78
[066] Figure 11 provides two examples of the current mode. In the upper part of the figure, the chroma block is contained within a single chroma ARA (upper left corner) and has 3 colocalized luma blocks (coloc luma blocks 1, 2, and 3, upper right corner). Two of them (coloc luma blocks 1 and 2, in dashed blocks) are inside the colocalized luma ARA, while a third (coloc luma block 3) is outside the colocalized luma ARA. Because this third luma block is outside the colocalized luma ARA, LDCRS is disabled according to the current mode.
[067] At the bottom of the figure, the chroma block is contained within a single chroma ARA and has 3 colocalized luma blocks (coloc luma blocks 1, 2, and 3). All three are within the colocalized luma ARA. LDCRS is activated according to the current mode.
[068] The current VVC specification supports three types of splitting: Quad Tree (QT), Binary Tree (BT, Horizontal or Vertical), and Ternary Tree (TT, Horizontal or Vertical), as illustrated in Figures 5 and 6. In one variant, BT and TT splits are activated from a certain ARA dimension (e.g., 32x32 for luma, 16x16 for chroma when the 4:2:0 chroma format is considered). Above this dimension, only QT splitting, or no splitting, is activated. Therefore, the conditions presented in modalities 1 and 2 are systematically satisfied, except for the case of no splitting of blocks larger than the luma ARA / chroma ARA dimensions (e.g., for a 64x64 luma block not split into 4 32x32 blocks).
[069] In at least one mode, BT and TT splits are activated only for luma block sizes less than or equal to 32x32 or chroma block sizes less than or equal to 16x16 (when the 4:2:0 chroma format is used). Above this size, only QT splitting (or no splitting) is activated. The restriction applies to LDCRS mode or CCLM mode. The process is illustrated. Petition 870260073855, dated 07 / 24 / 2026, p. 25 / 117 17 / 78 in Figure 11C, considering a luma ARA of size 32x32 and a chroma ARA of size 16x16. In step 1300, it is checked whether the block considered is a luma block of size greater than or equal to 64x64 or a chroma block of size greater than or equal to 32x32. If this test is true, step 1301 disables BT and TT splitting, while allowing no splitting and QT splitting. If this test is false, step 1302 does not allow splitting, QT splitting, BT, and TT.
[070] In at least one embodiment, to reduce chroma processing latency in the case of LDCRS or CCLM mode, when a square luma block larger than the luma ARA is not split, the corresponding chroma block can only be split into 4 blocks per QT split which may possibly be further split, or may not be split at all. For example, considering a luma ARA of size 32x32 and a chroma ARA of size 16x16, when a square luma block of size 64x64 is not split, the corresponding chroma block (of size 32x32 in 4:2:0 format) can only be split into 4 blocks of 16x16 per QT split which may be further split (dashed line in the figure) or may not be split at all. The cases that follow these restrictions are shown in Figure 11D.
[071] In at least one embodiment, to reduce chroma processing latency in the case of LDCRS or CCLM mode, when a square luma block larger than the luma ARA is split into 4 blocks by QT splitting, the corresponding chroma block can only be split into 4 blocks by QT splitting which can be further split or cannot be split at all. For example, considering a luma ARA of size 32x32 and a chroma ARA of size 16x16, when a square luma block of size 64x64 is split into 4 blocks of 32x32, the corresponding chroma block (of size 32x32 in 4:2:0 format) can only be split into 4 blocks of 16x16 by QT splitting which can be split Petition 870260073855, dated 07 / 24 / 2026, page 26 / 117 18 / 78 subsequently (dotted line in the figure) or cannot be divided at all. The cases that follow these restrictions are shown in Figure 11E.
[072] In at least one embodiment, to reduce chroma processing latency in the case of LDCRS or CCLM mode, when a square luma block larger than the luma ARA is split into 2 blocks with horizontal BT splitting, the corresponding chroma block can only be split into 2 blocks by horizontal BT splitting or into 4 blocks by QT splitting. For example, considering a luma ARA of size 32x32 and a chroma ARA of size 16x16, when a square luma block of size 64x64 is split into 2 blocks of 32 rows and 64 columns, the corresponding chroma block (of size 32x32 in 4:2:0 Format) can only be split into 2 blocks of 16 rows and 32 columns by horizontal BT splitting or into 4 16x16 blocks by QT splitting. The cases that follow these restrictions are shown in Figure 11F.
[073] In at least one embodiment, to reduce processing chroma latency in the case of LDCRS or CCLM mode, when a square luma block larger than the luma ARA is not split or split into 4 blocks by QT split or split into 2 blocks by horizontal QT split, the corresponding chroma block cannot be split into 2 blocks by vertical binary split, but can be split into 4 blocks by QT split, or 2 blocks by horizontal BT split or not split.
[074] In at least one embodiment, to reduce chroma processing latency in the case of LDCRS or CCLM mode, when a square luma block larger than the luma ARA is split into 2 blocks with vertical BT splitting, the corresponding chroma block can only be split into 2 blocks by vertical BT splitting. For example, considering a luma ARA of size 32x32 and a chroma ARA of size 16x16, when a square luma block of size 64x64 is split into 2 blocks of 64 rows and 32 columns, the chroma block Petition 870260073855, dated 07 / 24 / 2026, p. 27 / 117 The corresponding 19 / 78 can only be divided into 2 blocks of 32 rows and 16 columns. The cases that follow these restrictions are shown in Figure 11G. Example of syntax based on the VTM5.0 syntax described in the JVET-N1001 document (version 9 - date 06 / 25 / 2019 13:45:21)
[075] The text in small font below corresponds to an example of syntax, corresponding to an example of implementation of the modalities described above, based on the syntax described in the JVET-N1001 version 9 document. The section numbering corresponds to the numbering used in JVET-N1001 version 9. Version in which BT / TT splitting is prohibited for blocks larger than VDPU.
[076] The syntax description below corresponds to the mode that restricts partitioning, as described above. Changes in the VTM5 v9 specification are highlighted in gray. 6.4.2 Allowed binary division process
[077] The inputs for this process are: - a binary split mode called btSplit, - a cbWidth encoding block width in luma samples, - a cbHeight encoding block height in luma samples, - a location (x0, y0) of the upper-left luma sample of the considered encoding block relative to the upper-left luma sample of the image, - a multi-type tree depth mttDepth, - a maximum multi-type tree depth with maxMttDepth offset, - a maximum binary tree size maxBtSize, - a partition index partIdx, - a treeType variable specifying whether a single tree (SINGLE_TREE) or a double tree is used to partition the CTUs, and when a double tree is Petition 870260073855, dated 07 / 24 / 2026, page 28 / 117 20 / 78 is used if the luma (DUAL_TREE_LUMA) or chroma (DUAL_TREE_CHROMA) components are currently being processed; The output of this process is the variable allowBtSplit. Table 6-2 - Specification of parallelTtSplit and cbSize based on btSplit btSplit == SPLIT BT VER btSplit == SPLIT BT HOR parallelTtSplit SPLIT TT VER SPLIT TT HOR cbSize cbWidth cbHeight
[078] The variables parallelTtSplit and cbSize are derived as specified in Table 6-2.
[079] The allowBtSplit variable is derived as follows: If one or more of the following conditions are true, allowBtSplit is set to FALSE: - cbSize is less than or equal to MinBtSizeY - cbWidth is greater than maxBtSize - cbHeight is greater than maxBtSize - treeType is not equal to SINGLE_TREE and cbWidth is greater than 32 - treeType is not equal to SINGLE_TREE and cbHeight is greater than 32 - mttDepth is greater than or equal to maxMttDepth - treeType equals DUAL_TREE_CHROMA and (cbWidth / SubWidthC)* (cbHeight / SubHeightC) is less than or equal to 16 [Ed. (SL): is “less than or” necessary here?] Otherwise, if all of the following conditions are true, allowBtSplit is set to FALSE. Otherwise, allowBtSplit is set to TRUE. 6.4.3 Allowed ternary division process
[080] The inputs for this process are: - a ternary split mode ttSplit, - a cbWidth encoding block width in luma samples, Petition 870260073855, dated 07 / 24 / 2026, page 29 / 117 21 / 78 - a cbHeight encoding block height in luma samples, - a location (x0, y0) of the upper-left luma sample of the considered encoding block relative to the upper-left luma sample of the image, - a multi-type tree depth mttDepth - a maximum multi-type tree depth with maxMttDepth offset, - a maximum ternary tree size maxTtSize, - a treeType variable specifying whether a single tree (SINGLE_TREE) or a double tree is used to partition the CTUs and, when a double tree is used, whether luma (DUAL_TREE_LUMA) or chroma (DUAL_TREE_CHROMA) components are currently being processed.
[081] The output of this process is the allowTtSplit variable: Table 6-3 - cbSize specification based on ttSplit ttSplit == SPLIT TT SEE ttSplit == SPLIT TT HOR cbSize cbWidth cbHeight
[082] The cbSize variable is derived as specified in Table 6-3.
[083] The allowTtSplit variable is derived as follows: If one or more of the following conditions are true, allowTtSplit is set to FALSE: - cbSize is less than or equal to 2 * MinTtSizeY - cbWidth is greater than Min (MaxTbSizeY, maxTtSize) - cbHeight is greater than Min (MaxTbSizeY, maxTtSize) - treeType is not equal to SINGLE_TREE and cbWidth is greater than 32 - treeType is not equal to SINGLE_TREE and cbHeight is greater than 32 - mttDepth is greater than or equal to maxMttDepth - x0 + cbWidth is greater than pic_width_in_luma_samples - y0 + cbHeight is greater than pic_height_in_luma_samples Petition 870260073855, dated 07 / 24 / 2026, p. 30 / 117 22 / 78 - treeType is equal to DUAL_TREE_CHROMA and (cbWidth / SubWidthC) * (cbHeight / SubHeightC) is less than or equal to 32 Otherwise, allowTtSplit is set to TRUE. Version in which CCLM is prohibited if a VDPU is split into BT or TT.
[084] The syntax description below corresponds to a mode in which CCLM (or CRS) is not enabled for partitions that do not respect the partitioning restrictions described above. For example, CCLM is disabled when the chroma block is sized 32x16, 16x32, or when its placed luma block is 64x32 or 32x64. For other cases, CCLM (or CRS) is enabled. Changes in the VTM5 v9 specification are highlighted in gray. 1.1.1 Derivation process for the intraprediction mode of chroma
[085] The inputs for this process are: - a luma location (xCb, yCb) specifying the top-left sample of the current chroma encoding block relative to the top-left luma sample of the current image, - a cbWidth variable specifying the width of the current encoding block in luma samples, - a cbHeight variable specifying the height of the current encoding block in luma samples; - a treeType variable specifying whether a single tree (SINGLE_TREE) or a double tree is used to partition the CTUs.
[086] In this process, the chroma intraprediction mode IntraPredModeC [xCb] [yCb] is derived.
[087] The corresponding luma intraprediction mode lumaIntraPredMode is derived as follows: Petition 870260073855, dated 07 / 24 / 2026, p. 31 / 117 23 / 78 - If intra_mip_flag[xCb][yCb] equals 1, lumaIntraPredMode is derived using IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2] and sizeId set equal to MipSizeId[xCb][yCb], as specified in Table 8-4. Otherwise, lumaIntraPredMode is set equal to IntraPredModeY [xCb + cbWidth / 2] [yCb + cbHeight / 2]; - A variable cclmEnabled is derived by invoking the x.xx subclause [Ed. (EF): tbd subclause number] Cross-component chroma intraprediction mode verification process.
[088] The intra chroma prediction mode IntraPredModeC [xCb] [yCb] is derived using intra_chroma_pred_mode [xCb] [yCb] and lumaIntraPredMode as specified in Table 8-5 and Table 8-6: Table 8.5 - Specification of IntraPredModeC [xCb] [yCb] depending on intra_chroma_pred_mode [xCb] [yCb] and lumaIntraPredMode when cclmEnabled is equal to 0 intra_chroma_pred_mode[ xCb ][ yCb ] lumaIntraPredMode 0 50 18 1 50 18 1 Table 8-6 - Specification of IntraPredModeC [xCb] [yCb] depending on intra_chroma_pred_mode [xCb] [yCb] and lumaIntraPredMode when cclmEnabled is equal to 1 Petition 870260073855, dated 07 / 24 / 2026, p. 32 / 117 24 / 78 intra_chroma_pred_mode[ xCb ][ yCb ] lumaIntraPredMode 0 50 18 1 81 81 81 81 5 82 82 82 82 82 6 83 83 83 83 83 7 0 50 18 1
[089] When chroma_format_idc equals 2, the intraprediction mode of chroma Y is derived using the intraprediction mode of chroma X in Table 8-5 and Table 8-6, as specified in Table 8-7, and the intraprediction mode of chroma X is defined equal to the intraprediction mode of chroma Y afterwards: Table 8-7 - Specification of the 4:2:2 mapping process from intraprediction mode .chroma X to mode Y when .chroma_format_idc equals 2 X mode 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 26 27 28 29 30 31 32 33 34 35 Y mode 18 20 22 23 24 26 28 30 32 33 34 35 36 37 38 39 40 41 X mode 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 Y mode 42 43 44 44 44 45 46 46 46 47 48 48 48 49 50 51 52 52 54 54 54 55 56 56 56 57 58 59 60 xxx Cross-component chroma intraprediction mode verification process Petition 870260073855, dated 07 / 24 / 2026, page 33 / 117 25 / 78
[090] The inputs for this process are: - a luma location (xCb, yCb) specifying the top-left sample of the current chroma encoding block relative to the top-left luma sample of the current image, - a cbWidth variable specifying the width of the current encoding block in luma samples, - a cbHeight variable specifying the height of the current encoding block in luma samples.
[091] The output for this process is: - an lmEnabled flag specifying whether a cross-component chroma intraprediction mode is enabled or not for the current chroma encoding block.
[092] In this process, cclmEnabled is derived as follows: - wColoc and hColoc are defined as equal to the width and height of the luma encoding block placed covering the location given by (xCb << 1, yCb << 1)); - cclmEnabled is set to 1; - If sps_cclm_enabled_flag equals 0, cclmEnabled will be set equal to 0; Otherwise, if treeType is equal to SINGLE_TREE, cclmEnabled is set equal to 1; Otherwise, if one of the following conditions is false, cclmEnabled is set to 0; - cbWidth or cbHeight is greater than or equal to 32 and cbWidth is not equal to cbHeight; - wColoc or hColoc is greater than or equal to 64, and wColoc is not equal to hColoc. Mode 2a - variant using an inferred qualification indicator for luma ARAs; generalization for CCLM Petition 870260073855, dated 07 / 24 / 2026, p. 34 / 117 26 / 78
[093] The concepts described above can also be applied to other luma-to-chroma modes, such as CCLM.
[094] In a variant of mode 2, CCLM (or LDCRS) is disabled if at least one of the following conditions is true: • The chroma block in question is not entirely contained within a single chroma ARA; • A luma ARA colocated with a chroma ARA contains at least one luma block not entirely within the luma ARA; that is, a luma block crossing the edges of the colocated luma ARA.
[095] This can be implemented by using an inferred flag hereafter called luma_blocks_inside_flag, assigned to each luma ARA. For each luma ARA, the flag is inferred from the luma partitioning tree (selected in the encoder or parsed in the decoder). After the luma partitioning tree is generated for the CTU (or VDPU), the flag for each luma ARA of the CTU (or VDPU) is inferred as follows. If all luma blocks of a given luma ARA are strictly included in the luma ARA, the flag is set to true. Otherwise, if at least one luma block crosses one or more of the luma ARA boundaries, the flag is set to false.
[096] The flag can then be used as follows. The condition (mentioned above): • A luma ARA colocated with a chroma ARA contains at least one luma block not entirely within the luma ARA; that is, a luma block crossing the edges of the colocated luma ARA.
[097] It can be formulated equivalently as follows: • The luma_blocks_inside_flag flag of the luma ARA co-located with the chroma ARA is false. Petition 870260073855, dated 07 / 24 / 2026, p. 35 / 117 27 / 78 Mode 2b - LDCRS or CCLM activated if it is inside its placed luma block.
[098] In another variant, luma-dependent mode (LDCRS or CCLM) is disabled if the chroma block is not entirely within its placed luma block.
[099] This can be expressed as follows. LDCRS or CCLM is disabled if one of the following conditions is false: • The luma block placed with the upper left sample of the chroma block (at position (x0, y0) and size (Wc, Hc)) is within the chroma ARA of 32x32 • xColocY <= 2 * x0 • xColocY + wColocY - 1 >= 2 * (x0 + Wc - 1) • yColocY <= 2 * y0 • yColocY + hColocY - 1 >= 2 * (y0 + Hc - 1)
[0100] (xColocY, yColocY) being the position of the upper left sample of the luma block placed with the upper left sample of the chroma block and (wColocY, hColocY) being the dimensions of this luma block. Mode 2c - use of a fallback mode when LDCRS or CCLM is disabled.
[0101] At least one mode is related to CCLM mode (and its MDLM variant). In this mode, it is considered that there is a conventional CCLM mode, plus a fallback CCLM mode. The fallback CCLM can be used when the conventional CCLM mode is not activated due to the restrictions described in this application.
[0102] The block diagram in Figure 11A provides a simplified block diagram of the CCLM process activation. In step 112, the conditions for activating the conventional CCLM mode for a given chroma block are Petition 870260073855, dated 07 / 24 / 2026, page 36 / 117 28 / 78 verified (such conditions are described in various embodiments of the current application). If all activation conditions are met for the given chroma block, the conventional CCLM mode is activated and can be used by the encoder / decoder (113). If one of the activation conditions is not met for the given chroma block, the conventional CCLM mode is deactivated and the fallback CCLM mode is activated and can be used by the encoder / decoder (114).
[0103] In at least one embodiment, the fallback CCLM mode corresponds to a mode where the CCLM parameters are derived from luma and chroma samples in the immediate vicinity of the chroma block considered (for example, chroma samples belonging to one or two rows at the top of the chroma block and their placed luma samples and / or chroma samples belonging to one or two columns to the left of the chroma block and their placed luma samples). Possible CCLM fallback modes
[0104] In at least one mode, the fallback CCLM mode uses CCLM parameters derived from chroma and luma samples neighboring the current CTU. For example, one or two rows at the top of the CTU and / or one or two columns to the left of the CTU are used.
[0105] In at least one mode, the substitute CCLM mode uses CCLM parameters derived from chroma and luma samples adjacent to the current VDPU. For example, one or two rows at the top of the VDPU and / or one or two columns to the left of the VDPU are used.
[0106] In at least one embodiment, the substitute CCLM mode uses CCLM parameters derived from chroma and luma samples adjacent to the current 16x16 chroma ARA and its corresponding 32x32 luma ARA. For example, one or two rows at the top of the current 16x16 chroma ARA and its corresponding 32x32 luma ARA and / or one or two columns to the left of the current 16x16 chroma ARA and its corresponding 32x32 luma ARA are used. Petition 870260073855, dated 07 / 24 / 2026, p. 37 / 117 29 / 78
[0107] In at least one embodiment, the CCLM fallback mode uses the CCLM parameters derived from the luma samples neighboring the luma block placed with the top left sample of the chroma block and from the chroma samples placed for those luma samples.
[0108] In at least one mode, the CCLM fallback mode uses the most recently used CCLM parameters. Using a CCLM parameter history list
[0109] In at least one mode, the fallback CCLM mode uses CCLM parameters from a history list of CCLM parameters built into the encoder and decoder. A maximum size Nh is specified for the history list. The history list is populated with the most recently used CCLM parameters. If a chroma block uses CCLM mode, its CCLM parameters are added to the history list. If the history list is already full, the oldest CCLM parameters are removed and new ones are inserted into the history list. • In one variant, new CCLM parameters are added to the history list only if they are different from the CCLM parameters already present in the history list; • In one variant, the index of the CCLM parameters in the CCLM parameter history list is encoded to the chroma block if it is encoded using the CCLM fallback mode; • In one variant, the index of the CCLM parameters of the history list is inferred based on a similarity check of the luma and / or chroma samples within or around the chroma block with the luma and / or chroma samples being used to calculate the CCLM parameters of the list.
[0110] One possible implementation of the last variant is as follows. When CCLM parameters are entered into the history list, the average values of the luma samples used to derive the parameters are calculated and stored. Petition 870260073855, dated 07 / 24 / 2026, page 38 / 117 30 / 78 in the list. They are annotated avg_Ref_Y [idx], idx being the index in the history list of the CCLM parameters (idx = 0 to Nh - 1, Nh being the size of the history list).
[0111] When CCLM mode is used for a chroma block, the average values of the neighboring luma samples (only available luma samples are considered) of the chroma block are calculated. They are indicated as avg_Cur_Y.
[0112] The CCLM parameter index idx0 in the list, used to perform the CCLM prediction of the chroma block, is identified as the index that minimizes the absolute value of the difference between avg_Ref_Y[i] and avg_Cur_Y: idx0 = argmin (|avg_Cur_Y-avg_Ref_Y [idx]|)
[0113] The similarity metric can alternatively be based on chroma samples. When CCLM parameters are entered into the history list, the average values of the chroma samples used to derive the parameters are calculated and stored in the list. They are indicated as avg_Ref_Cb [idx], avg_Ref_Cr [idx].
[0114] When CCLM mode is used for a chroma block, the average values of the chroma samples adjacent to the chroma block are calculated. They are indicated as avg_Cur_Cb and avg_Cur_Cr.
[0115] The CCLM parameter index idx0 in the list, used to perform the CCLM prediction of the chroma block, is identified as the index that minimizes the absolute value of the difference between avg_Ref_Cb [idx], avg_Ref_Cr [idx] and avg_Cur_Cb, avg_Cur_Cr: idx0 = argmin (| avg_Cur_Cb-avg_Ref_Cb [idx] | + | avg_Cur_Cr-avg_Ref_Cr [idx] |)
[0116] Figure 11B represents a simplified block diagram of an example of a history list index selection process. The process inputs are the luma and / or chroma samples adjacent to the chroma block. Petition 870260073855, dated 07 / 24 / 2026, page 39 / 117 31 / 78 considered and the history list. The history list contains, for each index i, CCLM parameters and reference values related to the luma or chroma samples used to derive the CCLM parameters (e.g., avg_Ref_Y[i], avg_Ref_Cb[i], avg_Ref_Cr[i]). In step 1200, a local value is calculated from the luma or chroma samples neighboring the chroma block (e.g., avg_Cur_Y, avg_Cur_Cb, avg_Cur_Cr). In step 1201, a distMin parameter is set to a large value. In step 1202, a loop over index = 0 to Nh - 1. In step 1203, the dist distortion between the local value calculated in step 1200 and the reference value of index i. Step 1204 checks if dist is less than minDist. If this is true, the idx0 and minDist values are updated in step 1205, and then the process goes to step 1206. Otherwise (dist is not less than minDist), the process goes to step 1206.Step 1206 checks if the loop on the history list indices has ended. If so, idx0 is the exit index value. If not, the process returns to step 1202 to check the next index. Mode 3 - LDCRS activated if the chroma block does not cross the edges of ARAs and if at least one of the colocalized luma blocks does not cross the edges of colocalized luma ARAs.
[0117] In one mode, LDCRS is activated when all of the following conditions are true: • The chroma block in question is entirely contained within a single chroma ARA. • At least one of the luma blocks colocalized with the chroma block in question is entirely contained within the luma ARA colocalized with the chroma ARA. These luma blocks are named in the following “colocalized activated luma blocks”.
[0118] A simplified block diagram of the process is shown in Figure 12. Step 500 checks if the chroma block is within a single ARA of Petition 870260073855, dated 07 / 24 / 2026, page 40 / 117 32 / 78 chroma. If this condition is false, LDCRS is disabled (step 501). If this condition is true, the luma blocks colocalized with the considered chroma block are identified (step 502). Step 503 checks if at least one of the colocalized luma blocks is within the ARA of the colocalized luma with the chroma ARA. If this condition is false, LDCRS is disabled (step 504). If this condition is true, LDCRS is enabled (step 505).
[0119] Referring to Figure 13 (which shows the same partitioning as the top images in Figure 11), LDCRS is activated because the chroma block is within a single chroma ARA and the colocalized luma blocks 1 and 2 are within the colocalized luma ARA, that is, at least one of the colocalized luma blocks with the chroma block considered is entirely contained within the colocalized luma ARA with the chromatic ARA.
[0120] With reference to Figure 14, LDCRS is disabled because the chroma block covers two chroma ARAs (the first chroma ARA and the second chroma ARA), even though two of its colocalized luma blocks (coloc luma blocks 1 and 2) are within a colocalized luma ARA with the first chroma ARA. Mode 4 - LDCRS activated in the case where at least one of the colocalized luma blocks does not cross the boundaries of colocalized luma ARAs.
[0121] In one embodiment, even if the chroma block under consideration is not entirely contained within a single chroma ARA, LDCRS may be activated in the case where at least one of the luma blocks colocalized with the chroma block under consideration is entirely contained within the luma ARA colocalized with the first chroma ARA of the chroma block under consideration. In this embodiment, the chroma block under consideration may be larger than a single chroma ARA.
[0122] A simplified block diagram of the process is shown in Figure 15. The luma blocks colocalized with the chroma block under consideration are identified (step 600). Step 601 verifies that at least one of the luma blocks Petition 870260073855, dated 07 / 24 / 2026, page 41 / 117 33 / 78 colocalized is within the ARA of the colocalized luma with the first chroma ARA. If this condition is false, LDCRS is disabled (step 602). If this condition is true, LDCRS is enabled (step 603).
[0123] Figure 16 shows the same partitioning as Figure 14. LDCRS is enabled because even if the chroma block spans two chroma ARAs (the first and second chroma ARAs), some of its colocalized luma blocks (blocks 1 and 2) are within the colocalized luma ARA with the first chroma block's chroma ARA.
[0124] In a variant of the current embodiment, in the case where LDCRS is enabled and activated for the chroma block, the scaling factor used to scale residual chroma is derived only from luma samples belonging to colocalized activated luma blocks. All chroma samples use the same scaling factor derived from only a portion of the colocalized luma samples.
[0125] For example, considering the case in Figure 16, the average of the luma samples from luma blocks 1 and 2 is calculated. This average luma value is used to identify the scaling factor to be applied to the entire chroma block residue. Thus, the luma samples from luma block 3 are not used. Mode 5: Scale factor signaling for chroma blocks for which LDCRS is disabled.
[0126] In one embodiment, in the case where a chroma block benefits from luma-based residual chroma scaling, the chroma scaling factor is signaled in the bitstream. If the chroma block is made up of multiple transform units, the chroma scaling factor applies to the residual of each TU.
[0127] A simplified block diagram of the process is shown in Figure 17. Step 700 checks if LDCRS is enabled for the chroma block under consideration. If this condition is false, the scaling factor or scaling factor index is encoded. Petition 870260073855, dated 07 / 24 / 2026, page 42 / 117 34 / 78 / decoded (step 701). If this condition is true, the scaling factor or scaling factor index is derived from the colocalized luma blocks (step 702).
[0128] In one embodiment, the chroma scale factor index is signaled. In one embodiment, the scale factor, or scale factor index, is predicted from the scale factor, or scale factor index, of one or more previously encoded / decoded neighboring chroma blocks. For example, as illustrated in Figure 18, the scale factor, or scale factor index, of the chroma block containing block A, then B if block A is not available, then C if block A and block B are not available, then block D if block A and block B and block C are not available, is used as the predictor. Otherwise, the scale factor or scale factor index is not predicted.
[0129] In one variant, the scale factor is inferred by a prediction process, using already processed neighboring chroma blocks. No additional signaling is used and only the inferred scale value is used for the chroma block considered. Mode 6: QP delta signaling for chroma blocks where LDCRS is disabled.
[0130] In one embodiment, in the case where a chroma block benefits from luma-based residual chroma scaling, a signaled delta QP parameter in the bitstream can be used for this chroma block. If the chroma block is made up of multiple transform units, the delta QP parameter applies to the residual for each TU.
[0131] In one mode, the delta QP parameter is signaled to the chroma block.
[0132] In one embodiment, the delta QP parameter is signaled to the Quantization Group that contains the chroma block. Petition 870260073855, dated 07 / 24 / 2026, p. 43 / 117 35 / 78
[0133] In one embodiment, the delta QP parameter is signaled to the CTU that contains the chroma block.
[0134] In one embodiment, the chroma QP parameter is predicted based on the QP value or scaling factor of one or more previously encoded / decoded neighboring chroma blocks. For example, as illustrated in Figure 18, the QP value or scaling factor of the chroma block containing block A, then block B if block A is not available, then block C if block A and block B are not available, then block D if block A and block B and block C are not available, is used as the predictor.
[0135] In the case where the predictor is a scaling factor sc, this scaling factor used to predict the chroma QP is first converted into a QP-like value, denoted QPpred, using the following equation: QPpred = - 6 * Log2 (Sc) where Log2 is the base-2 logarithmic function.
[0136] In the case where the predictor is a QP value, that QP value is used as the QPpred predictor.
[0137] In one variant, the QP value is inferred by a prediction process, using already processed neighboring chroma blocks. No additional signaling is used and only the inferred QP value is used for the chroma block considered. Mode 7: Extension to other luma-dependent chroma encoding modes
[0138] The modalities disclosed in relation to luma-based residual chroma scaling can be used with other luma-dependent chroma coding modes or, more generally, for coding tools involving a cross-component dependency, for example, intraprediction Petition 870260073855, dated 07 / 24 / 2026, page 44 / 117 36 / 78 chroma-de-luma (also known as CCLM or LM mode, and its variant Multi-Direction Linear Model, known as MDLM).
[0139] In an additional embodiment, in the case of a luma block with dimensions WL and HL greater than WmaxL and HmaxL, CCLM can be activated only in the case where the luma block is divided into transform units of maximum dimensions WmaxL and HmaxL.
[0140] Similarly, in the case of a luma block with WL and HL dimensions greater than WmaxL and HmaxL, residual chroma scaling can only be enabled if the luma block is split into Transform Units of maximum dimensions WmaxL and HmaxL.
[0141] In an additional embodiment, in the case of a luma block with dimensions WL and HL greater than WmaxL and HmaxL, then the luma block is systematically divided into transform units of maximum size WmaxL and HmaxL. In this way, the residual scaling modes of chroma and / or CCLM can be used in the chroma component without suffering the structural delay implied by the need for availability of the reconstructed colocalized luma block to process the chroma blocks.
[0142] In a further variant, in the case of a chroma block with dimensions Wc and Hc larger than WmaxC and HmaxC, the chroma block is systematically divided into transform units of maximum size WmaxC and HmaxC. In this way, the residual chroma scaling modes and / or CCLM can be used in the chroma component, regardless of the size of the chroma encoding unit.
[0143] The division of the luma block into 2 TUs (left side) or 4 TUs (right side) is illustrated in the examples in Figure 19.
[0144] In a variant, therefore, if the chroma block has dimensions Wc and Hc greater than WmaxC and HmaxC, CCLM can only be activated if the block Petition 870260073855, dated 07 / 24 / 2026, page 45 / 117 37 / 78 of chroma is divided into maximum dimension transform units WmaxC and HmaxC.
[0145] Similarly, if the chroma block has dimensions Wc and Hc greater than WmaxC and HmaxC, the residual chroma scaling can only be activated if the chroma block is split into Transform Units of maximum dimensions WmaxC and HmaxC. Mode 8: Deactivation of the separate luma / chroma tree for CTUs using the availability of reference samples for CCLM.
[0146] The CCLM mode uses reference luma and chroma samples to determine the parameters used to predict the chroma block samples from its colocalized luma samples. The reference luma and chroma samples are typically localized: • in the top row(s) adjacent to the colocalized chroma / luma block, • in the left column(s) adjacent to the colocalized chroma / luma block, • possibly in the top location(s) adjacent to the colocalized chroma / luma block. Combinations of these three locations may be used depending on the CCLM mode considered.
[0147] In one embodiment, the chroma reference samples used for CCLM mode are considered available if they belong to chroma blocks included in the upper / left / right neighboring chroma ARAs of the chroma ARA comprising the chroma block under consideration (Figure 20). If the chroma reference samples are not included in the upper / left / right neighboring chroma ARAs, they are considered unavailable.
[0148] Figure 21 illustrates a case where the top reference chroma samples (in the diagonal hatched rectangle above the chroma block) Petition 870260073855, dated 07 / 24 / 2026, page 46 / 117 The 38 / 78 samples used for the chroma block belong to different luma blocks (Blocks 1, 3, and 4), and some of these luma blocks (Blocks 3 and 4) are not within the adjacent upper Chroma ARA. According to the modality, only the reference samples belonging to Block 1 are considered available. The other reference samples from Block 3 and Block 4 are not available for CCLM mode.
[0149] In one variant, CCLM mode is disabled if a certain proportion (e.g., 30%) of the chroma reference samples used for CCLM prediction are not included in the neighboring top / left / right chroma ARAs.
[0150] In Figure 21, the number of available reference samples is equal to 25% of the total number of reference samples. Thus, the CCLM would be deactivated.
[0151] In one variant, CCLM mode is disabled as soon as at least one chroma reference sample used for CCLM prediction is not included in the neighboring top / left / right chroma ARAs.
[0152] Referring to figure 21, as at least one reference sample is not available in this illustration, CCLM would be disabled.
[0153] Similarly, for luma reference samples used for CCLM, the following arrangement is proposed. Luma reference samples used for CCLM mode are considered available if they belong to luma blocks included in the luma ARA colocalized with the neighboring chroma ARAs at the top / left / right of the chroma ARA comprising the chroma block under consideration (Figure 20). If the luma reference samples are not included in the neighboring top / left / right luma ARAs colocalized with the neighboring top / left / right chroma ARAs, they will be considered unavailable.
[0154] In one variant, CCLM mode is disabled if a certain proportion (e.g., 30%) of the luma reference samples are not Petition 870260073855, dated 07 / 24 / 2026, page 47 / 117 39 / 78 included in adjacent co-located upper / left / right luma ARAs with co-located upper / left / right chroma ARAs.
[0155] In one variant, CCLM mode is disabled if at least one luma reference sample is not included in the neighboring top / left / right luma ARAs colocalized with the neighboring top / left / right chroma ARAs. Mode 9: Deactivation of separate luma / chroma tree for CTUs using CCLM
[0156] In one embodiment, in the case where at least one chroma block within the CTU uses CCLM (or LDCRS), the separate luma / chroma tree is disabled and the chroma partition for the CTU is deduced from the luma partition.
[0157] In one variant, a flag is set at the CTU level to indicate whether CCLM (or LDCRS) is used at the CTU or not.
[0158] The concept can be generalized to different block types of CTUs (e.g. Video Decoding Processing Unit, also known as VDPU). Mode 10: Residual chroma scale based on neighboring luma block samples colocalized with the upper left corner of the chroma block.
[0159] In another embodiment, the potential hardware latency problem is further reduced by determining a scaling factor to be used in the residual chroma scaling of a chroma block from the prediction or reconstructed luma samples already processed in the neighborhood of the luma block colocalized with a given position in the chroma block. These samples are hereinafter referred to as “neighboring luma samples”.
[0160] Figure 22 represents a flowchart of the method for determining a scaling factor to be used in the residual chroma scaling of a chroma block. Petition 870260073855, dated 07 / 24 / 2026, page 48 / 117 40 / 78
[0161] In step 800, the position in the image of a given sample position in the chroma block is identified. In step 801, the luma block comprising the luma sample colocalized with the position in the chroma block is identified. In step 802, the already processed luma samples neighboring the luma block are identified. In step 803, a luma value is determined from these identified neighboring luma samples, for example, the average value of the identified neighboring luma samples. In step 804, a scaling factor for the chroma block is determined based on the luma value. In step 805, the chroma block residue is scaled using the scaling factor.
[0162] In one embodiment, the given sample position in the chroma block is the upper left corner of the chroma block. This is illustrated in Figure 23A. The chroma block (rectangular) is indicated in bold lines. The colocalized luma block (square) in the upper left sample of the chroma block is in a thin line. Its neighboring samples are indicated in gray. In a variant, the given sample position in the chroma block is the center of the chroma block.
[0163] In one embodiment, only one neighboring luma sample is used and corresponds to the top or left sample of the top-left sample of the colocalized luma block. This is illustrated in Figure 23B. In a variant, both the top and left samples are used.
[0164] In another embodiment, neighboring luma samples are made from the top row neighbor of size WL and the left column row neighbor of size HL, WL and HL being the horizontal and vertical dimensions of the luma block. This is illustrated in Figure 23C.
[0165] In another embodiment, neighboring luma samples are taken from the top row neighbor of size minS and the left column row neighbor of size minS, where minS is the minimum value between WL and HL. Petition 870260073855, dated 07 / 24 / 2026, page 49 / 117 41 / 78
[0166] In another embodiment, neighboring luma samples are taken from the neighboring top row of size Wc*2 and the neighboring left column row of size Hc*2, Wc and Hc being the horizontal and vertical dimensions of the chroma block and considering that the chroma format is 4:2:0.
[0167] In another embodiment, neighboring luma samples are taken from the neighboring top row of size minSC * 2 and the neighboring left column row of size minSC * 2, where minSC is the minimum value between Wc and Hc.
[0168] In one variant, the top neighboring row of size minSC * 2 starts at the same relative horizontal position as the top left corner of the chroma, and the left column neighboring row of size minSC * 2 starts at the same relative vertical position as the top left corner of the chroma, as illustrated in Figure 23D. For example, if the top left corner of the chroma block is at location (xc, yc) in the chroma image and the chroma format is 4:2:0, the first sample in the top row of neighboring luma samples is at horizontal location 2 * xc, and the first sample in the left column of neighboring luma samples is at vertical location 2 * yc.
[0169] According to another variant, the neighboring samples used to determine the scaling factor to be applied to the current residual chroma block are made from one or more reconstructed luma samples that belong to the bottom row and / or the right column of luma samples that belong respectively to the upper and left neighboring ARAs of the ARA that contains the current chroma block.
[0170] In another embodiment, if a certain proportion of neighboring luma samples is not available, the residual chroma block scale is not applied.
[0171] In another embodiment, a neighboring luma sample is considered unavailable if it is not in the same CTU as the chroma block. Petition 870260073855, dated 07 / 24 / 2026, page 50 / 117 42 / 78
[0172] In another embodiment, a neighboring luma sample is considered unavailable if it is not in the same VDPU as the chroma block.
[0173] In another embodiment, a neighboring luma sample is considered unavailable if it is not in the same ARA as the first chroma block ARA.
[0174] In another embodiment, if a given proportion of the chroma samples in a given neighborhood are not available, the residual chroma block scale is not applied. This can happen in the case where neighboring chroma blocks are not yet available in their reconstructed state at the time the current chroma block is being processed.
[0175] In one embodiment, the neighboring luma samples used to derive the residual chroma scaling factor are the samples used to predict the colocalized luma block (also often known as intraprediction reference samples). In the case of a double tree, for each given area (e.g., VDPU), it is common to process the luma blocks of the given area first and then process the chroma blocks of the given area. When the current embodiment applies, this means that it would be necessary to store for each luma block of the given area its neighboring luma samples, which requires additional memory storage and makes the process complicated, as the number of reference samples varies depending on the block size. In order to reduce these negative impacts, in one embodiment, only the luma value derived in step 803 from the neighboring luma samples is stored for each luma block.In another mode, only the scaling factor derived in step 804 from the luma value derived in step 803 from neighboring luma samples is stored for each luma block. This limits storage to a single value per luma block. This principle can be extended to other modes besides LMCS, for example CCLM, where instead of storing the luma and chroma samples of each block, only the minimum and maximum values are stored. Petition 870260073855, dated 07 / 24 / 2026, page 51 / 117 43 / 78 luma and chroma samples used to derive the CCLM block parameters are stored.
[0176] The concept of modality 10 can be generalized to the CCLM mode. In this case, the current modality consists of determining the CCLM linear parameters to be used for chroma block prediction from the prediction or reconstructed luma samples (neighboring luma samples) and the prediction or reconstructed chroma samples (neighboring chroma samples) already processed in the neighborhood of the luma block colocalized with a given position in the chroma block. Figures 23A to 23D illustrate this concept. The gray-filled rectangle areas correspond to the neighboring samples (luma and chroma) of the luma block colocalized with the upper-left sample of the current chroma block, which are potentially used for the derivation of the CCLM parameters.
[0177] According to one variant, the neighboring luma and / or chroma samples used to determine the linear model to be used to perform CCLM prediction of a current chroma block are made up of at least one reconstructed or predicted luma and / or chroma sample that belongs to the bottom row and / or right column of luma and / or chroma samples, which respectively belong to the neighboring left and / or top chroma and / or luma ARAs of the ARA containing the current chroma block. The concept can be extended to the bottom rows of the neighboring top right chroma and / or luma ARAs of the ARA containing the current chroma block and to the right columns of the neighboring bottom left chroma and / or luma ARAs of the ARA containing the current chroma block.The concept can be extended to the bottom lines of the upper-right chroma and / or luma ARAs adjacent to the ARA containing the current chroma block, and to the right columns of the lower-left chroma and / or luma ARAs adjacent to the ARA containing the current chroma block. Petition 870260073855, dated 07 / 24 / 2026, page 52 / 117 44 / 78 Mode 11: Verification of Luma sample availability based on its location relative to the chroma block.
[0178] In another embodiment, if the distance between a neighboring luma sample at position (xL, yL) and the position of the upper-left sample of the considered chroma block (xC, yC) is greater than a certain value, the neighboring luma sample is considered unavailable. In other words, a neighboring luma sample is considered unavailable if the following condition is true: ((xC * 2) - xL)> TH or ((yC * 2) - yL)> TV Or equivalently (xC - (xL / 2)) > TH / 2 or (yC - (yL / 2)) > TV / 2 where TH and TV are predefined or signed values in the bitstream. Typically, TH = TC = 16. In a variant, TH and TC depend on the image resolution. For example, TH and TC are defined according to the following conditions: - If the image resolution is less than or equal to 832x480 luma samples, TH = TC = 8, Otherwise, if the image resolution is less than or equal to 1920x1080 luma samples, TH = TC = 16, Otherwise, TH = TC = 32.
[0179] Figures 24A and 24B illustrate examples of distances between the adjacent upper left luma sample and neighboring chroma samples (at a scale of 2 in the case of the 4:2:0 chroma format). Figure 24A illustrates a distance between the upper left chroma sample and the adjacent upper left chroma sample of the placed luma block. Figure 24B illustrates a distance between the upper left chroma sample and the upper left row or column.
[0180] In one variant, instead of strictly disabling samples very far from the top left chroma sample, a weighting dependent on Petition 870260073855, dated 07 / 24 / 2026, page 53 / 117 A 45 / 78 distance between the neighboring chroma sample and the upper left chroma sample is applied to the reference sample considered.
[0181] In one variant, instead of strictly disabling samples that are very far from the top left chroma sample, a distance-dependent weighting between the neighboring chroma sample and the top left chroma sample is applied to the reference sample under consideration. Mode 12: Verification of Luma sample availability based on the value of its chroma samples placed relative to the value of the chroma samples in the current block.
[0182] In another embodiment, the availability of a neighbor sample of a neighbor luma is based on the values of its placed chroma samples Cb and Cr, neighborCb, neighborCr, and the prediction chroma samples Cb and Cr of the current chroma block. For example, if the following conditions are true, the neighbor of the luma sample is considered unavailable: - If Abs (topLeftCb - neighborCb) > Th_Ch or Abs (topLeftCr - neighbourCr) > Th_Ch where Th_Ch is a predefined or signed value in the bitstream and Abs is the absolute value function. Th_Ch can depend on the bit depth of the chroma samples. Typically, Th_Ch = 64 for 10-bit content, 32 for 8-bit content.
[0183] In one variant, the residual chroma scale is applied only if the average Cb and Cr values avgNeighCb, avgNeighCr of chroma samples placed with neighboring luma samples are not too far from the average Cb and Cr values avgCurrCb, avgCurrCr of chroma samples in the current chroma block.
[0184] For example, if the following conditions are true, the neighboring luma sample is considered unavailable: Petition 870260073855, dated 07 / 24 / 2026, page 54 / 117 46 / 78 - If Abs (avgCurrCb - avgNeighCb) > Th_Ch or Abs (avgCurrCr - avgNeighCr)> Th_Ch
[0185] In one variant, instead of strictly disabling samples that are very different from the top-left chroma sample, a weighting dependent on the difference between the neighboring chroma sample and the top-left chroma sample is applied to the reference sample under consideration.
[0186] In one variant, instead of strictly disabling samples that are very different from the top-left chroma sample, a weighting dependent on the difference between the neighboring chroma sample and the top-left chroma sample is applied to the reference sample under consideration.
[0187] Figure 25 represents a flowchart of the method for verifying luma sample availability based on its placed chroma samples and the current block's chroma samples. Steps 800 to 802 are similar to the corresponding steps in Figure 22. Step 900 is inserted after step 802 to identify neighboring placed chroma samples with neighboring luma samples. In step 901, the similarity of neighboring chroma samples and the current block's chroma samples is checked. If the chroma samples are similar, the residual chroma scale is activated for the current chroma block (903). If the samples are considered dissimilar, the residual chroma scale is deactivated for the current chroma block (902). Mode 12a: availability of reference samples for MDLM
[0188] MDLM mode is a variant of CCLM mode that uses neighboring top luma and chroma samples (top MDLM) or neighboring left luma and chroma samples (left MDLM) as reference samples to derive linear parameters for predicting chroma samples from luma samples. Petition 870260073855, dated 07 / 24 / 2026, page 55 / 117 47 / 78
[0189] In at least one embodiment, when the splitting process leads to a partitioning of a luma VDPU comprising 2 upper square blocks of half width / height of the width / height of the VDPU, or to a partitioning of a chroma VDPU comprising 2 upper square blocks of half width / height of the width / height of the chroma VDPU, the reference samples for MDLM to the left of the second square block (denoted 2 in Figure 25A) are only the samples neighboring the left edge of block 2. Samples below those reference samples are considered unavailable. This advantageously limits the latency for processing block 2, since the blocks below block 2 are not needed to derive the MDLM parameters.
[0190] This arrangement can also be generalized to the case where luma or chroma block 1 of figure 25A is divided into smaller partitions. Mode 13: Low-level flag to activate or deactivate the residual chroma scale.
[0191] In another embodiment, a low-level flag is inserted into the bitstream syntax to enable or disable the chroma residual scaling tool at a level lower than a slice or block group. This embodiment can only be applied in the case of a separate luma / chroma partition tree. It can also be extended to the case where a separate luma / chroma partition tree is not used.
[0192] The following table shows an example of a syntax change (highlighted in gray), compared to the VTM specification in the JVET-N0220 document. In this table, the flagging is done at the CTU level, and the flagging is only done in the case of a luma / chroma partition tree (identified by the qtbtt_dual_tree_intra_flag syntax element). Petition 870260073855, dated 07 / 24 / 2026, page 56 / 117 48 / 78 coding tree unit( ) { Descritor xCtb = ( CtbAddrInRs % PicWidthInCtbsY ) << CtbLog2SizeY yCtb = ( CtbAddrInRs / PicWidthInCtbsY ) << CtbLog2SizeY Se (tile group sao luma flag | | tile group sao chroma flag ) sao( xCtb >> CtbLog2SizeY, yCtb >> CtbLog2SizeY ) Se ( tile group alf enabled flag ){ alf ctb flag[ 0 ][ xCtb >> Log2CtbSize ][ yCtb >> Log2CtbSize ] ae(v) Se ( alf chroma idc = = 1 | | alf chroma idc = = 3 ) alf ctb flag[ 1 ][ xCtb >> Log2CtbSize ][ yCtb >> Log2CtbSize ] ae(v) Se ( alf chroma idc = = 2 | | alf chroma idc = = 3 ) alf ctb flag[ 2 ][ xCtb >> Log2CtbSize ][ yCtb >> Log2CtbSize ] ae(v)} Se ( qtbtt_dual_tree_intra_flag && tile group chroma residual scale flag ) ctu chroma residual scale flag Se ( tile group type = = I && qtbtt dual tree intra flag ) dual tree implicit qt split ( xCtb, yCtb, CtbSizeY, 0 ) Senão coding_tree( xCtb, yCtb, CtbSizeY, CtbSizeY, 1, 0, 0, 0, 0, 0, SINGLE TREE )}
[0193] The following table shows another example of a syntax change (highlighted in gray), compared to the VTM specification in the JVET-N0220 document. In this table, the signaling is done at the CTU level, and the signaling is done independently of whether the luma / chroma partition tree is used or not. Petition 870260073855, dated 07 / 24 / 2026, page 57 / 117 49 / 78 coding tree unit( ) { Descritor xCtb = ( CtbAddrInRs % PicWidthInCtbsY ) << CtbLog2SizeY yCtb = ( CtbAddrInRs / PicWidthInCtbsY ) << CtbLog2SizeY Se f( tile group sao luma flag | | tile group sao chroma flag ) sao( xCtb >> CtbLog2SizeY, yCtb >> CtbLog2SizeY ) Se ( tile group alf enabled flag ){ alf ctb flag[ 0 ][ xCtb >> Log2CtbSize ][ yCtb >> Log2CtbSize ] ae(v) Se ( alf chroma idc = = 1 | | alf chroma idc = = 3 ) alf ctb flag[ 1 ][ xCtb >> Log2CtbSize ][ yCtb >> Log2CtbSize ] ae(v) Se ( alf chroma idc = = 2 | | alf chroma idc = = 3 ) alf ctb flag[ 2 ][ xCtb >> Log2CtbSize ][ yCtb >> Log2CtbSize ] ae(v)} Se ( tile group chroma residual scale flag ) ctu chroma residual scale flag Se ( tile group type = = I && qtbtt dual tree intra flag ) dual tree implicit qt split ( xCtb, yCtb, CtbSizeY, 0 ) Senão coding_tree( xCtb, yCtb, CtbSizeY, CtbSizeY, 1, 0, 0, 0, 0, 0, SINGLE TREE )}
[0194] According to these variants, the activation in the CTU of the residual chroma scale is conditioned by the value of the ctu_chroma_residual_scale_flag. Example of adapting specification syntax according to modality 2
[0195] Example of syntax changes in the current VVC draft specification (see Benjamin Bross et al. Versatile Video Coding (Draft 4), JVET 13th Meeting: Marrakech, MA, 9-18 Jan. 2019, JVET-M1001-v7) according to modalities 2 Petition 870260073855, dated 07 / 24 / 2026, page 58 / 117 50 / 78 are provided below. Changes compared to JVET-M1001 are highlighted in gray. 8.4.3 Derivation process for chroma intraprediction mode
[0196] The inputs for this process are: - a luma location (xCb, yCb) specifying the top-left sample of the current chroma encoding block relative to the top-left luma sample of the current image, - a cbWidth variable specifying the width of the current encoding block in luma samples, - a cbHeight variable specifying the height of the current encoding block in luma samples.
[0197] In this process, the chroma intraprediction mode IntraPredModeC [xCb] [yCb] is derived. - An lmEnabled variable is set equal to sps_cclm_enabled_flag; - When the following conditions are true, lmEnabled is derived by calling the cross-component chroma intraprediction mode verification process; - lmEnabled equals 1, - tile_group_type equals 2 (block group I), - qtbtt_dual_tree_intra_flag equals 1.
[0198] The chroma intraprediction mode IntraPredModeC [xCb] [yCb] is derived using intra_chroma_pred_mode [xCb] [yCb] and IntraPredModeY [xCb + cbWidth / 2] [yCb + cbHeight / 2] as specified in Table 8-2 and Table 8-3: Table 8-2 - Specification of IntraPredModeC [xCb] [yCb] depending on intra_chroma_pred_mode [xCb] [yCb] and IntraPredModeY [xCb + cbWidth / 2] [yCb + cbHeight / 2] when lmEnabled is equal to 0 Petition 870260073855, dated 07 / 24 / 2026, p. 59 / 117 51 / 78 intra_chroma_pred_mode[ xCb ][ yCb ] IntraPredModeY[ xCb + cbWidth / 2 ][ yCb + cbH eight / 2 ] 0 50 18 1 18 18 3 1 1 1 66 1 4 0 50 18 1 X Table 8-3 - Specification of IntraPredModeC [xCb] [yCb] depending on intra_chroma_pred_mode [xCb] [yCb] and IntraPredModeY [xCb + cbWidth / 2] [yCb + cbHeight / 2] when lmEnabled equals 1_______________________________________ intra_chroma_pred_mode[ xCb ][ yCb ] IntraPredModeY[ xCb + cbWidth / 2 ][ yCb + cbH eight / 2 ] 0 50 18 1 18 18 3 1 1 1 66 1 4 81 81 81 81 81 5 82 82 82 82 82 6 83 83 83 83 83 7 0 50 18 1 Process for verifying the intraprediction mode of cross-component chroma.
[0199] The inputs for this process are: Petition 870260073855, dated 07 / 24 / 2026, pp. 60 / 117 52 / 78 - a luma location (xCb, yCb) specifying the top-left sample of the current chroma encoding block relative to the top-left luma sample of the current image, - a cbWidth variable specifying the width of the current encoding block in luma samples, - a cbHeight variable specifying the height of the current encoding block in luma samples.
[0200] The output for this process is: - an lmEnabled flag specifying whether a cross-component chroma intraprediction mode is enabled or not for the current chroma encoding block.
[0201] In this process, lmEnabled is derived as follows: - If ((16 + xCb) / 16) is not equal to ((16 + xCb + cbWidth - 1) / 16) or ((16 + yCb) / 16) is not equal to ((16 + yCb + cbHeight - 1) / 16), cclmEnabled is set to 0. Otherwise, the following applies: - For i = 0, (cbHeight - 1) and j = 0 .. (cbWidth - 1), the following applies: - (xTL, yTL) is defined as equal to the location of the upper left sample relative to the upper left luma sample of the current luma encoding block image placed ColLumaBlock covering the location given by ((xCb + j) << 1, (yCb + i) << 1)); - wColoc and hColoc are defined as equal to the width and height of ColLumaBlock; - If one of the following conditions is false, cclmEnabled is set to 0 and the loop over iej is broken; - ((32 + xTL) / 32) is equal to ((32 + xTL + wColoc - 1) / 32) - ((32 + yTL) / 32) is equal to ((32 + yTL + hColoc - 1) / 32) Petition 870260073855, dated 07 / 24 / 2026, p. 61 / 117 53 / 78 - When ccImEnabled is equal to 1, the following applies for i = 1 .. (cbHeight - 2) and j = 0, (cbWidth - 1); - (xTL, yTL) is defined as equal to the location of the upper left sample relative to the upper left luma sample of the current luma encoding block image placed ColLumaBlock covering the location given by ((xCb + j) << 1, (yCb + i) << 1)); - wColoc and hColoc are defined as equal to the width and height of ColLumaBlock; - If one of the following conditions is false, cclmEnabled is set to 0 and the loop over iej is broken; - ((32 + xTL) / 32) is equal to ((32 + xTL + wColoc - 1) / 32) - ((32 + yTL) / 32) is equal to ((32 + yTL + hColoc - 1) / 32) Example of adapting specification syntax according to modality 10
[0202] Example syntax for inclusion in the current VVC specification project (e.g., JVET-M1001 document) according to modality 10 is provided below. Image reconstruction using a mapping process for chroma sample value.
[0203] The inputs for this process are: - a (nCurrSwx2) x (nCurrShx2) mapped matrix predMapSamples specifying the predicted luma samples mapped from the current block, - when tile_group_type equals 2 (block group I) and qtbtt_dual_tree_intra_flag equals 1, a recSamples array specifying the reconstructed luma of the current image, - a predSamples (nCurrSw) x (nCurrSh) matrix specifying the predicted chroma samples of the current block, Petition 870260073855, dated 07 / 24 / 2026, page 62 / 117 54 / 78 - a resSamples (nCurrSw) x (nCurrSh) array specifying the residual chroma samples of the current block, - The InputPivot[i] and ReshapePivot[i] matrices, with i in the range from 0 to MaxBinIdx + 1 inclusive, derived in 7.4.4.1; - The InvScaleCoeff[i] and ChromaScaleCoef[i] matrices, with i in the range from 0 to MaxBinIdx inclusive, derived in 7.4.4.1.
[0204] The output for this process is recSamples of the reconstructed chroma sample array.
[0205] recSamples is derived as follows: - If (!Tile_group_reshaper_chroma_residual_scale_flag || ((nCurrSw) x (nCurrSh) <= 4)) recSamples [xCurr + i] [yCurr + j] = Clip1C (predSamples [i] [j] + resSamples [i] [j]) with i = 0..nCurrSw - 1, j = 0..nCurrSh - 1 Otherwise (tile_group_reshaper_chroma_residual_scale_flag && ((nCurrSw) x (nCurrSh)> 4)), the following applies:
[0206] The varScale variable is derived as follows: - invAvgLuma is derived as follows: - If tile_group_type is equal to 2 (block group I) and qtbtt_dual_tree_intra_flag is equal to 1, the following applies; - The chroma location (xCh, yCh) of the upper-left sample of the current chroma block relative to the upper-left chroma sample of the current image is identified; - The luma location (xTL, yTL) is defined as equal to the location of the upper-left sample of the luma encoding block placed ColLumaBlock covering the location given by (xCh << 1, yCh << 1) relative to the upper luma sample. Petition 870260073855, dated 07 / 24 / 2026, p. 63 / 117 55 / 78 to the left of the current image, and wColoc and hColoc are defined as equal to the width and height of ColLumaBlock; - If ((32 + yCh) / 32) equals ((64 + yTL - 1) / 64), invAvgLuma will be set equal to recSamples [yTL - 1] [xTL] Otherwise, if ((32 + xCh) / 32) equals ((64 + xTL - 1) / 64), invAvgLuma will be set equal to recSamples[yTL][xTL - 1] Otherwise, invAvgLuma is set equal to -1; Otherwise, the following applies: invAvgLuma = Clip1Y ((ΣίΣ] predMapSamples [i] [j] + nCurrSw * nCurrSh * 2) / (nCurrSw * nCurrSh * 4)) If invAvgLuma is not equal to -1, the following applies: - the variable idxYInv is derived by involving the identification of the function index per part as specified in clause 8.5.6.2 with the input of the sample value invAvgLuma; - varScale is defined equal to ChromaScaleCoef [idxYInv] Otherwise, varScale is set equal to (1 << shiftC)
[0207] recSamples is derived as follows: - If tu_cbf_cIdx [xCurr] [yCurr] equals 1, the following applies: shiftC = 11 recSamples [xCurr + i] [yCurr + j] = ClipCidx1 (predSamples [i] [j] + Sign(resSamples [i] [j]) * ((Abs (resSamples [i] [j]) * varScale + (1 << (shiftC - 1))) >> shiftC)) with i = 0..nCurrSw - 1, j = 0..nCurrSh - 1 Otherwise (tu_cbf_cIdx [xCurr] [yCurr] equals 0) recSamples [xCurr + i] [yCurr + j] = ClipCidx1 (predSamples [i] [j]) with i = 0..nCurrSw - 1, j = 0..nCurrSh - 1 Petition 870260073855, dated 07 / 24 / 2026, p. 64 / 117 56 / 78
[0208] This application describes a variety of aspects, including tools, resources, modalities, models, approaches, etc. Many of these aspects are described with specificity and, at least to show individual characteristics, are often described in a way that may seem limiting. However, this is for the sake of clarity in the description and does not limit the application or scope of these aspects. In fact, all the different aspects can be combined and interchanged to provide other aspects. Furthermore, aspects can be combined and interchanged with aspects described in previous applications as well.
[0209] The aspects described and contemplated in this application can be implemented in many different ways. Figures 26, 27, and 28 below provide some embodiments, but other embodiments are contemplated, and the discussion of Figures 26, 27, and 28 does not limit the scope of implementations. At least one aspect generally relates to video encoding and decoding, and at least one other aspect generally relates to the transmission of a generated or encoded bitstream. These and other aspects can be implemented as a method, a device, a computer-readable storage medium having stored instructions for encoding or decoding video data according to any of the methods described, and / or a computer-readable storage medium having stored a bitstream generated according to any of the methods described.
[0210] Several methods are described in this document, and each of the methods comprises one or more steps or actions to achieve the described method. Unless a specific order of steps or actions is required for the proper operation of the method, the order and / or use of specific steps and / or actions may be modified or combined. Petition 870260073855, dated 07 / 24 / 2026, page 65 / 117 57 / 78
[0211] Several methods and other aspects described in this application can be used to modify modules, for example, the image partitioning and scaling modules (102, 151, 235 and 251) of a video encoder 100 and decoder 200 as shown in Figure 26 and Figure 27. Furthermore, the present aspects are not limited to VVC or HEVC, and can be applied, for example, to other standards and recommendations, whether pre-existing or developed in the future, and extensions of any of these standards and recommendations (including VVC and HEVC). Unless otherwise indicated, or technically prevented, the aspects described in this application may be used individually or in combination.
[0212] Several numerical values are used in this application, for example, Wmax, Hmax, WmaxC and HmaxC. The specific values are for example purposes and the aspects described are not limited to these specific values.
[0213] Figure 26 illustrates an encoder 100. Variations of this encoder 100 are contemplated, but encoder 100 is described below for clarity, without describing all expected variations.
[0214] Before being encoded, the video sequence may undergo pre-encoding processing (101), for example, applying a color transform to the input color image (e.g., converting RGB 4:4:4 to YCbCr 4:2:0), or performing a remapping of the input image components to obtain a signal distribution more resilient to compression (e.g., using a histogram equalization of one of the color components). Metadata may be associated with pre-processing and attached to the bitstream.
[0215] In encoder 100, an image is encoded by the encoding elements as described below. The image to be encoded is partitioned (102) and processed into units of, for example, CUs. Each unit is encoded using, for example, an intra or inter mode. When a unit is encoded in Petition 870260073855, dated 07 / 24 / 2026, page 66 / 117 58 / 78 an intra mode, it performs intraprediction (160). In an internal mode, motion estimation (175) and compensation (170) are performed. The encoder decides (105) which of the intra or inter modes to use to encode the unit and indicates the intra / inter decision by, for example, a prediction mode flag. The encoder can perform a direct mapping (191) applied to luma samples to obtain the predicted luma block. For chroma samples, direct mapping does not apply. Residual predictions are calculated, for example, by subtracting (110) the predicted block from the original image block. For chroma samples, a chroma residual scale can be applied to the chroma residuals (111).
[0216] The residual predictions are then transformed (125) and quantized (130). The quantized transform coefficients, as well as motion vectors and other syntax elements, are entropy encoded (145) to produce a bit stream. The encoder can skip the transform and apply quantization directly to the untransformed residual signal. The encoder can ignore both the transform and the quantization, i.e., the residual is encoded directly without applying the transform or quantization processes.
[0217] The encoder decodes an encoded block to provide a reference for other predictions. The quantized transform coefficients are dequantized (140), inversely transformed (150) to decode residual prediction. The residual chroma is then processed by inverse scaling (151), which performs the inverse process of the scaling process (111). Combining (155) the decoded residual predictions and the predicted block, an image block is reconstructed. For luma samples, an inverse mapping (190) can be applied, this step being the inverse of the direct mapping step (191). In-loop filters (165) are applied to the reconstructed image to perform, for example, unblocking / SAO (Sample Adaptive Offset), Adaptive Loop-Filter (ALF) filter for Petition 870260073855, dated 07 / 24 / 2026, page 67 / 117 59 / 78 reduce encoding artifacts. The filtered image is stored in a reference image buffer (180).
[0218] Figure 27 illustrates a block diagram of a 200 video decoder. In the 200 decoder, a bitstream is decoded by the decoder elements as described below. The 200 video decoder typically performs a reciprocal decoding pass for the encoding pass, as described in Figure 26. The 100 encoder also typically performs video decoding as part of video data encoding.
[0219] In particular, the decoder input includes a video bitstream, which can be generated by the video encoder 100. The bitstream is first entropy decoded (230) to obtain transform coefficients, motion vectors, and other encoded information. The image partition information indicates how the image is partitioned. The decoder can therefore divide (235) the image according to the decoded image partition information. The transform coefficients are dequantized (240), inversely transformed (250) to decode the residual predictions. For chroma samples, the chroma residuals are processed by an inverse scale (251), which is similar to the encoder's inverse scale (151). Combining (255) the decoded residual predictions and the predicted block, an image block is reconstructed.The predicted block can be obtained (270) from intraprediction (260) or motion-compensated prediction (i.e., inter-prediction) (275). Direct mapping (295) can be applied to luma samples after prediction. Inverse mapping (296), similar to encoder inverse mapping (190), can be applied to reconstructed luma samples. Then, in-loop filters (265) are applied to the reconstructed image. The filtered image is stored in a reference image buffer (280).
[0220] The decoded image may still undergo post-decoding processing (285), for example, an inverse color transform (e.g., Petition 870260073855, dated 07 / 24 / 2026, page 68 / 117 60 / 78 conversion of YCbCr 4:2:0 to RGB 4:4:4) or an inverse remapping performing the reverse of the remapping process performed in precoding processing (101). Post-decoding processing can use metadata derived in precoding processing and signaled in the bitstream.
[0221] Figure 28 illustrates a block diagram of an example of a system in which various aspects and modalities are implemented. The 1000 system can be incorporated as a device including the various components described below and is configured to perform one or more of the aspects described in this document. Examples of such devices include, but are not limited to, various electronic devices such as personal computers, laptops, smartphones, tablets, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, and servers. The elements of the 1000 system, individually or in combination, can be incorporated into a single integrated circuit (IC), multiple ICs, and / or discrete components. For example, in at least one embodiment, the processing and encoder / decoder elements of the 1000 system are distributed across multiple ICs and / or discrete components.In various embodiments, the 1000 system is communicatively coupled to one or more other systems, or other electronic devices, by means of, for example, a communication bus or by means of dedicated input and / or output ports. In various embodiments, the 1000 system is configured to implement one or more of the aspects described in this document.
[0222] The 1000 system includes at least one 1010 processor configured to execute instructions loaded into it to implement, for example, the various aspects described in this document. The 1010 processor may include embedded memory, input / output interface, and various other circuits as known in the art. The 1000 system includes at least one 1020 memory (e.g., a volatile memory device and / or a non-volatile memory device). Petition 870260073855, dated 07 / 24 / 2026, page 69 / 117 61 / 78 volatile). The 1000 system includes a 1040 storage device, which may include non-volatile and / or volatile memory, including, but not limited to, electrically erasable programmable read-only memory (EEPROM), read-only memory (ROM), programmable read-only memory (PROM), random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), flash, magnetic disk drive and / or optical disk drive. The 1040 storage device may include an internal storage device, an attached storage device (including detachable and non-detachable storage devices) and / or a network accessible storage device, as non-limiting examples.
[0223] The 1000 system includes an encoder / decoder module 1030 configured, for example, to process data to provide an encoded or decoded video, and the encoder / decoder module 1030 may include its own processor and memory. The encoder / decoder module 1030 represents module(s) that may be included in a device to perform encoding and / or decoding functions. As is known, a device may include one or both encoding and decoding modules. Furthermore, the encoder / decoder module 1030 may be implemented as a separate element of the 1000 system or may be incorporated within the 1010 processor as a hardware and software combination as known to those skilled in the art.
[0224] The program code to be loaded into the 1010 processor or 1030 encoder / decoder to perform the various aspects described in this document may be stored in the 1040 storage device and subsequently loaded into the 1020 memory for execution by the 1010 processor. According to various embodiments, one or more of the 1010 processor, 1020 memory, 1040 storage device, and 1030 encoder / decoder module. Petition 870260073855, dated 07 / 24 / 2026, pp. 70 / 117 62 / 78 can store one or more of several items during the performance of the processes described in this document. Such stored items may include, but are not limited to, the input video, the decoded video or portions of the decoded video, the bitstream, matrices, variables, and intermediate or final results of the processing of equations, formulas, operations, and logic.
[0225] In some embodiments, the memory within the processor 1010 and / or the encoder / decoder module 1030 is used to store instructions and provide working memory for the processing that is required during encoding or decoding. In other embodiments, however, memory external to the processing device (for example, the processing device may be the processor 1010 or the encoder / decoder module 1030) is used for one or more of these functions. The external memory may be memory 1020 and / or storage device 1040, for example, volatile dynamic memory and / or non-volatile flash memory. In several embodiments, non-volatile external flash memory is used to store the operating system of, for example, a television.In at least one embodiment, a fast external dynamic volatile memory, such as RAM, is used as working memory for video encoding and decoding operations, such as for MPEG-2 (MPEG refers to the Moving Picture Experts Group, MPEG-2 is also referred to as ISO / IEC 13818 and 13818-1 is also known as H.222 and 13818-2 is also known as H.262), HEVC (HEVC refers to High Efficiency Video Coding, also known as H.265 and MPEG-H Part 2), or VVC (Versatile Video Coding, a new standard being developed by JVET, the Joint Video Experts Team).
[0226] Input for the elements of system 1000 can be provided through various input devices, as indicated in block 1130. Such Petition 870260073855, dated 07 / 24 / 2026, pp. 71 / 117 63 / 78 Input devices include, but are not limited to, (i) a radio frequency (RF) portion that receives an RF signal transmitted, for example, wirelessly by a broadcaster, (ii) a Component Input (COMP) terminal (or a set of COMP input terminals), (iii) a Universal Serial Bus (USB) input terminal, and / or (iv) a High-Definition Multimedia Interface (HDMI) input terminal. Other examples, not shown in Figure 28, include composite video.
[0227] In several embodiments, the input devices of block 1130 have respective associated input processing elements, as known in the art. For example, the RF portion may be associated with elements suitable for (i) selecting a desired frequency (also referred to as selecting a signal or limiting the bandwidth of a signal to a frequency band), (ii) down-converting the selected signal, (iii) limiting the bandwidth again to a narrower frequency band to select (e.g.) a signal frequency band which may be referred to as a channel in certain embodiments, (iv) demodulating the down-converted and bandwidth-limited signal, (v) performing error correction, and (vi) demultiplexing to select the desired stream of data packets.The RF portion of various modes includes one or more elements to perform these functions, for example, frequency selectors, signal selectors, band limiters, channel selectors, filters, down-converters, demodulators, error correctors, and demultiplexers. The RF portion may include a tuner that performs several of these functions, including, for example, down-converting the received signal to a lower frequency (e.g., an intermediate frequency or a near baseband frequency) or to the baseband. In a decoder mode, the RF portion and its associated input processing element receive an RF signal transmitted through a wired medium (e.g., cable) and perform frequency selection by filtering, down-converting, and filtering again to a frequency. Petition 870260073855, dated 07 / 24 / 2026, page 72 / 117 64 / 78 desired frequency band. Various embodiments rearrange the order of the elements described above (and others), remove some of these elements, and / or add other elements that perform similar or different functions. Adding elements may include inserting elements between existing elements, such as inserting amplifiers and an analog-to-digital converter. In various embodiments, the RF portion includes an antenna.
[0228] In addition, the USB and / or HDMI terminals may include respective interface processors for connecting the 1000 system to other electronic devices via USB and / or HDMI connections. It should be understood that various aspects of input processing, for example, ReedSolomon error correction, may be implemented, for example, within a separate input processing IC or within the 1010 processor, as required. Similarly, aspects of USB or HDMI interface processing may be implemented in separate interface ICs or within the 1010 processor, as required. The demodulated, error-corrected, and demultiplexed stream is provided to various processing elements, including, for example, the 1010 processor and the 1030 encoder / decoder operating in combination with the memory and storage elements to process the data stream as required for presentation on an output device.
[0229] Several elements of the 1000 system can be provided within an integrated housing. Within the integrated housing, the various elements can be interconnected and transmit data between them using a suitable connection arrangement 1140, for example, an internal bus as known in the art, including the Inter-IC (I2C) bus, wiring and printed circuit boards.
[0230] The 1000 system includes the 1050 communication interface which allows communication with other devices via the 1060 communication channel. The 1050 communication interface may include, but is not limited to, a transceiver. Petition 870260073855, dated 07 / 24 / 2026, page 73 / 117 65 / 78 configured to transmit and receive data through the 1060 communication channel. The 1050 communication interface may include, but is not limited to, a modem or network card, and the 1060 communication channel may be implemented, for example, in a wired and / or wireless medium.
[0231] Data is transmitted, or otherwise provided, to the 1000 system in various modes using a wireless network, such as a Wi-Fi network, for example IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers). The Wi-Fi signal in these modes is received through communication channel 1060 and communication interface 1050, which are adapted for Wi-Fi communications. The 1060 communication channel in these modes is typically connected to an access point or router that provides access to external networks, including the Internet, to enable streaming applications and other over-the-top communications. Other modes provide data transmitted to the 1000 system using a decoder that provides the data via the HDMI connection of input block 1130. Still other modes provide data transmitted to the 1000 system using the RF connection of input block 1130. As indicated above, various modes provide data in a non-streaming manner.In addition, several modalities use wireless networks other than Wi-Fi, for example, a cellular network or a Bluetooth network.
[0232] System 1000 can provide an output signal to various output devices, including a display 1100, speakers 1110, and other peripheral devices 1120. The display 1100 of various types includes one or more of, for example, a touch display, an organic light-emitting diode (OLED) display, a curved display, and / or a foldable display. The display 1100 can be for a television, a tablet, a laptop, a mobile phone, or another device. The display 1100 can also be integrated with other components (for example, as in a smartphone), or separate (for example, an external monitor). Petition 870260073855, dated 07 / 24 / 2026, page 74 / 117 66 / 78 for a laptop). Other peripheral devices 1120 include, in various embodiments, one or more standalone digital video disc (or digital versatile disc) (DVR, for both terms), a disc player, a stereo system, and / or a lighting system. Various embodiments use one or more peripheral devices 1120 that provide a function based on the output of system 1000. For example, a disc player performs the function of playing back the output of system 1000.
[0233] In various embodiments, control signals are communicated between the system 1000 and the display 1100, loudspeakers 1110, or other peripheral devices 1120 using signaling such as AV.Link, Consumer Electronics Control (CEC), or other communication protocols that allow device-to-device control with or without user intervention. Output devices can be communicatively coupled to the system 1000 via dedicated connections through the respective interfaces 1070, 1080, and 1090. Alternatively, output devices can be connected to the system 1000 using communication channel 1060 via communication interface 1050. The display 1100 and loudspeakers 1110 can be integrated into a single unit with the other components of the system 1000 in an electronic device, such as, for example, a television.In several embodiments, the 1070 display interface includes a display unit, such as a timing controller chip (T-Con).
[0234] The display 1100 and the speaker 1110 can alternatively be separated from one or more of the other components, for example, if the RF portion of input 1130 is part of a separate decoder. In various embodiments in which the display 1100 and the speakers 1110 are external components, the output signal can be provided via dedicated output connections, including, for example, HDMI ports, USB ports or COMP outputs.
[0235] The modalities can be performed by computer software implemented by the 1010 processor or by hardware, or by a combination of Petition 870260073855, dated 07 / 24 / 2026, page 75 / 117 67 / 78 hardware and software. As a non-limiting example, the embodiments may be implemented by one or more integrated circuits. The 1020 memory may be of any type appropriate to the technical environment and may be implemented using any appropriate data storage technology, such as optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory, and removable memory, as non-limiting examples. The 1010 processor may be of any type appropriate to the technical environment and may encompass one or more microprocessors, general-purpose computers, special-purpose computers, and processors based on a multi-core architecture, as non-limiting examples.
[0236] Several implementations involve decoding. Decoding, as used in this application, may encompass all or part of the processes performed, for example, on a received encoded sequence, in order to produce a final output suitable for display. In several embodiments, such processes include one or more of the processes typically performed by a decoder, for example, entropy decoding, inverse quantization, inverse transform, and differential decoding. In several embodiments, such processes also, or alternatively, include processes performed by a decoder of several implementations described in this application, for example, allowing a cross-component dependent tool to be used for a chroma block in response to a chroma block size and a size of at least one luma block colocalized with at least one sample of the chroma block.
[0237] As further examples, in one embodiment, decoding refers only to entropy decoding, in another embodiment, decoding refers only to differential decoding, and in yet another embodiment, decoding refers to a combination of entropy decoding and differential decoding. If the phrase decoding process is intended to refer specifically to a Petition 870260073855, dated 07 / 24 / 2026, page 76 / 117 68 / 78 subset of operations or generally the broader decoding process will become clear based on the context of the specific descriptions and is believed to be well understood by those versed in the art.
[0238] Various implementations involve encoding. Analogous to the discussion above on decoding, encoding, as used in this application, may encompass all or part of the processes performed, for example, on an input video sequence, in order to produce an encoded bitstream. In various embodiments, such processes include one or more of the processes typically performed by an encoder, for example, partitioning, differential encoding, transform, quantization, and entropy encoding. In various embodiments, such processes also, or alternatively, include processes performed by an encoder of various implementations described in this application, for example, allowing a cross-component dependent tool to be used for a chroma block in response to a size of said chroma block and a size of at least one luma block colocalized with at least one sample of the chroma block.
[0239] As further examples, in one embodiment, coding refers only to entropy coding, in another embodiment, coding refers only to differential coding, and in yet another embodiment, coding refers to a combination of differential coding and entropy coding. Whether the phrase coding process is intended to refer specifically to a subset of operations or generally to the broader coding process will be clear from the context of the specific descriptions and is believed to be well understood by those skilled in the art.
[0240] Note that the syntax elements used in this document, for example, an index of the chroma scale factor, are descriptive terms. As such, they do not preclude the use of other syntax element names. Petition 870260073855, dated 07 / 24 / 2026, page 77 / 117 69 / 78
[0241] When a figure is presented as a flow diagram, it should be understood that it also provides a block diagram of a corresponding device. Similarly, when a figure is presented as a block diagram, it should be understood that it also provides a flow diagram of a corresponding method / process.
[0242] Several approaches relate to rate distortion optimization. In particular, during the encoding process, the balance or trade-off between rate and distortion is usually considered, often due to computational complexity constraints. Rate distortion optimization is generally formulated as the minimization of a rate distortion function, which is a weighted sum of rate and distortion. There are different approaches to solving the rate distortion optimization problem. For example, approaches may be based on extensive testing of all encoding options, including all considered modes or encoding parameter values, with a thorough evaluation of their encoding cost and related distortion of the reconstructed signal after encoding and decoding.Faster approaches can also be used to save on coding complexity, particularly by calculating an approximate distortion based on the prediction or the residual prediction signal, not the reconstructed one. A mixture of these two approaches can also be used, such as using an approximate distortion for only some of the possible coding options and a full distortion for other coding options. Other approaches evaluate only a subset of the possible coding options. More generally, many approaches employ any of a variety of techniques to perform the optimization, but optimization is not necessarily a complete assessment of both the coding cost and the related distortion. Petition 870260073855, dated 07 / 24 / 2026, pp. 78 / 117 70 / 78
[0243] The implementations and aspects described in this document can be implemented in, for example, a method or process, a device, a software program, a data stream, or a signal. Even if only discussed in the context of a single implementation form (for example, discussed only as a method), the implementation of the discussed features can also be implemented in other forms (for example, a device or program). A device can be implemented in, for example, appropriate hardware, software, and firmware. Methods can be implemented in, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device.Processors also include communication devices, such as computers, mobile phones, portable / personal digital assistants (PDAs), and other devices that facilitate the communication of information between end users.
[0244] Reference to a modality or a modality or an implementation or an implementation, as well as other variations thereof, means that a particular feature, structure, characteristic, and so forth described in connection with the modality is included in at least one modality. Thus, the occurrences of the phrase in a modality or in a modality or in an implementation or an implementation, as well as any other variations, appearing in various places throughout this application are not necessarily all referring to the same modality.
[0245] In addition, this application may refer to determining various information. Determining information may include one or more of, for example, estimating information, calculating information, predicting information, or retrieving information from memory. Petition 870260073855, dated 07 / 24 / 2026, pp. 79 / 117 71 / 78
[0246] In addition, this application may refer to accessing various pieces of information. Accessing information may include one or more of, for example, receiving information, retrieving information (e.g., from memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.
[0247] Furthermore, this application may refer to the “receiving” of various information. Receiving, as well as “accessing,” is intended to be a broad term. Receiving information may include one or more of, for example, accessing information or retrieving information (e.g., from memory). In addition, receiving is normally involved, in one way or another, during operations such as, for example, storing information, processing information, transmitting information, moving information, copying information, deleting information, calculating information, determining information, predicting information, or estimating information.
[0248] It should be appreciated that the use of any of the following “ / ”, “and / or” and “at least one of”, for example, in the cases of “A / B”, “A and / or B and at least one of A and B”, is intended to cover the selection of the first option listed (A) only, or the selection of the second option listed (B) only, or the selection of both options (A and B). As a further example, in the cases of A, B and / or C and of and C). This can be extended, as is clear to anyone with common skill in this and related techniques, to as many items as are listed. Petition 870260073855, dated 07 / 24 / 2026, pp. 80 / 117 72 / 78
[0249] Furthermore, as used in this document, the word signal refers to, among other things, indicating something to a corresponding decoder. For example, in certain modes, the encoder signals a particular chroma scale factor index. In this way, in a mode, the same parameter is used on both the encoder and decoder sides. Thus, for example, an encoder can transmit (explicit signaling) a particular parameter to the decoder so that the decoder can use the same particular parameter. On the other hand, if the decoder already has the specific parameter, as well as others, then signaling can be used without transmission (implicit signaling) to simply allow the decoder to know and select the specific parameter. By avoiding the transmission of any actual functions, a small economy is achieved in several modes.It should be noted that signaling can be carried out in various ways. For example, one or more syntax elements, flags, and so on are used to signal information to a corresponding decoder in various modalities. Although the preceding refers to the verbal form of the word signal, the word signal can also be used here as a noun.
[0250] As will be evident to those skilled in the art, the implementations can produce a variety of formatted signals to carry information that can, for example, be stored or transmitted. The information may include, for example, instructions to execute a method or data produced by one of the described implementations. For example, a signal may be formatted to carry the bitstream of a described mode. Such a signal may be formatted, for example, as an electromagnetic wave (e.g., using a radio frequency portion of the spectrum) or as a baseband signal. The formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information that Petition 870260073855, dated 07 / 24 / 2026, pp. 81 / 117 73 / 78 The signal it carries can be, for example, analog or digital information. The signal can be transmitted through a variety of different links, wired or wireless, as is known. The signal can be stored on a processor-readable medium.
[0251] A number of embodiments have been described. The features of these embodiments may be provided alone or in any combination, in various categories and claim types. In addition, embodiments may include one or more of the following features, devices or aspects, alone or in any combination, in various categories and claim types: • Enable a cross-component dependent tool that responds to the size of a chroma block and possibly the size of at least one luma block co-located with the chroma block; • Activate a cross-component dependent tool in the case where the chroma block is within a single rectangular chroma area, defined by partitioning the image's chroma component into non-overlapping rectangular areas; • Activate a cross-component dependent tool in the case where at least one co-located luma block is within a co-located rectangular luma area with a first rectangular chroma area, said rectangular luma area being defined by partitioning the luma of said image into non-overlapping rectangular areas; • A bit stream or signal that includes one or more of the described syntax elements, or variations thereof; • A bit stream or signal that includes syntax transmission information generated according to any of the described modes; • Insert elements into the signaling syntax that allow the decoder to activate / deactivate a cross-component-dependent tool in a manner similar to that used by an encoder; Petition 870260073855, dated 07 / 24 / 2026, page 82 / 117 74 / 78 • Create and / or transmit and / or receive and / or decode a bit stream or signal that includes one or more of the described syntax elements, or variations thereof; • To create and / or transmit and / or receive and / or decode in accordance with any of the modalities described; • A method, process, apparatus, storage media instructions, storage media data, or signal according to any of the described modalities; • A TV, set-top box, cell phone, tablet, or other electronic device that performs the activation / deactivation of a cross-component-dependent tool in accordance with any of the described modes; • A TV, set-top box, mobile phone, tablet, or other electronic device that performs the activation / deactivation of a cross-component-dependent tool according to any of the described modalities and that displays (for example, using a monitor, screen, or other type of display) a resulting image; • A TV, set-top box, mobile phone, tablet, or other electronic device that selects (for example, using a tuner) a channel to receive a signal including an encoded image and performs the activation / deactivation of a cross-component-dependent tool according to any of the modes described; • A TV, set-top box, cell phone, tablet, or other electronic device that receives (e.g., using an antenna) an over-the-air signal that includes an encoded image and performs the activation / deactivation of a cross-component-dependent tool according to any of the described modes. [ 0252] In addition, the modalities may include one or more of the following features, devices or aspects, alone or in any combination, in various categories and claim types. Petition 870260073855, dated 07 / 24 / 2026, p. 83 / 117 75 / 78 [ 0253] According to a general aspect of at least one modality, a decoding method is presented that comprises: - Allow a cross-component-dependent tool to be used for a chroma block of an image in response to the size of said chroma block and the size of at least one luma block co-located with the chroma block; - decode the aforementioned chroma block in response to the aforementioned activation of the aforementioned cross-component-dependent tool. [ 0254] According to a general aspect of at least one embodiment, a decoding apparatus is presented comprising one or more processors configured to perform: - activate a cross-component-dependent tool to be used for a chroma block of an image in response to the size of said chroma block and the size of at least one luma block co-located with the chroma block; and - decode the aforementioned chroma block in response to the aforementioned activation of the aforementioned cross-component-dependent tool. [ 0255] According to a general aspect of at least one modality, a coding method is presented that comprises: - activate a cross-component dependent tool to be used for a chroma block of an image in response to the size of said chroma block and the size of at least one luma block co-located with the chroma block; - to encode the aforementioned chroma block in response to the aforementioned activation of the aforementioned cross-component-dependent tool. Petition 870260073855, dated 07 / 24 / 2026, p. 84 / 117 76 / 78
[0256] According to a general aspect of at least one embodiment, an encoding apparatus is presented comprising one or more processors configured to perform: - activate a cross-component-dependent tool to be used for a chroma block of an image in response to the size of said chroma block and the size of at least one luma block co-located with the chroma block; and - to encode the aforementioned chroma block in response to the aforementioned activation of the aforementioned cross-component-dependent tool.
[0257] One or more of the present embodiments also provide a computer-readable storage medium having stored instructions for encoding or decoding video data according to at least part of any of the methods described above. One or more embodiments also provide a computer-readable storage medium having stored a bitstream generated according to the encoding methods described above. One or more embodiments also provide a method and apparatus for transmitting or receiving the bitstream generated according to the encoding methods described above. One or more embodiments also provide a computer program product, including instructions for executing at least part of any of the methods described above.
[0258] In one embodiment, the aforementioned cross-component dependent tool is a luma-dependent chroma residual scale.
[0259] In one embodiment, enabling said luma-dependent residual chroma scaling to be used for a chroma block of an image in response to a size of said chroma block and a size of at least one luma block colocated with the chroma block comprises: Petition 870260073855, dated 07 / 24 / 2026, p. 85 / 117 77 / 78 - activate the aforementioned residual luma-dependent chroma scale in the case where: • The chroma block is within a single rectangular chroma area, said rectangular chroma area being defined by partitioning the chroma component of said image into non-overlapping rectangular areas; and • At least one luma block co-located with the chroma block is within a single rectangular luma area co-located with said rectangular chroma area, said rectangular luma area being defined by partitioning the luma of said image into non-overlapping rectangular areas; and - disable the aforementioned residual luma-dependent chroma scale in another way.
[0260] In one embodiment, enabling said luma-dependent residual chroma scaling to be used for a chroma block of an image in response to a size of said chroma block and a size of at least one luma block colocalized with the chroma block comprises: - activate the aforementioned residual luma-dependent chroma scale in the case where: • The chroma block is within a single rectangular chroma area, said rectangular chroma area being defined by partitioning the chroma component of said image into non-overlapping rectangular areas; and • All luma blocks colocalized with the chroma block are within a single rectangular luma area colocalized with said rectangular chroma area, said rectangular luma area being defined by partitioning the luma of said image into non-overlapping rectangular areas; and - disable the aforementioned residual luma-dependent chroma scale in another way. Petition 870260073855, dated 07 / 24 / 2026, p. 86 / 117 78 / 78
[0261] In one embodiment, enabling said luma-dependent residual chroma scaling to be used for a chroma block of an image in response to a size of said chroma block and a size of at least one luma block colocated with the chroma block comprises: - activate the aforementioned residual luma-dependent chroma scale in the case where at least one luma block colocalized with the chroma block is within a single rectangular luma area colocalized with a first rectangular chroma area, said rectangular chroma area being defined by partitioning the chroma component of said image into non-overlapping rectangular areas and said rectangular luma area being defined by dividing the luma of said image into non-overlapping rectangular areas; and - to disable the aforementioned residual luma-dependent chroma scale in another way.
[0262] In one embodiment, in the case where said residual luma-dependent chroma scaling is disabled, a scaling factor is determined for said chroma block by predicting a chroma scaling factor or an index that identifies a chroma scaling factor associated with at least one decoded (encoded respectively) chroma block adjacent to said chroma block.
[0263] In one embodiment, in the case where the aforementioned luma-dependent residual chroma scale is disabled, a delta quantization parameter is decoded (encoded into, respectively) from the bitstream for the aforementioned chroma block.
[0264] In another embodiment, the cross-component dependent tool is a cross-component linear model prediction. Petition 870260073855, dated 07 / 24 / 2026, page 87 / 117
Claims
1 / 4 CLAIMS 1. Scaling method CHARACTERIZED in that it comprises, for a chroma block of an image within a non-overlapping rectangular area: - determining a luma block in a non-overlapping rectangular area colocalized with a corresponding chroma block position; - determining a scaling factor based on an average of reconstructed luma samples belonging to the bottom row and right column of luma samples belonging respectively to neighboring top and left luma blocks in non-overlapping rectangular areas adjacent to the luma block; and - scaling the residual chroma block according to the scaling factor.
2. Method according to claim 1, CHARACTERIZED in that the scaling of residual chroma is activated in response to size and position constraints of colocalized chroma and luminance blocks.
3. Method, according to claim 2, CHARACTERIZED in that a chroma block size constraint is 32x32 pixels and a size constraint of at least one luma block located next to the chroma block is 64x64 pixels.
4. Decoding method, CHARACTERIZED by comprising, for a chroma block of an image within a non-overlapping rectangular area: - determining (800) the position in the image of a given sample position in a chroma block; - determining (801) a luma block in a non-overlapping rectangular area colocalized with a corresponding chroma block position; Petition 870260073855, dated 24 / 07 / 2026, page 88 / 117 2 / 4 - determining a scaling factor based on an average of reconstructed luma samples belonging to the bottom row and right column of luma samples belonging respectively to neighboring top and left luma blocks in non-overlapping rectangular areas adjacent to the luma block; - scaling the residual chroma block according to the scaling factor; and - decoding said chroma block.
5. Encoding method, CHARACTERIZED by comprising, for a chroma block of an image within a non-overlapping rectangular area: - determining (800) the position in the image of a given sample position in a chroma block, - scaling the residual chroma block according to claim 1, and - encoding the chroma block.
6. Decoding apparatus, CHARACTERIZED by comprising one or more processors configured to, for a chroma block of an image within a non-overlapping rectangular area: - determine (800) the position in the image of a given sample position in a chroma block; - determine (801) a luma block in a non-overlapping rectangular area colocalized with a corresponding chroma block position; - determine a scaling factor based on an average of reconstructed luma samples belonging to the bottom row and right column of luma samples belonging respectively to neighboring top and left luma blocks in non-overlapping rectangular areas adjacent to the luma block; - scale the residual chroma block according to the scaling factor; and - decode the chroma block.
7. Encoding apparatus, CHARACTERIZED in that it comprises one or more processors configured to execute an encoding method comprising, for a chroma block of an image within a non-overlapping rectangular area: - determining (800) the position in the image of a given sample position in a chroma block, - scaling the residual chroma block according to claim 1, and - encoding the chroma block.
8. Computer program product CHARACTERIZED by comprising instructions for performing a decoding method comprising, for a chroma block of an image within a non-overlapping rectangular area: - determining (800) the position in the image of a given sample position in a chroma block; - determining (801) a luma block in a non-overlapping rectangular area colocalized with a corresponding chroma block position; - determining a scaling factor based on an average of reconstructed luma samples belonging to the bottom row and right column of luma samples belonging respectively to neighboring top and left luma blocks in non-overlapping rectangular areas adjacent to the luma block; - scaling the residual chroma block according to the scaling factor; and - decoding said chroma block.
9. Non-transient storage medium CHARACTERIZED by the fact that Petition 870260073855, dated 07 / 24 / 2026, page 90 / 117 4 / 4 contains a decoding method comprising, for a chroma block of an image within a non-overlapping rectangular area: - determining the position in the image of a given sample position in a chroma block; - determining a luma block in a non-overlapping rectangular area colocalized with a corresponding chroma block position; - determining a scaling factor based on an average of reconstructed luma samples belonging to the bottom row and right column of luma samples belonging respectively to neighboring top and left luma blocks in non-overlapping rectangular areas adjacent to the luma block; - scaling the residual chroma block according to the scaling factor; and - decoding said chroma block. Petition 870260073855, dated 07 / 24 / 2026, pp. 91 / 117