24 */
25
26
27 #ifndef __MLIB_IMAGECONV_H
28 #define __MLIB_IMAGECONV_H
29
30 #ifdef __cplusplus
31 extern "C" {
32 #endif /* __cplusplus */
33
34 // Shared macro defined for cleanup of allocated memory.
35 #ifndef FREE_AND_RETURN_STATUS
36 #define FREE_AND_RETURN_STATUS \
37 { \
38 if (pbuff != buff) mlib_free(pbuff); \
39 if (k != akernel) mlib_free(k); \
40 return status; \
41 }
42 #endif /* FREE_AND_RETURN_STATUS */
43
44 void mlib_ImageXor80_aa(mlib_u8 *dl,
45 mlib_s32 wid,
46 mlib_s32 hgt,
47 mlib_s32 str);
48
49 void mlib_ImageXor80(mlib_u8 *dl,
50 mlib_s32 wid,
51 mlib_s32 hgt,
52 mlib_s32 str,
53 mlib_s32 nchan,
54 mlib_s32 cmask);
55
56 mlib_status mlib_conv2x2ext_d64(mlib_image *dst,
57 const mlib_image *src,
58 mlib_s32 dx_l,
59 mlib_s32 dx_r,
60 mlib_s32 dy_t,
61 mlib_s32 dy_b,
62 const mlib_d64 *kern,
63 mlib_s32 cmask);
64
65 mlib_status mlib_conv2x2ext_f32(mlib_image *dst,
66 const mlib_image *src,
67 mlib_s32 dx_l,
68 mlib_s32 dx_r,
69 mlib_s32 dy_t,
70 mlib_s32 dy_b,
71 const mlib_d64 *kern,
72 mlib_s32 cmask);
73
74 mlib_status mlib_conv2x2ext_s16(mlib_image *dst,
75 const mlib_image *src,
76 mlib_s32 dx_l,
77 mlib_s32 dx_r,
78 mlib_s32 dy_t,
79 mlib_s32 dy_b,
80 const mlib_s32 *kern,
81 mlib_s32 scale,
82 mlib_s32 cmask);
83
84 mlib_status mlib_conv2x2ext_s32(mlib_image *dst,
85 const mlib_image *src,
86 mlib_s32 dx_l,
87 mlib_s32 dx_r,
88 mlib_s32 dy_t,
89 mlib_s32 dy_b,
90 const mlib_s32 *kern,
91 mlib_s32 scale,
92 mlib_s32 cmask);
93
94 mlib_status mlib_conv2x2ext_u16(mlib_image *dst,
95 const mlib_image *src,
96 mlib_s32 dx_l,
97 mlib_s32 dx_r,
98 mlib_s32 dy_t,
99 mlib_s32 dy_b,
100 const mlib_s32 *kern,
101 mlib_s32 scale,
102 mlib_s32 cmask);
103
104 mlib_status mlib_conv2x2ext_u8(mlib_image *dst,
105 const mlib_image *src,
106 mlib_s32 dx_l,
107 mlib_s32 dx_r,
108 mlib_s32 dy_t,
109 mlib_s32 dy_b,
110 const mlib_s32 *kern,
111 mlib_s32 scale,
112 mlib_s32 cmask);
113
114 mlib_status mlib_conv2x2nw_d64(mlib_image *dst,
115 const mlib_image *src,
116 const mlib_d64 *kern,
117 mlib_s32 cmask);
118
119 mlib_status mlib_conv2x2nw_f32(mlib_image *dst,
120 const mlib_image *src,
121 const mlib_d64 *kern,
122 mlib_s32 cmask);
123
124 mlib_status mlib_conv2x2nw_s16(mlib_image *dst,
125 const mlib_image *src,
126 const mlib_s32 *kern,
127 mlib_s32 scale,
128 mlib_s32 cmask);
129
130 mlib_status mlib_conv2x2nw_s32(mlib_image *dst,
131 const mlib_image *src,
132 const mlib_s32 *kern,
133 mlib_s32 scale,
134 mlib_s32 cmask);
135
136 mlib_status mlib_conv2x2nw_u16(mlib_image *dst,
137 const mlib_image *src,
138 const mlib_s32 *kern,
139 mlib_s32 scale,
140 mlib_s32 cmask);
141
142 mlib_status mlib_conv2x2nw_u8(mlib_image *dst,
143 const mlib_image *src,
144 const mlib_s32 *kern,
145 mlib_s32 scale,
146 mlib_s32 cmask);
147
148 mlib_status mlib_conv3x3ext_bit(mlib_image *dst,
149 const mlib_image *src,
150 mlib_s32 dx_l,
151 mlib_s32 dx_r,
152 mlib_s32 dy_t,
153 mlib_s32 dy_b,
154 const mlib_s32 *kern,
155 mlib_s32 scale,
156 mlib_s32 cmask);
157
158 mlib_status mlib_conv3x3ext_d64(mlib_image *dst,
159 const mlib_image *src,
160 mlib_s32 dx_l,
161 mlib_s32 dx_r,
162 mlib_s32 dy_t,
163 mlib_s32 dy_b,
164 const mlib_d64 *kern,
165 mlib_s32 cmask);
166
167 mlib_status mlib_conv3x3ext_f32(mlib_image *dst,
168 const mlib_image *src,
169 mlib_s32 dx_l,
170 mlib_s32 dx_r,
171 mlib_s32 dy_t,
172 mlib_s32 dy_b,
173 const mlib_d64 *kern,
174 mlib_s32 cmask);
175
176 mlib_status mlib_conv3x3ext_s16(mlib_image *dst,
177 const mlib_image *src,
178 mlib_s32 dx_l,
179 mlib_s32 dx_r,
180 mlib_s32 dy_t,
181 mlib_s32 dy_b,
182 const mlib_s32 *kern,
183 mlib_s32 scale,
184 mlib_s32 cmask);
185
186 mlib_status mlib_conv3x3ext_s32(mlib_image *dst,
187 const mlib_image *src,
188 mlib_s32 dx_l,
189 mlib_s32 dx_r,
190 mlib_s32 dy_t,
191 mlib_s32 dy_b,
192 const mlib_s32 *kern,
193 mlib_s32 scale,
194 mlib_s32 cmask);
195
196 mlib_status mlib_conv3x3ext_u16(mlib_image *dst,
197 const mlib_image *src,
198 mlib_s32 dx_l,
199 mlib_s32 dx_r,
200 mlib_s32 dy_t,
201 mlib_s32 dy_b,
202 const mlib_s32 *kern,
203 mlib_s32 scale,
204 mlib_s32 cmask);
205
206 mlib_status mlib_conv3x3ext_u8(mlib_image *dst,
207 const mlib_image *src,
208 mlib_s32 dx_l,
209 mlib_s32 dx_r,
210 mlib_s32 dy_t,
211 mlib_s32 dy_b,
212 const mlib_s32 *kern,
213 mlib_s32 scale,
214 mlib_s32 cmask);
215
216 mlib_status mlib_conv3x3nw_bit(mlib_image *dst,
217 const mlib_image *src,
218 const mlib_s32 *kern,
219 mlib_s32 scale,
220 mlib_s32 cmask);
221
222 mlib_status mlib_conv3x3nw_d64(mlib_image *dst,
223 const mlib_image *src,
224 const mlib_d64 *kern,
225 mlib_s32 cmask);
226
227 mlib_status mlib_conv3x3nw_f32(mlib_image *dst,
228 const mlib_image *src,
229 const mlib_d64 *kern,
230 mlib_s32 cmask);
231
232 mlib_status mlib_conv3x3nw_s16(mlib_image *dst,
233 const mlib_image *src,
234 const mlib_s32 *kern,
235 mlib_s32 scale,
236 mlib_s32 cmask);
237
238 mlib_status mlib_conv3x3nw_s32(mlib_image *dst,
239 const mlib_image *src,
240 const mlib_s32 *kern,
241 mlib_s32 scale,
242 mlib_s32 cmask);
243
244 mlib_status mlib_conv3x3nw_u16(mlib_image *dst,
245 const mlib_image *src,
246 const mlib_s32 *kern,
247 mlib_s32 scale,
248 mlib_s32 cmask);
249
250 mlib_status mlib_conv3x3nw_u8(mlib_image *dst,
251 const mlib_image *src,
252 const mlib_s32 *kern,
253 mlib_s32 scale,
254 mlib_s32 cmask);
255
256 mlib_status mlib_conv4x4ext_d64(mlib_image *dst,
257 const mlib_image *src,
258 mlib_s32 dx_l,
259 mlib_s32 dx_r,
260 mlib_s32 dy_t,
261 mlib_s32 dy_b,
262 const mlib_d64 *kern,
263 mlib_s32 cmask);
264
265 mlib_status mlib_conv4x4ext_f32(mlib_image *dst,
266 const mlib_image *src,
267 mlib_s32 dx_l,
268 mlib_s32 dx_r,
269 mlib_s32 dy_t,
270 mlib_s32 dy_b,
271 const mlib_d64 *kern,
272 mlib_s32 cmask);
273
274 mlib_status mlib_conv4x4ext_s16(mlib_image *dst,
275 const mlib_image *src,
276 mlib_s32 dx_l,
277 mlib_s32 dx_r,
278 mlib_s32 dy_t,
279 mlib_s32 dy_b,
280 const mlib_s32 *kern,
281 mlib_s32 scale,
282 mlib_s32 cmask);
283
284 mlib_status mlib_conv4x4ext_s32(mlib_image *dst,
285 const mlib_image *src,
286 mlib_s32 dx_l,
287 mlib_s32 dx_r,
288 mlib_s32 dy_t,
289 mlib_s32 dy_b,
290 const mlib_s32 *kern,
291 mlib_s32 scale,
292 mlib_s32 cmask);
293
294 mlib_status mlib_conv4x4ext_u16(mlib_image *dst,
295 const mlib_image *src,
296 mlib_s32 dx_l,
297 mlib_s32 dx_r,
298 mlib_s32 dy_t,
299 mlib_s32 dy_b,
300 const mlib_s32 *kern,
301 mlib_s32 scale,
302 mlib_s32 cmask);
303
304 mlib_status mlib_conv4x4ext_u8(mlib_image *dst,
305 const mlib_image *src,
306 mlib_s32 dx_l,
307 mlib_s32 dx_r,
308 mlib_s32 dy_t,
309 mlib_s32 dy_b,
310 const mlib_s32 *kern,
311 mlib_s32 scale,
312 mlib_s32 cmask);
313
314 mlib_status mlib_conv4x4nw_d64(mlib_image *dst,
315 const mlib_image *src,
316 const mlib_d64 *kern,
317 mlib_s32 cmask);
318
319 mlib_status mlib_conv4x4nw_f32(mlib_image *dst,
320 const mlib_image *src,
321 const mlib_d64 *kern,
322 mlib_s32 cmask);
323
324 mlib_status mlib_conv4x4nw_s16(mlib_image *dst,
325 const mlib_image *src,
326 const mlib_s32 *kern,
327 mlib_s32 scale,
328 mlib_s32 cmask);
329
330 mlib_status mlib_conv4x4nw_s32(mlib_image *dst,
331 const mlib_image *src,
332 const mlib_s32 *kern,
333 mlib_s32 scale,
334 mlib_s32 cmask);
335
336 mlib_status mlib_conv4x4nw_u16(mlib_image *dst,
337 const mlib_image *src,
338 const mlib_s32 *kern,
339 mlib_s32 scale,
340 mlib_s32 cmask);
341
342 mlib_status mlib_conv4x4nw_u8(mlib_image *dst,
343 const mlib_image *src,
344 const mlib_s32 *kern,
345 mlib_s32 scale,
346 mlib_s32 cmask);
347
348 mlib_status mlib_conv5x5ext_d64(mlib_image *dst,
349 const mlib_image *src,
350 mlib_s32 dx_l,
351 mlib_s32 dx_r,
352 mlib_s32 dy_t,
353 mlib_s32 dy_b,
354 const mlib_d64 *kern,
355 mlib_s32 cmask);
356
357 mlib_status mlib_conv5x5ext_f32(mlib_image *dst,
358 const mlib_image *src,
359 mlib_s32 dx_l,
360 mlib_s32 dx_r,
361 mlib_s32 dy_t,
362 mlib_s32 dy_b,
363 const mlib_d64 *kern,
364 mlib_s32 cmask);
365
366 mlib_status mlib_conv5x5ext_s16(mlib_image *dst,
367 const mlib_image *src,
368 mlib_s32 dx_l,
369 mlib_s32 dx_r,
370 mlib_s32 dy_t,
371 mlib_s32 dy_b,
372 const mlib_s32 *kern,
373 mlib_s32 scale,
374 mlib_s32 cmask);
375
376 mlib_status mlib_conv5x5ext_s32(mlib_image *dst,
377 const mlib_image *src,
378 mlib_s32 dx_l,
379 mlib_s32 dx_r,
380 mlib_s32 dy_t,
381 mlib_s32 dy_b,
382 const mlib_s32 *kern,
383 mlib_s32 scale,
384 mlib_s32 cmask);
385
386 mlib_status mlib_conv5x5ext_u16(mlib_image *dst,
387 const mlib_image *src,
388 mlib_s32 dx_l,
389 mlib_s32 dx_r,
390 mlib_s32 dy_t,
391 mlib_s32 dy_b,
392 const mlib_s32 *kern,
393 mlib_s32 scale,
394 mlib_s32 cmask);
395
396 mlib_status mlib_conv5x5ext_u8(mlib_image *dst,
397 const mlib_image *src,
398 mlib_s32 dx_l,
399 mlib_s32 dx_r,
400 mlib_s32 dy_t,
401 mlib_s32 dy_b,
402 const mlib_s32 *kern,
403 mlib_s32 scale,
404 mlib_s32 cmask);
405
406 mlib_status mlib_conv5x5nw_d64(mlib_image *dst,
407 const mlib_image *src,
408 const mlib_d64 *kern,
409 mlib_s32 cmask);
410
411 mlib_status mlib_conv5x5nw_f32(mlib_image *dst,
412 const mlib_image *src,
413 const mlib_d64 *kern,
414 mlib_s32 cmask);
415
416 mlib_status mlib_conv5x5nw_s16(mlib_image *dst,
417 const mlib_image *src,
418 const mlib_s32 *kern,
419 mlib_s32 scale,
420 mlib_s32 cmask);
421
422 mlib_status mlib_conv5x5nw_s32(mlib_image *dst,
423 const mlib_image *src,
424 const mlib_s32 *kern,
425 mlib_s32 scale,
426 mlib_s32 cmask);
427
428 mlib_status mlib_conv5x5nw_u16(mlib_image *dst,
429 const mlib_image *src,
430 const mlib_s32 *kern,
431 mlib_s32 scale,
432 mlib_s32 cmask);
433
434 mlib_status mlib_conv5x5nw_u8(mlib_image *dst,
435 const mlib_image *src,
436 const mlib_s32 *kern,
437 mlib_s32 scale,
438 mlib_s32 cmask);
439
440 mlib_status mlib_conv7x7ext_s16(mlib_image *dst,
441 const mlib_image *src,
442 mlib_s32 dx_l,
443 mlib_s32 dx_r,
444 mlib_s32 dy_t,
445 mlib_s32 dy_b,
446 const mlib_s32 *kern,
447 mlib_s32 scale,
448 mlib_s32 cmask);
449
450 mlib_status mlib_conv7x7ext_s32(mlib_image *dst,
451 const mlib_image *src,
452 mlib_s32 dx_l,
453 mlib_s32 dx_r,
454 mlib_s32 dy_t,
455 mlib_s32 dy_b,
456 const mlib_s32 *kern,
457 mlib_s32 scale,
458 mlib_s32 cmask);
459
460 mlib_status mlib_conv7x7ext_u16(mlib_image *dst,
461 const mlib_image *src,
462 mlib_s32 dx_l,
463 mlib_s32 dx_r,
464 mlib_s32 dy_t,
465 mlib_s32 dy_b,
466 const mlib_s32 *kern,
467 mlib_s32 scale,
468 mlib_s32 cmask);
469
470 mlib_status mlib_conv7x7ext_u8(mlib_image *dst,
471 const mlib_image *src,
472 mlib_s32 dx_l,
473 mlib_s32 dx_r,
474 mlib_s32 dy_t,
475 mlib_s32 dy_b,
476 const mlib_s32 *kern,
477 mlib_s32 scale,
478 mlib_s32 cmask);
479
480 mlib_status mlib_conv7x7nw_s16(mlib_image *dst,
481 const mlib_image *src,
482 const mlib_s32 *kern,
483 mlib_s32 scale,
484 mlib_s32 cmask);
485
486 mlib_status mlib_conv7x7nw_s32(mlib_image *dst,
487 const mlib_image *src,
488 const mlib_s32 *kern,
489 mlib_s32 scale,
490 mlib_s32 cmask);
491
492 mlib_status mlib_conv7x7nw_u16(mlib_image *dst,
493 const mlib_image *src,
494 const mlib_s32 *kern,
495 mlib_s32 scale,
496 mlib_s32 cmask);
497
498 mlib_status mlib_conv7x7nw_u8(mlib_image *dst,
499 const mlib_image *src,
500 const mlib_s32 *kern,
501 mlib_s32 scale,
502 mlib_s32 cmask);
503
504 mlib_status mlib_convMxNext_s32(mlib_image *dst,
505 const mlib_image *src,
506 const mlib_s32 *kernel,
507 mlib_s32 m,
508 mlib_s32 n,
509 mlib_s32 dx_l,
510 mlib_s32 dx_r,
511 mlib_s32 dy_t,
512 mlib_s32 dy_b,
513 mlib_s32 scale,
514 mlib_s32 cmask);
515
516 mlib_status mlib_convMxNnw_d64(mlib_image *dst,
517 const mlib_image *src,
518 const mlib_d64 *ker,
519 mlib_s32 m,
520 mlib_s32 n,
521 mlib_s32 dm,
522 mlib_s32 dn,
523 mlib_s32 cmask);
|
24 */
25
26
27 #ifndef __MLIB_IMAGECONV_H
28 #define __MLIB_IMAGECONV_H
29
30 #ifdef __cplusplus
31 extern "C" {
32 #endif /* __cplusplus */
33
34 // Shared macro defined for cleanup of allocated memory.
35 #ifndef FREE_AND_RETURN_STATUS
36 #define FREE_AND_RETURN_STATUS \
37 { \
38 if (pbuff != buff) mlib_free(pbuff); \
39 if (k != akernel) mlib_free(k); \
40 return status; \
41 }
42 #endif /* FREE_AND_RETURN_STATUS */
43
44 mlib_status mlib_convMxNext_s32(mlib_image *dst,
45 const mlib_image *src,
46 const mlib_s32 *kernel,
47 mlib_s32 m,
48 mlib_s32 n,
49 mlib_s32 dx_l,
50 mlib_s32 dx_r,
51 mlib_s32 dy_t,
52 mlib_s32 dy_b,
53 mlib_s32 scale,
54 mlib_s32 cmask);
55
56 mlib_status mlib_convMxNnw_d64(mlib_image *dst,
57 const mlib_image *src,
58 const mlib_d64 *ker,
59 mlib_s32 m,
60 mlib_s32 n,
61 mlib_s32 dm,
62 mlib_s32 dn,
63 mlib_s32 cmask);
|