Adaptive unequal weight planar prediction
View Patent ↗A method of decoding JVET video includes receiving a bitstream that includes encoded video data that includes encoded video data. From the encoded data, a horizontal predictor and a vertical predictor for a pixel in the current coding block may be interpolated. A coding block size may be identified to determine whether to use equal weight or unequal weights to apply to each of the horizontal and vertical predictors for calculating a final planar prediction value P(x,y) by comparing the coding block size to a coding block size threshold.
1. A method for calculating a final planar prediction in planar mode to predict pixel values for a current coding block having height H, width W, and a top-left (TL) pixel within the current coding block is defined by coordinates x=0 and y=0, the method comprising:
receiving a video bitstream including encoded video data;
from the encoded data, interpolating a horizontal predictor and a vertical predictor for a pixel in the current coding block;
identifying a coding block size to determine whether to use equal weight or unequal weights to apply to each of the horizontal and vertical predictors for calculating a final planar prediction value P(x,y) by comparing the coding block size to a coding block size threshold in accordance with:
if the coding block size is larger than the coding block size threshold, calculating the final planar prediction value P(x,y) using unequal weights applied to each of the horizontal and vertical predictors in accordance with P(x,y)=(A(x,y)*P h (x,y)+B(x,y)*P v (x,y)+c(x,y))/(D(x,y)), where A(x,y) and B(x,y) are position dependent weighting factors for the horizontal and vertical predictors, respectively, c(x,y) is a position dependent rounding factor, and D(x,y) is a position dependent scaling factor,
else if the coding block size is smaller than the coding block size threshold, calculating the final planar prediction value P(x,y) using equal weights applied to each of the horizontal and vertical predictors in accordance with P(x,y)=(H*P h (x,y)+W*P v (x,y))/(2*H*W), where W is block width, and H is block height.
2. The method of claim 1 , wherein unequal weights A(x,y) and B(x,y) are assigned for prediction of each pixel within the coding block.
3. The method of claim 1 , wherein unequal weights A(x,y) and B(x,y) are each assigned to a distance ratio from a reliable neighboring pixel for each of the horizontal predictor and the vertical predictor.
4. The method of claim 1 , further comprising applying unequal weights to at least one of the horizontal predictor and/or the vertical predictor.
5. The method of claim 1 , wherein the CU block size also determines whether to apply dimension based weight such that P(x,y) is determined as
P
(
W
,
H
)
=
W
*
R
(
W
,
-
1
)
+
H
*
R
(
-
1
,
H
)
H
+
W
,
where R(x,y) denotes the intensity value of the reconstructed neighboring pixel at (x,y) coordinate.
6. The method of claim 1 , wherein the coding block size is indicated by information in the bitstream.
7. The method of claim 6 , wherein the information in the bitstream includes at least one of: the coding block size, a slice type associated with the coding block size, and/or a number of non-zero quantized coefficients associated with the coding block size.
8. The method of claim 7 , wherein the information in the bistream is signaled via a flag.
9. The method of claim 8 , wherein the information in the bitstream is signaled in at least one of a sequence parameter set (SPS), a picture parameter set (PPS), and/or a slice header.
10. The method of claim 1 , further comprising calculating an intensity value of a bottom right neighboring pixel of the current coding block for use in interpolating the horizontal and vertical predictors, where constructed or reconstructed neighboring pixels form rows of horizontal boundary pixels on an upper side of the current coding block and constructed or reconstructed neighboring pixels form a column of vertical boundary pixels on a left side of the current coding block, the method further comprising:
using the calculated bottom right neighboring pixel value, calculate intensity values for the neighboring pixels in a row along the lower side of the current coding block and in a column along the right side of the current coding block;
calculating the horizontal predictor P h (x,y) and the vertical predictor P v (x,y) for a pixel at coordinate (x,y) in the current coding block by interpolating between corresponding neighboring pixels in neighboring rows and by interpolating between corresponding neighboring pixels in neighboring columns, respectively.