Composite ternary tree in video coding and decoding

文档序号:157541 发布日期:2021-10-26 浏览:26次 中文

阅读说明:本技术 视频编解码中的复合三叉树 (Composite ternary tree in video coding and decoding ) 是由 朱维佳 张莉 许继征 张凯 刘鸿彬 王悦 于 2020-03-12 设计创作,主要内容包括:描述了视频编解码中的复合三叉树。在示例性方面,用于视频处理的方法包括针对视频的第一块与视频的第一块的比特流表示之间的转换确定启用或禁用复合三叉树(CTT)分割,其中CTT分割包括将第一块划分成第一块的九个更小尺寸的子块;以及基于确定执行转换。(Composite ternary trees in video coding and decoding are described. In an exemplary aspect, a method for video processing includes determining to enable or disable Composite Ternary Tree (CTT) partitioning for a transition between a first block of a video and a bitstream representation of the first block of the video, wherein the CTT partitioning includes dividing the first block into nine smaller-sized sub-blocks of the first block; and performing a conversion based on the determination.)

1. A method of video processing, comprising:

determining to enable or disable Composite Ternary Tree (CTT) partitioning for a transition between a first block of a video and a bitstream representation of the first block of the video, wherein CTT partitioning comprises dividing the first block into nine smaller-sized sub-blocks of the first block; and

performing the conversion based on the determination.

2. The method of claim 1, wherein the first block has a dimension of width wxh height H, and the nine sub-blocks have dimensions of W1 xh 1, W2 xh 2, W3 xh 3, W4 xh 4, W5 xh 5, W6 xh 7, W7 xh 7, W8 xh 8, and W9 xh 9, respectively, wherein W, W1, W2, W3, W4, W5, W6, W7, W8, W9, H, H1, H2, H3, H4, H5, H6, H7, H8, and H9 are all integers.

3. The method of claim 1 or 2, wherein at least one of the nine sub-blocks has a different scale than the scale of the other sub-blocks.

4. The method of any of claims 1-3, wherein the nine sub-blocks have four different scales.

5. The method of claim 4, wherein a first sub-block of the nine sub-blocks has a scale of W1 x H1, a second sub-block of the nine sub-blocks has a different scale of W2 x H2, wherein W1 is different from W2 and/or H1 is different from H2.

6. The method according to any of claims 1-5, wherein all parameters of the scale of the nine sub-blocks are in the form of powers of 2.

7. The method of claim 6, wherein W1 ═ 2N1、W2=2N2、W3=2N3、W4=2N4、W5=2N5、W6=2N6、W7=2N7、W8=2N8、W9=2N9、H1=2M1、H2=2M2、H3=2M3、H4=2M4、H5=2M5、H6=2M6、H7=2M7、H8=2M8、H9=2M9Wherein N1-N9 and M1-M9 are integers.

8. The method according to any of claims 1-7, wherein the nine sub-blocks in CTT partitioning have square blocks and rectangular blocks.

9. The method of claim 8, wherein W1, H1, H/4, W2, H2, H/4, W3, W/4, H3, H/4, W4, W/4, H4, H/2, W5, H5, H/2, W6, W/4, H6, H/2, W7, W/4, H7, W/4, W8, W/2, H8, W9, W/4, and H9, H/4.

10. The method of any one of claims 1-9, wherein the nine sub-blocks in a CTT partition are generated by applying two existing Ternary Tree (TT) partitions together.

11. The method of claim 10, wherein the nine sub-blocks in a CTT partition are generated by applying a horizontal TT partition and a vertical TT partition.

12. The method of any one of claims 1-11, wherein the first block partitioned into sub-blocks by CTT partitioning is partitioned from a parent block by one or more specific partition types, including Quadtree (QT) or Binary Tree (BT) or Ternary Tree (TT) and CTT partitioning, wherein QT partitioning partitions the block horizontally and vertically to produce four sub-blocks of equal size, BT partitioning partitions the block horizontally or vertically to produce two sub-blocks of equal size, and TT partitioning partitions the block horizontally or vertically to produce three sub-blocks, and the height or width of one sub-block is equal to half of the height or width of the block.

13. The method of claim 12, wherein the first block that allows CTT partitioning is a block generated by one or more of QT or BT or TT and CTT partitioning.

14. The method of claim 12, wherein the largest block that allows CTT partitioning is a largest coding block that is a coding tree block or a coding tree element.

15. The method of claim 12, wherein the largest block that allows CTT partitioning is a Virtual Pipeline Data Unit (VPDU).

16. The method of claim 12, wherein the first block that allows CTT partitioning is partitioned from the parent block by one or more of a Quadtree (QT) or a Binary Tree (BT) or a Ternary Tree (TT) and CTT partitioning.

17. The method of claim 16, wherein the first block can only be partitioned from the parent block by QT partitioning when the first block is partitioned into the sub-blocks by CTT partitioning.

18. The method of claim 12, wherein a maximum and/or minimum block size allowing CTT partitioning and/or a maximum bit depth allowing CTT partitioning and/or a maximum depth is signaled or parsed in at least one of a Video Parameter Set (VPS), a Sequence Parameter Set (SPS), a Picture Parameter Set (PPS), an Adaptive Parameter Set (APS), a sequence header, a picture header, a slice header, a Codec Tree Unit (CTU) row and a region.

19. The method of claim 12, wherein the maximum and/or minimum block sizes allowed for CTT segmentation and/or the maximum depth allowed for CTT segmentation depend on at least one of a profile, level, or grade of a standard.

20. The method of claim 12, wherein the maximum and/or minimum block sizes allowed for CTT partitioning and/or the maximum bit depth allowed for CTT partitioning are derived to be the same as allowed for QT partitioning.

21. The method of any one of claims 1-20, wherein the sub-blocks generated by CTT partitioning are further divided into sub-daughter blocks by one or more specific partition types, including QT, BT, TT, and CTT partitioning.

22. The method of claim 21, wherein the sub-blocks may be further divided into sub-daughter blocks by BT.

23. The method of claim 21, wherein the sub-blocks may be further divided into sub-daughter blocks by TT.

24. The method of claim 21, wherein the sub-blocks may be further divided into sub-daughter blocks by CTT and/or QT.

25. The method of claim 21, wherein the sub-blocks cannot be further divided into sub-daughter blocks by QT.

26. The method of any one of claims 1-25, wherein, when dividing the first block into the sub-blocks by CTT partitioning, a division depth of the sub-blocks is derived from a division depth of the first block.

27. The method of claim 26, wherein the partitioning due to CTT partitioning is used to update at least one of QT, BT, TT, CTT, or multi-type tree (MTT) depth.

28. The method of claim 27, wherein the QT depth of one or all of the sub-blocks is equal to the QT depth of the first block plus 1.

29. The method of claim 27, wherein the BT depth of one or all of the sub-blocks is equal to the BT depth of the first block plus 1.

30. The method of claim 27, wherein the TT depth of one or all of the sub-blocks is equal to the TT depth of the first block plus 1.

31. The method of claim 27, wherein the CTT depth of one or all of the sub-blocks is equal to the CTT depth of the first block plus 1.

32. The method of claim 27, wherein the MTT depth of one or all of the sub-blocks is equal to the MTT depth of the first block plus 1.

33. The method of claim 32, wherein if the first block is BT divided into sub-blocks, the MTT depth of the sub-blocks is equal to the MTT depth of the first block plus 1.

34. The method of claim 32, wherein if the first block is divided into sub-blocks by TT, the MTT depth of the sub-blocks is equal to the MTT depth of the first block plus 1.

35. The method of claim 27, wherein the MTT depth of one or all of the sub-blocks is equal to the MTT depth of the first block plus K, K being an integer greater than 1.

36. The method of claim 35, wherein K-2.

37. The method of claim 35, wherein K is different for different sub-blocks.

38. The method of claim 37, wherein K ═ log2 (size of the first block/size of the sub-blocks).

39. The method of claim 27, wherein the CTT or BT or TT or QT or MTT depth increase is different for different sub-blocks.

40. The method of claim 39, wherein the depth increase depends on a ratio of sub-blocks to the first block.

41. The method according to any of claims 1-40, wherein whether and/or how CTT segmentation is applied depends on color format and/or color components.

42. The method of claim 41, wherein the color format comprises 4:4:4 or 4:2: 0.

43. The method of claim 41 wherein CTT partitioning can only be applied on luma components when luma and chroma coding trees are separated.

44. The method according to any of claims 1-43, wherein the determination of whether and/or which CTT partitioning to apply is based on information signaled from an encoder to a decoder.

45. The method of claim 44, wherein the information comprises an indication of at least one of a screen content video, a picture, and a slice group, when the indication of at least one of a screen content video, a picture, and a slice group is true, CTT segmentation is enabled.

46. The method of claim 45, wherein the indication in the slice group header indicates that the current slice group is screen content and not camera captured content.

47. The method of claim 44, wherein the information is signaled in at least one of a Video Parameter Set (VPS), a Sequence Parameter Set (SPS), a Picture Parameter Set (PPS), a sequence header, a picture header, a slice group header, a slice header, to indicate whether CTT segmentation can be applied.

48. The method of claim 44, wherein the information is signaled in at least one of a Video Parameter Set (VPS), a Sequence Parameter Set (SPS), a Picture Parameter Set (PPS), a sequence header, a picture header, a slice group header, a slice header, to indicate which kinds of CTT partitioning may be applied.

49. The method of claim 44, wherein the information is signaled in a block to indicate whether CTT segmentation can be applied.

50. The method of claim 44, wherein the information is signaled in a block to indicate which kinds of CTT partitioning can be applied.

51. The method of claim 44, wherein an index of a partition type is signaled in a block to indicate whether the block is partitioned or not partitioned by QT or CTT.

52. The method of claim 44, wherein an index of a partition type is signaled in a block to indicate whether the block is divided by BT, TT, or CTT.

53. The method of claim 52, wherein the index is conditionally signaled only when at least one of BT, TT, and CTT is valid for the block.

54. The method of claim 52, wherein a partitioning direction and/or a partitioning pattern is further signaled, the partitioning direction comprising at least one of a horizontal direction and a vertical direction.

55. The method of claim 52, wherein a partitioning direction of CTT partitioning is not signaled.

56. The method of claim 44, wherein a binarization code is signaled in a block to indicate which segmentation to use, the segmentation being selected from the group of BT, TT, and CTT.

57. The method of claim 56, wherein the first flag is signaled to indicate whether to use CTTs.

58. The method according to any of claims 44-57, wherein how which partition to use is signaled in a block depends on which kinds of partitions are valid for the block.

59. The method of claim 58, wherein the segmentation candidates from the group of BT, TT, and CTT to be signaled depend on previous signaling or derived information.

60. The method of claim 58, wherein disallowed or invalid partitions cannot be signaled from the encoder to the decoder.

61. The method of claim 58 wherein if only one partition from the group of BT, TT, and CTT is valid, no binarization code is signaled to indicate which partition to use.

