New techniques for the design and implementation of efficient full-search algorithms for block-matching motion estimation