How AV1 Uses Dual Interpolation Filters

The AOMedia Video 1 (AV1) codec enhances inter-frame motion compensation by introducing dual interpolation filters, allowing encoders to independently select distinct sub-pixel filters for horizontal and vertical dimensions. Unlike legacy codecs that typically apply a single, symmetric filter profile across both directions, AV1 adapts to directional textures and asymmetrical motion blur. This article explains the underlying mechanism of sub-pixel prediction, the types of interpolation filters available in AV1, and how they are independently executed across both dimensions to optimize compression efficiency.

Sub-Pixel Motion Compensation in AV1

Motion vectors in modern video coding frequently reference fractional-pixel (sub-pixel) locations, such as half-pel (1/2) or quarter-pel (1/4) positions, to capture precise object movement between frames. Because pixels only physically exist at integer grid coordinates, fractional sample values must be generated using interpolation filters.

Interpolation is performed as a separable 2D operation: a 1D filter is applied along one dimension (typically horizontally), followed by a 1D filter applied along the orthogonal dimension (vertically).

The Primary Filter Types

AV1 standardizes three main 8-tap filter types for sub-pixel luminance interpolation, each designed for specific frequency characteristics:

A 2-tap bilinear filter is also supported for faster, lower-complexity processing and specific chroma operations.

Decoupling Horizontal and Vertical Filtering

In prior codecs such as VP9 or standard profiles of H.264/H.265, when a filter type is chosen for a block, the same filter response is enforced for both the horizontal and vertical 1D filtering passes.

AV1 removes this restriction by introducing dual interpolation filtering. The codec can evaluate horizontal and vertical signal frequencies independently and assign different 1D filters to each axis for the same prediction block. For instance, a block can be filtered using a Sharp filter horizontally and a Smooth filter vertically.

How the Dual Filtering Process is Executed

  1. Motion Vector Evaluation: The encoder determines the fractional motion vector pointing to a sub-pixel location in the reference frame.
  2. Filter Selection and Signaling: The encoder evaluates the rate-distortion cost of different filter pairings. The selected filter combination is signaled in the bitstream. AV1 can signal this choice at the frame level (as a default) or adaptively switch it at the block level using syntax elements that define the horizontal filter index and vertical filter index separately.
  3. Horizontal Filtering Pass: The horizontal filter (e.g., 8-tap Sharp) is applied to integer reference samples along the row to produce intermediate sub-pixel values. Precision is maintained using fixed-point arithmetic with intermediate bit-depth expansion to prevent rounding errors.
  4. Vertical Filtering Pass: The vertical filter (e.g., 8-tap Smooth) is applied to the intermediate samples produced by the horizontal pass across columns.
  5. Rounding and Clipping: The resulting values are normalized, rounded, and clipped back to the target sample bit depth (e.g., 8-bit or 10-bit), completing the prediction block.

Practical Advantages

Real-world video features directional asymmetry. For example, a camera panning horizontally introduces horizontal motion blur while maintaining vertical sharpness along horizontal lines. Similarly, textures like fabric, wood grain, or venetian blinds have high spatial frequencies in one direction and low frequencies in the other.

By applying dual interpolation filters, AV1 matches the filtering behavior to the physical characteristics of the video content, significantly reducing prediction error (residuals) and saving bitrate without requiring higher-order 2D non-separable matrix operations.