62. The method of claim 58, wherein if only two segmentations from a group of BT, TT, and CTT are valid, signaling a flag to indicate which of the two valid segmentations to use.

63. The method of claim 58 wherein a code indicating which partition from the group of BT, TT, and CTT is binarized into a truncated unary code.

64. The method of claim 63, wherein the truncated unary code has a maximum value of N-1, where N is the number of valid partitions from the group of BT, TT, and CTT.

65. The method of claim 63, wherein invalid partitions are skipped when building the codeword table.

66. The method of claim 58, wherein a flag indicating whether to use CTT is not signaled and is inferred to be false if no CTT segmentation is valid.

67. The method of claim 58, wherein if only CTT segmentation is valid, no information is signaled and valid CTT segmentation is used implicitly.

68. A method as claimed in claim 58, wherein the binarization and/or signalling method is not changed in dependence on which kinds of segmentation in the block are valid.

69. The method of any of claims 44-68, wherein one or more binary bits of the binary string for indicating the type of partitioning are coded by arithmetic coding with one or more contexts.

70. The method of claim 69, wherein only a portion of said binary digits of said string are coded with context and the remaining binary digits are coded with bypass mode.

71. The method of claim 69, wherein all bins of said bin string are context coded.

72. The method of claim 69, wherein all bins of said bin string are coded in bypass mode.

73. The method of any of claims 69-72, wherein one or more contexts are used for bits coded with a context.

74. The method of any of claims 69-73, wherein the context depends on at least one of:

(a) the position or index of the binary bit;

(b) partitioning spatial domain/temporal neighboring blocks;

(c) a current segmentation depth comprising at least one of a QT depth, a BT depth, a TT depth, a CTT depth, and a MTT depth of the first block;

(d) partition depths of the spatially/temporally neighboring blocks and/or the spatially/temporally non-neighboring blocks of the first block, including at least one of a QT depth, a BT depth, a TT depth, a CTT depth, and a MTT depth;

(e) coding and decoding modes of spatial/temporal neighboring blocks of the first block;

(f) a width/height of a spatial/temporal neighboring block of the first block;

(g) width/height of the first block;

(h) slice type/picture type/slice group type;

(i) a color component;

(j) statistics of partition types from previously coded blocks.

75. The method of any one of claims 1-74, wherein CTT partitioning is disabled if one of the sub-blocks spans more than one Virtual Pipeline Data Unit (VPDU).

76. The method according to any of claims 1-74, wherein CTT segmentation is disabled if the width W and/or height H of the first block satisfies a predetermined condition.

77. The method of claim 76, wherein if W > -T1 and H > -T2, CTT partitioning is disabled, T1 and T2 being integers.

78. The method of claim 76, wherein if W > -T1 or H > -T2, then CTT partitioning is disabled, T1 and T2 being integers.

79. The method of claim 76, wherein if W < ═ T1 and H < ═ T2, then CTT partitioning is disabled, T1 and T2 are integers.

80. The method of claim 76, wherein if W < ═ T1 or H < ═ T2, then CTT partitioning is disabled, T1 and T2 are integers.

81. The method of claim 76, wherein CTT partitioning is disabled if WxH < ═ T, T being an integer.

82. The method of claim 76, wherein CTT partitioning is disabled if wxh > ═ T, T being an integer.

83. The method of any one of claims 77-80, wherein T1 and T2 are signaled or parsed in at least one of a VPS, an SPS, a PPS, a picture header, a slice group header, and a slice header.

84. The method of any one of claims 81-82, wherein T is signaled or parsed in at least one of a VPS, an SPS, a PPS, a picture header, a slice group header, and a slice header.

85. The method of any of claims 77-80 and 83, wherein T1 and T2 are dependent on a color component.

86. The method of any one of claims 81-82 and 84, wherein T is dependent on a color component.

87. The method of claim 85 wherein T1 and T2 are different for luma and chroma components.

88. The method of claim 86, wherein T is different for luma and chroma components.

89. The method of any of claims 77-80 and 83, wherein T1 and T2 depend on whether luma and chroma coding trees are separate.

90. The method of any one of claims 81-82 and 84 wherein T is dependent on whether a luma codec tree and a chroma codec tree are separate.

91. The method of claim 89 wherein T1 and T2 are different for luma and chroma components if the luma codec tree and the chroma codec tree are separate.

92. The method of claim 90 wherein T is different for luma and chroma components if the luma codec tree and the chroma codec tree are separate.

93. The method of any one of claims 76-92, wherein CTT partitioning is disabled when a transform is not supported for at least one of the sub-blocks generated by CTT partitioning.

94. The method of any of claims 76-92, wherein CTT segmentation is disabled when the depth of the first block exceeds an allowed depth of CTT segmentation.

95. The method of any of claims 76-92, wherein CTT partitioning is disabled when any sub-block size due to CTT partitioning exceeds an allowed block size.

96. The method of any of claims 76-92, wherein CTT segmentation is disabled when horizontal or vertical TT is not allowed.

97. The method of any one of claims 1-74, wherein CTT partitioning is enabled if a width W and/or a height H of the first block satisfies a predetermined condition.

98. The method of claim 97, wherein CTT partitioning is enabled if W > -T1 and H > -T2, T1 and T2 being integers.

99. The method of claim 97, wherein CTT partitioning is enabled if W > -T1 or H > -T2, T1 and T2 being integers.

100. The method of claim 97, wherein CTT partitioning is enabled if W < ═ T1 and H < ═ T2, T1 and T2 are integers.

101. The method of claim 97, wherein CTT segmentation is enabled if W < ═ T1 or H < ═ T2, T1 and T2 are integers.

102. The method of claim 97, wherein CTT partitioning is enabled if W × H < ═ T, T being an integer.

103. The method of claim 97, wherein CTT partitioning is enabled if W × H > ═ T, T being an integer.

104. The method of any one of claims 98-101, wherein T1 and T2 are signaled or parsed in at least one of a VPS, a SPS, a PPS, a picture header, a slice group header, and a slice header.

105. The method as claimed in any one of claims 102-103, wherein T is signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice group header and slice header.

106. The method of any of claims 98-101 and 104, wherein T1 and T2 are dependent on a color component.

107. The method as set forth in any one of claims 102 and 103, 105, wherein T depends on the color component.

108. The method of claim 106, wherein T1 and T2 are different for luma and chroma components.

109. The method of claim 107, wherein T is different for luma and chroma components.

110. The method of any of claims 98-101 and 104, wherein T1 and T2 depend on whether luma and chroma coding trees are separate.

111. The method as recited in any one of claims 102-103 and 105, wherein T depends on whether the luma codec tree and the chroma codec tree are separate.

112. The method of claim 110 wherein T1 and T2 are different for luma and chroma components if the luma codec tree and the chroma codec tree are separate.

113. The method of claim 111 wherein T is different for luma and chroma components if the luma codec tree and the chroma codec tree are separate.

114. The method of any one of claims 1-74, wherein CTT partitioning is disabled if a partition depth of the first block, including at least one of a QT partition depth, a BT partition depth, a TT partition depth, a CTT partition depth, and a MTT partition depth of the first block, satisfies a predetermined condition.

115. The method of claim 114, wherein CTT segmentation is disabled if the segmentation depth < ═ T, T being an integer.

116. The method of claim 114, wherein CTT partitioning is disabled if the partition depth > ═ T, T being an integer.

117. The method of claim 114 wherein CTT partitioning is disabled if the QT partition depth < ═ T, T being an integer.

118. The method of claim 114, wherein CTT partitioning is disabled if the QT partition depth > ═ T, T being an integer.

119. The method of claim 114, wherein CTT segmentation is disabled if the BT segmentation depth < ═ T, T being an integer.

120. The method of claim 114, wherein CTT segmentation is disabled if the BT segmentation depth > ═ T, T being an integer.

121. The method of claim 114, wherein CTT segmentation is disabled if the TT segmentation depth < ═ T, T being an integer.

122. The method of claim 114, wherein CTT segmentation is disabled if the TT segmentation depth > ═ T, T being an integer.

123. The method of claim 114, wherein CTT segmentation is disabled if the CTT segmentation depth < ═ T, T being an integer.

124. The method of claim 114, wherein CTT partitioning is disabled if the CTT partitioning depth > ═ T, T being an integer.

125. The method of claim 114, wherein CTT segmentation is disabled if the MTT segmentation depth < ═ T, T being an integer.

126. The method of claim 114, wherein CTT segmentation is disabled if the MTT segmentation depth > ═ T, T being an integer.

127. The method as claimed in any one of claims 114-126, wherein T is signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice group header, and slice header.

128. The method as set forth in any one of claims 114-126, wherein T is dependent on the color component.

129. The method of claim 128, wherein T is different for luma and chroma components.

130. The method as recited in any one of claims 114-126 wherein T is dependent on whether the luma codec tree and the chroma codec tree are separate.

131. The method of claim 130 wherein T is different for luma and chroma components if the luma codec tree and the chroma codec tree are separate.

132. The method of any one of claims 1-74, wherein CTT partitioning is enabled if a partition depth of the first block, including at least one of a QT partition depth, a BT partition depth, a TT partition depth, a CTT partition depth, and a MTT partition depth of the first block, satisfies a predetermined condition.

133. The method of claim 132, wherein CTT segmentation is enabled if the segmentation depth < ═ T, T being an integer.

134. The method of claim 132, wherein CTT segmentation is enabled if the segmentation depth > ═ T, T being an integer.

135. The method of claim 132 wherein CTT partitioning is enabled if the QT partition depth < ═ T, T being an integer.

136. The method of claim 132 wherein CTT partitioning is enabled if the QT partition depth > ═ T, T being an integer.

137. The method of claim 132, wherein CTT partitioning is enabled if the BT partitioning depth < ═ T, T being an integer.

138. The method of claim 132, wherein CTT partitioning is enabled if the BT partitioning depth > ═ T, T being an integer.

139. The method of claim 132, wherein CTT segmentation is enabled if the TT segmentation depth < ═ T, T being an integer.

140. The method of claim 132, wherein CTT segmentation is enabled if the TT segmentation depth > ═ T, T being an integer.

141. The method of claim 132, wherein CTT partitioning is enabled if the CTT partitioning depth < ═ T, T being an integer.

142. The method of claim 132, wherein CTT partitioning is enabled if the CTT partitioning depth > ═ T, T being an integer.

143. The method of claim 132, wherein CTT segmentation is enabled if the MTT segmentation depth < ═ T, T being an integer.

144. The method of claim 132, wherein CTT segmentation is enabled if the MTT segmentation depth > ═ T, T being an integer.

145. The method as claimed in any one of claims 132-144, wherein T is signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice group header and slice header.

146. The method as recited in any one of claims 132-144, wherein T is dependent on the color component.

147. The method of claim 146, wherein T is different for luma and chroma components.

