An inter prediction method performed by a decoding apparatus, the method comprising: deriving a first motion vector predictor, MVP, for a first control point, CP, a second MVP for a second CP and a third MVP for a third CP of a current block based on neighboring blocks of the current block, wherein the first CP is located at a top-left position of the current block, the second CP is located at a top-right position of the current block and the third CP is located at a bottom-left position of the current block; decoding a first motion vector difference, MVD, for the first CP; decoding a difference of two MVDs, DMVD, for the second CP and a DMVD for the third CP; deriving a first motion vector, MV, for the first CP based on the first MVP and the first MVD; deriving a second MV for the second CP based on the second MVP and the DMVD for the second CP; deriving a third MV for the third CP based on the third MVP and the DMVD for the third CP; and generating a predicted block for the current block based on the first MV, the second MV and the third MV, wherein the deriving the second MV for the second CP comprises: deriving a second MVD for the second CP by using the first MVD and the DMVD for the second CP, wherein the DMVD for the second CP is a difference between the first MVD and the second MVD; and deriving the second MV for the second CP by adding the second MVP and the second MVD which is derived based on the DMVD for the second CP, and wherein the deriving the third MV for the third CP comprises: deriving a third MVD for the third CP by using the first MVD and the DMVD for the third CP, wherein the DMVD for the third CP is a difference between the first MVD and the third MVD; and deriving the third MV for the third CP by adding the third MVP and the third MVD which is derived based on the DMVD for the third CP. deriving a first motion vector predictor, MVP, for a first control point, CP, a second MVP for a second CP and a third MVP for a third CP of a current block based on neighboring blocks of the current block, wherein the first CP is located at a top-left position of the current block, the second CP is located at a top-right position of the current block and the third CP is located at a bottom-left position of the current block; decoding a first motion vector difference, MVD, for the first CP; decoding a difference of two MVDs, DMVD, for the second CP and a DMVD for the third CP; deriving a first motion vector, MV, for the first CP based on the first MVP and the first MVD; deriving a second MV for the second CP based on the second MVP and the DMVD for the second CP; deriving a third MV for the third CP based on the third MVP and the DMVD for the third CP; and generating a predicted block for the current block based on the first MV, the second MV and the third MV, wherein the deriving the second MV for the second CP comprises: deriving a second MVD for the second CP by using the first MVD and the DMVD for the second CP, wherein the DMVD for the second CP is a difference between the first MVD and the second MVD; and deriving the second MV for the second CP by adding the second MVP and the second MVD which is derived based on the DMVD for the second CP, and wherein the deriving the third MV for the third CP comprises: deriving a third MVD for the third CP by using the first MVD and the DMVD for the third CP, wherein the DMVD for the third CP is a difference between the first MVD and the third MVD; and deriving the third MV for the third CP by adding the third MVP and the third MVD which is derived based on the DMVD for the third CP. deriving a second MVD for the second CP by using the first MVD and the DMVD for the second CP, wherein the DMVD for the second CP is a difference between the first MVD and the second MVD; and deriving the second MV for the second CP by adding the second MVP and the second MVD which is derived based on the DMVD for the second CP, and wherein the deriving the third MV for the third CP comprises: deriving a third MVD for the third CP by using the first MVD and the DMVD for the third CP, wherein the DMVD for the third CP is a difference between the first MVD and the third MVD; and deriving the third MV for the third CP by adding the third MVP and the third MVD which is derived based on the DMVD for the third CP. deriving a third MVD for the third CP by using the first MVD and the DMVD for the third CP, wherein the DMVD for the third CP is a difference between the first MVD and the third MVD; and deriving the third MV for the third CP by adding the third MVP and the third MVD which is derived based on the DMVD for the third CP.