Spatial prediction method, image decoding method, and image coding method
View Patent ↗A spatial prediction method capable of reducing the complexity of spatial prediction includes: detecting an edge (E) overlapping the current block by obtaining a horizontal gradient (Gy) and a vertical gradient (Gx) between pixels within a block adjacent to the current block; calculating an integer slope of the edge; determining, for each pixel position within the current block, a sub-pel position being an intersection between (i) a line that has the integer slope and passes through the pixel position and (ii) a boundary of the adjacent block; and predicting, for each pixel position, a pixel value at the pixel position based on a pixel value interpolated in the sub-pel position, wherein the boundary of the adjacent block is a row or a column that is the closest to the current block, among rows or columns of pixels included in the adjacent block.
1. An image coding method for coding an image per block included in the image, the image coding method comprising:
calculating an integer slope indicating an integer value of a slope, based on at least one of a horizontal gradient and a vertical gradient, the calculating being performed using a processor;
determining, for each of pixel positions within a current block to be coded, a sub-pel position that is an intersection between a line having the integer slope and passing through the pixel position within the current block and a boundary of a block adjacent to the current block, the determining being performed using the processor;
generating a predicted block by predicting, for each of the pixel positions within the current block, a pixel value at the pixel position, based on a pixel value interpolated in the sub-pel position determined for the pixel position, the generating being performed using the processor; and
coding the current block by subtracting the predicted block from the current block, the coding being performed using the processor,
wherein when the integer slope is calculated, a result of a division is obtained with reference to a division table stored in a memory, and the integer slope is calculated using the obtained result of the division, the division using, as a divisor, a value indicating the one of the horizontal gradient and the vertical gradient, the division table indicating, for each predetermined value, a result of a division of a value scaled by a c-th power of 2, using the predetermined value as a divisor, where c is a positive integer, and
when the pixel value is predicted, the pixel value interpolated in the sub-pel position is calculated by multiplying the integer slope generated by scaling by a coordinate value horizontal or vertical to a pixel position to be predicted within the current block, and shifting the multiplied integer slope right by c bits.