High accuracy motion vectors for video coding with low encoder and decoder complexity
First Claim
1. A method of decoding motion vector data encoded in a bitstream, comprising:
- determining that a pixel offset syntax element is encoded in the bitstream and that a motion vector has at least quarter-pixel accuracy;
reading the pixel offset syntax element;
utilizing the motion vector having the at least quarter-pixel accuracy to calculate a position of a first sample having the at least quarter-pixel accuracy to which the motion vector points;
utilizing a fractional interpolation structure algorithm to obtain a second sample having a pixel accuracy greater than the first sample;
wherein the second sample is representative of one of at least two additional sample positions associated with the first sample, the at least two additional sample positions each having an accuracy greater than the at least quarter-pixel accuracy; and
wherein the at least two additional sample positions are calculated using at least one of a full-pixel sample position and a half-pixel sample position, and wherein the at least one of the full-pixel sample position and the half-pixel sample position is the same sample position utilized to determine the first sample having the at least quarter-pixel accuracy.
2 Assignments
0 Petitions
Accused Products
Abstract
Two-stage interpolation can be provided for frame prediction samples with quarter-pixel and finer accuracy. All samples of quarter-pixel and finer accuracy can use either half or full/integer-pixels in a bi-linear interpolation to allow for the use of higher accuracy motion vectors, such as one-eighth-pixel accuracy motion vectors. The motion vectors can be restricted in a manner such that they are not allowed to point to every possible sub-pixel sample on a sub-pixel grid, but rather a subset of those sub-pixel samples. In addition, the same full/integer and half-pixel samples that can be used to obtain a quarter-pixel sample can also be used to obtain a one-eighth-pixel sample that the quarter-pixel sample is connected to. Hence, for every quarter-pixel sample, a motion vector could point to two additional positions/locations with one-eighth-pixel accuracy, where the two additional positions/locations can be calculated using the same half or integer-pixel samples which were used to obtain the quarter-pixel sample. Therefore, an arbitrary motion vector accuracy can be achieved without the need to perform additional interpolation stages or increase the complexity of a decoder configured to decode motion vector data.
16 Citations
16 Claims
-
1. A method of decoding motion vector data encoded in a bitstream, comprising:
-
determining that a pixel offset syntax element is encoded in the bitstream and that a motion vector has at least quarter-pixel accuracy; reading the pixel offset syntax element; utilizing the motion vector having the at least quarter-pixel accuracy to calculate a position of a first sample having the at least quarter-pixel accuracy to which the motion vector points; utilizing a fractional interpolation structure algorithm to obtain a second sample having a pixel accuracy greater than the first sample; wherein the second sample is representative of one of at least two additional sample positions associated with the first sample, the at least two additional sample positions each having an accuracy greater than the at least quarter-pixel accuracy; and wherein the at least two additional sample positions are calculated using at least one of a full-pixel sample position and a half-pixel sample position, and wherein the at least one of the full-pixel sample position and the half-pixel sample position is the same sample position utilized to determine the first sample having the at least quarter-pixel accuracy. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. An apparatus, comprising:
-
a processor; and a memory unit operatively connected to the processor and including computer coded instructions configured to, with the processor, cause the apparatus to; determine that a pixel offset syntax element is encoded in a bitstream and that a motion vector encoded in the bitstream has at least quarter-pixel accuracy; read the pixel offset syntax element; utilize the motion vector having the at least quarter-pixel accuracy to calculate a position of a first sample having the at least quarter-pixel accuracy to which the motion vector points; utilize a fractional interpolation structure algorithm to obtain a second sample having a pixel accuracy greater than the first sample; wherein the second sample is representative of one of at least two additional sample positions associated with the first sample, the at least two additional sample positions each having an accuracy greater than the at least quarter-pixel accuracy; and wherein the at least two additional sample positions are calculated using at least one of a full-pixel sample position and a half-pixel sample position, and wherein the at least one of the full-pixel sample position and the half-pixel sample position is the same sample position utilized to determine the first sample having the at least quarter-pixel accuracy. - View Dependent Claims (14, 15, 16)
-
Specification