Adaptive support for interpolating values of sub-pixels for video coding

US10045046B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10045046-B2
Application numberUS-201113311755-A
CountryUS
Kind codeB2
Filing dateDec 6, 2011
Priority dateDec 10, 2010
Publication dateAug 7, 2018
Grant dateAug 7, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

  • H04N19/523Primary

    with sub-pixel accuracy · CPC title

  • the region being a block, e.g. a macroblock · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10045046B2 cover?
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 fi…
Who is the assignee on this patent?
Panchal Rahul P, Karczewicz Marta, Chen Peisong, and 1 more
What technology area does this patent fall under?
Primary CPC classification H04N19/523. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Aug 07 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).