| Current File : //usr/share/man/man3mlib/mlib_VideoH263OverlappedMC_U8_U8.3mlib |
'\" te
.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved
.TH mlib_VideoH263OverlappedMC_U8_U8 3MLIB "2 Mar 2007" "SunOS 5.11" "mediaLib Library Functions"
.SH NAME
mlib_VideoH263OverlappedMC_U8_U8 \- generates the 8x8 luminance prediction block in the Advanced Prediction Mode for H.263 codec
.SH SYNOPSIS
.LP
.nf
cc [ \fIflag\fR... ] \fIfile\fR... \fB-lmlib\fR [ \fIlibrary\fR... ]
#include <mlib.h>
\fBmlib_status\fR \fBmlib_VideoH263OverlappedMC_U8_U8\fR(\fBmlib_u8 *\fR\fIcurr_block\fR,
\fBconst mlib_u8 *\fR\fIref_frame\fR, \fBmlib_s32\fR \fImch\fR, \fBmlib_s32\fR \fImcv\fR, \fBmlib_s32\fR \fImah\fR,
\fBmlib_s32\fR \fImav\fR, \fBmlib_s32\fR \fImbh\fR, \fBmlib_s32\fR \fImbv\fR, \fBmlib_s32\fR \fImlh\fR, \fBmlib_s32\fR \fImlv\fR,
\fBmlib_s32\fR \fImrh\fR, \fBmlib_s32\fR \fImrv\fR, \fBmlib_s32\fR \fIcurr_stride\fR,
\fBmlib_s32\fR \fIref_stride\fR);
.fi
.SH DESCRIPTION
.sp
.LP
The \fBmlib_VideoH263OverlappedMC_U8_U8()\fR 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.
.sp
.LP
The following equation is used:
.sp
.LP
for \fBx = 0, 1, 2, 3; y = 0, 1, 2, 3\fR
.sp
.in +2
.nf
curr(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;
.fi
.in -2
.sp
.LP
for \fBx = 4, 5, 6, 7; y = 0, 1, 2, 3\fR
.sp
.in +2
.nf
curr(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;
.fi
.in -2
.sp
.LP
for \fBx = 0, 1, 2, 3; y = 4, 5, 6, 7\fR
.sp
.in +2
.nf
curr(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;
.fi
.in -2
.sp
.LP
for \fBx = 4, 5, 6, 7; y = 4, 5, 6, 7\fR
.sp
.in +2
.nf
curr(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;
.fi
.in -2
.sp
.LP
where
.sp
.in +2
.nf
[ 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 ]
.fi
.in -2
.SH PARAMETERS
.sp
.LP
The function takes the following arguments:
.sp
.ne 2
.mk
.na
\fB\fIcurr_block\fR\fR
.ad
.RS 15n
.rt
Pointer to the current block.
.RE
.sp
.ne 2
.mk
.na
\fB\fIref_frame\fR\fR
.ad
.RS 15n
.rt
Pointer to the interpolated reference frame.
.RE
.sp
.ne 2
.mk
.na
\fB\fImch\fR\fR
.ad
.RS 15n
.rt
Horizontal coordinate of the motion vector for the current block.
.RE
.sp
.ne 2
.mk
.na
\fB\fImcv\fR\fR
.ad
.RS 15n
.rt
Vertical coordinate of the motion vector for the current block.
.RE
.sp
.ne 2
.mk
.na
\fB\fImah\fR\fR
.ad
.RS 15n
.rt
Horizontal coordinate of the motion vector for the block above the current block.
.RE
.sp
.ne 2
.mk
.na
\fB\fImav\fR\fR
.ad
.RS 15n
.rt
Vertical coordinate of the motion vector for the block above the current block.
.RE
.sp
.ne 2
.mk
.na
\fB\fImbh\fR\fR
.ad
.RS 15n
.rt
Horizontal coordinate of the motion vector for the block below the current block.
.RE
.sp
.ne 2
.mk
.na
\fB\fImbv\fR\fR
.ad
.RS 15n
.rt
Vertical coordinate of the motion vector for the block below the current block.
.RE
.sp
.ne 2
.mk
.na
\fB\fImlh\fR\fR
.ad
.RS 15n
.rt
Horizontal coordinate of the motion vector for the block to the left of the current block.
.RE
.sp
.ne 2
.mk
.na
\fB\fImlv\fR\fR
.ad
.RS 15n
.rt
Vertical coordinate of the motion vector for the block to the left of the current block.
.RE
.sp
.ne 2
.mk
.na
\fB\fImrh\fR\fR
.ad
.RS 15n
.rt
Horizontal coordinate of the motion vector for the block to the right of the current block.
.RE
.sp
.ne 2
.mk
.na
\fB\fImrv\fR\fR
.ad
.RS 15n
.rt
Vertical coordinate of the motion vector for the block to the right of the current block.
.RE
.sp
.ne 2
.mk
.na
\fB\fIcurr_stride\fR\fR
.ad
.RS 15n
.rt
Stride, in bytes, between adjacent rows in the current frame.
.RE
.sp
.ne 2
.mk
.na
\fB\fIref_stride\fR\fR
.ad
.RS 15n
.rt
Stride, in bytes, between adjacent rows in the interpolated reference frame.
.RE
.SH RETURN VALUES
.sp
.LP
The function returns \fBMLIB_SUCCESS\fR if successful. Otherwise it returns \fBMLIB_FAILURE\fR.
.SH ATTRIBUTES
.sp
.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
.sp
.TS
tab() box;
cw(2.75i) |cw(2.75i)
lw(2.75i) |lw(2.75i)
.
ATTRIBUTE TYPEATTRIBUTE VALUE
_
Interface StabilityCommitted
_
MT-LevelMT-Safe
.TE
.SH SEE ALSO
.sp
.LP
\fBmlib_VideoAddBlock_U8_S16\fR(3MLIB), \fBmlib_VideoCopyRef_S16_U8\fR(3MLIB), \fBmlib_VideoCopyRef_S16_U8_16x16\fR(3MLIB), \fBmlib_VideoCopyRef_U8_U8_16x16\fR(3MLIB), \fBmlib_VideoCopyRefAve_U8_U8_16x16\fR(3MLIB), \fBmlib_VideoH263OverlappedMC_S16_U8\fR(3MLIB), \fBmlib_VideoInterpAveX_U8_U8\fR(3MLIB), \fBmlib_VideoInterpAveX_U8_U8_16x16\fR(3MLIB), \fBmlib_VideoInterpAveXY_U8_U8\fR(3MLIB), \fBmlib_VideoInterpAveXY_U8_U8_16x16\fR(3MLIB), \fBmlib_VideoInterpAveY_U8_U8\fR(3MLIB), \fBmlib_VideoInterpAveY_U8_U8_16x16\fR(3MLIB), \fBmlib_VideoInterpX_S16_U8\fR(3MLIB), \fBmlib_VideoInterpX_S16_U8_16x16\fR(3MLIB), \fBmlib_VideoInterpX_U8_U8\fR(3MLIB), \fBmlib_VideoInterpXY_S16_U8\fR(3MLIB), \fBmlib_VideoInterpXY_S16_U8_16x16\fR(3MLIB), \fBmlib_VideoInterpXY_U8_U8\fR(3MLIB), \fBmlib_VideoInterpXY_U8_U8_16x16\fR(3MLIB), \fBmlib_VideoInterpY_S16_U8\fR(3MLIB), \fBmlib_VideoInterpY_S16_U8_16x16\fR(3MLIB), \fBmlib_VideoInterpY_U8_U8\fR(3MLIB), \fBmlib_VideoInterpY_U8_U8_16x16\fR(3MLIB), \fBmlib_VideoP64Decimate_U8_U8\fR(3MLIB), \fBmlib_VideoP64Loop_S16_U8\fR(3MLIB), \fBmlib_VideoP64Loop_U8_U8\fR(3MLIB), \fBattributes\fR(5)