Sub-partition intra prediction
Techniques are described for improving intra-subpartitioning (ISP) mode for splitting coding blocks into sub-blocks. In some cases, whether ISP mode is enabled for a coding block is based on size constraints pertaining to data units (e.g., VPDUs, transform blocks, among others). For instance, based on a size constraint related to a VPDU, the ISP mode can be disabled for coding blocks crossing VPDU boundaries. In some cases, whether to enable ISP mode may be based on comparison of the width and/or height of the coding block to size thresholds corresponding to one or more maximum transform block sizes. In some cases, where the ISP mode is enabled for a coding block, a value of a flag used for defining a type of split, horizontal or vertical, for the coding block, can be inferred based on the width and/or height of the coding block relative to one or more thresholds.
1 . An apparatus for decoding video data, the apparatus comprising:
a memory; and
a processor implemented in circuitry and configured to:
obtain a current block of a picture of video data;
determine that a width of the current block of the picture is greater than a value indicative of a maximum transform block size and determine that a height of the current block is less than or equal to the value indicative of the maximum transform block size;
determine that a first intra-subpartitions mode flag is not received for the current block based on the determination that the width of the current block is greater than the value indicative of a maximum transform block size and the determination that the height of the current block is less than or equal to the value indicative of the maximum transform block size, wherein the first intra-subpartitions mode flag indicates whether the current block is partitioned into rectangular transform block subpartitions; and
process the current block based on the determination that the intra-subpartitions mode flag is not received for the current block.
2 . The apparatus of claim 1 , wherein the first intra-subpartitions mode flag being equal to a first value specifies that the current block is partitioned into rectangular transform block subpartitions, and the first intra-subpartitions mode flag being equal to a second value specifies that the current block is not partitioned into rectangular transform block subpartitions.
3 . The apparatus of claim 2 , wherein the processor is further configured to:
based on the determination that the first intra-subpartitions mode flag is not received for the current block, determine the value of the first intra-subpartitions mode flag for the current block to be equal to the second value.
4 . The apparatus of claim 3 , wherein the processor is further configured to:
obtain a second block of video data, the second block being different from the current block;
determine that a width of the second block is less than or equal to the value indicative of the maximum transform block size and determine that a height of the second block is greater than the value indicative of the maximum transform block size;
determine that a second intra-subpartitions mode flag is not received for the second block based on the determination that the width of the second block is less than or equal to the value indicative of the maximum transform block size and the determination that the height of the second block is greater than the value indicative of the maximum transform block size, wherein the second intra-subpartitions mode flag indicates whether the second block is partitioned into rectangular transform block subpartitions and wherein the second intra-subpartitions mode flag is different from the first intra-subpartitions mode flag; and
process the second block based on the determination that the second intra-subpartitions mode flag is not received for the second block.
5 . The apparatus of claim 4 , wherein the processor is further configured to:
obtain a third block of video data, the third block being different from the current block and different from the second block;
determine that a width of the third block is less than or equal to the value indicative of the maximum transform block size and determine that a height of the third block is less than or equal to the value indicative of the maximum transform block size;
determine that a third intra-subpartitions mode flag is received for the third block based on the determination that the width of the third block is less than or equal to the value indicative of the maximum transform block size and the determination that the height of the third block is less than or equal to the value indicative of the maximum transform block size, wherein the third intra-subpartitions mode flag indicates whether the third block is partitioned into rectangular transform block subpartitions and wherein the third intra-subpartitions mode flag is different from the first intra-subpartitions mode flag and from the second intra-subpartitions mode flag; and
based on the determination that that the third intra-subpartitions mode flag is received for the third block, determine a value for an intra-subpartitions split flag for the third block, the intra-subpartitions split flag specifying whether a type of split for partitioning the third block is horizontal or vertical.
6 . The apparatus of claim 5 , wherein the processor is further configured to:
divide the third block vertically or horizontally into sub-partitions based on the value of the intra-subpartitions split flag for the third block.
7 . The apparatus of claim 1 , wherein the current block is an intra-predicted block.
8 . A method of decoding video data, the method comprising:
obtaining a current block of a picture of video data;
determining that a width of the current block of the picture is greater than a value indicative of a maximum transform block size and determine that a height of the current block is less than or equal to the value indicative of the maximum transform block size;
determining that a first intra-subpartitions mode flag is not received for the current block based on the determination that the width of the current block is greater than the value indicative of a maximum transform block size and the determination that the height of the current block is less than or equal to the value indicative of the maximum transform block size, wherein the first intra-subpartitions mode flag indicates whether the current block is partitioned into rectangular transform block subpartitions; and
processing the current block based on the determination that the intra-subpartitions mode flag is not received for the current block.
9 . The method of claim 8 , wherein the first intra-subpartitions mode flag being equal to a first value specifies that the current block is partitioned into rectangular transform block subpartitions, and the first intra-subpartitions mode flag being equal to a second value specifies that the current block is not partitioned into rectangular transform block subpartitions.
10 . The method of claim 9 , further comprising:
based on the determination that the first intra-subpartitions mode flag is not received for the current block, determining the value of the first intra-subpartitions mode flag for the current block to be equal to the second value.
11 . The method of claim 10 , further comprising:
obtaining a second block of video data, the second block being different from the current block;
determining that a width of the second block is less than or equal to the value indicative of the maximum transform block size and determining that a height of the second block is greater than the value indicative of the maximum transform block size;
determining that a second intra-subpartitions mode flag is not received for the second block based on the determination that the width of the second block is less than or equal to the value indicative of a maximum transform block size and the determination that the height of the second block is greater than the value indicative of the maximum transform block size, wherein the second intra-subpartitions mode flag indicates whether the second block is partitioned into rectangular transform block subpartitions and wherein the second intra-subpartitions mode flag is different from the first intra-subpartitions mode flag; and
process the second block based on the determination that the second intra-subpartitions mode flag is not received for the second block.
12 . The method of claim 11 , further comprising:
obtaining a third block of video data, the third block being different from the current block and different from the second block;
determining that a width of the third block is less than or equal to the value indicative of the maximum transform block size and determining that a height of the third block is less than or equal to the value indicative of the maximum transform block size;
determining that a third intra-subpartitions mode flag is received for the third block based on the determination that the width of the third block is less than or equal to the value indicative of the maximum transform block size and the determination that the height of the third block is less than or equal to the value indicative of the maximum transform block size, wherein the third intra-subpartitions mode flag indicates whether the third block is partitioned into rectangular transform block subpartitions and wherein the third intra-subpartitions mode flag is different from the first intra-subpartitions mode flag and from the second intra-subpartitions mode flag; and
based on the determination that that the intra-subpartitions mode flag is received for the third block, determining a value for an intra-subpartitions split flag for the third block, the intra-subpartitions split flag specifying whether a type of split for partitioning the third block is horizontal or vertical.
13 . The method of claim 12 , further comprising:
dividing the third block vertically or horizontally into sub-partitions based on the value of the intra-subpartitions split flag for the third block.
14 . The method of claim 8 , wherein the current block is an intra-predicted block.
15 . An apparatus for encoding video data, the apparatus comprising:
a memory; and
a processor implemented in circuitry and configured to:
obtain a current block of a picture of video data;
determine that a width of the current block of the picture is greater than a maximum transform block size and determine that a height of the current block is less than or equal to the maximum transform block size;
determine not to signal a first intra-subpartitions mode flag for the current block based on the determination that the width of the current block is greater than the maximum transform block size and the determination that the height of the current block is less than or equal to the maximum transform block size, wherein the first intra-subpartitions mode flag indicates whether the current block is partitioned into rectangular transform block subpartitions; and
based on the determination not to signal the first intra-subpartitions mode flag for the current block, not include the first intra-subpartitions mode flag in an encoded video bitstream that includes the current block.
16 . The apparatus of claim 15 , wherein the processor is further configured to:
obtain a second block of video data;
determine that a width of the second block is less than or equal to the maximum transform block size and determine that a height of the second block is greater than the maximum transform block size;
determine not to signal a second intra-subpartitions mode flag for the second block based on the determination that the width of the second block is less than or equal to the maximum transform block size and the determination that the height of the second block is greater than the maximum transform block size, wherein the second intra-subpartitions mode flag indicates whether the second block is partitioned into rectangular transform block subpartitions; and
based on the determination not to signal the second intra-subpartitions mode flag for the second block, not include the second intra-subpartitions mode flag in the encoded video bitstream that includes the current block and the second block.
17 . The apparatus of claim 16 , wherein the processor is further configured to:
obtain a third block of video data;
determine that a width of the third block is greater than the maximum transform block size and determine that a height of the third block is greater than the maximum transform block size;
determine to signal a third intra-subpartitions mode flag for the third block based on the determination that the width of the third block is greater than the maximum transform block size and the determination that the height of the third block is greater than the maximum transform block size, wherein the third intra-subpartitions mode flag indicates whether the third block is partitioned into rectangular transform block subpartitions; and
based on the determination to signal the third intra-subpartitions mode flag for the third block, include the third intra-subpartitions mode flag in the encoded video bitstream that includes the current block, the second block, and the third block.
18 . A method of encoding video data, the method comprising:
obtaining a current block of a picture of video data;
determining that a width of the current block of the picture is greater than a maximum transform block size and determining that a height of the current block is less than or equal to the maximum transform block size;
determining not to signal a first intra-subpartitions mode flag for the current block based on the determination that the width of the current block is greater than the maximum transform block size and the determination that the height of the current block is less than or equal to the maximum transform block size, wherein the first intra-subpartitions mode flag indicates whether the current block is partitioned into rectangular transform block subpartitions; and
based on the determination not to signal the intra-subpartitions mode flag for the current block, not including the first intra-subpartitions mode flag in an encoded video bitstream that includes the current block.
19 . The method of claim 18 , further comprising:
obtaining a second block of video data;
determining that a width of the second block is less than or equal to the maximum transform block size and determining that a height of the second block is greater than the maximum transform block size;
determining not to signal a second intra-subpartitions mode flag for the second block based on the determination that the width of the second block is less than or equal to the maximum transform block size and the determination that the height of the second block is greater than the maximum transform block size, wherein the second intra-subpartitions mode flag indicates whether the second block is partitioned into rectangular transform block subpartitions; and
based on the determination not to signal the second intra-subpartitions mode flag for the second block, not including the second intra-subpartitions mode flag in the encoded video bitstream that includes the current block and the second block.
20 . The method of claim 19 , further comprising:
obtaining a third block of video data;
determining that a width of the third block is greater than the maximum transform block size and determining that a height of the third block is greater than the maximum transform block size;
determining to signal a third intra-subpartitions mode flag for the third block based on the determination that the width of the third block is greater than the maximum transform block size and the determination that the height of the third block is greater than the maximum transform block size, wherein the third intra-subpartitions mode flag indicates whether the third block is partitioned into rectangular transform block subpartitions; and
based on the determination to signal the third intra-subpartitions mode flag for the third block, including the third intra-subpartitions mode flag in the encoded video bitstream that includes the current block, the second block, and the third block.