148. The method as recited in any one of claims 132-144, wherein T is dependent on whether the luma codec tree and the chroma codec tree are separate.

149. The method of claim 148, wherein T is different for luma and chroma components if the luma codec tree and the chroma codec tree are separate.

150. The method of any of claims 1-149, wherein one or more codec tools are disabled in a Codec Unit (CU) generated by CTT partitioning.

151. The method of any of claims 1-150, wherein intra mode is disabled in a Codec Unit (CU) generated by at least one of QT, BT, TT, CTT, and MTT partitioning.

152. The method of any of claims 1-150, wherein inter mode is disabled in a Codec Unit (CU) generated by at least one of QT, BT, TT, CTT, and MTT partitioning.

153. The method of any of claims 1-150, wherein intra block copy mode is disabled in a Codec Unit (CU) generated by at least one of QT, BT, TT, CTT, and MTT partitioning.

154. The method as claimed in any one of claims 150-153, wherein the signaling associated with the one or more coding tools is skipped.

155. The method of any one of claims 1-154, wherein whether and/or how CTT partitioning is used depends on a location of the first block.

156. The method of claim 155, wherein whether and how CTT partitioning is used depends on whether the first block crosses a picture boundary, or a slice group boundary.

157. The method of claim 156, wherein CTT partitioning is disabled if the first block crosses a picture right boundary, or a slice group right boundary.

158. The method of claim 156, wherein if a subblock divided by CTT partitioning is completely outside of a picture, or a slice group, the subblock may be omitted during the converting.

159. The method of claim 156, wherein if a subblock portion divided by CTT partitioning is outside a picture, or a slice group, the outside of the picture may be omitted during the converting.

160. The method of claim 156, wherein if a subblock portion divided by CTT partitioning is outside a picture, or a slice, or a group of slices, further dividing the portion within the picture.

161. The method of claim 156, wherein if a subblock portion divided by CTT partitioning is outside a picture, or a slice group, then coding a portion within the picture into a Coding Unit (CU).

162. The method of claim 161, wherein whether to codec a portion within the picture as a CU depends on a width (w) and a height (h) of the portion.

163. According to claim 1The method of 62, wherein if w is 2nw,h=2nhAnd encoding and decoding a part in the picture into a CU, wherein nw and nh are integers.

164. The method of claim 156, wherein CTT partitioning is disabled if any subblock partitioned by CTT partitioning is partially or fully outside the picture, or slice, or group of slices.

165. The method as claimed in any one of claims 156-164, wherein when disabling CTT partitioning, skipping signalling, the signalling indicating the use of CTT mode.

166. The method of any of claims 1-165, wherein the converting generates a first block of the video from the bitstream representation.

167. The method of any of claims 1-165, wherein the converting generates the bitstream representation from a first block of the video.

168. An apparatus in a video system comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to implement the method of any of claims 1-167.

169. A computer program product stored on a non-transitory computer readable medium, the computer program product comprising program code for performing the method of any of claims 1-167.

Technical Field

This document relates to video encoding and decoding techniques, devices and systems.

Background

Despite advances in video compression, digital video still occupies the largest bandwidth usage on the internet and other digital communication networks. As the number of connected user devices capable of receiving and displaying video increases, the demand for bandwidth for digital video usage is expected to continue to grow.

Disclosure of Invention

Various embodiments and techniques are described herein for partitioning video pictures into a ternary tree to facilitate video coding.

In one example aspect, a video processing method is disclosed. The method includes dividing a current video block into 9 sub-blocks using composite ternary tree partitioning, and performing a conversion between the current video block and a bitstream representation of the current video block based on the dividing.

In another example aspect, another video processing method is disclosed. The method comprises the following steps: the current video block is divided into 9 sub-blocks using composite ternary tree partitioning (CTT) since the current video block meets the size criteria, and a conversion between the current video block and a bitstream representation of the current video block is performed based on the division.

In another example aspect, another video processing method is disclosed. The method comprises the following steps: determining to enable or disable Composite Ternary Tree (CTT) partitioning for a transition between a first block of a video and a bitstream representation of the first block of the video, wherein CTT partitioning comprises dividing the first block into nine smaller-sized sub-blocks of the first block; and performing a conversion based on the determination.

In yet another example aspect, a video encoding apparatus configured to implement one of the above methods is disclosed.

In yet another example aspect, a video decoding apparatus configured to implement one of the above methods is disclosed.

In yet another aspect, a computer-readable medium is disclosed. A computer readable medium has stored thereon processor executable code for implementing one of the above methods.

These and other aspects are described herein.

Drawings

Fig. 1 shows an example of a video codec like h.264.

FIG. 2 shows an example of Macroblock (MB) partitioning in H.264/AVC.

Fig. 3 shows an example of macroblock partitioning.

Fig. 4 shows an example of subdividing a Codec Tree Unit (CTU) in codec units.

Fig. 5 shows an example binary Quadtree (QTBT) structure.

Fig. 6 shows various segmentation schemes as follows: (a) quadtree splitting (b) vertical binary tree splitting (c) horizontal binary tree splitting (d) vertical center side ternary tree splitting (e) horizontal center side ternary tree splitting.

Fig. 7A-7K illustrate examples of Extended Quadtree (EQT) partitioning.

Fig. 8A-8D illustrate examples of Flexible Tree (FT) segmentation.

Fig. 9 shows an example of Generalized Ternary Tree (GTT) partitioning.

FIG. 10 illustrates an example of invariant syntax and variant semantics of multi-functional boundary segmentation.

Fig. 11 shows an example of Composite Ternary Tree (CTT) segmentation.

Fig. 12 illustrates an example apparatus for implementing the techniques described herein.

FIG. 13 is a flow diagram of an example method of video processing.

FIG. 14 is a flow diagram of an example method of video processing.

Detailed Description

Various techniques are provided herein that may be used by a decoder of an image or video bitstream to improve the quality of decompressed or decoded digital video or images. For the sake of brevity, the term "video" is used herein to include both a sequence of pictures (conventionally referred to as video) and individual images. In addition, the video encoder may also implement these techniques during the encoding process in order to reconstruct the decoded frames for further encoding.

Section headings are used herein to ease understanding and do not limit embodiments and techniques to the corresponding sections. As such, embodiments from one section may be combined with embodiments from other sections.

1. Brief introduction

This patent document relates to video encoding and decoding techniques. In particular, this document relates to candidate list construction in video codecs. It can be applied to existing video codec standards such as HEVC, or pending standards (multifunctional video codec). It may also be applicable to future video codec standards or video codecs.

2. Preliminary discussion

Video codec standards have been developed primarily through the development of the well-known ITU-T and ISO/IEC standards. ITU-T makes H.261 and H.263, ISO/IEC makes MPEG-1 and MPEG-4 visuals, and both organizations jointly make the H.262/MPEG-2 video, the H.264/MPEG-4 Advanced Video Codec (AVC), and the H.265/HEVC standards. Since h.262, video codec standards have been based on hybrid video codec structures, in which temporal prediction plus transform coding is utilized. To explore future video codec technologies beyond HEVC, VCEG and MPEG have together established the joint video exploration team (jfet) in 2015. Since then, JFET has adopted many new approaches and applied them to a reference software named Joint Exploration Model (JEM). In month 4 of 2018, a joint video experts group (jfet) between VCEG (Q6/16) and ISO/IEC JTC1 SC29/WG11(MPEG) was created to work for the VVC standard with a goal of 50% bit rate reduction compared to HEVC.

Partition tree structure in 2.1H.264/AVC

The core of the codec layer in the previous standard is a macroblock, containing a 16 x 16 block of luma samples and, in the case of conventional 4:2:0 color sampling, two corresponding 8 x 8 blocks of chroma samples.

Intra-coded blocks use spatial prediction to explore the spatial correlation between pixels. Two segmentations are defined: 16 × 16 and 4 × 4.

Inter-coded blocks use temporal prediction by estimating motion between pictures, rather than spatial prediction. The motion of a 16 × 16 macroblock or any of its sub-macroblock partitions (16 × 8, 8 × 16, 8 × 8, 8 × 4, 4 × 8, 4 × 4 (see fig. 5)) can be estimated separately. Only one Motion Vector (MV) is allowed per sub-macroblock partition.

FIG. 2 shows an example of MB partitioning in H.264/AVC.

Partition tree structure in 2.2HEVC

In HEVC, various local characteristics are accommodated by dividing the CTUs into CUs using a quadtree structure (denoted as a coding tree). The decision whether to use inter-picture (temporal) prediction or intra-picture (spatial) prediction to encode a picture region is made at the CU level. Each CU may be further divided into one, two, or four PUs according to the PU division type. Within one PU, the same prediction process is applied and the relevant information is sent to the decoder on a PU basis. After obtaining the residual block by applying a prediction process based on the PU partition type, the CU may be partitioned into Transform Units (TUs) according to another quadtree structure similar to a coding tree of the CU. An important feature of the HEVC structure is that it has multiple partitioning concepts, including CU, PU, and TU.

In the following, various features involved in hybrid video coding using HEVC are highlighted as follows.

1) Codec tree cell and Codec Tree Block (CTB) structure: a similar structure in HEVC is a Codec Tree Unit (CTU) that has a size selected by the codec and may be larger than a conventional macroblock. A CTU consists of a luma CTB and corresponding chroma CTB and syntax elements. The size L × L of the luminance CTB may be chosen to be L ═ 16, 32, or 64 samples, with larger sizes generally enabling better compression. HEVC then supports the partitioning of CTBs into smaller blocks using a tree structure and quadtree-like signaling.

2) Codec Unit (CU) and Codec Block (CB): the quad-tree syntax of the CTU specifies the size and location of its luma and chroma CBs. The root of the quadtree is associated with the CTU. Therefore, the size of the luminance CTB is the maximum supported size of the luminance CB. The partitioning of CTUs into luma and chroma CBs is signaled jointly. One luma CB and typically two chroma CBs together with associated syntax form a Codec Unit (CU). A CTB may contain only one CU or may be partitioned to form multiple CUs and each CU has an associated partition, into Prediction Unit (PU) and Transform Unit (TU) trees.

3) Prediction unit and Prediction Block (PB): a decision is made at the CU level whether to use inter-picture prediction or intra-picture prediction to encode a picture region. The root of the PU partition structure is at the CU level. The luma and chroma CBs may be further divided in size and predicted from the luma and chroma Prediction Blocks (PB) depending on basic prediction type decisions. HEVC supports variable PB sizes from 64 x 64 to 4 x 4 samples.

4) TU and transform block: the prediction residual is coded using a block transform. The root of the TU tree structure is at the CU level. The luma CB residual may be the same as the luma Transform Block (TB) or may be further divided into smaller luma TBs. The same applies to chroma TB. For square TB sizes 4 × 4, 8 × 8, 16 × 16 and 32 × 32, integer basis functions similar to Discrete Cosine Transform (DCT) are defined. For the 4 x 4 transform of the intra luma prediction residual, an integer transform derived from the Discrete Sine Transform (DST) form may alternatively be specified.

