'\" 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 \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)