Chrominance Intra Prediction System and Method

JP2025521298A5Pending Publication Date: 2026-06-24GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
Filing Date
2023-06-13
Publication Date
2026-06-24

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

According to one aspect of the present disclosure, a method of performing encoding by an encoder is provided. The method may include a step of identifying a first reference line set that is not adjacent to a luminance coding unit (CU). The method may include a step of performing a luma intra prediction procedure based on the first reference line set. The method may include a step of obtaining a set of luminance pixel values of the luminance CU based on the luma intra prediction procedure. The method may include a step of identifying a second reference line set that is not adjacent to a chroma CU based on the first reference line set. The method may include a step of estimating a correlation function related to the chroma CU based on the first reference line set that is not adjacent to the luminance CU, the second reference line set that is not adjacent to the chroma CU, and the set of luminance pixel values of the luminance CU.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] (Cross - Reference to Related Applications) This application claims priority based on U.S. Provisional Application No. 63 / 366,596, filed on June 17, 2022, with the invention title "Chrominance Intra Prediction Method", and U.S. Provisional Application No. 63 / 385,310, filed on November 29, 2022, with the invention title "Chrominance Intra Prediction Method", and the entire disclosure content thereof is incorporated herein by reference.

[0002] Embodiments of the present disclosure relate to video coding.

Background Art

[0003] Digital video has become mainstream and is used in a wide range of applications such as digital television, video phones, and video conferencing. These digital video applications are made possible by the progress of computing and communication technologies and efficient video coding technologies. Video data may be compressed using various video coding technologies. Accordingly, the coding of video data can be performed using one or more video coding standards. Exemplary video coding standards include, but are not limited to, versatile video coding (H.266 / VVC), high - efficiency video coding (H.265 / HEVC), advanced video coding (H.264 / AVC), moving picture expert group (MPEG) coding, and the like.

Summary of the Invention

Means for Solving the Problems

[0004] According to one aspect of the present disclosure, a method of performing encoding by an encoder is provided. The method may include steps of identifying, by at least one processor, a first set of reference lines not adjacent to a luminance coding unit (CU); performing, by at least one processor, a luminance intra prediction procedure based on the first set of reference lines not adjacent to the luminance CU; obtaining, by at least one processor, a set of luminance pixel values of the luminance CU based on the luminance intra prediction procedure; identifying, by at least one processor, a second set of reference lines not adjacent to a chrominance CU based on the first set of reference lines not adjacent to the luminance CU; and estimating, by at least one processor, a correlation function related to the chrominance CU based on the first set of reference lines not adjacent to the luminance CU, the second set of reference lines not adjacent to the chrominance CU, and the set of luminance pixel values of the luminance CU.

[0005] According to another aspect of the present disclosure, a system for performing encoding by an encoder is provided. The system may include at least one processor and a memory for storing instructions. The memory stores instructions that, when executed by at least one processor, can cause the at least one processor to identify a first set of reference lines that are not adjacent to the luminance CU. The memory stores instructions that, when executed by at least one processor, can cause the at least one processor to execute a luminance intra prediction procedure based on the first set of reference lines that are not adjacent to the luminance CU. The memory stores instructions that, when executed by at least one processor, can cause the at least one processor to obtain a set of luminance pixel values of the luminance CU based on the luminance intra prediction procedure. The memory stores instructions that, when executed by at least one processor, can cause the at least one processor to identify a second set of reference lines that are not adjacent to the chrominance CU based on the first set of reference lines that are not adjacent to the luminance CU. The memory stores instructions that, when executed by at least one processor, can cause the at least one processor to estimate a correlation function related to the chrominance CU based on the first set of reference lines that are not adjacent to the luminance CU, the second set of reference lines that are not adjacent to the chrominance CU, and the set of luminance pixel values of the luminance CU.

[0006] According to a further aspect of the present disclosure, a method for performing decoding by a decoder is provided. The method may include the step of receiving, by a communication interface, a bitstream from an image encoder including a set of luminance pixel values related to a luminance CU and a set of chrominance pixel values related to a chrominance CU. The method may include the step of identifying, by at least one processor, a correlation function related to a first set of reference lines that are not adjacent to the luminance CU and are used by the image encoder to generate the set of luminance pixel values, and a second set of reference lines that are not adjacent to the chrominance CU and are used by the image encoder to generate the set of chrominance pixel values.

[0007] According to yet another aspect of the present disclosure, a system for performing decoding by a decoder is provided. The system may include at least one processor and a memory for storing instructions. When executed by the at least one processor, the memory can cause the at least one processor to receive a bitstream from an image encoder including a set of luminance pixel values related to a luminance CU and a set of chrominance pixel values related to a chrominance CU. When executed by the at least one processor, the memory can cause the at least one processor to identify a correlation function related to a first set of reference lines that are not adjacent to the luminance CU and are used by the image encoder to generate the set of luminance pixel values, and a second set of reference lines that are not adjacent to the chrominance CU and are used by the image encoder to generate the set of chrominance pixel values.

[0008] These exemplary embodiments are not meant to limit or define the present disclosure, but rather to provide examples to aid in its understanding. Additional embodiments are described in the detailed description, where further explanation is provided.

Brief Description of the Drawings

[0009] The accompanying drawings, which are incorporated herein and form a part of this specification, illustrate embodiments of the present disclosure and, together with the description, further explain the principles of the present disclosure and serve to enable those skilled in the art to make and use the present disclosure.

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5A

Figure 5B

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13A

Figure 13B

Figure 13C

Figure 14A

Figure 14B

Figure 15

DETAILED DESCRIPTION OF THE INVENTION

[0010] Although some configurations and arrangements are being discussed, it should be understood that this is done for illustrative purposes only. Those skilled in the art will recognize that other configurations and arrangements can be used without departing from the spirit and scope of the present disclosure. It is obvious to those skilled in the art that the present disclosure may also be utilized in various other applications.

[0011] References in the specification to "one embodiment", "an embodiment", "exemplary embodiments", "some embodiments", "specific embodiments", etc., indicate that the embodiments described may include certain features, structures, or characteristics, but it should be noted that not all embodiments necessarily include those specific features, structures, or characteristics. Further, such expressions do not necessarily refer to the same embodiment. Also, when describing a particular feature, structure, or characteristic in relation to an embodiment, it is within the knowledge of those skilled in the art to implement such features, structures, or characteristics in combination with other embodiments, whether or not explicitly described.

[0012] In general, terms can be understood, at least in part, from their use in context. For example, as used herein, the term "one or more" may, at least in part, depending on the context, be used to describe any feature, structure, or characteristic in the singular, or may be used to describe a combination of features, structures, or characteristics in the plural. Similarly, terms such as "one", "a", "the", etc. can also be understood, at least in part, depending on the context, to convey either a singular or a plural usage. Further, the term "based on" is understood not to necessarily convey an exclusive set of factors, and instead, may, at least in part, depending on the context, allow for the presence of additional factors not explicitly recited.

[0013] Various aspects of a video coding system will be described below with reference to various apparatuses and methods. These apparatuses and methods are described in the following detailed description and are illustrated in the accompanying drawings by various modules, components, circuits, steps, operations, processes, algorithms, etc. (collectively referred to as "elements"). These elements may be implemented using electronic hardware, firmware, computer software, or any combination thereof. Whether such elements are implemented as hardware, firmware, or software depends on the particular application and design constraints imposed on the overall system.

[0014] The techniques described herein may be used for various video encoding applications. As described herein, video encoding includes both encoding and decoding of video. Encoding and decoding of video may be performed in units of blocks. For example, encoding / decoding processes such as transformation, quantization, prediction, in-loop filtering, and reconstruction may be performed on an encoding block, a transformation block, or a prediction block. In this specification, an encoding / decoding target block is referred to as a "current block". For example, the current block may represent an encoding block, a transformation block, or a prediction block according to the current encoding / decoding process. Also, the term "unit" used in this disclosure indicates a basic unit for executing a specific encoding / decoding process, and the term "block" is understood to indicate a sample array of a predetermined size. Unless otherwise specified, "block" and "unit" may be used interchangeably.

[0015] FIG. 1 is a diagram 100 showing an exemplary multi-reference line (MRL) intra prediction procedure for image encoding. FIG. 2 is a diagram 200 showing an extension of the exemplary MRL intra prediction procedure for the image encoding of FIG. 1. FIG. 3 is a diagram 300 showing a luminance sample 302 and a chrominance sample 304 for CCLM parameter derivation. FIG. 4 is a diagram showing a graphical representation 400 of the slope adjustment procedure for CCLM intra prediction. FIG. 5A is a diagram 500 showing a single-tree partition for VVC. FIG. 5B is a diagram 525 showing a double-tree partition for VVC. FIG. 6 is a diagram 600 showing exemplary reference lines for a luminance intra prediction procedure and a chrominance intra prediction procedure.

[0016] Referring to FIG. 1, in the versatile video coding (VVC) method, in addition to the reference samples 104 in the reference line directly adjacent to the coding unit (CU) 108, one of the non-adjacent reference lines including the non-adjacent reference samples 106 may be used in the intra prediction procedure to predict the pixel value 102. The latter use of the non-adjacent reference samples 106 is called multi-reference line (MRL) prediction. In VVC, MRL is disabled and not signaled for the coding units (CUs) located at the upper part of the coding tree unit (CTU). This minimizes the implementation cost. MRL is only applied when the intra prediction mode of the current prediction block is coded in the most probable prediction mode (MPM) that does not include the planar mode.

[0017] In the bitstream, as shown in Table 1, the MRL may be enabled or disabled using the sequence-parameter set (SPS) descriptor.

[0018]

Table 1

[0019] When the value of sps_mrl_enabled_flag is set to 1, which line in FIG. 1 is used for intra prediction is specified in the coding_unit() syntax as shown in Table 2.

[0020]

Table 2

[0021] Referring to FIG. 2, an extension of the MRL is proposed. In this proposal, the extended MRL list is defined as N ∈ {1, 3, 5, 7, 12}, and the number N starting from 0 represents the (N + 1)-th upper reference line and left reference line. In the case of template based intra mode derivation (TIMD), the MRL list is N ∈ {1, 3}.

[0022] In VVC, a chrominance intra prediction mode called CCLM is specified. Referring to FIG. 3, the luminance sample 302 and the chrominance sample 304 may be used for deriving the CCLM parameters. In general image or video content, signal correlation between color components of pixels may be observed. The CCLM mode utilizes the inter-channel correlation by predicting the chrominance sample 304 from the luminance sample 302 reconstructed using the MRL. The chrominance intra prediction is performed using a linear model function as in Equation (1).

[0023]

Equation

[0024] However, P(i, j) represents the chrominance sample 304 within the coding unit (CU), and rec’L(i, j) represents the luminance sample 302 of the same CU. The luminance sample 302 may be downsampled at a ratio of 2:1 in the case of the 4:2:0 color format. The CCLM parameters a and b may be derived based on the luminance sample 302 and the chrominance sample 304.

[0025] In VVC, three CCLM modes are specified, namely, CCLM left and top (CCLM_LT), CCLM left (CCLM_L), and CCLM top (CCLM_T). These three modes differ in the positions of the reference samples used to derive the model parameters "a" and "b". Samples on the upper boundary are involved in the CCLM_T mode, and samples on the left boundary are involved in the CCLM_L mode. In the CCLM_LT mode, samples on both the upper and left boundaries are used. Overall, the chrominance intra prediction procedure using any of the CCLM modes includes, for example, 1) downsampling of the luminance block and its adjacent reconstructed samples to match the size of the corresponding chrominance block, 2) derivation of model parameters based on the reconstructed adjacent samples, and 3) application of Equation (1) to generate chrominance intra prediction samples.

[0026] Regarding operations related to downsampling of the luminance CU, two types of downsampling filters can be applied to the luminance samples 302 to match the chrominance positions of a video sequence in the 4:2:0 color format. Both of the two types of downsampling filters may have a 2-to-1 downsampling ratio in both the horizontal and vertical directions. These two filters (f1 and f2) are shown as examples in Equation (2) below and correspond to video content in the 4:2:0 chrominance format of "type-0" and "type-2", respectively.

