Patent ID: 7366237

Claim:
A device comprising: a candidate selector that is capable of accepting a current macroblock, the candidate selector adapted to select a motion vector candidate from a set of motion vector candidates with regard to the current macroblock using an accuracy indicator corresponding to the selected motion vector candidate; a refinement case ascertainer that is capable of accepting the selected motion vector candidate and the accuracy indicator corresponding thereto, the refinement case ascertainer adapted to ascertain a refinement case from among a plurality of refinement cases based on a first threshold and a second threshold and responsive to the accuracy indicator, wherein the plurality of refinement cases comprises a first case, a second case, and a third case, and wherein the refinement case ascertainer is configured to implement the following selection criteria: if the accuracy indicator is less than the first threshold, then the first case is ascertained; if the first threshold is less than the accuracy indicator which is less than the second threshold, then the second case is ascertained; and if the accuracy indicator is greater than the second threshold, then the third case is ascertained; and a refinement case analyzer that is capable of accepting the ascertained refinement case, the refinement case analyzer adapted to analyze a collection of points defined by the ascertained refinement case with regard to the current macroblock to potentially refine the selected motion vector candidate; wherein the refinement case analyzer is adapted (i) to analyze the first case, when ascertained by the refinement case ascertainer, by testing four contiguous points at the selected motion vector candidate on a cross direction, (ii) to analyze the second case, when ascertained by the refinement case ascertainer, by testing eight contiguous points around the selected motion vector candidate, and (iii) to analyze the third case, when ascertained by the refinement case ascertainer, by testing eight points that are round and that are two pixels away from the selected motion vector candidate.