1. A method of providing motion estimation, the method comprising: estimating a first motion vector for a first block in a frame of video using a non-recursive motion estimation technique; estimating a second motion vector, with an integrated circuit, for the first block in the frame of video using the first motion vector and a recursive motion estimation technique; determining an error metric corresponding to the first motion vector and the second motion vector; and selecting the motion vector having the better error metric among the first motion vector and the second motion vector: wherein performing recursive motion estimation includes incorporating the first motion vector into a recursive motion estimation algorithm; and wherein the recursive motion estimation algorithm utilizes the first motion vector and other motion vector(s) drawn from a minimum of one spatial neighboring block, temporal neighboring block, or a combination thereof to determine the second motion vector, the spatio-temporal neighboring blocks including eight blocks surrounding the first block to form a 3×3 grid of blocks, includes: determining an error metric for each of the motion vectors; for each row of blocks in the 3×3 block grid, selecting the motion vector which yields the best error metric for the current first block; combining into a first new motion vector the median values of each of the components of the motion vectors selected in the preceding step; for each column of blocks in the 3×3 block grid, selecting the motion vector which yields the best error metric for the current first block; combining into a second new motion vector the median values of each of the components of the motion vectors selected in the preceding step; determining an error metric for each of the first new motion vector and the second new motion vector; and selecting as the second motion vector the one of the first new motion vector and the second new motion vector having the better error metric.