Patent ID: 8144778

Claim:
A method of converting an input video sequence at a first frame rate to an output video sequence at a second frame rate, comprising the steps of: obtaining a current video frame and a previous video frame from the input video sequence; generating a first motion field comprising a first plurality of motion vectors that predict the trajectories of blocks moving from the previous video frame to the current video frame; generating a second motion field from the first motion field, the second motion field comprising a second plurality of motion vectors that predict the trajectories of blocks moving between the previous video frame and an interpolated video frame and moving between the interpolated video frame and the current video frame; and constructing an interpolated video frame from pixel data in the current and previous video frames and from the second plurality of motion vectors; wherein generating the first motion field comprises the steps of: partitioning the current video frame into a plurality of blocks; and for each of the plurality of blocks in the current video frame, identifying a search area in the previous video frame, and analyzing a plurality of blocks within the search area to select a motion vector that best estimates the movement of the block in the current video frame, wherein the motion vector is selected based on i) a sum of pixel-level absolute differences between the block within the search area and the block in the current video frame, ii) a temporal bias value that represents a temporal correlation between a candidate motion vector within the search area and a previous motion field, and iii) a spatial bias value that represents a spatial correlation between a candidate motion vector within the search area and the motion vectors associated with neighboring blocks within the current video frame; wherein computation of the temporal bias value comprises the steps of: determining an activity value for the block in the current video frame; identifying a block in the previous video frame that is either i) co-located with the block in the current video frame, or ii) pointed to by the candidate motion vector within the search area; determining a difference value between the candidate motion vector within the search area and a motion vector associated with the block in the previous video frame; and computing the temporal bias value using the activity value and the difference value.