[0027]

Equation

[0028] Based on the SPS-level flag information, a two-dimensional 6-tap or 5-tap filter is applied to the luminance sample 302 and its adjacent samples within the current block. An abnormality occurs when the top row of the current block is the CTU boundary. In this case, the one-dimensional filter [1,2,1] / 4 is applied to the adjacent luminance samples 302 above to avoid using a plurality of luminance rows above the CTU boundary.

[0029] Regarding the process of deriving the model parameters, the model parameters "a" and "b" from operation (1) are derived based on the reconstructed luminance samples 302 and chrominance samples 304 in both the encoder and the decoder, thereby avoiding any signaling overhead in VVC.

[0030] Referring to FIG. 3 again, the relative sample positions of the M×N chrominance block, the corresponding 2M×2N luminance block, the luminance sample 302, and the chrominance sample 304 are shown. In FIG. 3, the four samples used in the CCLM_LT mode are also shown, and they are marked in a triangular shape. They are at the positions of M / 4 and 3*M / 4 at the upper boundary, and N / 4 and 3*N / 4 at the left boundary. In the CCLM_T mode and the CCLM_L mode, the upper boundary and the left boundary are extended to the size of (M + N) samples, and the four samples used for model parameter derivation are at the positions of (M + N) / 8, 3*(M + N) / 8, 5*(M + N) / 8, and 7*(M + N) / 8.

[0031] When four samples are selected, four comparison operations are used to determine two minimum luminance sample values and two maximum luminance sample values among them. For example, let Xl be the average value of the two maximum luminance sample values, and Xs be the average value of the two minimum luminance sample values. Similarly, let Yl and Ys be the average values of the corresponding chrominance sample values. Then, the linear model parameters "a" and "b" are obtained according to Equation (3).

[0032]

Equation

[0033] In Equation (3), the division operation for calculating the parameter "a" is realized using a look-up table. To reduce the memory amount for storing the look-up table, the difference value, which is the difference between the maximum value and the minimum value, and the parameter "a" are represented in exponential notation. Here, the difference value is approximated by 4-bit significant part and one exponent. As a result, the table of 1 / difference value contains 16 elements. This has the advantage of reducing the computational complexity and the memory size required for storing the table.

[0034] To improve the coding efficiency, an enhanced compression model (ECM) has been proposed. In the ECM, an extension of the CCLM called a multi-model linear model (MMLM) is adopted. In each MMLM mode, the reconstructed adjacent samples are classified into two classes using a threshold value that is the average value of the luminance samples 302. The linear model for each class is derived using a least-mean square (LMS) procedure instead of the above method in VVC.

[0035] Referring to FIG. 4, the slope adjustment of the parameter "a" in Equation (1) may further improve the coding performance of the CCLM. For example, the CCLM maps a luminance value (lumaVal) to a chroma value (chromaVal) using a model with two parameters. The slope parameter "a" and the bias parameter "b" define the mapping according to Equation (4).

[0036]

Equation

[0037] Furthermore, the slope parameter is updated using a slope adjustment parameter "u". Thereby, the model can be updated according to Equation (5).

[0038] [Number]

[0039] However, a’ = a + u, b’ = b - u * yr, where yr is the average value of the values of the luminance samples 302.

[0040] Continuing to refer to FIG. 4, the tilt adjustment parameter "u" is provided as an integer from -4 to 4 (including -4 and 4) and is signaled within the bitstream. The unit of the tilt adjustment parameter is 1 / 8 of the chrominance sample value per one luminance sample value (for example, in the case of 10-bit content). The tilt adjustment parameter may be used in the CCLM procedure that uses the reference samples (for example, "LM_CHROMA_IDX" and "MMLM_CHROMA_IDX") both above and to the left of the CU, but is not used in the "one-sided" mode. This selection takes into account the trade-off between coding efficiency and complexity. When tilt adjustment is applied to the multi-mode CCLM model, both models can be adjusted. Therefore, there may be a maximum of two tilt updates signaled for one chrominance CU.

[0041] In High Efficiency Video Coding (HEVC), since the coding tree of a Coding Tree Unit (CTU) is shared among its Y, Cb, and Cr components, one Coding Unit (CU) consists of one luma CU and two chroma CUs. In Versatile Video Coding (VVC), this single-tree structure is maintained for P slices and B slices. However, in I slices, the spatial characteristics of the luma and chroma components may be different. Generally, luma has finer texture than chroma, and as a result, the number of small CUs within a luma CTU is larger than the number of small CUs within a chroma CTU. Therefore, it is reasonable to use separate coding trees for the luma and chroma components in I slices. In this case, one luma CTU (containing only one luma coding-tree block (CTB) of the original CTU) forms one coding tree, and one chroma CTU (containing two chroma CTBs of the original CTU) forms one chroma separate tree (CST). In VVC, the design of this CST in I slices is called "double-tree CTU".

[0042] To start the partitioning of the CST from the CTU level, it is necessary to signal the luma CTB first and then the chroma CTBs. Therefore, the decoder has to process and store the 128x128 luma block before processing the corresponding 64x64 chroma CTB. Such a processing order quadruples the buffer size compared to the case without a CTU double-tree. To reduce the buffer requirements in VVC, the CST starts from the maximum Transform Unit (TU) level instead of the CTU level.

[0043] In the common test condition (CTC) of the VVC test model, each CTU contains 128x128 luma samples and 2x64x64 chroma samples in an I slice and is divided into four 64x64-L / 32x32-C coded tree nodes using a quad-tree (QT) partitioning procedure. Two separate coding trees (one for luma coding tree and the other for CST) start from each of the four 64x64-L / 32x32-C coded tree nodes. When the CCLM mode is selected as the chroma intra prediction procedure for the current chroma CU, 1) the reconstructed samples from the chroma adjacent blocks of the current chroma CB and 2) the reconstructed samples from the corresponding luma adjacent blocks and luma array blocks of the current chroma CB are involved in the process of generating chroma prediction samples. If there is a single partition tree with CCLM chroma CUs, the partitions of the luma component and the chroma component are aligned. The reconstruction of any chroma sample within the current Cb / Cr CB can be performed after the sample has been reconstructed.

[0044] Therefore, as shown in Figure 5A, when the same CU partition is applied to a 64x64 luma coding node and the corresponding 32x32 chroma coding tree node, it is not necessary to wait for the reconstruction of the entire luma CU before starting the reconstruction of the corresponding Cb / Cr CU. However, when a CTU has a double-tree partition, the CU partitions between the luma component and the chroma component may be different, leading to different processing orders for the luma CU and the chroma CU, as shown in Figure 5B for example. The related SPS syntax (seq_parameter_set_rbsp()) is shown in Table 3 below. The syntax elements related to the tree structure and one or more syntax elements of Table 3 may be transmitted as part of the bitstream.

[0045]

Table 3

[0046] Referring to Table 3, when the value of sps_qtbtt_dual_tree_intra_flag is equal to 1, for an I slice, each CTU is divided into coding units with 64×64 luma samples using implicit quad-tree partitioning, and these coding units become the roots of two separate coding tree syntax structures for luma and chroma. When the value of sps_qtbtt_dual_tree_intra_flag is equal to 0, it specifies that the separate coding tree syntax structure is not used for an I slice. If sps_qtbtt_dual_tree_intra_flag does not exist, it is assumed to be 0. When sps_log2_diff_max_bt_min_qt_intra_slice_luma is greater than Min(6, CtbLog2SizeY)-MinQtLog2SizeIntraY, the value of sps_qtbtt_dual_tree_intra_flag must be equal to 0.

[0047] Referring to the SPS, the sps_log2_diff_min_qt_min_cb_intra_slice_chroma syntax element specifies the default difference between the binary logarithm of the minimum size in the luminance samples of the chroma leaf blocks obtained by the quadtree partitioning of the chroma CTUs where treeType is equal to DUAL_TREE_CHROMA, and the binary logarithm of the minimum coded block size in the luminance samples of the chroma CUs where treeType is equal to DUAL_TREE_CHROMA in slices where sh_slice_type is 2 (I). Referring to the SPS, if the value of sps_partition_constraints_override_enabled_flag is equal to 1, this default difference can be overridden by ph_log2_diff_min_qt_min_cb_chroma present in the PH syntax structure. The value of sps_log2_diff_min_qt_min_cb_intra_slice_chroma may be within the range from 0 to Min(6, CtbLog2SizeY) - MinCbLog2SizeY (including 0 and Min(6, CtbLog2SizeY) - MinCbLog2SizeY). If not present, the value of sps_log2_diff_min_qt_min_cb_intra_slice_chroma is assumed to be 0. The binary logarithm of the minimum size in the luminance samples of the chroma leaf blocks obtained by the quadtree partitioning of the CTUs where treeType is equal to DUAL_TREE_CHROMA is derived according to Equation (6).

[0048] [Number]

[0049] Referring to the SPS, the sps_max_mtt_hierarchy_depth_intra_slice_chroma syntax element specifies the default maximum hierarchical depth for chroma coding units within a slice with sh_slice_type equal to 2 (I), obtained by multi-type tree partitioning of chroma quadtree leaves where treeType is equal to DUAL_TREE_CHROMA. Referring to the SPS, if the value of sps_partition_constraints_override_enabled_flag is 1, this default maximum hierarchical depth can be overridden by ph_max_mtt_hierarchy_depth_chroma present in the PH syntax structure. The value of the sps_max_mtt_hierarchy_depth_intra_slice_chroma syntax element may be in the range from 0 to 2*(CtbLog2SizeY - MinCbLog2SizeY) (including 0 and 2*(CtbLog2SizeY - MinCbLog2SizeY)). If not present, the value of sps_max_mtt_hierarchy_depth_intra_slice_chroma is assumed to be 0.

[0050] Referring to the SPS, the sps_log2_diff_max_bt_min_qt_intra_slice_chroma syntax element specifies the default difference between the binary logarithm of the maximum size (width or height) in the luminance samples of a chroma coding block that can be partitioned using binary tree partitioning within a slice where sh_slice_type is 2 (I), and the binary logarithm of the minimum size (width or height) in the luminance samples of a chroma leaf block obtained by the quadtree partitioning of a chroma CTU where treeType is equal to DUAL_TREE_CHROMA. Referring to the SPS, if the value of sps_partition_constraints_override_enabled_flag is 1, this default difference can be overridden by ph_log2_diff_max_bt_min_qt_chroma that exists within the PH syntax structure. The value of sps_log2_diff_max_bt_min_qt_intra_slice_chroma shall be in the range from 0 to Min(6, CtbLog2SizeY) - MinQtLog2SizeIntraC, inclusive. If sps_log2_diff_max_bt_min_qt_intra_slice_chroma does not exist, it is assumed that the value of sps_log2_diff_max_bt_min_qt_intra_slice_chroma is 0.

[0051] Referring to the SPS, the sps_log2_diff_max_tt_min_qt_intra_slice_chroma syntax element specifies the default difference between the binary logarithm of the maximum size (width or height) in the luminance samples of a chroma coding block that can be partitioned using ternary tree partitioning within a slice where sh_slice_type is 2 (I), and the binary logarithm of the minimum size (width or height) in the luminance samples of a chroma leaf block obtained by quadtree partitioning of a chroma CTU where treeType is equal to DUAL_TREE_CHROMA. Referring to the SPS, if the value of sps_partition_constraints_override_enabled_flag is 1, this default difference can be overridden by ph_log2_diff_max_tt_min_qt_chroma present in the PH syntax structure. The value of sps_log2_diff_max_tt_min_qt_intra_slice_chroma shall be in the range from 0 to Min(6, CtbLog2SizeY) - MinQtLog2SizeIntraC, inclusive of 0 and Min(6, CtbLog2SizeY) - MinQtLog2SizeIntraC. If sps_log2_diff_max_tt_min_qt_intra_slice_chroma does not exist, it is assumed that the value of sps_log2_diff_max_tt_min_qt_intra_slice_chroma is 0.

