A video decoding method performed by a decoding device, the method comprising: deriving control points, CPs, for a current block; obtaining motion vectors for the CPs; deriving a motion vector on a sample basis in the current block based on the obtained motion vectors for the CPs; deriving a predicted sample for the current block based on the sample-based motion vector; and generating a reconstructed sample for the current block based on the predicted sample, wherein, denoting a coordinate of a bottom-right sample position of the current block as (0, 0), the CPs comprise CP0 located on a coordinate of (0, 0), CP1 located on a coordinate of (0, -S), and CP2 located on a coordinate of (-S, 0), wherein the S represents a width or a height of the current block, wherein the motion vectors for the CPs comprise a motion vector for the CP0, a motion vector for the CP1 and a motion vector for the CP2, wherein the motion vector for the CP1 is obtained based on a first neighboring block group comprising a top-right neighboring block and a top neighboring block, wherein the motion vector for the CP2 is obtained based on a second neighboring block group comprising a bottom-left neighboring block and a left neighboring block, wherein the top neighboring block represents a rightmost block among top neighboring blocks neighboring a top boundary of the current block and the left neighboring block represents a lowest block among left neighboring blocks neighboring to a left boundary of the current block, wherein, when the top neighboring block of the first neighboring block group is available, the motion vector for the CP1 is obtained based on the top neighboring block, and wherein, when the top neighboring block of the first neighboring block group is not available and the top-right neighboring block of the first neighboring block group is available, the motion vector for the CP1 is obtained based on the top-right neighboring block. deriving control points, CPs, for a current block; obtaining motion vectors for the CPs; deriving a motion vector on a sample basis in the current block based on the obtained motion vectors for the CPs; deriving a predicted sample for the current block based on the sample-based motion vector; and generating a reconstructed sample for the current block based on the predicted sample, wherein, denoting a coordinate of a bottom-right sample position of the current block as (0, 0), the CPs comprise CP0 located on a coordinate of (0, 0), CP1 located on a coordinate of (0, -S), and CP2 located on a coordinate of (-S, 0), wherein the S represents a width or a height of the current block, wherein the motion vectors for the CPs comprise a motion vector for the CP0, a motion vector for the CP1 and a motion vector for the CP2, wherein the motion vector for the CP1 is obtained based on a first neighboring block group comprising a top-right neighboring block and a top neighboring block, wherein the motion vector for the CP2 is obtained based on a second neighboring block group comprising a bottom-left neighboring block and a left neighboring block, wherein the top neighboring block represents a rightmost block among top neighboring blocks neighboring a top boundary of the current block and the left neighboring block represents a lowest block among left neighboring blocks neighboring to a left boundary of the current block, wherein, when the top neighboring block of the first neighboring block group is available, the motion vector for the CP1 is obtained based on the top neighboring block, and wherein, when the top neighboring block of the first neighboring block group is not available and the top-right neighboring block of the first neighboring block group is available, the motion vector for the CP1 is obtained based on the top-right neighboring block.