Quad-tree plus binary-tree block structure with larger CTU in 2.3JEM

To explore future video codec technologies beyond HEVC, VCEG and MPEG united in 2015 into a joint video exploration team (jfet). Since then, JFET has adopted many new approaches and applied them to a reference software named Joint Exploration Model (JEM).

2.3.1QTBT block segmentation structure

Unlike HEVC, the QTBT structure removes the concept of multiple partition types. I.e. it removes the separation of CU, PU and TU concepts and supports more flexibility of CU partition shapes. In the QTBT block structure, a CU may have a square or rectangular shape. As shown in fig. 5, a Coding Tree Unit (CTU) is first divided by a quadtree structure. The leaf nodes of the quadtree are further partitioned by a binary tree structure. There are two partition types in binary tree partitioning: a symmetrical horizontal division and a symmetrical vertical division. The binary tree leaf nodes are called Codec Units (CUs), and this partitioning is used for prediction and transform processing without further partitioning. This means that CU, PU and TU have the same block size in the QTBT codec block structure. In JEM, a CU sometimes consists of coding and decoding blocks (CBs) of different color components, e.g., in the case of P-and B-slices of the 4:2:0 chroma format, one CU contains one luma CB and two chroma CBs, and a CU sometimes consists of CBs of a single component, e.g., in the case of I-slices, one CU contains only one luma CB or only two chroma CBs.

The following parameters are defined for the QTBT segmentation scheme.

-CTU size: the root node size of the quadtree is the same as the concept in HEVC.

-MinQTSize: minimum allowed quadtree leaf node size

-MaxBTSize: maximum allowed binary tree root node size

-MaxBTDepth: maximum allowed binary tree depth

-MinBTSize: minimum allowed binary tree leaf node size

In one example of the QTBT segmentation structure, the CTU size is set to 128 × 128 luma samples with two corresponding 64 × 64 chroma sample blocks, MinQTSize is set to 16 × 16, MaxBTSize is set to 64 × 64, MinBTSize (for both width and height) is set to 4 × 4, and MaxBTDepth is set to 4. Quadtree partitioning is first applied to CTUs to generate quadtree leaf nodes. The sizes of the leaf nodes of the quadtree may have sizes from 16 × 16 (i.e., MinQTSize) to 128 × 128 (i.e., CTU size). If the leaf quadtree node is 128 x 128, it will not be further partitioned by the binary tree because its size exceeds the MaxBTSize (i.e., 64 x 64). Otherwise, the leaf quadtree nodes may be further partitioned by the binary tree. Thus, the leaf nodes of the quadtree are also the root nodes of the binary tree, and their binary tree depth is 0. When the binary tree depth reaches MaxBTDepth (i.e., 4), no further partitioning is considered. When the width of the binary tree node is equal to MinBTSize (i.e., 4), no further horizontal partitioning is considered. Similarly, when the height of the binary tree node is equal to MinBTSize, no further vertical partitioning is considered. The leaf nodes of the binary tree are further processed by prediction and transformation processes without further partitioning. In JEM, the maximum CTU size is 256 × 256 luminance samples.

Fig. 5 (left) shows an example of block segmentation using QTBT, and fig. 5 (right) shows the corresponding tree representation. The solid lines indicate quad-tree partitions and the dashed lines indicate binary tree partitions. In each partition (i.e., non-leaf) node of the binary tree, a flag may be signaled to indicate which partition type (i.e., horizontal or vertical) to use, where 0 indicates horizontal partition and 1 indicates vertical partition. For a quadtree partition, there is no need to indicate the partition type, because the quadtree partition always partitions a block horizontally and vertically to generate 4 sub-blocks of the same size.

Furthermore, the QTBT scheme supports the ability for luminance and chrominance to have separate QTBT structures. Currently, luminance and chrominance CTBs in one CTU share the same QTBT structure for P-and B-stripes. However, for the I-slice, the luma CTB is partitioned into CUs with a QTBT structure and the chroma CTB is partitioned into chroma CUs with another QTBT structure. This means that a CU in an I-slice consists of either the codec block for the luma component or the codec blocks for the two chroma components, and a CU in a P-slice or B-slice consists of the codec blocks for all three color components.

In HEVC, to reduce memory access for motion compensation, inter prediction of small blocks is restricted such that 4 × 8 and 8 × 4 blocks do not support bi-prediction and 4 × 4 blocks do not support inter prediction. In the QTBT of JEM, these restrictions are removed.

2.4VVC Tree

It is proposed to support quadtrees and tree types other than binary trees. In an implementation, as shown in insets (d) and (e) of fig. 6, two additional Types of Treeing (TT) splits, namely horizontal and vertical, center-side treeing, are introduced.

Fig. 6 shows the following segmentation. (a) Quadtree splitting (b) vertical binary tree splitting (c) horizontal binary tree splitting (d) vertical center side ternary tree splitting (e) horizontal center side ternary tree splitting.

There are two levels of trees: region trees (quadtrees) and prediction trees (binary or ternary). The CTUs are first partitioned with a Region Tree (RT). The RT leaves may be further partitioned with a Prediction Tree (PT). PT leaves may also be further partitioned with PT until a maximum PT depth is reached. The PT leaf is a basic codec unit. For convenience, it is still referred to as CU. A CU cannot be further partitioned. Both prediction and transformation are applied to the CU in the same way as JEM. The entire partition structure is called a "multi-type tree".

2.5 expanding quadtrees

1. An Extended Quadtree (EQT) partitioning structure corresponding to a block partitioning process includes: an extended quadtree splitting process for a block of video data, wherein the extended quadtree splitting structure indicates that the block of video data is split into final sub-blocks, and when the extended quadtree splitting process decides to apply the extended quadtree splitting to a given block, the given block is always split into four sub-blocks; decoding the final subblocks based on the video bitstream; and decoding the block of video data based on the final sub-block decoded according to the derived EQT structure. EQT is presented.

The EQT splitting process may be recursively applied to a given block to generate an EQT leaf node. Alternatively, when an EQT is applied to a block, it may be further divided into BT, and/or QT, and/or TT, and/or EQT, and/or other types of partition trees for each sub-block due to the EQT.

b. In one example, EQT and QT may share the same depth increment process and the same leaf node size limit. In this case, the partitioning of a node may be terminated implicitly when the size of the node reaches the minimum allowed quadtree leaf node size or when the EQT depth associated with the node reaches the maximum allowed quadtree depth.

c. Alternatively, EQT and QT may share different depth increment processes and/or leaf node size restrictions. The partitioning of a node by an EQT is implicitly terminated when the size of the node reaches the minimum allowed EQT leaf node size or the EQT depth associated with the node reaches the maximum allowed EQT depth. Further, in one example, the EQT depth and/or the minimum allowed EQT leaf node size may be signaled in a Sequence Parameter Set (SPS), and/or a Picture Parameter Set (PPS), and/or a slice header, and/or a CTU, and/or a region, and/or a slice, and/or a CU.

d. For blocks of size mxn (M and N are non-zero positive integer values, equal or not), instead of using the current quadtree partitioning applied to square blocks, in EQT, a block may be equally divided into four partitions, e.g., M/4 xn or mxn/4 (examples are shown in fig. 7A and 7B), or into four partitions, with the partition size depending on the maximum and minimum values of M and N. In one example, one 4 × 32 block may be divided into four 4 × 8 sub-blocks, and one 32 × 4 block may be divided into four 8 × 4 sub-blocks.

e. For blocks of size M × N (M and N are non-zero positive integer values, equal or not), instead of using the current quadtree partitioning applied to square blocks, in EQT, a block may be divided unequally into four partitions, e.g., two partitions of size equal to (M × w0/w) × (N × h0/h) and two other partitions of size equal to (M × w0)/w) × (N (h-h 0)/h).

For example, w0 and w may be equal to 1 and 2, respectively, i.e. the width is reduced by half, while the height may be used to obtain the sub-blocks using other ratios than 2: 1. Fig. 7C and 7E depict examples of such a situation. Alternatively, h0 and h may be equal to 1 and 2, respectively, i.e., the height is reduced by half, and other ratios than 2:1 of width may be used. Fig. 7D and 7F depict examples of such a situation.

Fig. 7G and 7H show two alternative examples of quadtree splitting.

Fig. 7I shows a more general case of quadtree splitting with different split shapes.

Fig. 7J and 7K show a general example of fig. 7A-7B.

Fig. 7A-7K illustrate the segmentation as follows: m is multiplied by N/4; m/4 XN; the width of the sub-block is fixed to be M/2, the height of the sub-block is equal to N/4 or 3N/4, and the two partitions at the top are smaller; the height of the sub-block is fixed to be N/2, the width of the sub-block is equal to M/4 or 3M/4, and the left two partitions are smaller; the width of the sub-block is fixed to be M/2, the height is equal to 3N/4 or N/4, and the two partitions at the bottom are smaller; the height of the sub-block is fixed to be N/2, the width of the sub-block is equal to 3M/4 or M/4, and the two partitions on the right side are smaller; m/2 XN/4 and M/N/2; NxM/4 and N/2 xM/2; m1 XN 1, (M-M1). times.N 1, M1X (N-N1), and (M-M1) X (N-N1); m × N1, M × N2, M × N3, and M × N4, where N1+ N2+ N3+ N4 is N; m1 × N, M2 × N, M3 × N and M4 × N, wherein M1+ M2+ M3+ M4 ═ M.

2. A Flexible Tree (FT) partitioning structure corresponding to a block partitioning process includes: an FT segmentation process for a block of video data, wherein the FT segmentation structure represents a segmentation of the block of video data into final sub-blocks, and when the FT segmentation process decides to apply FT segmentation to a given block, said given block is divided into K sub-blocks, where K may be greater than 4; decoding the final subblocks based on the video bitstream; and decoding the block of video data based on the final sub-block decoded according to the derived FT structure.

The FT segmentation process may be applied recursively to a given block to generate FT leaf nodes. The segmentation of a node may be terminated implicitly when the node reaches a minimum allowed FT leaf node size or when the FT depth associated with the node reaches a maximum allowed FT depth.

b. Alternatively, when FT is applied to a block, it may be further divided into BT, and/or QT, and/or EQT, and/or TT, and/or other types of partition trees for each sub-block due to FT.

c. Alternatively, FT depth and/or minimum allowed FT leaf node size may be signaled in a Sequence Parameter Set (SPS), and/or Picture Parameter Set (PPS), and/or slice header, and/or CTU, and/or region, and/or slice, and/or CU, among others.

d. Similar to the proposed EQT, the size of all sub-blocks due to FT partitioning may be the same; alternatively, the size of the different sub-blocks may be different.

