1mlib_VideoH263OverlappedMC_mUe8d_iUa8L(i3bMLLIiBb)ramrlyibF_uVnicdteiooHn2s63OverlappedMC_U8_U8(3MLIB)
2
3
4
6 mlib_VideoH263OverlappedMC_U8_U8 - generates the 8x8 luminance predic‐
7 tion block in the Advanced Prediction Mode for H.263 codec
8
10 cc [ flag... ] file... -lmlib [ library... ]
11 #include <mlib.h>
12
13 mlib_status mlib_VideoH263OverlappedMC_U8_U8(mlib_u8 *curr_block,
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 curr_stride,
17 mlib_s32 ref_stride);
18
19
21 The mlib_VideoH263OverlappedMC_U8_U8() function generates an 8x8 lumi‐
22 nance prediction block (motion-compensated block) in the Advanced Pre‐
23 diction Mode for H.263 codec. The reference frame in this function is
24 an interpolated 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 curr(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 curr(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 curr(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 curr(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
93 The function takes the following arguments:
94
95 curr_block Pointer to the current 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
130 to 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
138 to the right of the current block.
139
140
141 curr_stride Stride, in bytes, between adjacent rows in the current
142 frame.
143
144
145 ref_stride Stride, in bytes, between adjacent rows in the interpo‐
146 lated reference frame.
147
148
150 The function returns MLIB_SUCCESS if successful. Otherwise it returns
151 MLIB_FAILURE.
152
154 See attributes(5) for descriptions of the following attributes:
155
156
157
158
159 ┌─────────────────────────────┬─────────────────────────────┐
160 │ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
161 ├─────────────────────────────┼─────────────────────────────┤
162 │Interface Stability │Committed │
163 ├─────────────────────────────┼─────────────────────────────┤
164 │MT-Level │MT-Safe │
165 └─────────────────────────────┴─────────────────────────────┘
166
168 mlib_VideoAddBlock_U8_S16(3MLIB), mlib_VideoCopyRef_S16_U8(3MLIB),
169 mlib_VideoCopyRef_S16_U8_16x16(3MLIB), mlib_VideoCopy‐
170 Ref_U8_U8_16x16(3MLIB), mlib_VideoCopyRefAve_U8_U8_16x16(3MLIB),
171 mlib_VideoH263OverlappedMC_S16_U8(3MLIB), mlib_VideoInter‐
172 pAveX_U8_U8(3MLIB), mlib_VideoInterpAveX_U8_U8_16x16(3MLIB),
173 mlib_VideoInterpAveXY_U8_U8(3MLIB), mlib_VideoInter‐
174 pAveXY_U8_U8_16x16(3MLIB), mlib_VideoInterpAveY_U8_U8(3MLIB),
175 mlib_VideoInterpAveY_U8_U8_16x16(3MLIB), mlib_VideoInt‐
176 erpX_S16_U8(3MLIB), mlib_VideoInterpX_S16_U8_16x16(3MLIB),
177 mlib_VideoInterpX_U8_U8(3MLIB), mlib_VideoInterpXY_S16_U8(3MLIB),
178 mlib_VideoInterpXY_S16_U8_16x16(3MLIB), mlib_VideoInter‐
179 pXY_U8_U8(3MLIB), mlib_VideoInterpXY_U8_U8_16x16(3MLIB), mlib_VideoInt‐
180 erpY_S16_U8(3MLIB), mlib_VideoInterpY_S16_U8_16x16(3MLIB),
181 mlib_VideoInterpY_U8_U8(3MLIB), mlib_VideoInterpY_U8_U8_16x16(3MLIB),
182 mlib_VideoP64Decimate_U8_U8(3MLIB), mlib_VideoP64Loop_S16_U8(3MLIB),
183 mlib_VideoP64Loop_U8_U8(3MLIB), attributes(5)
184
185
186
187SunOS 5.11 2 Marm2l0i0b7_VideoH263OverlappedMC_U8_U8(3MLIB)