A computer-implemented method of motion estimation for video coding comprising: receiving multiple frames of pixel data; and determining at least one motion vector candidate extending between a current block on a current frame and a reference block on a reference frame, wherein the current block is alternatively provided in one of a variety of available sizes, the determining comprising: determining spatial neighbor block locations on the same frame as the current block, wherein spatial neighbor blocks at the locations have a same single fixed size using a neighbor block pattern formula to compute at least one neighbor block coordinate relative to the position of the current block on the current frame and using substantially the same pattern formula regardless of the size of the current block relative to the neighbor blocks; and using motion vectors of the neighbor blocks at locations determined by using the at least one neighbor block coordinate and to determine at least one motion vector of the current block; and characterized in that: the block area permitted to have neighbor blocks comprises a single row above and adjacent the current block, and at most three columns to the immediate left of the current block. receiving multiple frames of pixel data; and determining at least one motion vector candidate extending between a current block on a current frame and a reference block on a reference frame, wherein the current block is alternatively provided in one of a variety of available sizes, the determining comprising: determining spatial neighbor block locations on the same frame as the current block, wherein spatial neighbor blocks at the locations have a same single fixed size using a neighbor block pattern formula to compute at least one neighbor block coordinate relative to the position of the current block on the current frame and using substantially the same pattern formula regardless of the size of the current block relative to the neighbor blocks; and using motion vectors of the neighbor blocks at locations determined by using the at least one neighbor block coordinate and to determine at least one motion vector of the current block; and characterized in that: the block area permitted to have neighbor blocks comprises a single row above and adjacent the current block, and at most three columns to the immediate left of the current block. determining spatial neighbor block locations on the same frame as the current block, wherein spatial neighbor blocks at the locations have a same single fixed size using a neighbor block pattern formula to compute at least one neighbor block coordinate relative to the position of the current block on the current frame and using substantially the same pattern formula regardless of the size of the current block relative to the neighbor blocks; and using motion vectors of the neighbor blocks at locations determined by using the at least one neighbor block coordinate and to determine at least one motion vector of the current block; and characterized in that: the block area permitted to have neighbor blocks comprises a single row above and adjacent the current block, and at most three columns to the immediate left of the current block.