A multi-pass method of estimating motion vectors for the interpolation of a frame in a sequence of video frames comprising first frames and second frames by finding a match on one of said second frames for every block of pixels defined on one of said first frames or vice versa, wherein said frame to be interpolated is temporally located between said one first frame and said one second frame, the method comprising the steps of: - adjusting a block size of said one first frame and said one second frame by down-scaling said one first frame and said one second frame, - performing a motion estimation by applying a predictive search to said down-scaled one first and said down-scaled one second frame to assign motion vectors to blocks of pixels of said one first frame or said one second frame according to motion estimation being forward or backward, - detecting outlier motion vectors amongst the assigned motion vectors, - correcting the outlier motion vectors, and - determining a resolution processing level, - repeating the steps of adjusting a block size, performing a motion estimation, detecting outlier motion vectors, correcting the outlier motion vectors, and determining the resolution processing level in second and subsequent passes to prevent error accumulation in the assigned motion vectors if the block size is above a predetermined level, wherein during each of said passes, the block size is decreased by a down-sampling factor and said resolution processing level is changed, characterized in that the step of correcting outlier motion vectors comprises selecting a motion vector from a candidate set (CScorrect) as a candidate motion vector which minimizes a cost function wherein said cost function comprises: - a pixelwise match error when the candidate motion vector is applied to a particular block of pixels; - total deviation of the candidate motion vector from the other motion vectors in the candidate set (CScorrect); - an absolute difference of the mean intensity values of the particular block of pixels and a block of pixels hosting the candidate motion vector; and - a ratio of the number of blocks having outlier motion vectors in a neighbourhood of the block hosting the candidate motion vector, and the total number of blocks in the neighbourhood of the block hosting the candidate motion vector; wherein the candidate set (CScorrect) for motion vector correction is composed of the inlier motion vectors of blocks in a neighbourhood of the block hosting the outlier motion vector which is corrected. - adjusting a block size of said one first frame and said one second frame by down-scaling said one first frame and said one second frame, - performing a motion estimation by applying a predictive search to said down-scaled one first and said down-scaled one second frame to assign motion vectors to blocks of pixels of said one first frame or said one second frame according to motion estimation being forward or backward, - detecting outlier motion vectors amongst the assigned motion vectors, - correcting the outlier motion vectors, and - determining a resolution processing level, - repeating the steps of adjusting a block size, performing a motion estimation, detecting outlier motion vectors, correcting the outlier motion vectors, and determining the resolution processing level in second and subsequent passes to prevent error accumulation in the assigned motion vectors if the block size is above a predetermined level, wherein during each of said passes, the block size is decreased by a down-sampling factor and said resolution processing level is changed, - a pixelwise match error when the candidate motion vector is applied to a particular block of pixels; - total deviation of the candidate motion vector from the other motion vectors in the candidate set (CScorrect); - an absolute difference of the mean intensity values of the particular block of pixels and a block of pixels hosting the candidate motion vector; and - a ratio of the number of blocks having outlier motion vectors in a neighbourhood of the block hosting the candidate motion vector, and the total number of blocks in the neighbourhood of the block hosting the candidate motion vector;