Patent ID: 7792192

Claim:
A method of interpolation in video coding in which a reference frame comprising a best matching block (BMB) of (M×N) pixels arranged in M number of rows and N number of columns and represented by values having a specified dynamic range, wherein the pixels in the rows reside at full-pixel horizontal locations and the pixels in the columns reside at full-pixel vertical locations, comprising: interpolating, over an entire search region, adjacent pixels at fractional horizontal, vertical, and diagonal locations about the BMB of (M×N) pixels, such that there are no overlapping interpolations, to generate values for sub-pixels associated with the BMB, wherein interpolating adjacent pixels at fractional horizontal, vertical, and diagonal locations about the BMB of (M×N) pixels, comprises: choosing a first search block of pixels starting from a pixel at a first location adjacent to the BMB in the reference frame; pre-computing a value for a sub-pixel associated with each pixel in the first search block of pixels by interpolating adjacent pixels at fractional horizontal locations to form a resulting interpolated horizontal block providing a plurality of horizontal interpolations, each of size M×N; choosing a second search block of pixels starting from a pixel at a second location different from the first location but adjacent to the BMB in the reference frame; pre-computing a value for a sub-pixel associated with each pixel in the second search block of pixels by interpolating adjacent pixels at fractional vertical locations to form a resulting interpolated vertical block providing a plurality of vertical block interpolations, each of size M×N, choosing a third search block of pixels starting from a pixel located at a third location different from the first and second locations but adjacent to the BMB in the reference frame; and pre-computing a value for a sub-pixel associated with each pixel in the third search block of pixels by interpolating four neighboring pixels at fractional diagonal locations to obtain a resulting interpolated diagonal block providing a plurality of diagonal block interpolations, each of size M×N.