IP Library › Patent Application 16684379
Patent Application
App. No. 16/684,379

POSITION-DEPENDENT INTRA-INTER PREDICTION COMBINATION IN VIDEO CODING

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 None
App. No.
16/684,379
Abstract

A device for coding video data includes a processor configured to generate an inter-prediction block and an intra-prediction block for a current block of video data; for each sample of a prediction block to be generated: determine a first weight for the sample according to a position of the sample in the prediction block; determine a second weight for the sample according to the position of the sample in the prediction block; apply the first weight to a sample at the position in the inter-prediction block to generate a weighted inter-prediction sample; apply the second weight to a sample at the position in the intra-prediction block to generate a weighted intra-prediction sample; and calculate a value for the sample at the position in the prediction block using the weighted inter-prediction sample and the weighted intra-prediction sample; and code the current block using the prediction block.

Claims (101)

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

generating an inter-prediction block for a current block of video data;

generating an intra-prediction block for the current block;

generating a prediction block for the current block, comprising, for each sample of the prediction block:

determining a first weight for the sample according to a position of the sample in the prediction block;

determining a second weight for the sample according to the position of the sample in the prediction block;

applying the first weight to a sample at the position in the inter-prediction block to generate a weighted inter-prediction sample;

applying the second weight to a sample at the position in the intra-prediction block to generate a weighted intra-prediction sample; and

calculating a value for the sample at the position in the prediction block using the weighted inter-prediction sample and the weighted intra-prediction sample; and

coding the current block using the prediction block.

2 . The method of claim 1 , wherein for each position, the sum of the first weight and the second weight is equal to an upper bound range value.

3 . The method of claim 2 , wherein the upper bound range value is 32.

4 . The method of claim 1 , wherein generating the intra-prediction block comprises performing position dependent intra prediction combination (PDPC) following intra-prediction to generate the intra-prediction block.

5 . The method of claim 1 , wherein at least two positions correspond to different respective first weights and different respective second weights.

6 . The method of claim 1 , wherein generating the intra-prediction block comprises generating the intra-prediction block to have all zero-valued samples.

