Sub-pixel interpolation and its application in motion compensated encoding of a video signal
First Claim
Patent Images
1. A method comprising:
- receiving a plurality of source integer pixels and a plurality of reconstructed pixels;
computing an integer motion vector based on said plurality of course integer pixels and said plurality of reconstructed pixels;
determining a search range about an integer pixel position pointed to by said integer motion vector;
computing non-diagonal pixels by applying a first filter on a set of said plurality of course integer pixels with said search range, wherein said first filter has a predetermined complexity;
computing one or more diagonal sub-pixels by applying a second filter on said non-diagonal sub-pixels, wherein said second filter has a complexity less than said predetermined complexity, wherein said one or more diagonal sub-pixels are diagonally half distance from pairs of plurality of integer pixels;
selecting a vector sub-pixel location based on a cost associated with sub-pixel motion vector encoding of each sub-pixel;
determining if said sub-pixel at said selected vector sub-pixel location was computed by a filter having a complexity less than said predetermined complexity;
re-computing one or more sub-pixels including at said selected sub-pixel location using said first filter having said predetermined complexity, if said sub-pixel at said selected sub-pixel location was previously computed by a filter having a complexity less than said predetermined complexity;
re-selecting a vector sub-pixel location based on a cost associated with sub-pixel motion vector encoding for each sub-pixel using any re-computed sub-pixel, if said sub-pixel at said selected sub-pixel location was previously computed by a filter having a complexity less than said predetermined complexity;
iteratively repeating said re-computing one or more sub-pixels and said re-selecting said vector sub-pixel location until a sub-pixel at said re-selected vector sub-pixel location was computed by said first filter having said predetermined complexity; and
computing a motion vector for a final selected vector sub-pixel location, wherein said final selected vector sub-pixel location was computed by said first filter having said predetermined complexity.
1 Assignment
0 Petitions
Accused Products
Abstract
Reducing computational complexity when generating sub-pixel values for sub-pixel motion estimation from integer pixels. In an embodiment, half pixels in vertical and horizontal directions are computed by a applying a filter of first complexity on integer pixels, and a half pixel in diagonal direction is computed using a filter of lower complexity as compared to the filter of first complexity. Quarter (and other lower resolution pixels) pixels may also be generated using the half pixel in the diagonal direction. Thus, overall computational complexity is reduced in generating sub-pixels for sub-pixel motion estimation.
197 Citations
9 Claims
-
1. A method comprising:
-
receiving a plurality of source integer pixels and a plurality of reconstructed pixels; computing an integer motion vector based on said plurality of course integer pixels and said plurality of reconstructed pixels; determining a search range about an integer pixel position pointed to by said integer motion vector; computing non-diagonal pixels by applying a first filter on a set of said plurality of course integer pixels with said search range, wherein said first filter has a predetermined complexity; computing one or more diagonal sub-pixels by applying a second filter on said non-diagonal sub-pixels, wherein said second filter has a complexity less than said predetermined complexity, wherein said one or more diagonal sub-pixels are diagonally half distance from pairs of plurality of integer pixels; selecting a vector sub-pixel location based on a cost associated with sub-pixel motion vector encoding of each sub-pixel; determining if said sub-pixel at said selected vector sub-pixel location was computed by a filter having a complexity less than said predetermined complexity; re-computing one or more sub-pixels including at said selected sub-pixel location using said first filter having said predetermined complexity, if said sub-pixel at said selected sub-pixel location was previously computed by a filter having a complexity less than said predetermined complexity; re-selecting a vector sub-pixel location based on a cost associated with sub-pixel motion vector encoding for each sub-pixel using any re-computed sub-pixel, if said sub-pixel at said selected sub-pixel location was previously computed by a filter having a complexity less than said predetermined complexity; iteratively repeating said re-computing one or more sub-pixels and said re-selecting said vector sub-pixel location until a sub-pixel at said re-selected vector sub-pixel location was computed by said first filter having said predetermined complexity; and computing a motion vector for a final selected vector sub-pixel location, wherein said final selected vector sub-pixel location was computed by said first filter having said predetermined complexity. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A non-transitory computer readable medium carrying one or more sequences of instructions for causing a receiver system to process a sequence of video frames, wherein execution of said one or more sequences of instructions by one or more processors contained in said received system causes said one or more processors to perform the actions of:
-
receiving a plurality of source integer pixels and a plurality of reconstructed pixels; computing an integer motion vector based on said plurality of course integer pixels and said plurality of reconstructed pixels; determining a search range about an integer pixel position pointed to by said integer motion vector; computing non-diagonal pixels by applying a first filter on a set of said plurality of course integer pixels with said search range, wherein said first filter has a predetermined complexity; computing one or more diagonal sub-pixels by applying a second filter on said non-diagonal sub-pixels, wherein said second filter has a complexity less than said predetermined complexity, wherein said one or more diagonal sub-pixels are diagonally half distance from pairs of plurality of integer pixels; selecting a vector sub-pixel location based on a cost associated with sub-pixel motion vector encoding of each sub-pixel; determining if said sub-pixel at said selected vector sub-pixel location was computed by a filter having a complexity less than said predetermined complexity; re-computing one or more sub-pixels including at said selected sub-pixel location using said first filter having said predetermined complexity, if said sub-pixel at said selected sub-pixel location was previously computed by a filter having a complexity less than said predetermined complexity; re-selecting a vector sub-pixel location based on a cost associated with sub-pixel motion vector encoding for each sub-pixel using any re-computed sub-pixel, if said sub-pixel at said selected sub-pixel location was previously computed by a filter having a complexity less than said predetermined complexity; iteratively repeating said re-computing one or more sub-pixels and said re-selecting said vector sub-pixel location until a sub-pixel at said re-selected vector sub-pixel location was computed by said first filter having said predetermined complexity; and computing a motion vector for a final selected vector sub-pixel location, wherein said final selected vector sub-pixel location was computed by said first filter having said predetermined complexity. - View Dependent Claims (7, 8, 9)
-
Specification