METHOD AND APPARATUS FOR INTRA PREDICTION OF VIDEO SEQUENCES

By determining the applicability of CCLM intra prediction based on chroma coding tree node size and partition mode, the method addresses chroma processing latency and throughput issues in hardware decoders, enhancing video coding efficiency.

JP7757482B2Active Publication Date: 2025-10-21HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024139661
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-04-30
Filing Date
2024-08-21
Publication Date
2025-10-21
Estimated Expiration
2040-03-27

AI Technical Summary

Technical Problem

The use of separate tree structures for intra pictures in video coding results in increased chroma processing latency and reduced throughput in hardware decoders.

Method used

Implementing a method to determine whether to perform cross-component linear model (CCLM) intra prediction on chroma coding units based on the size and partition mode of the chroma coding tree nodes, using preset conditions to optimize processing and reduce latency.

Benefits of technology

Reduces chroma processing latency and improves the throughput of hardware decoders by optimizing chroma coding unit processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007757482000004
    Figure 0007757482000004
  • Figure 0007757482000005
    Figure 0007757482000005
  • Figure 0007757482000006
    Figure 0007757482000006
Patent Text Reader

Abstract

To provide an intra-prediction method of a video sequence, for improving throughput of a hard ware decoder while being utilized to reduce a stand-by time when processing a chroma coding unit, and provide a device.SOLUTION: A method includes steps of: acquiring a size and a division mode of a chroma coding tree node; determining whether or not it is permitted that a CCLM is executed by a chroma coding unit contained in the chroma coding tree node on the basis of the size and the division mode of the chroma coding tree node; acquiring a prediction mode of the chroma coding unit depending on whether or not it is permitted that the CCLM is executed by the chroma coding unit; and acquiring a prediction sample of the chroma coding unit by executing an intra-prediction by the chroma coding unit on the basis of the prediction mode of the chroma coding unit.SELECTED DRAWING: Figure 6
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This application claims priority to Chinese Patent Application No. 201910370987.9, entitled "Method and Apparatus for Intra Prediction of Video Sequences," filed with the State Intellectual Property Office of the People's Republic of China on April 30, 2019, the entire contents of which are incorporated herein by reference.

[0002] Technical Field The present application relates to the field of video encoding and decoding, and in particular to a method and apparatus for intra prediction of a video sequence.

[0003] background In the video coding standard H.265, a picture frame is partitioned into non-overlapping coding tree units (CTUs), whose size can be set to 64x64 or other values. A CTU of size 64x64 is a rectangular sample matrix containing 64x64 samples. The matrix sample matrix contains 64 columns, each containing 64 samples, and each sample contains a luma component and / or a chroma component.

[0004] H.265 is based on the quad-tree (QT) partitioning mode, in which a CTU is used as the root node of the quad-tree, and the CTU is recursively partitioned into multiple leaf nodes. A node corresponds to one picture region. If a node does not continue to be partitioned, it is referred to as a leaf node, and the picture region corresponding to the node becomes a CU. If a node continues to be partitioned, the picture region corresponding to the node is partitioned into four equally sized picture regions, each of which corresponds to one node. Whether a node is partitioned is determined by the partition flag in the bitstream corresponding to the node. The depth of the root node is 0, and the depth of a child node is the depth of its parent node plus 1.

[0005] A CTU node of size 64x64 (with a depth of 0) may not be split based on the split flag corresponding to the CTU node, and may become a CU of size 64x64, or may be split into four nodes of size 32x32 (with a depth of 1). Each of the four nodes of size 32x32 may or may not be further split based on the split flag corresponding to the node. If the 32x32 node continues to be split, four nodes of size 16x16 (with a depth of 2) are generated. The rest can be inferred similarly until the node is no longer split further. In this case, one CTU is split into one group of CUs.

[0006] Based on quadtree partitioning, binary tree (BT) and ternary tree (TT) partitioning modes have been added to the VTM reference software.

[0007] Furthermore, a partitioning mode that cascades QT and BT / TT can be used in the versatile video coding test model (VTM), referred to as the quadtree plus multi-type tree (QT-BTT) mode. That is, a node in the level-1 coding tree can be partitioned into child nodes only using the QT mode, and the leaf node of the level-1 coding tree is the root node of the level-2 coding tree; a node in the level-2 coding tree can be partitioned into child nodes using one of four partitioning modes: horizontal binary partitioning, vertical binary partitioning, horizontal ternary partitioning, and vertical ternary partitioning; and the leaf node of the level-2 coding tree is a coding unit.

[0008] After the analysis identifies a node as a leaf node and the leaf node as a CU, the coding information corresponding to the CU (including information such as prediction mode and transform coefficients of the CU, e.g., the syntax structure coding_unit() in H.265) is further analyzed. Then, decoding processes such as prediction, dequantization, inverse transform, and loop filtering are performed on the CU based on the coding information to generate a reconstructed picture corresponding to the CU. A flexible coding tree structure such as QT-MTT allows for the division of a CTU into groups of CUs of appropriate sizes based on the local characteristics of the picture.

[0009] The division mode of CTUs into groups of CUs corresponds to one coding tree. In VTM, a separate tree structure is allowed to be used for intra pictures (I pictures). In this case, starting from a specific node A in the coding tree, the luma block of node A is divided using the luma coding tree, and the leaf nodes of the luma coding tree are luma CUs and contain only luma samples. The chroma block of node A is divided using the chroma coding tree, and the leaf nodes of the chroma coding tree are chroma CUs and contain only chroma samples.

[0010] In VTM5 (i.e., VTM software version 5), a separate tree structure can be used for intra pictures. In intra pictures using a separate tree structure, a coding tree node with a size of 128x128 can be divided into four nodes with a size of 64x64 using the quadtree partitioning mode, and each 64x64 node contains luma samples and chroma samples. A separate tree structure is used for nodes with a size of 64x64; that is, the luma block of the 64x64 node is divided using the luma coding tree, and the chroma block of the 64x64 node is divided using the chroma coding tree. The partitioning mode used for the luma coding tree can be different from the partitioning mode used for the chroma coding tree. For example, the luma block of the 64x64 node can be divided using the quadtree partitioning mode, and the chroma block can be divided using the horizontal binary partitioning mode. In YUV4:2:0 format, the horizontal and vertical sampling rate of chroma is half that of chroma, so a node of size MxN corresponds to (M / 2) x (N / 2) chroma samples.

[0011] However, when a separate tree structure is used for intra pictures, it can result in relatively long chroma processing latencies and reduce the throughput of the hardware decoder. Summary of the Invention

[0012] The present application provides a method and apparatus for intra prediction of a video sequence, which helps reduce chroma processing latency and improve the throughput of hardware decoders. A video sequence includes one or more pictures.

[0013] For simplicity, the size and shape of a node in this embodiment of the present invention are the size and shape of the picture region corresponding to the node. In this embodiment of the present invention, both the width and height of a node are expressed in terms of the amount of luma samples corresponding to the node.

[0014] According to a first aspect, an embodiment of the present invention provides a method for intra prediction of a video sequence, the method comprising: Obtaining the size and split mode of the chroma coding tree nodes; The method includes determining whether to allow cross-component linear model (CCLM) intra prediction to be performed on a chroma coding unit included in a chroma coding tree node based on a size and a partition mode of the chroma coding tree node; determining a prediction mode of the chroma coding unit depending on whether to allow CCLM to be performed on the chroma coding unit; and processing the chroma coding unit based on the prediction mode of the chroma coding unit to obtain a prediction sample for the chroma coding unit. Whether to allow CCLM to be performed on a chroma coding unit included in a chroma coding tree node is determined based on a size and a partition mode of the chroma coding tree node, thereby reducing latency when processing a chroma coding unit on which CCLM is performed and improving throughput of a hardware decoder.

[0015] In a possible embodiment, the size of the chroma coding tree node is MxN, and the step of determining whether to allow CCLM to be performed on a chroma coding unit included in the chroma coding tree node based on the size and the partitioning mode of the chroma coding tree node includes: When both M and N are equal to a preset threshold T1, the method includes: making a decision to allow CCLM to be executed in the chroma coding unit if the partitioning mode of the chroma coding tree node satisfies a first preset condition; or making a decision not to allow CCLM to be executed in the chroma coding unit if the partitioning mode of the chroma coding tree node does not satisfy the first preset condition, wherein the first preset condition includes a non-partitioned or quadtree partitioning mode.

[0016] In a possible embodiment, the size of the chroma coding tree node is MxN, and the step of determining whether to allow CCLM to be performed on a chroma coding unit included in the chroma coding tree node based on the size and the partitioning mode of the chroma coding tree node includes: When M is equal to T1 and N is equal to T1 / 2, if the partitioning mode of the chroma coding tree node satisfies a second preset condition, making a decision to allow CCLM to be executed in the chroma coding unit; or if the partitioning mode of the chroma coding tree node does not satisfy a second preset condition, making a decision not to allow CCLM to be executed in the chroma coding unit, where the second preset condition includes a non-split or vertical binary partition mode.

[0017] In a possible embodiment, the step of determining whether to allow CCLM to be executed on a chroma coding unit included in a chroma coding tree node based on the size and the partitioning mode of the chroma coding tree node comprises: The method includes a step of determining, when a luma coding tree node is not partitioned, whether to allow an intra sub-partition ISP mode to be used for the corresponding luma block and whether to allow CCLM to be performed in a chroma coding unit included in the chroma coding tree node, based on the size and partitioning mode of the chroma coding tree node and the partitioning mode of a luma coding tree node corresponding to the chroma coding tree node.

[0018] In a possible embodiment, the size of the chroma coding tree node is MxN, and the step of determining whether to allow CCLM to be performed on a chroma coding unit included in the chroma coding tree node based on the size and partitioning mode of the chroma coding tree node and the partitioning mode of a luma coding tree node corresponding to the chroma coding tree node includes: determining not to allow CCLM to be executed in the chroma coding unit if the split mode of the chroma coding tree node satisfies a third preset condition; or The method includes: making a decision to allow CCLM to be executed in the chroma coding unit if the splitting mode of the chroma coding tree node satisfies a first preset condition when the splitting mode of the chroma coding tree node does not satisfy a third preset condition, M is equal to T1, and N is equal to T1; or making a decision not to allow CCLM to be executed in the chroma coding unit if the splitting mode of the chroma coding tree node does not satisfy the first preset condition, wherein the first preset condition includes a non-splitting or quadtree splitting mode.

[0019] In a possible embodiment, the size of the chroma coding tree node is MxN, and if the luma coding tree node is not partitioned, the step of determining whether to allow an intra sub-partition ISP mode to be used for the corresponding luma block and whether to allow CCLM to be performed on the chroma coding unit included in the chroma coding tree node based on the size and partitioning mode of the chroma coding tree node and the partitioning mode of the luma coding tree node corresponding to the chroma coding tree node includes: The method includes: making a decision not to allow CCLM to be executed in the chroma coding unit if the partition mode of the chroma coding tree node satisfies any one of third preset conditions; or making a decision to allow CCLM to be executed in the chroma coding unit if the partition mode of the chroma coding tree node satisfies a second preset condition when the partition mode of the chroma coding tree node does not satisfy the third preset condition, N=T1, and M=T1 / 2; or making a decision not to allow CCLM to be executed in the chroma coding unit if the partition mode of the chroma coding tree node does not satisfy the second preset condition, wherein the second preset condition includes a non-split or vertical binary partition mode.

[0020] In a possible embodiment, the third preset condition includes one or any combination of the following conditions 1 to 13, where conditions 1 to 13 are as follows:

[0021] Condition 1: The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the ISP mode is used for the luma block of the luma coding tree node, and the size of the luma coding tree node is T1xT1.

[0022] Condition 2: The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the ISP mode is used for the luma block of the luma coding tree node, the chroma coding tree node is partitioned into child nodes, and the sizes of the chroma coding tree node, the luma coding tree node, and the luma block are all T1xT1.

[0023] Condition 3: The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the horizontal ISP mode is used for the luma block of the luma coding tree node, the chroma coding tree node is partitioned into child nodes by using one of the vertical binary partitioning mode, the vertical ternary partitioning mode, or the quadtree partitioning mode, and the sizes of the chroma coding tree node, the luma coding tree node, and the luma block are all T1xT1.

[0024] Condition 4: The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the horizontal ISP mode is used for the luma block of the luma coding tree node, the chroma coding tree node is partitioned into child nodes by using one of the horizontal ternary partitioning mode, the vertical binary partitioning mode, the vertical ternary partitioning mode, or the quadtree partitioning mode, and the sizes of the chroma coding tree node, the luma coding tree node, and the luma block are all T1xT1.

[0025] Condition 5: The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the horizontal ISP mode is used for the luma block of the luma coding tree node, the chroma coding tree node is partitioned into child nodes by using one of the vertical binary partitioning mode, the vertical ternary partitioning mode, or the horizontal ternary partitioning mode, the size of the luma coding tree node is T1xT1, and the size of the chroma coding tree node is T1x(T1 / 2).

[0026] Condition 6: The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the vertical ISP mode is used for the luma block of the luma coding tree node, the chroma coding tree node is partitioned into child nodes by using one of the horizontal binary partitioning mode, the horizontal ternary partitioning mode, or the quadtree partitioning mode, and the size of the chroma coding tree node and the size of the luma coding tree node are both T1xT1.