7 . The method of claim 1 , wherein calculating the value for the sample comprises executing the function (wB(x,y)×intraPredPDPC(x,y)+(32−wB(x,y)×interPred(x,y)+16)>>5, wherein (x,y) comprises the position of the sample in the prediction block, intraPredPDPC(x,y) comprises the sample at the position in the intra-prediction block, interPred(x,y) comprises the sample at the position in the inter-prediction block, wB(x,y) comprises the first weight, (32−wB(x,y)) comprises the second weight, and ‘>>’ comprises a bitwise right shift operator.

8 . The method of claim 1 , wherein calculating the value for the sample at the position comprises averaging the weighted intra-prediction sample and the weighted inter-prediction sample and blending the average with weighted neighboring reconstructed reference samples of the current block.

9 . The method of claim 8 , wherein calculating the value for the sample at the position comprises executing the function (wL×R x−1,y +wT×R x,y−1 −wTL×R −1,−1 +(64−wL−wT+wTL)×((intrapred(x,y)+interpred(x,y)+1)>>1)+32)>>6, wherein R x−1,y comprises a left-neighboring reconstructed reference sample to the sample at the position in the current block, R x,y−1 comprises an above-neighboring reconstructed reference sample to the sample at the position in the current block, wL comprises a left-neighboring weight, wT comprises an above-neighboring weight, wTL comprises a top-left weight, R −1,−1 comprises a reference sample at a top-left corner of the current block, and ‘>>’ comprises a bitwise right shift operator.

10 . The method of claim 9 , wherein each of wL, wT, and wTL is independent of the position of the sample in the prediction block.

11 . The method of claim 9 , further comprising determining each of wL, wT, and wTL according to the position of the sample in the prediction block.

12 . The method of claim 9 , further comprising determining each of wL, wT, and wTL according to at least one of an intra-prediction mode used to generate the intra-prediction block, an inter-prediction mode used to generate the inter-prediction block, or motion information used to generate the inter-prediction block.

13 . The method of claim 12 , further comprising determining each of wL, wT, and wTL according to the position of the sample in the prediction block.

14 . The method of claim 8 , wherein for each position, the first weight comprises 1 and the second weight comprises 1.

15 . The method of claim 1 , wherein coding the current block comprises encoding the current block, comprising:

generating a residual block representing differences between the current block and the prediction block; and

encoding the residual block.

16 . The method of claim 1 , wherein coding the current block comprises decoding the current block, comprising:

decoding a residual block representing differences between the current block and the prediction block; and

combining samples of the residual block with samples of the prediction block to produce a decoded current block.

17 . 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:

generate an inter-prediction block for a current block of the video data;

generate an intra-prediction block for the current block;

generate a prediction block for the current block, wherein to generate the prediction block, the one or more processors are configured to, for each sample of the prediction block:

determine a first weight for the sample according to a position of the sample in the prediction block;

determine a second weight for the sample according to the position of the sample in the prediction block;

apply the first weight to a sample at the position in the inter-prediction block to generate a weighted inter-prediction sample;

apply the second weight to a sample at the position in the intra-prediction block to generate a weighted intra-prediction sample; and

calculate a value for the sample at the position in the prediction block using the weighted inter-prediction sample and the weighted intra-prediction sample; and

code the current block using the prediction block.

18 . The device of claim 17 , wherein for each position, the sum of the first weight and the second weight is equal to an upper bound range value.

19 . The device of claim 18 , wherein the upper bound range value is 32.

20 . The device of claim 17 , wherein the one or more processors are configured to perform position dependent intra prediction combination (PDPC) following intra-prediction to generate the intra-prediction block.

21 . The device of claim 17 , wherein at least two positions correspond to different respective first weights and different respective second weights.

22 . The device of claim 17 , wherein to calculate the value for the sample, the one or more processors are configured to execute the function (wB(x,y)×intraPredPDPC(x,y)+(32−wB(x,y)×interPred(x,y)+16)>>5, wherein (x,y) comprises the position of the sample in the prediction block, intraPredPDPC(x,y) comprises the sample at the position in the intra-prediction block, interPred(x,y) comprises the sample at the position in the inter-prediction block, wB(x,y) comprises the first weight, (32−wB(x,y)) comprises the second weight, and ‘>>’ comprises a bitwise right shift operator.

23 . The device of claim 17 , wherein to calculate the value for the sample, the one or more processors are configured to average the weighted intra-prediction sample and the weighted inter-prediction sample and blend the average with weighted neighboring reconstructed reference samples of the current block.

24 . The device of claim 23 , wherein to calculate the value for the sample, the one or more processors are configured to execute the function (wL×R x−1,y +wT×R x,y−1 −wTL×R −i,−1 +(64−wL−wT+wTL)×((intrapred(x,y)+interpred(x,y)+1)>>1)+32)>>6, wherein R x−1,y comprises a left-neighboring reconstructed reference sample to the sample at the position in the current block, R x,y−1 comprises an above-neighboring reconstructed reference sample to the sample at the position in the current block, wL comprises a left-neighboring weight, wT comprises an above-neighboring weight, wTL comprises a top-left weight, R −1,−1 comprises a reference sample at a top-left corner of the current block, and ‘>>’ comprises a bitwise right shift operator.

25 . The device of claim 24 , wherein each of wL, wT, and wTL is independent of the position of the sample in the prediction block.

26 . The device of claim 24 , wherein the one or more processors are configured to determine each of wL, wT, and wTL according to the position of the sample in the prediction block.

27 . The device of claim 24 , wherein the one or more processors are configured to determine each of wL, wT, and wTL according to at least one of an intra-prediction mode used to generate the intra-prediction block, an inter-prediction mode used to generate the inter-prediction block, or motion information used to generate the inter-prediction block.

28 . The device of claim 27 , wherein the one or more processors are configured to determine each of wL, wT, and wTL according to the position of the sample in the prediction block.

29 . The device of claim 23 , wherein for each position, the first weight comprises 1 and the second weight comprises 1.

30 . The device of claim 17 , wherein the one or more processors are configured to encode the current block, and wherein to encode the current block, the one or more processors are configured to:

generate a residual block representing differences between the current block and the prediction block; and

encode the residual block.

31 . The device of claim 17 , wherein the one or more processors are configured to decode the current block, and wherein to decode the current block, the one or more processors are configured to:

decode a residual block representing differences between the current block and the prediction block; and

combine samples of the residual block with samples of the prediction block to produce a decoded current block.

32 . The device of claim 17 , further comprising a display configured to display the video data.

33 . The device of claim 17 , wherein the device comprises one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.

34 . The device of claim 17 , wherein the device comprises at least one of:

an integrated circuit;

a microprocessor; or

a wireless communication device.

35 . A device for decoding video data, the device comprising:

means for generating an inter-prediction block for a current block of video data;

means for generating an intra-prediction block for the current block;

means for generating each sample of the prediction block for the current block, comprising:

means for determining a first weight for the sample according to a position of the sample in the prediction block;

means for determining a second weight for the sample according to the position of the sample in the prediction block;

means for applying the first weight to a sample at the position in the inter-prediction block to generate a weighted inter-prediction sample;

means for applying the second weight to a sample at the position in the intra-prediction block to generate a weighted intra-prediction sample; and

means for calculating a value for the sample at the position in the prediction block using the weighted inter-prediction sample and the weighted intra-prediction sample; and

means for coding the current block using the prediction block.

36 . The device of claim 35 , wherein for each position, the sum of the first weight and the second weight is equal to an upper bound range value.

37 . The device of claim 36 , wherein the upper bound range value is 32.

38 . The device of claim 35 , wherein the means for generating the intra-prediction block comprises means for performing position dependent intra prediction combination (PDPC) following intra-prediction to generate the intra-prediction block.

39 . The device of claim 35 , wherein at least two positions correspond to different respective first weights and different respective second weights.

40 . The device of claim 35 , wherein the means for calculating the value for the sample comprises means for executing the function (wB(x,y)×intraPredPDPC(x,y)+(32−wB(x,y)×interPred(x,y)+16)>>5, wherein (x,y) comprises the position of the sample in the prediction block, intraPredPDPC(x,y) comprises the sample at the position in the intra-prediction block, interPred(x,y) comprises the sample at the position in the inter-prediction block, wB(x,y) comprises the first weight, (32−wB(x,y)) comprises the second weight, and ‘>>’ comprises a bitwise right shift operator.

41 . The device of claim 35 , wherein the means for coding the current block comprises means for encoding the current block, comprising:

means for generating a residual block representing differences between the current block and the prediction block; and

means for encoding the residual block.

42 . The device of claim 35 , wherein the means for coding the current block comprises means for decoding the current block, comprising:

means for decoding a residual block representing differences between the current block and the prediction block; and

means for combining samples of the residual block with samples of the prediction block to produce a decoded current block.

43 . A computer-readable storage medium having stored thereon instructions that, when executed, cause a processor of a device for encoding video data to:

generate an inter-prediction block for a current block of video data;

generate an intra-prediction block for the current block;

generate a prediction block for the current block, comprising instructions that cause the processor to, for each sample of the prediction block:

determine a first weight for the sample according to a position of the sample in the prediction block;

determine a second weight for the sample according to the position of the sample in the prediction block;

apply the first weight to a sample at the position in the inter-prediction block to generate a weighted inter-prediction sample;

apply the second weight to a sample at the position in the intra-prediction block to generate a weighted intra-prediction sample; and

calculate a value for the sample at the position in the prediction block using the weighted inter-prediction sample and the weighted intra-prediction sample; and

code the current block using the prediction block.

44 . The computer-readable storage medium of claim 43 , wherein for each position, the sum of the first weight and the second weight is equal to an upper bound range value.

45 . The computer-readable storage medium of claim 44 , wherein the upper bound range value is 32.

46 . The computer-readable storage medium of claim 43 , wherein the instructions that cause the processor to generate the intra-prediction block comprise instructions that cause the processor to perform position dependent intra prediction combination (PDPC) following intra-prediction to generate the intra-prediction block.

47 . The computer-readable storage medium of claim 43 , wherein at least two positions correspond to different respective first weights and different respective second weights.

48 . The computer-readable storage medium of claim 43 , wherein the instructions that cause the processor to calculate the value for the sample comprise instructions that cause the processor to execute the function (wB(x,y)×intraPredPDPC(x,y)+(32−wB(x,y)×interPred(x,y)+16)>>5, wherein (x,y) comprises the position of the sample in the prediction block, intraPredPDPC(x,y) comprises the sample at the position in the intra-prediction block, interPred(x,y) comprises the sample at the position in the inter-prediction block, wB(x,y) comprises the first weight, (32−wB(x,y)) comprises the second weight, and ‘>>’ comprises a bitwise right shift operator.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2020
From: VAN DER AUWERA, GEERT; RAMASUBRAMONIAN, ADARSH KRISHNAN; KARCZEWICZ, MARTA; PHAM VAN, LUONG
To: QUALCOMM INCORPORATED
Reel/Frame 053103/0669 →