Digital video capabilities can be incorporated into a wide range of devices, including digital televisions, digital direct broadcast systems, wireless broadcast systems, personal digital assistants (PDAs), laptop or desktop computers, digital cameras, digital recording devices, video gaming devices, video game consoles, cellular or satellite radio telephones, and the like. Digital video devices implement video compression techniques, such as those described in standards defined by MPEG-2, MPEG-4, or ITU-T H.264/MPEG-4, Part 10, Advanced Video Coding (AVC), or other standards, to transmit and receive digital video information more efficiently. Video compression techniques may perform spatial prediction and/or temporal prediction to reduce or remove redundancy inherent in video sequences.
Intra-coding relies on spatial prediction to reduce or remove spatial redundancy between video blocks within a given coded unit. Inter-coding relies on temporal prediction to reduce or remove temporal redundancy between video blocks in successive coded units of a video sequence. For inter-coding, a video encoder performs motion estimation and compensation to identify, in reference units, prediction blocks that closely match blocks in a unit to be encoded, and generate motion vectors indicating relative displacement between the coded blocks and the prediction blocks. The difference between the coded blocks and the prediction blocks constitutes residual information. Hence, an inter-coded block can be characterized by one or more motion vectors and residual information.
In some coding processes, motion vectors may have fractional pixel values that permit a video coder to track motion with higher precision than integer pixel values. To support identification of prediction blocks with fractional pixel values, an encoder applies interpolation operations to a reference unit to produce values at sub-pixel positions, such as quarter-pixel or half-pixel positions. The H.264 standard specifies the use of a fixed interpolation scheme for sub-pixel positions. In some cases, different interpolation filters can be selected to improve coding efficiency and prediction quality. For example, an encoder may apply different sets of fixed interpolation filters or adaptive interpolation filters on a selective basis. Also, to further improve the quality of prediction, an encoder may add offsets to sub-pixel position values after interpolation.