[0052] The coding_unit() syntax element is shown in Table 4 below.

[0053] [Table 4]

[0054] Whether CST is applied to the current CU can be determined by whether the value of the parameter "treeType" is equal to DUAL_TREE_CHROMA. Here, the syntax elements cclm_mode_flag and cclm_mode_idx may be transmitted in the bitstream.

[0055] The value of cclm_mode_flag being 1 specifies that one of the chrominance intra prediction modes of INTRA_LT_CCLM, INTRA_L_CCLM, and INTRA_T_CCLM is applied. The cclm_mode_flag being 0 specifies that none of the chrominance intra prediction modes of INTRA_LT_CCLM, INTRA_L_CCLM, and INTRA_T_CCLM is applied. If the cclm_mode_flag does not exist, it is assumed to be 0. The cclm_mode_idx syntax element specifies which of the chrominance intra prediction modes of INTRA_LT_CCLM, INTRA_L_CCLM, and INTRA_T_CCLM is applied.

[0056] Referring to FIG. 6, when using the existing VVC technology, as shown in FIG. 6, the reference lines for MRL luminance intra prediction 602, CCLM luminance intra prediction 604, and CCLM chrominance intra prediction 606 may be different. If the first line above the luminance block contains noise, using this line for luminance intra prediction may not result in the best coding efficiency. In such a case, an alternative reference line is used for luminance intra prediction. Even in this case, the first and second lines above are always used for CCLM intra prediction. Sharing the tree structure of the Y component, Cb component, and Cr component causes a decrease in coding efficiency.

[0057] To overcome these and other problems, the present disclosure provides an exemplary intra prediction procedure that uses reference lines not adjacent to the chrominance CU for chrominance intra prediction. For example, in some embodiments, when the tree structures of Y, Cb, and Cr are shared, the same reference lines for luma MRL intra prediction are applied to CCLM chrominance intra prediction. Otherwise, the reference lines defined in the conventional VVC specification are used for CCLM chrominance intra prediction. In some embodiments, the reference line index for CCLM chrominance intra prediction may be transmitted independently of the reference line index for luma MRL intra prediction. In some embodiments, when the tree structures of Y, Cb, and Cr are shared, the difference (delta value) between the reference line index for CCLM chrominance intra prediction and the reference line index for luma MRL intra prediction is transmitted instead of the corresponding reference line index. Details of the exemplary intra prediction procedure are provided below in combination with FIGS. 7 to 15.

[0058] FIG. 7 is a block diagram of an exemplary encoding system 700 according to some embodiments of the present disclosure. FIG. 8 is a block diagram of an exemplary decoding system 800 according to some embodiments of the present disclosure. Each system 700 or 800 may be applied or incorporated into various systems and devices capable of data processing, such as a computer or a wireless communication device. For example, system 700 or 800 may be all or part of a mobile phone, a desktop computer, a laptop computer, a tablet, an in-vehicle computer, a game console, a printer, a positioning device, wearable electronics, a smart sensor, a virtual reality (VR) device, an augmented reality (AR) device, or other suitable electronic devices having data processing capabilities. FIGS. 7 and FIGS. 8As shown, system 700 or 800 may include a processor 702, a memory 704, and an interface 706. Although these components are shown as being connected to each other by a bus, other connection types are also acceptable. It is understood that system 700 or 800 may include other suitable components for performing the functions described herein.

