Content-type: text/html Man page of mlib_VideoH263OverlappedMC_S16_U8

mlib_VideoH263OverlappedMC_S16_U8

Section: mediaLib Library Functions (3MLIB)
Updated: 2 Mar 2007
Index Return to Main Contents
 

NAME

mlib_VideoH263OverlappedMC_S16_U8 - generates the 8x8 luminance prediction block in the Advanced Prediction Mode for H.263 codec  

SYNOPSIS

cc [ flag... ] file... -lmlib [ library... ]
#include <mlib.h>

mlib_status mlib_VideoH263OverlappedMC_S16_U8(mlib_s16 mc_block[64],
    const mlib_u8 *ref_frame, mlib_s32 mch, mlib_s32 mcv, mlib_s32 mah,
    mlib_s32 mav, mlib_s32 mbh, mlib_s32 mbv, mlib_s32 mlh, mlib_s32 mlv,
    mlib_s32 mrh, mlib_s32 mrv, mlib_s32 ref_stride);

 

DESCRIPTION

The mlib_VideoH263OverlappedMC_S16_U8() function generates an 8x8 luminance prediction block (motion-compensated block) in the Advanced Prediction Mode for H.263 codec. The reference frame in this function is an interpolated frame. The output of this function must be added to the IDCT output in order to reconstruct the block in the current frame.

The following equation is used:

for x = 0, 1, 2, 3; y = 0, 1, 2, 3

    mc(x, y) = (ref(2x + mch, 2y + mcv)*H0(x, y) +
               ref(2x + mah, 2y + mav)*H1(x, y) +
               ref(2x + mlh, 2y + mlv)*H2(x, y)) / 8;

for x = 4, 5, 6, 7; y = 0, 1, 2, 3

    mc(x, y) = (ref(2x + mch, 2y + mcv)*H0(x, y) +
               ref(2x + mah, 2y + mav)*H1(x, y) +
               ref(2x + mrh, 2y + mrv)*H2(x, y)) / 8;

for x = 0, 1, 2, 3; y = 4, 5, 6, 7

    mc(x, y) = (ref(2x + mch, 2y + mcv)*H0(x, y) +
               ref(2x + mbh, 2y + mbv)*H1(x, y) +
               ref(2x + mlh, 2y + mlv)*H2(x, y)) / 8;

for x = 4, 5, 6, 7; y = 4, 5, 6, 7

    mc(x, y) = (ref(2x + mch, 2y + mcv)*H0(x, y) +
               ref(2x + mbh, 2y + mbv)*H1(x, y) +
               ref(2x + mrh, 2y + mrv)*H2(x, y)) / 8;

where

     [ 4 5 5 5 5 5 5 4 ]
    | 5 5 5 5 5 5 5 5 |
    | 5 5 6 6 6 6 5 5 |
H0 = | 5 5 6 6 6 6 5 5 |
    | 5 5 6 6 6 6 5 5 |
    | 5 5 6 6 6 6 5 5 |
    | 5 5 5 5 5 5 5 5 |
    [ 4 5 5 5 5 5 5 4 ]

    [ 2 2 2 2 2 2 2 2 ]
    | 1 1 2 2 2 2 1 1 |
    | 1 1 1 1 1 1 1 1 |
H1 = | 1 1 1 1 1 1 1 1 |
    | 1 1 1 1 1 1 1 1 |
    | 1 1 1 1 1 1 1 1 |
    | 1 1 2 2 2 2 1 1 |
    [ 2 2 2 2 2 2 2 2 ]

    [ 2 1 1 1 1 1 1 2 ]
    | 2 2 1 1 1 1 2 2 |
    | 2 2 1 1 1 1 2 2 |
H2 = | 2 2 1 1 1 1 2 2 |
    | 2 2 1 1 1 1 2 2 |
    | 2 2 1 1 1 1 2 2 |
    | 2 2 1 1 1 1 2 2 |
    [ 2 1 1 1 1 1 1 2 ]

 

PARAMETERS

The function takes the following arguments:

mc_block

Pointer to the motion-compensated block.

ref_frame

Pointer to the interpolated reference frame.

mch

Horizontal coordinate of the motion vector for the current block.

mcv

Vertical coordinate of the motion vector for the current block.

mah

Horizontal coordinate of the motion vector for the block above the current block.

mav

Vertical coordinate of the motion vector for the block above the current block.

mbh

Horizontal coordinate of the motion vector for the block below the current block.

mbv

Vertical coordinate of the motion vector for the block below the current block.

mlh

Horizontal coordinate of the motion vector for the block to the left of the current block.

mlv

Vertical coordinate of the motion vector for the block to the left of the current block.

mrh

Horizontal coordinate of the motion vector for the block to the right of the current block.

mrv

Vertical coordinate of the motion vector for the block to the right of the current block.

ref_stride

Stride, in bytes, between adjacent rows in the interpolated reference frame.

 

RETURN VALUES

The function returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.  

ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPEATTRIBUTE VALUE

Interface StabilityCommitted

MT-Level

 

SEE ALSO

mlib_VideoAddBlock_U8_S16(3MLIB), mlib_VideoCopyRef_S16_U8(3MLIB), mlib_VideoCopyRef_S16_U8_16x16(3MLIB), mlib_VideoCopyRef_U8_U8_16x16(3MLIB), mlib_VideoCopyRefAve_U8_U8_16x16(3MLIB), mlib_VideoH263OverlappedMC_U8_U8(3MLIB), mlib_VideoInterpAveX_U8_U8(3MLIB), mlib_VideoInterpAveX_U8_U8_16x16(3MLIB), mlib_VideoInterpAveXY_U8_U8(3MLIB), mlib_VideoInterpAveXY_U8_U8_16x16(3MLIB), mlib_VideoInterpAveY_U8_U8(3MLIB), mlib_VideoInterpAveY_U8_U8_16x16(3MLIB), mlib_VideoInterpX_S16_U8(3MLIB), mlib_VideoInterpX_S16_U8_16x16(3MLIB), mlib_VideoInterpX_U8_U8(3MLIB), mlib_VideoInterpXY_S16_U8(3MLIB), mlib_VideoInterpXY_S16_U8_16x16(3MLIB), mlib_VideoInterpXY_U8_U8(3MLIB), mlib_VideoInterpXY_U8_U8_16x16(3MLIB), mlib_VideoInterpY_S16_U8(3MLIB), mlib_VideoInterpY_S16_U8_16x16(3MLIB), mlib_VideoInterpY_U8_U8(3MLIB), mlib_VideoInterpY_U8_U8_16x16(3MLIB), mlib_VideoP64Decimate_U8_U8(3MLIB), mlib_VideoP64Loop_S16_U8(3MLIB), mlib_VideoP64Loop_U8_U8(3MLIB), attributes(5)


 

Index

NAME
SYNOPSIS
DESCRIPTION
PARAMETERS
RETURN VALUES
ATTRIBUTES
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 02:38:04 GMT, October 02, 2010