Interpolation filter support for sub-pixel resolution in video coding
First Claim
1. A method comprising:
- obtaining a block of pixels, wherein the block of pixels includes integer pixel values corresponding to integer pixel positions within the block of pixels;
computing sub-pixel values for sub-pixel positions associated with the block of pixels based on the integer pixel values, wherein computing the sub-pixel values comprises applying an interpolation filter that defines a two-dimensional array of filter support positions corresponding to a set of twelve or more integer pixel positions that surround the sub-pixel positions in a radial shape, and wherein the interpolation filter is used during an inter-prediction video coding process; and
generating a prediction block based on at least some of the sub-pixel values.
1 Assignment
0 Petitions
Accused Products
Abstract
This disclosure describes filtering techniques applied by an encoder and a decoder during the prediction stage of a video encoding and/or decoding process. The filtering techniques may enhance the accuracy of predictive data used during fractional interpolation, and may improve predictive data of integer blocks of pixels. There are several aspects to this disclosure, including a useful twelve-pixel filter support that may be used for interpolation, techniques that use coefficient symmetry and pixel symmetry to reduce the amount of data needed to be sent between an encoder and a decoder to configure the filter support for interpolation, and techniques for filtering data at integer pixel locations in a manner that is similar to sub-pixel interpolation. Other aspects of this disclosure concern techniques for encoding information in the bitstream to convey the type of filter used, and possibly the filter coefficients used. Predictive coding of filter coefficients is also described.
-
Citations
43 Claims
-
1. A method comprising:
-
obtaining a block of pixels, wherein the block of pixels includes integer pixel values corresponding to integer pixel positions within the block of pixels; computing sub-pixel values for sub-pixel positions associated with the block of pixels based on the integer pixel values, wherein computing the sub-pixel values comprises applying an interpolation filter that defines a two-dimensional array of filter support positions corresponding to a set of twelve or more integer pixel positions that surround the sub-pixel positions in a radial shape, and wherein the interpolation filter is used during an inter-prediction video coding process; and generating a prediction block based on at least some of the sub-pixel values. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus comprising a video coder that:
-
obtains a block of pixels, wherein the block of pixels includes integer pixel values corresponding to integer pixel positions within the block of pixels; computes sub-pixel values for sub-pixel positions associated with the block of pixels based on the integer pixel values, wherein the video coder applies an interpolation filter that defines a two-dimensional array of filter support positions corresponding to a set of twelve or more integer pixel positions that surround the sub-pixel positions in a radial shape, and wherein the interpolation filter is used during an inter-prediction video coding process; and generates a prediction block based on at least some of the sub-pixel values. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A device comprising:
-
means for obtaining a block of pixels, wherein the block of pixels includes integer pixel values corresponding to integer pixel positions within the block of pixels; means for computing sub-pixel values for sub-pixel positions associated with the block of pixels based on the integer pixel values, wherein means for computing the sub-pixel values comprises means for applying an interpolation filter that defines a two-dimensional array of filter support positions corresponding to a set of twelve or more integer pixel positions that surround the sub-pixel positions in a radial shape, and wherein the interpolation filter is used during an inter-prediction video coding process; and means for generating a prediction block based on at least some of the sub-pixel values. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
34. A non-transitory computer-readable storage medium comprising instructions that when executed by a processor cause the processor to:
-
obtain a block of pixels, wherein the block of pixels includes integer pixel values corresponding to integer pixel positions within the block of pixels; compute sub-pixel values for sub-pixel positions associated with the block of pixels based on the integer pixel values, wherein in computing the sub-pixel values the instructions cause the processor to apply an interpolation filter that defines a two-dimensional array of filter support positions corresponding to a set of twelve or more integer pixel positions that surround the sub-pixel positions in a radial shape, and wherein the interpolation filter is used during an inter-prediction video coding process; and generate a prediction block based on at least some of the sub-pixel values. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41, 42, 43)
-
Specification