Systems and methods for constructing intra mode lists
The various implementations described herein include methods and systems for encoding and decoding video. In one aspect, a method of video decoding includes receiving video data that includes a first block from a video bitstream, where the first block is encoded in an inter-intra prediction mode. The method also includes generating a list of intra prediction modes for the first block and identifying an intra prediction mode from the list of intra prediction modes for an intra prediction for the first block. The method further includes decoding the first block using the intra prediction and an inter prediction.
1 . A method of video decoding performed at a computing system having memory and one or more processors, the method comprising:
receiving video data comprising a plurality of blocks, including a first block comprising a first partition and a second partition, and a second block from a video bitstream, wherein the first block is encoded in a partition-based inter-intra prediction mode and the second block is encoded in a smooth inter-intra prediction mode, and wherein the first partition is to be predicted in an intra prediction mode and the second partition is to be predicted in an inter prediction mode;
reconstructing the first block, including:
generating a first list of candidate intra prediction modes for the first partition, wherein the first list has a size of N, N being a positive integer, and wherein the first list of candidate intra prediction modes is generated by:
inserting a smooth intra mode and a vertical intra mode;
after inserting the smooth intra mode and the vertical intra mode, inserting a set of intra modes from neighboring blocks of the first block; and
after inserting the set of intra modes from the neighboring blocks of the first block, inserting a horizontal intra mode and a DC intra mode;
selecting the intra prediction mode from the first list of candidate intra prediction modes for predicting the first partition; and
decoding the first block using an intra prediction corresponding to the selected intra prediction mode for the first partition and an inter prediction for the second partition; and
reconstructing the second block, including:
generating a second list of candidate intra prediction modes for the second block, wherein the second list has a size of M, M being a positive integer;
selecting a second intra prediction mode from the second list of candidate intra prediction modes; and
decoding the second block using the smooth inter-intra prediction mode with a second intra prediction corresponding to the second intra prediction mode.
2 . The method of claim 1 , wherein the first list of candidate intra prediction modes is generated based on an intra mode of one or more neighboring blocks for the first block.
3 . The method of claim 1 , wherein one or more intra prediction modes of the first list of candidate intra prediction modes are selected from a group consisting of: the smooth intra mode, the vertical intra mode, an intra mode used for a left neighbor block, an intra mode used for a top neighbor block, the horizontal intra mode, the DC intra mode, a smooth horizontal intra mode, and a smooth vertical intra mode.
4 . The method of claim 1 , wherein the set of neighboring block intra modes comprises a neighboring block angular mode, and wherein generating the first list of candidate intra prediction modes further comprises inserting a set of additional angular modes based on the neighboring block angular mode.
5 . The method of claim 1 , wherein an index for the selected intra prediction mode is signaled in the video bitstream.
6 . The method of claim 1 , further comprising identifying the size for the first list of candidate intra prediction modes based on a syntax element in the video bitstream.
7 . The method of claim 1 , further comprising determining the size for the first list of candidate intra prediction modes based on a quantity of neighboring blocks coded in an intra prediction mode.
8 . The method of claim 1 , wherein the size of the first list of candidate intra prediction modes is predefined.
9 . The method of claim 1 , wherein the first list of intra prediction modes for the first block is generated based on an insertion order, and wherein the insertion order is based on a block shape and/or size of the first block.
10 . The method of claim 1 , wherein the first list of intra prediction modes for the first block is generated based on an insertion order, and wherein the insertion order is based on a respective accuracy of each intra prediction mode in a set of intra prediction modes on a neighboring reconstructed sample.
11 . The method of claim 1 , wherein the first list of candidate intra prediction modes is generated based on one or more partition modes.
12 . The method of claim 11 , further comprising identifying a partition boundary for the first block based on the partition-based inter-intra prediction mode, wherein generating the first list of candidate intra prediction modes includes at least one of: (i) inserting a first angular mode that is parallel to the partitioning boundary for the first block, and (ii) inserting a second angular mode that is perpendicular to the partitioning boundary for the first block.
13 . The method of claim 11 , further comprising, for each partition mode in a set of partition modes, in accordance with a determination that a corresponding partition boundary results in an intra prediction that does not overlap with one or more predefined block boundaries, excluding the partition mode from insertion in the first list of candidate intra prediction modes.
14 . The method of claim 1 , wherein:
the plurality of blocks includes a third block, wherein a respective partition of the third block is to be predicted in a respective intra prediction mode; and
the method includes:
reconstructing the third block, including:
generating a third list of candidate intra prediction modes for the respective partition of the third block;
selecting the respective intra prediction mode from the third list of candidate intra prediction modes for predicting the respective partition of the third block; and
decoding the third block using an intra prediction corresponding to the selected respective intra prediction mode.
15 . A method of video encoding performed at a computing system having memory and one or more processors, the method comprising:
receiving video data comprising a plurality of blocks, including a first block and a second block;
encoding the first block in a partition-based inter-intra prediction mode, including:
partitioning the first block into a first partition and a second partition;
predicting the first partition in an intra prediction mode, including:
generating a first list of candidate intra prediction modes for the first partition, wherein the first list has a size of N, N being a positive integer, and wherein the first list of candidate intra prediction modes is generated by:
inserting a smooth intra mode and a vertical intra mode;
after inserting the smooth intra mode and the vertical intra mode, inserting a set of intra modes from neighboring blocks of the first block; and
after inserting the set of intra modes from the neighboring blocks of the first block, inserting a horizontal intra mode and a DC intra mode; and
selecting the intra prediction mode from the first list of candidate intra prediction modes for predicting the first partition;
predicting the second partition in an inter prediction mode; and
predicting the first block using an intra prediction corresponding to the selected intra prediction mode for the first partition and the inter prediction mode for the second partition; and
encoding the second block in a smooth inter-intra prediction mode, including:
generating a second list of candidate intra prediction modes for the second block, wherein the second list has a size of M, M being a positive integer;
selecting a second intra prediction mode from the second list of candidate intra prediction modes;
predicting the second block using the smooth inter-intra prediction mode with a second intra prediction corresponding to the second intra prediction mode.
16 . The method of claim 15 , wherein the first list of candidate intra prediction modes is generated based on an intra mode of one or more neighboring blocks for the first block.
17 . The method of claim 15 , further comprising signaling an index for the selected intra prediction mode in a video bitstream.
18 . The method of claim 15 , further comprising signaling the size for the first list of candidate intra prediction modes in a video bitstream.
19 . A non-transitory computer-readable storage medium storing one or more instructions and a video bitstream that is generated by a video encoding method, the instructions when executed by a processor, cause a computing system to perform the video encoding method, the video bitstream comprising coded information for a plurality of blocks, including a first block comprising a first partition and a second partition, and a second block, wherein the first block is encoded in a partition-based inter-intra prediction mode and the second block is encoded in a smooth inter-intra prediction mode, and wherein the first partition is to be predicted in an intra prediction mode and the second partition is to be predicted in an inter prediction mode, the video encoding method comprising:
encoding the first block and encoding the second block;
wherein encoding the first block comprises:
generating a first list of candidate intra prediction modes for the first partition, wherein the first list has a size of N, N being a positive integer, and
wherein the first list of candidate intra prediction modes is generated by:
inserting a smooth intra mode and a vertical intra mode;
after inserting the smooth intra mode and the vertical intra mode, inserting a set of intra modes from neighboring blocks of the first block; and
after inserting the set of intra modes from the neighboring blocks of the first block, inserting a horizontal intra mode and a DC intra mode;
selecting the intra prediction mode from the first list of candidate intra prediction modes for predicting the first partition; and
predicting the first block using an intra prediction corresponding to the selected intra prediction mode for the first partition and an inter prediction for the second partition; and
wherein encoding the second block comprises:
generating a second list of candidate intra prediction modes for the second block, wherein the second list has a size of M, M being a positive integer;
selecting a second intra prediction mode from the second list of candidate intra prediction modes; and
predicting the second block using the smooth inter-intra prediction mode with a second intra prediction corresponding to the second intra prediction mode.