[0059] Processor 702 may include a microprocessor such as a graphics processing unit (GPU), an image signal processor (ISP), a central processing unit (CPU), a digital signal processor (DSP), a tensor processing unit (TPU), a vision processing unit (VPU), a neural processing unit (NPU), a synergistic processing unit (SPU), or a physics processing unit (PPU), a microcontroller unit (MCU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a programmable logic device (PLD), a state machine, gate logic, discrete hardware circuits, and other suitable hardware configured to perform the various functions described in the present disclosure. FIG 7 and FIG 8Although only one processor is shown, it is understood that multiple processors may be included. Processor 702 may be a hardware device having one or more processing cores. Processor 702 may execute software. Software should be broadly construed as instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executable files, execution threads, procedures, functions, etc., regardless of being called software, firmware, middleware, microcode, hardware description language, etc. Software may include computer instructions written in an interpreted language, a compiled language, or machine language. Under the broad category of software, other techniques that direct hardware are also permitted.

[0060] Memory 704 may generally include both memory (i.e., main memory / system memory) and storage (i.e., secondary memory). For example, memory 704 may include random-access memory (RAM), read-only memory (ROM), static RAM (SRAM), dynamic RAM (DRAM), ferro-electric RAM (FRAM), electrically erasable programmable ROM (EEPROM), compact disc read-only memory (CD-ROM) or other optical disc storage, magnetic disc storage or other magnetic storage devices such as hard disk drive (HDD), flash drive, solid-state drive (SSD), or other media that can be used to hold or store desired program code in the form of instructions accessible and executable by processor 702. Generally, memory 704 may be embodied by any computer-readable medium such as a non-transitory computer-readable medium. Figures 7 and Figures 8 show only one memory, but it is understood that multiple memories may be included.

[0061] Interface 706 may generally include a data interface and a communication interface configured to transmit and receive signals with other external network elements in the process of transmitting and receiving information. For example, interface 706 may include input / output (I / O) devices and a wired transceiver or a wireless transceiver. Figures 7 and Figures 8 show only one Interface but it is understood that multiple interfaces may be included.

[0062] Processor 702, memory 704, and interface 706 may be implemented in various forms within system 700 or 800 to perform video encoding functions. In some embodiments, processor 702, memory 704, and interface 706 of system 700 or 800 are implemented (e.g., integrated) on one or more system-on-chips (SoCs). In one example, processor 702, memory 704, and interface 706 are integrated on an application processor (AP) SoC that is responsible for application processing in an operating system (OS) environment, including performing video encoding and decoding applications. In another example, processor 702, memory 704, and interface 706 are integrated on a dedicated processor chip for video encoding, such as a GPU or ISP chip dedicated to image and video processing in a real-time operating system (RTOS).

[0063] As shown in FIG. 7, in an encoding system 700, a processor 702 may include one or more modules such as an encoder 701. Although the encoder 701 is shown in FIG. 7 as being within one processor 702, it is understood that the encoder 701 may include one or more sub-modules that can be implemented on different processors that are close to or distant from each other. The encoder 701 (and any corresponding sub-modules or sub-units) is a hardware unit (e.g., part of an integrated circuit) of the processor 702 designed to be used with other components, or a software unit realized by the processor 702 at least by executing a part of a program (i.e., instructions). The program instructions are stored in a computer-readable medium such as a memory 704 and, when executed by the processor 702, may execute a process having one or more functions related to video encoding such as image segmentation, inter-prediction, intra-prediction, transformation, quantization, filtering, entropy encoding, etc., which will be described in detail below.

[0064] Similarly, as shown in FIG. 8, in the decoding system 800, the processor 702 may include one or more modules such as a decoder 801. Although the decoder 801 is shown in FIG. 8 to be within one processor 702, it is understood that the decoder 801 may include one or more sub-modules that can be implemented on different processors that are close to or distant from each other. The decoder 801 (and any corresponding sub-modules or sub-units) is a hardware unit (e.g., part of an integrated circuit) of the processor 702 designed to be used with other components, or a software unit implemented by the processor 702 at least by executing a part of a program (i.e., instructions). The program instructions are stored in a computer-readable medium such as the memory 704 and, when executed by the processor 702, may perform a process having one or more functions related to video decoding such as entropy decoding, inverse quantization, inverse transformation, inter prediction, intra prediction, filtering, etc., which will be described in detail below.

[0065] FIG. 9 is a detailed block diagram of an exemplary encoder 701 within the encoding system 700 in FIG. 7 according to some embodiments of the present disclosure. As shown in FIG. 9, the encoder 701 may include a partitioning module 902, an inter prediction module 904, an intra prediction module 906, a transform module 908, a quantization module 910, an inverse quantization module 912, an inverse transform module 914, a filter module 916, a buffer module 918, and an encoding module 920. Each element shown in FIG. 9 is independently represented so as to represent different characteristic functions in a video encoder, and it is understood that each component is not necessarily formed by a separate hardware component unit or a single software. That is, each element is included for convenience of explanation as an element, and at least two elements may be combined to form a single element, or an element may be divided into a plurality of elements to perform functions. Also, among these elements, it is understood that they are not essential elements for performing the functions described in the present disclosure, but rather are selective elements for improving performance. Furthermore, it is understood that these elements may be implemented using electronic hardware, firmware, computer software, or any combination thereof. Whether such elements are implemented as hardware, firmware, or software depends on the specific application and design constraints imposed on the encoder 701.

[0066] The partitioning module 902 may be configured to divide an input image of a video into at least one processing unit. One image may be one frame of the video or one field of the video. In some embodiments, one image may include an array of luminance samples in a single monochrome format, or an array of one luminance sample and two corresponding arrays of chrominance samples. At this time, the processing unit may be a prediction unit (PU), a transform unit (TU), or a coding unit (CU). The partitioning module 902 divides the image into a combination of a plurality of coding units, a plurality of prediction units, and a plurality of transform units, and encodes the image by selecting a combination of the coding unit, the prediction unit, and the transform unit based on a predetermined criterion (e.g., a cost function).

[0067] Similar to H.265 / HEVC, H.266 / VVC is also a block-based hybrid spatial and temporal prediction coding scheme. As shown in FIG. 11, during encoding, first, the input image 1100 is divided by the partitioning module 902 into square blocks, i.e., CTUs 1102. For example, the CTU 1102 may be a block of 128×128 pixels. As shown in FIG. 12, each CTU 1102 in the image 1100 is divided by the partitioning module 902 into one or more CUs 1202, and one or more CUs 1202 can be used for prediction and transformation. Different from H.265 / HEVC, in H.266 / VVC, the CU 1202 can be rectangular or square and can be encoded without further dividing into prediction units or transform units. For example, as shown in FIG. 12, the division from the CTU 1102 to the CU 1202 may include a quadtree division (indicated by solid lines), a binary tree division (indicated by dashed lines), and a ternary tree division (indicated by dash-dotted lines). According to some embodiments, each CU 1202 may be the same size as its root CTU 1102, or may be a sub-division of the root CTU 1102 of a small size of 4×4 blocks.

[0068] Referring to FIG. 9, the inter prediction module 904 may be configured to perform inter prediction on the prediction unit, and the intra prediction module 906 may be configured to perform intra prediction on the prediction unit. It may be determined whether to use inter prediction or perform intra prediction on the prediction unit, and specific information (for example, intra prediction mode, motion vector, reference image, etc.) may be determined according to each prediction method. At this time, the processing unit for performing prediction and the processing unit for determining the prediction method and specific content may be different. For example, the prediction method and prediction mode may be determined within the prediction unit, and the prediction may be performed within the conversion unit. The residual coefficients in the residual block between the generated prediction block and the original block may be input to the conversion module 908. Also, prediction mode information, motion vector information, etc. for prediction may be encoded into the bitstream by the encoding module 920 together with the residual coefficients or quantization levels. In a specific encoding mode, it is understood that the original block may be directly encoded without generating a prediction block through the prediction module 904 or 906. Also, in a specific encoding mode, it is understood that prediction, conversion, and / or quantization may be skipped.

[0069] In some embodiments, the inter-prediction module 904 may predict the prediction unit based on information about at least one image among the images before or after the current image, and in some cases, may also predict the prediction unit based on information about the sub-regions already encoded within the current image. The inter-prediction module 904 may include sub-modules such as a reference image interpolation module, a motion prediction module, and a motion compensation module (not shown). For example, the reference image interpolation module may receive reference image information from the buffer module 918 and generate pixel information less than or equal to an integer pixel from the reference image. In the case of luminance pixels, pixel information less than or equal to an integer pixel may be generated in units of 1 / 4 pixels using an 8-tap interpolation filter based on the discrete cosine transform (DCT) with varying filter coefficients. In the case of chrominance signals, pixel information less than or equal to an integer pixel may be generated in units of 1 / 8 pixels using a 4-tap interpolation filter based on the DCT with varying filter coefficients. The motion prediction module may perform motion prediction based on the reference image interpolated by the reference image interpolation unit. As a method for calculating the motion vector, various methods such as a full search-based block matching algorithm (FBMA), a three-step search (TSS), a new three-step search algorithm (NTS), etc. may be used. The motion vector may have a motion vector value in units of 1 / 2, 1 / 4, or 1 / 16 pixels or integer pixels based on the interpolated pixels. The motion prediction mode may predict the current prediction unit by changing the motion prediction method. Various methods such as a skip method, a merge method, an advanced motion vector prediction (AMVP) method, a block copy method, etc. may be used as the motion prediction method.

[0070] In some embodiments, the intra prediction module 906 may generate a prediction unit based on information about reference pixels around a current block that is pixel information within the current image. The reference pixels may be located in a reference row that is not adjacent to the current block. If a block in the neighborhood of the current prediction unit is a block for which inter prediction has been performed and thus the reference pixels are pixels for which inter prediction has been performed, the reference pixels included in the block for which inter prediction has been performed may be used instead of the reference pixel information of the block in the neighborhood for which intra prediction has been performed. That is, if a reference pixel is not available, at least one of the available reference pixels may be used instead of the unavailable reference pixel information. In intra prediction, the prediction mode may have an angular prediction mode that uses reference pixel information according to the prediction direction and a non-angular prediction mode that does not use direction information when performing prediction. The mode for predicting luminance information and the mode for predicting chrominance information may be different, and the intra prediction mode information for predicting luminance information or the predicted luminance signal information may be used to predict chrominance information. When performing intra prediction, if the size of the prediction unit is the same as the size of the conversion unit, intra prediction may be performed on the prediction unit based on the pixels on the left side, the upper left side, and the upper side of the prediction unit. However, when performing intra prediction, if the size of the prediction unit is different from the size of the conversion unit, intra prediction may be performed using reference pixels based on the conversion unit.

[0071] In the intra prediction method, after applying an adaptive intra smoothing (AIS) filter to the reference pixels, a prediction block may be generated according to the prediction mode. The type of AIS filter applied to the reference pixels may change. To execute the intra prediction method, the intra prediction mode of the current prediction unit may be predicted from the intra prediction modes of the prediction units adjacent to the current prediction unit. When the prediction mode of the current prediction unit is predicted using the mode information predicted from the adjacent prediction units, if the intra prediction mode of the current prediction unit is the same as that of the adjacent prediction units in the neighborhood, information indicating that the prediction mode of the current prediction unit is the same as that of the adjacent prediction units in the neighborhood may be transmitted using pre-determined flag information. If the prediction modes of the current prediction unit and the adjacent prediction units in the neighborhood are different from each other, the prediction mode information of the current block may be encoded by additional flag information. Various aspects of the exemplary intra prediction procedure executed by the intra prediction module 906 are shown in FIGS. 13A to 13C.

[0072] For example, FIG. 13A shows a first exemplary intra prediction procedure 1300 that uses a first reference row set not adjacent to the luminance CU and a second reference row set not adjacent to the chrominance CU according to some embodiments of the present disclosure. FIG. 13B shows a second exemplary intra prediction procedure 1325 that uses a first reference row set not adjacent to the luminance CU and a second reference row set not adjacent to the chrominance CU according to some embodiments of the present disclosure. FIG. 13C shows a third exemplary intra prediction procedure 1350 that uses a first reference row set not adjacent to the luminance CU and a second reference row set not adjacent to the chrominance CU according to some embodiments of the present disclosure. FIGS. 13A to 13C are described in combination with the intra prediction module 906 of FIG. 9.

[0073] Referring to FIGS. 9 and 13A, when the tree structures of Y, Cb, and Cr are shared by the intra prediction module 906, the same reference lines for luminance MRL intra prediction are applied to CCLM (chrominance intra prediction). Otherwise, the reference lines defined in the conventional VVC specification are used for CCLM chrominance intra prediction. For example, assuming that the reference line x (e.g., the non-adjacent reference line 1301 or reference line 4 in FIG. 13A) is used for luminance intra prediction and is specified by ref_line_idx in MRL, the luminance reference line x and the line x + 1 (e.g., the non-adjacent reference line 1303 or reference lines 4 and 5 in FIG. 13A), and the chrominance sample line floor((x + 1) / 2) (e.g., the non-adjacent reference line 1305 or reference line 2 in FIG. 13A) are used for CCLM intra prediction, where the function floor(x) represents the integer part of x. The exemplary intra prediction procedure 1300 shown in FIG. 13A does not require changes to the syntax elements in the bitstream transmitted to the decoder. In the intra prediction module 906, only some corrections to the encoding and decoding processes are required.

[0074] Depending on the application, when x is odd, instead of the chrominance line floor((x - 1) / 2), the chrominance line floor((x + 1) / 2) can be used in CCLM together with the luminance lines x and x + 1. As described above, this embodiment may be applied only when the tree structures of Y, Cb, and Cr are shared, for example, when the value of treeType is not DUAL_TREE_CHROMA. When the tree structures of Y, Cb, and Cr are not shared, i.e., when the value of treeType is DUAL_TREE_CHROMA, the embodiment shown in FIG. 13B may be executed.

[0075] Referring to FIGS. 9 and 13B, the reference line index of the CCLM chrominance intra prediction may be transmitted independently of the reference line index of the luminance MRL intra prediction. For example, assuming intra_cclm_ref_idx is x and x is an integer from 0 to N, the adjacent luminance sample lines x and x + 1 (e.g., non-adjacent reference lines 1303 or reference lines 2 and 3 in FIG. 13B), and the chrominance sample line floor(x / 2 + 1 / 2) (e.g., non-adjacent reference line 1305 or reference line 2 in FIG. 13B) are used for CCLM intra prediction, where floor(x) represents the integer part of x. The value of intra_cclm_ref_idx is within the CCLM luminance sample coordinates (e.g., non-adjacent reference lines 1303 or reference lines 2 and 3 in FIG. 13B). Depending on the application, when x is odd, instead of the chrominance line floor(x / 2 + 1 / 2), the chrominance reference line floor(x / 2 - 1 / 2) can be used for CCLM intra prediction together with the luminance sample lines x and x + 1.

[0076] Referring to FIGS. 9 and 13B, the encoder 701 may include exemplary coding_unit() syntax elements in the bitstream. When the value of cclm_mode_flag is equal to 1, an additional syntax element intra_cclm_ref_idx is transmitted. An example of an exemplary coding_unit() syntax element generated by the intra prediction module 906 is shown in Table 5 below.

[0077] [Table 5]

[0078] The intra_cclm_ref_idx syntax element (e.g., generated by the intra prediction module 906) specifies the reference lines used for CCLM chrominance intra prediction. The value of intra_cclm_ref_idx is specified at the luminance sample coordinates (e.g., the non-adjacent reference line 1301 or reference line 4 in FIG. 13B). The adjacent luminance sample lines intra_cclm_ref_idx, intra_cclm_ref_idx + 1, and the chrominance sample line floor(intra_cclm_ref_idx / 2 + 1 / 2) are used for CCLM intra prediction. If intra_cclm_ref_idx does not exist, its value is assumed to be 0.

[0079] If intra_cclm_ref_idx is even, the adjacent luminance sample lines intra_cclm_ref_idx, intra_cclm_ref_idx + 1, and the chrominance sample line floor(intra_cclm_ref_idx / 2 + 1 / 2) are used for CCLM intra prediction. If intra_cclm_ref_idx is odd, the adjacent luminance sample lines intra_cclm_ref_idx, intra_cclm_ref_idx + 1, and the chrominance sample line floor(intra_cclm_ref_idx / 2 - 1 / 2) are used for CCLM intra prediction. If intra_cclm_ref_idx does not exist, its value is assumed to be 0. The embodiment shown in FIG. 13B may be applied even if the tree structures of Y, Cb, and Cr are not shared, e.g., that is, even if the value of treeType is set to indicate DUAL_TREE_CHROMA.

[0080] Referring to FIGS. 9 and 13C, when the tree structures of Y, Cb, and Cr are shared, the difference (delta value) between the reference line index for CCLM chrominance intra prediction and the reference line index for luminance MRL (multi-reference line) intra prediction is transmitted instead of the corresponding reference line index. The difference between the exemplary embodiments shown in FIGS. 13B and 13C (and FIG. 13 ADifference from the embodiment) is that the reference line of CCLM (e.g., the non-adjacent reference line 1305 or reference line 1 in FIG. 13C) may be represented independently of the reference line index of the luminance MRL (e.g., the non-adjacent reference line 1301 or reference line 4 in FIG. 13C). However, instead of transmitting the index of the reference line of CCLM itself, only the difference from the index of the luminance MRL reference line is transmitted. The values of intra_cclm_ref_idx and delta_intra_cclm_ref_idx are shown in FIG. 13 C Similarly, they are within the luminance sample coordinates. The value of intra_cclm_ref_idx may be calculated by the intra prediction module 906 according to Equation (7).

[0081] [Number]

[0082] According to Equation (7), using the exemplary reference lines shown in FIG. 13C, the values of intra_luma_ref_idx and delta_intra_cclm_ref_idx are 4 and -2, respectively. The value of cclm_luma_ref_line may be calculated as 4 + (-2) = 2, which indicates that the luminance sample line of cclm_luma_ref_line (e.g., the non-adjacent reference line 1303 or reference line 2 in FIG. 13C) and cclm_luma_ref_line + 1 (e.g., the non-adjacent reference line 1303 or reference line 3 in FIG. 13C) and the chrominance sample line floor(cclm_luma_ref_line / 2 + 1 / 2) (e.g., the non-adjacent reference line 1305 or reference line 1 in FIG. 13C) are used for CCLM chrominance intra prediction.

[0083] Similar to the embodiment shown in FIG. 13B, depending on the application, when cclm_luma_ref_line is odd, the chrominance sample line floor(cclm_luma_ref_line / 2 - 1 / 2) can also be used for CCLM chrominance intra prediction in the embodiment of FIG. 13C together with the luminance reference lines cclm_luma_ref_line and cclm_luma_ref_line + 1.

[0084] The embodiments described in combination with FIG. 13C may be applied only when the tree structures of Y, Cb, and Cr are shared, for example, when the value of treeType is not equal to DUAL_TREE_CHROMA. When the tree structures of Y, Cb, and Cr are not shared, that is, when the value of treeType is DUAL_TREE_CHROMA, there are two possible embodiments related to FIG. 13C. In some embodiments, the coding_unit() syntax elements shown in Table 6 below are used, while in some embodiments, the coding_unit() syntax elements shown in Table 7 below may be used.

[0085] [Table 6]

[0086] [Table 7]

[0087] Referring to Table 6 and FIG. 13C, the tree structures of Y, Cb, and Cr are shared. That is, when the value of treeType is not equal to DUAL_TREE_CHROMA and the value of cclm_mode_flag is 1, the additional syntax element delta_intra_cclm_idx_present_flag may be generated by the intra prediction module 906 and transmitted in the bitstream. When the value of delta_intra_cclm_idx_present_flag is 1, the additional syntax elements abs_delta_intra_cclm_idx and delta_intra_cclm_sign_flag may be transmitted. When the tree structures of Y, Cb, and Cr are not shared, that is, when the value of treeType is equal to DUAL_TREE_CHROMA, the decoder 801 infers that the value of delta_intra_cclm_idx_present_flag is 0, and the method shown in FIG. 13A may be applied. In this case, the additional syntax elements abs_delta_intra_cclm_idx and delta_intra_cclm_sign_flag may not be transmitted.

[0088] Referring back to Table 6 and FIG. 13C, the tree structures of Y, Cb, and Cr are shared, i.e., when the value of treeType is not equal to DUAL_TREE_CHROMA and the value of cclm_mode_flag is 1, an additional syntax element delta_intra_cclm_idx_present_flag may be generated by the intra prediction module 906 and transmitted in the bitstream. When the value of delta_intra_cclm_idx_present_flag is 1, additional syntax elements abs_delta_intra_cclm_idx and delta_intra_cclm_sign_flag are transmitted. When the tree structures of Y, Cb, and Cr are not shared, i.e., when the value of treeType is DUAL_TREE_CHROMA, instead of the syntax elements abs_delta_intra_cclm_idx and delta_intra_cclm_sign_flag, the above syntax element intra_cclm_ref_idx may be generated in combination with FIG. 13B and transmitted in the bitstream.

[0089] Continuing to refer to Table 6 and FIG. 13C, a value of 1 for the delta_intra_cclm_idx_present_flag syntax element indicates that abs_deta_intra_cclm_idx and delta_intra_cclm_sign_flag are transmitted. A value of 0 for the delta_intra_cclm_idx_present_flag indicates that abs_deta_intra_cclm_idx and delta_intra_cclm_sign_flag are not transmitted and that the value of delta_intra_cclm_idx is 0. In this case, the reference lines intra_luma_ref_idx and intra_luma_ref_idx + 1 of the luminance samples, and the line floor(intra_luma_ref_idx / 2 + 1 / 2) of the chrominance samples, will be used for CCLM chrominance intra prediction. When the value of treeType is DUAL_TREE_CHROMA, the decoder 801 may infer that the value of delta_intra_cclm_idx_present_flag is 0.

[0090] Referring back to Table 6 and FIG. 13C, abs_delta_intra_cclm_idx and delta_intra_cclm_sign_flag represent the value of the delta_intra_cclm_idx syntax element. A value of 0 for delta_intra_cclm_sign_flag indicates that delta_intra_cclm_idx is a negative number, and a value of 1 for delta_intra_cclm_sign_flag indicates that delta_intra_cclm_idx is a positive number. The reference line value of the luma reference line cclm_luma_ref_line used for CCLM is calculated as cclm_luma_ref_line = intra_luma_ref_idx+(2*delta_intra_cclm_sign_flag - 1)*delta_intra_cclm_idx. The reference lines cclm_luma_ref_line and cclm_luma_ref_line + 1 of the luma samples, and the line floor(cclm_luma_ref_line / 2 + 1 / 2) of the chroma samples will be used for CCLM chroma intra prediction.

[0091] Referring to Table 7 and FIG. 13C, abs_delta_intra_cclm_idx and delta_intra_cclm_sign_flag represent the value of delta_intra_cclm_idx. For example, when the value of delta_intra_cclm_sign_flag is 0, it means that delta_intra_cclm_idx is a negative number, and when the value of delta_intra_cclm_sign_flag is 1, it means that delta_intra_cclm_idx is a positive number. The reference line value of the luminance reference line cclm_luma_ref_line used for CCLM is calculated as cclm_luma_ref_line = intra_luma_ref_idx+(2*delta_intra_cclm_sign_flag - 1)*delta_intra_cclm_idx. When cclm_luma_ref_line is an even number, the reference lines cclm_luma_ref_line and cclm_luma_ref_line + 1 of the luminance samples, and the line floor(cclm_luma_ref_line / 2 + 1 / 2) of the chrominance samples may be used for CCLM chrominance intra prediction. When cclm_luma_ref_line is an odd number, the reference lines cclm_luma_ref_line and cclm_luma_ref_line + 1 of the luminance samples, and the line floor(cclm_luma_ref_line / 2 - 1 / 2) of the chrominance samples will be used for CCLM chrominance intra prediction.

[0092] As shown in FIG. 9, a prediction unit and a residual block including residual coefficient information that is the difference value between the prediction unit and the original block may be generated, and the prediction unit is predicted based on the prediction unit generated by prediction module 904 or 906. The generated residual block may be input to transformation module 908.

[0093] The conversion module 908 may be configured to convert a residual block including an original block and residual coefficient information of a prediction unit generated via the prediction modules 904 and 906 using a conversion method such as DCT, discrete sine transform (DST), Karhunen-Loeve transform (KLT), or conversion skip. The residual block may be converted by determining whether to apply DCT, DST, or KLT based on the intra prediction mode information of the prediction unit for generating the residual block. The conversion module 908 can convert the video signal in the residual block from the pixel domain to a conversion domain (e.g., a frequency domain depending on the conversion method). It is understood that in some examples, the conversion module 908 may be skipped and the video signal may not be converted to the conversion domain.

[0094] The quantization module 910 may be configured to generate a quantization level for each position in the coded block by quantizing the coefficient at that position. The current block may be a residual block. That is, the quantization module 910 can perform quantization processing on each residual block. The residual block may include N×M positions (samples) each associated with a video signal / data, whether converted or not, such as luminance and / or chrominance information, where N and M are positive integers. In the present disclosure, before quantization, the converted or unconverted video signal at a specific position is herein referred to as a "coefficient". After quantization, the quantization value of the coefficient is herein referred to as a "quantization level" or "level".

[0095] Quantization is used to reduce the dynamic range of a video signal, whether it has been transformed or not. As a result, fewer bits can be used to represent the video signal. Quantization typically involves division by a quantization step size and rounding, while inverse quantization (or inverse transform quantization) involves multiplication by the quantization step size. The quantization step size can be represented by a quantization parameter (QP). Such a quantization process is called scalar quantization. Quantization of all coefficients within an encoded block can be performed independently, and such a quantization method is used in several existing video compression standards such as H.264 / AVC and H.265 / HEVC. The QP in quantization can affect the bitrate for encoding / decoding the video image. For example, a higher QP can result in a lower bitrate, and a lower QP can result in a higher bitrate.

[0096] For an N×M encoded block, a specific encoding scan order may be used to transform the two-dimensional (2D) coefficients of the block into a one-dimensional (1D) order for coefficient quantization and encoding. Typically, the encoding scan starts from the upper left corner of the encoded block and ends at the lower right corner or the last non-zero coefficient / level in the lower right direction. It is understood that the encoding scan order may include a suitable order such as a zigzag scan order, a vertical (column) scan order, a horizontal (row) scan order, a diagonal scan order, or any combination thereof. Quantization of the coefficients within the encoded block may utilize the encoding scan order information. For example, it may depend on the state of the previous quantization level along the encoding scan order. To further improve the encoding efficiency, one or more quantizers, such as two scalar quantizers, may be used by the quantization module 910. Which quantizer is used to quantize the current coefficient may depend on the previous information of the current coefficient in the encoding scan order. Such a quantization process is called dependent quantization.

[0097] Referring to FIG. 9, the encoding module 920 may be configured to encode the quantization level at each position within the encoding block into the bitstream. In some embodiments, the encoding module 920 may perform entropy encoding on the encoding block. Entropy encoding may use various binarization methods, such as EGk binarization or Golomb-Rice binarization including combined TR and restricted EGk binarization, to convert each quantization level into its respective binary representation (e.g., binary bin). Then, the binary representation can be further compressed using an entropy encoding algorithm. The compressed data can be added to the bitstream. In addition to the quantization level, the encoding module 920 may encode various other information, such as block type information of the encoding unit, prediction mode information, split unit information, prediction unit information, transmission unit information, motion vector information, reference frame information, block interpolation information, and filtering information input from the prediction modules 904 and 906. In some embodiments, the encoding module 920 may perform residual encoding on the encoding block to convert the quantization level into the bitstream. For example, after quantization, there may be N×M quantization levels for an N×M block. These N×M levels can be zero or non-zero values. If the levels are not binary, the non-zero levels may be further binary binarized into binary bin, for example, using combined TR and restricted EGk binarization.

[0098] Non-binary syntax elements may be mapped to binary codewords. Usually, a bijective mapping between symbols and codewords using codes of simple structure is called binarization. Binary symbols (also called bins) of both binary syntax elements and non-binary data codewords may be encoded using binary arithmetic coding. The core coding engine of CABAC can support two operating modes. One is the context coding mode in which bins are encoded using an adaptive probability model, and the other is a simpler bypass mode that uses a fixed probability of 1 / 2. The adaptive probability model is also called a context, and the assignment of the probability model for each bin is called context modeling.

[0099] As shown in FIG. 9, the inverse quantization module 912 may be configured to inverse-quantize quantization levels, and the inverse transform module 914 may be configured to inverse-transform the coefficients transformed by the transform module 908. The reconstructed residual block generated by the inverse quantization module 912 and the inverse transform module 914 may be combined with the predicted unit predicted via the prediction module 904 or 906 to generate a reconstructed block.

[0100] The filter module 916 may include at least one of a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF). The deblocking filter may remove block distortion generated by the boundaries between blocks in the reconstructed image. The SAO module may correct the offset to the original video in pixel units for the video on which deblocking has been performed. The ALF may be executed based on a value obtained by comparing the reconstructed and filtered video with the original video. The buffer module 918 may be configured to store the reconstructed blocks or images calculated via the filter module 916, and when inter prediction is executed, the reconstructed and stored blocks or images may be provided to the inter prediction module 904.

