a method of motion compensation for an input block is disclosed . the method generally includes the steps of generating a plurality of tap values in response to a motion vector for the input block , generating an interpolated block by programmable filtering a reference block using the tap values , the interpolated block being spatially offset from the reference block by less than a half - pel separation and generating an output block in response to the input block and the interpolated block .