08.01.2013 Views

DigitalVideoAndHDTVAlgorithmsAndInterfaces.pdf

DigitalVideoAndHDTVAlgorithmsAndInterfaces.pdf

DigitalVideoAndHDTVAlgorithmsAndInterfaces.pdf

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Whether an encoder actually<br />

searches this extent is not<br />

standardized!<br />

Motion estimation<br />

A motion vector must do more than cover motion from<br />

one frame to the next: With B-frames, a motion vector<br />

must describe motion from one anchor frame to the<br />

next – that is, from an I-frame or P-frame to the picture<br />

immediately before the following I-frame or P-frame. As<br />

page 123’s m value increases, motion vector range must<br />

increase. The cost and complexity of motion estimation<br />

increases dramatically as search range increases.<br />

The burden of motion estimation (ME) falls on the<br />

encoder. Motion estimation is very complex and<br />

computationally intensive. MPEG-2 allows a huge<br />

motion vector range: For MP@ML frame-structured<br />

pictures, the 16×16 prediction region can potentially lie<br />

anywhere within [-1024…+1023 1 ⁄2] luma samples horizontally<br />

and [-128…+127 1 ⁄2] luma samples vertically<br />

from the macroblock being decoded. Elements in the<br />

picture header (f code) specify the motion vector range<br />

used in each picture; this limits the number of bits that<br />

need to be allocated to motion vectors for that picture.<br />

The purpose of the motion estimation in MPEG is not<br />

exactly to estimate motion in regions of the picture –<br />

rather, it is to access a prediction region that minimizes<br />

the amount of prediction error information that needs<br />

to be coded. Usually this goal will be achieved by using<br />

the best estimate of average motion in the 16×16<br />

macroblock, but not always. I make this distinction<br />

because some video processing algorithms need accurate<br />

motion vectors, where the estimated motion is<br />

a good match to motion as perceived by a human<br />

observer. In many video processing algorithms, such as<br />

in temporal resampling used in standards converters, or<br />

in deinterlacing, a motion vector is needed for every<br />

luma sample, or every few samples. In MPEG, only one<br />

or two vectors are needed to predict a macroblock from<br />

a16×16 region in an anchor picture.<br />

If the fraction bit of a motion vector is set, then predictions<br />

are formed by averaging sample values from<br />

neighboring pixels (at integer coordinates). This is<br />

straightforward for a decoder. However, for an encoder<br />

490 DIGITAL VIDEO AND HDTV ALGORITHMS AND INTERFACES

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!