1. A method for encoding a video stream, comprising: identifying a plurality of candidate motion vectors, wherein each candidate motion vector from the plurality of candidate motion vectors corresponds with a respective motion vector used to inter predict a respective previously coded block from a plurality of previously coded blocks from a current frame of the video stream; identifying a plurality of reconstructed pixel values, wherein each reconstructed pixel value from the plurality of reconstructed pixel values corresponds to a respective previously coded pixel from a plurality of previously coded pixels from the current frame; identifying a plurality of reference frames wherein at least one of the plurality of reference frames is separated from the current frame within a temporal sequence of the video stream by at least one frame; for each candidate motion vector from the plurality of candidate motion vectors: for each reference frame from the plurality of reference frames: determining a plurality of predicted pixel values from the reference frame, each predicted pixel value from the plurality predicted pixel values spatially corresponding to a respective previously coded pixel from the plurality of previously coded pixels; and determining, using a processor, a respective error value based on a difference between the plurality of reconstructed pixel values and the plurality of predicted pixel values; selecting, based on the error values, a reference motion vector from the plurality of candidate motion vectors; and encoding a motion vector for the current block using the reference motion vector.