Patent ID: 7894526

Claim:
A motion estimation method for estimating, on a block-by-block basis, a motion vector that indicates an amount of motion between pictures that constitute a moving picture, said method comprising: searching through blocks of a reference picture, said searching being repeated for at least two iterations until the estimation of the motion vectors ends, and said searching including i) calculating an error between a current block and a current search center reference block and an error between the current block and each reference block within a search range of the current search center reference block, the current block being included in a current picture on which the motion estimation is performed, and the current search center reference block being included in the reference picture, wherein said calculating is performed using a processor and is performed for each iteration of said searching, ii) determining, from among the current search center reference block and the neighboring reference blocks, a minimum-error block that is a reference block with a smallest error of all the errors calculated in a current iteration of said searching, wherein said determining of the minimum-error block is performed for each iteration of said searching, iii) judging whether or not the motion estimation should be ended, said judging occurring only during second and subsequent iterations of said searching, and not performing another iteration of said searching if it is judged that motion estimation should be ended, wherein the second and subsequent iterations of said searching occur after a first iteration of said searching, and iv) determining, as an immediately subsequent search center, a reference block that is a) away from the current search center reference block by two pixels or more, b) different from the current search center reference block for which the error between the current block is calculated, and c) different from each of the reference blocks within the search range for which the error between the current block is calculated in the current iteration of said searching, based on a position of the minimum-error block determined in the current iteration of said searching, and causing an immediately subsequent iteration to the current iteration of said searching to be executed, wherein said determining of the reference block is performed for each iteration of said searching when it is judged in said judging that motion estimation should not be ended; and determining a motion vector indicating the position of the minimum-error block determined in a current iteration of the second or subsequent iterations of said searching, as the motion vector to be estimated, when it is judged in said judging that the motion estimation should be ended.