Position-dependent intra-inter prediction combination in video coding
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
exact text as granted — not AI-modifiedWhat is claimed is:
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.Join the waitlist — get patent alerts
Track US2020162737A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.