1mlib_VideoH263OverlappedMC_mSe1d6i_aUL8i(b3MLLiIbBrm)alriyb_FVuindcetoiHo2n6s3OverlappedMC_S16_U8(3MLIB)
2
3
4

NAME

6       mlib_VideoH263OverlappedMC_S16_U8 - generates the 8x8 luminance predic‐
7       tion block in the Advanced Prediction Mode for H.263 codec
8

SYNOPSIS

10       cc [ flag... ] file... -lmlib [ library... ]
11       #include <mlib.h>
12
13       mlib_status mlib_VideoH263OverlappedMC_S16_U8(mlib_s16 mc_block[64],
14            const mlib_u8 *ref_frame, mlib_s32 mch, mlib_s32 mcv, mlib_s32 mah,
15            mlib_s32 mav, mlib_s32 mbh, mlib_s32 mbv, mlib_s32 mlh, mlib_s32 mlv,
16            mlib_s32 mrh, mlib_s32 mrv, mlib_s32 ref_stride);
17
18

DESCRIPTION

20       The mlib_VideoH263OverlappedMC_S16_U8() function generates an 8x8 lumi‐
21       nance  prediction block (motion-compensated block) in the Advanced Pre‐
22       diction Mode for H.263 codec. The reference frame in this  function  is
23       an interpolated frame. The output of this function must be added to the
24       IDCT output in order to reconstruct the block in the current frame.
25
26
27       The following equation is used:
28
29
30       for x = 0, 1, 2, 3; y = 0, 1, 2, 3
31
32             mc(x, y) = (ref(2x + mch, 2y + mcv)*H0(x, y) +
33                         ref(2x + mah, 2y + mav)*H1(x, y) +
34                         ref(2x + mlh, 2y + mlv)*H2(x, y)) / 8;
35
36
37
38       for x = 4, 5, 6, 7; y = 0, 1, 2, 3
39
40             mc(x, y) = (ref(2x + mch, 2y + mcv)*H0(x, y) +
41                         ref(2x + mah, 2y + mav)*H1(x, y) +
42                         ref(2x + mrh, 2y + mrv)*H2(x, y)) / 8;
43
44
45
46       for x = 0, 1, 2, 3; y = 4, 5, 6, 7
47
48             mc(x, y) = (ref(2x + mch, 2y + mcv)*H0(x, y) +
49                         ref(2x + mbh, 2y + mbv)*H1(x, y) +
50                         ref(2x + mlh, 2y + mlv)*H2(x, y)) / 8;
51
52
53
54       for x = 4, 5, 6, 7; y = 4, 5, 6, 7
55
56             mc(x, y) = (ref(2x + mch, 2y + mcv)*H0(x, y) +
57                         ref(2x + mbh, 2y + mbv)*H1(x, y) +
58                         ref(2x + mrh, 2y + mrv)*H2(x, y)) / 8;
59
60
61
62       where
63
64              [ 4 5 5 5 5 5 5 4 ]
65              | 5 5 5 5 5 5 5 5 |
66              | 5 5 6 6 6 6 5 5 |
67         H0 = | 5 5 6 6 6 6 5 5 |
68              | 5 5 6 6 6 6 5 5 |
69              | 5 5 6 6 6 6 5 5 |
70              | 5 5 5 5 5 5 5 5 |
71              [ 4 5 5 5 5 5 5 4 ]
72
73              [ 2 2 2 2 2 2 2 2 ]
74              | 1 1 2 2 2 2 1 1 |
75              | 1 1 1 1 1 1 1 1 |
76         H1 = | 1 1 1 1 1 1 1 1 |
77              | 1 1 1 1 1 1 1 1 |
78              | 1 1 1 1 1 1 1 1 |
79              | 1 1 2 2 2 2 1 1 |
80              [ 2 2 2 2 2 2 2 2 ]
81
82              [ 2 1 1 1 1 1 1 2 ]
83              | 2 2 1 1 1 1 2 2 |
84              | 2 2 1 1 1 1 2 2 |
85         H2 = | 2 2 1 1 1 1 2 2 |
86              | 2 2 1 1 1 1 2 2 |
87              | 2 2 1 1 1 1 2 2 |
88              | 2 2 1 1 1 1 2 2 |
89              [ 2 1 1 1 1 1 1 2 ]
90
91

