1. A method for interpolating an image between first and second adjacent images, comprising: estimating a block-based forward motion vector and a block-based backward motion vector between the first and second adjacent images; selecting a forward motion vector for each pixel in the image based on the block-based forward motion vector and a forward error function; selecting a backward motion vector for each pixel in the image based on the block-based backward motion vector and a backward error function; interpolating a first image from the selected backward motion vectors, the selected forward motion vectors, a block-based forward estimation error, and a block-based backward estimation error; interpolating a second image from the first image based on forward and backward weighted errors of the selected forward motion vector and the selected backward motion vector, and wherein the first image and the second image comprise pixel data, the pixel data comprising chrominance and/or luminance data, wherein interpolating the second image comprises reducing a halo effect, and reducing the halo effect includes: segmenting from local intensity information in a plane of the image, the selected forward motion vector, a corresponding local weighted forward minimum error, and a local sliding segmented window having a plurality of pixel groups of interest for forward motion vectors; segmenting from local intensity information in the plane of the image, the selected backward motion vector, a corresponding local weighted backward minimum error, and a local sliding segmented window having a plurality of pixel groups of interest for backward motion vectors; and determining the image from the second image.