IP Library › Granted Patent US 11,178,427
Granted Patent B2
US 11,178,427 · App. 16/783,748 · Granted Nov 16, 2021

Dynamic sub-partition intra prediction for video coding

Inventors: Luong Pham Van (San Diego, CA); Adarsh Krishnan Ramasubramonian (Irvine, CA); Geert Van der Auwera (Del Mar, CA); Marta Karczewicz (San Diego, CA)
Assignee: Qualcomm Incorporated
H04N19/593H04N19/147H04N19/176
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 11,178,427
App. No.
16/783,748
Granted
Nov 16, 2021
Kind
B2
Abstract

An example device for coding (encoding or decoding) video data includes a memory configured to store video data; and one or more processors implemented in circuitry and configured to: partition a coding unit (CU) of video data into sub-blocks, the sub-blocks being arranged into a number of rows and a number of columns, the number of rows being greater than 1 and the number of columns being greater than 1; form intra-prediction blocks for each of the sub-blocks; and code the CU using the intra-prediction blocks.

Claims (491)

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

partitioning a coding unit (CU) of video data into sub-blocks, the sub-blocks being arranged into a number of rows and a number of columns, the number of rows being greater than 1 and the number of columns being greater than 1;

determining a first intra-prediction mode for a first one of the sub-blocks as being the same as an intra-prediction mode for a first control point block to the CU having a closest distance between a representative sample of the first one of the sub-blocks and the first control point block;

determining a second intra-prediction mode for a second one of the sub-blocks as being the same as an intra-prediction mode for a second control point block to the CU having a closest distance between a representative sample of the second one of the sub-blocks and the second control point block;

forming intra-prediction blocks for each of the sub-blocks, comprising forming a first intra-prediction block for the first one of the sub-blocks using the first intra-prediction mode and forming a second intra-prediction block for the second one of the sub-blocks using the second intra-prediction mode; and

coding the CU using the intra-prediction blocks.

2. The method of claim 1 , wherein partitioning the CU comprises preventing partitioning of one of the sub-blocks of the CU when partitioning of the one of the sub-blocks into child sub-blocks would cause the child sub-blocks to have fewer than a threshold number of samples.

3. The method of claim 1 , further comprising determining the number of rows and the number of columns such that the number of rows times the number of columns is greater than or equal to a threshold.

4. The method of claim 1 , wherein a size of the sub-blocks is greater than a threshold.

5. The method of claim 1 , wherein a size of the sub-blocks is less than a threshold.

6. The method of claim 1 , wherein a size of the sub-blocks is equal to a width of the sub-blocks times a height of the sub-blocks.

7. The method of claim 1 , wherein a size of the sub-blocks is equal to a width of the sub-blocks plus a height of the sub-blocks.

8. The method of claim 1 , further comprising determining the number of rows and the number of columns according to an intra-prediction mode used to form the intra-prediction blocks.

9. The method of claim 8 , wherein determining the number of rows and the number of columns comprises determining the number of rows to be 2 and the number of columns to be 2 when the intra-prediction mode is a non-angular intra-prediction mode.

10. The method of claim 9 , wherein the non-angular intra-prediction mode comprises one of DC mode or planar mode.

11. The method of claim 1 , wherein the CU comprises a first CU, the method further comprising partitioning a second CU to have exactly one column of sub-blocks when the second CU is predicted using a horizontal intra-prediction mode.

12. The method of claim 11 , wherein the horizontal intra-prediction mode is either exactly horizontal or is within a threshold angle of horizontal.

13. The method of claim 11 , further comprising coding a first syntax element representing that the second CU is partitioned into the sub-blocks without coding data for a second syntax element representing a number of columns for the second CU.

14. The method of claim 1 , wherein the CU comprises a first CU, the method further comprising partitioning a second CU to have exactly one row of sub-blocks when the second CU is predicted using a vertical intra-prediction mode.

15. The method of claim 14 , wherein the vertical intra-prediction mode is either exactly vertical or is within a threshold angle of vertical.

16. The method of claim 14 , further comprising coding a first syntax element representing that the second CU is partitioned into the sub-blocks without coding data for a second syntax element representing a number of rows for the second CU.

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

partitioning a coding unit (CU) of video data into sub-blocks, the sub-blocks being arranged into a number of rows and a number of columns, the number of rows being greater than 1 and the number of columns being greater than 1;

determining a first intra-prediction mode based on intra-prediction modes of one or more control point blocks comprising neighboring blocks to the CU and a first position of a first one of the sub-blocks according to the formula: IPM (x,y) =ax+by+c, wherein IPM(x,y) represents the intra-prediction mode of the sub-block at position (x,y) in the CU, and wherein a, b, and c represent intra-prediction modes of the control point blocks;