e. In one example, K is equal to 6 or 8. Some examples are shown in fig. 8A-8D. Fig. 8A shows K8, M/4 × N/2. Fig. 8B shows K8, M/2 × N/4. Fig. 8B shows K6, M/2 × N/2 and M/4 × N/2. Fig. 8D shows K6, M/2 × N/2 and M/2 × N/4.

f. For TT, the restriction of division in the horizontal or vertical direction may be removed.

g. In one example, a generalized tt (gtt) partitioning mode may be defined as horizontal and vertical partitioning. An example is shown in fig. 9.

3. The proposed method can be applied under certain conditions. In other words, when the condition(s) are not satisfied, there is no need to signal the segmentation type.

a. Alternatively, the proposed method can be used to replace existing partition tree types. In addition, the proposed method can only be used as an alternative under certain conditions.

b. In one example, the condition may include a picture and/or a slice type; and/or block size; and/or a mode of encoding and decoding; and/or whether a block is located at a picture boundary/slice boundary.

c. In one example, the proposed EQT may be processed in the same manner as QT. In this case, when the partition tree type is indicated as QT, more flags/indications of detailed quadtree partition modes may be further signaled. Alternatively, the EQT may be considered as an additional segmentation mode.

d. In one example, the signaling of the partitioning methods of the EQT or FT or GTT may be conditional, i.e., in some cases, one or some of the EQT/FT/GTT partitioning methods may not be used, and the bits corresponding to signaling these partitioning methods are not signaled.

2.6 boundary processing

A boundary processing method is proposed for multi-function video coding and decoding (VVC). A similar approach was also used for AVS-3.0.

The constrained quadtree boundary partitioning scheme in VVC is not optimized. A boundary segmentation method using a regular block segmentation syntax is proposed to preserve the continuity CABAC engine and to preserve matching picture boundaries.

The multifunctional boundary segmentation obtains the following rules (encoder and decoder):

for boundary-located blocks, the exact same segmentation syntax as a normal block (non-boundary) is used (e.g., like VTM-1.0 in fig. 10), without changing the syntax.

If the partition pattern is not parsed for the boundary CU, Forced Boundary Partitioning (FBP) is used to match the picture boundaries.

After forced boundary segmentation (non-single boundary segmentation), no segmentation is performed.

The forced boundary segmentation is described as follows:

if the size of the block is greater than the maximum allowed BT size, then the mandatory QT is used to perform FBP at the current mandatory split level;

otherwise, if the bottom-right sample point of the current CU is below the bottom picture boundary and the right boundary is not expanded, then FBP is performed at the current forced partition level using the forcing level BT;

otherwise, if the bottom-right sample point of the current CU is located right of the right picture boundary and not below the bottom picture boundary, then FBP is performed at the current forced partition level using forced vertical BT;

otherwise, if the lower right sample of the current CU is located to the right of the right picture boundary and below the bottom picture boundary, then the FBP is performed at the current forced partition level using the forced QT.

3. Problem(s)

Although the QT/BT/TT codec tree structure in VVC is quite flexible, it only partitions a block into up to 4 sub-blocks. Furthermore, screen content typically requires a more elaborate partitioning that allows one block to more sub-blocks.

4. Examples of techniques and embodiments

To address this problem, several methods have been proposed to handle the situation of crossing partition trees.

The techniques listed in detail below should be considered as examples to explain the general concepts. These examples should not be construed narrowly. Furthermore, these embodiments may be combined in any manner.

In the following discussion, QT, BT, TT or CTT may refer to "QT split", "BT split", "TT split" and "composite TT split", respectively.

In the following discussion, "partitioning" and "splitting" have the same meaning.

1. Composite Ternary Tree (CTT) partitioning is proposed, where one block can be directly divided into 9 sub-blocks (daughter blocks).

a. In one example, a block with a scale of W × H is divided into 9 partitions, with scales of W1 × H1, W2 × H2, W3 × H3, W4 × H4, W5 × H5, W6 × H7, W7 × H7, W8 × H8, and W9 × H9, where W1, W2, W3, W4, W5, W6, W7, W8, W9, H1, H2, H3, H4, H5, H6, H7, H8, and H9 are all integers.

b. In one example, at least one of the partitions has a different block size than the other partitions.

c. In one example, the 4 different block sizes may be in nine partitions.

(a) In one example, two blocks with different block sizes are defined as w 1! W 2h 1! H2, where w1 and h1 are the width and height of block 1 and w2 and h2 are the width and height of block 2.

d. In one example, all parameters are in the form of powers of 2. For example, W1 ═ 2N1、W2=2N2、W3=2N3、W4=2N4、W5=2N5、W6=2N6、W7=2N7、W8=2N8、W9=2N9、H1=2M1、H2=2M2、H3=2M3、H4=2M4、H5=2M5、H6=2M6、H7=2M7、H8=2M8、H9=2M9

e. In one example, nine sub-blocks in the CTT partition may have square blocks and rectangular blocks.

(a) In one example shown in fig. 11(a), W1, H1, H/4, W2, H2, W3, W/4, H3, H/4, W4, W/4, H4, H/2, W5, H5, H/2, W6, W/4, H6, W7, W/4, H7, H/4, W8, W8, H/4, W9, W/4, and H9.

Fig. 11 shows a segmentation example of a CTT.

f. In one example, 9 sub-blocks are generated by applying two existing TT splits together.

(a) In one example, the horizontal TT and the vertical TT are applied together to one block to get a CTT partition tree.

(b) Fig. 11 shows an example of a CTT.

2. Blocks divided by a CTT into child blocks may be divided from parent blocks by QT or BT or TT or CTT.

a. The blocks that may allow CTT partitioning may be blocks generated by QT or BT or TT or CTT partitioning.

b. For example, the maximum block that allows CTT partitioning may be the maximum codec block (codec tree block or codec tree element).

c. For example, the largest block that allows CTT partitioning may be a Virtual Pipeline Data Unit (VPDU).

d. For example, a block that allows a CTT to be divided may be divided from a parent block by one or more specific kinds of division methods. For example, a block divided by a CTT into child blocks may only be divided by a QT from a parent block.

e. In one example, the maximum/minimum block size that may allow CTT partitioning and/or the maximum bit depth that may allow CTT partitioning may be signaled in SPS/PPS/VPS/APS/sequence header/picture header/slice group header/CTU row/region, etc.

f. In one example, the maximum/minimum block size and/or the maximum bit depth that the CTT may be allowed to partition may depend on a profile/level (tier) of a standard.

g. In one example, the maximum/minimum block size that may allow CTT partitioning and/or the maximum bit depth that may allow CTT partitioning may be derived, for example, to be the same as that allowing QT partitioning.

3. Blocks partitioned from a parent block by a CTT may be further partitioned into child blocks by QT and/or BT and/or TT and/or CTT.

a. For example, a block partitioned from a parent block by a CTT may be further partitioned into child blocks by a BT.

b. For example, blocks partitioned from parent blocks by CTTs may be further partitioned into child blocks by TTs.

c. For example, a block partitioned from a parent block by a CTT may be further partitioned into child blocks by the CTT and/or QT.

d. For example, a block partitioned from a parent block by a CTT cannot be further partitioned into child blocks by QT.

4. When a parent block is divided into child blocks by CTTs, the division depth of the child blocks can be derived from the division depth of the parent block.

a. In one example, the partitioning due to CTT may be used to update QT/BT/TT/CTT/MTT depths.

(a) In one example, the QT depth of one or all of the child blocks is equal to the QT depth of the parent block plus 1.

(b) In one example, the BT depth of one or all of the child blocks is equal to the BT depth of the parent block plus 1.

(c) In one example, the TT depth of one or all of the child blocks is equal to the TT depth of the parent block plus 1.

(d) In one example, the CTT depth of one or all of the child blocks is equal to the CTT depth of the parent block plus 1.

(e) In one example, the MTT depth of one or all of the child blocks is equal to the MTT depth of the parent block plus 1.

1. For example, if the parent block is divided into child blocks by the partition BT, the MTT depth of the child blocks is equal to the MTT depth of the parent block plus 1.

2. For example, if a parent block is divided into child blocks by the partition TT, the MTT depth of the child is equal to the MTT depth of the parent block plus 1.

3. Alternatively, the MTT depth of one or all of the child blocks is equal to the MTT depth of the parent block plus K, K > 1. For example, K ═ 2.

a. In one example, K may be different for different daughter blocks.

i. In one example, K is log2 (size of parent block/size of child block).

b. In one example, the CTT/BT/TT/QT/MTT depth increase may be different for different daughter blocks.

(a) The depth increase depends on the ratio of child to parent blocks.

5. Whether and how CTTs are used may depend on the color format (e.g., 4:4:4 or 4:2:0) and/or the color components.

a. Whether and how CTTs are used may depend on whether the luma and chroma coding trees are separate.

b. In one example, CTT may only be applied on the luma component when the luma and chroma coding trees are separated.

6. Whether and/or which kind of CTT to apply may be signaled from the encoder to the decoder.

a. In one example, CTT may be enabled when the indication of screen content video/picture/slice group is true (e.g., the slice group header indicates that the current slice group is screen content and not camera capture content).

b. In one example, signaling may be made in VPS/SPS/PPS/picture header/slice group header/slice header to indicate whether CTT may be applied.

c. In one example, signaling may be in the VPS/SPS/PPS/picture header/slice group header/slice header to indicate which kinds of CTTs may be applied.

d. In one example, signaling may be performed in a block to indicate whether the block is partitioned using CTTs.

e. In one example, signaling may be performed in a block to indicate which CTT is used to partition the block.

f. In one example, an index of the partition type may be signaled in the block to indicate whether the block is partitioned or not partitioned by QT or CTT.

g. In one example, an index of the partition type may be signaled in the block to indicate whether the block is divided by BT, TT or CTT.

(a) For example, this index may be signaled conditionally, e.g., only if at least one of BT, TT and CTT is valid for this block.

(b) Alternatively, in addition, the partitioning direction (horizontal/vertical) and/or the partitioning pattern may be further signaled.

(c) In one example, the direction of the division of the CTT may not be signaled.

h. In one example, the binarization code is signaled in the block to indicate which partition (BT, TT or CTT) to use. In the following examples, X represents 0 or 1, and Y ═ X (if X ═ 0, Y ═ 1, and if X ═ 1, Y ═ 0).

(a) In one example, a first flag is signaled to indicate whether to use CTTs. For example, the binary codewords representing BT, TT, CTT are XX, XY, Y in order.

7. In one example, how to signal which partition to use in a block may depend on which kinds of partitions are valid for the block. In the following examples, X represents 0 or 1, and Y ═ X (if X ═ 0, Y ═ 1, and if X ═ 1, Y ═ 0).

a. In one example, the candidate BT, TT or CTT to be signaled depends on previously signaled or derived information.

b. For example, disallowed or invalid partitions cannot be signaled from the encoder to the decoder, i.e., no codeword represents a disallowed or invalid partition.

