1. A method for interpolating frames, the method comprising: obtaining an embedded motion vector for each block within a current frame, the motion vector being embedded in a bitstream; for each block, classifying the associated embedded motion vector as an accurate motion vector or an inaccurate motion vector, the inaccurate motion vector designating the block as a bad block, wherein the classifying is based on determining whether a sum of absolute differences between a current block in a current frame and a previous block in a previous frame and a boundary absolute difference between the current block and the previous block meet a set of thresholds, wherein the current block and the previous block are determined based on an interpolated block and the embedded motion vector associated with a block in the current frame having the same position as the interpolated block within the interpolated frame; for each bad block, performing overlapped block bi-directional motion estimation on the bad block to obtain a new motion vector; assigning the new motion vector to the bad block; and generating an interpolated frame based on the new motion vector for the bad blocks and the embedded motion vector for the other blocks.