determining a second intra-prediction mode based on the intra-prediction modes of the one or more control point blocks and a second position of a second one of the sub-blocks, the second intra-prediction mode being different than the first intra-prediction mode, wherein determining the second intra-prediction mode comprises determining the second intra-prediction mode according to the formula IPM (x,y) =ax+by+c;

forming intra-prediction blocks for each of the sub-blocks, including forming a first intra-prediction block for the first one of the sub-blocks using the first intra-prediction mode and forming a second intra-prediction block for the second one of the sub-blocks using the second intra-prediction mode; and

coding the CU using the intra-prediction blocks.

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

partitioning a coding unit (CU) of video data into sub-blocks, the sub-blocks being arranged into a number of rows and a number of columns, the number of rows being greater than 1 and the number of columns being greater than 1;

determining a first intra-prediction mode based on intra-prediction modes of one or more control point blocks comprising neighboring blocks to the CU and a first position of a first one of the sub-blocks, wherein determining the first intra-prediction mode comprises determining the first intra-prediction mode according to the formula

IPM

(

x

,

y

)

=

(

IPM

ctrp

⁢

⁢

1

-

IPM

ctrp

⁢

⁢

0

)

width

⁢

x

+

(

IPM

ctrp

⁢

⁢

2

-

IPM

ctrp

⁢

⁢

0

)

height

⁢

y

+

IPM

ctrp

⁢

⁢

0

,

wherein IPM(x,y) represents the intra-prediction mode of the height sub-block at position (x,y) in the CU, wherein IPM ctrpN represents the intra-prediction mode of the N th control point, wherein width represents a width of the CU, and wherein height represents a height of the CU;

determining a second intra-prediction mode based on the intra-prediction modes of the one or more control point blocks and a second position of a second one of the sub-blocks, the second intra-prediction mode being different than the first intra-prediction mode, wherein determining the second intra-prediction mode comprises determining the second intra-prediction mode according to the formula

IPM

(

x

,

y

)

=

(

IPM

ctrp

⁢

⁢

1

-

IPM

ctrp

⁢

⁢

0

)

width

⁢

x

+

(

IPM

ctrp

⁢

⁢

2

-

IPM

ctrp

⁢

⁢

0

)

height

⁢

y

+

IPM

ctrp

⁢

⁢

0

;

forming intra-prediction blocks for each of the sub-blocks, including forming a first intra-prediction block for the first one of the sub-blocks using the first intra-prediction mode and forming a second intra-prediction block for the second one of the sub-blocks using the second intra-prediction mode; and

coding the CU using the intra-prediction blocks.

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

partitioning a coding unit (CU) of video data into sub-blocks, the sub-blocks being arranged into a number of rows and a number of columns, the number of rows being greater than 1 and the number of columns being greater than 1;

determining a first intra-prediction mode for a first one of the sub-blocks and determining a second intra-prediction mode for a second one of the sub-blocks according to the formula

Ang

⁡

(

IPM

(

x

,

y

)

)

=

(

Ang

⁡

(

IPM

ctrp

⁢

⁢

1

)

-

Ang

⁡

(

IPM

ctrp

⁢

⁢

0

)

)

width

⁢

x

+

(

Ang

⁡

(

IPM

ctrp

⁢

⁢

2

)

-

Ang

⁡

(

IPM

ctrp

⁢

⁢

0

)

)

height

⁢

y

+

Ang

⁡

(

IPM

ctrp

⁢

⁢

0

)

,

wherein Ang(IPM(x,y)) represents an angle of height an intra-prediction mode of a sub-block at position (x,y) in the CU, Ang(IPM ctrpN ) represents an angle of an intra-prediction mode of an N th control point block for the CU, width represents a width of the CU, and height represents a height of the CU;

forming intra-prediction blocks for each of the sub-blocks, including forming a first intra-prediction block for the first one of the sub-blocks using the first intra-prediction mode and forming a second intra-prediction block for the second one of the sub-blocks using the second intra-prediction mode; and

coding the CU using the intra-prediction blocks.

20. The method of claim 1 , further comprising determining the first intra-prediction mode and determining the second intra-prediction mode to be a non-angular mode when one or more of the control point blocks to the CU are predicted using a non-angular mode.

21. The method of claim 1 , wherein coding the CU comprises decoding the CU, comprising:

decoding one or more residual blocks for the CU; and

combining the residual blocks with the intra-prediction blocks.