c. In one example, if only one partition from BT, TT and CTT is valid, the binarization code indicating which partition (BT, TT or CTT) to use is not signaled.

d. In one example, if only two partitions from BT, TT and CTT are valid, a flag is signaled to indicate which of the two valid partitions is used.

e. In one example, the code indicating which partition (BT, TT or CTT) is binarized into a truncated unary code.

(a) For example, the maximum value of the truncated unary code is N-1, where N is the number of valid partitions (BT, TT, and CTT).

(b) For example, no codeword indicates an invalid partition. In other words, invalid partitions are skipped when building the codeword table.

f. In one example, if the CTT is invalid, a flag indicating whether to use the CTT is not signaled and is inferred to be false. For example, the binarized codewords representing BT and TT are X and Y in order.

g. In one example, if only the CTT is valid, no information is signaled. The CTT is used implicitly.

h. In one example, the binarization and/or signaling methods are not changed depending on which kind of partitioning in the block is valid. An invalid partition cannot be selected in the coherent bit stream.

8. The binary bits (bits) of the binary string indicating the partition type may be coded by arithmetic coding having one or more contexts.

a. In one example, only a portion of the bins of a bin string may be coded in context, and the remaining bins may be coded in bypass mode (i.e., without context).

b. Alternatively, all the bins of a bin string may be context coded.

c. Alternatively, all the bins of a bin string may be coded in bypass mode.

d. For bits coded with context, one or more contexts may be used.

e. The context may depend on:

(a) the position or index of the binary bit.

(b) And (4) partitioning spatial/temporal neighboring blocks.

(c) The current partition depth of the current block (e.g., QT depth/BT depth/TT depth/CTT depth/MTT depth).

(d) A split depth (e.g., QT depth/BT depth/TT depth/CTT depth/MTT depth) of a spatial/temporal neighboring block and/or a spatial/temporal non-neighboring block.

(e) Coding/decoding mode of spatial/temporal neighboring blocks.

(f) Width/height of spatially/temporally adjacent blocks.

(g) Width/height of the current block.

(h) Slice type/picture type/slice group type.

(i) Color component

(j) Statistics of partition types from previously coded blocks

9. If a partitioned child block spans more than one Virtual Pipeline Data Unit (VPDU), CTT may not be allowed.

10. CTT may not be allowed if the width/height of the current block satisfies some conditions. (assuming that the width and height of the current block are W and H, T1, T2, and T are some integers)

a. If W > -T1 and H > -T2, CTT may not be allowed;

b. if W > -T1 or H > -T2, CTT may not be allowed;

c. if W < ═ T1 and H < ═ T2, CTT may not be allowed;

d. if W < ═ T1 or H < ═ T2, CTT may not be allowed;

e. if wxh < ═ T, CTT may not be allowed;

f. if wxh > ═ T, CTT may not be allowed;

g. t1, T2, and T may be signaled from the encoder to the decoder in VPS/SPS/PPS/picture header/slice header.

T.t 1, T2, and T may depend on the color components. For example, T1, T2, and T may be different for luma and chroma components.

T1, T2 and T may depend on whether the luma codec tree and the chroma codec tree are separate. For example, if the luma codec tree and the chroma codec tree are separate, T1, T2, and T may be different for the luma and chroma components.

j. Alternatively, CTT partitioning may not be invalid when a transform is not supported for at least one child block due to CTTs.

k. Alternatively, a CTT partition may not be invalid when the depth of one block exceeds the depth allowed by the CTT partition.

Alternatively, CTT partitioning is invalid when any of the child block sizes due to CTT partitioning exceeds the allowed block size.

Alternatively, CTTs may not be invalid when horizontal or vertical TT is not allowed.

11. CTT is allowed if the width/height of the current block satisfies some conditions. (assuming that the width and height of the current block are W and H, T1, T2, and T are some integers)

a. If W > -T1 and H > -T2, CTT is allowed;

b. if W > -T1 or H > -T2, CTT is allowed;

c. if W < ═ T1 and H < ═ T2, then CTT is allowed;

d. if W < ═ T1 or H < ═ T2, then CTT is allowed;

e. if W × H < ═ T, then CTT is allowed;

f. if W × H > -T, then CTT is allowed;

g. t1, T2, and T may be signaled from the encoder to the decoder in VPS/SPS/PPS/picture header/slice header.

T.t 1, T2, and T may depend on the color components. For example, T1, T2, and T may be different for luma and chroma components.

T1, T2 and T may depend on whether the luma codec tree and the chroma codec tree are separate. For example, if the luma codec tree and the chroma codec tree are separate, T1, T2, and T may be different for the luma and chroma components.

12. If the depth of the current block satisfies some conditions, the CTT is not allowed. The depth of the current block may refer to a QT depth, a BT depth, a TT depth, a CTT depth, or a MTT depth.

a. If the division depth is less than T, not allowing CTT;

b. if partition depth > -T, CTT is not allowed;

c. if the QT partition depth is less than T, not allowing CTT;

d. if QT partition depth > T, then CTT is not allowed;

e. if BT partition depth > ═ T, CTT is not allowed;

f. if the BT division depth is less than T, not allowing CTT;

g. if TT division depth > T, not allowing CTT;

h. if TT division depth > T, not allowing CTT;

i. if the CTT division depth is less than T, not allowing the CTT;

j. if the CTT partition depth > T, CTT is not allowed;

k. if the MTT division depth is < ═ T, the CTT is not allowed;

if MTT partition depth > ═ T, then CTT is not allowed;

t may be signaled from the encoder to the decoder in VPS/SPS/PPS/picture header/slice group header/slice header.

n.T may depend on the color component. For example, T1, T2, and T may be different for luma and chroma components.

o.T may depend on whether the luma codec tree and the chroma codec tree are separate. For example, if the luma codec tree and the chroma codec tree are separate, T1, T2, and T may be different for the luma and chroma components.

13. CTT may be allowed if the depth of the current block satisfies some conditions. The depth of the current block may refer to a QT depth, a BT depth, a TT depth, a CTT depth, or a MTT depth.

a. If the division depth is less than T, allowing CTT;

b. if partition depth > -T, then CTT is allowed;

c. if the QT partition depth is less than T, allowing CTT;

d. if QT partition depth > T, then CTT is allowed;

e. if the BT partition depth > -T, CTT is allowed;

f. if the BT division depth is less than T, allowing CTT;

g. if TT division depth > T, allowing CTT;

h. if TT division depth > T, allowing CTT;

i. if the CTT division depth is less than T, allowing the CTT;

j. if the CTT partition depth > is T, allowing the CTT;

k. if the MTT division depth is less than T, allowing the CTT;

if MTT split depth > ═ T, then CTT is allowed;

t may be signaled from the encoder to the decoder in VPS/SPS/PPS/picture header/slice group header/slice header.

n.T may depend on the color component. For example, T1, T2, and T may be different for luma and chroma components.

o.T may depend on whether the luma codec tree and the chroma codec tree are separate. For example, if the luma codec tree and the chroma codec tree are separate, T1, T2, and T may be different for the luma and chroma components.

14. In one example, some codec tools may not be allowed in CUs obtained from CTT partitioning.

a. Alternatively, further, in one example, intra mode may not be allowed in CUs obtained from QT/BT/TT/CTT/MTT partitioning. The corresponding signaling may be skipped.

b. Alternatively, further, in one example, inter mode may not be allowed in CUs obtained from QT/BT/TT/CTT/MTT partitioning. The corresponding signaling may be skipped.

c. Alternatively, further, in one example, intra block copy mode may not be allowed in CUs obtained from QT/BT/TT/CTT/MTT partitioning. The corresponding signaling may be skipped.

15. In one embodiment, whether and how the CTT is used may depend on the location of the current block. For example, whether and how the CTT is used may depend on whether the current block crosses a picture boundary/slice group boundary.

a. In one example, CTT may not be allowed if the current block crosses the picture right boundary/slice group right boundary.

b. In one example, if a child block divided by CTT is completely outside a picture/slice group, the child block may be omitted in the encoding/decoding process.

c. In one example, if a child block part divided by a CTT is outside a picture/slice group, the following applies.

(a) Portions other than pictures may be omitted in the encoding/decoding process.

(b) The portions within the picture may be further divided.

(c) The part within the picture can be coded into a CU.

1. Whether or not to codec a portion within a picture to a CU may depend on the width (w) and height (h) of the portion.

a. In one example, if w is 2nw,h=2nhThen the part in the picture can be coded into CU, where nw and nh are integers.

d. In one example, if any child block divided by CTT is partially/completely outside of a picture/slice group, CTT may not be allowed.

e. In one example, when CTTs are not allowed, signaling is also skipped, which indicates the use of the mode.

Fig. 12 is a block diagram of the video processing apparatus 1000. The apparatus 1000 may be used to implement one or more of the methods described herein. The apparatus 1000 may be implemented as a smartphone, tablet, computer, internet of things (IoT) receiver, and the like. The device 1000 may include one or more processors 1002, one or more memories 1004, and video processing hardware 1006. The processor(s) 1002 may be configured to implement one or more of the methods described herein. The memory(s) 1004 may be used to store data and code for implementing the methods and techniques described herein. The video processing hardware 1006 may be used to implement some of the techniques described herein in hardware circuitry.

Fig. 13 is a flow diagram of an example method 1300 of video processing. Method 1300 includes dividing (1302) a current video block into 9 sub-blocks using composite ternary tree partitioning, and performing (1304) a conversion between the current video block and a bitstream representation of the current video block based on the dividing.

Additional embodiments and techniques may be described in the examples below, and may be further based on the embodiments listed in section 4.

Example 1. A method of video processing, comprising:

dividing a current video block into 9 sub-blocks using composite ternary tree partitioning; and

the conversion between the current video block and the bit stream representation of the current video block is performed based on the partitioning.

Example 2. The method of example 1, wherein the current video block is W pixels by H pixels, and wherein 9 sub-blocks comprise sub-blocks of dimensions W1 × H1, W2 × H2, W3 × H3, W4 × H4, W5 × H5, W6 × H7, W7 × H7, W8 × H8, and W9 × H9, wherein W1, W2, W3, W4, W5, W6, W7, W8, W9, H1, H2, H3, H4, H5, H6, H7, H8, and H9 are all integers.

Example 3. The method of example 2, wherein at least one of the 9 sub-blocks has a different scale than the remaining sub-blocks.

Example 4. The method of any of examples 1-3, wherein 9 sub-blocks have corresponding four different sub-block sizes.

Example 5. The method of example 1, wherein the current video block is a child block of a parent block obtained by quadtree or binary tree or ternary tree or composite ternary tree partitioning.

Example 6. The method of any of examples 1-5, wherein at least one of the 9 sub-blocks is further partitioned using a quadtree or binary tree or ternary tree or composite ternary tree example partitioning.

Example 7. The method of any of examples 1-6, wherein the partitioning operation is selectively performed only for a certain color format of the current video block.

