Overlapped Block Motion Compensation in AV1

Overlapped Block Motion Compensation (OBMC) is an advanced inter-prediction technique used in modern video codecs to minimize boundary artifacts and boost compression efficiency. This article breaks down the fundamental mechanics of OBMC and details how the AV1 video codec executes this process using neighboring motion vectors and weighted prediction masks to achieve higher video quality at lower bitrates.

Understanding Overlapped Block Motion Compensation

In conventional block-based motion compensation, a frame is divided into rectangular blocks, and each block is assigned a distinct motion vector (MV) to point to its reference frame match. Because adjacent blocks can move in different directions, this hard-boundary approach frequently causes noticeable discontinuities—known as blocking artifacts—along block edges, increasing the residual energy that the codec must compress.

OBMC resolves this problem by overlapping the prediction areas. Instead of predicting a block using solely its own motion vector, OBMC blends the current block’s prediction with additional predictions derived from the motion vectors of adjacent neighboring blocks. By forming a soft, weighted transition across block boundaries, OBMC significantly lowers prediction errors and enhances perceptual smoothness without requiring additional motion vector signaling overhead.

How AV1 Executes OBMC

AV1 incorporates OBMC as a normative tool within its inter-frame prediction pipeline. The codec applies OBMC selectively, operating on sub-block regions adjacent to previously decoded blocks.

  1. Neighbor Identification: AV1 primarily looks at the causal neighborhood—specifically the blocks immediately above and to the left of the current block. For OBMC to be eligible, these neighboring blocks must be inter-coded and possess valid motion vectors.
  2. Sub-block Partitioning: The target block is divided into smaller prediction units (typically 2x2, 4x4, or larger sub-blocks depending on the block dimension). AV1 processes the top boundary and the left boundary independently.
  3. Secondary Motion Predictions:
    • Above Predictor: AV1 projects the motion vector from the block directly above into the top portion of the current block, generating an alternative prediction block.
    • Left Predictor: Similarly, AV1 takes the motion vector from the left neighbor and projects it across the left portion of the current block to generate another prediction.
  4. Weighted Blending: Once the primary prediction (using the current block's own MV) and secondary predictions (using neighbors' MVs) are generated, AV1 blends the pixel values using predefined tapering weights.

Weighting Masks and Depth

The blending in AV1 relies on linear interpolation using standardized lookup masks rather than complex floating-point calculations:

Efficiency and Constraints

Because OBMC introduces additional memory bandwidth and computation requirements—requiring multiple motion-compensation fetches per block—AV1 applies structural constraints to manage complexity. OBMC is only signaled and evaluated when the block size is 8x8 or larger and when the neighbors provide distinct motion information. When activated, OBMC reduces the high-frequency residual signals that the transform and quantization stages would otherwise struggle to encode, making it one of the key contributors to AV1's high compression efficiency over legacy codecs like VP9 and H.264.