Systems and methods for subblock motion vector coding
US-2024089487-A1 · Mar 14, 2024 · US
US10045046B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10045046-B2 |
| Application number | US-201113311755-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 6, 2011 |
| Priority date | Dec 10, 2010 |
| Publication date | Aug 7, 2018 |
| Grant date | Aug 7, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
This disclosure describes techniques for calculating values of sub-integer pixels applied by an encoder and a decoder to encode blocks of video data. In one example, a video encoder is configured to receive values for a full integer pixel positions of a reference sample, apply an interpolation filter to a first set of the values for the full integer pixel positions to calculate a value for a first sub-integer pixel of one of the full integer pixel positions, apply the interpolation filter to a second, different set of the values for the full integer pixel positions to calculate a value for a second, different sub-integer pixel of the one of the full integer pixel positions, encode a current block of pixels using a motion vector that points to one of the first sub-integer pixel and the second sub-integer pixel.
Opening claim text (preview).
The invention claimed is: 1. A method of decoding video data, the method comprising: determining, by a video decoder, a sub-integer pixel location of a reference block identified by a motion vector for a current block of video data, the motion vector having sub-pixel precision identifying the sub-integer pixel location of the reference block, the sub-integer pixel location being one of a total of fifteen different sub-integer pixel locations associated with a full integer pixel of the reference block; determining, by the video decoder, a set of filter support for the sub-integer pixel location from a set of fifteen different sets of filter support, each of the fifteen sets of filter support being associated with a different sub-integer pixel location of the fifteen different sub-integer pixel locations, each of the sets of filter support comprising a different respective combination of one or more full integer pixels of a reference picture including the reference block or one or more sub-integer pixels of the reference picture, each of the combinations of the one or more full integer pixels or the one or more sub-integer pixels having a total of six or more full-integer pixels or sub-integer pixels arranged in a linear shape in the reference picture; interpolating, by the video decoder, a value for a prediction block for the current block at a full integer pixel location corresponding to the sub-integer pixel location, wherein interpolating comprises applying an interpolation filter to the set of filter support for the sub-integer pixel location, the interpolation filter having six or more taps; and combining, by the video decoder, a residual block for the current block with the prediction block to decode the current block. 2. The method of claim 1 , wherein, for each respective sub-integer pixel location of the sub-integer pixel locations associated with the full integer pixel, the set of filter support for the respective sub-integer pixel location has a horizontal or vertical shape. 3. The method of claim 1 , wherein each of the sub-integer pixel locations associated with the full integer pixel uses a different interpolation filter. 4. The method of claim 1 , further comprising: selecting, by the video decoder, based on previously decoded frames, the set of filter support for the sub-integer pixel location. 5. A method of encoding video data, the method comprising: determining, by a video encoder, a sub-integer pixel location of a reference block identified by a motion vector for a current block of video data, the motion vector having sub-pixel precision identifying the sub-integer pixel location of the reference block, the sub-integer pixel location being one of a total of fifteen different sub-integer pixel locations associated with a full integer pixel of the reference block; determining, by the video encoder, a set of filter support for the sub-integer pixel location from a set of fifteen different sets of filter support, each of the fifteen sets of filter support being associated with a different sub-integer pixel location of the fifteen different sub-integer pixel locations, each of the sets of filter support comprising a different respective combination of one or more full integer pixels of a reference picture including the reference block or one or more sub-integer pixels of the reference picture, each of the combinations of the one or more full integer pixels or the one or more sub-integer pixels having a total of six or more full-integer pixels or sub-integer pixels arranged in a linear shape in the reference picture; interpolating, by the video encoder, a value for a prediction block for the current block at a full integer pixel location corresponding to the sub-integer pixel location, wherein to interpolate the value, the one or more processors are configured to apply an interpolation filter to the set of filter support for the sub-integer pixel location, the interpolation filter having six or more taps; and subtracting, by the video encoder, the prediction block from the current block being encoded to generate a residual block. 6. The method of claim 5 , wherein, for each respective sub-integer pixel location of the sub-integer pixel locations associated with the full integer pixel, the set of filter support for the respective sub-integer pixel location has a horizontal or vertical shape. 7. The method of claim 5 , wherein each of the sub-integer pixel locations associated with the full integer pixel uses a different interpolation filter. 8. The method of claim 5 , further comprising: selecting, by the video encoder, based on previously encoded frames, the set of filter support for the sub-integer pixel location. 9. A device for decoding video data, the device comprising: a memory configured to store the video data; and one or more processors configured to: determine a sub-integer pixel location of a reference block identified by a motion vector for a current block of video data, the motion vector having sub-pixel precision identifying the sub-integer pixel location of the reference block, the sub-integer pixel location being one of a total of fifteen different sub-integer pixel locations associated with a full integer pixel of the reference block; determine a set of filter support for the sub-integer pixel location from a set of fifteen different sets of filter support, each of the fifteen sets of filter support being associated with a different sub-integer pixel location of the fifteen different sub-integer pixel locations, each of the sets of filter support comprising a different respective combination of one or more full integer pixels of a reference picture including the reference block or one or more sub-integer pixels of the reference picture, each of the combinations of the one or more full integer pixels or the one or more sub-integer pixels having a total of six or more full-integer pixels or sub-integer pixels arranged in a linear shape in the reference picture; interpolate a value for a prediction block for the current block at a full integer pixel location corresponding to the sub-integer pixel location, wherein to interpolate the value, the one or more processors are configured to apply an interpolation filter to the set of filter support for the sub-integer pixel location, the interpolation filter having six or more taps; and combine a residual block for the current block with the prediction block to decode the current block. 10. The device of claim 9 , wherein, for each respective sub-integer pixel location of the sub-integer pixel locations associated with the full integer pixel, the set of filter support for the respective sub-integer pixel location has a horizontal or vertical shape. 11. The device of claim 9 , wherein each of the sub-integer pixel locations associated with the full integer pixel uses a different interpolation filter. 12. The device of claim 9 , wherein the one or more processors are configured to: select, based on previously encoded frames, the set of filter support for the sub-integer pixel location. 13. A device for encoding video data, the device comprising: a memory configured to store the video data; and one or more processors configured to: determine a sub-integer pixel location of a reference block identified by a motion vector for a current block of video data, the motion vector having sub-pixel precision identifying the sub-integer pixel location of the reference block, the sub-integer pixel location being one of a total of fifteen different sub-integer pixel locations associated with a full integer pixel of the reference block; determine a set of filter support for the sub-integer pi
Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion (use of rate-distortion criteria H04N19/147) · CPC title
Filters, e.g. for pre-processing or post-processing (sub-band filter banks H04N19/635) · CPC title
Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation (H04N19/635, H04N19/86 take precedence) · CPC title
with sub-pixel accuracy · CPC title
the region being a block, e.g. a macroblock · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.