Example 8. The method of any of examples 1 to 7, wherein the bitstream representation comprises a field indicating a composite ternary tree partition type for the current video block.

Example 9. The method of any of examples 1-8, wherein the bitstream representation uses a codec having one or more contexts based on a partition type of a partition used to partition the current video block.

Example 10. A method of video processing, comprising:

dividing the current video block into 9 sub-blocks using composite ternary tree partitioning (CTT) since the current video block satisfies a size criterion; and

the conversion between the current video block and the bit stream representation of the current video block is performed based on the partitioning.

Example 11. The method of example 10, wherein the current video block is W × H pixels and CTT is allowed because W > -T1 and H > -T2, where T1 and T2 are integers.

Example 12. The method of any of examples 1-11, wherein converting comprises generating a bitstream representation from the current video block or generating pixel values of the current video block from the bitstream representation.

Example 13. A video encoder apparatus comprising a processor configured to implement the method of any one or more of examples 1 to 12.

Example 14. A video decoder apparatus comprising a processor configured to implement the method of any one or more of examples 1 to 12.

Example 15. A computer-readable medium having code stored thereon, the code, when executed, causing a processor to implement the method of any one or more of examples 1-12.

Fig. 14 is a flow diagram of an example method 1400 of video processing. Method 1400 includes determining (1402) to enable or disable Composite Ternary Tree (CTT) partitioning for a transition between a first block of a video and a bitstream representation of the first block of the video, wherein the CTT partitioning includes dividing the first block into nine smaller sized sub-blocks of the first block; and performing (1404) the conversion based on the determination.

In some examples, the dimension of the first block is width W × height H, and the dimensions of the nine sub-blocks are W1 × H1, W2 × H2, W3 × H3, W4 × H4, W5 × H5, W6 × H7, W7 × H7, W8 × H8, and W9 × H9, respectively, wherein W, W1, W2, W3, W4, W5, W6, W7, W8, W9, H, H1, H2, H3, H4, H5, H6, H7, H8, and H9 are all integers.

In some examples, at least one of the nine sub-blocks has a different scale than the scale of the other sub-blocks.

In some examples, nine sub-blocks have four different scales.

In some examples, a first sub-block of the nine sub-blocks has a scale of W1 × H1, a second sub-block of the nine sub-blocks has a different scale of W2 × H2, where W1 is different from W2 and/or H1 is different from H2.

In some examples, all parameters of the scale of nine sub-blocks are in the form of powers of 2.

In some examples, W1 ═ 2N1、W2=2N2、W3=2N3、W4=2N4、W5=2N5、W6=2N6、W7=2N7、W8=2N8、W9=2N9、H1=2M1、H2=2M2、H3=2M3、H4=2M4、H5=2M5、H6=2M6、H7=2M7、H8=2M8、H9=2M9Wherein N1-N9 and M1-M9 are integers.

In some examples, the nine sub-blocks in the CTT partition have square blocks and rectangular blocks.

In some examples, W1, H1, H/4, W2, H/2, H2, H/4, W3, W/4, H3, H/4, W4, W/4, H4, H/2, W5, H5, W6, W/4, H6, W7, W/4, H7, H/4, W8, W/2, H8, H/4, W9, W/4, and H9.

In some examples, nine sub-blocks in the CTT partition are generated by applying two existing Ternary Tree (TT) partitions together.

In some examples, nine sub-blocks in the CTT partition are generated by applying a horizontal TT partition and a vertical TT partition.

In some examples, a first block partitioned into sub-blocks by CTT partitioning is partitioned from a parent block by one or more particular partition types, including Quadtree (QT) or Binary Tree (BT) or Ternary Tree (TT) and CTT partitioning, where QT partitioning partitions the block horizontally and vertically to produce four sub-blocks of equal size, BT partitioning partitions the block horizontally or vertically to produce two sub-blocks of equal size, and TT partitioning partitions the block horizontally or vertically to produce three sub-blocks, and the height or width of one sub-block is equal to half the height or width of the block.

In some examples, the first block that allows CTT partitioning is a block generated by one or more of QT or BT or TT and CTT partitioning.

In some examples, the largest block that allows CTT partitioning is the largest codec block, which is a codec tree block or a codec tree element.

In some examples, the largest block that allows CTT partitioning is a Virtual Pipeline Data Unit (VPDU).

In some examples, the first block that allows CTT partitioning is partitioned from the parent block by one or more of a Quadtree (QT) or a Binary Tree (BT) or a Ternary Tree (TT) and CTT partitioning.

In some examples, when a first block is partitioned into sub-blocks by CTT partitioning, the first block can only be partitioned from a parent block by QT partitioning.

In some examples, the maximum and/or minimum block sizes allowed for CTT partitioning and/or the maximum bit depth and/or maximum depth allowed for CTT partitioning are signaled or parsed in at least one of a Video Parameter Set (VPS), a Sequence Parameter Set (SPS), a Picture Parameter Set (PPS), an Adaptive Parameter Set (APS), a sequence header, a picture header, a slice group header, a slice header, a Codec Tree Unit (CTU) row and a region.

In some examples, the maximum and/or minimum block sizes allowed for CTT segmentation and/or the maximum depth allowed for CTT segmentation depend on at least one of a profile, level, or grade of a criterion.

In some examples, the maximum and/or minimum block sizes allowed for CTT partitioning, and/or the maximum bit depth allowed for CTT partitioning are derived to be the same as allowed for QT partitioning.

In some examples, the sub-blocks generated by CTT partitioning may be further divided into sub-daughter blocks by one or more particular partition types, including QT, BT, TT, and CTT partitioning.

In some examples, the sub-blocks may be further divided into sub-daughter blocks by BT.

In some examples, the sub-blocks may be further divided into sub-daughter blocks by TT.

In some examples, the sub-blocks may be further divided into sub-daughter blocks by CTTs and/or QTs.

In some examples, the sub-blocks cannot be further divided into sub-daughter blocks by QT.

In some examples, when a first block is divided into sub-blocks by CTT partitioning, a division depth of the sub-blocks is derived from a division depth of the first block.

In some examples, the partitioning due to CTT partitioning is used to update at least one of QT, BT, TT, CTT, or multi-type tree (MTT) depth.

In some examples, the QT depth of one or all of the sub-blocks is equal to the QT depth of the first block plus 1.

In some examples, the BT depth of one or all of the sub-blocks is equal to the BT depth of the first block plus 1.

In some examples, the TT depth of one or all of the sub-blocks is equal to the TT depth of the first block plus 1.

In some examples, the CTT depth of one or all of the sub-blocks is equal to the CTT depth of the first block plus 1.

In some examples, the MTT depth of one or all of the sub-blocks is equal to the MTT depth of the first block plus 1.

In some examples, if the first block is BT divided into sub-blocks, the MTT depth of the sub-blocks is equal to the MTT depth of the first block plus 1.

In some examples, if the first block is divided into sub-blocks by the TT, the MTT depth of the sub-blocks is equal to the MTT depth of the first block plus 1.

In some examples, the MTT depth of one or all of the sub-blocks is equal to the MTT depth of the first block plus K, K being an integer greater than 1.

In some examples, where K ═ 2.

In some examples, K is different for different sub-blocks.

In some examples, K is log2 (size of first block/size of sub-block).

In some examples, the CTT or BT or TT or QT or MTT depth increase is different for different sub-blocks.

In some examples, the depth increase depends on the ratio of the sub-block to the first block.

In some examples, whether and/or how CTT segmentation is applied depends on the color format and/or color components.

In some examples, the color format includes 4:4:4 or 4:2: 0.

In some examples, CTT partitioning may only be applied on the luma component when the luma and chroma coding trees are separated.

In some examples, whether and/or which kind of CTT segmentation to apply is determined based on information signaled from the codec to the decoder.

In some examples, the information includes an indication of at least one of a screen content video, a picture, and a slice group, and the CTT segmentation is enabled when the indication of the at least one of the screen content video, the picture, and the slice group is true.

In some examples, the indication in the slice group header indicates that the current slice group is screen content rather than camera captured content.

In some examples, the information is signaled in at least one of a Video Parameter Set (VPS), a Sequence Parameter Set (SPS), a Picture Parameter Set (PPS), a sequence header, a picture header, a slice group header, a slice header, to indicate whether CTT segmentation can be applied.

In some examples, the information is signaled in at least one of a Video Parameter Set (VPS), a Sequence Parameter Set (SPS), a Picture Parameter Set (PPS), a sequence header, a picture header, a slice group header, a slice header, to indicate which kinds of CTT partitioning may be applied.

In some examples, this information is signaled in a block to indicate whether CTT segmentation can be applied.

In some examples, this information is signaled in the block to indicate which kinds of CTT segmentation may be applied.

In some examples, an index of the partition type is signaled in the block to indicate whether the block is partitioned or not partitioned by QT or CTT.

In some examples, an index of the partition type is signaled in the block to indicate whether the block is partitioned by BT, TT or CTT.

In some examples, the index is conditionally signaled only if at least one of BT, TT, and CTT is valid for the block.

In some examples, the partitioning direction and/or the partitioning pattern is further signaled, the partitioning direction including at least one of a horizontal direction and a vertical direction.

In some examples, the partitioning direction of CTT partitioning is not signaled.

In some examples, a binarization code is signaled in the block to indicate which segmentation to use, the segmentation being selected from the group of BT, TT and CTT.

In some examples, the first flag is signaled to indicate whether to use CTTs.

In some examples, how which partition to use is signaled in a block depends on which kinds of partitions are valid for the block.

In some examples, the segmentation candidates from the group of BT, TT and CTT to be signaled depend on previously signaled or derived information.

In some examples, disallowed or invalid partitions cannot be signaled from the encoder to the decoder.

In some examples, if only one of the segmentations from the group of BT, TT and CTT is valid, the binarization code indicating which segmentation to use is not signaled.

In some examples, if only two segmentations from a group of BT, TT and CTT are valid, a flag is signaled to indicate which of the two valid segmentations is used.

In some examples, the code indicating which partition from the group of BT, TT and CTT is binarized into a truncated unary code.

In some examples, the maximum value of the truncated unary code is N1, where N is the number of valid partitions from the group of BT, TT, and CTT.

In some examples, invalid partitions are skipped when building the codeword table.

In some examples, if no CTT segmentation is valid, a flag indicating whether to use CTTs is not signaled and is inferred to be false.

In some examples, if only CTT segmentation is valid, no information is signaled and valid CTT segmentation is used implicitly.

In some examples, the binarization and/or signaling methods are not changed depending on which kind of segmentation in the block is valid.

In some examples, one or more binary bits of a binary string used to indicate the partition type are coded by an arithmetic coding having one or more contexts.

In some examples, only a portion of the bins of the bin string are coded in context, and the remaining bins are coded in bypass mode.

In some examples, all of the bins of the bin string are coded in the context.

In some examples, all the bins of the bin string are coded in bypass mode.