[0027] Condition 7: The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the vertical ISP mode is used for the luma block of the luma coding tree node, the chroma coding tree node is partitioned into child nodes by using one of the vertical ternary partitioning mode, the horizontal binary partitioning mode, the horizontal ternary partitioning mode, or the quadtree partitioning mode, and the sizes of the chroma coding tree node, the luma coding tree node, and the luma block are all T1xT1.

[0028] Condition 8: The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the vertical ISP mode is used for the luma block of the luma coding tree node, the chroma coding tree node is partitioned into child nodes by using one of the horizontal binary partitioning mode, the horizontal ternary partitioning mode, or the vertical ternary partitioning mode, the size of the luma coding tree node and the size of the luma block are both T1xT1, and the size of the chroma coding tree node is T1x(T1 / 2).

[0029] Condition 9: A luma coding tree node corresponding to a chroma coding tree node is divided into child nodes by using a horizontal binary division mode, and the size of the luma coding tree node is T1×T1.

[0030] Condition 10: A luma coding tree node corresponding to a chroma coding tree node is split into child nodes by using a vertical binary split mode, and the size of the luma coding tree node is T1×T1.

[0031] Condition 11: A luma coding tree node corresponding to a chroma coding tree node is split into child nodes by using a horizontal ternary split mode, and the size of the luma coding tree node is T1×T1.

[0032] Condition 12: A luma coding tree node corresponding to a chroma coding tree node is split into child nodes by using a vertical ternary split mode, and the size of the luma coding tree node is T1×T1.

[0033] Condition 13: The partitioning mode used for the luma coding tree node corresponding to the chroma coding tree node is a partitioning mode other than non-partitioning and quadtree partitioning, and the size of the luma coding tree node is T1 x T1.

[0034] It should be noted that in this case, splitting a chroma coding tree node into child nodes specifically means that the chroma coding tree node is split into child nodes by using one of a horizontal binary split mode, a vertical binary split mode, a horizontal ternary split mode, a vertical ternary split mode, and a quadtree split mode.

[0035] In a possible embodiment, the third preset condition includes:

[0036] The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the ISP prediction mode is used for the luma block of the luma coding tree node, and the size of the luma coding tree node and the size of the luma block are both T1xT1.

[0037] In a possible embodiment, the third preset condition includes:

[0038] The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the ISP mode is used for the luma block of the luma coding tree node, the chroma coding tree node is partitioned into child nodes, and the sizes of the chroma coding tree node, the luma coding tree node, and the luma block are all T1xT1.

[0039] In a possible embodiment, the third preset condition includes condition 1 and condition 13.

[0040] In a possible embodiment, the third preset condition includes condition 2 and condition 13.

[0041] In a possible embodiment, the third preset condition includes:

[0042] The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the ISP mode is used for the luma block of the luma coding tree node, and the chroma coding tree node is partitioned into child nodes; or the partitioning mode of the luma coding tree node is one of a horizontal binary partitioning mode and a vertical binary partitioning mode, and the sizes of the chroma coding tree node, the luma coding tree node, and the luma block are all T1xT1.

[0043] In a possible embodiment, the third preset condition includes condition 3, condition 5, condition 6, condition 8, and condition 13.

[0044] In a possible embodiment, the third preset condition includes condition 4, condition 5, condition 7, condition 8, and condition 13.

[0045] In a possible embodiment, the third preset condition includes condition 3, condition 5, condition 7, condition 8, condition 9, condition 10, condition 11, and condition 12.

[0046] In a possible embodiment, the preset threshold T1 is equal to 64.

[0047] According to a second aspect, an embodiment of the present invention provides a method for intra prediction of a video sequence, the method comprising: analyzing the bitstream to obtain a first identifier and a second identifier, the first identifier being used to indicate whether a separate tree structure is used for intra pictures in the video sequence, and the second identifier being used to indicate whether CCLM is allowed to be performed on chroma blocks in the video sequence; and performing an intra prediction method for a video sequence as described in the first aspect and any one of the embodiments of the first aspect when the first identifier indicates that a separation tree structure is used for intra pictures in the video sequence and the second identifier indicates that CCLM is allowed to be performed on chroma blocks in the video sequence.

[0048] According to a third aspect, an embodiment of the present invention provides an apparatus for intra prediction of a video sequence, the apparatus comprising: an acquisition unit configured to acquire a size and a split mode of a chroma coding tree node; a determining unit configured to determine whether to allow CCLM to be executed in a chroma coding unit included in a chroma coding tree node based on the size and partitioning mode of the chroma coding tree node; and to determine a prediction mode of the chroma coding unit depending on whether to allow CCLM to be executed in the chroma coding unit; and The coding unit includes a prediction unit configured to process the chroma coding unit based on a prediction mode of the chroma coding unit to obtain a prediction sample of the chroma coding unit.

[0049] In a possible embodiment, the size of a chroma coding tree node is MxN, and the CCLM determines whether to allow a chroma coding unit included in the chroma coding tree node to be executed based on the size and the division mode of the chroma coding tree node, the determining unit: When both M and N are equal to a preset threshold T1, if the splitting mode of the chroma coding tree node satisfies a first preset condition, a decision is made to allow the CCLM to be executed in the chroma coding unit; or if the splitting mode of the chroma coding tree node does not satisfy the first preset condition, a decision is made to not allow the CCLM to be executed in the chroma coding unit, where the first preset condition includes a non-splitting or quadtree splitting mode.

[0050] In a possible embodiment, the size of a chroma coding tree node is MxN, and the CCLM determines whether to allow a chroma coding unit included in the chroma coding tree node to be executed based on the size and the division mode of the chroma coding tree node, the determining unit: The control unit is specifically configured to: when M is equal to T1 and N is equal to T1 / 2, if the split mode of the chroma coding tree node satisfies a second preset condition, make a decision to allow the CCLM to be executed in the chroma coding unit; or, if the split mode of the chroma coding tree node does not satisfy the second preset condition, make a decision not to allow the CCLM to be executed in the chroma coding unit, where the second preset condition includes a non-split or vertical binary split mode.

[0051] In a possible embodiment, in determining whether to allow a cross-component linear model (CCLM) intra prediction to be performed in a chroma coding unit included in a chroma coding tree node based on a size and a partitioning mode of the chroma coding tree node, the determining unit: The coding unit is specifically configured to determine, when a luma coding tree node is not split, whether to allow an ISP mode to be used for the corresponding luma block and whether to allow CCLM to be performed on a chroma coding unit included in the chroma coding tree node, based on the size and splitting mode of the chroma coding tree node and the splitting mode of the luma coding tree node corresponding to the chroma coding tree node.

[0052] In a possible embodiment, the size of a chroma coding tree node is MxN, and when the luma coding tree node is not split, the determining unit determines whether to allow an intra sub-partition ISP mode to be used for the corresponding luma block and whether to allow CCLM to be performed in the chroma coding unit included in the chroma coding tree node based on the size and splitting mode of the chroma coding tree node and the splitting mode of the luma coding tree node corresponding to the chroma coding tree node, comprising: The control unit is specifically configured to: make a decision not to allow CCLM to be executed in the chroma coding unit if the splitting mode of the chroma coding tree node satisfies a third preset condition; or make a decision to allow CCLM to be executed in the chroma coding unit if the splitting mode of the chroma coding tree node does not satisfy the third preset condition, M is equal to T1, and N is equal to T1, and the splitting mode of the chroma coding tree node satisfies a first preset condition; or make a decision not to allow CCLM to be executed in the chroma coding unit if the splitting mode of the chroma coding tree node does not satisfy the first preset condition, wherein the first preset condition includes a non-splitting or quadtree splitting mode.

[0053] In a possible embodiment, the size of a chroma coding tree node is MxN, and when the luma coding tree node is not split, the determining unit determines whether to allow an intra sub-partition ISP mode to be used for the corresponding luma block and whether to allow CCLM to be performed in the chroma coding unit included in the chroma coding tree node based on the size and splitting mode of the chroma coding tree node and the splitting mode of the luma coding tree node corresponding to the chroma coding tree node, comprising: Making a decision not to allow CCLM to be executed in a chroma coding unit when the split mode of the chroma coding tree node satisfies any one of the third preset conditions; or The control unit is specifically configured to: make a decision to allow CCLM to be executed in the chroma coding unit if the split mode of the chroma coding tree node satisfies a second preset condition when the split mode of the chroma coding tree node does not satisfy a third preset condition, N=T1, and M=T1 / 2; or make a decision to not allow CCLM to be executed in the chroma coding unit if the split mode of the chroma coding tree node does not satisfy the second preset condition, where the second preset condition includes a non-split or vertical binary split mode.

[0054] In a possible embodiment, the third preset condition includes one or more of condition 1, condition 2, condition 3, condition 4, condition 5, condition 6, condition 7, condition 8, condition 9, condition 10, condition 11, condition 12, and condition 13 in the first aspect.

[0055] In a possible embodiment, the third preset condition includes:

[0056] The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the ISP prediction mode is used for the luma block of the luma coding tree node, and the size of the luma coding tree node and the size of the luma block are both T1xT1.

[0057] In a possible embodiment, the third preset condition includes:

[0058] The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the ISP mode is used for the luma block of the luma coding tree node, the chroma coding tree node is partitioned into child nodes, and the sizes of the chroma coding tree node, the luma coding tree node, and the luma block are all T1xT1.

[0059] In a possible embodiment, the third preset condition includes conditions 1 and 13 in the first aspect.

[0060] In a possible embodiment, the third preset condition includes conditions 2 and 13 in the first aspect.

[0061] In a possible embodiment, the third preset condition includes:

[0062] The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-split, the ISP mode is used for the luma block of the luma coding tree node, and the chroma coding tree node is split into child nodes; or the partitioning mode of the luma coding tree node is one of a horizontal binary partitioning mode and a vertical binary partitioning mode, and the sizes of the chroma coding tree node, the luma coding tree node, and the luma block are all T1xT1.

[0063] In a possible embodiment, the third preset condition includes condition 3, condition 5, condition 6, condition 8, and condition 13 in the first aspect.

[0064] In a possible embodiment, the third preset condition includes condition 4, condition 5, condition 7, condition 8, and condition 13 in the first aspect.

[0065] In a possible embodiment, the third preset condition includes condition 3, condition 5, condition 7, condition 8, condition 9, condition 10, condition 11, and condition 12 in the first aspect.

[0066] In a possible embodiment, the preset threshold T1 is equal to 64.

[0067] According to a fourth aspect, an embodiment of the present invention provides an apparatus for intra prediction of a video sequence, the apparatus comprising: a decoding unit configured to analyze the bitstream to obtain a first identifier and a second identifier, the first identifier being used to indicate whether a separation tree structure is used for intra pictures in the video sequence, and the second identifier being used to indicate whether CCLM is allowed to be performed on chroma blocks in the video sequence; and The method includes a prediction unit configured to perform all or part of an intra prediction method for a video sequence in a first aspect when the first identifier indicates that a separation tree structure is used for intra pictures in the video sequence and the second identifier indicates that CCLM is allowed to be performed on chroma blocks in the video sequence.

[0068] According to a fifth aspect, an embodiment of the present invention provides a decoding device comprising a non-volatile memory and a processor coupled to each other, the processor calling program code stored in the memory to perform some or all of the steps of the method of either the first or second aspect.

[0069] According to a sixth aspect, an embodiment of the present invention provides a computer-readable storage medium having program code stored thereon, the program code including instructions for performing some or all of the steps of the method of either the first or second aspect.

[0070] It should be understood that the technical solutions of the second to sixth aspects of the present application are consistent with the technical solution of the first aspect of the present invention, and the beneficial effects achieved by the aspects and corresponding feasible implementations are similar, and the details will not be described again. [Brief explanation of the drawings]

[0071] In order to more clearly describe the embodiments of the present invention or the technical solutions in the prior art, the following briefly describes the accompanying drawings for describing the embodiments or the prior art. The accompanying drawings in the following description merely illustrate some embodiments of the present invention, and it is obvious that those skilled in the art may derive other drawings from these accompanying drawings without creative efforts.

[0072] [Figure 1] 1 is a schematic diagram of a CTU split mode.

[0073] [Figure 2] Schematic diagram of chroma block and luma block division modes.

[0074] [Figure 3] FIG. 10 is a schematic diagram of another division mode of chroma and luma blocks.

[0075] [Figure 4] 1 is a schematic block diagram of a video encoding and decoding system according to an embodiment of the present invention;

[0076] [Figure 5a]1 is a schematic block diagram of a video encoder according to an embodiment of the present invention;

[0077] [Figure 5b] 1 is a schematic block diagram of a video decoder according to an embodiment of the present invention;

[0078] [Figure 5c] 1 is a block diagram of an example of an encoding device or a decoding device according to an embodiment of the present invention;

[0079] [Figure 6] 1 is a schematic flowchart of a method for intra-prediction of a video sequence according to an embodiment of the present invention;

[0080] [Figure 7] 1 is a schematic flowchart of a method for intra-prediction of a video sequence according to an embodiment of the present invention;

[0081] [Figure 8] 1 is a schematic structural diagram of an intra prediction device according to an embodiment of the present invention;

[0082] [Figure 9] 1 is a schematic structural diagram of an intra prediction device according to an embodiment of the present invention; DETAILED DESCRIPTION OF THE INVENTION