[0101] FIG. 10 is a detailed block diagram of an exemplary decoder 801 within the decoding system 800 of FIG. 8 according to some embodiments of the present disclosure. As shown in FIG. 10, decoder 801 may include a decoding module 1002, an inverse quantization module 1004, an inverse transform module 1006, an inter prediction module 1008, an intra prediction module 1010, a filter module 1012, and a buffer module 1014. Each element shown in FIG. 10 is represented independently so as to represent different characteristic functions in the video decoder, and it is understood that each component is not necessarily formed by a separate hardware component unit or a single software. That is, each element is included for the sake of convenience of explanation, and at least two elements may be combined to form a single element, or an element may be divided into a plurality of elements to perform functions. It is also understood that some of these elements may not be essential elements for performing the functions described in the present disclosure, but rather may be optional elements for improving performance. Furthermore, it is understood that these elements may be implemented using electronic hardware, firmware, computer software, or any combination thereof. Whether such elements are implemented as hardware, firmware, or software depends on the specific application and design constraints imposed on decoder 801.

[0102] When a video bitstream is input from a video encoder (e.g., encoder 701), the input bitstream may be decoded by decoder 801 in a procedure reverse to that of the video encoder. Therefore, some details of the above decoding regarding encoding may be omitted to facilitate the explanation. The decoding module 1002 may be configured to obtain various information encoded in the bitstream, such as the quantization level at each position within the encoding block, by decoding the bitstream. In some embodiments, the decoding module 1002 may perform entropy decoding (decompression) corresponding to the entropy encoding (compression) executed by the encoder. For example, binary representations (e.g., binary bins) may be obtained using VLC, CAVLC, CABAC, SBAC, PIPE encoding, etc. The decoding module 1002 may further convert the binary representation to the quantization level using, for example, Golomb-Rice binarization including EGk binarization or combined TR and restricted EGk binarization. In addition to the quantization level at the position within the conversion unit, the decoding module 1002 may decode various other information such as the parameters used for Golomb-Rice binarization (e.g., Rice parameter), block type information of the encoding unit, prediction mode information, partition unit information, prediction unit information, transmission unit information, motion vector information, reference frame information, block interpolation information, and filtering information. During the decoding process, the decoding module 1002 may perform rearrangement on the bitstream by a reverse scanning method based on the encoding scanning order used by the encoder, and reconstruct and rearrange the data from a one-dimensional order to a two-dimensional rearrangement block.

[0103] The inverse quantization module 1004 may be configured to inverse quantize the quantization levels at each position of an encoded block (e.g., a two-dimensional reconstruction block) to obtain the coefficients at each position. In some embodiments, the inverse quantization module 1004 may perform dependent inverse quantization based on quantization parameters provided by an encoder, where the quantization parameters include information related to the quantizer used in the dependent quantization, such as the quantization step size used by each quantizer.

