METHOD AND APPARATUS FOR INTER PREDICTION IN VIDEO CODING SYSTEM
A video decoding method performed by a decoding apparatus comprises deriving control points (CPs) for the current block; obtaining motion vectors for the CPs; deriving a motion vector of a sub-block or a sample unit in the current block on the basis of the obtained motion vectors; deriving a prediction sample for the current block on the basis of the derived motion vector; and generating a reconstruction sample on the basis of the prediction sample. The method enables effective performance of inter prediction through the motion vectors (transformation prediction), not only when an image in the current block is moved in a plane, but also when the image in the current block is rotated, zoomed in, zoomed out, or transformed into a parallelogram. Accordingly, the amount of data for the residual signal for the current block can be eliminated or reduced, and the overall coding efficiency can be improved.
1 . A decoding apparatus for image decoding, the decoding apparatus comprising:
a memory; and
at least one processor connected to the memory, the at least one processor configured to:
derive control points (CPs) for a current block;
acquire motion vectors for the CPs;
derive motion vectors sub-blocks in the current block based on the acquired motion vectors;
derive a prediction sample for the current block based on the derived motion vectors; and
generate a reconstructed sample based on the prediction sample,
wherein based on a number of CPs being 3, and a coordinate of CP0 among the CPs are (0, 0), a coordinate of CP1 are (S, 0) and a coordinate of CP2 are (0, S),
wherein a coordinate of a top-left sample position of the current block is (0, 0) and a height and a width of the current block are S,
wherein the acquiring of the motion vectors for the CPs comprises:
deriving motion vector 0 for CP0 based on neighboring block group 0 including an upper left neighboring block, a first left neighboring block and a first upper neighboring block;
deriving motion vector 1 for CP1 based on neighboring block group 1 including an upper right neighboring block and a second upper neighboring block; and
deriving motion vector 2 for CP2 based on neighboring block group 2 including a lower left neighboring block and a second left neighboring block,
wherein it is sequentially determined whether the upper left neighboring block, the first left neighboring block and the first upper neighboring block are available according to a predefined first priority, it is sequentially determined whether the upper right neighboring block and the second upper neighboring block are available according to a predefined second priority, and it is sequentially determined whether the lower left neighboring block and the second left neighboring block are available according to a predefined third priority, and
wherein the first left neighboring block is the uppermost block among left neighboring blocks adjacent to the left boundary of the current block, the first upper neighboring block is the leftmost block among upper neighboring blocks adjacent to the upper boundary of the current block, the second upper neighboring block is the rightmost block among upper neighboring blocks adjacent to the upper boundary of the current block, and the second left neighboring block is the lowermost block among the left neighboring blocks adjacent to the left boundary of the current block.
2 . An encoding apparatus for image encoding, the encoding apparatus comprising:
a memory; and
at least one processor connected to the memory, the at least one processor configured to:
derive control points (CPs) for a current block;
acquire motion vectors for the CPs;
derive motion vectors of sub-blocks in the current block based on the acquired motion vectors;
generate a prediction sample for the current block based on the derived motion vectors; and
encode prediction mode information for the current block and information for the derived motion vector and outputting the encoded information,
wherein based on a number of CPs being 3, and a coordinate of CP0 among the CPs are (0, 0), a coordinate of CP1 are (S, 0) and a coordinate of CP2 are (0, S),
wherein a coordinate of a top-left sample position of the current block is (0, 0) and a height and a width of the current block are S,
wherein the acquiring of the motion vectors for the CPs comprises:
deriving motion vector 0 for CP0 based on neighboring block group 0 including an upper left neighboring block, a first left neighboring block and a first upper neighboring block;
deriving motion vector 1 for CP1 based on neighboring block group 1 including an upper right neighboring block and a second upper neighboring block; and
deriving motion vector 2 for CP2 based on neighboring block group 2 including a lower left neighboring block and a second left neighboring block,
wherein it is sequentially determined whether the upper left neighboring block, the first left neighboring block and the first upper neighboring block are available according to a predefined first priority, it is sequentially determined whether the upper right neighboring block and the second upper neighboring block are available according to a predefined second priority, and it is sequentially determined whether the lower left neighboring block and the second left neighboring block are available according to a predefined third priority, and
wherein the first left neighboring block is the uppermost block among left neighboring blocks adjacent to the left boundary of the current block, the first upper neighboring block is the leftmost block among upper neighboring blocks adjacent to the upper boundary of the current block, the second upper neighboring block is the rightmost block among upper neighboring blocks adjacent to the upper boundary of the current block, and the second left neighboring block is the lowermost block among the left neighboring blocks adjacent to the left boundary of the current block.
3 . An apparatus for transmitting data for an image, the apparatus comprising:
at least one processor configured to obtain a bitstream for the video signal, wherein the bitstream is generated based on deriving control points (CPs) for a current block, acquiring motion vectors for the CPs, deriving motion vectors sub-blocks in the current block based on the acquired motion vectors, deriving a prediction sample for the current block based on the derived motion vectors, and generating a reconstructed sample based on the prediction sample,
a transmitter configured to transmit the data comprising the bitstream,
wherein based on a number of CPs being 3, and a coordinate of CP0 among the CPs are (0, 0), a coordinate of CP1 are (S, 0) and a coordinate of CP2 are (0, S),
wherein a coordinate of a top-left sample position of the current block is (0, 0) and a height and a width of the current block are S,
wherein the acquiring of the motion vectors for the CPs comprises:
deriving motion vector 0 for CP0 based on neighboring block group 0 including an upper left neighboring block, a first left neighboring block and a first upper neighboring block;
deriving motion vector 1 for CP1 based on neighboring block group 1 including an upper right neighboring block and a second upper neighboring block; and
deriving motion vector 2 for CP2 based on neighboring block group 2 including a lower left neighboring block and a second left neighboring block,
wherein it is sequentially determined whether the upper left neighboring block, the first left neighboring block and the first upper neighboring block are available according to a predefined first priority, it is sequentially determined whether the upper right neighboring block and the second upper neighboring block are available according to a predefined second priority, and it is sequentially determined whether the lower left neighboring block and the second left neighboring block are available according to a predefined third priority, and
wherein the first left neighboring block is the uppermost block among left neighboring blocks adjacent to the left boundary of the current block, the first upper neighboring block is the leftmost block among upper neighboring blocks adjacent to the upper boundary of the current block, the second upper neighboring block is the rightmost block among upper neighboring blocks adjacent to the upper boundary of the current block, and the second left neighboring block is the lowermost block among the left neighboring blocks adjacent to the left boundary of the current block.