[0083] Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings.

[0084] First, the terms used in the present invention will be explained here.

[0085] Coding tree unit (CTU): A picture contains multiple CTUs, where one CTU typically corresponds to a square picture area and contains luma and chroma samples within the picture area (or may contain only luma samples, or may contain only chroma samples). A CTU also contains syntax elements that indicate how to split the CTU into at least one coding unit (CU) and how to decode each coding unit to obtain a reconstructed picture.

[0086] CU: A CU typically corresponds to a rectangular region of A x B and contains A x B luma samples and corresponding chroma samples, where A is the width of the rectangle and B is the height of the rectangle. A may be the same as B or may be different. The values ​​of A and B are typically integer powers of 2, e.g., 256, 128, 64, 32, 16, 8, or 4. A coding unit can be decoded to obtain a reconstructed picture of the rectangular region of A x B. The decoding process typically involves performing operations such as prediction, dequantization, and inverse transform to generate a predicted picture and a residual. The reconstructed picture is obtained by overlapping the predicted picture and the residual.

[0087] Quadtree: A quadtree is a tree-shaped structure in which a node can be divided into four child nodes. A quadtree-based CTU division mode is used in the video coding standard H.265: a CTU is used as the root node, and each node corresponds to one square region. The node can be not further divided (in this case, the region corresponding to the node is a CU), or the node can be divided into four lower-level nodes, i.e., the square region is divided into four equal-sized square regions (where the length and width of each of the four equal-sized square regions is half the length and width of the square region before division), and each region corresponds to one node, as shown in Figure 1(a).

[0088] Binary Tree: A binary tree is a tree-shaped structure in which a node can be split into two child nodes. In existing coding methods that use binary trees, a node in a binary tree structure may not be split, or the node may be split into two lower-level nodes. A node can be split into two nodes in either of two ways: (1) horizontal binary splitting: As shown in Figure 1(b), the region corresponding to the node is split into two equal-sized regions: an upper region and a lower region, each corresponding to a node; or (2) vertical binary splitting: As shown in Figure 1(c), the region corresponding to the node is split into two equal-sized regions: a left region and a right region, each corresponding to a node.

[0089] Ternary tree: A ternary tree is a tree-shaped structure in which a node can be divided into three child nodes. In existing ternary tree-based coding methods, a node in a ternary tree structure may not be divided, or the node may be divided into three lower-level nodes. A node is divided into three nodes in any one of two ways: (1) horizontal ternary division: the region corresponding to a node is divided into three regions: an upper region, a middle region, and a lower region, each corresponding to one node, and the heights of the upper region, middle region, and lower region are 1 / 4, 1 / 2, and 1 / 4 of the node height, respectively, as shown in Figure 1(d); (2) vertical ternary division: the region corresponding to a node is divided into three regions: a left region, a middle region, and a right region, each corresponding to one node, and the widths of the left region, middle region, and right region are 1 / 4, 1 / 2, and 1 / 4 of the node height, respectively, as shown in Figure 1(f).

[0090] Versatile Video Coding Test Model (VTM): Codec reference software for the H.266 / Versatile Video Coding Test Model (VVC) standard organized and developed by JVET.

[0091]

number

[0092] α and β are linear model coefficients, and pred C where (i,j) is the predictor of the chroma sample at position (i,j), and rec'L(i,j) represents the luma reconstructed sample value at position (i,j) after the luma reconstructed block corresponding to the current chroma block has been downsampled to the resolution of the chroma component. In YUV4:2:0 format video, the resolution of the luma component is four times that of the chroma components (twice the width and twice the height). To obtain a luma block with the same resolution as the chroma block, the luma component needs to be downsampled to the chroma resolution according to the same downsampling method as the chroma components, and then used.

[0093] Intra sub-partition (ISP) is an intra prediction technique based on sub-block division, such as the ISP technique in VTM5. When ISP mode is used, a luma block is divided horizontally or vertically into multiple (e.g., two or four) equally sized luma sub-blocks, which are decoded and reconstructed sequentially. When a common intra prediction mode (e.g., angular, planar, or DC) is used for a chroma block, only the reconstructed samples around the chroma block are used for intra prediction of the chroma block. In this case, intra prediction of a chroma block and intra prediction of a luma block may be performed simultaneously. The maximum latency for prediction processing of a chroma block relative to prediction processing of the luma block in the corresponding region (abbreviated as chroma processing latency) is the processing time for intra prediction and reconstruction in a region containing 0 luma samples. In a single tree, a CU contains luma samples and chroma samples. When CCLM is performed on a chroma sample, it requires that the luma reconstructed sample at the corresponding position be used. When a luma block is divided into multiple sub-regions for sequential processing, intra prediction is performed on the luma sub-region, and then the predictor and residual are overlapped to obtain the reconstructed sample of the luma sub-region, and CCLM prediction is performed on the chroma sub-region at the corresponding position using the reconstructed sample of the luma sub-region. Therefore, when a separate tree structure is used for intra pictures, a relatively long chroma processing latency may occur when CCLM prediction is performed on a chroma block.

[0094] For example, if a luma block with a 64x64 node size is split using the quadtree partitioning mode (as shown in Figure 2(a)), the processing sequence of four generated luma nodes is node 0, node 1, node 2, and node 3. If a chroma block with a 64x64 node size is split using the vertical binary partitioning mode (as shown in Figure 2(b)) to generate two chroma nodes, if CCLM prediction is performed on chroma node 0, the luma reconstructed sample values ​​required for CCLM prediction can be obtained for chroma node 0 only after luma node 2 is reconstructed. The chroma processing latency is the processing time for three luma regions with a 32x32 size (3072 luma samples). As another example, if a chroma block with a 64x64 node is divided into two chroma nodes by using the horizontal binary tree shown in Figure 2(c), and the chroma block with the upper 64x32 node continues to be further divided into two more nodes by using the horizontal binary tree mode, if CCLM prediction is performed on chroma node 0, all luma reconstructed sample values ​​required for CCLM prediction can be obtained for chroma node 0 only after luma node 1 is reconstructed, and the chroma processing latency is the processing time of two 32x32 luma regions (i.e., 2048 luma samples).

[0095] When any splitting is performed on the chroma blocks of a node of size 64x64, the processing latency for performing CCLM on the chroma nodes does not exceed the processing time of one luma region of size 32x32. In one example, when a luma block of size 64x64 is split by using a quadtree splitting mode, as shown in Figure 2(d), if the corresponding chroma blocks are also split in the quadtree splitting mode, it is possible to perform CCLM on chroma node 0 after luma node 0 is reconstructed, it is possible to perform CCLM on chroma node 1 after luma node 1 is reconstructed, and so on. In another example, if a chroma block of a 64x64 node is not split, the chroma block may be split into four regions p0, p1, p2, and p3 for sequential intra prediction, as shown in Figure 2(e), and CCLM can be performed on chroma region p0 after luma node 0 is reconstructed, CCLM can be performed on chroma region p1 after luma node 1 is reconstructed, etc. In another example, if a chroma block of a 64x64 node is first split using horizontal split mode, and the top 64x32 chroma node is split using vertical split mode as shown in Figure 2(f), and the bottom 64x32 chroma node is not split, the chroma processing latency of chroma nodes 0, 1, and 2 is the latency for processing the 32x32 luma region. This is because after luma node 0 is reconstructed, CCLM can be performed on chroma node 0; after luma node 1 is reconstructed, CCLM can be performed on chroma node 2; after luma node 2 is completed, CCLM can be performed on region p0 of chroma node 2; and after luma node 3 is reconstructed, CCLM can be performed on region p1 of chroma node 2.

[0096] Also, when a separate tree structure is used for intra pictures, if a 64x64 luma block is not split and ISP mode is used for the luma block, the chroma processing latency may exceed the processing time for one 32x32 luma region. For example, if the 64x64 luma block of a node is split into four luma sub-blocks using the vertical ISP mode as shown in Figure 3(a), and the 64x64 chroma block of a node is split using the horizontal binary split mode as shown in Figure 3(b), CCLM can be performed on chroma node 0 only after the four luma sub-blocks are reconstructed, and the chroma processing latency is the processing time for four 32x32 luma regions. Similarly, if the luma block of a node with a size of 64x64 is divided into four luma sub-blocks by using the horizontal ISP mode as shown in Figure 3(e), and the chroma block of a node with a size of 64x64 is divided by using the vertical binary partition mode as shown in Figure 3(f), CCLM can be performed on chroma node 0 only after the four luma sub-blocks are reconstructed, and the chroma processing latency is the processing time of four luma regions with a size of 32x32.

[0097] When any partitioning is performed on the chroma blocks of a 64x64 node, even if the 64x64 luma blocks are not partitioned and ISP mode is used for the luma blocks, the processing latency for performing CCLM by the chroma nodes does not exceed the processing time of one 32x32 luma region. For example, when the vertical ISP mode is used for the luma blocks of a 64x64 node, when the chroma blocks of the 64x64 node are not partitioned, as shown in Figure 3(d), or when the chroma blocks of the 64x64 node are partitioned by using the vertical binary partitioning mode to obtain 32x64 nodes, and the nodes are either partitioned or not partitioned, as shown in Figure 3(c), the chroma processing latency can be considered to be approximately equal to the processing time of one 16x64 luma region and one 32x32 luma region (both corresponding to 1024 luma samples). More specifically, if a chroma block of a 64x64 node is not split, the chroma block may be split vertically into four sub-regions, and CCLM may begin to run on each sub-region after the corresponding 16x64 luma sub-blocks are reconstructed. If a chroma block of a 64x64 node is split using the vertical binary mode to obtain 32x64 nodes, and the nodes are split using the vertical binary split mode, CCLM may begin to run on each 16x64 chroma node after the corresponding 16x64 luma sub-blocks are reconstructed. If a 32x64 node is not split horizontally, the node may be split vertically into two 16x64 sub-regions, and CCLM may begin to run on each sub-region after the corresponding 16x64 luma sub-blocks are reconstructed.Similarly, when the horizontal ISP mode is used for the luma blocks of a 64x64 node, when the chroma blocks of the 64x64 node are not split, as shown in (h) of Figure 3, or when the chroma blocks of the 64x64 node are split by using the horizontal binary split mode to obtain a 64x32 node, as shown in (g) of Figure 3, and the node is either split or not split by using the horizontal binary split mode, the chroma processing latency is the processing time of one luma region of 64x16, which is equal to the processing time of one luma region of 32x32.

[0098] FIG. 4 is a block diagram of an example video coding system 4 described in embodiments of the present application. As used herein, the term "video codec" generally refers to a video encoder and a video decoder. In this application, the terms "video coding" or "coding" may generally refer to video encoding or video decoding. The video encoder 100 and the video decoder 300 in the video coding system 1 are configured to predict motion information, e.g., motion vectors, of a current coded picture block or a sub-block of the current coded picture block by using various example methods described in any one of several new inter-prediction modes provided herein, so that the predicted motion vectors are as close as possible to the motion vectors obtained by using a motion estimation method. In this way, motion vector differentials do not need to be transmitted during encoding, thereby further improving encoding and decoding performance.

[0099] As shown in FIG. 4 , the video coding system 1 includes a source device 10 and a destination device 30. The source device 10 generates coded video data. Therefore, the source device 10 may be referred to as a video coding device. The destination device 30 can decode the coded video data generated by the source device 10. Therefore, the source device 30 may be referred to as a video intra-prediction device. Various implementation solutions of the source device 10, the destination device 30, or the source device 10 and the destination device 30 may include one or more processors and memory coupled to the one or more processors. The memory may include, but is not limited to, RAM, ROM, EEPROM, flash memory, or any other medium that can be used to store desired program code in the form of computer-accessible instructions or data structures as described herein.

[0100] The source device 10 and destination device 30 may include a variety of devices, including a desktop computer, a mobile computing device, a notebook (e.g., laptop) computer, a tablet computer, a set-top box, a portable telephone such as a "smart" phone, a television set, a camera, a display device, a digital media player, a video game console, an in-vehicle computer, or similar devices.

[0101] Destination device 30 can receive encoded video data from source device 10 via link 50. Link 50 can include one or more media or devices capable of transferring encoded video data from source device 10 to destination device 30. In one example, link 50 can include one or more communication media that enable source device 10 to transmit encoded video data directly to destination device 30 in real time. In this example, source device 10 can modulate the encoded video data according to a communication standard (e.g., a wireless communication protocol) and transmit the modulated video data to destination device 30. The one or more communication media can include wireless communication media and / or wired communication media, such as a radio frequency (RF) spectrum or one or more physical transmission cables. The one or more communication media can be part of a packet-based network, such as a local area network, a wide area network, or a global network (e.g., the Internet). The one or more communication media may include routers, switches, base stations, or other devices that facilitate communication from source device 10 to destination device 30.

[0102] In another embodiment, the encoded data may be output to storage device 40 via output interface 140. Similarly, the encoded video data may be accessed from storage device 40 via input interface 340. Storage device 40 may include any one of a number of distributed or locally accessed data storage media, such as a hard disk drive, a Blu-ray disc, a DVD, a CD-ROM, flash memory, volatile or non-volatile memory, or any other suitable digital storage medium configured to store encoded video data.