[0104] The inverse transform module 1006 may be configured to perform inverse transforms such as inverse DCT, inverse DST, inverse KLT corresponding to the DCT, DST, KLT respectively performed by the encoder, to return the data from the transform domain (e.g., coefficients) to the pixel domain (e.g., luminance and / or chrominance information). In some embodiments, the inverse transform module 1006 may selectively perform transform operations (e.g., DCT, DST, KLT) according to a plurality of information such as a prediction method, the size of the current block, and the prediction direction.

[0105] The inter prediction module 1008 and the intra prediction module 1010 may be configured to generate a prediction block based on the information regarding the generation of the prediction block provided by the decoding module 1002 and the information of the previously decoded block or image provided by the buffer module 1014. As described above, when intra prediction is performed in the same way as the encoder, if the size of the prediction unit is the same as the size of the transform unit, intra prediction may be performed for the prediction unit based on the pixels on the left side, the upper left side, and the upper side of the prediction unit. However, when intra prediction is performed and the size of the prediction unit is different from the size of the transform unit, intra prediction may be performed using reference pixels based on the transform unit.

[0106] The intra prediction module 1010 may be configured to receive, from the encoder 701, a bitstream including a set of luminance pixel values related to a luminance CU (coding unit) and a set of chrominance pixel values related to a chrominance CU. In some embodiments, the intra prediction module 1010 may be configured to identify information related to a luminance reference row index related to a first set of reference rows not adjacent to the luminance CU, or information related to a chrominance reference row index related to a second set of reference rows not adjacent to the chrominance CU, from the bitstream. The indication may be identified as an indication combined with FIGS. 13A-13C and / or one or more of the syntax elements. In some embodiments, the intra prediction module 1010 may be configured to identify a correlation function related to the first set of reference rows and the second set of reference rows, where the first set of reference rows is not adjacent to the luminance CU and is used by the encoder to generate the set of luminance pixel values, and the second set of reference rows is not adjacent to the chrominance CU and is used by the encoder to generate the set of chrominance pixel values. In some embodiments, the intra prediction module 1010 may be configured to decode the bitstream based on the correlation function to identify a set of luminance pixel values related to the luminance CU and a set of chrominance pixel values related to the chrominance CU.

[0107] The reconstructed block or the reconstructed image combined from the output of the inverse transform module 1006 and the prediction module 1008 or 1010 may be provided to the filter module 1012. The filter module 1012 may include a deblocking filter, an offset correction module, and an ALF. The buffer module 1014 may store the reconstructed image or the reconstructed block and use it as a reference image or a reference block for the inter prediction module 1008, and may also output the reconstructed image.

[0108] Along the scope of the present disclosure, the encoding module 920 and the decoding module 1002 may be configured to improve the encoding efficiency by adopting a quantization level binarization method using Rice parameters adapted to the bit depth and / or bit rate for encoding video images.

[0109] FIGS. 14A and 14B are flowcharts of an exemplary method 1400 for video encoding according to some embodiments of the present disclosure. The method 1400 may be executed by a system such as, for example, the encoding system 700, the encoder 701, or the intra prediction module 906. The method 1400 may include operations 1402-1424 described below. It is understood that some steps are optional and some steps may be executed simultaneously or in an order different from the order shown in FIGS. 14A and 14B.

[0110] Referring to FIG. 14A, at 1402, the apparatus may identify a first set of reference lines that are not adjacent to the luminance CU. For example, referring to FIGS. 9 and 13A-13C, the intra prediction module 906 may identify a first set of reference lines that are not adjacent to the luminance CU (e.g., the non-adjacent reference lines 1301 in FIGS. 13A-13C) for the MRL. In the example shown in FIGS. 13A-13C, the first set of reference lines that are not adjacent to the luminance CU may include, for example, reference line 4. The non-adjacent reference lines may include any reference lines that are not directly adjacent to the luminance CU. In other words, for the luminance CU, any reference line other than reference line 0 may be selected. In some cases, the reference line with the least noise may be selected for luminance intra prediction.

[0111] At 1404, the apparatus may perform a luminance intra prediction procedure based on the first set of reference lines that are not adjacent to the luminance CU. For example, referring to FIGS. 13A-13C, reference line 4 may be used for luminance intra prediction (e.g., MRL).

[0112] At 1406, the apparatus may obtain a set of luminance pixel values of a luminance CU based on a luminance intra prediction procedure. For example, referring to FIGS. 9 and 13A - 13C, the intra prediction module 906 may obtain a set of luminance pixel values of a luminance CU by applying the MRL to a first reference line set.

[0113] At 1408, the apparatus may identify a second reference line set not adjacent to the chrominance CU based on a first reference line set not adjacent to the luminance CU. For example, referring to FIGS. 9 and 13A - 13C, the intra prediction module 906 may identify a second reference line set not adjacent to the chrominance CU (e.g., non - adjacent reference lines 1305 in FIGS. 13A - 13C) based on the first reference line set. The second reference line set may be identified based on the above - mentioned operations in combination with FIGS. 13A - 13C.

[0114] At 1410, the apparatus may estimate a correlation function related to the chrominance CU based on a first reference line set not adjacent to the luminance CU, a second reference line set not adjacent to the chrominance CU, and a set of luminance pixel values of the luminance CU. For example, referring to FIGS. 9 and 13A - 13C, the intra prediction module 906 may identify offsets a' and b' according to the above - mentioned operations in combination with FIGS. 4 and 13A - 13C.

[0115] At 1412, the apparatus may execute a chrominance intra prediction procedure based on the correlation function. For example, referring to FIGS. 9 and 13A - 13C, the intra prediction module 906 may execute a chrominance intra prediction based on one or more of the first reference line set, the second reference line set, the correlation function, and / or the pixel values estimated for the luminance CU.

[0116] At 1414, the apparatus may obtain a set of chrominance pixel values of a chrominance CU based on a chrominance intra prediction procedure. For example, referring to FIGS. 9 and 13A - 13C, the intra prediction module 906 may obtain a set of chrominance pixel values of a chrominance CU based on a chrominance intra prediction procedure executed based on one or more of a first reference line set, a second reference line set, a correlation function, and / or pixel values estimated for a luminance CU.

[0117] At 1416, the apparatus may generate a bitstream including a set of luminance pixel values obtained for a luminance CU and a set of chrominance pixel values obtained for a chrominance CU. For example, referring to FIG. 9, the encoder 701 may generate a bitstream output by the encoding module 920.

[0118] Referring to FIG. 14B, at 1418, the apparatus may generate a chrominance reference line index related to a second line set not adjacent to the chrominance CU used in the chrominance intra prediction procedure. For example, referring to FIGS. 9, 13B, and 13C, the intra prediction module 906 may generate an intra_cclm_ref_idx related to a second Reference line set not adjacent to the chrominance CU.

[0119] At 1420, the apparatus may identify a difference between a first reference line set not adjacent to the luminance CU used in the luminance intra prediction procedure and a second reference line set not adjacent to the chrominance CU used in the chrominance intra prediction procedure. For example, referring to FIGS. 9 and 13C, when the tree structures of Y, Cb, and Cr are shared, instead of the corresponding reference line indexes, a difference (delta value) between the reference line index of the CCLM chrominance intra prediction and the reference line index of the luminance MRL intra prediction is transmitted.

[0120] In 1422, the apparatus may generate an indication of a delta value related to the difference between a first set of reference lines not adjacent to the luminance CU used in the luminance intra prediction procedure and a second set of reference lines not adjacent to the chrominance CU used in the chrominance intra prediction procedure. For example, referring to FIGS. 9 and 13C, the reference lines of the CCLM (e.g., non-adjacent reference line 1305 or reference line 1 in FIG. 13C) can be represented independently of the reference line index of the luminance MRL (e.g., non-adjacent reference line 1301 or reference line 4 in FIG. 13C). However, instead of transmitting the index of the reference lines of the CCLM itself, only the difference from the index of the luminance MRL reference lines is transmitted. The values of intra_cclm_ref_idx and delta_intra_cclm_ref_idx are within the luminance sample coordinates, similar to FIG. 13B. The value of intra_cclm_ref_idx may be calculated by the intra prediction module 906 according to Equation (7).

[0121] In 1424, the apparatus may transmit to the image decoder a bitstream including a set of luminance pixel values obtained for the luminance CU and a set of chrominance pixel values obtained for the chrominance CU. For example, referring to FIGS. 9 and 13C, the encoder 701 may transmit to the decoder 801 a bitstream including a set of luminance pixel values obtained for the luminance CU and a set of chrominance pixel values obtained for the chrominance CU.

[0122] FIG. 15 is a flowchart of an exemplary method 1500 for video decoding according to some embodiments of the present disclosure. The method 1500 may be performed by a system such as, for example, the decoding system 800, the decoder 801, or the intra prediction module 1010. The method 1500 may include operations 1502-1510 described below. It is understood that some steps are optional and some steps may be performed simultaneously or in an order different from that shown in FIG. 15.

[0123] Referring to FIG. 15, at 1502, the apparatus may receive, from an image encoder, a bitstream including a set of luminance pixel values associated with a luminance CU and a set of chrominance pixel values associated with a chrominance CU. For example, referring to FIGS. 9 and 10, decoder 801 may receive a bitstream from encoder 701.

[0124] At 1504, the apparatus may identify information related to a luminance reference row index associated with a first set of reference rows not adjacent to the luminance CU, or information related to a chrominance reference row index associated with a second set of reference rows not adjacent to the chrominance CU, from the bitstream. For example, referring to FIG. 10, intra prediction module 1010 may be configured to identify information related to a luminance reference row index associated with a first set of reference rows not adjacent to the luminance CU, or information related to a chrominance reference row index associated with a second set of reference rows not adjacent to the chrominance CU, from the bitstream. The indication may be identified as one or more of the above indications and / or syntax elements in association with FIGS. 13A-13C.

[0125] At 1506, the apparatus may identify a correlation function associated with a first set of reference rows not adjacent to the luminance CU and used by the image encoder to generate the set of luminance pixel values, and a second set of reference rows not adjacent to the chrominance CU and used by the image encoder to generate the set of chrominance pixel values. For example, referring to FIG. 10, intra prediction module 1010 may be configured to identify a correlation function associated with a first set of reference rows not adjacent to the luminance CU and used by the image encoder to generate the set of luminance pixel values, and a second set of reference rows not adjacent to the chrominance CU and used by the image encoder to generate the set of chrominance pixel values.

[0126] In 1508, the apparatus may decode the bitstream based on a correlation function to identify a set of luminance pixel values associated with a luminance CU and a set of chrominance pixel values associated with a chrominance CU. For example, referring to FIG. 10, the intra prediction module 1010 may be configured to decode the bitstream based on the correlation function to identify a set of luminance pixel values associated with a luminance CU and a set of chrominance pixel values associated with a chrominance CU.

[0127] In 1510, the apparatus may generate an enhanced image based on a set of luminance pixel values associated with a luminance CU Set and a set of chrominance pixel values associated with a chrominance CU. For example, referring to FIG. 10, the decoder 801 may be configured to generate an enhanced image based on the luminance pixel values and the chrominance pixel values obtained based on the above operations in association with FIGS. 13A to 13C.

[0128] In various aspects of the present disclosure, the functions described herein may be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, the functions may be stored as instructions on a non-transitory computer-readable medium. Computer-readable media includes computer storage media. Storage media can be any available media that can be accessed by a processor such as the processor 702 of FIGS. 7 and 8. By way of example, and not limitation, such computer-readable media can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, HDD such as magnetic disk storage or other magnetic storage devices, flash drive, SSD, or any other media that can be accessed by a processing system such as a mobile device or computer and that can carry or store desired program code in the form of instructions or data structures. As used herein, "disk" and "disc" include CD, laser disk, optical disk, digital video disc (DVD), and floppy disk. Typically, a disk magnetically reproduces data and a disc optically reproduces data using a laser. The above combinations should also be included within the scope of computer-readable media.

