mlib_VideoH263OverlappedMC_S16_U8 man page on OpenIndiana
[printable version]
mlib_VideoH263OverlappedMCmediaLib3Libmlib_VideoH263OverlappedMC_S16_U8(3MLIB)
NAME
mlib_VideoH263OverlappedMC_S16_U8 - generates the 8x8 luminance predic‐
tion 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 lumi‐
nance prediction block (motion-compensated block) in the Advanced Pre‐
diction 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 cur‐
rent 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 interpo‐
lated 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 TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Interface Stability │Committed │
├─────────────────────────────┼─────────────────────────────┤
│MT-Level │MT-Safe │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSO
mlib_VideoAddBlock_U8_S16(3MLIB), mlib_VideoCopyRef_S16_U8(3MLIB),
mlib_VideoCopyRef_S16_U8_16x16(3MLIB), mlib_VideoCopy‐
Ref_U8_U8_16x16(3MLIB), mlib_VideoCopyRefAve_U8_U8_16x16(3MLIB),
mlib_VideoH263OverlappedMC_U8_U8(3MLIB), mlib_VideoInter‐
pAveX_U8_U8(3MLIB), mlib_VideoInterpAveX_U8_U8_16x16(3MLIB),
mlib_VideoInterpAveXY_U8_U8(3MLIB), mlib_VideoInter‐
pAveXY_U8_U8_16x16(3MLIB), mlib_VideoInterpAveY_U8_U8(3MLIB),
mlib_VideoInterpAveY_U8_U8_16x16(3MLIB), mlib_VideoInt‐
erpX_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_VideoInter‐
pXY_U8_U8(3MLIB), mlib_VideoInterpXY_U8_U8_16x16(3MLIB), mlib_VideoInt‐
erpY_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)
SunOS 5.11 2 Mamlib_VideoH263OverlappedMC_S16_U8(3MLIB)
[top]
List of man pages available for OpenIndiana
Copyright (c) for man pages and the logo by the respective OS vendor.
For those who want to learn more, the polarhome community provides shell access and support.
[legal]
[privacy]
[GNU]
[policy]
[cookies]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
|
Vote for polarhome
|