'\" te .\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved .TH mlib_VideoH263OverlappedMC_S16_U8 3MLIB "2 Mar 2007" "SunOS 5.11" "mediaLib Library Functions" .SH NAME mlib_VideoH263OverlappedMC_S16_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 \fBmlib_status\fR \fBmlib_VideoH263OverlappedMC_S16_U8\fR(\fBmlib_s16\fR \fImc_block[64]\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 \fIref_stride\fR); .fi .SH DESCRIPTION .sp .LP The \fBmlib_VideoH263OverlappedMC_S16_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. The output of this function must be added to the IDCT output in order to reconstruct the block in the current 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 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; .fi .in -2 .sp .LP for \fBx = 4, 5, 6, 7; y = 0, 1, 2, 3\fR .sp .in +2 .nf 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; .fi .in -2 .sp .LP for \fBx = 0, 1, 2, 3; y = 4, 5, 6, 7\fR .sp .in +2 .nf 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; .fi .in -2 .sp .LP for \fBx = 4, 5, 6, 7; y = 4, 5, 6, 7\fR .sp .in +2 .nf 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; .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\fImc_block\fR\fR .ad .RS 14n .rt Pointer to the motion-compensated block. .RE .sp .ne 2 .mk .na \fB\fIref_frame\fR\fR .ad .RS 14n .rt Pointer to the interpolated reference frame. .RE .sp .ne 2 .mk .na \fB\fImch\fR\fR .ad .RS 14n .rt Horizontal coordinate of the motion vector for the current block. .RE .sp .ne 2 .mk .na \fB\fImcv\fR\fR .ad .RS 14n .rt Vertical coordinate of the motion vector for the current block. .RE .sp .ne 2 .mk .na \fB\fImah\fR\fR .ad .RS 14n .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 14n .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 14n .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 14n .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 14n .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 14n .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 14n .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 14n .rt Vertical coordinate of the motion vector for the block to the right of the current block. .RE .sp .ne 2 .mk .na \fB\fIref_stride\fR\fR .ad .RS 14n .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_U8_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)