[0129] According to one aspect of the present disclosure, a method for encoding by an encoder is provided. This method may include, by at least one processor, identifying a first set of reference lines that are not adjacent to the luminance CU. This method may include, by at least one processor, performing a luminance intra prediction procedure based on the first set of reference lines that are not adjacent to the luminance CU. This method may include, by at least one processor, obtaining a set of luminance pixel values of the luminance CU based on the luminance intra prediction procedure. This method may include, by at least one processor, identifying a second set of reference lines that are not adjacent to the chrominance CU based on the first set of reference lines that are not adjacent to the luminance CU. This method may include, by at least one processor, estimating a correlation function related to the chrominance CU based on the first set of reference lines that are not adjacent to the luminance CU, the second set of reference lines that are not adjacent to the chrominance CU, and the set of luminance pixel values of the luminance CU.

[0130] In some embodiments, this method may include, by at least one processor, performing a chrominance intra prediction procedure based on the correlation function. In some embodiments, this method may include, by at least one processor, obtaining a set of chrominance pixel values for the chrominance CU based on the chrominance intra prediction procedure. In some embodiments, this method may include, by at least one processor, generating a bitstream including the set of luminance pixel values obtained for the luminance CU and the set of chrominance pixel values obtained for the chrominance CU. In some embodiments, this method may include, by a communication interface, transmitting a bitstream including the set of luminance pixel values obtained for the luminance CU and the set of chrominance pixel values obtained for the chrominance CU to an image decoder.

[0131] In some embodiments, the luminance intra prediction procedure may include an MRL intra prediction procedure. In some embodiments, the chrominance intra prediction procedure may include a CCLM procedure.

[0132] In some embodiments, the method may include generating, by at least one processor, a luminance reference line index related to a first set of reference lines that are not adjacent to the luminance CUs used in the luminance intra prediction procedure. In some embodiments, the bitstream may be further generated to include the luminance reference line index.

[0133] In some embodiments, the luminance reference line index value related to the first set of reference lines that are not adjacent to the luminance CUs used in the luminance intra prediction procedure and the chrominance reference line index value related to the second set of reference lines that are not adjacent to the chrominance CUs used in the chrominance intra prediction procedure may be the same value.

[0134] In some embodiments, the second set of reference lines that are not adjacent to the chrominance CUs used in the chrominance intra prediction procedure includes the first set of reference lines that are not adjacent to the luminance CUs used in the luminance intra prediction procedure and the reference lines located above the first set of reference lines that are not adjacent to the luminance CUs.

[0135] In some embodiments, the second set of reference lines that are not adjacent to the chrominance CUs used in the chrominance intra prediction procedure includes the first set of reference lines that are not adjacent to the luminance CUs used in the luminance intra prediction procedure and the reference lines located below the first set of reference lines that are not adjacent to the luminance CUs.

[0136] In some embodiments, the method may include generating, by at least one processor, a chrominance reference line index related to a second set of reference lines that are not adjacent to the chrominance CUs used in the chrominance intra prediction procedure. In some embodiments, the bitstream may be further generated to include the chrominance reference line index.

[0137] In some embodiments, the luminance reference line index value related to the first reference line set not adjacent to the luminance CU used in the luminance intra prediction procedure and the chrominance reference line index value related to the second reference line set not adjacent to the chrominance CU may be different values.

[0138] In some embodiments, the method may include, by at least one processor, identifying a difference between a first reference line set not adjacent to the luminance CU used in the luminance intra prediction procedure and a second reference line set not adjacent to the chrominance CU used in the chrominance intra prediction procedure. In some embodiments, the method may include, by at least one processor, generating an indication of a delta value related to a difference between a first reference line set not adjacent to the luminance CU used in the luminance intra prediction procedure and a second reference line set not adjacent to the chrominance CU used in the chrominance intra prediction procedure. In some embodiments, the bitstream may be further generated to include an indication of a delta value related to a difference between a first reference line set not adjacent to the luminance CU used in the luminance intra prediction procedure and a second reference line set not adjacent to the chrominance CU used in the chrominance intra prediction procedure.

[0139] In some embodiments, the coding tree structures related to the luminance CU and the chrominance CU may be the same.

[0140] In some embodiments, the indication may include a bit set to a first value to represent a negative delta value. In some embodiments, the indication may include a bit set to a second value different from the first value to represent a positive delta value.

[0141] In some embodiments, the indication may include a delta value.

[0142] In some embodiments, the indication may not include a delta value.

[0143] According to another aspect of the present disclosure, a system for performing encoding by an encoder is provided. The system may include at least one processor and a memory for storing instructions. The memory stores instructions that, when executed by the at least one processor, can cause the at least one processor to identify a first set of reference lines that are not adjacent to the luminance CU. The memory stores instructions that, when executed by the at least one processor, can cause the at least one processor to execute a luminance intra prediction procedure based on the first set of reference lines that are not adjacent to the luminance CU. The memory stores instructions that, when executed by the at least one processor, can cause the at least one processor to obtain a set of luminance pixel values of the luminance CU based on the luminance intra prediction procedure. The memory stores instructions that, when executed by the at least one processor, can cause the at least one processor to identify a second set of reference lines that are not adjacent to the chrominance CU based on the first set of reference lines that are not adjacent to the luminance CU. The memory stores instructions that, when executed by the at least one processor, can cause the at least one processor to estimate a correlation function related to the chrominance CU based on the first set of reference lines that are not adjacent to the luminance CU, the second set of reference lines that are not adjacent to the chrominance CU, and the set of luminance pixel values of the luminance CU.

[0144] In some embodiments, when executed by at least one processor, the memory further stores instructions that can cause the at least one processor to execute a chrominance intra prediction procedure based on a correlation function. In some embodiments, when executed by at least one processor, the memory further stores instructions that can cause the at least one processor to obtain a set of chrominance pixel values of a chrominance CU based on a chrominance intra prediction procedure. In some embodiments, when executed by at least one processor, the memory further stores instructions that can cause the at least one processor to generate a bitstream including a set of luminance pixel values obtained for a luminance CU and a set of chrominance pixel values obtained for a chrominance CU. In some embodiments, when executed by at least one processor, the memory further stores instructions that can cause the at least one processor to transmit a bitstream including a set of luminance pixel values obtained for a luminance CU and a set of chrominance pixel values obtained for a chrominance CU to an image decoder.

[0145] In some embodiments, the luminance intra prediction procedure may include an MRL intra prediction procedure. In some embodiments, the chrominance intra prediction procedure may include a CCLM procedure.

[0146] In some embodiments, when executed by at least one processor, the memory further stores instructions that can cause the at least one processor to generate a luminance reference line index related to a first set of reference lines not adjacent to a luminance CU used in a luminance intra prediction procedure. In some embodiments, the bitstream may be further generated to include the luminance reference line index.

[0147] In some embodiments, the luminance reference line index value related to the first set of reference lines not adjacent to the luminance CU used in the luminance intra prediction procedure and the chrominance reference line index value related to the second set of reference lines not adjacent to the chrominance CU used in the chrominance intra prediction procedure may be the same value.

[0148] In some embodiments, the second reference line set that is not adjacent to the chrominance CU used in the chrominance intra prediction procedure may include a first reference line set that is not adjacent to the luminance CU used in the luminance intra prediction procedure and a reference line located above the first reference line set that is not adjacent to the luminance CU.

[0149] In some embodiments, the second reference line set that is not adjacent to the chrominance CU used in the chrominance intra prediction procedure may include a first reference line set that is not adjacent to the luminance CU used in the luminance intra prediction procedure and a reference line located below the first reference line set that is not adjacent to the luminance CU.

[0150] In some embodiments, the memory stores instructions that, when executed by at least one processor, can cause the at least one processor to generate a chrominance reference line index related to a second reference line set that is not adjacent to the chrominance CU used in the chrominance intra prediction procedure. In some embodiments, the bitstream may be further generated to include the chrominance reference line index.

[0151] In some embodiments, the luminance reference line index value related to the first reference line set that is not adjacent to the luminance CU used in the luminance intra prediction procedure and the chrominance reference line index value related to the second reference line set that is not adjacent to the chrominance CU may be different values.

[0152] In some embodiments, when executed by at least one processor, the memory further causes the at least one processor to identify a difference between a first set of reference lines that are not adjacent to a luminance CU used in a luminance intra prediction procedure and a second set of reference lines that are not adjacent to a chrominance CU used in a chrominance intra prediction procedure. In some embodiments, when executed by at least one processor, the memory further causes the at least one processor to generate an indication of a delta value related to the difference between a first set of reference lines that are not adjacent to a luminance CU used in a luminance intra prediction procedure and a second set of reference lines that are not adjacent to a chrominance CU used in a chrominance intra prediction procedure. In some embodiments, the bitstream may be further generated to include an indication of a delta value related to the difference between a first set of reference lines that are not adjacent to a luminance CU used in a luminance intra prediction procedure and a second set of reference lines that are not adjacent to a chrominance CU used in a chrominance intra prediction procedure.

[0153] In some embodiments, the coding tree structure associated with the luminance CU and the chrominance CU may be the same.

[0154] In some embodiments, the indication may include bits set to a first value to represent a negative delta value. In some embodiments, the indication may include bits set to a second value different from the first value to represent a positive delta value.

[0155] In some embodiments, the indication may include a delta value.

[0156] In some embodiments, the indication may not include a delta value.

[0157] According to a further aspect of the present disclosure, a method of performing decoding by a decoder is provided. The method may include receiving, by a communication interface, from an image encoder, a bitstream including a set of luminance pixel values associated with a luminance CU and a set of chrominance pixel values associated with a chrominance CU. The method may include identifying, by at least one processor, a correlation function associated with a first set of reference lines that is not adjacent to the luminance CU and is used by the image encoder to generate the set of luminance pixel values, and a second set of reference lines that is not adjacent to the chrominance CU and is used by the image encoder to generate the set of chrominance pixel values.

[0158] In some embodiments, the method may include decoding, by at least one processor, the bitstream based on the correlation function to identify a set of luminance pixel values associated with the luminance CU and a set of chrominance pixel values associated with the chrominance CU. In some embodiments, the method may include generating, by at least one processor, an enhanced image based on the set of luminance pixel values associated with the luminance CU and the set of chrominance pixel values associated with the chrominance CU. Set and a set of chrominance pixel values associated with the chrominance CU.

[0159] In some embodiments, the method may include identifying, by at least one processor, information associated with a luminance reference line index associated with the first set of reference lines that is not adjacent to the luminance CU, or information associated with a chrominance reference line index associated with the second set of reference lines that is not adjacent to the chrominance CU, from the bitstream. In some embodiments, the correlation function may be identified based on the luminance reference line index.

[0160] In some embodiments, the luminance reference line index value associated with the first set of reference lines that is not adjacent to the luminance CU and the chrominance reference line index value associated with the second set of reference lines that is not adjacent to the chrominance CU may be the same value.

[0161] In some embodiments, the second reference row set not adjacent to the chrominance CU may include a first reference row set not adjacent to the luminance CU and a reference row located above the first reference row set not adjacent to the luminance CU. In some embodiments, the correlation function may be identified based on a second reference row set not adjacent to the chrominance CU, and the second reference row set includes a first reference row set not adjacent to the luminance CU and a reference row located above the first reference row set not adjacent to the luminance CU.

[0162] In some embodiments, the second reference row set not adjacent to the chrominance CU may include a first reference row set not adjacent to the luminance CU and a reference row located below the first reference row set not adjacent to the luminance CU. In some embodiments, the correlation function may be identified based on a second reference row set not adjacent to the chrominance CU, and the second reference row set includes a first reference row set not adjacent to the luminance CU and a reference row located below the first reference row set not adjacent to the luminance CU.

[0163] In some embodiments, the bitstream may further include a chrominance reference row index related to a second reference row set not adjacent to the chrominance CU. In some embodiments, the correlation function may be identified based on a chrominance reference row index related to a second reference row set not adjacent to the chrominance CU.