22. The method of claim 1 , wherein coding the CU comprises encoding the CU, comprising:

subtracting the intra-prediction blocks from the CU to form one or more residual blocks; and

encoding the one or more residual blocks.

23. The method of claim 22 , further comprising determining one or more intra-prediction modes for forming the intra-prediction blocks using rate distortion optimization (RDO), and encoding data representing the intra-prediction modes.

24. The method of claim 22 , further comprising determining to encode the CU according to an intra sub-partition (ISP) mode using rate-distortion optimization (RDO), and encoding data indicating that the CU is encoded using the ISP mode.

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

a memory configured to store video data; and

one or more processors implemented in circuitry and configured to:

partition a coding unit (CU) of video data into sub-blocks, the sub-blocks being arranged into a number of rows and a number of columns, the number of rows being greater than 1 and the number of columns being greater than 1;

determine a first intra-prediction mode for a first one of the sub-blocks as being the same as an intra-prediction mode for a first control point block to the CU having a closest distance between a representative sample of the first one of the sub-blocks and the first control point block;

determine a second intra-prediction mode for a second one of the sub-blocks as being the same as an intra-prediction mode for a second control point block to the CU having a closest distance between a representative sample of the second one of the sub-blocks and the second control point block;

form intra-prediction blocks for each of the sub-blocks, wherein to form the intra-prediction blocks, the one or more processors are configured to form a first intra-prediction block for the first one of the sub-blocks using the first intra-prediction mode and form a second intra-prediction block for the second one of the sub-blocks using the second intra-prediction mode; and

code the CU using the intra-prediction blocks.

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

means for partitioning a coding unit (CU) of video data into sub-blocks, the sub-blocks being arranged into a number of rows and a number of columns, the number of rows being greater than 1 and the number of columns being greater than 1;

means for determining a first intra-prediction mode for a first one of the sub-blocks as being the same as an intra-prediction mode for a first control point block to the CU having a closest distance between a representative sample of the first one of the sub-blocks and the first control point block;

means for determining a second intra-prediction mode for a second one of the sub-blocks as being the same as an intra-prediction mode for a second control point block to the CU having a closest distance between a representative sample of the second one of the sub-blocks and the second control point block;

means for forming intra-prediction blocks for each of the sub-blocks, including means for forming a first intra-prediction block for the first one of the sub-blocks using the first intra-prediction mode and means for forming a second intra-prediction block for the second one of the sub-blocks using the second intra-prediction mode; and

means for coding the CU using the intra-prediction blocks.

27. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed, cause a processor to:

partition a coding unit (CU) of video data into sub-blocks, the sub-blocks being arranged into a number of rows and a number of columns, the number of rows being greater than 1 and the number of columns being greater than 1;

determine a first intra-prediction mode for a first one of the sub-blocks as being the same as an intra-prediction mode for a first control point block to the CU having a closest distance between a representative sample of the first one of the sub-blocks and the first control point block;

determine a second intra-prediction mode for a second one of the sub-blocks as being the same as an intra-prediction mode for a second control point block to the CU having a closest distance between a representative sample of the second one of the sub-blocks and the second control point block;

form intra-prediction blocks for each of the sub-blocks, including instructions that cause the processor to form a first intra-prediction block for the first one of the sub-blocks using the first intra-prediction mode and form a second intra-prediction block for the second one of the sub-blocks using the second intra-prediction mode; and

code the CU using the intra-prediction blocks.

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

a memory configured to store video data; and

one or more processors implemented in circuitry and configured to:

partition a coding unit (CU) of video data into sub-blocks, the sub-blocks being arranged into a number of rows and a number of columns, the number of rows being greater than 1 and the number of columns being greater than 1;

determine a first intra-prediction mode based on intra-prediction modes of one or more control point blocks comprising neighboring blocks to the CU and a first position of a first one of the sub-blocks according to the formula: IPM (x,y) =ax+by+c, wherein IPM(x,y) represents the intra-prediction mode of the sub-block at position (x,y) in the CU, and wherein a, b, and c represent intra-prediction modes of the control point blocks;

determine a second intra-prediction mode based on the intra-prediction modes of the one or more control point blocks and a second position of a second one of the sub-blocks , the second intra-prediction mode being different than the first intra-prediction mode, wherein determining the second intra-prediction mode comprises determining the second intra-prediction mode according to the formula IPM (x,y) =ax+by+c;

form intra-prediction blocks for each of the sub-blocks, including forming a first intra-prediction block for the first one of the sub-blocks using the first intra-prediction mode and forming a second intra-prediction block for the second one of the sub-blocks using the second intra-prediction mode; and