[0103] In another example, storage device 40 may correspond to a file server or another intermediate storage device capable of maintaining the encoded video generated by source device 10. Destination device 30 can access the stored video data from storage device 40 via streaming transmission or download. The file server may be any type of server capable of storing encoded video data and transmitting the encoded video data to destination device 30. For example, the file server may be a network server (e.g., one used for websites), an FTP server, a network-attached storage (NAS) device, or a local disk drive. Destination device 30 can access the encoded video data via any standard data connection (including an Internet connection). Standard data connections may include wireless channels (e.g., Wi-Fi connections), wired connections (e.g., DSL or cable modems), or combinations thereof suitable for accessing encoded video data stored on a file server. Transmission of the encoded video data from storage device 40 may be streaming transmission, download transmission, or a combination thereof.

[0104] The motion vector prediction techniques herein can be used for video encoding and decoding to support multiple multimedia applications, such as over-the-air television broadcasting, cable television transmission, satellite television transmission, streaming video transmission (e.g., via the Internet), encoding video data stored on a data storage medium, decoding video data stored on a data storage medium, or other applications. In some examples, the video coding system 1 can be configured to support one-way or two-way video transmission to support applications such as video streaming transmission, video playback, video broadcasting, and / or video telephony.

[0105] The video coding system 1 shown in FIG. 4 is only one example, and the present technology is applicable to video coding (e.g., video encoding or video decoding) devices that do not necessarily include any data communication between the video encoding device and the video decoding device. In other examples, data may be retrieved from local memory, streamed over a network, etc. A video encoding device may encode data and store the data in memory, and / or a video decoding device may retrieve data from memory and decode the data. In many examples, the devices that encode data, store data in memory, and / or retrieve data from memory, and decode data, but that do not communicate with each other, perform the encoding and decoding.

[0106] 4, source device 10 includes video source 120, video encoder 100, and output interface 140. In some examples, output interface 140 may include a modulator / demodulator (modem) and / or a transmitter. Video source 120 may include a video capture device (e.g., a camera), a video archive containing previously captured video data, a video feed-in interface for receiving video data from a video content provider, and / or a computer graphics system for generating video data, or a combination of the aforementioned video data sources.

[0107] Video encoder 100 may encode video data from video source 120. In some examples, source device 10 transmits the encoded video data directly to destination device 30 via output interface 140. In other examples, the encoded video data may alternatively be stored on storage device 40 so that destination device 30 subsequently accesses the encoded video data for decoding and / or playback.

[0108] In the example of FIG. 4, destination device 30 includes input interface 340, video decoder 300, and display device 330. In some examples, input interface 340 includes a receiver and / or a modem. Input interface 340 may receive encoded video data via link 30 and / or from storage device 40. Display device 330 may be integrated with destination device 30 or may be located external to destination device 30. Display device 330 typically displays the decoded video data. Display device 330 may include multiple types of display devices, such as a liquid crystal display (LCD), a plasma display, an organic light-emitting diode (OLED) display, or other types of display devices.

[0109] 4, in some aspects, video encoder 100 and video decoder 300 may be integrated with an audio encoder and decoder, respectively, and may include a suitable multiplexer-demultiplexer (MUX-DEMUX) unit or other hardware and software for encoding audio and video in a common data stream or separate data streams. In some examples, if applicable, the MUX-DEMUX unit may conform to the ITU H.223 multiplexer protocol or another protocol such as User Datagram Protocol (UDP).

[0110] Each of the video encoder 100 and the video decoder 300 may be implemented, for example, as any one of the following circuits: one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, hardware, or any combination thereof. If the present application is implemented in part by software, the device may store instructions for the software on a suitable non-volatile computer-readable storage medium and use one or more processors to execute the instructions in hardware to implement the techniques described herein. Any one of the above content (including hardware, software, a combination of hardware and software, etc.) may be considered one or more processors. Each of the video encoder 100 and the video decoder 300 may be included in one or more encoders or decoders, and any of the encoders or decoders may be integrated as part of a combined encoder / decoder (codec) in the corresponding device.

[0111] In this application, video encoder 100 may be loosely referred to as another device that "signals" or "transmits" some information, for example, to video decoder 300. The terms "signaling" or "transmitting" may loosely refer to the transfer of syntax elements and / or other data used to decode compressed video data. The transmission may occur in real time or near real time. Alternatively, the communication may occur after a period of time, for example, when syntax elements in the encoded bitstream are stored in a computer-readable storage medium during encoding, after which an intra-prediction device can retrieve the syntax elements at any time after they are stored in the medium.

[0112] Video encoder 100 and video decoder 300 may operate in accordance with a video compression standard such as High Efficiency Video Coding (HEVC) or an extension thereof, and may conform to the HEVC Test Model (HM). Alternatively, video encoder 100 and video decoder 300 may operate in accordance with other industry standards, such as the ITU-T H.264 and H.265 standards or extensions thereof. However, the technology herein is not limited to any particular encoding and decoding standard.

[0113] FIG. 5A is a schematic / conceptual block diagram of an example video encoder 100 configured to implement the techniques disclosed herein. In the example of FIG. 5A, the video encoder 100 includes a residual calculation unit 204, a transform processing unit 206, a quantization unit 208, an inverse quantization unit 210, an inverse transform processing unit 212, a reconstruction unit 214, a buffer 216, a loop filter unit 220, a decoded picture buffer (DPB) 230, a prediction processing unit 260, and an entropy coding unit 270. The prediction processing unit 260 may include an inter prediction unit 244, an intra prediction unit 254, and a mode selection unit 262. The inter prediction unit 244 may include a motion estimation unit and a motion compensation unit (not shown). The video encoder 20 shown in FIG. 5A may also be referred to as a hybrid video encoder or a video encoder based on a hybrid video codec.

[0114] For example, the residual calculation unit 204, the transform processing unit 206, the quantization unit 208, the prediction processing unit 260, and the entropy coding unit 270 form the forward signal path of the encoder 100, while for example, the inverse quantization unit 210, the inverse transform processing unit 212, the reconstruction unit 214, the buffer 216, the loop filter 220, the decoded picture buffer (DPB) 230, and the prediction processing unit 260 form the backward signal path of the encoder, and the backward signal path of the video encoder corresponds to the signal path of the decoder (see decoder 300 in FIG. 5b).

[0115] The encoder 100 receives, for example, a picture of a sequence of pictures forming a video or a video sequence, for example via input 202, picture 201, or block 203 of picture 201. Picture block 203 is also referred to as the current picture block or the picture block to be coded, and picture 201 is also referred to as the current picture or the picture to be coded (particularly in video coding, to distinguish the current picture from other pictures, for example from previously coded and / or decoded pictures of the same video sequence, i.e., the video sequence that also contains the current picture).

[0116] Partitioning

[0117] In an embodiment, the encoder 100 may include a partitioning unit (not shown in FIG. 5a) configured to partition the picture 201 into multiple blocks 203, such as block 203. The picture 201 is typically partitioned into multiple non-overlapping blocks. The partitioning unit may be configured to use the same block size for all pictures of the video sequence and a corresponding grid that defines the block sizes, or to vary the block size between pictures, subsets, or groups of pictures and partition each picture into the corresponding blocks.

[0118] In one example, prediction processing unit 260 of video encoder 100 may be configured to perform any combination of the partitioning techniques described above.

[0119] Similar to picture 201, block 203 has a size smaller than picture 201, but block 203 can also be thought of as a two-dimensional array or matrix of samples having luma values ​​(sample values). In other words, block 203 may contain, for example, one sample array (e.g., a luma array in the case of a monochrome picture 201) or three sample arrays (e.g., one luma array and two chroma arrays in the case of a color picture 201), or any other quantity and / or type of arrays depending on the applied color format. The number of samples in the horizontal and vertical directions (or axes) of block 203 defines the size of block 203.

[0120] The encoder 100 shown in FIG. 5 a is arranged to encode a picture 201 block by block, for example to encode and predict each block 203 .

[0121] Residual calculation

[0122] The residual calculation unit 204 is configured to calculate a residual block 205 based on the picture block 203 and the prediction block 265 (more details about the prediction block 265 will be provided further below), for example by subtracting sample values ​​of the prediction block 265 sample by sample from sample values ​​of the picture block 203, to obtain a residual block 205 in the sample domain.

[0123] conversion

[0124] The transform processing unit 206 is configured to apply a transform, such as a discrete cosine transform (DCT) or a discrete sine transform (DST), on the sample values ​​of the residual block 205 to obtain transform coefficients 207 in the transform domain. The transform coefficients 207 are also called transform residual coefficients and may represent the residual block 205 in the transform domain.

[0125] The transform processing unit 206 may be configured to apply an integer approximation of a DCT / DST, such as the transform specified in HEVC / H.265. Compared to an orthogonal DCT transform, such an integer approximation is typically scaled by a factor. To ensure the norm of the residual block processed by using the forward and inverse transforms, an additional scaling factor is applied as part of the transform process. The scaling factor is typically selected based on some constraints, such as a scaling factor that is a power of two due to shift operations, the bit depth of the transform coefficients, or a trade-off between accuracy and implementation cost. For example, a specific scaling factor may be specified for the inverse transform, e.g., by the inverse transform processing unit 212 at the decoder 30 side (and the corresponding inverse transform, e.g., by the inverse transform processing unit 212 at the encoder 20 side), and a corresponding scaling factor may be specified for the forward transform, e.g., by the transform processing unit 206 at the encoder 20 side.

[0126] Quantization

[0127] The quantization unit 208 is configured to quantize the transform coefficients 207, for example, by applying scalar quantization or vector quantization, to obtain quantized transform coefficients 209. The quantized transform coefficients 209 may also be referred to as quantized residual coefficients 209. The quantization process may reduce the bit depth associated with some or all of the transform coefficients 207. For example, an n-bit transform coefficient may be rounded to an m-bit transform coefficient during quantization, where n is greater than m. The degree of quantization can be modified by adjusting a quantization parameter (QP). For example, for scalar quantization, different scaling may be applied to achieve finer or coarser quantization. A smaller quantization step corresponds to finer quantization, and a larger quantization step corresponds to coarser quantization. An applicable quantization step size may be specified by the quantization parameter (QP). For example, the quantization parameter may be an index to a predetermined set of applicable quantization step sizes. For example, a smaller quantization parameter may correspond to finer quantization (smaller quantization step size), and a larger quantization parameter may correspond to coarser quantization (larger quantization step size), or vice versa. Quantization may involve division by the quantization step size and corresponding quantization or inverse quantization, such as performed by inverse quantization unit 210, or may involve multiplication by the quantization step size. Some standards, such as HEVC, may be configured to use the quantization parameter to determine the quantization step size. Generally, the quantization step size can be calculated based on the quantization parameter by using a fixed-point approximation of an equation involving division.Additional scaling factors can be introduced for quantization and dequantization to restore the norm of the residual block, which may be modified due to the scaling used in the fixed-point approximation of the equations for the quantization step size and quantization parameter. In one exemplary implementation, the scaling of the inverse transform and dequantization may be combined. Alternatively, customized quantization tables may be used and signaled from the encoder to the decoder, for example, in the bitstream. Quantization is a non-lossless operation, and increasing the quantization step size increases the loss.

[0128] The inverse quantization unit 210 is configured to apply the inverse quantization of the quantization unit 208 to the quantized coefficients, e.g., by applying the inverse of the quantization scheme applied by the quantization unit 208 based on or using the same quantization step as the quantization unit 208, to obtain dequantized coefficients 211. The dequantized coefficients 211, which may also be referred to as dequantized residual coefficients 211, correspond to the transform coefficients 207, but typically do not match the transform coefficients due to quantization losses.

[0129] The inverse transform processing unit 212 is configured to apply an inverse transform of the transform applied by the transform processing unit 206, such as an inverse discrete cosine transform (DCT) or an inverse discrete sine transform (DST), to obtain an inverse transform block 213 in the sample domain. The inverse transform block 213 may also be referred to as an inverse transform dequantization block 213 or an inverse transform residual block 213.

[0130] The reconstruction unit 214 (e.g., adder 214) is configured to add the inverse transform block 213 (i.e., the reconstructed residual block 213) to the prediction block 265 to obtain a reconstructed block 215 in the sample domain, for example by adding sample values ​​of the reconstructed residual block 213 and sample values ​​of the prediction block 265.

[0131] Optionally, a buffer unit 216 (or "buffer" 216 for short), e.g., a line buffer 216, is configured to buffer or store the reconstructed blocks 215 and corresponding sample values, e.g., for intra-prediction. In other embodiments, the encoder may be configured to use the unfiltered reconstructed blocks and / or corresponding sample values ​​stored in the buffer unit 216 for any kind of estimation and / or prediction, e.g., intra-prediction.

[0132] For example, in an embodiment, encoder 100 can be configured such that buffer unit 216 is used not only for storing reconstructed blocks 215 for intra prediction 254, but also for loop filter unit 220 (not shown in FIG. 5a), and / or such that buffer unit 216 and decoded picture buffer unit 230 form one buffer. In other embodiments, filtered blocks 221 and / or blocks or samples from decoded picture buffer 230 (blocks or samples not shown in FIG. 5a) are used as input or basis for intra prediction 254.