In some examples, one or more contexts are used for bits that are coded with a context.

In some examples, the context depends on at least one of:

(a) the position or index of the binary bit;

(b) partitioning spatial domain/temporal neighboring blocks;

(c) a current segmentation depth including at least one of a QT depth, a BT depth, a TT depth, a CTT depth, and a MTT depth of the first block;

(d) partition depths of the spatial/temporal neighboring blocks and/or the spatial/temporal non-neighboring blocks of the first block, including at least one of a QT depth, a BT depth, a TT depth, a CTT depth, and a MTT depth;

(e) coding and decoding modes of spatial/temporal neighboring blocks of the first block;

(f) the width/height of a spatial/temporal neighbor block of the first block;

(g) width/height of the first block;

(h) slice type/picture type/slice group type;

(i) a color component;

(j) statistics of partition types from previous codec blocks.

In some examples, CTT partitioning is disabled if one of the sub-blocks spans more than one Virtual Pipeline Data Unit (VPDU).

In some examples, CTT partitioning is disabled if the width W and/or height H of the first block satisfies a predetermined condition.

In some examples, CTT partitioning is disabled if W > -T1 and H > -T2, with T1 and T2 being integers.

In some examples, CTT partitioning is disabled if W > -T1 or H > -T2, with T1 and T2 being integers.

In some examples, if W < ═ T1 and H < ═ T2, CTT segmentation is disabled, T1 and T2 are integers.

In some examples, CTT segmentation is disabled if W < ═ T1 or H < ═ T2, T1 and T2 are integers.

In some examples, CTT partitioning is disabled if W × H < ═ T, T being an integer.

In some examples, CTT partitioning is disabled if W × H > ═ T, T being an integer.

In some examples, T1 and T2 are signaled or parsed in at least one of a VPS, SPS, PPS, picture header, slice group header, and slice header.

In some examples, the T is signaled or parsed in at least one of a VPS, SPS, PPS, picture header, slice group header, and slice header.

In some examples, T1 and T2 depend on the color component.

In some examples, T depends on the color component.

In some examples, T1 and T2 are different for luma and chroma components.

In some examples, T is different for luma and chroma components.

In some examples, T1 and T2 depend on whether the luma codec tree and the chroma codec tree are separate.

In some examples, T depends on whether the luma codec tree and the chroma codec tree are separate.

In some examples, T1 and T2 are different for luma and chroma components if the luma codec tree and the chroma codec tree are separate.

In some examples, T is different for luma and chroma components if the luma codec tree and the chroma codec tree are separate.

In some examples, CTT partitioning is disabled when a transform is not supported for at least one of the sub-blocks generated by the CTT partitioning.

In some examples, the CTT segmentation is disabled when the depth of the first block exceeds an allowed depth of the CTT segmentation.

In some examples, CTT partitioning is disabled when any sub-block size due to CTT partitioning exceeds an allowed block size.

In some examples, CTT partitioning is disabled when horizontal or vertical TT is not allowed.

In some examples, CTT partitioning is enabled if the width W and/or height H of the first block satisfies a predetermined condition.

In some examples, CTT partitioning is enabled if W > -T1 and H > -T2, T1 and T2 being integers.

In some examples, CTT partitioning is enabled if W > -T1 or H > -T2, with T1 and T2 being integers.

In some examples, CTT partitioning is enabled if W < ═ T1 and H < ═ T2, T1 and T2 are integers.

In some examples, CTT segmentation is enabled if W < ═ T1 or H < ═ T2, T1 and T2 are integers.

In some examples, CTT partitioning is enabled if W × H < ═ T, T being an integer.

In some examples, CTT partitioning is enabled if W × H > ═ T, T being an integer.

In some examples, T1 and T2 are signaled or parsed in at least one of a VPS, SPS, PPS, picture header, slice group header, and slice header.

In some examples, T is signaled or parsed in at least one of VPS, SPS, PPS, picture header, slice group header, and slice header.

In some examples, T1 and T2 depend on the color component.

In some examples, T depends on the color component.

In some examples, T1 and T2 are different for luma and chroma components.

In some examples, T is different for luma and chroma components.

In some examples, T1 and T2 depend on whether the luma codec tree and the chroma codec tree are separate.

In some examples, T depends on whether the luma codec tree and the chroma codec tree are separate.

In some examples, T1 and T2 are different for luma and chroma components if the luma codec tree and the chroma codec tree are separate.

In some examples, T is different for luma and chroma components if the luma codec tree and the chroma codec tree are separate.

In some examples, the CTT partitioning is disabled if a partition depth of the first block satisfies a predetermined condition, the partition depth of the first block including at least one of a QT partition depth, a BT partition depth, a TT partition depth, a CTT partition depth, and a MTT partition depth of the first block.

In some examples, CTT segmentation is disabled if the segmentation depth < ═ T, T being an integer.

In some examples, CTT segmentation is disabled if the segmentation depth > ═ T, T being an integer.

In some examples, CTT partitioning is disabled if the QT partition depth < ═ T, T being an integer.

In some examples, CTT partitioning is disabled if QT partition depth > T, which is an integer.

In some examples, CTT segmentation is disabled if BT segmentation depth < ═ T, T being an integer.

In some examples, CTT segmentation is disabled if BT segmentation depth > ═ T, T being an integer.

In some examples, CTT segmentation is disabled if TT segmentation depth < ═ T, T being an integer.

In some examples, CTT segmentation is disabled if TT segmentation depth > ═ T, T being an integer.

In some examples, CTT segmentation is disabled if CTT segmentation depth < ═ T, T being an integer.

In some examples, CTT segmentation is disabled if CTT segmentation depth > ═ T, T being an integer.

In some examples, CTT segmentation is disabled if the MTT segmentation depth < ═ T, T being an integer.

In some examples, CTT segmentation is disabled if MTT segmentation depth > ═ T, T being an integer.

In some examples, the T is signaled or parsed in at least one of a VPS, SPS, PPS, picture header, slice group header, and slice header.

In some examples, T depends on the color component.

In some examples, T is different for luma and chroma components.

In some examples, T depends on whether the luma codec tree and the chroma codec tree are separate.

In some examples, T is different for luma and chroma components if the luma codec tree and the chroma codec tree are separate.

In some examples, CTT partitioning is enabled if the partition depth of the first block satisfies a predetermined condition, the partition depth of the first block including at least one of a QT partition depth, a BT partition depth, a TT partition depth, a CTT partition depth, and a MTT partition depth of the first block.

In some examples, CTT segmentation is enabled if the segmentation depth < ═ T, T being an integer.

In some examples, CTT segmentation is enabled if the segmentation depth > ═ T, T being an integer.

In some examples, CTT partitioning is enabled if the QT partition depth < ═ T, T being an integer.

In some examples, CTT partitioning is enabled if QT partition depth > ═ T, T being an integer.

In some examples, CTT partitioning is enabled if BT partition depth < ═ T, T being an integer.

In some examples, CTT segmentation is enabled if BT segmentation depth > ═ T, T being an integer.

In some examples, CTT segmentation is enabled if TT segmentation depth < ═ T, T being an integer.

In some examples, CTT segmentation is enabled if TT segmentation depth > ═ T, T being an integer.

In some examples, CTT segmentation is enabled if the CTT segmentation depth < ═ T, T being an integer.

In some examples, CTT segmentation is enabled if CTT segmentation depth > ═ T, T being an integer.

In some examples, CTT segmentation is enabled if the MTT segmentation depth < ═ T, T being an integer.

In some examples, CTT segmentation is enabled if MTT segmentation depth > ═ T, T being an integer.

In some examples, the T is signaled or parsed in at least one of a VPS, SPS, PPS, picture header, slice group header, and slice header.

In some examples, T depends on the color component.

In some examples, T is different for luma and chroma components.

In some examples, T depends on whether the luma codec tree and the chroma codec tree are separate.

In some examples, T is different for luma and chroma components if the luma codec tree and the chroma codec tree are separate.

In some examples, one or more codec tools are disabled in a Codec Unit (CU) generated by CTT partitioning.

In some examples, intra mode is disabled in a Codec Unit (CU) generated by at least one of QT, BT, TT, CTT, and MTT partitioning.

In some examples, inter modes are disabled in a Codec Unit (CU) generated by at least one of QT, BT, TT, CTT, and MTT partitioning.

In some examples, intra block copy mode is disabled in a Codec Unit (CU) generated by at least one of QT, BT, TT, CTT, and MTT partitioning.

In some examples, signaling associated with one or more codec tools is skipped.

In some examples, whether and/or how CTT partitioning is used depends on the location of the first block.

In some examples, whether and how CTT partitioning is used depends on whether the first block crosses a picture boundary or a slice group boundary.

In some examples, CTT partitioning is disabled if the first block crosses a picture right boundary or a slice group right boundary.

In some examples, if a subblock divided by CTT partitioning is completely outside of a picture, or slice group, the subblock may be omitted during the conversion.

In some examples, if subblock portions divided by CTT partitioning are outside a picture, or slice, or group of slices, the portions outside the picture may be omitted during conversion.

In some examples, if the subblock portions divided by the CTT division are outside of a picture, or a slice group, the portions within the picture are further divided.

In some examples, if a subblock portion divided by CTT division is outside a picture, or a slice group, a portion within the picture is coded into a Coding Unit (CU).

In some examples, whether or not to codec a portion within a picture to a CU depends on the width (w) and height (h) of the portion.

In some examples, if w is 2nw,h=2nhAnd coding and decoding the part in the picture into the CU, wherein nw and nh are integers.

In some examples, CTT partitioning is disabled if any subblocks partitioned by CTT partitioning are partially or fully outside of a picture, or slice, or group of slices.

In some examples, when disabling CTT partitioning, signaling is skipped, the signaling indicating use of the CTT mode.

In some examples, the translation generates a first block of the video from the bitstream representation.

In some examples, the transform generates a bitstream representation from a first block of the video.

It will be appreciated that the disclosed techniques may be implemented in a video encoder or decoder to improve compression efficiency using the additional segmentation techniques described herein.

Other aspects, examples, embodiments, modules, and functional operations disclosed and described herein may be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or in combinations of one or more of them. The disclosed embodiments and other embodiments may be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for execution by, or to control the operation of, data processing apparatus. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them. The term "data processing apparatus" encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus.

A computer program (also known as a program, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

The processes and logic flows described herein can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).

Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer does not necessarily have such a device. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD ROM and DVD ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

While this patent document contains many specifics, these should not be construed as limitations on the scope of any subject matter or claims, but rather as descriptions of features specific to particular embodiments of particular technologies. Certain features that are described in this patent document in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, although certain features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.

Also, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. Moreover, the separation of various system components in the embodiments described herein should not be understood as requiring such separation in all embodiments.

Only a few implementations and examples have been described and other implementations, enhancements and variations can be made based on what is described and illustrated in this patent document.

52页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:使用动态网络接口的可互操作的基于云的媒体处理

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类