Systems and methods for subblock motion vector coding
US-2024089487-A1 · Mar 14, 2024 · US
US10327008B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10327008-B2 |
| Application number | US-201113247785-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 28, 2011 |
| Priority date | Oct 13, 2010 |
| Publication date | Jun 18, 2019 |
| Grant date | Jun 18, 2019 |
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.
A video encoder may be configured to adaptively select a sub-pixel precision for motion vectors used to encode video data. The video encoder may further entropy encode an indication of the sub-pixel precision using context adaptive binary arithmetic coding, where the context may correspond to the size of a block of video data for the motion vector. For example, the size may correspond to the depth of a coding unit, the size of a prediction unit of the coding unit, and/or a type for the prediction unit. The video encoder may also interpolate values for one-sixteenth pixel positions of chrominance data using bilinear interpolation. The video encoder may further encode a motion vector difference value for the motion vector using an encoding scheme corresponding to the sub-pixel precision of the motion vector. A video decoder may use similar, reciprocal techniques for decoding the video data.
Opening claim text (preview).
The invention claimed is: 1. A method of encoding video data, the method comprising: encoding a prediction unit of a coding unit of video data using a motion vector having one of a first sub-pixel precision or a second, different sub-pixel precision; determining a context for encoding an indication of whether the motion vector has the first sub-pixel precision or the second sub-pixel precision using context adaptive binary arithmetic coding, wherein determining the context comprises determining the context from at least one of a depth of the coding unit or a size of the prediction unit; and entropy encoding the indication using the determined context in accordance with context adaptive binary arithmetic coding. 2. The method of claim 1 , wherein the first sub-pixel precision comprises one-quarter pixel precision, and wherein the second sub-pixel precision comprises one-eighth pixel precision. 3. The method of claim 1 , wherein the coding unit has a size of 2N×2N pixels, and wherein the type for the prediction unit corresponds to the prediction unit having a size of one of 2N×2N pixels, 2N×N pixels, N×2N pixels, and N×N pixels, wherein N is an integer value greater than zero. 4. The method of claim 1 , wherein encoding the prediction unit comprises calculating the motion vector for luminance data of the coding unit, the luminance data corresponding to the prediction unit, and wherein the motion vector has one-eighth pixel precision for the luminance data, the method further comprising: calculating, using bilinear interpolation, values of one-sixteenth pixel positions of chrominance data of a reference block identified by the motion vector; and encoding chrominance data of the coding unit based on the bilinear interpolated values of the reference block. 5. The method of claim 1 , wherein the prediction unit comprises a first prediction unit, the method further comprising: calculating a first motion vector difference value when encoding the first prediction unit, the first motion vector difference value having the first sub-pixel precision; encoding the first motion vector difference value using a first motion vector difference encoding scheme, wherein the first motion vector difference encoding scheme is associated with the first sub-pixel precision; calculating a second motion vector difference value when encoding a second prediction unit of the video data, the second motion vector difference value having the second sub-pixel precision; and encoding the second motion vector difference value using a second motion vector difference encoding scheme, wherein the second motion vector difference encoding scheme is associated with the second sub-pixel precision. 6. The method of claim 5 , wherein encoding the first motion vector difference value using the first motion vector difference encoding scheme comprises: comparing the first motion vector difference value to a first threshold value defined by the first encoding scheme: encoding the first motion vector difference value using a first unary codeword when the first motion vector difference value is less than the first threshold; and encoding the first motion vector difference value using a first golomb codeword when the first motion vector difference value is greater than or equal to the first threshold, and wherein encoding the second motion vector difference value using the second motion vector difference encoding scheme comprises: comparing the second motion vector difference value to a second threshold value defined by the second encoding scheme; encoding the second motion vector difference value using a second unary codeword when the second motion vector difference value is less than the second threshold; and encoding the second motion vector difference value using u second golomb codeword when the second motion vector difference value is greater than or equal to the second threshold. 7. The method of claim 5 , wherein the first motion vector difference encoding scheme is associated with one-quarter pixel precision, and wherein the second motion vector difference encoding scheme is associated with one-eighth pixel precision. 8. The method of claim 5 , wherein encoding the first motion vector difference value using the first motion vector difference encoding scheme comprises selecting a first context model to use to entropy encode the first motion vector difference value, wherein the first context model is associated with the first sub-pixel precision, and wherein encoding the second motion vector difference value using the second motion vector difference encoding scheme comprises selecting a second context model to use to entropy encode the second motion vector difference value, wherein the second context model is associated with the second sub-pixel precision. 9. An apparatus for encoding video data, the apparatus comprising: a memory configured to store video data; and a video encoder configured to: encode a prediction unit of a coding unit of the video data using a motion vector having one of a first sub-pixel precision or a second, different sub-pixel precision, determine a context for encoding an indication of whether the motion vector has the first sub-pixel precision or the second sub-pixel precision using context adaptive binary arithmetic coding, wherein the video encoder is configured to determine the context from at least one of a depth of the coding unit or a size of the prediction unit, and entropy encode the indication using the determined context in accordance with context adaptive binary arithmetic coding. 10. The apparatus of claim 9 , wherein the video encoder is configured to calculate the motion vector for luminance data of the coding unit, the luminance data corresponding to the prediction unit, and wherein the motion vector has one-eighth pixel precision for the luminance data, and wherein the video encoder is configured to calculate, using bilinear interpolation, values of one-sixteenth pixel positions of chrominance data of a reference block identified by the motion vector, and encode chrominance data of the coding unit based on the bilinear interpolated values of the reference block. 11. The apparatus of claim 9 , wherein the prediction unit comprises a first prediction unit, and wherein the video encoder is configured to calculate a first motion vector difference value when encoding the first prediction unit, the first motion vector difference value having the first sub-pixel precision, encode the first motion vector difference value using a first motion vector difference encoding scheme, wherein the first motion vector difference encoding scheme is associated with the first sub-pixel precision, calculate a second motion vector difference value when encoding a second prediction unit of the video data, the second motion vector difference value having the second sub-pixel precision, and encode the second motion vector difference value using a second motion vector difference encoding scheme, wherein the second motion vector difference encoding scheme is associated with the second sub-pixel precision. 12. The apparatus of claim 11 , wherein to encode the first motion vector difference value using the first motion vector difference encoding scheme, the video encoder is configured to compare the first motion vector difference value to a first threshold value defined by the first encoding scheme, encode the first motion vector difference value using a first unary codeword when the first motion vector difference value is less than the first threshold, and encode the first motion vector difference value using a first golomb codeword when the first motion vector difference value is greater
Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC] · CPC title
the region being a block, e.g. a macroblock · CPC title
by compressing encoding parameters before transmission · CPC title
Entropy coding, e.g. variable length coding [VLC] or arithmetic coding · CPC title
Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.