code the CU using the intra-prediction blocks.

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

a memory configured to store video data; and

one or more processors implemented in circuitry and configured to:

partition a coding unit (CU) of video data into sub-blocks, the sub-blocks being arranged into a number of rows and a number of columns, the number of rows being greater than 1 and the number of columns being greater than 1;

determine a first intra-prediction mode based on intra-prediction modes of one or more control point blocks comprising neighboring blocks to the CU and a first position of a first one of the sub-blocks, wherein determining the first intra-prediction mode comprises determining the first intra-prediction mode according to the formula

IPM

(

x

,

y

)

=

(

IPM

ctrp

⁢

⁢

1

-

IP

ctrp

⁢

⁢

0

)

width

⁢

x

+

(

IPM

c

⁢

t

⁢

r

⁢

p

⁢

2

-

IPM

c

⁢

t

⁢

r

⁢

p

)

height

⁢

y

+

IPM

c

⁢

t

⁢

r

⁢

p

,

wherein IPM(x,y) represents the intra-prediction mode of the sub-block at position (x,y) in the CU, wherein IPMctrpN represents the intra-prediction mode of the Nth control point, wherein width represents a width of the CU, and wherein height represents a height of the CU;

determine a second intra-prediction mode based on the intra-prediction modes of the one or more control point blocks and a second position of a second one of the sub-blocks, the second intra-prediction mode being different than the first intra-prediction mode, wherein determining the second intra-prediction mode comprises determining the second intra-prediction mode according to the formula

IPM

(

x

,

y

)

=

(

IP

⁢

M

c

⁢

t

⁢

r

⁢

p

⁢

1

-

IP

⁢

M

c

⁢

t

⁢

r

⁢

p

⁢

0

)

width

⁢

x

+

(

IPM

c

⁢

t

⁢

r

⁢

p

⁢

2

-

IPM

c

⁢

t

⁢

r

)

height

⁢

y

+

IPM

ctrp0

;

form intra-prediction blocks for each of the sub-blocks, including forming a first intra-prediction block for the first one of the sub-blocks using the first intra-prediction mode and forming a second intra-prediction block for the second one of the sub-blocks using the second intra-prediction mode; and

code the CU using the intra-prediction blocks.

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

a memory configured to store video data; and

one or more processors implemented in circuitry and configured to:

partition a coding unit (CU) of video data into sub-blocks, the sub-blocks being arranged into a number of rows and a number of columns, the number of rows being greater than 1 and the number of columns being greater than 1;

determine a first intra-prediction mode for a first one of the sub-blocks and determining a second intra-prediction mode for a second one of the sub-blocks according to the formula

Ang

⁡

(

IP

⁢

M

(

x

,

y

)

)

=

(

A

⁢

ng

⁡

(

IP

⁢

M

c

⁢

t

⁢

r

)

-

A

⁢

ng

⁡

(

IP

⁢

M

c

⁢

t

⁢

r

)

)

width

⁢

x

+

(

A

⁢

ng

⁡

(

IP

⁢

M

c

⁢

t

⁢

r

⁢

p

⁢

2

)

-

A

⁢

ng

⁡

(

IP

⁢

M

c

⁢

t

⁢

r

⁢

p

⁢

0

)

)

height

⁢

y

+

A

⁢

ng

⁡

(

IP

⁢

M

c

⁢

t

⁢

r

⁢

p

⁢

0

)

,

wherein Ang(IPM(x,y)) represents an angle of an intra-prediction mode of a sub-block at position (x,y) in the CU, Ang(IPMctrpN) represents an angle of an intra-prediction mode of an Nth control point block for the CU, width represents a width of the CU, and height represents a height of the CU;

form intra-prediction blocks for each of the sub-blocks, including forming a first intra-prediction block for the first one of the sub-blocks using the first intra-prediction mode and forming a second intra-prediction block for the second one of the sub-blocks using the second intra-prediction mode; and

code the CU using the intra-prediction blocks.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE FOR THE FIRST INVENTOR PREVIOUSLY RECORDED AT REEL: 052956 FRAME: 0608. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 28, 2020
From: PHAM VAN, LUONG; RAMASUBRAMONIAN, ADARSH KRISHNAN; VAN DER AUWERA, GEERT; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 053910/0544 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: PHAM VAN, LUONG; RAMASUBRAMONIAN, ADARSH KRISHNAN; VAN DER AUWERA, GEERT; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 052956/0608 →
Continuity (2)
Provisional Application 62803209 · Feb 8, 2019
Related Publication 20200260115A1 · Aug 13, 2020