[0133] The loop filter unit 220 (or "loop filter" 220 for short) is configured to filter the reconstructed block 215 to obtain a filtered block 221 to smooth sample transitions or improve video quality. The loop filter unit 220 is intended to represent one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or other filters, such as a bilateral filter, an adaptive loop filter (ALF), a sharpening or smoothing filter, or a collaborative filter. Although the loop filter unit 220 is shown in FIG. 5a as an in-loop filter, in other configurations, the loop filter unit 220 may be implemented as a post-loop filter. The filtered block 221 may also be referred to as a filtered reconstructed block 221. The decoded picture buffer 230 may store the reconstructed coded blocks after the loop filter unit 220 performs a filtering operation on the reconstructed coded blocks.

[0134] In an embodiment, the encoder 100 (corresponding to the loop filter unit 220) may be configured to output loop filter parameters (such as sample adaptive offset information), e.g., directly or after entropy coding performed by the entropy coding unit 270 or any other entropy coding unit, so that the decoder 30, for example, may receive and apply the same loop filter parameters for decoding.

[0135] The decoded picture buffer (DPB) 230 may be a reference picture memory that stores reference picture data for use in video data encoding by the video encoder 100. The DPB 230 may be formed by any one of a variety of memory devices, such as dynamic random access memory (DRAM) (including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), and resistive RAM (RRAM)), or other types of memory devices. The DPB 230 and the buffer 216 may be provided by the same memory device or separate memory devices. In one example, the decoded picture buffer (DPB) 230 is configured to store the filtered block 221. The decoded picture buffer 230 may further be configured to store other previously filtered blocks, such as the previously reconstructed filtered block 221, of the same current picture or of a different picture, such as a previously reconstructed picture, to provide a complete previously reconstructed, i.e., decoded, picture (and corresponding reference blocks and samples) and / or a partially reconstructed current picture (and corresponding reference blocks and samples), for example, for inter-prediction. In one example, the decoded picture buffer (DPB) 230 is configured to store the reconstructed block 215 when the reconstructed block 215 is reconstructed without in-loop filtering.

[0136] The prediction processing unit 260, also referred to as block prediction processing unit 260, is configured to receive or obtain block 203 (current block 203 of current picture 201) and reconstructed picture data, e.g., reference samples of the same (current) picture from buffer 216 and / or reference picture data 231 from one or more previously decoded pictures from decoded picture buffer 230, and process the data for prediction, i.e., to provide a prediction block 265, which may be an inter-prediction block 245 or an intra-prediction block 255.

[0137] The mode selection unit 262 may be configured to select a prediction mode (e.g., intra or inter prediction mode) to be used as the prediction block 265 and / or the corresponding prediction block 245 or 255 for the calculation of the residual block 205 and for the reconstruction of the reconstructed block 215.

[0138] In an embodiment, mode selection unit 262 may be configured to select a prediction mode (e.g., from prediction modes supported by prediction processing unit 260) that provides the best match or, in other words, the smallest residual (smallest residual means better compression for transmission or storage), or that provides the smallest signaling overhead (smallest signaling overhead means better compression for transmission or storage), or that considers or balances both. Mode selection unit 262 may also be configured to determine the prediction mode based on rate distortion optimization (RDO), i.e., to select a prediction mode that provides the smallest rate distortion optimization, or to select a prediction mode whose associated rate distortion at least satisfies a prediction mode selection criterion.

[0139] The prediction process performed (eg, by using prediction processing unit 260) and the mode selection performed (eg, by using mode selection unit 262) by an example of encoder 100 are described in detail below.

[0140] As mentioned above, the encoder 100 is configured to determine or select a best or optimal prediction mode from among a (predetermined) set of prediction modes, which may include, for example, intra-prediction modes and / or inter-prediction modes.

[0141] The set of intra-prediction modes may include 35 different intra-prediction modes, such as non-directional modes like DC (or average) mode and planar mode, or directional modes like those specified in H.265, or may include 67 different intra-prediction modes, such as non-directional modes like DC (or average) mode and planar mode, or directional modes like those specified in the developing H.266.

[0142] The set of (possible) intra prediction modes depends on the available reference pictures (i.e., at least a portion of the decoded pictures stored in DBP 230) and other inter prediction parameters, such as whether the entire reference picture or only a portion of the reference picture is used, the search window area around the area of ​​the current block to search for the best matching reference block, and / or whether sample interpolation, such as half-sample / quarter-sample interpolation, is applied.

[0143] In addition to the above prediction modes, skip mode and / or direct mode may also be applied.

[0144] Prediction processing unit 260 may be further configured to divide block 203 into smaller block partitions or sub-blocks, for example, by iteratively using quad-tree (QT) partitioning, binary-tree (BT) partitioning, triple-tree (TT) partitioning, or any combination thereof, and perform prediction for each of the block partitions or sub-blocks. Mode selection includes selecting a tree structure for partitioned block 203 and selecting a prediction mode to be applied to each of the block partitions or sub-blocks.

[0145] The inter prediction unit 244 may include a motion estimation (ME) unit (not shown in FIG. 5a) and a motion compensation (MC) unit (not shown in FIG. 5a). The motion estimation unit is configured to receive or obtain a picture block 203 (current picture block 203 of current picture 201) and a decoded picture 231, or at least one or more previously reconstructed blocks, such as one or more reconstructed blocks of other / different previously decoded pictures 231, for motion estimation. For example, a video sequence may include the current picture and a previously decoded picture 31. In other words, the current picture and the previously decoded picture 31 may be part of pictures forming a video sequence or may form a sequence of pictures.

[0146] For example, the encoder 100 may be configured to select a reference block from multiple reference blocks in the same picture or different pictures, and provide an offset (spatial offset) between the position (coordinates X and Y) of the reference picture and / or reference block and the position of the current block as an inter-prediction parameter to a motion estimation unit (not shown in FIG. 5a). This offset is also called a motion vector (MV).

[0147] The motion compensation unit is configured to obtain, for example, receive inter prediction parameters and perform inter prediction based on or by using the inter prediction parameters to obtain inter prediction block 245. Motion compensation performed by the motion compensation unit (not shown in FIG. 5a) may involve fetching or generating a prediction block based on motion / block vectors determined by motion estimation (possibly by performing interpolation with sub-sample accuracy). Interpolation filtering may generate additional samples from known sample pixels, thus potentially increasing the number of candidate prediction blocks that can be used to code the picture block. Upon receiving a motion vector for the PU of the current picture block, motion compensation unit 246 may locate the prediction block to which the motion vector points in one of the reference picture lists. Motion compensation unit 246 may also generate block- and video slice-related syntax elements for use by video decoder 300 in decoding picture blocks of the video slice.

[0148] The intra prediction unit 254 is configured to obtain, e.g., receive, e.g., the picture block 203 (current picture block) and one or more previously reconstructed blocks, e.g., reconstructed neighboring blocks, of the same picture for intra estimation. The encoder 100 may be configured, for example, to select an intra prediction mode from a plurality of (predetermined) intra prediction modes.

[0149] In an embodiment, the encoder 100 may be configured to select an intra-prediction mode based on an optimization criterion, such as minimum residual (e.g., the intra-prediction mode that provides the predicted block 255 that is most similar to the current picture block 203) or minimum rate distortion.

[0150] The intra prediction unit 254 is further configured to determine the intra prediction block 255 based on, for example, intra prediction parameters of the selected intra prediction mode. In any case, after selecting the intra prediction mode for the block, the intra prediction unit 254 is further configured to provide the intra prediction parameters, i.e., information indicating the selected intra prediction mode for the block, to the entropy coding unit 270. In one example, the intra prediction unit 254 may be configured to perform any combination of the intra prediction techniques described below.

[0151] The entropy coding unit 270 is configured to apply an entropy coding algorithm or scheme (e.g., a variable length coding (VLC) scheme, a context adaptive VLC (CAVLC) scheme, an arithmetic coding scheme, context adaptive binary arithmetic coding (CABAC), syntax-based context-adaptive binary arithmetic coding (SBAC), probability interval partitioning entropy (PIPE) coding, or other entropy coding method or technique) to the quantized residual coefficients 209, the inter-prediction parameters, the intra-prediction parameters, and / or the loop filter parameters to obtain coded picture data 21, for example in the form of a coded bitstream 21, which can be output by an output 272. The coded bitstream may be transmitted to the video decoder 30 or may be stored for later transmission or retrieval by the video decoder 30. Entropy encoding unit 270 may be further configured to entropy encode other syntax elements for the current video slice being encoded.

[0152] Other structural variations of the video encoder 100 can be used to encode the video stream. For example, a non-transform-based encoder 200 can quantize the residual signal for some blocks or frames without a transform processing unit 206. In another implementation, the encoder 100 can combine the quantization unit 208 and the inverse quantization unit 210 into a single unit.

[0153] FIG. 5b is a schematic block diagram of a video decoder according to an embodiment of the present invention. The entropy decoder 303 of the video decoder 300 decodes the bitstream to generate quantized coefficients and several syntax elements. The entropy decoder 303 forwards the syntax elements to the prediction processing unit 308. The video decoder 300 may receive syntax elements / syntax elements at the video slice level and / or the picture block level. In one example, the syntax elements may include intra-prediction data associated with a chroma coding tree node. The intra-prediction data may include a first identifier qtbtt_dual_tree_intra_flag and a second identifier sps_cclm_enabled_flag, where the first identifier indicates whether a separate tree structure is used for intra pictures in a video sequence and the second identifier indicates whether CCLM is allowed to be performed on chroma blocks in the video sequence. Optionally, the inter prediction data may further include a size of a chroma coding tree node and a split flag, which may be set to different values ​​to indicate that different split modes are used for the chroma coding tree node. Optionally, other syntax elements may also be included.

[0154] The entropy decoder 303 entropy decodes the bitstream to obtain a first identifier qtbtt_dual_tree_intra_flag and a second identifier sps_cclm_enabled_flag. If the first identifier indicates that a separate tree structure is used for intra pictures and the second identifier indicates that CCLM is allowed to be performed on chroma blocks in the video sequence, the entropy decoder 303 analyzes the size and split flag of the chroma coding tree node from the bitstream. The intra predictor 309 determines the split mode of the chroma coding tree node based on the split flag and determines whether CCLM is allowed to be performed on the chroma coding unit included in the chroma coding tree node based on the size and split mode of the chroma coding tree node. The entropy decoder 303 analyzes the first index CuPreMode of the chroma coding unit from the bitstream. If the value of the first index is equal to MODE_INTRA, the entropy decoder 303 continues by analyzing the third identifier pcm_flag from the bitstream. If the third identifier indicates that PCM mode is not used for the chroma coding unit, the entropy decoder 303 analyzes the second index intra_chroma_pred_mode from the bitstream. The intra predictor 309 determines the prediction mode of the chroma coding unit based on the second index intra_chroma_pred_mode and the prediction mode of the luma coding unit corresponding to the chroma coding unit, and then intra predicts the chroma coding unit based on the prediction mode of the chroma coding unit to obtain a prediction sample for the chroma coding unit. The entropy decoder 303 further analyzes the bitstream to obtain residual information for the chroma coding unit.

[0155] The dequantizer 304 and the inverse transformer 305 process the residual information of the chroma coding unit to obtain a reconstructed residual of the chroma coding unit.

[0156] After the intra predictor 309 generates the prediction samples used for the chroma coding unit, the video decoder 300 adds the reconstructed residual from the inverse transformer 305 and the prediction samples generated by the intra predictor 310 to obtain the reconstructed samples of the chroma coding unit, i.e., the decoded picture block. The adder 311 represents a component that performs the addition operation. If necessary, a loop filter (in or after the decoding loop) can be further used to smooth sample transitions or otherwise improve video quality. The filter unit 306 can represent one or more loop filters, such as a deblocking filter, an adaptive loop filter (ALF), and a sample adaptive offset (SAO) filter. Although the filter unit 306 is shown as an in-loop filter in FIG. 5b, in another implementation, the filter unit 306 may be implemented as a post-loop filter. In one example, the filter unit 306 can apply block reconstruction to reduce blockiness, and the result is output as the decoded video stream. Additionally, decoded picture blocks within a given frame or picture may be further stored in a decoded picture buffer 307, which stores reference pictures used for subsequent motion compensation. The decoded picture buffer 307 may be part of a memory and may further store decoded video for subsequent presentation on a display device (e.g., display device 330 of FIG. 4). Alternatively, the decoded picture buffer 307 may be separate from such memory.

[0157] It should be understood that other structural variations of the video decoder 300 may be used to decode the encoded video bitstream. For example, the video decoder 300 may generate an output video stream without processing by the filter unit 306. Alternatively, for some picture blocks or picture frames, the entropy decoder 303 of the video decoder 300 does not obtain quantized coefficients through decoding, and correspondingly, processing by the dequantizer 304 and inverse transformer 305 is not required.

[0158] 5c is a simplified block diagram of an apparatus 500 that can be used as either or both of source device 10 and destination device 30 of FIG. 4, according to an example embodiment. Apparatus 500 is capable of implementing the techniques of the present application. Apparatus 500 may be in the form of a computing system including multiple computing devices, or in the form of a single computing device, such as a mobile phone, tablet computer, laptop computer, or desktop computer.

[0159] The processor 502 of the device 500 may be a central processing unit. Alternatively, the processor 502 may be any other type of device or devices, existing or later developed, capable of controlling or processing information. As shown, the disclosed implementations may be implemented using a single processor, such as the processor 502, although advantages in speed and efficiency may be achieved by using more than one processor.

