Browse Prior Art Database

A Half Pixel Block Matching Algorithm with WMMX2 Instruction Support for Video Encode

IP.com Disclosure Number: IPCOM000132463D
Publication Date: 2005-Dec-17
Document File: 4 page(s) / 470K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method that uses a faster half pixel accuracy block matching algorithm to accelerate the motion estimation (ME) process when employing the new WMMX2 instructions WAVG4 and WMERGE. Benefits include improving code size and performance.

This text was extracted from a Microsoft Word document.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 53% of the total text.

A Half Pixel Block Matching Algorithm with WMMX2 Instruction Support for Video Encode

Disclosed is a method that uses a faster half pixel accuracy block matching algorithm to accelerate the motion estimation (ME) process when employing the new WMMX2 instructions WAVG4 and WMERGE. Benefits include improving code size and performance.

Background

Typically, each video frame is divided into non-overlapping small regions, called blocks. In most video coding implementations, motion estimation algorithms are developed using a block-based motion representation. Because the estimated motion vector (MV) for a block only affects the prediction error, the MV is estimated for each block individually by minimizing the prediction error accumulated over this block only. The most popular criterion for motion estimation is to find two pairs of matching blocks with a minimum sum of absolute difference (SAD) between their luminance values (see Figure 1).

In order to achieve high picture quality, current video codecs require a more accurate fractional pixel resolution of motion vectors, most commonly to half pixel accuracy. The calculation of half pixel values is accomplished through bilinear interpolation (see Figure 2).

Most block search algorithms first locate the “best” matching block with a resolution of one integer pixel, and then in a separate and subsequent step, calculate the best possible block with a half pixel resolution. Figure 3 shows this final step of predicting motion vector to half pixel accuracy. The operations involved in refining the motion vector  to half pixel accuracy are as follows:

§         It uses bilinear interpolation to compute all the half pixel values.

§         It computes the SAD for all of the eight half pixel checking points, with respect to the reference block and the SAD of integer pixel checking points. The minimum one of all nine candidate SADs is the output half pixel accuracy motion vector.

General Description

The disclosed method takes advantage of WMMX2 technology to optimize the half pixel accuracy block matching process. Its 64-bit architecture supports Single Instruction Multiple Data (SIMD) processing. The WMMX2 also introduces new multimedia processing instructions. The disclosed method is the first to use WMMX2 enhanced instructions to design and impl...