A method, comprising: determining a reference frame for a current block; for each source block of the current block: (a) determining a motion mode of the source block, wherein the source block is a previously coded block coded using the motion mode and a reference frame; responsive to determining that the motion mode of the source block is a translational motion mode and that the reference frame of the source block matches the reference frame for the current block, adding a motion vector used to predict the source block to a reference motion vector candidate list; responsive to determining that the motion mode of the source block is a warped motion mode, wherein the warped motion mode implements a non-translational transformation, and that the reference frame of the source block matches the reference frame for the current block: (i) generating a warped reference motion vector for the current block using parameters of the warped motion mode used to encode the source block; and (ii) adding the warped reference motion vector to the reference motion vector candidate list; and using a reference motion vector from the reference motion vector candidate list to encode or decode a motion vector to predict the current block. determining a reference frame for a current block; for each source block of the current block: (a) determining a motion mode of the source block, wherein the source block is a previously coded block coded using the motion mode and a reference frame; responsive to determining that the motion mode of the source block is a translational motion mode and that the reference frame of the source block matches the reference frame for the current block, adding a motion vector used to predict the source block to a reference motion vector candidate list; responsive to determining that the motion mode of the source block is a warped motion mode, wherein the warped motion mode implements a non-translational transformation, and that the reference frame of the source block matches the reference frame for the current block: (i) generating a warped reference motion vector for the current block using parameters of the warped motion mode used to encode the source block; and (ii) adding the warped reference motion vector to the reference motion vector candidate list; and (a) determining a motion mode of the source block, wherein the source block is a previously coded block coded using the motion mode and a reference frame; responsive to determining that the motion mode of the source block is a translational motion mode and that the reference frame of the source block matches the reference frame for the current block, adding a motion vector used to predict the source block to a reference motion vector candidate list; responsive to determining that the motion mode of the source block is a warped motion mode, wherein the warped motion mode implements a non-translational transformation, and that the reference frame of the source block matches the reference frame for the current block: (i) generating a warped reference motion vector for the current block using parameters of the warped motion mode used to encode the source block; and (ii) adding the warped reference motion vector to the reference motion vector candidate list; and (i) generating a warped reference motion vector for the current block using parameters of the warped motion mode used to encode the source block; and (ii) adding the warped reference motion vector to the reference motion vector candidate list; and using a reference motion vector from the reference motion vector candidate list to encode or decode a motion vector to predict the current block.