IP Library › Granted Patent US 10,609,423
Granted Patent B2
US 10,609,423 · App. 15/697,134 · Granted Mar 31, 2020

Tree-type coding for video coding

Inventors: Hsiao-Chiang Chuang (San Diego, CA); Xiang Li (San Diego, CA); Jianle Chen (San Diego, CA); Feng Zou (Sunnyvale, CA); Wei-Jung Chien (San Diego, CA); Yi-Wen Chen (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/96H04N19/119H04N19/134H04N19/176H04N19/463H04N19/593
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,609,423
App. No.
15/697,134
Granted
Mar 31, 2020
Kind
B2
Abstract

An example device includes a memory to store the video data, and processing circuitry in communication with the memory. The processing circuitry is configured to compare a value of a dimension of a current block of the stored video data to a value of a corresponding dimension of a neighboring block of the current block to obtain a relative dimension value. The processing circuitry is further configured to determine, based on the relative dimension value, that the current block is to be partitioned according to a prediction tree (PT) portion of a multi-type tree-based partitioning scheme. The PT portion comprises partitioning according to one of a binary tree structure or a center-side triple tree structure. The processing circuitry is further configured to partition, based on the determination, the current block according to the PT portion, to form a plurality of sub-blocks.

Claims (111)

1. A method of coding video data, the method comprising:

comparing a value of a dimension of a current block of the video data to a value of a corresponding dimension of a neighboring block of the current block to obtain a relative dimension value, the neighboring block being positioned adjacent to the current block;

based on the relative dimension value, determining that the current block is to be partitioned according to a prediction tree (PT) portion of a multi-type tree-based partitioning scheme, the multi-type tree-based partitioning scheme including a binary tree structure and a center-side triple tree structure, and the PT portion of the multi-type tree-based partitioning scheme comprising partitioning according to one of the binary tree structure or the center-side triple tree structure; and

based on the determination, partitioning the current block according to the PT portion of the multi-type tree-based partitioning scheme to form a plurality of sub-blocks.

2. The method of claim 1 ,

wherein the neighboring block comprises an above-neighboring block that is positioned above the current block,

wherein comparing the value of the dimension of the current block to the value of the corresponding dimension of the above-neighboring block comprises comparing, based on the neighboring block comprising the above-neighboring block that is positioned above the current block, a width of the current block to a width of the above-neighboring block, and

wherein partitioning the current block comprises vertically partitioning the current block.

3. The method of claim 1 ,

wherein the neighboring block comprises a left-neighboring block that is positioned left of the current block,

wherein comparing the dimension of the current block to the corresponding dimension of the left-neighboring block comprises comparing, based on the neighboring block comprising the left-neighboring block that is positioned left of the current block, a height of the current block to a height of the left-neighboring block, and

wherein partitioning the current block comprises horizontally partitioning the current block.

4. The method of claim 1 ,

wherein the neighboring block is a diagonally-neighboring block that comprises one of:

an above-left neighboring block that is positioned above and left of the current block,

an above-right neighboring block that is positioned above and right of the current block, or

a below-left neighboring block that is positioned below and right of the current block, and

wherein comparing the value of the dimension of the current block to the value of the corresponding dimension of the diagonally-neighboring block comprises comparing, based on the neighboring block being the diagonally-neighboring block, an area of the current block to an area of the above-neighboring block.

5. The method of claim 1 , further comprising selecting the neighboring block from one of:

(i) a plurality of above-neighboring blocks that includes a first above-neighboring block that is positioned above a leftmost 4×4 sub-block along a top boundary of the current block, a second above-neighboring block that is positioned above a middle 4×4 sub-block along the top boundary of the current block, and a third above-neighboring block that is positioned above a rightmost 4×4 sub-block along the top boundary of the current block, or

(ii) a plurality of left-neighboring blocks that includes a first left-neighboring block that is positioned left of a top 4×4 sub-block along a left boundary of the current block, a second left-neighboring block that is positioned left of a middle 4×4 sub-block along the left boundary of the current block, and a third left-neighboring block that is positioned left of a bottom 4×4 sub-block along the left boundary of the current block.

6. The method of claim 5 , wherein the method of coding the video data comprises a method of decoding encoded video data, the method further comprising:

decoding one or more sub-blocks of the plurality of sub-blocks.

7. The method of claim 6 , the method further comprising:

receiving, in an encoded video bitstream, at least one of a sequence parameter set (SPS), a picture parameter set (PPS), or a slice header (SH); and

decoding, from the received SPS, PPS, or SH, an indication of the selected neighboring block for one or more blocks in a unit of the video data that corresponds to the respective one of the SPS, PPS, or SH.

8. The method of claim 5 , wherein the method of coding comprises a method of encoding the video data, the method further comprising:

encoding the plurality of sub-blocks; and

signaling encoded video data representing the encoded plurality of sub-blocks in an encoded video bitstream.

9. The method of claim 8 , the method further comprising:

signaling, in one of a sequence parameter set (SPS), a picture parameter set (PPS), or a slice header (SH), an indication of the selected neighboring block for one or more blocks in a unit of the video data that corresponds to the respective one of the SPS, PPS, or SH.

10. The method of claim 5 , further comprising:

comparing a width of the current block to a height of the current block to determine a shape of the current block,

wherein selecting the neighboring block comprises selecting the neighboring block from one of the plurality of left-neighboring blocks or the plurality of above-neighboring blocks based on the determined shape of the current block.

11. The method of claim 1 , wherein the method of coding the video data comprises a method of decoding encoded video data, the method further comprising:

comparing at least one of a width of the current block or a height of the current block, respectively, to at least one of a predetermined minimum width for the current block or a predetermined minimum height for the current block; and

determining at least one of a tree type for partitioning the current block or a partitioning direction for partitioning the current block based on the comparison.

12. The method of claim 1 , wherein the current block is a current coding unit (CU), wherein the method of coding the video data comprises a method of decoding encoded video data, the method further comprising:

determining that a coding tree unit (CTU) of the video data spans a picture boundary such that a size of the CTU extends beyond a padding region of a current picture; and

based on the CTU spanning the picture boundary, recursively partitioning the CTU using a predetermined partitioning scheme of the multi-type tree structure to form a plurality of coding units (CUs) that includes the current CU,

wherein the current CU is positioned entirely within the current picture.

13. The method of claim 1 , wherein the method of coding comprises a method of encoding the video data, the method further comprising:

assigning a respective codeword of a plurality of codewords to a respective direction-tree type combination of a plurality of direction-tree type combinations for partitioning the current block,

wherein the plurality of direction-tree type combinations includes a horizontal-binary tree combination, a vertical-binary tree combination, a horizontal center-side-triple tree combination, and a vertical center-side triple tree combination, and

wherein partitioning the current block according to the PT portion of the multi-type tree-based partitioning scheme comprises partitioning the current block according to a particular direction-tree type combination included in the plurality of direction-tree type combinations; and

signaling, in an encoded video bitstream, the respective codeword assigned to the particular direction-tree type combination according to which the current block is partitioned.

14. The method of claim 1 , wherein determining that the current block is to be partitioned according to the prediction tree (PT) portion of the multi-type tree-based partitioning scheme comprises determining a value of a flag indicative of the multi-type tree-based partitioning scheme using context dependent entropy coding and a context that is determined based on the relative dimension value.

15. The method of claim 14 , wherein determining that the current block is to be partitioned according to the prediction tree (PT) portion of the multi-type tree-based partitioning scheme comprises:

determining a first context for decoding a first flag indicating whether the block is to be split;

determining, based on the relative dimension value, a second context for decoding a second flag indicating whether the block is to be split vertically or horizontally;

determining a third context for decoding a third flag indicating into which type of structure the block is to be split; and

coding values of the first flag, second flag, and third flag based on the first context, second context, and third context, respectively.

16. The method of claim 15 , wherein determining the third context comprises determining the third context based on the relative dimension value.

17. The method of claim 15 , wherein determining the first context comprises determining the first context based on a comparison of the value of the dimension of the current block and the value of the corresponding dimension of the neighboring block.

18. A device for coding video data, the device comprising:

a memory configured to store the video data; and

processing circuitry in communication with the memory, the processing circuitry being configured to:

compare a value of a dimension of a current block of the stored video data to a value of a corresponding dimension of a neighboring block of the current block to obtain a relative dimension value, the neighboring block being positioned adjacent to the current block;

determine, based on the relative dimension value, that the current block is to be partitioned according to a prediction tree (PT) portion of a multi-type tree-based partitioning scheme, the multi-type tree-based partitioning scheme including a binary tree structure and a center-side triple tree structure, and the PT portion of the multi-type tree-based partitioning scheme comprising partitioning according to one of the binary tree structure or the center-side triple tree structure; and

partition, based on the determination, the current block according to the PT portion of the multi-type tree-based partitioning scheme to form a plurality of sub-blocks.

19. The device of claim 18 ,

wherein the neighboring block comprises an above-neighboring block that is positioned above the current block,

wherein to compare the value of the dimension of the current block to the value of the corresponding dimension of the above-neighboring block, the processing circuitry is configured to compare, based on the neighboring block comprising the above-neighboring block that is positioned above the current block, a width of the current block to a width of the above-neighboring block, and

wherein to partition the current block, the processing circuitry is configured to vertically partition the current block.

20. The device of claim 18 ,

wherein the neighboring block comprises a left-neighboring block that is positioned left of the current block,

wherein to compare the dimension of the current block to the corresponding dimension of the left-neighboring block, the processing circuitry is configured to compare, based on the neighboring block comprising the left-neighboring block that is positioned left of the current block, a height of the current block to a height of the left-neighboring block, and

wherein to partition the current block, the processing circuitry is configured to horizontally partition the current block.

21. The device of claim 18 ,

wherein the neighboring block is a diagonally-neighboring block that comprises one of:

an above-left neighboring block that is positioned above and left of the current block,

an above-right neighboring block that is positioned above and right of the current block, or

a below-left neighboring block that is positioned below and right of the current block, and

wherein to compare the value of the dimension of the current block to the value of the corresponding dimension of the diagonally-neighboring block, the processing circuitry is configured to compare, based on the neighboring block being the diagonally-neighboring block, an area of the current block to an area of the above-neighboring block.

22. The device of claim 18 , wherein the processing circuitry is further configured to select the neighboring block from one of:

(i) a plurality of above-neighboring blocks that includes a first above-neighboring block that is positioned above a leftmost 4×4 sub-block along a top boundary of the current block, a second above-neighboring block that is positioned above a middle 4×4 sub-block along the top boundary of the current block, and a third above-neighboring block that is positioned above a rightmost 4×4 sub-block along the top boundary of the current block, or

(ii) a plurality of left-neighboring blocks that includes a first left-neighboring block that is positioned left of a top 4×4 sub-block along a left boundary of the current block, a second left-neighboring block that is positioned left of a middle 4×4 sub-block along the left boundary of the current block, and a third left-neighboring block that is positioned left of a bottom 4×4 sub-block along the left boundary of the current block.

23. The device of claim 22 , wherein the device comprises a device for decoding encoded video data, and wherein the processing circuitry is further configured to:

decode one or more sub-blocks of the plurality of sub-blocks.

24. The device of claim 23 , further comprising communication hardware,

wherein the processing circuitry is further configured to:

receive, via the communication hardware, in an encoded video bitstream, at least one of a sequence parameter set (SPS), a picture parameter set (PPS), or a slice header (SH); and

decode, from the received SPS, PPS, or SH, an indication of the selected neighboring block for one or more blocks in a unit of the video data that corresponds to the respective one of the SPS, PPS, or SH.

25. The device of claim 22 , wherein the device comprises a device for encoding the video data, and wherein the processing circuitry is further configured to:

encoding the plurality of sub-blocks.

26. The device of claim 22 , wherein the device further comprises communication hardware, and wherein the processing circuitry is further configured to:

signal, via the communication hardware, encoded video data representing the encoded plurality of sub-blocks in an encoded video bitstream;

signal, via the communication hardware, in one of a sequence parameter set (SPS), a picture parameter set (PPS), or a slice header (SH), an indication of the selected neighboring block for one or more blocks in a unit of the video data that corresponds to the respective one of the SPS, PPS, or SH.

27. The device of claim 22 , wherein the processing circuitry is further configured to:

compare width of the current block to a height of the current block to determine a shape of the current block,

wherein to select the neighboring block, the processing circuitry is configured to select the neighboring block from one of the plurality of left-neighboring blocks or the plurality of above-neighboring blocks based on the determined shape of the current block.

28. The device of claim 18 , wherein the device comprises a device for encoding the video data, and wherein the processing circuitry is further configured to:

compare at least one of a width of the current block or a height of the current block, respectively, to at least one of a predetermined minimum width for the current block or a predetermined minimum height for the current block; and

determine at least one of a tree type for partitioning the current block or a partitioning direction for partitioning the current block based on the comparison.

29. The device of claim 18 , wherein the current block is a current coding unit (CU), wherein the device comprises a device for decoding encoded video data, and wherein the processing circuitry is further configured to:

determine that a coding tree unit (CTU) of the video data spans a picture boundary such that a size of the CTU extends beyond a padding region of a current picture; and

based on the CTU spanning the picture boundary, recursively partition the CTU using a predetermined partitioning scheme of the multi-type tree structure to form a plurality of coding units (CUs) that includes the current CU,

wherein the current CU is positioned entirely within the current picture.

30. The device of claim 18 , wherein the device comprises a device for encoding the video data, wherein the device further comprises communication hardware, and wherein the processing circuitry is further configured to:

assign a respective codeword of a plurality of codewords to a respective direction-tree type combination of a plurality of direction-tree type combinations for partitioning the current block,

wherein the plurality of direction-tree type combinations includes a horizontal-binary tree combination, a vertical-binary tree combination, a horizontal center-side-triple tree combination, and a vertical center-side triple tree combination, and

wherein to partition the current block according to the PT portion of the multi-type tree-based partitioning scheme, the processing circuitry is configured to partition the current block according to a particular direction-tree type combination included in the plurality of direction-tree type combinations; and

signal, via the communication hardware, in an encoded video bitstream, the respective codeword assigned to the particular direction-tree type combination according to which the current block is partitioned.

31. The device of claim 18 , wherein to determine that the current block is to be partitioned according to the prediction tree (PT) portion of the multi-type tree-based partitioning scheme, the processing circuitry is further configured to determine a value of a flag indicative of the multi-type tree-based partitioning scheme using context dependent entropy coding and a context that is determined based on the relative dimension value.

32. The device of claim 31 , wherein to determine that the current block is to be partitioned according to the prediction tree (PT) portion of the multi-type tree-based partitioning scheme, the processing circuitry is further configured to:

determine a first context for decoding a first flag indicating whether the block is to be split;

determine, based on the relative dimension value, a second context for decoding a second flag indicating whether the block is to be split vertically or horizontally;

determine a third context for decoding a third flag indicating into which type of structure the block is to be split; and

code values of the first flag, second flag, and third flag based on the first context, second context, and third context, respectively.

33. The device of claim 32 , wherein to determine the third context, the processing circuitry is further configured to determine the third context based on the relative dimension value.

34. The device of claim 32 , wherein to determine the first context, the processing circuitry is further configured to determine the first context based on a comparison of the value of the dimension of the current block and the value of the corresponding dimension of the neighboring block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2017
From: CHUANG, HSIAO-CHIANG; LI, XIANG; CHEN, JIANLE; ZOU, FENG; CHIEN, WEI-JUNG; CHEN, YI-WEN; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 043870/0768 →
Continuity (2)
Provisional Application 62384585 · Sep 7, 2016
Related Publication 20180070110A1 · Mar 8, 2018
Cited By (9)
US 12,238,346 US 12,348,760 US 12,363,337 US 12,432,355 US 12,477,106 US 12,537,938 US 12,563,194 US 12,632,997 US 12,647,599