PARAMETERS

93       The function takes the following arguments:
94
95       mc_block      Pointer to the motion-compensated block.
96
97
98       ref_frame     Pointer to the interpolated reference frame.
99
100
101       mch           Horizontal coordinate of the motion vector for  the  cur‐
102                     rent block.
103
104
105       mcv           Vertical  coordinate of the motion vector for the current
106                     block.
107
108
109       mah           Horizontal coordinate of the motion vector for the  block
110                     above the current block.
111
112
113       mav           Vertical  coordinate  of  the motion vector for the block
114                     above the current block.
115
116
117       mbh           Horizontal coordinate of the motion vector for the  block
118                     below the current block.
119
120
121       mbv           Vertical  coordinate  of  the motion vector for the block
122                     below the current block.
123
124
125       mlh           Horizontal coordinate of the motion vector for the  block
126                     to the left of the current block.
127
128
129       mlv           Vertical coordinate of the motion vector for the block to
130                     the left of the current block.
131
132
133       mrh           Horizontal coordinate of the motion vector for the  block
134                     to the right of the current block.
135
136
137       mrv           Vertical coordinate of the motion vector for the block to
138                     the right of the current block.
139
140
141       ref_stride    Stride, in bytes, between adjacent rows in  the  interpo‐
142                     lated reference frame.
143
144

RETURN VALUES

146       The  function  returns MLIB_SUCCESS if successful. Otherwise it returns
147       MLIB_FAILURE.
148

ATTRIBUTES

150       See attributes(5) for descriptions of the following attributes:
151
152
153
154
155       ┌─────────────────────────────┬─────────────────────────────┐
156       │      ATTRIBUTE TYPE         │      ATTRIBUTE VALUE        │
157       ├─────────────────────────────┼─────────────────────────────┤
158       │Interface Stability          │Committed                    │
159       ├─────────────────────────────┼─────────────────────────────┤
160       │MT-Level                     │MT-Safe                      │
161       └─────────────────────────────┴─────────────────────────────┘
162

SEE ALSO

164       mlib_VideoAddBlock_U8_S16(3MLIB),      mlib_VideoCopyRef_S16_U8(3MLIB),
165       mlib_VideoCopyRef_S16_U8_16x16(3MLIB),                  mlib_VideoCopy‐
166       Ref_U8_U8_16x16(3MLIB),        mlib_VideoCopyRefAve_U8_U8_16x16(3MLIB),
167       mlib_VideoH263OverlappedMC_U8_U8(3MLIB),               mlib_VideoInter‐
168       pAveX_U8_U8(3MLIB),            mlib_VideoInterpAveX_U8_U8_16x16(3MLIB),
169       mlib_VideoInterpAveXY_U8_U8(3MLIB),                    mlib_VideoInter‐
170       pAveXY_U8_U8_16x16(3MLIB),           mlib_VideoInterpAveY_U8_U8(3MLIB),
171       mlib_VideoInterpAveY_U8_U8_16x16(3MLIB),                 mlib_VideoInt‐
172       erpX_S16_U8(3MLIB),              mlib_VideoInterpX_S16_U8_16x16(3MLIB),
173       mlib_VideoInterpX_U8_U8(3MLIB),       mlib_VideoInterpXY_S16_U8(3MLIB),
174       mlib_VideoInterpXY_S16_U8_16x16(3MLIB),                mlib_VideoInter‐
175       pXY_U8_U8(3MLIB), mlib_VideoInterpXY_U8_U8_16x16(3MLIB), mlib_VideoInt‐
176       erpY_S16_U8(3MLIB),              mlib_VideoInterpY_S16_U8_16x16(3MLIB),
177       mlib_VideoInterpY_U8_U8(3MLIB),   mlib_VideoInterpY_U8_U8_16x16(3MLIB),
178       mlib_VideoP64Decimate_U8_U8(3MLIB),    mlib_VideoP64Loop_S16_U8(3MLIB),
179       mlib_VideoP64Loop_U8_U8(3MLIB), attributes(5)
180
181
182
183SunOS 5.11                        2 Marml2i0b0_7VideoH263OverlappedMC_S16_U8(3MLIB)
Impressum