[0160] In some implementations, the memory 504 of the device 500 may be a read-only memory (ROM) device or a random access memory (RAM) device. Any other suitable type of storage device may be used as the memory 504. The memory 504 may include code and data 506 accessed by the processor 502 using a bus 512. The memory 504 may further include an operating system 508 and application programs 510. The application programs 510 include at least one program that allows the processor 502 to perform the methods described herein. For example, the application programs 510 may include applications 1 through N, which further include a video coding application that performs the methods described herein. The device 500 may also include additional memory in the form of secondary storage 514. The secondary storage 514 may be, for example, a memory card used with a mobile computing device. Because a video communication session may contain a large amount of information, all or part of this information may be stored in secondary storage 514 and loaded into memory 504 as needed for processing.

[0161] The device 500 may also include one or more output devices, such as a display 518. In one example, the display 518 may be a touch-sensitive display that incorporates touch-sensing elements operable to sense touch input. The display 518 may be coupled to the processor 502 using the bus 512. Other output devices that allow a user to program or otherwise use the device 500 may be provided in addition to or instead of the display 518. When the output device is or includes a display, the display may be implemented in various ways, including with a liquid crystal display (LCD), a cathode ray tube (CRT) display, a plasma display, or a light emitting diode (LED) display, e.g., an organic LED (OLED) display.

[0162] The device 500 may also include or be connected to an image sensing device 520. The image sensing device 520 may be, for example, a camera or any other existing or later developed image sensing device 520 capable of sensing an image. The image may be, for example, an image of a user operating the device 500. The image sensing device 520 may be positioned directly facing the user operating the device 500. In one example, the position and optical axis of the image sensing device 520 may be set such that the field of view of the image sensing device 520 includes an area immediately adjacent to the display 518 and the display 518 is visible from that area.

[0163] Device 500 may also include or be in communication with a sound sensing device 522, such as a microphone or any other sound sensing device now or later developed that is capable of sensing sound in the vicinity of device 500. Sound sensing device 522 may be positioned directly facing a user operating device 500 and may be configured to receive sounds, such as voice or other sounds, made by the user when moving device 500.

[0164] Although FIG. 5c depicts the processor 502 and memory 504 of device 500 as integrated into a single unit, other configurations may be used. The operation of processor 502 may be distributed across multiple machines (each machine having one or more processors), which may be directly coupled or distributed within a local area or other network. Memory 504 may be distributed across multiple machines, such as network-based memory or memory within multiple machines on which device 500 operates. While depicted here as a single bus, bus 512 of device 500 may include multiple buses. Furthermore, secondary storage 514 may be directly coupled to other components of device 500 or may be accessed over a network, and may include a single integrated unit such as a memory card or multiple units, such as multiple memory cards. Thus, device 500 may be implemented in a wide variety of configurations.

[0165] It should be noted that the encoder shown in FIG. 5a, the decoder shown in FIG. 5b, and the device shown in FIG. 5c can perform some or all of the following method embodiments shown in FIGS. 6 and 7.

[0166] 6 is a schematic flowchart of a method for intra prediction of a video sequence according to an embodiment of the present invention. As shown in FIG. 6, the method includes the following steps:

[0167] S601. Get the size and division mode of the chroma coding tree node.

[0168] Specifically, the corresponding syntax elements in the bitstream are analyzed to obtain the size and partitioning mode of the chroma coding tree node. The partitioning mode of the chroma coding tree node may include at least one of no partitioning, quadtree partitioning, horizontal binary partitioning, horizontal ternary partitioning, vertical binary partitioning, and vertical ternary partitioning. Of course, other partitioning modes may alternatively exist, but this is not a limitation of the present invention.

[0169] It should be noted that in this case, the format of the video sequence in this embodiment of the present invention may be YUV4:2:0 format, YUV4:2:2 format, or YUV4:2:4 format.

[0170] S602. Determine whether to allow CCLM to be performed on the chroma coding units included in the chroma coding tree node based on the size and division mode of the chroma coding tree node.

[0171] The chroma coding units contained in a chroma coding tree node are the chroma coding units of the picture region corresponding to the chroma coding tree node. If a chroma coding tree node is not split, the chroma coding tree node contains one chroma coding unit. If a chroma coding tree node is split into child nodes, the chroma coding units contained in the chroma coding tree node are the chroma coding units corresponding to all coding tree leaf nodes of the chroma coding tree node.

[0172] In a possible embodiment, the size of the chroma coding tree node is MxN, and the step of determining whether to allow CCLM to be performed on the chroma coding unit included in the chroma coding tree node based on the size and the division mode of the chroma coding tree node further comprises: When both M and N are equal to a preset threshold T1, making a decision to allow CCLM to be executed in the chroma coding unit if the partitioning mode of the chroma coding tree node satisfies a first preset condition; or making a decision not to allow CCLM to be executed in the chroma coding unit if the partitioning mode of the chroma coding tree node does not satisfy a first preset condition, where the first preset condition includes a non-partitioned or quadtree partitioned mode, and the threshold T1 is, for example, 64 or 32; or When M is equal to T1 and N is equal to T1 / 2, if the partitioning mode of the chroma coding tree node satisfies a second preset condition, making a decision to allow CCLM to be executed in the chroma coding unit; or if the partitioning mode of the chroma coding tree node does not satisfy the second preset condition, making a decision not to allow CCLM to be executed in the chroma coding unit, where the second preset condition includes a non-split or vertical binary partition mode.

[0173] More specifically, if the first preset condition is the non-split mode or the quadtree split mode, "when the split mode of the chroma coding tree node satisfies the first preset condition" means "when the split mode of the chroma coding tree node is the non-split mode or the quadtree split mode." If the second preset condition is the non-split mode or the vertical binary split mode, "when the split mode of the chroma coding tree node satisfies the second preset condition" means "when the split mode of the chroma coding tree node is the non-split mode or the vertical binary split mode." In another possible embodiment, the first preset condition may alternatively be the non-split mode, the quadtree split mode, or the horizontal binary split mode. In another possible embodiment, the second preset condition may alternatively be the non-split mode, the vertical binary split mode, or the horizontal binary split mode.

[0174] If the current chroma coding tree node is not split, the coding mode information of the chroma coding units contained in the current chroma coding tree node is further analyzed, and the decoding and reconstruction are completed; otherwise, the current chroma coding tree node is split into multiple nodes based on the split mode of the current chroma coding tree node.

[0175] In this case, when a separate tree structure is used for an intra picture, a chroma coding tree node of size T1x(T1 / 2) can be obtained only by splitting a chroma coding tree node of size T1xT1 using the horizontal binary split mode; therefore, it should be noted that "the size of a chroma coding tree node is T1x(T1 / 2)" is equivalent to the split mode of the parent node of the chroma coding tree node (i.e., the chroma coding tree node of size T1xT1) being the horizontal binary split mode.

[0176] For example, assume that the size of a chroma coding tree node is 64x64. If the luma block of the chroma coding tree node with a size of 64x64 is partitioned by using the quadtree partitioning mode, as shown in (a) of Figure 2, if the partitioning mode of the chroma coding tree node is the quadtree partitioning mode, that is, if the quadtree partitioning mode is used for the chroma block of the chroma coding tree node, as shown in (d) of Figure 2, then after luma node 0 is reconstructed, CCLM can be performed on chroma node 0, and after luma node 1 is reconstructed, CCLM can be performed on chroma node 1, and so on. As another example, when the partitioning mode of a chroma coding tree node is non-partitioned, i.e., when a chroma block of a chroma coding tree node is non-partitioned, the chroma block may be partitioned into four sub-regions p0, p1, p2, and p3, and intra prediction of p0, p1, p2, and p3 is completed sequentially, as shown in (e) of Figure 2. After luma node 0 is reconstructed, CCLM may be performed on chroma region p0, and before luma node 1 is reconstructed, CCLM may be performed on chroma region p1, and so on.

[0177] If the chroma block of a 64x64 chroma coding tree node is first split using horizontal binary splitting mode, the top 64x32 chroma node is split using vertical binary splitting mode, and the bottom 64x32 chroma node is not split, as shown in Figure 2(f), after luma node 0 is reconstructed, CCLM can be performed on chroma node 0; after luma node 1 is reconstructed, CCLM can be performed on chroma node 1; after luma node 2 is reconstructed, CCLM can be performed on region p0 of chroma node 2; and after luma node 3 is reconstructed, CCLM can be performed on region p1 of chroma node 2. Therefore, if the chroma blocks of a chroma coding tree node having a size of 64x64 are not split or are split by using the quadtree split mode, or if the chroma blocks of a chroma coding tree node having a size of 64x32 are not split or are split by using the vertical binary split mode, the processing latency for performing CCLM at the chroma node does not exceed the processing time of one luma region having a size of 32x32.

[0178] In this embodiment, the partitioning modes that can be used by luma coding tree nodes of size T1xT1 may be limited to include only the non-partitioned mode and the quadtree partitioning mode. This limitation can be achieved by restricting that the maximum binary tree node size (e.g., MaxBtSizeY in VTM5) for an I-frame picture cannot exceed T1 / 2, and the maximum ternary tree node size (e.g., MaxTtSizeY in VTM5) cannot exceed T1 / 2.

[0179] Furthermore, the ISP mode is not used for luma coding units of size T1xT1 that are included in a luma coding tree node that corresponds to a chroma coding tree node.

[0180] In a possible embodiment, whether CCLM is allowed to be performed on a chroma coding unit included in a chroma coding tree node is determined based on the size and partitioning mode of the chroma coding tree node, and whether CCLM is allowed to be performed on a chroma coding unit included in a chroma coding tree node is further determined based on the partitioning mode of a luma coding tree node corresponding to the chroma coding tree node.

[0181] In a possible embodiment, the step of determining whether to allow a cross-component linear model (CCLM) intra prediction to be performed in a chroma coding unit included in a chroma coding tree node based on a size and a partitioning mode of the chroma coding tree node comprises: The method includes determining, when a luma coding tree node is not split, whether to allow an intra sub-partition ISP mode to be used for the corresponding luma block and whether to allow CCLM to be performed on a chroma coding unit included in the chroma coding tree node, based on the size and partitioning mode of the chroma coding tree node and the partitioning mode of the luma coding tree node corresponding to the chroma coding tree node, where the case when the luma coding tree node is not split corresponds to one luma coding unit; therefore, the luma block corresponding to the case when the luma coding tree node is not split is the luma block of the luma coding unit corresponding to the luma coding tree node.

[0182] The luma coding tree node corresponding to a chroma coding tree node is a luma coding tree node of size T1xT1 in the luma coding tree of the separated tree in which the chroma coding tree is located. For example, when a separated tree is used for intra pictures in VVC Draft 5, a 64x64 coding tree node is split using the separated tree, and the separated tree includes a luma coding tree and a chroma coding tree. When T1 is set to 64, the luma coding tree node corresponding to a chroma coding tree node is the root node of the luma coding tree of the separated tree in which the chroma coding tree is located.

[0183] In a possible embodiment, the size of the chroma coding tree node is MxN, and if the luma coding tree node is not partitioned, the step of determining whether to allow an intra sub-partition ISP mode to be used for the corresponding luma block and whether to allow CCLM to be performed on the chroma coding unit included in the chroma coding tree node based on the size and partitioning mode of the chroma coding tree node and the partitioning mode of the luma coding tree node corresponding to the chroma coding tree node includes: determining not to allow CCLM to be executed in the chroma coding unit if the split mode of the chroma coding tree node satisfies any one of the third preset conditions; or making a decision to allow CCLM to be executed in the chroma coding unit if the splitting mode of the chroma coding tree node does not satisfy a third preset condition, M is equal to T1, and N is equal to T1, and the splitting mode of the chroma coding tree node satisfies a first preset condition; or making a decision not to allow CCLM to be executed in the chroma coding unit if the splitting mode of the chroma coding tree node does not satisfy a first preset condition, wherein the first preset condition includes a no-split or quadtree splitting mode; or The method includes: making a decision to allow CCLM to be executed in the chroma coding unit if the split mode of the chroma coding tree node satisfies a second preset condition when the split mode of the chroma coding tree node does not satisfy a third preset condition, M is equal to T1, and N is equal to T1 / 2; or making a decision not to allow CCLM to be executed in the chroma coding unit if the split mode of the chroma coding tree node does not satisfy the second preset condition, wherein the second preset condition includes a non-split or vertical binary split mode.

[0184] In an embodiment, the third preset condition includes one or any combination of the following conditions 1 to 13, where conditions 1 to 13 are as follows:

[0185] Condition 1: The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, ISP mode is used for the luma block of the luma coding tree node, and the size of the luma coding tree node is T1xT1 (the luma coding tree node and the chroma coding tree node belong to the same partitioned tree, i.e., the coordinate of the upper left corner of the luma coding tree node is the same as the coordinate of the upper left corner of the root node of the chroma coding tree).

[0186] Condition 2: The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the ISP mode is used for the luma block of the luma coding tree node, the chroma coding tree node is partitioned into child nodes, and the sizes of the chroma coding tree node, the luma coding tree node, and the luma block are all T1xT1.

[0187] Condition 3: The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the horizontal ISP mode is used for the luma block of the luma coding tree node, the chroma coding tree node is partitioned into child nodes by using one of the vertical binary partitioning mode, the vertical ternary partitioning mode, or the quadtree partitioning mode, and the sizes of the chroma coding tree node, the luma coding tree node, and the luma block are all T1xT1.

