A method for performing motion estimation, comprising: selecting, by a motion estimation module, a motion vector centering for a current block in a search area of at least one reference picture, wherein said selecting the motion vector centering comprises collocating a center of said search area at a distance displaced from a top left position of said current block, where said distance is derived from a Search Area Center Vector, SACV; calculating, by the motion estimation module, a matching cost for each of a plurality of candidate motion vectors derived from said search area using only motion vectors of neighboring macroblocks that are determined by the motion estimation module, wherein said calculating said matching cost comprises estimating a Lagrangian multiplier, wherein said Lagrangian multiplier is estimated using quantization parameter information from a plurality of macroblocks of at least one previously coded picture; outputting, by the motion estimation module, plural candidate motion vectors of said plurality of candidate motion vectors based on said matching cost associated with each of said plurality of candidate motion vectors to a main coding loop of an encoder; wherein the motion estimation module performs the selecting step, the calculating step, and the outputting step from an original video sequence at half horizontal resolution; and employing, by the main coding loop of the encoder, whilst using reconstructed video output at full resolution, a refinement motion estimation process in which the plural candidate motion vectors of the current block are used as starting points by the refinement motion estimation process to select a final motion vector for the current block. selecting, by a motion estimation module, a motion vector centering for a current block in a search area of at least one reference picture, wherein said selecting the motion vector centering comprises collocating a center of said search area at a distance displaced from a top left position of said current block, where said distance is derived from a Search Area Center Vector, SACV; calculating, by the motion estimation module, a matching cost for each of a plurality of candidate motion vectors derived from said search area using only motion vectors of neighboring macroblocks that are determined by the motion estimation module, wherein said calculating said matching cost comprises estimating a Lagrangian multiplier, wherein said Lagrangian multiplier is estimated using quantization parameter information from a plurality of macroblocks of at least one previously coded picture; outputting, by the motion estimation module, plural candidate motion vectors of said plurality of candidate motion vectors based on said matching cost associated with each of said plurality of candidate motion vectors to a main coding loop of an encoder; wherein the motion estimation module performs the selecting step, the calculating step, and the outputting step from an original video sequence at half horizontal resolution; and employing, by the main coding loop of the encoder, whilst using reconstructed video output at full resolution, a refinement motion estimation process in which the plural candidate motion vectors of the current block are used as starting points by the refinement motion estimation process to select a final motion vector for the current block.