[0164] In some embodiments, the luminance reference row index value related to the first reference row set not adjacent to the luminance CU and the chrominance reference row index value related to the second reference row set not adjacent to the chrominance CU may be different values.

[0165] In some embodiments, the bitstream may further include an indication of a delta value related to the difference between the first reference row set not adjacent to the luminance CU and the second reference row set not adjacent to the chrominance CU. In some embodiments, the correlation function may be identified based on the indication of the delta value.

[0166] In some embodiments, the coding tree structure associated with the luminance CU and the chrominance CU may be the same.

[0167] In some embodiments, the indication may include a bit set to a first value to represent a negative delta value. In some embodiments, the indication may include a bit set to a second value different from the first value to represent a positive delta value.

[0168] In some embodiments, the indication may include a delta value.

[0169] In some embodiments, the indication may not include a delta value.

[0170] According to yet another aspect of the present disclosure, a system for performing decoding by a decoder is provided. The system may include at least one processor and a memory for storing instructions. The memory stores instructions that, when executed by the at least one processor, cause the at least one processor to receive, from an image encoder, a bitstream including a set of luminance pixel values associated with a luminance CU and a set of chrominance pixel values associated with a chrominance CU. The memory stores instructions that, when executed by the at least one processor, cause the at least one processor to identify a correlation function related to a first set of reference lines that is not adjacent to the luminance CU and is used by the image encoder to generate the set of luminance pixel values, and a second set of reference lines that is not adjacent to the chrominance CU and is used by the image encoder to generate the set of chrominance pixel values.

[0171] In some embodiments, when executed by at least one processor, the memory further stores instructions that can cause at least one processor to decode a bitstream based on a correlation function to identify a set of luminance pixel values related to a luminance CU and a set of chrominance pixel values related to a chrominance CU. In some embodiments, when executed by at least one processor, the memory further stores, for at least one processor, luminance pixel values related to a luminance CU Set and instructions that can cause at least one processor to generate an enhanced image based on the set of luminance pixel values related to the luminance CU and the set of chrominance pixel values related to the chrominance CU.

[0172] In some embodiments, when executed by at least one processor, the memory further stores instructions that can cause at least one processor to identify information related to a luminance reference row index related to a first set of reference rows not adjacent to a luminance CU or information related to a chrominance reference row index related to a second set of reference rows not adjacent to a chrominance CU from a bitstream. In some embodiments, the correlation function may be identified based on the luminance reference row index.

[0173] In some embodiments, the luminance reference row index value related to the first set of reference rows not adjacent to the luminance CU and the chrominance reference row index value related to the second set of reference rows not adjacent to the chrominance CU may be the same value.

[0174] In some embodiments, the second set of reference rows not adjacent to the chrominance CU may include the first set of reference rows not adjacent to the luminance CU and a reference row located above the first set of reference rows not adjacent to the luminance CU. In some embodiments, the correlation function may be identified based on the second set of reference rows not adjacent to the chrominance CU, and the second set of reference rows includes the first set of reference rows not adjacent to the luminance CU and a reference row located above the first set of reference rows not adjacent to the luminance CU.

[0175] In some embodiments, the second set of reference lines not adjacent to the chrominance CU may include a first set of reference lines not adjacent to the luminance CU and a reference line located below the first set of reference lines not adjacent to the luminance CU. In some embodiments, the correlation function may be identified based on a second set of reference lines not adjacent to the chrominance CU, and the second set of reference lines includes a first set of reference lines not adjacent to the luminance CU and a reference line located below the first set of reference lines not adjacent to the luminance CU.

[0176] In some embodiments, the bitstream may further include a chrominance reference line index related to a second set of reference lines not adjacent to the chrominance CU. In some embodiments, the correlation function may be identified based on a chrominance reference line index related to a second set of reference lines not adjacent to the chrominance CU.

[0177] In some embodiments, the luminance reference line index value related to the first set of reference lines not adjacent to the luminance CU and the chrominance reference line index value related to the second set of reference lines not adjacent to the chrominance CU may be different values.

[0178] In some embodiments, the bitstream may further include an indication of a delta value related to the difference between a first set of reference lines not adjacent to the luminance CU and a second set of reference lines not adjacent to the chrominance CU. In some embodiments, the correlation function may be identified based on the indication of the delta value.

[0179] In some embodiments, the coding tree structures related to the luminance CU and the chrominance CU may be the same.

[0180] In some embodiments, the indication may include a bit set to a first value to represent a negative delta value. In some embodiments, the indication may include a bit set to a second value different from the first value to represent a positive delta value.

[0181] In some embodiments, the instruction may include a delta value.

[0182] In some embodiments, the instruction may not include a delta value.

[0183] The above description of the embodiments is to clarify the general nature of the present disclosure. Those skilled in the art can, without departing from the general concept of the present disclosure and without undue experimentation, apply technical knowledge to easily correct and / or modify such embodiments and apply them to various uses. Therefore, such changes and corrections are intended to be included within the meaning and scope of equivalents of the disclosed embodiments based on the suggestions and guidance provided herein. It should be understood that the terms and expressions in this specification are for the purpose of description and not for the purpose of limitation. Therefore, the terms and expressions in this specification should be interpreted by those skilled in the art in light of the suggestions and guidance.

[0184] The embodiments of the present disclosure have been described with the aid of functional building blocks that describe the implementation forms of specific functions and their relationships. The boundaries of these functional building blocks are arbitrarily defined here for the convenience of description. Alternative boundaries can be defined as long as the specific functions and their relationships are properly executed.

[0185] In the summary and abstract of the invention, one or more (but not all) exemplary embodiments of the present disclosure contemplated by one or more inventors are described, and thus, there is no intention to limit the present disclosure and the appended claims in any form.

[0186] As described above, various function blocks, modules, and steps are disclosed. The provided arrangement is illustrative and not limiting. Thus, the function blocks, modules, and steps may be rearranged or combined in ways different from the examples described above. Similarly, some embodiments may include only a subset of the function blocks, modules, and steps, and such subsets are acceptable.

[0187] The breadth and scope of the present disclosure should not be limited by any of the above exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.

Claims

1. A method of encoding using an encoder, A subp that identifies a first set of reference rows not adjacent to a luminance coding unit CU by at least one processor, The at least one processor performs a step that executes a brightness intra-prediction procedure based on the first set of reference rows that are not adjacent to the brightness CU, The at least one processor performs a step to acquire a set of luminance pixel values ​​of the luminance CU based on the luminance intra prediction procedure, The at least one processor provides a step that identifies a second reference row set that is not adjacent to the chromaticity CU based on the first reference row set that is not adjacent to the luminance CU, The at least one processor includes a step that estimates a correlation function related to the chromaticity CU based on a first set of reference rows not adjacent to the luminance CU, a second set of reference rows not adjacent to the chromaticity CU, and the set of luminance pixel values ​​of the luminance CU, A method of encoding using an encoder.

2. A system that performs encoding using an encoder, At least one processor, A memory, wherein when the memory is executed by the at least one processor, the at least one processor Identify a first reference row set that is not adjacent to the luminance coding unit CU. The luminance intra prediction procedure is executed based on the first set of reference rows that are not adjacent to the luminance CU. Based on the luminance intra prediction procedure, the luminance pixel value set of the luminance CU is obtained. Based on the first set of reference rows that are not adjacent to the luminance CU, a second set of reference rows that are not adjacent to the chromaticity CU is identified. Includes a memory for storing instructions that cause a correlation function related to the chromaticity CU to be estimated based on a first set of reference rows not adjacent to the luminance CU, a second set of reference rows not adjacent to the chromaticity CU, and the set of luminance pixel values ​​of the luminance CU, A system that performs encoding using an encoder.

3. A method of decoding using a decoder, A sub-dep receives a bitstream from an image encoder via a communication interface, which includes a set of luminance pixel values ​​associated with a luminance coding unit CU and a set of chromaticity pixel values ​​associated with a chromaticity coding unit CU. The process includes the step of identifying a correlation function associated with a first reference row set that is not adjacent to the luminance CU and is used by the image encoder to generate the luminance pixel value set, and a second reference row set that is not adjacent to the chromaticity CU and is used by the image encoder to generate the chromaticity pixel value set, using at least one processor. A method of decoding using a decoder.

4. The aforementioned method, The steps include: decoding the bitstream based on the correlation function using at least one processor to identify the set of luminance pixel values ​​associated with the luminance CU and the set of chromaticity pixel values ​​associated with the chromaticity CU; The step of generating an enhanced image based on the set of luminance pixel values ​​associated with the luminance CU and the set of chromaticity pixel values ​​associated with the chromaticity CU using at least one processor, further comprising: The method according to claim 3.

5. The aforementioned method, The step of at least one processor further includes identifying from the bitstream information relating to a luminance reference row index associated with a first set of reference rows not adjacent to the luminance CU, or information relating to a chromaticity reference row index associated with a second set of reference rows not adjacent to the chromaticity CU, The correlation function is identified based on the brightness reference row index. The method according to claim 4.

6. The luminance reference row index value associated with the first reference row set that is not adjacent to the luminance CU and the chromaticity reference row index value associated with the second reference row set that is not adjacent to the chromaticity CU are the same value. The method according to claim 5.

7. The second set of reference rows that is not adjacent to the chromaticity CU includes the first set of reference rows that is not adjacent to the luminance CU, and reference rows located above the first set of reference rows that is not adjacent to the luminance CU. The correlation function is identified based on a second set of reference rows that are not adjacent to the chromaticity CU, the second set of reference rows including a first set of reference rows that are not adjacent to the luminance CU, and reference rows located above the first set of reference rows that are not adjacent to the luminance CU. The method according to claim 3.

8. The second set of reference rows not adjacent to the chromaticity CU includes the first set of reference rows not adjacent to the luminance CU, and reference rows located below the first set of reference rows not adjacent to the luminance CU. The correlation function is identified based on a second set of reference rows not adjacent to the chromaticity CU, the second set of reference rows including the first set of reference rows not adjacent to the luminance CU, and the reference rows located below the first set of reference rows not adjacent to the luminance CU. The method according to claim 3.

9. The bitstream further includes chromaticity reference row indices related to the second set of reference rows that are not adjacent to the chromaticity CU, The correlation function is identified based on the chromaticity reference row index associated with the second set of reference rows that are not adjacent to the chromaticity CU. The method according to claim 3.

10. The luminance reference row index value associated with the first reference row set that is not adjacent to the luminance CU and the chromaticity reference row index value associated with the second reference row set that is not adjacent to the chromaticity CU are different values. The method according to claim 9.

11. The bitstream further includes an indication of a delta value relating to the difference between a first set of reference rows not adjacent to the luminance CU and a second set of reference rows not adjacent to the chromaticity CU, The correlation function is identified based on the indication of the delta value. The method according to claim 10.

12. The coding tree structure associated with the luminance CU and the chromaticity CU is the same. The method according to claim 11.

13. The instruction includes a bit set to the first value to represent a negative delta value, or The instruction includes a bit set to a second value different from the first value in order to represent a positive delta value. The method according to claim 11.

14. The above instruction includes the delta value, or The above instruction does not include the delta value. The method according to claim 11.

15. A system that performs decoding using a decoder, At least one processor, A memory, wherein when the memory is executed by the at least one processor, the at least one processor The image encoder receives a bitstream containing a set of luminance pixel values ​​associated with the luminance coding unit CU and a set of chromaticity pixel values ​​associated with the chromaticity coding unit CU. The system includes a memory for storing instructions that identify a correlation function related to a first reference row set that is not adjacent to the luminance CU and is used by the image encoder to generate the luminance pixel value set, and a second reference row set that is not adjacent to the chromaticity CU and is used by the image encoder to generate the chromaticity pixel value set. A system that performs decoding using a decoder.

16. A computer-readable storage medium storing a computer program and a bitstream, wherein the computer program, when executed by a processor, causes the processor to perform the steps of the encoding method described in Claim 1 to generate the bitstream.