[0188] Condition 4: The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the horizontal ISP mode is used for the luma block of the luma coding tree node, the chroma coding tree node is partitioned into child nodes by using one of the horizontal ternary partitioning mode, the vertical binary partitioning mode, the vertical ternary partitioning mode, or the quadtree partitioning mode, and the sizes of the chroma coding tree node, the luma coding tree node, and the luma block are all T1xT1.

[0189] Condition 5: The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the horizontal ISP mode is used for the luma block of the luma coding tree node, the chroma coding tree node is partitioned into child nodes by using one of the vertical binary partitioning mode, the vertical ternary partitioning mode, or the horizontal ternary partitioning mode, the size of the luma coding tree node is T1xT1, and the size of the chroma coding tree node is T1x(T1 / 2).

[0190] Condition 6: The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the vertical ISP mode is used for the luma block of the luma coding tree node, the chroma coding tree node is partitioned into child nodes by using one of the horizontal binary partitioning mode, the horizontal ternary partitioning mode, or the quadtree partitioning mode, and the size of the chroma coding tree node and the size of the luma coding tree node are both T1xT1.

[0191] Condition 7: The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the vertical ISP mode is used for the luma block of the luma coding tree node, the chroma coding tree node is partitioned into child nodes by using one of the vertical ternary partitioning mode, the horizontal binary partitioning mode, the horizontal ternary partitioning mode, or the quadtree partitioning mode, and the sizes of the chroma coding tree node, the luma coding tree node, and the luma block are all T1xT1.

[0192] Condition 8: The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the vertical ISP mode is used for the luma block of the luma coding tree node, the chroma coding tree node is partitioned into child nodes by using one of the horizontal binary partitioning mode, the horizontal ternary partitioning mode, or the vertical ternary partitioning mode, the size of the luma coding tree node and the size of the luma block are both T1xT1, and the size of the chroma coding tree node is T1x(T1 / 2).

[0193] Condition 9: A luma coding tree node corresponding to a chroma coding tree node is divided into child nodes by using a horizontal binary division mode, and the size of the luma coding tree node is T1×T1.

[0194] Condition 10: A luma coding tree node corresponding to a chroma coding tree node is split into child nodes by using a vertical binary split mode, and the size of the luma coding tree node is T1×T1.

[0195] Condition 11: A luma coding tree node corresponding to a chroma coding tree node is split into child nodes by using a horizontal ternary split mode, and the size of the luma coding tree node is T1×T1.

[0196] Condition 12: A luma coding tree node corresponding to a chroma coding tree node is split into child nodes by using a vertical ternary split mode, and the size of the luma coding tree node is T1×T1.

[0197] Condition 13: The partitioning mode used for the luma coding tree node corresponding to the chroma coding tree node is a partitioning mode other than non-partitioning and quadtree partitioning, and the size of the luma coding tree node is T1 x T1.

[0198] It should be noted that the partitioning mode used for the chroma coding tree nodes is a partitioning mode other than non-partitioned and quadtree partitioned, which means that the partitioning mode used for the luma coding tree nodes is neither quadtree partitioned nor non-partitioned.

[0199] It should be noted here that in a quad-tree plus multi-type tree (QT-MTT) structure, the partitioning modes allowed for a node include, at most, no partitioning, horizontal binary partitioning mode, vertical binary partitioning mode, horizontal ternary partitioning mode, vertical ternary partitioning mode, and quad-tree partitioning mode; therefore, in condition 3, "a chroma coding tree node is partitioned into child nodes by using one of the vertical binary partitioning mode, the vertical ternary partitioning mode, or the quad-tree partitioning mode," can be equivalently explained as "the partitioning mode used for a chroma coding tree node is not the horizontal binary partitioning mode, the horizontal ternary partitioning mode, or no partitioning" in the QT-MTT structure.

[0200] In a possible embodiment, the third preset condition includes at least one of conditions 1 to 9, provided that the partitioning mode used for the luma coding tree node corresponding to the chroma coding tree node is limited to no partitioning and quadtree partitioning.

[0201] It should be noted that in this case, splitting a chroma coding tree node into child nodes specifically means that the chroma coding tree node is split into child nodes by using one of a horizontal binary split mode, a vertical binary split mode, a horizontal ternary split mode, a vertical ternary split mode, and a quadtree split mode.

[0202] In a possible embodiment, the third preset condition includes:

[0203] The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the ISP prediction mode is used for the luma block of the luma coding tree node, and the size of the luma coding tree node is T1xT1.

[0204] In a possible embodiment, the third preset condition includes:

[0205] The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the ISP mode is used for the luma block of the luma coding tree node, the chroma coding tree node is partitioned into child nodes, and the sizes of the chroma coding tree node, the luma coding tree node, and the luma block are all T1xT1.

[0206] In a possible embodiment, the third preset condition includes:

[0207] The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the ISP mode is used for the luma block of the luma coding tree node, and the chroma coding tree node is partitioned into child nodes; or the partitioning mode of the luma coding tree node is one of a horizontal binary partitioning mode and a vertical binary partitioning mode, and the sizes of the chroma coding tree node, the luma coding tree node, and the luma block are all T1xT1.

[0208] In a possible embodiment, the third preset condition includes one or more of conditions 1 to 13.

[0209] In a possible embodiment, the third preset condition includes condition 1 or condition 13.

[0210] In a possible embodiment, the third preset condition includes condition 2 or condition 13.

[0211] In a possible embodiment, the third preset condition includes condition 3, condition 5, condition 6, condition 8, and condition 13.

[0212] In a possible embodiment, the third preset condition includes condition 4, condition 5, condition 7, condition 8, and condition 13.

[0213] In a possible embodiment, the third preset condition includes condition 4, condition 5, condition 7, condition 8, condition 9, condition 10, condition 11, and condition 12.

[0214] In a possible embodiment, T1 may be equal to 64. That is, if the size of a chroma coding tree node is T1xT1, the size of the chroma coding tree node is actually 64x64. If the size of a chroma coding tree node is T1x(T1 / 2), the size of the chroma coding tree node is actually 64x32. If the size of a luma coding tree node is T1xT1, the size of the luma coding tree node is actually 64x64. If the size of the luma block of a node in the luma coding tree is T1xT1, the size of the chroma coding tree node is actually 64x64.

[0215] In a possible embodiment, after determining whether to allow CCLM to be performed on a chroma coding unit included in a chroma coding tree node based on the size and partitioning mode of the chroma coding tree node, it is determined whether the chroma coding unit satisfies a third preset condition, and further determines whether to allow CCLM to be performed on a chroma coding unit included in the chroma coding tree node.

[0216] S603. Obtain a prediction mode of the chroma coding unit depending on whether CCLM is allowed to be performed in the chroma coding unit.

[0217] The prediction mode of the chroma coding unit includes at least one of a direct mode, a planar mode, a direct current mode (DC mode), an angular mode (angular mode), a CCLM mode, a pulse-code modulation (PCM) mode, and an intra-block copy (IBC) mode.

[0218] Specifically, the syntax element CuPredMode of a chroma coding unit is analyzed from the syntax table. If the value of CuPredMode of a chroma coding unit is equal to MODE_INTRA, pcm_flag is obtained by analysis, and pcm_flag is used to indicate whether PCM mode is used for the chroma coding unit. If it is determined based on pcm_flag that PCM mode is not used for the chroma coding unit, the syntax element intra_chroma_pred_mode is further analyzed.

[0219]

number

[0220]

number

[0221] xCb and xCr represent the coordinates of the upper-left corner of the chroma coding unit (these are expressed using the corresponding amount of luma samples), cbWidth and cbHeight represent the width and height of the chroma coding unit (these are expressed using the corresponding amount of luma samples), intra_chroma_pred_mode[xCb][yCb] represents the number of intra prediction modes of the chroma coding unit, IntraPredModeY[xCb + cbWidth / 2][yCb + cbHeight / 2] represents the luma intra prediction mode at the coordinate position (xCb + cbWidth / 2, yCb + cbHeight / 2), and the intra prediction mode of the chroma coding unit, IntraPredModeC[xCb][yCb], can be obtained by looking up Table 1 or Table 2.

[0222] S604. Based on the prediction mode of the chroma coding unit, perform intra prediction on the chroma coding unit to obtain a prediction sample of the chroma coding unit.

[0223] In a possible embodiment, a first identifier qtbtt_dual_tree_intra_flag and a second identifier sps_cclm_enabled_flag are analyzed from the bitstream. The first identifier is used to indicate whether a separate tree structure is used for intra pictures, and the second identifier is used to indicate whether CCLM is allowed to be performed on chroma blocks in a video sequence. For example, if the value of the first identifier is a first value (e.g., 1 or true), the first identifier is used to indicate that a separate tree structure is used for intra pictures in the video sequence; or if the value of the first identifier is a second value (e.g., 0 or false), the first identifier is used to indicate that a separate tree structure is not used for intra pictures in the video sequence. When the value of the second identifier is a first value (e.g., 1 or true), the second identifier is used to indicate that CCLM is allowed for the chroma block in the video sequence; or when the value of the second identifier is a second value (e.g., 0 or false), the second identifier is used to indicate that CCLM is not allowed for the chroma block in the video sequence.

[0224] When the value of the first identifier and the value of the second identifier are both the first value, an intra prediction operation is performed on the chroma coding unit by using the intra prediction method of the present invention.

[0225] In the solution of this embodiment of the present invention, whether to allow CCLM to be performed on a chroma coding unit included in a chroma coding tree node is determined based on the size and partitioning mode of the chroma coding tree node, thereby reducing the processing latency for performing CCLM on a chroma coding unit and improving the throughput of a hardware decoder.

[0226] 7 is a schematic flowchart of a decoding method according to an embodiment of the present invention. As shown in FIG. 7, the method includes the following steps:

[0227] S701. Analyze the bitstream to obtain the size and division mode of the chroma coding tree node.

[0228] Specifically, the video decoding unit decodes the bitstream to obtain the corresponding syntax elements, and then determines the size and partition mode of the chroma coding tree nodes based on the syntax elements.

[0229] S702. Determine whether to allow cross-component linear model (CCLM) intra prediction to be performed in a chroma coding unit included in the chroma coding tree node based on the size and partitioning mode of the chroma coding tree node.

[0230] S703. Determine a prediction mode of the chroma coding unit depending on whether CCLM is allowed to be performed in the chroma coding unit.

[0231] S704. Process the chroma coding unit based on a prediction mode of the chroma coding unit to obtain a prediction sample of the chroma coding unit.

[0232] For a specific description of steps S701 to S704, please refer to the relevant description of steps S601 to S604 in the embodiment shown in Figure 6. The details will not be described again here.

[0233] S705. Obtain a reconstructed residual of the chroma coding unit, and obtain a reconstructed sample of the chroma coding unit based on the reconstructed residual of the chroma coding unit and the predicted sample of the chroma coding unit.

[0234] Specifically, the residual information includes coded block flags and transform coefficients, and may further include horizontal and vertical transform types (eg, DCT-2, DCT-7, or DCT-8).

[0235] Specifically, the bitstream is analyzed. If residual information of the chroma coding unit is obtained by the analysis, a dequantization process and an inverse transform process are performed on the residual information of the chroma coding unit to obtain a reconstructed residual of the chroma coding unit; or, if residual information of the chroma coding unit is not obtained by the analysis, the reconstructed residual of the chroma coding unit is determined to be 0. The residual information includes a coded block flag and transform coefficients, and may further include a horizontal transform type and a vertical transform type (e.g., DCT-2, DCT-7, or DCT-8). The reconstructed residual of the chroma coding unit and the predicted sample of the chroma coding unit are added, and the result of the addition is clipped to a preset value range (e.g., 0 to 255 or 0 to 1023) to obtain a reconstructed sample of the chroma coding unit.

[0236] It can be seen that in the solution of this embodiment of the present invention, whether to allow CCLM to be performed on a chroma coding unit included in a chroma coding tree node is determined based on the size and partitioning mode of the chroma coding tree node, thereby reducing the processing latency for performing CCLM on a chroma coding unit, improving the throughput of a hardware decoder, and improving video decoding efficiency.

[0237] 8 is a schematic structural diagram of an intra prediction device according to an embodiment of the present invention. As shown in FIG. 8, the intra prediction device 800 includes: an acquiring unit 801 configured to acquire a size and a division mode of a chroma coding tree node; a determining unit 802 configured to determine whether to allow CCLM to be performed on a chroma coding unit included in a chroma coding tree node based on the size and partitioning mode of the chroma coding tree node; and to determine a prediction mode of the chroma coding unit depending on whether to allow CCLM to be performed on the chroma coding unit; and The chroma coding unit 803 includes a prediction unit configured to process the chroma coding unit based on a prediction mode of the chroma coding unit to obtain a prediction sample of the chroma coding unit.

[0238] In a possible embodiment, the size of a chroma coding tree node is MxN, and the determining unit 802 determines whether to allow CCLM to be performed on a chroma coding unit included in the chroma coding tree node based on the size and the division mode of the chroma coding tree node: When both M and N are equal to a preset threshold T1, if the splitting mode of the chroma coding tree node satisfies a first preset condition, a decision is made to allow the CCLM to be executed in the chroma coding unit; or if the splitting mode of the chroma coding tree node does not satisfy the first preset condition, a decision is made to not allow the CCLM to be executed in the chroma coding unit, where the first preset condition includes a non-splitting or quadtree splitting mode.

