1. A machine-implemented method performed on a portable processing device including an image-capturing component, the machine-implemented method comprising: capturing a first image frame via the image-capturing component, the captured first image frame having a plurality of regions, each of the plurality of regions having a subset comprising a block of pixels; capturing a second image frame via the image-capturing component, the captured second image frame having a plurality of regions; adaptively searching for a matching block of pixels in each of the plurality of regions of the captured second image frame with respect to a corresponding one of the block of pixels in respective ones of the plurality of regions of the captured first image frame, the adaptively searching further comprising: selecting one of a plurality of fast block matching methods for matching the blocks of pixels and for estimating corresponding motion vectors, the selecting being based on one or more conditions including at least one condition from a plurality of conditions consisting of battery power of a battery of the portable processing device, processor load of the portable processing device, and historical matching accuracy of each of the plurality of fast block matching methods; and estimating a motion vector with respect to each of the plurality of regions of the captured second image frame based on positions of the matching blocks of pixels with respect to positions of the blocks of pixels in the respective ones of the plurality of regions of the first image frame.