Systems and methods for chroma intra prediction
By identifying the collection of reference lines that are not adjacent to the brightness encoding unit, perform predictions in the brightness frame, and estimate the prediction of related functions in the color frame, solve the problem of not high coding efficiency in existing technology, and achieve more efficient video coding. Essence
Patent Information
- Application Number
- CN202380046287.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-11-29
- Filing Date
- 2023-06-13
- Publication Date
- 2025-01-24
AI Technical Summary
In the intra prediction process of existing video encoding technology, it is difficult to effectively utilize multi-reference rows and chroma intra prediction modes, resulting in low encoding efficiency.
Luminance intra prediction is performed by identifying a set of reference lines that are not adjacent to the luma coding unit, and based on this process, a correlation function associated with the chroma coding unit is estimated for chroma intra prediction.
The coding efficiency of video coding is improved, especially during the prediction of brightness and color frames, which enhances the use of multi -reference lines and color frame prediction mode.
Smart Images

Figure CN119366181A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit of priority to U.S. Provisional Application No. 63 / 366,596, filed on June 17, 2022, and entitled “CHROMA INTRA PREDICTION METHOD,” and U.S. Provisional Application No. 63 / 385,310, filed on November 29, 2022, and entitled “CHROMA INTRA PREDICTION METHOD,” both of which are incorporated herein by reference in their entirety. Background Art
[0003] Embodiments of the present disclosure relate to video encoding.
[0004] Digital video has become mainstream and is used in a wide variety of applications including digital television, video phones, and teleconferencing. These digital video applications are possible because of advances in computing and communication technology and efficient video coding techniques. Various video coding techniques can be used to compress video data so that encoding of the video data can be performed using one or more video coding standards. Exemplary video coding standards may include, but are not limited to, for example, universal video coding (H.266 / VVC), high efficiency video coding (H.265 / HEVC), advanced video coding (H.264 / AVC), moving picture expert group (MPEG) coding. Summary of the invention
[0005] According to one aspect of the present disclosure, a method for encoding by an encoder is provided. The method may include: identifying, by at least one processor, a first reference line set that is not adjacent to a luma coding unit (CU). The method may include: performing, by at least one processor, a luma intra prediction process based on the first reference line set that is not adjacent to the luma CU. The method may include: obtaining, by at least one processor, a luma pixel value set for the luma CU based on the luma intra prediction process. The method may include: identifying, by at least one processor, a second reference line set that is not adjacent to a chroma CU based on the first reference line set that is not adjacent to the luma CU. The method may include: estimating, by at least one processor, a correlation function associated with the chroma CU based on the first reference line set that is not adjacent to the luma CU, the second reference line set that is not adjacent to the chroma CU, and the luma pixel value set of the luma CU.
[0006] According to another aspect of the present disclosure, a system for encoding by an encoder is provided. The system may include at least one processor and a memory storing instructions. The memory stores instructions that, when executed by at least one processor, enable the at least one processor to perform the following operations: identify a first reference line set that is not adjacent to a luma CU. The memory stores instructions that, when executed by at least one processor, enable the at least one processor to perform the following operations: perform a luma intra prediction process based on a first reference line set that is not adjacent to the luma CU. The memory stores instructions that, when executed by at least one processor, enable the at least one processor to perform the following operations: obtain a luma pixel value set for the luma CU based on a luma intra prediction process. The memory stores instructions that, when executed by at least one processor, enable the at least one processor to perform the following operations: identify a second reference line set that is not adjacent to a chroma CU based on a first reference line set that is not adjacent to the luma CU. The memory stores instructions that, when executed by at least one processor, enable the at least one processor to perform the following operations: estimate a correlation function associated with a chroma CU based on a first reference line set that is not adjacent to the luma CU, a second reference line set that is not adjacent to the chroma CU, and a luma pixel value set of the luma CU.
[0007] According to another aspect of the present disclosure, a method for decoding by a decoder is provided. The method may include: receiving a bitstream from an image encoder by a communication interface, the bitstream including a luma pixel value set associated with a luma CU and a chroma pixel value set associated with a chroma CU. The method may include: identifying, by at least one processor, a correlation function associated with: a first reference row set that is not adjacent to the luma CU and is used by the image encoder to generate a luma pixel value set; and a second reference row set that is not adjacent to the chroma CU and is used by the image encoder to generate a chroma pixel value set.
[0008] According to another aspect of the present disclosure, a system for decoding by a decoder is provided. The system may include at least one processor and a memory storing instructions. The memory stores instructions that, when executed by at least one processor, enable the at least one processor to perform the following operations: receive a bitstream from an image decoder, the bitstream including a set of luma pixel values associated with a luma CU and a set of chroma pixel values associated with a chroma CU. The memory stores instructions that, when executed by at least one processor, enable the at least one processor to perform the following operations: identify a correlation function associated with the following items: a first reference row set that is not adjacent to the luma CU and is used by the image encoder to generate a set of luma pixel values; and a second reference row set that is not adjacent to the chroma CU and is used by the image encoder to generate a set of chroma pixel values.
[0009] These illustrative embodiments are mentioned not to limit or define the present disclosure, but to provide examples to aid understanding of the present disclosure. Additional embodiments are described in the Detailed Description, and further description is provided there. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The accompanying drawings, which are incorporated herein and constitute a part of the specification, illustrate embodiments of the present disclosure and, together with the description, further serve to explain the principles of the present disclosure and to enable those skilled in the relevant art to make and use the present disclosure.
[0011] Figure 1 A schematic diagram of an example multiple-reference line (MRL) intra prediction process for image coding is shown.
[0012] Figure 2 Shows Figure 1 An extended schematic diagram of an example MRL intra prediction process for image coding.
[0013] Figure 3 A schematic diagram showing luma and chroma samples for cross-component linear model (CCLM) parameter derivation.
[0014] Figure 4 A graphical representation of the slope adjustment process for CCLM intra prediction is shown.
[0015] Figure 5A A schematic diagram of single-tree partitioning of Versatile Video Coding (VVC) is shown.
[0016] Figure 5B A schematic diagram of dual-tree partitioning of VVC is shown.
[0017] Figure 6 A schematic diagram showing example reference lines for a luma intra prediction process and a chroma intra prediction process is shown.
[0018] Figure 7 A block diagram of an exemplary encoding system according to some embodiments of the present disclosure is shown.
[0019] Figure 8 A block diagram of an exemplary decoding system according to some embodiments of the present disclosure is shown.
[0020] Fig. 9 It shows some embodiments of the present disclosure. Figure 8 Detailed block diagram of an exemplary encoder in the encoding system in.
[0021] Fig.10It shows some embodiments of the present disclosure. Fig. 9 Detailed block diagram of an exemplary decoder in a decoding system in .
[0022] Fig.11 An exemplary diagram of a block divided into coding tree units (CTUs) according to some embodiments of the present disclosure is shown.
[0023] Fig.12 An exemplary CTU divided into coding units (CUs) according to some embodiments of the present disclosure is shown.
[0024] Fig.13A A schematic diagram of a first exemplary intra prediction process using a first reference line set that is not adjacent to a luma CU and a second reference line set that is not adjacent to a chroma CU according to some embodiments of the present disclosure is shown.
[0025] Fig. 13B A schematic diagram of a second exemplary intra prediction process using a first reference line set that is not adjacent to a luma CU and a second reference line set that is not adjacent to a chroma CU according to some embodiments of the present disclosure is shown.
[0026] Fig. 13C A third exemplary intra prediction process using a first set of reference lines that is non-adjacent to a luma CU and a second set of reference lines that is non-adjacent to a chroma CU according to some embodiments of the present disclosure is shown.
[0027] Fig.14A and 14B A flowchart of an exemplary video encoding method according to some embodiments of the present disclosure is shown.
[0028] Fig.15 A flowchart of an exemplary video decoding method according to some embodiments of the present disclosure is shown.
[0029] Embodiments of the present disclosure will be described with reference to the accompanying drawings. DETAILED DESCRIPTION
[0030] Although some configurations and arrangements are discussed, it should be understood that this is done for illustrative purposes only. Those skilled in the relevant art will recognize that other configurations and arrangements can be used without departing from the spirit and scope of the present disclosure. It will be apparent to those skilled in the relevant art that the present disclosure can also be used for various other applications.
[0031] It is worth noting that the phrases "one embodiment", "an embodiment", "example embodiment", "some embodiments", "certain embodiments", etc. mentioned in the specification indicate that the described embodiment may include specific features, structures or characteristics, but each embodiment may not necessarily include the specific features, structures or characteristics. In addition, such phrases do not necessarily refer to the same embodiment. In addition, when a specific feature, structure or characteristic is described in conjunction with an embodiment, it will be within the knowledge of technicians in the relevant field to implement such features, structures or characteristics in conjunction with other embodiments, whether or not explicitly described.
[0032] In general, terms may be understood at least in part based on their use in context. For example, the term "one or more" as used herein may be used to describe any feature, structure, or characteristic in a singular sense, or may be used to describe a combination of features, structures, or characteristics in a plural sense, depending at least in part on the context. Similarly, terms such as "one," "an," or "the" may also be understood to express singular usage or to express plural usage, depending at least in part on the context. In addition, the term "based on" may also be understood to not necessarily be intended to express a set of exclusive factors, depending at least in part on the context, but may allow for the presence of additional factors that are not necessarily explicitly described.
[0033] Various aspects of the video encoding system will now be described with reference to various devices and methods. These devices and methods will be described in the detailed description below and illustrated in the accompanying drawings by various modules, components, circuits, steps, operations, processes, algorithms, etc. (collectively referred to as "elements"). These elements can be implemented using electronic hardware, firmware, computer software, or any combination thereof. Whether these elements are implemented as hardware, firmware, or software depends on the specific application and the design constraints imposed on the overall system.
[0034] The techniques described herein can be used in various video coding applications. As described herein, video coding includes encoding and decoding of a video. The encoding and decoding of a video can be performed in units of blocks. For example, encoding / decoding processes such as transform, quantization, prediction, loop filtering, or reconstruction can be performed on a coding block, a transform block, or a prediction block. As described herein, a block to be encoded / decoded will be referred to as a "current block". For example, a current block may represent a coding block, a transform block, or a prediction block according to a current encoding / decoding process. In addition, it should be understood that the term "unit" used in this disclosure represents a basic unit for performing a specific encoding / decoding process, and the term "block" represents a sample array of a predetermined size. Unless otherwise specified, "block" and "unit" can be used interchangeably.
[0035] Figure 1A schematic diagram 100 of an example multiple reference line (MRL) intra prediction process for image coding is shown. Figure 2 Shows Figure 1 An expanded schematic diagram 200 of an example MRL intra prediction process for image coding is shown. Figure 3 A schematic diagram 300 of luma samples 302 and chroma samples 304 for CCLM parameter derivation is shown. Figure 4 A graphical representation 400 of the slope adjustment process for CCLM intra prediction is shown. Figure 5A A schematic diagram 500 of a single-tree partitioning of a VVC is shown. Figure 5B A schematic diagram 525 of dual-tree partitioning of a VVC is shown. Figure 6 A diagram 600 showing example reference lines for a luma intra prediction process and a chroma intra prediction process is shown.
[0036] refer to Figure 1 In general video coding (VVC), in addition to reference samples 104 in reference rows directly adjacent to a coding unit (CU) 108, one of a plurality of non-adjacent reference rows including a non-adjacent reference sample 106 may also be used in an intra prediction process to predict a pixel value 102. The latter use of non-adjacent reference samples 106 is referred to as multiple reference line (MRL) prediction. In VVC, MRL is disabled and not signaled for coding units (CUs) located above a coding tree unit (CTU) to minimize implementation costs. MRL is only applicable when the intra prediction mode of the current prediction block is coded with the most probable mode (MPM) (but not including planar mode).
[0037] In the bitstream, MRL can be enabled or disabled using the sequence-parameter set (SPS) descriptor, such as
[0038] As shown in Table 1.
[0039]
[0040] Table 1: SPS syntax defined in the VVC specification
[0041] If you set the value of sps_mrl_enabled_flag to 1, specify Figure 1 Which row in is used for intra prediction is shown in Table 2.
[0042]
[0043] Table 2: Syntax of coding_unit() defined in the VVC specification
[0044] refer to Figure 2 , an extension of MRL is proposed. In this proposal, the extended MRL list is defined as N∈{1,3,5,7,12}, where the number N starting from 0 represents the (N+1)th upper reference line and left reference line. For template-based intra mode derivation (TIMD), the MRL list is N∈{1,3}.
[0045] In VVC, a chroma intra prediction mode called CCLM is specified. Figure 3 , luma samples 302 and chroma samples 304 can be used for CCLM parameter derivation. For typical image or video content, signal correlation between the color components of a pixel can be observed. The CCLM mode exploits inter-channel correlation by predicting chroma samples 304 from luma samples 302, which are reconstructed using MRL. Chroma intra-frame prediction is performed using a linear model function, such as expression (1).
[0046] P(i,j) = a * rec' L (i,j) + b (1),
[0047] Where P(i,j) represents the chroma sample 304 in the CU, and rec' L (i, j) represents luma samples 302 of the same CU. For a 4:2:0 color format, luma samples 302 may be downsampled at a ratio of 2:1. CCLM parameters a and b may be derived based on luma samples 302 and chroma samples 304.
[0048] Three CCLM modes are specified in VVC, for example, CCLM left and top (CCLM left and top, CCLM_LT), CCLM left (CCLM left, CCLM_L), and CCLM top (CCLM top, CCLM_T). These three modes differ in the location of reference samples used to derive model parameters "a" and "b". The CCLM_T mode involves samples from the upper boundary, and the CCLM_L mode involves samples from the left boundary. In the CCLM_LT mode, samples from both the upper boundary and the left boundary are used. In general, the chroma intra-frame prediction process using one of the multiple CCLM modes includes: for example, 1) downsampling the luminance block and its adjacent reconstructed samples to match the size of the corresponding chroma block, 2) deriving model parameters based on the reconstructed adjacent samples, and 3) applying expression (1) to generate chroma intra-frame prediction samples.
[0049] Regarding operations associated with downsampling of the luma CU, in order to match the chroma position of the video sequence having a 4:2:0 color format, two types of downsampling filters may be applied to the luma sample 302. Both types of downsampling filters may have a 2 to 1 downsampling ratio in both the horizontal and vertical directions. The two filters (f1 and f2) correspond to video content having a "type-0" and "type-2" 4:2:0 chroma format, respectively, and are given as examples in expression (2) below,
[0050]
[0051] Based on the SPS-level flag information, a two-dimensional 6-tap or 5-tap filter is applied to the luma samples 302 and their neighboring samples within the current block. An exception occurs if the upper row of the current block is a CTU boundary. In this case, a one-dimensional filter [1,2,1] / 4 is applied to the above adjacent luma samples 302 to avoid using more than one luma row above the CTU boundary.
[0052] Regarding the model parameter derivation process, the model parameters “a” and “b” from operation (1) are derived based on the reconstructed luma samples 302 and chroma samples 304 at both the encoder and the decoder to avoid any signaling overhead in VVC.
[0053] Reference again Figure 3 , shows the relative sample positions of an M×N chrominance block, a corresponding 2M×2N luma block, luma samples 302, and chroma samples 304. Figure 3 In FIG. 1 , four samples used in CCLM_LT mode are also shown, and the four samples are marked by triangles. The four samples are located at the positions of M / 4 and 3*M / 4 at the upper boundary, and at the positions of N / 4 and 3*N / 4 at the left boundary. In CCLM_T mode and 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 located at the positions (M+N) / 8, 3*(M+N) / 8, 5*(M+N) / 8, and 7*(M+N) / 8.
[0054] Once four samples are selected, four comparison operations are used to determine the two smallest and two largest brightness sample values. l Represents the average of the two maximum brightness sample values, let X s Represents the average of the two minimum brightness sample values. Similarly, let Y l and Y srepresents the average value of the corresponding chrominance sample values. Then, the linear model parameters "a" and "b" are obtained according to expression (3).
[0055]
[0056] In expression (3), the division operation for calculating parameter "a" is implemented by a lookup table. In order to reduce the amount of memory required to store the lookup table, the difference (the difference between the maximum and minimum values) and the parameter "a" are represented by exponential notation. Here, the difference is approximated by a 4-bit significant part and an exponent. Therefore, the table for 1 / difference includes 16 elements. This has the following benefits: it reduces the complexity of the calculation and reduces the memory size required to store the table.
[0057] In order to improve the coding efficiency, an enhanced compression model (ECM) is proposed. In ECM, an extension of CCLM is adopted, and the extension of CCLM is called multi-model linear model (MMLM). In each MMLM mode, the reconstructed adjacent samples are divided into two categories using a threshold, which is the average value of the brightness sample 302. The linear model of each classification is derived using the least mean square (LMS) process instead of the method in the above VVC.
[0058] refer to Figure 4 , adjusting the slope of parameter "a" in expression (1) can further improve the coding performance of CCLM. For example, CCLM uses a model with two parameters to map the luminance value (lumaVal) to the chrominance value (chromaVal). According to expression (4), the slope parameter "a" and the deviation parameter "b" define the mapping.
[0059] chromaVal = a * lumaVal + b (4).
[0060] Furthermore, the slope adjustment parameter "u" may be used to update the slope parameter to update the model according to expression (5).
[0061] chromaVal = a' * lumaVal + b' (5),
[0062] Where a'=a+u, b'=bu*y r , and y r is the average value of the brightness samples 302.
[0063] Still refer to Figure 4, the slope adjustment parameter "u" is provided as an integer between -4 and 4 (including -4 and 4) and signaled in the bitstream. The unit of the slope adjustment parameter is 1 / 8 of the chroma sample value for each luma sample value (e.g., for 10-bit content). The slope adjustment parameter can be used for CCLM processes that use reference samples above and to the left of the CU (e.g., "LM_CHROMA_IDX" and "MMLM_CHROMA_IDX"), but not for "single-sided" mode. This choice is based on a trade-off between coding efficiency and complexity trade-off considerations. When slope adjustment is applied to a multi-mode CCLM model, both models can be adjusted; and therefore, up to two slope updates for a single chroma CU can be signaled.
[0064] In high-efficiency video coding (HVEC), the coding tree of a CTU is shared by its Y, Cb, and Cr components, so a CU includes a luma CU and two chroma CUs. In VVC, this single tree structure is retained for P and B slices. However, in an I slice, the spatial characteristics of the luma component and the chroma component may be different. In general, luma has a finer texture than chroma, which results in a larger number of smaller CUs in a luma CTU than in a chroma CTU. Therefore, it is reasonable to use separate coding trees for luma components and chroma components in an I slice. In this case, a luma CTU (containing only one luma coding-tree block (CTB) of the original CTU) forms a coding tree, and a chroma CTU (containing only two chroma CTBs of the original CTU) forms a chroma separate tree (CST). In VVC, this CST design in an I slice is called a "dual-tree CTU".
[0065] Starting from the CTU level, the CST partition needs to send the signal of the luma CTB first, and then the signal of the chroma CTB. Therefore, the decoder must process and store the 128×128 luma block before processing the corresponding 64×64 chroma CTB. This processing order results in a buffer size that is four times the buffer size without the CTU dual tree. In order to reduce the buffer requirements in VVC, CST starts at the maximum TU (transform unit) level instead of the CTU level.
[0066] For the common test conditions (CTC) in the VVC test model, each CTU may include 128×128 luma samples and 2×64×64 chroma samples in an I slice, and is partitioned into four 64×64-L / 32×32-C coding tree nodes using a quad-tree (QT) partitioning process. Two independent coding trees (one is the luma coding tree and the other is CST) start from each of the four 64×64-L / 32×32-C coding tree nodes. When the CCLM mode is selected as the chroma intra prediction process for the current chroma CU, the following samples are involved in the process of generating chroma prediction samples: 1) reconstructed samples from the chroma neighboring blocks of the current chroma CB, 2) reconstructed samples from the corresponding luma neighboring blocks and luma collocated blocks of the current chroma CB. In the case of a single partition tree with CCLM chroma CU, the partitions of the luma component and the chroma component are aligned. Reconstruction of any chroma sample in the current Cb / CrCB can be done after sample reconstruction.
[0067] Therefore, if Figure 5A As shown in , if the same CU partition is applied to a 64×64 luma coding node and a corresponding 32×32 chroma coding tree node, there is no need to wait for the reconstruction of the entire luma CU before starting to rebuild its corresponding Cb / Cr CU. However, when the CTU has dual-tree partitioning, the CU partitioning between the luma component and the chroma component may be different, making the processing order of luma and chroma CUs different, for example, Figure 5B The relevant SPS syntax (seq_parameter_set_rbsp()) is shown below in Table 3. Syntax elements related to the tree structure and one or more syntax elements in Table 3 may be transmitted as part of the bitstream.
[0068]
[0069]
[0070] Table 3: seq_parameter_set_rbsp() syntax elements
[0071] Referring to Table 3, for I slices, the value of sps_qtbtt_dual_tree_intra_flag equal to 1 specifies that implicit quadtree partitioning is used to partition each CTU into coding units with 64×64 luma samples, and these coding units are the roots of two independent coding_tree syntax structures for luma and chroma. The value of sps_qtbtt_dual_tree_intra_flag equal to 0 specifies that, for I slices, no separate coding_tree syntax structure is used. When sps_qtbtt_dual_tree_intra_flag is not present, it is inferred to be equal to 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 shall be equal to 0.
[0072] With reference to the SPS, the sps_log2_diff_min_qt_min_cb_intra_slice_chroma syntax element specifies the default difference between the base-2 logarithm of the minimum size in luma samples of a chroma leaf block obtained by quadtree partitioning a chroma CTU with treeType equal to DUAL_TREE_CHROMA and the base-2 logarithm of the minimum coding block size in luma samples of a chroma CU in a slice with sh_slice_type equal to 2(I). With reference to the SPS, this default difference can be overridden by the ph_log2_diff_min_qt_min_cb_chroma element present in the PH syntax structure when the value of sps_partition_constraints_override_enabled_flag is equal to 1. The value of sps_log2_diff_min_qt_min_cb_intra_slice_chroma can be in the range of 0 to Min(6, CtbLog2SizeY)-MinCbLog2SizeY (including 0 and Min(6, CtbLog2SizeY)-MinCbLog2SizeY). When sps_log2_diff_min_qt_min_cb_intra_slice_chroma does not exist, the value of sps_log2_diff_min_qt_min_cb_intra_slice_chroma is inferred to be equal to 0. According to expression (6), it is derived that the base-2 logarithm of the minimum size of the luminance samples of the chroma leaf block obtained by quadtree partitioning the CTU with treeType equal to DUAL_TREE_CHROMA.
[0073] MinQtLog2SizeIntraC=sps_log2_diff_min_qt_min_cb_intra_slice_chroma
[0074] +MinCbLog2SizeY(6).
[0075] With reference to the SPS, the sps_max_mtt_hierarchy_depth_intra_slice_chroma syntax element specifies the default maximum hierarchy depth for chroma coding units obtained by multi-type tree partitioning of chroma quadtree leaves with treeType equal to DUAL_TREE_CHROMA into slices with sh_slice_type equal to 2(I). With reference to the SPS, the default maximum hierarchy depth may be overridden by ph_max_mtt_hierarchy_depth_chroma in the PH syntax structure when the value of sps_partition_constraints_override_enabled_flag is equal to 1. The value of the sps_max_mtt_hierarchy_depth_intra_slice_chroma syntax element may be in the range of 0 to 2*(CtbLog2SizeY-MinCbLog2SizeY), inclusive. When sps_max_mtt_hierarchy_depth_intra_slice_chroma is not present, the value of sps_max_mtt_hierarchy_depth_intra_slice_chroma may be inferred to be equal to 0.
[0076] With reference to the SPS, the sps_log2_diff_max_bt_min_qt_intra_slice_chroma syntax element specifies the default difference between the base-2 logarithm of the maximum dimension (width or height) in the luma samples of a chroma coding block that can be partitioned using a binary split, and the base-2 logarithm of the minimum dimension (width or height) in the luma samples of a chroma leaf block obtained by quadtree partitioning a chroma CTU with treeType equal to DUAL_TREE_CHROMA in a slice with sh_slice_type equal to 2(I). With reference to the SPS, the default difference can be overridden by the ph_log2_diff_max_bt_min_qt_chroma present in the PH syntax structure when the sps_partition_constraints_override_enabled_flag value is equal to 1. The value of sps_log2_diff_max_bt_min_qt_intra_slice_chroma shall be in the range of 0 and Min(6,CtbLog2SizeY)-MinQtLog2SizeIntraC (inclusive). When sps_log2_diff_max_bt_min_qt_intra_slice_chroma is not present, the value of sps_log2_diff_max_bt_min_qt_intra_slice_chroma is inferred to be equal to 0.
[0077] With reference to the SPS, the sps_log2_diff_max_tt_min_qt_intra_slice_chroma syntax element specifies the default difference between the base-2 logarithm of the maximum dimension (width or height) of the luma samples of a chroma coding block that can be partitioned using a ternary split, and the base-2 logarithm of the minimum dimension (width or height) of the luma samples of a chroma leaf block that is obtained by quadtree partitioning a chroma CTU with treeType equal to DUAL_TREE_CHROMA in a slice with sh_slice_type equal to 2(I). With reference to the SPS, the default difference can be overridden by the presence of ph_log2_diff_max_tt_min_qt_chroma in the PH syntax structure when the value of sps_partition_constraints_override_enabled_flag is equal to 1. The value of sps_log2_diff_max_tt_min_qt_intra_slice_chroma shall be in the range of 0 to Min(6,CtbLog2SizeY)-MinQtLog2SizeIntraC, inclusive. When sps_log2_diff_max_tt_min_qt_intra_slice_chroma is not present, the value of sps_log2_diff_max_tt_min_qt_intra_slice_chroma may be inferred to be equal to 0.
[0078] The coding_unit() syntax element is shown in Table 4 below.
[0079]
[0080] Table 4: coding_unit() syntax elements
[0081] Depending on whether the value of the parameter "treeType" is equal to DUAL_TREE_CHROMA, it can be determined whether CST is applied to the current CU. Here, the syntax elements ccm_mode_flag and ccm_mode_idx can be transmitted in the bitstream.
[0082] A cclm_mode_flag value equal to 1 specifies that one of the INTRA_LT_CCLM, INTRA_L_CCLM, and INTRA_T_CCLM chroma intra prediction modes is applied. A cclm_mode_flag equal to 0 specifies that none of the INTRA_LT_CCLM, INTRA_L_CCLM, and INTRA_T_CCLM chroma intra prediction modes is applied. When ccm_mode_flag is not present, ccm_mode_flag is inferred to be equal to 0. The cclm_mode_idx syntax element specifies which of the INTRA_LT_CCLM, INTRA_L_CCLM, and INTRA_T_CCLM chroma intra prediction modes is applied.
[0083] refer to Figure 6 , using the existing VVC technology, the reference lines used for MRL luma intra prediction 602, CCLM luma intra prediction 604, and CCLM chroma intra prediction 606 may be different, such as Figure 6 As shown. If the first row above the luma block contains noise, using this row for luma intra prediction does not provide the best coding efficiency. In this case, an alternative reference row is used for luma intra prediction. Even in this case, the first and second rows are always used for CCLM intra prediction. When the tree structure of Y, Cb, and Cr components is shared, it will cause a loss in coding efficiency.
[0084] To overcome these and other challenges, the present disclosure provides an exemplary intra prediction process in which reference rows that are not adjacent to the chroma CU can be used for chroma intra prediction. For example, in some embodiments, if the tree structure of Y, Cb, and Cr is shared, the same reference row used for luma MRL intra prediction is applied to CCLM chroma intra prediction. Otherwise, the reference row defined by the older version of the VVC specification is used for CCLM chroma intra prediction. In some embodiments, the reference row index for CCLM chroma intra prediction can be transmitted independently of the reference row index for luma MRL intra prediction. In some embodiments, if the tree structure of Y, Cb, and Cr is shared, the difference (incremental value) between the reference row index for CCLM chroma intra prediction and the reference row index for luma MRL intra prediction is transmitted instead of the corresponding reference row index. The following is combined with Figures 7 to 15 Additional details of an exemplary intra prediction process are provided.
[0085] Figure 7 A block diagram of an exemplary encoding system 700 according to some embodiments of the present disclosure is shown. Figure 8A block diagram of an exemplary decoding system 800 according to some embodiments of the present disclosure is shown. Each system 700 or 800 can be applied to or integrated into various systems and devices capable of data processing, such as computers and wireless communication devices. For example, system 700 or 800 can be all or part of the following: a mobile phone, a desktop computer, a laptop computer, a tablet computer, a car computer, a game console, a printer, a positioning device, a wearable electronic device, a smart sensor, a virtual reality (VR) device, an augmented reality (AR) device, or any other suitable electronic device with data processing capabilities. Figure 7 and Figure 8 As shown, system 700 or 800 may include processor 702, memory 704, and interface 706. These components are shown as being interconnected via a bus, but other connection types are also allowed. It should be understood that system 700 or 800 may include any other suitable components for performing the functions described herein.
[0086] 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 physical 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, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functions described throughout the present disclosure. Although Figure 1 and Figure 2Only one processor is shown in the figure, but it should be 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. Whether software is referred to as software, firmware, middleware, microcode, hardware description language or otherwise, it should be broadly interpreted as instructions, instruction sets, codes, code segments, program codes, programs, subroutines, software modules, applications, software applications, software packages, routines, subroutines, objects, executable files, execution threads, processes, functions, etc. Software may include computer instructions written in an interpreted language, a compiled language, or a machine code. Other techniques for indicating hardware are also permitted under the broad category of software.
[0087] Memory 704 can broadly include both memory (also known as main memory / system memory) and storage devices (also known as auxiliary memory). For example, memory 704 can include random-access memory (RAM), read-only memory (ROM), static RAM (SRAM), dynamic RAM (DRAM), ferroelectric RAM (FRAM), electrically erasable programmable ROM (EEPROM), compact disc read-only memory (CD-ROM) or other optical disk storage, hard disk drive (HDD) (such as magnetic disk storage or other magnetic storage device), flash drive, solid-state drive (SSD), or any other medium that can be used to carry or store the required program code in the form of instructions that can be accessed and executed by processor 702. Broadly, memory 704 can be implemented by any computer-readable medium, such as a non-transitory computer-readable medium. Although Figure 1 and Figure 2 Only one memory is shown, but it should be understood that multiple memories may be included.
[0088] The interface 706 may broadly include a data interface and a communication interface configured to receive and send signals with other external network elements in the process of receiving and sending information. For example, the interface 706 may include an input / output (I / O) device and a wired transceiver or a wireless transceiver. Figure 1 and Figure 2 Only one memory is shown, but it should be understood that multiple interfaces may be included.
[0089] The processor 702, the memory 704, and the interface 706 can be implemented in various forms in the system 700 or 800 for performing video encoding functions. In some embodiments, the processor 702, the memory 704, and the interface 706 of the system 700 or 800 are implemented on one or more system-on-chip (SoC) (e.g., integrated on one or more SOCs). In one example, the processor 702, the memory 704, and the interface 706 can be integrated on an application processor (application processor, AP) SoC, which manipulates application processing in an operating system (operating system, OS) environment, including running video encoding and decoding applications. In another example, the processor 702, the memory 704, and the interface 706 can be integrated on a dedicated processor chip for video encoding, such as a GPU or ISP chip dedicated to image processing and video processing in a real-time operating system (real-time operating system, RTOS).
[0090] like Figure 7 As shown, in the encoding system 700, the processor 702 may include one or more modules (eg, encoder 701). Figure 7 The encoder 701 is shown to be located within a processor 702, but it should be understood that the encoder 701 may include one or more submodules that can be implemented on different processors that are close to or far away from each other. The encoder 701 (and any corresponding submodules or subunits) can be a hardware unit (e.g., part of an integrated circuit) of the processor 702, which is designed to be used with other components or software units implemented by the processor 702 by executing at least a portion of a program (i.e., instructions). The instructions of the program can be stored on a computer-readable medium (e.g., a memory 704), and when these instructions are executed by the processor 702, the processor 702 can perform a process having one or more functions related to video coding, and one or more functions related to video coding are, for example, image segmentation, inter-frame prediction, intra-frame prediction, transformation, quantization, filtering, entropy coding, etc., as described in detail below.
[0091] Similarly, if Figure 8 As shown, in the decoding system 800, the processor 702 may include one or more modules, such as a decoder 801. Figure 8The decoder 801 is shown to be located within a processor 702, but it should be understood that the decoder 801 may include one or more submodules that can be implemented on different processors that are close to or far away from each other. The decoder 801 (and any corresponding submodules or subunits) can be a hardware unit (e.g., part of an integrated circuit) of the processor 702, which is designed to be used with other components or software units implemented by the processor 702 by executing at least a portion of a program (i.e., instructions). The instructions of the program can be stored on a computer-readable medium (e.g., memory 704), and when these instructions are executed by the processor 702, the processor 702 can perform a process having one or more functions related to video decoding, and one or more functions related to video decoding are, for example, entropy decoding, inverse quantization, inverse transform, inter-frame prediction, intra-frame prediction, filtering, as described in detail below.
[0092] Fig. 9 It shows some embodiments of the present disclosure. Figure 7 Detailed block diagram of an exemplary encoder 701 in the encoding system 700 in FIG. Fig. 9 As shown, the encoder 701 may include a partition module 902, an inter-frame prediction module 904, an intra-frame 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. It should be understood that Fig. 9 Each element in each element shown in is independently shown as representing the characteristic function different from each other in the video encoder, and it does not mean that each part is formed by the configuration unit of separate hardware or single software. That is to say, each element is included to be listed as an element for the convenience of explanation, and at least two elements in multiple elements can be combined to form a single element, or an element can be divided into multiple elements to perform a function. It should also be understood that some of these elements are not necessary elements for performing the functions described in the present disclosure, but can be optional elements for improving performance. It should also be understood that these elements can be implemented using electronic hardware, firmware, computer software or any combination thereof. Whether these elements are implemented as hardware, firmware or software depends on specific applications and the design constraints imposed on encoder 701.
[0093] The partition module 902 may be configured to divide the input image of the video into at least one processing unit. An image may be a frame of the video or a field of the video. In some embodiments, the image includes a luminance sample array in a monochrome format, or includes a luminance sample array and two corresponding chrominance sample arrays. At this time, the processing unit may be a prediction unit (PU), a transform unit (TU), or a coding unit (CU). The partition module 902 may divide the image into a combination of a plurality of coding units, a plurality of prediction units, and a plurality of transform units, and encode the image by selecting a combination of coding units, prediction units, and transform units based on a predetermined criterion (e.g., a cost function).
[0094] Similar to H.265 / HEVC, H.266 / VVC is a block-based hybrid spatial and temporal prediction coding scheme. Fig.11 As shown, during encoding, the input image 1100 is first divided into a plurality of blocks, namely CTU 1102, by the partition module 902. For example, CTU 1102 may be a block of 128×128 pixels. Fig.12 As shown, each CTU 1102 in the image 1100 can be divided into one or more CUs 1202 by the partition module 902, and the one or more CUs 1202 can be used for prediction and transformation. Unlike H.265 / HEVC, in H.266 / VVC, the CU 1202 can be rectangular or square and can be encoded without being further divided into prediction units or transformation units. For example, Fig.12 As shown, the division of the CTU 1102 into multiple CUs 1202 may include quadtree division (indicated by solid lines), binary tree division (indicated by dashed lines), and ternary tree division (indicated by dot-dash lines). According to some embodiments, each CU 1202 may be as large as its root CTU 1102, or each CU 1202 may be a sub-division of the root CTU 1102 as small as 4×4 blocks.
[0095] refer to Fig. 9, the inter-frame prediction module 904 may be configured to perform inter-frame prediction on the prediction unit, and the intra-frame prediction module 906 may be configured to perform intra-frame prediction on the prediction unit. It may be determined whether to use inter-frame prediction or perform intra-frame prediction on the prediction unit, and specific information (e.g., intra-frame prediction mode, motion vector, reference image, etc.) may be determined according to each prediction method. At this time, the processing unit for performing prediction may be different from the processing unit for determining the prediction method and specific content. For example, the prediction method and prediction mode may be determined in the prediction unit, and the prediction may be performed in the transform unit. The residual coefficients in the residual block between the generated prediction block and the original block may be input into the transform module 908. In addition, the prediction mode information and motion vector information used for prediction, etc. may be encoded into the bitstream by the encoding module 920 together with the residual coefficient or quantization level. It should be understood that in some encoding modes, the original block may be encoded as is without generating a prediction block through the prediction module 904 or 906. It should also be understood that in some encoding modes, prediction, transformation and / or quantization may also be skipped.
[0096] In some embodiments, the inter-frame prediction module 904 may predict the prediction unit based on information on at least one of the multiple images before or after the current image, and in some cases, the inter-frame prediction module 904 may predict the prediction unit based on information on the partial area that has been encoded in the current image. The inter-frame prediction module 904 may include submodules, 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 of an integer number of pixels or less pixels according to the reference image. For brightness pixels, an 8-tap interpolation filter based on discrete cosine transform (DCT) with variable filter coefficients may be used to generate pixel information of an integer number of pixels or less pixels in units of 1 / 4 pixels. For color difference signals, a 4-tap interpolation filter based on DCT with variable filter coefficients may be used to generate pixel information of an integer number of pixels or less pixels in units of 1 / 8 pixels. The motion prediction module may perform motion prediction based on a reference image interpolated by a reference image interpolation portion. The following various methods can be used as methods for calculating motion vectors: for example, full search-based block matching algorithm (FBMA), three-step search (TSS) and new three-step search (NTS) algorithm. The motion vector can have a motion vector value in units of 1 / 2, 1 / 4, or 1 / 16 pixels or integer primitives (pel) based on interpolated pixels. The motion prediction module can predict the current prediction unit by changing the motion prediction method. The following various methods can be used as motion prediction methods: for example, skip method, merge method, advanced motion vector prediction (AMVP) method and intra-block copy method, etc.
[0097] In some embodiments, the intra prediction module 906 may generate a prediction unit based on information on reference pixels around the current block (which is pixel information in the current image). The reference pixel may be located in a reference row that is not adjacent to the current block. When the block in the neighborhood of the current prediction unit is a block that has been subjected to inter-frame prediction and therefore the reference pixel is a pixel that has been subjected to inter-frame prediction, the reference pixel included in the block that has been subjected to inter-frame prediction may be used to replace the reference pixel information of the block in the neighborhood that has been subjected to intra-frame prediction. That is, when the reference pixel is unavailable, at least one reference pixel among the available reference pixels may be used to replace the unavailable reference pixel information. In intra prediction, the prediction mode may have an angular prediction mode that uses reference pixel information according to a prediction direction, and a non-angular prediction mode that does not use directional information when performing prediction. The mode for predicting brightness information may be different from the mode for predicting color difference information, and the color difference information may be predicted using the intra prediction mode information for predicting brightness information or the predicted brightness signal information. If the size of the prediction unit is the same as the size of the transform unit when performing intra prediction, intra prediction can be performed on the prediction unit based on the pixels on the left, the pixels on the upper left, and the pixels on the upper side of the prediction unit. However, if the size of the prediction unit is different from the size of the transform unit when performing intra prediction, intra prediction can be performed using reference pixels based on the transform unit.
[0098] The intra prediction method may generate a prediction block according to a prediction mode after applying an adaptive intra smoothing (AIS) filter to reference pixels. The type of the AIS filter applied to the reference pixels may vary. In order to perform the intra prediction method, the intra prediction mode of the current prediction unit may be predicted according to the intra prediction mode of the prediction unit existing in the neighborhood of the current prediction unit. When the prediction mode of the current prediction unit is predicted using the mode information predicted according to the adjacent prediction units, if the intra prediction mode of the current prediction unit is the same as the intra prediction mode of the prediction unit in the neighborhood, predetermined flag information may be used to transmit information indicating that the prediction mode of the current prediction unit is the same as the prediction mode of the prediction unit in the neighborhood, and if the prediction mode of the current prediction unit and the prediction mode of the prediction unit in the neighborhood are different from each other, the prediction mode information of the current block may be encoded by additional flag information. FIG. 13A to FIG. 13C Various aspects of an exemplary intra prediction process performed by the intra prediction module 906 are shown in FIG.
[0099] For example, Fig.13A A schematic diagram of a first exemplary intra prediction process 1300 using a first reference line set that is non-adjacent to a luma CU and a second reference line set that is non-adjacent to a chroma CU according to some embodiments of the present disclosure is shown. Fig. 13BA schematic diagram of a second exemplary intra prediction process 1325 using a first reference line set that is non-adjacent to a luma CU and a second reference line set that is non-adjacent to a chroma CU according to some embodiments of the present disclosure is shown. Fig. 13C A schematic diagram of a third exemplary intra prediction process 1350 using a first reference line set that is not adjacent to a luma CU and a second reference line set that is not adjacent to a chroma CU according to some embodiments of the present disclosure is shown. Fig. 9 The intra-frame prediction module 906 is described FIG. 13A to FIG. 13C .
[0100] refer to Fig. 9 and Fig.13A , if the tree structures of Y, Cb, and Cr are shared, the same reference row for luma MRL intra prediction is applied to CCLM chroma intra prediction by intra prediction module 906. Otherwise, the reference row defined by the old VVC specification is used for CCLM chroma intra prediction. For example, assuming reference row x (e.g., Fig.13A One or more non-adjacent reference lines 1301 or reference line 4 in the MRL are used for luma intra prediction and are specified by ref_line_idx in the MRL, then luma reference line x and line x+1 (eg, Fig.13A One or more non-adjacent reference lines 1303, or reference lines 4 and 5) and chroma sample line floor((x+1) / 2) (e.g., Fig.13A One or more non-adjacent reference rows 1305 or reference row 2) in will be used for CCLM intra prediction, where the function floor(x) represents the integer part of x. Fig.13A The exemplary intra prediction process 1300 depicted in does not require any changes to the syntax elements sent to the decoder in the bitstream. The intra prediction module 906 requires only some modifications to the encoding and decoding processes.
[0101] Depending on the application, when x is an odd number, the chroma row floor ((x-1) / 2) and the luminance lines x and x+1 may be used in CCLM instead of the chroma row floor ((x+1) / 2). As described above, this embodiment may be applied only when the tree structure of Y, Cb, Cr is shared, for example, when the value of treeType is not DUAL_TREE_CHROMA. When the tree structure of Y, Cb, and Cr is not shared, that is, when the value of treeType is DUAL_TREE_CHROMA, it may be performed Fig. 13B The depicted embodiment.
[0102] refer to Fig. 9 and Fig. 13B, the reference row index for CCLM chroma intra prediction can be transmitted independently of the reference row index for luma MRL intra prediction. For example, assuming intra_cclm_ref_idx is x, where x is an integer between 0 and N, then the adjacent luma sample row x and row x+1 (e.g., Fig. 13B One or more non-adjacent reference lines 1303, or reference lines 2 and 3) and chroma sample line floor(x / 2+1 / 2) (e.g., Fig. 13B One or more non-adjacent reference rows 1305 or reference row 2 in FIG. 13 will be used for CCLM intra prediction, where floor(x) represents the integer part of x. The value of intra_cclm_ref_idx is located in CCLM luma sample coordinates (e.g., one or more non-adjacent reference rows 1303, or reference rows 2 and 3 in FIG. 13). Depending on the application, when x is an odd number, for CCLM intra prediction, chroma reference row floor(x / 2-1 / 2) and luma sample rows x and x+1 may be used instead of chroma row floor(x / 2+1 / 2).
[0103] refer to Fig. 9 and Fig. 13B , the encoder 701 may include an exemplary coding_unit() syntax element in the bitstream. If the value of ccm_mode_flag is equal to 1, an additional syntax element intra_cclm_ref_idx is transmitted. An example of one or more exemplary coding_unit() syntax elements generated by the intra prediction module 906 is shown in Table 5 below.
[0104]
[0105] Table 5: Example coding_unit() syntax elements
[0106] The intra_cclm_ref_idx syntax element (generated, for example, by the intra prediction module 906) specifies the reference row for CCLM chroma intra prediction. The value of intra_cclm_ref_idx is expressed in terms of luma sample coordinates (for example, Fig. 13B The adjacent luminance sample rows, intra_cclm_ref_idx, intra_cclm_ref_idx+1 and chrominance sample rows floor(intra_cclm_ref_idx / 2+1 / 2) may be used for CCLM intra prediction. When intra_cclm_ref_idx is not present, the value is inferred to be equal to 0.
[0107] If intra_cclm_ref_idx is an even number, the adjacent luminance sample rows, intra_cclm_ref_idx, intra_cclm_ref_idx+1, and the chrominance sample rows floor(intra_cclm_ref_idx / 2+1 / 2) are used for CCLM intra prediction. If intra_cclm_ref_idx is an odd number, the adjacent luminance sample rows, intra_cclm_ref_idx, intra_cclm_ref_idx+1, and the chrominance sample rows floor(intra_cclm_ref_idx / 2-1 / 2) are used for CCLM intra prediction. When intra_cclm_ref_idx is not present, the value is inferred to be equal to 0. This can be applied even if the tree structures of Y, Cb, and Cr are not shared, for example, that is, even if the value of treeType is set to indicate DUAL_TREE_CHROMA Fig. 13B The embodiment shown in .
[0108] refer to Fig. 9 and Fig. 13C , if the tree structures of Y, Cb, and Cr are shared, the difference (incremental value) between the reference row index of CCLM chroma intra prediction and the reference row index of luma MRL intra prediction is transmitted instead of the corresponding reference row index. Fig. 13B and Fig. 13C The differences between the exemplary embodiments depicted in (and Fig. 13C The difference between the embodiments of the present invention is that the reference line for CCLM (e.g., Fig. 13C The one or more non-adjacent reference rows 1305 or reference row 1 in FIG. 1304 may be independent of the reference row index used for the luma MRL (eg, Fig. 13C However, only the increment of the index from the luma MRL reference row is transmitted, and the index of the reference row of the CCLM itself is not transmitted. Fig. 13B As shown, the values of intra_cclm_ref_idx and delta_intra_cclm_ref_idx are located in luma sample coordinates, and the value of intra_cclm_ref_dx can be calculated by the intra prediction module 906 according to expression (7).
[0109] intra_cclm_ref_idx = intra_luma_ref_idx + delta_intra_cclm_ref_idx (7)
[0110] According to expression (7) and using Fig. 13CFor the example reference line depicted in FIG. 1 , the values of intra_luma_ref_idx and delta_intra_cclm_ref_idx are 4 and −2, respectively. The value of ccm_luma_ref_line can be calculated as 4+(−2)=2, which means that the luma sample line ccm_luma_ref_line (e.g., Fig. 13C One or more non-adjacent reference lines 1303 or reference line 2) and cclm_luma_ref_line+1 (e.g., one or more non-adjacent reference lines 1303 or reference line 3) and the chroma sample row floor(cclm_luma_ref_line / 2+1 / 2) (e.g., one or more non-adjacent reference lines 1305 or reference line 1) will be used for CCLM chroma intra prediction.
[0111] with Fig. 13B As in the embodiment described in, depending on the application, when cclm_luma_ref_line is an odd number, Fig. 13C In the CCLM chroma intra prediction in the embodiment of the present invention, the chroma sample line floor(cclm_luma_ref_line / 2 -1 / 2) and the luma reference lines ccm_luma_ref_line and ccm_luma_ref_line+1 may be used.
[0112] Combination Fig. 13C The described embodiment can 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. If the tree structures of Y, Cb and Cr are not shared, that is, the value of treeType is equal to DUAL_TREE_CHROMA, then there is Fig. 13C Two possible embodiments are associated. In some embodiments, the coding_unit() syntax element shown in Table 6 below is used; however, in some embodiments, one or more coding_unit() syntax elements shown in Table 7 below may be used.
[0113]
[0114] Table 6: Example coding_unit() syntax elements
[0115]
[0116]
[0117] Table 7: Example coding_unit() syntax elements
[0118] Refer to Table 6 and Fig. 13C If the tree structure of Y, Cb, and Cr is shared (i.e., 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. If 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 may be transmitted. If the tree structure of Y, Cb, and Cr is not shared, i.e., the value of treeType is equal to DUAL_TREE_CHROMA, the value of delta_intra_cclm_idx_present_flag may be inferred by the decoder 801 to be equal to 0, and the following may be applied: Fig.13A In this case, the additional syntax elements abs_delta_intra_cclm_idx and delta_intra_cclm_sign_flag may not be transmitted.
[0119] Refer again to Table 6 and Fig. 13C , if the tree structure of Y, Cb and Cr is shared (that is, 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 can be generated by the intra prediction module 906 and transmitted in the bitstream. If 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. If the tree structure of Y, Cb and Cr is not shared, that is, the value of treeType is equal to DUAL_TREE_CHROMA, instead of the syntax elements abs_delta_intra_cclm_idx and delta_intra_cclm_sign_flag, the above combined syntax elements can be generated Fig. 13B The syntax element intra_cclm_ref_idx is described and transmitted in the bitstream.
[0120] Still refer to Table 6 and Fig. 13C , the delta_intra_cclm_idx_present_flag syntax element equal to 1 indicates that abs_deta_intra_cclm_idx and delta_intra_cclm_sign_flag are transmitted. The value of delta_intra_cclm_idx_present_flag equal to 0 indicates that abs_deta_intra_cclm_idx and delta_intra_cclm_sign_flag are not transmitted, and the value of delta_intra_cclm_idx is 0. In this case, the reference rows intra_luma_ref_idx and intra_luma_ref_idx+1 for luma samples and row floor(intra_luma_ref_idx / 2+1 / 2) for chroma samples will be used for CCLM chroma intra prediction. If the value of treeType is equal to DUAL_TREE_CHROMA, the value of delta_intra_cclm_idx_present_flag equal to 0 can be inferred by the decoder 801.
[0121] Refer again 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 delta_intra_cclm_sign_flag value equal to 0 represents that delta_intra_cclm_idx is negative, and a delta_intra_cclm_sign_flag value equal to 1 represents that delta_intra_cclm_idx is positive. The value of the reference line ccm_luma_ref_line for the luma reference line of CCLM is calculated as ccm_luma_ref_line=intra_luma_ref_idx+(2*delta_intra_cclm_sign_flag-1)*delta_intra_cclm_idx. The reference lines ccm_luma_ref_line and ccm_luma_ref_line+1 of luma samples and the line floor(cclm_luma_ref_line / 2+1 / 2) of chroma samples will be used for CCLM chroma intra prediction.
[0122] Refer to Table 7 and Fig. 13C, abs_delta_intra_cclm_idx and delta_intra_cclm_sign_flag indicate the value of delta_intra_cclm_idx. For example, a delta_intra_cclm_sign_flag value equal to 0 indicates that delta_intra_cclm_idx is negative, and a delta_intra_cclm_sign_flag value equal to 1 specifies that delta_intra_cclm_idx is positive. The value of the reference line ccm_luma_ref_line for the luma reference line of CCLM is calculated as ccm_luma_ref_line=intra_luma_ref_idx+(2*delta_intra_cclm_sign_flag-1)*delta_intra_cclm_idx. If ccm_luma_ref_line is even, the reference lines ccm_luma_ref_line and ccm_luma_ref_line+1 of luma samples and the line floor(cclm_luma_ref_line / 2+1 / 2) of chroma samples can be used for CCLM chroma intra prediction. If ccm_luma_ref_line is odd, the reference lines ccm_luma_ref_line and ccm_luma_ref_line+1 of luma samples and the line floor(cclm_luma_ref_line / 2-1 / 2) of chroma samples can be used for CCLM chroma intra prediction.
[0123] like Fig. 9 As shown, a residual block and residual coefficient information may be generated, the residual block including a prediction unit that has been predicted based on the prediction unit generated by the prediction module 904 or 906, and the residual coefficient information being a difference between the prediction unit and the original block. The generated residual block may be input to the transform module 908.
[0124] The transform module 908 may be configured to transform the residual block including the original block and the residual coefficient information of the prediction unit generated by the prediction modules 904 and 906 using a transform method (e.g., DCT, discrete sine transform (DST), Karhunen–Loève transform (KLT), or transform skip). Whether to apply DCT, DST, or KLT to transform the residual block may be determined based on the intra-prediction mode information of the prediction unit used to generate the residual block. The transform module 908 may transform the video signal in the residual block from the pixel domain to the transform domain (e.g., the frequency domain, depending on the transform method). It should be understood that in some examples, the transform module 908 may be skipped and the video signal may not be transformed to the transform domain.
[0125] The quantization module 910 may be configured to quantize the coefficients at various positions in the coding block to generate quantization levels at various positions. The current block may be a residual block. That is, the quantization module 910 may perform a quantization process on each residual block. The residual block may include N×M positions (samples), each position being associated with a transformed or untransformed video signal / data (e.g., luminance information and / or chrominance information), where N and M are positive integers. In the present disclosure, before quantization, a transformed or untransformed video signal at a particular position is referred to herein as a “coefficient”. After quantization, the quantized value of the coefficient is referred to herein as a “quantization level” or “level”.
[0126] Quantization can be used to reduce the dynamic range of a transformed or untransformed video signal so that fewer bits are used to represent the video signal. Quantization typically involves dividing by the quantization step size and then rounding, while inverse quantization (also known as inverse quantization) involves multiplying 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. The quantization of all coefficients within a coding block can be performed independently, and this quantization method is used in some existing video compression standards, such as H.264 / AVC and H.265 / HEVC. The QP in quantization may affect the bit rate used to encode / decode the video image. For example, a higher QP can result in a lower bit rate, while a lower QP can result in a higher bit rate.
[0127] For N×M coding blocks, a specific coding scan order can be used to convert the two-dimensional (2D) coefficients of the block into a one-dimensional (1D) order for coefficient quantization and coding. Typically, the coding scan starts from the upper left corner and stops at the last non-zero coefficient / level in the lower right corner or lower right direction of the coding block. It should be understood that the coding scan order may include any suitable order, such as a zig-zag scan order, a vertical (column) scan order, a horizontal (row) scan order, a diagonal scan order, or any combination thereof. The quantization of coefficients within the coding block can utilize coding scan order information. For example, it may depend on the state of the previous quantization level along the coding scan order. In order to further improve coding efficiency, the quantization module 910 can use more than one quantizer, such as two scalar quantizers. Which quantizer will be used to quantize the current coefficient may depend on the information that is located before the current coefficient in the coding scan order. Such a quantization process is called dependent quantization.
[0128] refer to Fig. 9 , the encoding module 920 can be configured to encode the quantization level of each position in the encoding block into the bitstream. In some embodiments, the encoding module 920 can perform entropy encoding on the encoding block. Entropy encoding can use various binarization methods to convert each quantization level into a corresponding binary representation, such as binary bins, and the binarization method is, for example, Golomb-Rice binarization, Golomb-Rice binarization includes, for example, k-order exponential Golomb binarization (EGk), and combined truncated Rice binarization (TR) with limited EGk binarization. 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 can also encode various other information, such as block type information of the coding 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 input from, for example, 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, for an N×M block, there may be N×M quantization levels. These N×M levels may be zero values or non-zero values. If these levels are not binary, for example, a combined TR and limited EGk binarization may be used to further binarize the non-zero levels into binary bits.
[0129] Non-binary syntax elements can be mapped to binary codewords. The bijective mapping between symbols and codewords (for which simple structured codes are usually used) is called binarization. Both the binary symbols (also called bins) of binary syntax elements and the codewords of non-binary data can be encoded using binary arithmetic coding. The core coding engine based on context-adaptive binary arithmetic coding (CABAC) can support two operating modes: context coding mode, in which the bins are encoded with an adaptive probability model; and a less complex bypass mode, which uses a fixed probability of 1 / 2. The adaptive probability model is also called context, and the assignment of probability models to individual bins is called context modeling.
[0130] like Fig. 9 As shown, the inverse quantization module 912 may be configured to inversely quantize the quantization level by the inverse quantization module 912, and the inverse transform module 914 may be configured to inversely 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 prediction unit predicted by the prediction module 904 or 906 to generate a reconstructed block.
[0131] 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 eliminate block distortion caused by the boundaries between blocks in the reconstructed image. For a video on which deblocking has been performed, the SAO module may correct the offset to the original video in units of pixels. The ALF may be performed 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 block or reconstructed image calculated by the filter module 916, and provide the reconstructed and stored block or image to the inter-frame prediction module 904 when performing inter-frame prediction.
[0132] Fig.10 It shows some embodiments of the present disclosure. Figure 8 Detailed block diagram of an exemplary decoder 801 in the decoding system 800 in FIG. Fig.10 As shown, the decoder 801 may include a decoding module 1002, an inverse quantization module 1004, an inverse transform module 1006, an inter-frame prediction module 1008, an intra-frame prediction module 1010, a filter module 1012, and a buffer module 1014. It should be understood that Fig.10Each element in each element shown in is independently shown as representing the characteristic function different from each other in the video decoder, and it does not mean that each part is formed by the configuration unit of independent hardware or single software. That is to say, each element is included to be listed as an element for the convenience of explanation, and at least two elements in multiple elements can be combined to form a single element, or an element can be divided into multiple elements to perform a function. It should also be understood that some elements in these elements are not necessary elements for performing the functions described in the present disclosure, but can be optional elements for improving performance. It should also be understood that these elements can be realized using electronic hardware, firmware, computer software or any combination thereof. Whether these elements are implemented as hardware, firmware or software depends on specific application and the design constraints imposed on decoder 801.
[0133] When a video bitstream from a video encoder (e.g., encoder 701) is input, the input bitstream can be decoded by the decoder 801 according to the process opposite to that of the video encoder. Therefore, for ease of description, some decoding details described above about encoding can be skipped. The decoding module 1002 can be configured to decode the bitstream to obtain various information encoded into the bitstream, such as the quantization level of each position in the coding block. In some embodiments, the decoding module 1002 can perform entropy decoding (decompression) corresponding to the entropy encoding (compression) performed by the encoder (e.g., VLC, CAVLC, CABAC, SBAC, and PIPE encoding, etc.) to obtain a binary representation (e.g., binary bits). The decoding module 1002 can also convert the binary representation into a quantization level using Columbus-Rice binarization, which includes, for example, EGk binarization, and combined TR and limited EGk binarization. In addition to the quantization level of each position in the transform unit, the decoding module 1002 can also decode various other information, such as parameters for Golomb-Rice binarization (e.g., Rice parameters), block type information of the coding 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 can perform rearrangement on the bitstream to reconstruct and rearrange the data from the 1D sequence into 2D reconstructed blocks by an inverse scanning method based on the coding scanning order used by the encoder.
[0134] The inverse quantization module 1004 may be configured to inverse quantize the quantization level of each position of the coding block (e.g., 2D reconstruction block) to obtain coefficients at each position. In some embodiments, the inverse quantization module 1004 may also perform dependent inverse quantization based on quantization parameters provided by the encoder, the quantization parameters including information related to the quantizer used in the dependent quantization, for example, the quantization step size used by each quantizer.
[0135] The inverse transform module 1006 may be configured to perform an inverse transform, for example, for the DCT, DST, and KLT performed by the encoder, respectively, to perform inverse DCT, inverse DST, and inverse KLT to transform data from the transform domain (e.g., coefficients) back to the pixel domain (e.g., luminance information and / or chrominance information). In some embodiments, the inverse transform module 1006 may selectively perform transform operations (e.g., DCT, DST, KLT) based on multiple pieces of information such as a prediction method, a size of the current block, and a prediction direction.
[0136] The inter prediction module 1008 and the intra prediction module 1010 may be configured to generate a prediction block based on information related to generating a prediction block provided by the decoding module 1002 and information of a previously decoded block or image provided by the buffer module 1014. As described above, if the size of the prediction unit and the size of the transform unit are the same when performing intra prediction in the same manner as the operation of the encoder, intra prediction may be performed on the prediction unit based on pixels existing on the left side of the prediction unit, pixels on the upper left side, and pixels on the top. However, if the size of the prediction unit and the size of the transform unit are different when performing intra prediction, intra prediction may be performed using reference pixels based on the transform unit.
[0137] The intra prediction module 1010 may be configured to receive a bitstream from the encoder 701, the bitstream comprising a luma pixel value set associated with a luma CU and a chroma pixel value set associated with a chroma CU. In some embodiments, the intra prediction module 1010 may be configured to identify information associated with a luma reference line index or information associated with a chroma reference line index from the bitstream, the luma reference line index being associated with a first reference line set that is not adjacent to the luma CU, and the chroma reference line index being associated with a second reference line set that is not adjacent to the chroma CU. The indication may be identified as a combination of the above Figures 13A to 13COne or more of the multiple indications and / or syntax elements described. In some embodiments, the intra prediction module 1010 can be configured to identify a correlation function associated with the following items: a first reference row set that is not adjacent to the luma CU and is used by the image encoder to generate a luma pixel value set, and a second reference row set that is not adjacent to the chroma CU and is used by the image encoder to generate a chroma pixel value set. In some embodiments, the intra prediction module 1010 can be configured to decode the bitstream based on the correlation function to identify a luma pixel value set associated with the luma CU and a chroma pixel value set associated with the chroma CU.
[0138] The reconstructed block or 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 reconstructed block and use it as a reference image or reference block for the inter-frame prediction module 1008, and may output the reconstructed image.
[0139] Consistent with the scope of the present disclosure, the encoding module 920 and the decoding module 1002 may be configured to encode images of a video using a quantization level binarization scheme with Rice parameters adapted to bit depth and / or bit rate to improve encoding efficiency.
[0140] Fig.14A and 14B 1400 is a flowchart of an exemplary method 1400 of video encoding according to some embodiments of the present disclosure. The method 1400 may be performed by a system, such as the encoding system 700, the encoder 701, or the intra prediction module 906. As described below, the method 1400 may include operations 1402 to 1424. It will be appreciated that some of these steps may be optional, and some of these steps may be performed simultaneously or in conjunction with the operation. Fig.14A and Fig. 14B The order in which they are shown is different from the order in which they are shown.
[0141] refer to Fig.14A At 1402, the apparatus may identify a first set of reference lines that are not adjacent to the luma CU. Fig. 9 and FIG. 13A to FIG. 13C , the intra prediction module 906 may identify a first set of reference lines (eg, one or more non-adjacent reference lines 1301) that are not adjacent to the luma CU of the MRL. FIG. 13A to FIG. 13CIn the example shown in , the first reference row set that is not adjacent to the luma CU may include, for example, reference row 4. Non-adjacent reference rows may include any reference row that is not directly adjacent to the luma CU. In other words, any reference row other than reference row 0 may be selected for the luma CU. In some cases, the reference row with the least noise may be selected for luma intra prediction.
[0142] At 1404, the apparatus may perform a luma intra prediction process based on a first set of reference lines that are not adjacent to the luma CU. FIG. 13A to FIG. 13C , reference row 4 can be used for luma intra prediction (e.g., MRL).
[0143] At 1406, the apparatus may obtain a set of luma pixel values for the luma CU based on a luma intra prediction process. Fig. 9 and FIG. 13A to FIG. 13C , the intra prediction module 906 may obtain a set of luma pixel values for the luma CU by applying MRL to the first set of reference lines.
[0144] At 1408, the device may identify a second set of reference lines that are not adjacent to the chroma CU based on the first set of reference lines that are not adjacent to the luma CU. Fig. 9 and FIG. 13A to FIG. 13C , the intra prediction module 906 may identify a second reference line set that is not adjacent to the chroma CU based on the first reference line set (eg, Figures 13A to 13C One or more non-adjacent reference rows 1305 in the above). FIG. 13A to FIG. 13C The operations are described to identify a second set of reference rows.
[0145] At 1410, the apparatus may estimate a correlation function associated with the chroma CU based on a first reference line set that is not adjacent to the luma CU, a second reference line set that is not adjacent to the chroma CU, and a luma pixel value set of the luma CU. Fig. 9 and FIG. 13A to FIG. 13C The intra-frame prediction module 906 can be combined with the above Figure 4 and FIG. 13A to FIG. 13C The operations described are used to identify the offsets a' and b'.
[0146] At 1412, the device may perform a chroma intra prediction process based on the correlation function. Fig. 9 and FIG. 13A to FIG. 13C , the intra prediction module 906 may perform chroma intra prediction based on one or more of the first reference line set, the second reference line set, a correlation function, and / or pixel values estimated for the luma CU.
[0147] At 1414, the device may obtain a set of chroma pixel values for the chroma CU based on the chroma intra prediction process. Fig. 9 and FIG. 13A to FIG. 13C The intra prediction module 906 may obtain a set of chroma pixel values for the chroma CU based on a chroma intra prediction process, wherein the chroma intra prediction process is performed based on one or more of the first reference row set, the second reference row set, a correlation function, and / or a pixel value estimated for the luma CU.
[0148] At 1416, the apparatus may generate a bitstream including a set of luma pixel values obtained for the luma CU and a set of chroma pixel values obtained for the chroma CU. Fig. 9 , encoder 701 can generate a bit stream output by encoding module 920.
[0149] refer to Fig. 14B At 1418, the device may generate a chroma reference line index associated with a second set of lines that are not adjacent to the chroma CU and are used in the chroma intra prediction process. Fig. 9 , Fig. 13B and Fig. 13C , the intra prediction module 906 may generate intra_cclm_ref_idx, where intra_cclm_ref_idx is associated with a second set of rows that are not adjacent to the chroma CU.
[0150] At 1420, the apparatus may identify a difference between a first set of reference lines for a luma intra prediction process that is not adjacent to a luma CU and a second set of reference lines for a chroma intra prediction process that is not adjacent to a chroma CU. Fig. 9 and Fig. 13C , if the tree structures of Y, Cb, and Cr are shared, the difference (delta value) between the reference row index used for CCLM chrominance intra prediction and the reference row index used for luma MRL intra prediction is transmitted instead of the corresponding reference row index.
[0151] At 1422, the apparatus may generate an indication of a delta value associated with a difference between a first set of reference lines for a luma intra prediction process that is non-adjacent to a luma CU and a second set of reference lines for a chroma intra prediction process that is non-adjacent to a chroma CU. Fig. 9 and Fig. 13C , for reference lines of CCLM (e.g. Fig. 13C The one or more non-adjacent reference rows 1305 or reference row 1 in FIG. 1304 may be independent of the reference row index used for the luma MRL (eg, Fig. 13CHowever, the reference row index of the CCLM itself is not transmitted, but only the increment from the luma MRL reference row index. Fig. 13B In the example, the values of intra_cclm_ref_idx and delta_intra_cclm_ref_idx are located in luma sample coordinates, and the value of intra_cclm_ref_dx can be calculated by the intra prediction module 906 according to expression (7).
[0152] At 1424, the apparatus may transmit a bitstream to an image decoder, the bitstream including a set of luma pixel values obtained for the luma CU and a set of chroma pixel values obtained for the chroma CU. Fig. 9 and Fig. 13C , the encoder 701 can transmit a bitstream including a set of luma pixel values obtained for the luma CU and a set of chroma pixel values obtained for the chroma CU to the decoder 801.
[0153] Fig.15 1 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 the decoding system 800, the decoder 801, or the intra prediction module 1010. As described below, the method 1500 may include operations 1502 to 1510. It will be appreciated that some of these steps may be optional, and some of these steps may be performed simultaneously or in conjunction with the operation. Fig.15 The order in which they are shown is different from the order in which they are shown.
[0154] refer to Fig.15 At 1502, the apparatus may receive a bitstream from an image decoder, the bitstream comprising a set of luma pixel values associated with a luma CU and a set of chroma pixel values associated with a chroma CU. Fig. 9 and Fig.10 , the decoder 801 can receive the bit stream from the encoder 701.
[0155] At 1504, the apparatus may identify from a bitstream information associated with a luma reference line index associated with a first set of reference lines that are not adjacent to the luma CU, or information associated with a chroma reference line index associated with a second set of reference lines that are not adjacent to the chroma CU. Fig.10, the intra prediction module 1010 may be configured to identify information associated with a luma reference line index or information associated with a chroma reference line index from the bitstream, the luma reference line index being associated with a first reference line set that is not adjacent to the luma CU, and the chroma reference line index being associated with a second reference line set that is not adjacent to the chroma CU. The indication may be identified as a combination of the above FIG. 13A to FIG. 13C One or more of the plurality of indications and / or syntax elements described.
[0156] At 1506, the device may identify a correlation function associated with a first reference row set that is not adjacent to a luma CU and used by an image encoder to generate a luma pixel value set, and a second reference row set that is not adjacent to a chroma CU and used by an image encoder to generate a chroma pixel value set. Fig.10 , the intra-frame prediction module 1010 can be configured to identify a correlation function that is associated with the following items: a first reference row set that is not adjacent to the luma CU and is used by the image encoder to generate a luma pixel value set, and a second reference row set that is not adjacent to the chroma CU and is used by the image encoder to generate a chroma pixel value set.
[0157] At 1508, the device may decode the bitstream based on the correlation function to identify a set of luma pixel values associated with the luma CU and a set of chroma pixel values associated with the chroma CU. Fig.10 , the intra prediction module 1010 can be configured to decode the bitstream based on the correlation function to identify a set of luma pixel values associated with the luma CU and a set of chroma pixel values associated with the chroma CU.
[0158] At 1510, the device may generate an enhanced image based on a luma pixel value associated with a luma CU and a set of chroma pixel values associated with a chroma CU. Fig.10 The decoder 801 may be configured to generate an enhanced image based on the luminance pixel value and the chrominance pixel value, wherein the luminance pixel value and the chrominance pixel value are based on the above combination. FIG. 13A to FIG. 13C obtained by the operation described.
[0159] In various aspects of the present disclosure, the functions described herein may be implemented in hardware, software, firmware, or any combination thereof. If the functions are implemented in software, the functions may be stored as instructions on a non-transitory computer-readable medium. Computer-readable media include computer storage media. Storage media may be executable by a processor (e.g., Figure 7 and Figure 8Any available medium accessible by the processor 702 in the computer system. For example, but not limited to, such computer-readable media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage device, HDD (such as magnetic disk storage device or other magnetic storage device), flash drive, SSD, or any other medium that can be used to carry or store the required program code in the form of instructions or data structures and can be accessed by a processing system (such as a mobile device or computer). Disks and optical disks as used herein include CDs, laser discs, optical disks, digital video discs (DVDs), and floppy disks, where disks usually reproduce data magnetically, while optical disks use lasers to reproduce data optically. Each combination of the above should also be included in the scope of computer-readable media.
[0160] According to one aspect of the present disclosure, a method for encoding by an encoder is provided. The method may include: identifying, by at least one processor, a first reference line set that is not adjacent to a luma CU. The method may include: performing, by at least one processor, a luma intra prediction process based on the first reference line set that is not adjacent to the luma CU. The method may include: obtaining, by at least one processor, a luma pixel value set for the luma CU based on the luma intra prediction process. The method may include: identifying, by at least one processor, a second reference line set that is not adjacent to a chroma CU based on the first reference line set that is not adjacent to the luma CU. The method may include: estimating, by at least one processor, a correlation function associated with a chroma CU based on the first reference line set that is not adjacent to the luma CU, the second reference line set that is not adjacent to the chroma CU, and the luma pixel value set of the luma CU.
[0161] In some embodiments, the method may include: performing a chroma intra prediction process based on a correlation function by at least one processor. In some embodiments, the method may include: obtaining a chroma pixel value set for a chroma CU based on a chroma intra prediction process by at least one processor. In some embodiments, the method may include: generating a bitstream by at least one processor, the bitstream including a luma pixel value set obtained for a luma CU and a chroma pixel value set obtained for a chroma CU. In some embodiments, the method may include: transmitting a bitstream including a luma pixel value set obtained for a luma CU and a chroma pixel value set obtained for a chroma CU to an image decoder by a communication interface.
[0162] In some embodiments, the luma intra prediction process may include an MRL intra prediction process. In some embodiments, the chroma intra prediction process may include a CCLM process.
[0163] In some embodiments, the method may include: generating, by at least one processor, a luma reference line index associated with a first reference line set that is not adjacent to the luma CU and is used in a luma intra prediction process. In some embodiments, the bitstream may be further generated to include the luma reference line index.
[0164] In some embodiments, a luma reference row index value associated with a first reference row set that is not adjacent to a luma CU and used in a luma intra prediction process and a chroma reference row index value associated with a second reference row set that is not adjacent to a chroma CU and used in a chroma intra prediction process may be the same value.
[0165] In some embodiments, the second reference line set for the chroma intra prediction process that is not adjacent to the chroma CU includes: the first reference line set for the luma intra prediction process that is not adjacent to the luma CU, and the reference lines located above the first reference line set that is not adjacent to the luma CU.
[0166] In some embodiments, the second reference line set used for the chroma intra prediction process and not adjacent to the chroma CU includes: the first reference line set used for the luma intra prediction process and not adjacent to the luma CU, and reference lines located below the first reference line set and not adjacent to the luma CU.
[0167] In some embodiments, the method may include: generating, by at least one processor, a chroma reference line index associated with a second reference line set that is not adjacent to the chroma CU and is used in a chroma intra prediction process. In some embodiments, the bitstream may be further generated to include the chroma reference line index.
[0168] In some embodiments, a luma reference row index value associated with a first reference row set non-adjacent to a luma CU used in a luma intra prediction process and a chroma reference row index value associated with a second reference row set non-adjacent to a chroma CU may be different values.
[0169] In some embodiments, the method may include: identifying, by at least one processor, a difference between a first set of reference lines for a luma intra prediction process that is not adjacent to a luma CU and a second set of reference lines for a chroma intra prediction process that is not adjacent to a chroma CU. In some embodiments, the method may include: generating, by at least one processor, an indication of a delta value, the delta value being associated with the difference between the first set of reference lines for a luma intra prediction process that is not adjacent to a luma CU and the second set of reference lines for a chroma intra prediction process that is not adjacent to a chroma CU. In some embodiments, the bitstream may be further generated to include an indication of the delta value, the delta value being associated with the difference between the first set of reference lines for a luma intra prediction process that is not adjacent to a luma CU and the second set of reference lines for a chroma intra prediction process that is not adjacent to a chroma CU.
[0170] In some embodiments, the coding tree structure associated with the luma CU and the coding tree structure associated with the chroma CU may be the same.
[0171] In some embodiments, the indication may include a bit set to a first value to indicate a negative delta value. In some embodiments, the indication may include a bit set to a second value to indicate a positive delta value, the second value being different from the first value.
[0172] In some embodiments, the indication may include an incremental value.
[0173] In some embodiments, the indication may not include an increment value.
[0174] According to another aspect of the present disclosure, a system for encoding by an encoder is provided. The system may include at least one processor and a memory storing instructions. The memory stores instructions that, when executed by at least one processor, enable the at least one processor to perform the following operations: identify a first reference line set that is not adjacent to a luma CU. The memory stores instructions that, when executed by at least one processor, enable the at least one processor to perform the following operations: perform a luma intra prediction process based on a first reference line set that is not adjacent to the luma CU. The memory stores instructions that, when executed by at least one processor, enable the at least one processor to perform the following operations: obtain a luma pixel value set for the luma CU based on a luma intra prediction process. The memory stores instructions that, when executed by at least one processor, enable the at least one processor to perform the following operations: identify a second reference line set that is not adjacent to a chroma CU based on a first reference line set that is not adjacent to the luma CU. The memory stores instructions that, when executed by at least one processor, enable the at least one processor to perform the following operations: estimate a correlation function associated with a chroma CU based on a first reference line set that is not adjacent to the luma CU, a second reference line set that is not adjacent to the chroma CU, and a luma pixel value set of the luma CU.
[0175] In some embodiments, the memory stores instructions that, when executed by at least one processor, can also cause the at least one processor to perform the following operations: perform a chroma intra prediction process based on the correlation function. In some embodiments, the memory stores instructions that, when executed by at least one processor, can also cause the at least one processor to perform the following operations: obtain a chroma pixel value set for the chroma CU based on the chroma intra prediction process. In some embodiments, the memory stores instructions that, when executed by at least one processor, can also cause the at least one processor to perform the following operations: generate a bitstream, the bitstream including a luma pixel value set obtained for the luma CU and a chroma pixel value set obtained for the chroma CU. In some embodiments, the memory stores instructions that, when executed by at least one processor, can also cause the at least one processor to perform the following operations: transmit a bitstream including a luma pixel value set obtained for the luma CU and a chroma pixel value set obtained for the chroma CU to an image decoder.
[0176] In some embodiments, the luma intra prediction process may include an MRL intra prediction process. In some embodiments, the chroma intra prediction process may include a CCLM process.
[0177] In some embodiments, the memory stores instructions that, when executed by at least one processor, can further cause the at least one processor to perform the following operations: generate a luma reference line index associated with a first reference line set that is not adjacent to the luma CU and is used in a luma intra prediction process. In some embodiments, the bitstream can be further generated to include a luma reference line index.
[0178] In some embodiments, a luma reference row index value associated with a first reference row set that is not adjacent to a luma CU and used in a luma intra prediction process and a chroma reference row index value associated with a second reference row set that is not adjacent to a chroma CU and used in a chroma intra prediction process may be the same value.
[0179] In some embodiments, a second reference row set not adjacent to the chroma CU for the chroma intra prediction process may include: a first reference row set not adjacent to the luma CU for the luma intra prediction process, and reference rows located above the first reference row set not adjacent to the luma CU.
[0180] In some embodiments, the second reference line set not adjacent to the chroma CU for the chroma intra prediction process may include: the first reference line set not adjacent to the luma CU for the luma intra prediction process, and the reference lines located below the first reference line set not adjacent to the luma CU.
[0181] In some embodiments, the memory stores instructions that, when executed by at least one processor, can further cause the at least one processor to perform the following operations: generate a chroma reference line index associated with a second reference line set that is not adjacent to the chroma CU and is used in a chroma intra prediction process. In some embodiments, the bitstream can be further generated to include the chroma reference line index.
[0182] In some embodiments, a luma reference row index value associated with a first reference row set non-adjacent to a luma CU used in a luma intra prediction process and a chroma reference row index value associated with a second reference row set non-adjacent to a chroma CU may be different values.
[0183] In some embodiments, the memory stores instructions that, when executed by at least one processor, can also cause the at least one processor to perform the following operations: identify the difference between a first reference line set for a luma intra prediction process that is not adjacent to the luma CU and a second reference line set for a chroma intra prediction process that is not adjacent to the chroma CU. In some embodiments, the memory stores instructions that, when executed by at least one processor, can also cause the at least one processor to perform the following operations: generate an indication of a delta value, the delta value being associated with the difference between the first reference line set for the luma intra prediction process that is not adjacent to the luma CU and the second reference line set for the chroma intra prediction process that is not adjacent to the chroma CU. In some embodiments, the bitstream can be further generated to include an indication of the delta value, the delta value being associated with the difference between the first reference line set for the luma intra prediction process that is not adjacent to the luma CU and the second reference line set for the chroma intra prediction process that is not adjacent to the chroma CU.
[0184] In some embodiments, the coding tree structure associated with the luma CU and the coding tree structure associated with the chroma CU may be the same.
[0185] In some embodiments, the indication may include a bit set to a first value to indicate a negative delta value. In some embodiments, the indication may include a bit set to a second value to indicate a positive delta value, the second value being different from the first value.
[0186] In some embodiments, the indication may include an incremental value.
[0187] In some embodiments, the indication may not include an increment value.
[0188] According to another aspect of the present disclosure, a method for decoding by a decoder is provided. The method may include: receiving a bitstream from an image encoder by a communication interface, the bitstream including a luma pixel value set associated with a luma CU and a chroma pixel value set associated with a chroma CU. The method may include: identifying, by at least one processor, a correlation function associated with the following items: a first reference row set that is not adjacent to the luma CU and is used by the image encoder to generate a luma pixel value set; and a second reference row set that is not adjacent to the chroma CU and is used by the image encoder to generate a chroma pixel value set.
[0189] In some embodiments, the method may include: decoding, by at least one processor, a bitstream based on a correlation function to identify a luma pixel value set associated with a luma CU and a chroma pixel value set associated with a chroma CU. In some embodiments, the method may include: generating, by at least one processor, an enhanced image based on the luma pixel value associated with the luma CU and the chroma pixel value set associated with the chroma CU.
[0190] In some embodiments, the method may include: identifying, by at least one processor, information associated with a luma reference line index or information associated with a chroma reference line index from a bitstream, the luma reference line index being associated with a first reference line set that is not adjacent to the luma CU, the chroma reference line index being associated with a second reference line set that is not adjacent to the chroma CU. In some embodiments, the correlation function may be identified based on the luma reference line index.
[0191] In some embodiments, a luma reference row index value associated with a first reference row set that is not adjacent to a luma CU and a chroma reference row index value associated with a second reference row set that is not adjacent to a chroma CU may be the same value.
[0192] In some embodiments, the second reference line set that is not adjacent to the chroma CU may include: a first reference line set that is not adjacent to the luma CU, and a reference line located above the first reference line set that is not adjacent to the luma CU. In some embodiments, the correlation function may be identified based on the second reference line set that is not adjacent to the chroma CU, the second reference line set that is not adjacent to the chroma CU including: a first reference line set that is not adjacent to the luma CU, and a reference line located above the first reference line set that is not adjacent to the luma CU.
[0193] In some embodiments, the second reference line set that is not adjacent to the chroma CU may include: a first reference line set that is not adjacent to the luma CU, and a reference line located below the first reference line set that is not adjacent to the luma CU. In some embodiments, the correlation function may be identified based on the second reference line set that is not adjacent to the chroma CU, the second reference line set that is not adjacent to the chroma CU including: a first reference line set that is not adjacent to the luma CU, and a reference line located below the first reference line set that is not adjacent to the luma CU.
[0194] In some embodiments, the bitstream may further include: a chroma reference line index associated with a second reference line set that is not adjacent to the chroma CU. In some embodiments, the correlation function may be identified based on the chroma reference line index associated with the second reference line set that is not adjacent to the chroma CU.
[0195] In some embodiments, a luma reference row index value associated with a first reference row set that is not adjacent to a luma CU and a chroma reference row index value associated with a second reference row set that is not adjacent to a chroma CU may be different values.
[0196] In some embodiments, the bitstream may further include an indication of a delta value associated with a difference between a first set of reference lines non-adjacent to a luma CU and a second set of reference lines non-adjacent to a chroma CU. In some embodiments, a correlation function may be identified based on the indication of the delta value.
[0197] In some embodiments, the coding tree structure associated with the luma CU and the coding tree structure associated with the chroma CU may be the same.
[0198] In some embodiments, the indication may include a bit set to a first value to indicate a negative delta value. In some embodiments, the indication may include a bit set to a second value to indicate a positive delta value, the second value being different from the first value.
[0199] In some embodiments, the indication may include an incremental value.
[0200] In some embodiments, the indication may not include an increment value.
[0201] According to another aspect of the present disclosure, a system for decoding by a decoder is provided. The system may include at least one processor and a memory storing instructions. The memory stores instructions that, when executed by at least one processor, enable the at least one processor to perform the following operations: receive a bitstream from an image decoder, the bitstream including a set of luma pixel values associated with a luma CU and a set of chroma pixel values associated with a chroma CU. The memory stores instructions that, when executed by at least one processor, enable the at least one processor to perform the following operations: identify a correlation function associated with the following items: a first reference row set that is not adjacent to the luma CU and is used by the image encoder to generate a set of luma pixel values; and a second reference row set that is not adjacent to the chroma CU and is used by the image encoder to generate a set of chroma pixel values.
[0202] In some embodiments, the memory stores instructions that, when executed by at least one processor, can further cause the at least one processor to perform the following operations: decode the bitstream based on the correlation function to identify a luma pixel value set associated with the luma CU and a chroma pixel value set associated with the chroma CU. In some embodiments, the memory stores instructions that, when executed by at least one processor, can further cause the at least one processor to perform the following operations: generate an enhanced image based on the luma pixel value associated with the luma CU and the chroma pixel value set associated with the chroma CU.
[0203] In some embodiments, the memory stores instructions that, when executed by at least one processor, can further cause the at least one processor to perform the following operations: identify information associated with a luma reference line index or information associated with a chroma reference line index from a bitstream, the luma reference line index being associated with a first reference line set that is not adjacent to the luma CU, and the chroma reference line index being associated with a second reference line set that is not adjacent to the chroma CU. In some embodiments, the correlation function can be identified based on the luma reference line index.
[0204] In some embodiments, a luma reference row index value associated with a first reference row set that is not adjacent to a luma CU and a chroma reference row index value associated with a second reference row set that is not adjacent to a chroma CU may be the same value.
[0205] In some embodiments, the second reference line set that is not adjacent to the chroma CU may include: a first reference line set that is not adjacent to the luma CU, and a reference line located above the first reference line set that is not adjacent to the luma CU. In some embodiments, the correlation function may be identified based on the second reference line set that is not adjacent to the chroma CU, the second reference line set that is not adjacent to the chroma CU including: a first reference line set that is not adjacent to the luma CU, and a reference line located above the first reference line set that is not adjacent to the luma CU.
[0206] In some embodiments, the second reference line set that is not adjacent to the chroma CU may include: a first reference line set that is not adjacent to the luma CU, and a reference line located below the first reference line set that is not adjacent to the luma CU. In some embodiments, the correlation function may be identified based on the second reference line set that is not adjacent to the chroma CU, the second reference line set that is not adjacent to the chroma CU including: a first reference line set that is not adjacent to the luma CU, and a reference line located below the first reference line set that is not adjacent to the luma CU.
[0207] In some embodiments, the bitstream may further include: a chroma reference line index associated with a second reference line set that is not adjacent to the chroma CU. In some embodiments, the correlation function may be identified based on the chroma reference line index associated with the second reference line set that is not adjacent to the chroma CU.
[0208] In some embodiments, a luma reference row index value associated with a first reference row set that is not adjacent to a luma CU and a chroma reference row index value associated with a second reference row set that is not adjacent to a chroma CU may be different values.
[0209] In some embodiments, the bitstream may further include an indication of a delta value associated with a difference between a first set of reference lines non-adjacent to a luma CU and a second set of reference lines non-adjacent to a chroma CU. In some embodiments, a correlation function may be identified based on the indication of the delta value.
[0210] In some embodiments, the coding tree structure associated with the luma CU and the coding tree structure associated with the chroma CU may be the same.
[0211] In some embodiments, the indication may include a bit set to a first value to indicate a negative delta value. In some embodiments, the indication may include a bit set to a second value to indicate a positive delta value, the second value being different from the first value.
[0212] In some embodiments, the indication may include an incremental value.
[0213] In some embodiments, the indication may not include an increment value.
[0214] The foregoing description of the embodiments will reveal the general nature of the present disclosure, so that others can easily modify and / or change these embodiments for various applications by applying the knowledge in the art without excessive experimentation without departing from the general concept of the present disclosure. Therefore, these changes and modifications are intended to be within the meaning and scope of the equivalents of the disclosed embodiments based on the teachings and guidance provided herein. It should be understood that the wording or terminology herein is for descriptive purposes rather than for limitation, and therefore those skilled in the art should interpret the terms or wording in this specification in accordance with the teachings and guidance.
[0215] The embodiments of the present disclosure have been described above with the help of functional building blocks that illustrate the implementation of the specified functions and their relationships. For ease of description, the boundaries of these functional building blocks are arbitrarily defined in this article. As long as the specified functions and their relationships can be properly performed, alternative boundaries can be defined.
[0216] The Summary and Abstract sections may set forth one or more but not all exemplary embodiments of the present disclosure as contemplated by one or more inventors, and thus, are not intended to limit the present disclosure and the appended claims in any way.
[0217] Various functional blocks, modules and steps are disclosed above. The arrangements provided are exemplary and non-restrictive. Therefore, the functional blocks, modules and steps can be reordered or combined in a manner different from the examples provided above. Similarly, some embodiments include only a subset of functional blocks, modules and steps, and any such subset is allowed.
[0218] The breadth and scope of the present disclosure should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
Claims
1. A method for encoding by an encoder, comprising: Identifying, by at least one processor, a first set of reference lines that are not adjacent to a luma coding unit CU; performing, by the at least one processor, a luma intra prediction process based on the first set of reference rows that are not adjacent to the luma CU; Obtaining, by the at least one processor, a set of luma pixel values for the luma CU based on the luma intra prediction process; identifying, by the at least one processor, a second set of reference lines that is non-adjacent to a chroma CU based on the first set of reference lines that is non-adjacent to the luma CU; as well as A correlation function associated with the chroma CU is estimated by the at least one processor based on the first set of reference rows that is not adjacent to the luma CU, the second set of reference rows that is not adjacent to the chroma CU, and the set of luma pixel values of the luma CU.
2. The method according to claim 1, further comprising: performing, by the at least one processor, a chroma intra prediction process based on the correlation function; Obtaining, by the at least one processor, a set of chroma pixel values for the chroma CU based on the chroma intra prediction process; Generating, by the at least one processor, a bitstream, the bitstream comprising the luma pixel value set obtained for the luma CU and the chroma pixel value set obtained for the chroma CU; as well as The bitstream including the luma pixel value set obtained for the luma CU and the chroma pixel value set obtained for the chroma CU is transmitted to the image decoder by the communication interface.
3. The method according to claim 2, wherein: The luma intra prediction process comprises a multi-reference line (MRL) intra prediction process, and The chroma intra prediction process includes a cross-branch linear model (CCLM) process.
4. The method according to claim 2, further comprising: generating, by the at least one processor, a luma reference line index associated with the first set of reference lines that are not adjacent to the luma CU and are used in the luma intra prediction process, The bitstream is further generated to include the luminance reference line index.
5. The method according to claim 4, wherein: The luma reference row index value associated with the first reference row set that is not adjacent to the luma CU and used in the luma intra prediction process and the chroma reference row index value associated with the second reference row set that is not adjacent to the chroma CU and used in the chroma intra prediction process are the same value.
6. The method according to claim 2, wherein: The second reference line set used for the chroma intra prediction process and not adjacent to the chroma CU includes: the first reference line set used for the luma intra prediction process and not adjacent to the luma CU, and reference lines located above the first reference line set not adjacent to the luma CU.
7. The method according to claim 2, wherein: The second reference line set used for the chroma intra prediction process and not adjacent to the chroma CU includes: the first reference line set used for the luma intra prediction process and not adjacent to the luma CU, and reference lines located below the first reference line set not adjacent to the luma CU.
8. The method according to claim 2, further comprising: generating, by the at least one processor, a chroma reference line index associated with the second reference line set that is not adjacent to the chroma CU and is used in the chroma intra prediction process, Therein, the bitstream is further generated to include the chrominance reference line index.
9. The method according to claim 8, wherein: The luma reference row index value associated with the first reference row set not adjacent to the luma CU and used in the luma intra prediction process and the chroma reference row index value associated with the second reference row set not adjacent to the chroma CU are different values.
10. The method according to claim 8, further comprising: Identifying, by the at least one processor, a difference between the first reference line set for the luma intra prediction process that is not adjacent to the luma CU and the second reference line set for the chroma intra prediction process that is not adjacent to the chroma CU; as well as generating, by the at least one processor, an indication of a delta value associated with the difference between the first set of reference rows for the luma intra prediction process that is non-adjacent to the luma CU and the second set of reference rows for the chroma intra prediction process that is non-adjacent to the chroma CU, wherein the bitstream is further generated to include the indication of the delta value, the delta value being associated with the difference between the first set of reference rows that are not adjacent to the luma CU and used for the luma intra prediction process and the second set of reference rows that are not adjacent to the chroma CU and used for the chroma intra prediction process.
11. The method according to claim 10, wherein: The coding tree structure associated with the luma CU is the same as the coding tree structure associated with the chroma CU.
12. The method according to claim 10, wherein: The indication comprises a bit set to a first value to indicate a negative delta value, or The indication includes a bit set to a second value to indicate a positive delta value, the second value being different from the first value.
13. The method according to claim 10, wherein: The indication includes the increment value.
14. The method according to claim 10, wherein: The indication does not include the delta value.
15. A system for encoding by an encoder, comprising: at least one processor; as well as a memory storing instructions which, when executed by the at least one processor, cause the at least one processor to: Identifying a first set of reference rows that are not adjacent to a luma coding unit CU; performing a luma intra prediction process based on the first reference row set that is not adjacent to the luma CU; Obtaining a set of luma pixel values for the luma CU based on the luma intra prediction process; Identify a second reference line set that is not adjacent to the chroma CU based on the first reference line set that is not adjacent to the luma CU; as well as A correlation function associated with the chroma CU is estimated based on the first set of reference rows that is not adjacent to the luma CU, the second set of reference rows that is not adjacent to the chroma CU, and the set of luma pixel values of the luma CU.
16. The system of claim 15, wherein: The memory stores instructions that, when executed by the at least one processor, further cause the at least one processor to: performing a chroma intra prediction process based on the correlation function; Obtaining a set of chroma pixel values for the chroma CU based on the chroma intra prediction process; Generate a bitstream, the bitstream including the luma pixel value set obtained for the luma CU and the chroma pixel value set obtained for the chroma CU; as well as The bitstream including the luma pixel value set obtained for the luma CU and the chroma pixel value set obtained for the chroma CU is transmitted to an image decoder.
17. The system of claim 16, wherein: The luma intra prediction process includes a multi-reference line MRL intra prediction process, and The chroma intra prediction process includes a cross-branch linear model (CCLM) process.
18. The system of claim 16, wherein: The memory stores instructions that, when executed by the at least one processor, further cause the at least one processor to: generating a luma reference line index associated with the first reference line set used in the luma intra prediction process and not adjacent to the luma CU, The bitstream is further generated to include the luminance reference line index.
19. The system of claim 18, wherein: The luma reference row index value associated with the first reference row set that is not adjacent to the luma CU and used in the luma intra prediction process and the chroma reference row index value associated with the second reference row set that is not adjacent to the chroma CU and used in the chroma intra prediction process are the same value.
20. The system of claim 16, wherein: The second reference line set used for the chroma intra prediction process and not adjacent to the chroma CU includes: the first reference line set used for the luma intra prediction process and not adjacent to the luma CU, and reference lines located above the first reference line set not adjacent to the luma CU.
21. The system of claim 16, wherein: The second reference line set used for the chroma intra prediction process and not adjacent to the chroma CU includes: the first reference line set used for the luma intra prediction process and not adjacent to the luma CU, and reference lines located below the first reference line set not adjacent to the luma CU.
22. The system of claim 16, wherein: The memory stores instructions that, when executed by the at least one processor, further cause the at least one processor to: generating a chroma reference line index associated with the second reference line set used in the chroma intra prediction process and not adjacent to the chroma CU, Therein, the bitstream is further generated to include the chrominance reference line index.
23. The system of claim 22, wherein: The luma reference row index value associated with the first reference row set not adjacent to the luma CU and used in the luma intra prediction process and the chroma reference row index value associated with the second reference row set not adjacent to the chroma CU are different values.
24. The system of claim 22, wherein: The memory stores instructions that, when executed by the at least one processor, further cause the at least one processor to: Identify a difference between the first reference line set for the luma intra prediction process that is not adjacent to the luma CU and the second reference line set for the chroma intra prediction process that is not adjacent to the chroma CU; as well as generating an indication of a delta value associated with a difference between the first set of reference lines for the luma intra prediction process that is non-adjacent to the luma CU and the second set of reference lines for the chroma intra prediction process that is non-adjacent to the chroma CU, wherein the bitstream is also generated to include the indication of the delta value, wherein the delta value is associated with the difference between a first set of reference rows that are not adjacent to the luma CU and used for the luma intra prediction process, and a second set of reference rows that are not adjacent to the chroma CU and used for the chroma intra prediction process.
25. The system of claim 24, wherein: The coding tree structure associated with the luma CU is the same as the coding tree structure associated with the chroma CU.
26. The system of claim 24, wherein: The indication comprises a bit set to a first value to indicate a negative delta value, or The indication includes a bit set to a second value to indicate a positive delta value, the second value being different from the first value.
27. The system of claim 24, wherein: The indication includes the increment value.
28. The system of claim 24, wherein: The indication does not include the delta value.
29. A method for decoding by a decoder, comprising: Receiving, by a communication interface, a bitstream from an image encoder, the bitstream comprising a set of luma pixel values associated with a luma coding unit CU and a set of chroma pixel values associated with a chroma CU; as well as At least one processor identifies a correlation function associated with: a first reference row set that is not adjacent to the luma CU and is used by the image encoder to generate the luma pixel value set; and a second reference row set that is not adjacent to the chroma CU and is used by the image encoder to generate the chroma pixel value set.
30. The method of claim 29, further comprising: decoding, by the at least one processor, the bitstream based on the correlation function to identify the set of luma pixel values associated with the luma CU and the set of chroma pixel values associated with the chroma CU; as well as An enhanced image is generated, by the at least one processor, based on the luma pixel value associated with the luma CU and the set of chroma pixel values associated with the chroma CU.
31. The method of claim 30, further comprising: identifying, by the at least one processor, information associated with a luma reference line index or information associated with a chroma reference line index from the bitstream, the luma reference line index being associated with the first reference line set that is not adjacent to the luma CU, the chroma reference line index being associated with the second reference line set that is not adjacent to the chroma CU, Wherein, the correlation function is identified based on the brightness reference row index.
32. The method according to claim 31, wherein: The luma reference line index value associated with the first reference line set that is not adjacent to the luma CU and the chroma reference line index value associated with the second reference line set that is not adjacent to the chroma CU are the same value.
33. The method of claim 29, wherein: The second reference line set that is not adjacent to the chroma CU includes: the first reference line set that is not adjacent to the luma CU, and reference lines located above the first reference line set that is not adjacent to the luma CU, and The correlation function is identified based on the second reference row set that is not adjacent to the chroma CU, and the second reference row set that is not adjacent to the chroma CU includes: the first reference row set that is not adjacent to the luma CU, and the reference row located above the first reference row set that is not adjacent to the luma CU.
34. The method of claim 29, wherein: The second reference line set that is not adjacent to the chroma CU includes: the first reference line set that is not adjacent to the luma CU, and reference lines located below the first reference line set that is not adjacent to the luma CU, and The correlation function is identified based on a second reference row set that is not adjacent to the chroma CU, and the second reference row set that is not adjacent to the chroma CU includes: the first reference row set that is not adjacent to the luma CU, and the reference row located below the first reference row set that is not adjacent to the luma CU.
35. The method of claim 29, wherein: The bitstream further includes: a chroma reference line index associated with the second reference line set that is not adjacent to the chroma CU, and The correlation function is identified based on the chroma reference row index associated with the second reference row set that is not adjacent to the chroma CU.
36. The method of claim 35, wherein: The luma reference line index value associated with the first reference line set that is not adjacent to the luma CU and the chroma reference line index value associated with the second reference line set that is not adjacent to the chroma CU are different values.
37. The method of claim 36, wherein: The bitstream further includes an indication of a delta value associated with a difference between the first set of reference lines that is not adjacent to the luma CU and the second set of reference lines that is not adjacent to the chroma CU, and The correlation function is identified based on the indication of the delta value.
38. The method of claim 37, wherein: The coding tree structure associated with the luma CU is the same as the coding tree structure associated with the chroma CU.
39. The method of claim 37, wherein: The indication comprises a bit set to a first value to indicate a negative delta value, or The indication includes a bit set to a second value to indicate a positive delta value, the second value being different from the first value.
40. The method of claim 37, wherein: The indication includes the increment value.
41. The method of claim 37, wherein: The indication does not include the delta value.
42. A system for decoding by a decoder, comprising: at least one processor; as well as a memory storing instructions which, when executed by the at least one processor, cause the at least one processor to: Receiving a bitstream from an image encoder, the bitstream comprising a set of luma pixel values associated with a luma coding unit CU and a set of chroma pixel values associated with a chroma CU; as well as Identify a correlation function associated with: a first set of reference rows that is not adjacent to the luma CU and is used by the image encoder to generate the luma pixel value set; and a second set of reference rows that is not adjacent to the chroma CU and is used by the image encoder to generate the chroma pixel value set.
43. The system of claim 42, wherein: The memory stores instructions that, when executed by the at least one processor, further cause the at least one processor to: Decoding the bitstream based on the correlation function to identify the set of luma pixel values associated with the luma CU and the set of chroma pixel values associated with the chroma CU; as well as An enhanced image is generated based on the luma pixel value associated with the luma CU and the set of chroma pixel values associated with the chroma CU.
44. The system of claim 43, wherein: The memory stores instructions that, when executed by the at least one processor, further cause the at least one processor to: identifying, from the bitstream, information associated with a luma reference line index associated with the first set of reference lines that is not adjacent to the luma CU or information associated with a chroma reference line index associated with the second set of reference lines that is not adjacent to the chroma CU, Wherein, the correlation function is identified based on the brightness reference row index.
45. The system of claim 44, wherein: The luma reference line index value associated with the first reference line set that is not adjacent to the luma CU and the chroma reference line index value associated with the second reference line set that is not adjacent to the chroma CU are the same value.
46. The system of claim 42, wherein: The second reference line set that is not adjacent to the chroma CU includes: the first reference line set that is not adjacent to the luma CU, and reference lines located above the first reference line set that is not adjacent to the luma CU, and Wherein, the correlation function is identified based on the second reference row set that is not adjacent to the chroma CU, and the second reference row set that is not adjacent to the chroma CU includes: the first reference row set that is not adjacent to the luma CU, and the reference row located above the first reference row set that is not adjacent to the luma CU.
47. The system of claim 42, wherein: The second reference line set that is not adjacent to the chroma CU includes: the first reference line set that is not adjacent to the luma CU, and reference lines located below the first reference line set that is not adjacent to the luma CU, and The correlation function is identified based on the second reference row set that is not adjacent to the chroma CU, and the second reference row set that is not adjacent to the chroma CU includes: the first reference row set that is not adjacent to the luma CU, and the reference rows located below the first reference row set that is not adjacent to the luma CU.
48. The system of claim 42, wherein: The bitstream further includes: a chroma reference line index associated with the second reference line set that is not adjacent to the chroma CU, and The correlation function is identified based on the chroma reference row index associated with the second reference row set that is not adjacent to the chroma CU.
49. The system of claim 48, wherein: The luma reference line index value associated with the first reference line set that is not adjacent to the luma CU and the chroma reference line index value associated with the second reference line set that is not adjacent to the chroma CU are different values.
50. The system of claim 49, wherein: The bitstream further includes an indication of a delta value associated with a difference between the first set of reference lines that is not adjacent to the luma CU and the second set of reference lines that is not adjacent to the chroma CU, and The correlation function is identified based on the indication of the delta value.
51. The system of claim 47, wherein: The coding tree structure associated with the luma CU is the same as the coding tree structure associated with the chroma CU.
52. The system of claim 50, wherein: The indication comprises a bit set to a first value to indicate a negative delta value, or The indication includes a bit set to a second value to indicate a positive delta value, the second value being different from the first value.
53. The system of claim 50, wherein: The indication includes the increment value.
54. The system of claim 50, wherein: The indication does not include the delta value.