[0239] In a possible embodiment, the size of a chroma coding tree node is MxN, and the determining unit 802 determines whether to allow CCLM to be performed on a chroma coding unit included in the chroma coding tree node based on the size and the division mode of the chroma coding tree node: The control unit is specifically configured to: when M is equal to T1 and N is equal to T1 / 2, if the split mode of the chroma coding tree node satisfies a second preset condition, make a decision to allow the CCLM to be executed in the chroma coding unit; or, if the split mode of the chroma coding tree node does not satisfy the second preset condition, make a decision not to allow the CCLM to be executed in the chroma coding unit, where the second preset condition includes a non-split or vertical binary split mode.

[0240] In a possible embodiment, when determining whether to allow a cross-component linear model (CCLM) intra prediction to be performed in a chroma coding unit included in a chroma coding tree node based on the size and partitioning mode of the chroma coding tree node, the determining unit 802: The coding unit is specifically configured to determine, when a luma coding tree node is not split, whether to allow an ISP mode to be used for the corresponding luma block and whether to allow CCLM to be performed on a chroma coding unit included in the chroma coding tree node, based on the size and splitting mode of the chroma coding tree node and the splitting mode of the luma coding tree node corresponding to the chroma coding tree node.

[0241] In a possible embodiment, the size of a chroma coding tree node is MxN, and when the luma coding tree node is not split, the determining unit 802 determines whether to allow the ISP mode to be used for the corresponding luma block and whether to allow CCLM to be performed in the chroma coding unit included in the chroma coding tree node based on the size and splitting mode of the chroma coding tree node and the splitting mode of the luma coding tree node corresponding to the chroma coding tree node, by: Making a decision not to allow CCLM to be executed in the chroma coding unit when the split mode of the chroma coding tree node satisfies a third preset condition; or The method is specifically configured to: make a decision to allow CCLM to be executed in the chroma coding unit if the splitting mode of the chroma coding tree node satisfies a first preset condition when the splitting mode of the chroma coding tree node does not satisfy a third preset condition, M is equal to T1, and N is equal to T1; or make a decision to not allow CCLM to be executed in the chroma coding unit if the splitting mode of the chroma coding tree node does not satisfy the first preset condition, where the first preset condition includes a non-splitting or quadtree splitting mode.

[0242] In a possible embodiment, the size of a chroma coding tree node is MxN, and when the luma coding tree node is not split, the determining unit 802 determines whether to allow the ISP mode to be used for the corresponding luma block and whether to allow CCLM to be performed in the chroma coding unit included in the chroma coding tree node based on the size and splitting mode of the chroma coding tree node and the splitting mode of the luma coding tree node corresponding to the chroma coding tree node, by: The control unit is specifically configured to: make a decision not to allow CCLM to be executed in the chroma coding unit if the split mode of the chroma coding tree node satisfies any one of the third preset conditions; or make a decision to allow CCLM to be executed in the chroma coding unit if the split mode of the chroma coding tree node satisfies a second preset condition when the split mode of the chroma coding tree node does not satisfy the third preset condition, N=T1, and M=T1 / 2; or make a decision not to allow CCLM to be executed in the chroma coding unit if the split mode of the chroma coding tree node does not satisfy the second preset condition, where the second preset condition includes a non-split or vertical binary split mode.

[0243] In a possible embodiment, the third preset condition includes one or more of condition 1, condition 2, condition 3, condition 4, condition 5, condition 6, condition 7, condition 8, condition 9, condition 10, condition 11, condition 12, and condition 13 in the example shown in FIG. 6 .

[0244] In a possible embodiment, the third preset condition includes:

[0245] The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the ISP prediction mode is used for the luma block of the luma coding tree node, and the size of the luma coding tree node and the size of the luma block are both T1xT1.

[0246] In a possible embodiment, the third preset condition includes:

[0247] The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-partitioned, the ISP mode is used for the luma block of the luma coding tree node, the chroma coding tree node is partitioned into child nodes, and the sizes of the chroma coding tree node, the luma coding tree node, and the luma block are all T1xT1.

[0248] In a possible embodiment, the third preset condition includes conditions 1 and 13 in the example shown in FIG.

[0249] In a possible embodiment, the third preset condition includes conditions 2 and 13 in the example shown in FIG.

[0250] In a possible embodiment, the third preset condition includes:

[0251] The division mode of the luma coding tree node corresponding to the chroma coding tree node is one of undivided, quadtree division mode, horizontal binary division mode, and vertical binary division mode, and the size of the luma coding tree node is T1xT1; or The partitioning mode of the luma coding tree node corresponding to the chroma coding tree node is non-split, the ISP mode is used for the luma block of the luma coding tree node, and the chroma coding tree node is split into child nodes; or the partitioning mode of the luma coding tree node is one of a horizontal binary partitioning mode and a vertical binary partitioning mode, and the sizes of the chroma coding tree node, the luma coding tree node, and the luma block are all T1xT1.

[0252] In a possible embodiment, the third preset condition includes condition 3, condition 5, condition 6, condition 8, and condition 13 in the example shown in FIG.

[0253] In a possible embodiment, the third preset condition includes condition 4, condition 5, condition 7, condition 8, and condition 13 in the example shown in FIG.

[0254] In a possible embodiment, the third preset condition includes condition 3, condition 5, condition 7, condition 8, condition 9, condition 10, condition 11, and condition 12 in the example shown in FIG.

[0255] In a possible embodiment, the preset threshold T1 is equal to 64.

[0256] It should be noted that the aforementioned units (obtaining unit 801, determining unit 802, and predicting unit 803) are configured to perform related steps of the aforementioned methods. Specifically, the obtaining unit 801 is configured to perform related content in steps S601 and S701, the determining unit 802 is configured to perform related content in steps S602, S603, S702, and S703, and the predicting unit 803 is configured to perform related content in steps S604 and S704. In other words, the obtaining unit 801 is configured to implement related functions of the entropy decoder 303 and the intra predictor 309 in Figure 5b, and the determining unit 802 and the predicting unit 803 are configured to implement related functions of the intra predictor 309 in Figure 5b.

[0257] In this embodiment, the intra prediction device 800 is presented in the form of a unit, where a "unit" may be an application-specific integrated circuit (ASIC), a processor and memory executing one or more software or firmware programs, an integrated logic circuit, and / or other device capable of providing the functionality described above.

[0258] 9 is a schematic structural diagram of an intra prediction device for a video sequence according to an embodiment of the present invention. As shown in FIG. 9, the intra prediction device 900 includes: a decoding unit 901 configured to analyze the bitstream to obtain a first identifier and a second identifier, the first identifier being used to indicate whether a separate tree structure is used for intra pictures in the video sequence, and the second identifier being used to indicate whether CCLM is allowed to be performed on chroma blocks in the video sequence; and The video sequence includes a prediction unit 902 configured to perform all or part of the intra prediction method of FIG. 6 when the first identifier indicates that a separate tree structure is used for intra pictures in the video sequence and the second identifier indicates that CCLM is allowed to be performed on chroma blocks in the video sequence.

[0259] It should be noted that the above units (the decoding unit 901 and the prediction unit 903) are configured to perform the relevant steps of the above method, i.e., the decoding unit 901 is configured to implement the relevant functions of the entropy decoder 303 in Fig. 5b, and the prediction unit 902 is configured to implement the relevant functions of the intra predictor 309 in Fig. 5b.

[0260] An embodiment of the present invention further provides a computer storage medium, which can store a program, which, when executed, includes at least some or all of the steps of any one of the intra prediction methods described in the above method embodiments.

[0261] Those skilled in the art will appreciate that the functionality described with reference to various illustrative logical blocks, modules, and algorithm steps disclosed and described herein can be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functionality described with reference to the illustrative logical blocks, modules, and steps can be stored on or transmitted via a computer-readable medium as one or more instructions or code and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media, which correspond to tangible media such as data storage media, or communication media, which include any medium that facilitates the transmission of a computer program from one place to another (e.g., according to a communication protocol). As such, computer-readable media may generally correspond to (1) non-transitory tangible computer-readable storage media or (2) communication media such as a signal or carrier wave. Data storage media may be any available medium that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and / or data structures that implement the techniques described herein. A computer program product may include computer-readable media.

[0262] For example, and not limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage devices, magnetic disk storage devices or other magnetic storage devices, flash memory, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly referred to as a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remote source via coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included within the definition of medium. However, it should be understood that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transitory media, and actually refer to non-transitory, tangible storage media. As used herein, disc and disk include compact discs (CDs), laser discs, optical discs, digital versatile discs (DVDs), and Blu-ray discs. Discs typically reproduce data magnetically, while discs reproduce data optically by using a laser. Combinations of the above items should also be included within the scope of computer-readable media.

[0263] The instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Accordingly, the term "processor," as used herein, may refer to any of the foregoing structures or any other structure suitable for implementing the techniques described herein. Furthermore, in some aspects, the functionality described in the exemplary logic blocks, modules, and steps described herein may be provided within dedicated hardware and / or software modules configured for encoding and decoding, or may be incorporated into a combined codec. Additionally, all techniques may be implemented in one or more circuits or logic elements.

[0264] The techniques herein may be implemented in a variety of devices, including a wireless handset, an integrated circuit (IC), or a set of ICs (e.g., a chip set). Various components, modules, or units are described herein to emphasize functional aspects of apparatus configured to implement the disclosed techniques, but are not necessarily implemented by different hardware units. Indeed, as noted above, the various units may be combined in a codec hardware unit with appropriate software and / or firmware, or may be provided by interoperable hardware units (including one or more processors as described above).

[0265] The above description is merely an example of specific implementation of the present application and is not intended to limit the scope of protection of the present application. Any modifications or substitutions that are easily understood by those skilled in the art within the technical scope disclosed in the present application shall be included in the scope of protection of the present application. Therefore, the scope of protection of the present application shall be subject to the scope of protection of the claims.

Claims

1. 1. A method for intra prediction of a video sequence, comprising: obtaining a size and a division mode of a chroma coding tree node; determining whether to allow cross-component linear model (CCLM) intra prediction to be performed on a chroma coding unit included in the chroma coding tree node based on the size and the partition mode of the chroma coding tree node, where the size of the chroma coding tree node is MxN, and determining whether to allow CCLM intra prediction to be performed on a chroma coding unit included in the chroma coding tree node based on the size and the partition mode of the chroma coding tree node includes: When both M and N are equal to T1, determining to allow CCLM intra prediction to be performed in the chroma coding unit if the partitioning mode of the chroma coding tree node satisfies a first preset condition, the first preset condition including a non-partitioned or quadtree partitioned mode; or determining, when M is equal to T1 and N is equal to T1 / 2, to allow CCLM intra prediction to be performed in the chroma coding unit if the partition mode of the chroma coding tree node satisfies a second preset condition, the second preset condition including a non-partitioned or vertical binary partitioned mode; determining whether to allow CCLM intra prediction based on the size and the partition mode of the chroma coding tree node, and then determining whether to allow the CCLM intra prediction to be performed on the chroma coding unit included in the chroma coding tree node based on whether a third preset condition is satisfied, the third preset condition including: a partition mode of a luma coding tree node corresponding to the chroma coding tree node is non-partitioned, an intra sub-partition (ISP) prediction mode is used for a luma block of the luma coding tree node, a size of the luma coding tree node is T1xT1, T1 is a preset threshold, and the luma coding tree node and the chroma coding tree node belong to the same separation tree; determining a prediction mode for the chroma coding unit depending on whether CCLM intra prediction is allowed to be performed in the chroma coding unit; and processing the chroma coding unit based on the prediction mode of the chroma coding unit to obtain a prediction sample of the chroma coding unit; A method comprising:

2. 2. The method of claim 1, wherein the step of determining whether to allow CCLM intra prediction to be performed on a chroma coding unit included in the chroma coding tree node based on the size and the partitioning mode of the chroma coding tree node comprises: the method further comprising: when both M and N are equal to T1, making a decision not to allow CCLM intra prediction to be performed in the chroma coding unit if the split mode of the chroma coding tree node does not satisfy a first preset condition.

3. 2. The method of claim 1, wherein the step of determining whether to allow CCLM intra prediction to be performed on a chroma coding unit included in the chroma coding tree node based on the size and the partitioning mode of the chroma coding tree node comprises: the method further comprising: when M is equal to T1 and N is equal to T1 / 2, if the splitting mode of the chroma coding tree node does not satisfy a second preset condition, making a decision not to allow CCLM intra prediction to be performed in the chroma coding unit.

4. 4. The method according to claim 1, wherein T1 is equal to 64.

5. 5. The method according to any one of claims 1 to 4, wherein the method comprises:

1. A method comprising: analyzing a bitstream to obtain a first identifier and a second identifier, wherein the first identifier is used to indicate whether a separate tree structure is used for intra pictures in a video sequence of the bitstream, and the second identifier is used to indicate whether cross-component linear model (CCLM) intra prediction is allowed to be performed for the video sequence.

6. 1. An intra prediction apparatus for a video sequence, comprising: a computer-readable storage medium storing instructions; and one or more processors in communication with the storage medium, the processors being configured to, when executing the instructions, perform the method of any one of claims 1-5; An apparatus comprising: