1use super::*;
2
3impl_filter_box!(filter_box_u8_c1, u8, C1, nppiFilterBox_8u_C1R_Ctx);
4impl_filter_box!(filter_box_u8_c3, u8, C3, nppiFilterBox_8u_C3R_Ctx);
5impl_filter_box!(filter_box_u8_c4, u8, C4, nppiFilterBox_8u_C4R_Ctx);
6impl_filter_box!(filter_box_u8_ac4, u8, AC4, nppiFilterBox_8u_AC4R_Ctx);
7impl_filter_box!(filter_box_u16_c1, u16, C1, nppiFilterBox_16u_C1R_Ctx);
8impl_filter_box!(filter_box_u16_c3, u16, C3, nppiFilterBox_16u_C3R_Ctx);
9impl_filter_box!(filter_box_u16_c4, u16, C4, nppiFilterBox_16u_C4R_Ctx);
10impl_filter_box!(filter_box_u16_ac4, u16, AC4, nppiFilterBox_16u_AC4R_Ctx);
11impl_filter_box!(filter_box_i16_c1, i16, C1, nppiFilterBox_16s_C1R_Ctx);
12impl_filter_box!(filter_box_i16_c3, i16, C3, nppiFilterBox_16s_C3R_Ctx);
13impl_filter_box!(filter_box_i16_c4, i16, C4, nppiFilterBox_16s_C4R_Ctx);
14impl_filter_box!(filter_box_i16_ac4, i16, AC4, nppiFilterBox_16s_AC4R_Ctx);
15impl_filter_box!(filter_box_f32_c1, f32, C1, nppiFilterBox_32f_C1R_Ctx);
16impl_filter_box!(filter_box_f32_c3, f32, C3, nppiFilterBox_32f_C3R_Ctx);
17impl_filter_box!(filter_box_f32_c4, f32, C4, nppiFilterBox_32f_C4R_Ctx);
18impl_filter_box!(filter_box_f32_ac4, f32, AC4, nppiFilterBox_32f_AC4R_Ctx);
19impl_filter_box!(filter_box_f64_c1, f64, C1, nppiFilterBox_64f_C1R_Ctx);
20
21impl_filter_box_border!(
22 filter_box_border_u8_c1,
23 u8,
24 C1,
25 nppiFilterBoxBorder_8u_C1R_Ctx
26);
27impl_filter_box_border!(
28 filter_box_border_u8_c3,
29 u8,
30 C3,
31 nppiFilterBoxBorder_8u_C3R_Ctx
32);
33impl_filter_box_border!(
34 filter_box_border_u8_c4,
35 u8,
36 C4,
37 nppiFilterBoxBorder_8u_C4R_Ctx
38);
39impl_filter_box_border!(
40 filter_box_border_u8_ac4,
41 u8,
42 AC4,
43 nppiFilterBoxBorder_8u_AC4R_Ctx
44);
45impl_filter_box_border!(
46 filter_box_border_u16_c1,
47 u16,
48 C1,
49 nppiFilterBoxBorder_16u_C1R_Ctx
50);
51impl_filter_box_border!(
52 filter_box_border_u16_c3,
53 u16,
54 C3,
55 nppiFilterBoxBorder_16u_C3R_Ctx
56);
57impl_filter_box_border!(
58 filter_box_border_u16_c4,
59 u16,
60 C4,
61 nppiFilterBoxBorder_16u_C4R_Ctx
62);
63impl_filter_box_border!(
64 filter_box_border_u16_ac4,
65 u16,
66 AC4,
67 nppiFilterBoxBorder_16u_AC4R_Ctx
68);
69impl_filter_box_border!(
70 filter_box_border_i16_c1,
71 i16,
72 C1,
73 nppiFilterBoxBorder_16s_C1R_Ctx
74);
75impl_filter_box_border!(
76 filter_box_border_i16_c3,
77 i16,
78 C3,
79 nppiFilterBoxBorder_16s_C3R_Ctx
80);
81impl_filter_box_border!(
82 filter_box_border_i16_c4,
83 i16,
84 C4,
85 nppiFilterBoxBorder_16s_C4R_Ctx
86);
87impl_filter_box_border!(
88 filter_box_border_i16_ac4,
89 i16,
90 AC4,
91 nppiFilterBoxBorder_16s_AC4R_Ctx
92);
93impl_filter_box_border!(
94 filter_box_border_f32_c1,
95 f32,
96 C1,
97 nppiFilterBoxBorder_32f_C1R_Ctx
98);
99impl_filter_box_border!(
100 filter_box_border_f32_c3,
101 f32,
102 C3,
103 nppiFilterBoxBorder_32f_C3R_Ctx
104);
105impl_filter_box_border!(
106 filter_box_border_f32_c4,
107 f32,
108 C4,
109 nppiFilterBoxBorder_32f_C4R_Ctx
110);
111impl_filter_box_border!(
112 filter_box_border_f32_ac4,
113 f32,
114 AC4,
115 nppiFilterBoxBorder_32f_AC4R_Ctx
116);
117impl_filter_box_border_advanced!(
118 filter_box_border_advanced_u8_c1_buffer_size,
119 filter_box_border_advanced_u8_c1,
120 u8,
121 C1,
122 nppiFilterBoxBorderAdvanced_8u_C1R_Ctx,
123 nppiFilterBoxBorderAdvancedGetDeviceBufferSize,
124 1
125);
126impl_filter_box_border_advanced!(
127 filter_box_border_advanced_u8_c3_buffer_size,
128 filter_box_border_advanced_u8_c3,
129 u8,
130 C3,
131 nppiFilterBoxBorderAdvanced_8u_C3R_Ctx,
132 nppiFilterBoxBorderAdvancedGetDeviceBufferSize,
133 3
134);
135impl_filter_box_border_advanced!(
136 filter_box_border_advanced_u8_c4_buffer_size,
137 filter_box_border_advanced_u8_c4,
138 u8,
139 C4,
140 nppiFilterBoxBorderAdvanced_8u_C4R_Ctx,
141 nppiFilterBoxBorderAdvancedGetDeviceBufferSize,
142 4
143);
144impl_filter_box_border_advanced!(
145 filter_box_border_advanced_u16_c1_buffer_size,
146 filter_box_border_advanced_u16_c1,
147 u16,
148 C1,
149 nppiFilterBoxBorderAdvanced_16u_C1R_Ctx,
150 nppiFilterBoxBorderAdvancedGetDeviceBufferSize,
151 1
152);
153impl_filter_box_border_advanced!(
154 filter_box_border_advanced_u16_c3_buffer_size,
155 filter_box_border_advanced_u16_c3,
156 u16,
157 C3,
158 nppiFilterBoxBorderAdvanced_16u_C3R_Ctx,
159 nppiFilterBoxBorderAdvancedGetDeviceBufferSize,
160 3
161);
162impl_filter_box_border_advanced!(
163 filter_box_border_advanced_u16_c4_buffer_size,
164 filter_box_border_advanced_u16_c4,
165 u16,
166 C4,
167 nppiFilterBoxBorderAdvanced_16u_C4R_Ctx,
168 nppiFilterBoxBorderAdvancedGetDeviceBufferSize,
169 4
170);
171impl_filter_box_border_advanced!(
172 filter_box_border_advanced_i16_c1_buffer_size,
173 filter_box_border_advanced_i16_c1,
174 i16,
175 C1,
176 nppiFilterBoxBorderAdvanced_16s_C1R_Ctx,
177 nppiFilterBoxBorderAdvancedGetDeviceBufferSize,
178 1
179);
180impl_filter_box_border_advanced!(
181 filter_box_border_advanced_i16_c3_buffer_size,
182 filter_box_border_advanced_i16_c3,
183 i16,
184 C3,
185 nppiFilterBoxBorderAdvanced_16s_C3R_Ctx,
186 nppiFilterBoxBorderAdvancedGetDeviceBufferSize,
187 3
188);
189impl_filter_box_border_advanced!(
190 filter_box_border_advanced_i16_c4_buffer_size,
191 filter_box_border_advanced_i16_c4,
192 i16,
193 C4,
194 nppiFilterBoxBorderAdvanced_16s_C4R_Ctx,
195 nppiFilterBoxBorderAdvancedGetDeviceBufferSize,
196 4
197);
198impl_filter_box_border_advanced!(
199 filter_box_border_advanced_f32_c1_buffer_size,
200 filter_box_border_advanced_f32_c1,
201 f32,
202 C1,
203 nppiFilterBoxBorderAdvanced_32f_C1R_Ctx,
204 nppiFilterBoxBorderAdvancedGetDeviceBufferSize,
205 1
206);
207impl_filter_box_border_advanced!(
208 filter_box_border_advanced_f32_c3_buffer_size,
209 filter_box_border_advanced_f32_c3,
210 f32,
211 C3,
212 nppiFilterBoxBorderAdvanced_32f_C3R_Ctx,
213 nppiFilterBoxBorderAdvancedGetDeviceBufferSize,
214 3
215);
216impl_filter_box_border_advanced!(
217 filter_box_border_advanced_f32_c4_buffer_size,
218 filter_box_border_advanced_f32_c4,
219 f32,
220 C4,
221 nppiFilterBoxBorderAdvanced_32f_C4R_Ctx,
222 nppiFilterBoxBorderAdvancedGetDeviceBufferSize,
223 4
224);
225impl_filter_box_border_advanced!(
226 filter_box_border_advanced_f64_c1_buffer_size,
227 filter_box_border_advanced_f64_c1,
228 f64,
229 C1,
230 nppiFilterBoxBorderAdvanced_64f_C1R_Ctx,
231 nppiFilterBoxBorderAdvancedGetDeviceBufferSize_64,
232 1
233);
234
235impl_filter_neighborhood!(filter_max_u8_c1, u8, C1, nppiFilterMax_8u_C1R_Ctx);
236impl_filter_neighborhood!(filter_max_u8_c3, u8, C3, nppiFilterMax_8u_C3R_Ctx);
237impl_filter_neighborhood!(filter_max_u8_c4, u8, C4, nppiFilterMax_8u_C4R_Ctx);
238impl_filter_neighborhood!(filter_max_u8_ac4, u8, AC4, nppiFilterMax_8u_AC4R_Ctx);
239impl_filter_neighborhood!(filter_max_u16_c1, u16, C1, nppiFilterMax_16u_C1R_Ctx);
240impl_filter_neighborhood!(filter_max_u16_c3, u16, C3, nppiFilterMax_16u_C3R_Ctx);
241impl_filter_neighborhood!(filter_max_u16_c4, u16, C4, nppiFilterMax_16u_C4R_Ctx);
242impl_filter_neighborhood!(filter_max_u16_ac4, u16, AC4, nppiFilterMax_16u_AC4R_Ctx);
243impl_filter_neighborhood!(filter_max_i16_c1, i16, C1, nppiFilterMax_16s_C1R_Ctx);
244impl_filter_neighborhood!(filter_max_i16_c3, i16, C3, nppiFilterMax_16s_C3R_Ctx);
245impl_filter_neighborhood!(filter_max_i16_c4, i16, C4, nppiFilterMax_16s_C4R_Ctx);
246impl_filter_neighborhood!(filter_max_i16_ac4, i16, AC4, nppiFilterMax_16s_AC4R_Ctx);
247impl_filter_neighborhood!(filter_max_f32_c1, f32, C1, nppiFilterMax_32f_C1R_Ctx);
248impl_filter_neighborhood!(filter_max_f32_c3, f32, C3, nppiFilterMax_32f_C3R_Ctx);
249impl_filter_neighborhood!(filter_max_f32_c4, f32, C4, nppiFilterMax_32f_C4R_Ctx);
250impl_filter_neighborhood!(filter_max_f32_ac4, f32, AC4, nppiFilterMax_32f_AC4R_Ctx);
251
252impl_filter_neighborhood_border!(
253 filter_max_border_u8_c1,
254 u8,
255 C1,
256 nppiFilterMaxBorder_8u_C1R_Ctx
257);
258impl_filter_neighborhood_border!(
259 filter_max_border_u8_c3,
260 u8,
261 C3,
262 nppiFilterMaxBorder_8u_C3R_Ctx
263);
264impl_filter_neighborhood_border!(
265 filter_max_border_u8_c4,
266 u8,
267 C4,
268 nppiFilterMaxBorder_8u_C4R_Ctx
269);
270impl_filter_neighborhood_border!(
271 filter_max_border_u8_ac4,
272 u8,
273 AC4,
274 nppiFilterMaxBorder_8u_AC4R_Ctx
275);
276impl_filter_neighborhood_border!(
277 filter_max_border_u16_c1,
278 u16,
279 C1,
280 nppiFilterMaxBorder_16u_C1R_Ctx
281);
282impl_filter_neighborhood_border!(
283 filter_max_border_u16_c3,
284 u16,
285 C3,
286 nppiFilterMaxBorder_16u_C3R_Ctx
287);
288impl_filter_neighborhood_border!(
289 filter_max_border_u16_c4,
290 u16,
291 C4,
292 nppiFilterMaxBorder_16u_C4R_Ctx
293);
294impl_filter_neighborhood_border!(
295 filter_max_border_u16_ac4,
296 u16,
297 AC4,
298 nppiFilterMaxBorder_16u_AC4R_Ctx
299);
300impl_filter_neighborhood_border!(
301 filter_max_border_i16_c1,
302 i16,
303 C1,
304 nppiFilterMaxBorder_16s_C1R_Ctx
305);
306impl_filter_neighborhood_border!(
307 filter_max_border_i16_c3,
308 i16,
309 C3,
310 nppiFilterMaxBorder_16s_C3R_Ctx
311);
312impl_filter_neighborhood_border!(
313 filter_max_border_i16_c4,
314 i16,
315 C4,
316 nppiFilterMaxBorder_16s_C4R_Ctx
317);
318impl_filter_neighborhood_border!(
319 filter_max_border_i16_ac4,
320 i16,
321 AC4,
322 nppiFilterMaxBorder_16s_AC4R_Ctx
323);
324impl_filter_neighborhood_border!(
325 filter_max_border_f32_c1,
326 f32,
327 C1,
328 nppiFilterMaxBorder_32f_C1R_Ctx
329);
330impl_filter_neighborhood_border!(
331 filter_max_border_f32_c3,
332 f32,
333 C3,
334 nppiFilterMaxBorder_32f_C3R_Ctx
335);
336impl_filter_neighborhood_border!(
337 filter_max_border_f32_c4,
338 f32,
339 C4,
340 nppiFilterMaxBorder_32f_C4R_Ctx
341);
342impl_filter_neighborhood_border!(
343 filter_max_border_f32_ac4,
344 f32,
345 AC4,
346 nppiFilterMaxBorder_32f_AC4R_Ctx
347);
348
349impl_filter_neighborhood!(filter_min_u8_c1, u8, C1, nppiFilterMin_8u_C1R_Ctx);
350impl_filter_neighborhood!(filter_min_u8_c3, u8, C3, nppiFilterMin_8u_C3R_Ctx);
351impl_filter_neighborhood!(filter_min_u8_c4, u8, C4, nppiFilterMin_8u_C4R_Ctx);
352impl_filter_neighborhood!(filter_min_u8_ac4, u8, AC4, nppiFilterMin_8u_AC4R_Ctx);
353impl_filter_neighborhood!(filter_min_u16_c1, u16, C1, nppiFilterMin_16u_C1R_Ctx);
354impl_filter_neighborhood!(filter_min_u16_c3, u16, C3, nppiFilterMin_16u_C3R_Ctx);
355impl_filter_neighborhood!(filter_min_u16_c4, u16, C4, nppiFilterMin_16u_C4R_Ctx);
356impl_filter_neighborhood!(filter_min_u16_ac4, u16, AC4, nppiFilterMin_16u_AC4R_Ctx);
357impl_filter_neighborhood!(filter_min_i16_c1, i16, C1, nppiFilterMin_16s_C1R_Ctx);
358impl_filter_neighborhood!(filter_min_i16_c3, i16, C3, nppiFilterMin_16s_C3R_Ctx);
359impl_filter_neighborhood!(filter_min_i16_c4, i16, C4, nppiFilterMin_16s_C4R_Ctx);
360impl_filter_neighborhood!(filter_min_i16_ac4, i16, AC4, nppiFilterMin_16s_AC4R_Ctx);
361impl_filter_neighborhood!(filter_min_f32_c1, f32, C1, nppiFilterMin_32f_C1R_Ctx);
362impl_filter_neighborhood!(filter_min_f32_c3, f32, C3, nppiFilterMin_32f_C3R_Ctx);
363impl_filter_neighborhood!(filter_min_f32_c4, f32, C4, nppiFilterMin_32f_C4R_Ctx);
364impl_filter_neighborhood!(filter_min_f32_ac4, f32, AC4, nppiFilterMin_32f_AC4R_Ctx);
365
366impl_filter_neighborhood_border!(
367 filter_min_border_u8_c1,
368 u8,
369 C1,
370 nppiFilterMinBorder_8u_C1R_Ctx
371);
372impl_filter_neighborhood_border!(
373 filter_min_border_u8_c3,
374 u8,
375 C3,
376 nppiFilterMinBorder_8u_C3R_Ctx
377);
378impl_filter_neighborhood_border!(
379 filter_min_border_u8_c4,
380 u8,
381 C4,
382 nppiFilterMinBorder_8u_C4R_Ctx
383);
384impl_filter_neighborhood_border!(
385 filter_min_border_u8_ac4,
386 u8,
387 AC4,
388 nppiFilterMinBorder_8u_AC4R_Ctx
389);
390impl_filter_neighborhood_border!(
391 filter_min_border_u16_c1,
392 u16,
393 C1,
394 nppiFilterMinBorder_16u_C1R_Ctx
395);
396impl_filter_neighborhood_border!(
397 filter_min_border_u16_c3,
398 u16,
399 C3,
400 nppiFilterMinBorder_16u_C3R_Ctx
401);
402impl_filter_neighborhood_border!(
403 filter_min_border_u16_c4,
404 u16,
405 C4,
406 nppiFilterMinBorder_16u_C4R_Ctx
407);
408impl_filter_neighborhood_border!(
409 filter_min_border_u16_ac4,
410 u16,
411 AC4,
412 nppiFilterMinBorder_16u_AC4R_Ctx
413);
414impl_filter_neighborhood_border!(
415 filter_min_border_i16_c1,
416 i16,
417 C1,
418 nppiFilterMinBorder_16s_C1R_Ctx
419);
420impl_filter_neighborhood_border!(
421 filter_min_border_i16_c3,
422 i16,
423 C3,
424 nppiFilterMinBorder_16s_C3R_Ctx
425);
426impl_filter_neighborhood_border!(
427 filter_min_border_i16_c4,
428 i16,
429 C4,
430 nppiFilterMinBorder_16s_C4R_Ctx
431);
432impl_filter_neighborhood_border!(
433 filter_min_border_i16_ac4,
434 i16,
435 AC4,
436 nppiFilterMinBorder_16s_AC4R_Ctx
437);
438impl_filter_neighborhood_border!(
439 filter_min_border_f32_c1,
440 f32,
441 C1,
442 nppiFilterMinBorder_32f_C1R_Ctx
443);
444impl_filter_neighborhood_border!(
445 filter_min_border_f32_c3,
446 f32,
447 C3,
448 nppiFilterMinBorder_32f_C3R_Ctx
449);
450impl_filter_neighborhood_border!(
451 filter_min_border_f32_c4,
452 f32,
453 C4,
454 nppiFilterMinBorder_32f_C4R_Ctx
455);
456impl_filter_neighborhood_border!(
457 filter_min_border_f32_ac4,
458 f32,
459 AC4,
460 nppiFilterMinBorder_32f_AC4R_Ctx
461);
462
463impl_generic_filter_mask!(FilterBoxC1, filter_box, filter_box_c1, C1, [
464 u8 => filter_box_u8_c1,
465 u16 => filter_box_u16_c1,
466 i16 => filter_box_i16_c1,
467 f32 => filter_box_f32_c1,
468 f64 => filter_box_f64_c1,
469]);
470impl_generic_filter_mask!(FilterBoxC3, filter_box, filter_box_c3, C3, [
471 u8 => filter_box_u8_c3,
472 u16 => filter_box_u16_c3,
473 i16 => filter_box_i16_c3,
474 f32 => filter_box_f32_c3,
475]);
476impl_generic_filter_mask!(FilterBoxC4, filter_box, filter_box_c4, C4, [
477 u8 => filter_box_u8_c4,
478 u16 => filter_box_u16_c4,
479 i16 => filter_box_i16_c4,
480 f32 => filter_box_f32_c4,
481]);
482impl_generic_filter_mask!(FilterBoxAc4, filter_box, filter_box_ac4, AC4, [
483 u8 => filter_box_u8_ac4,
484 u16 => filter_box_u16_ac4,
485 i16 => filter_box_i16_ac4,
486 f32 => filter_box_f32_ac4,
487]);
488impl_generic_filter_mask_border!(
489 FilterBoxBorderC1,
490 filter_box_border,
491 filter_box_border_c1,
492 C1,
493 [
494 u8 => filter_box_border_u8_c1,
495 u16 => filter_box_border_u16_c1,
496 i16 => filter_box_border_i16_c1,
497 f32 => filter_box_border_f32_c1,
498 ]
499);
500impl_generic_filter_mask_border!(
501 FilterBoxBorderC3,
502 filter_box_border,
503 filter_box_border_c3,
504 C3,
505 [
506 u8 => filter_box_border_u8_c3,
507 u16 => filter_box_border_u16_c3,
508 i16 => filter_box_border_i16_c3,
509 f32 => filter_box_border_f32_c3,
510 ]
511);
512impl_generic_filter_mask_border!(
513 FilterBoxBorderC4,
514 filter_box_border,
515 filter_box_border_c4,
516 C4,
517 [
518 u8 => filter_box_border_u8_c4,
519 u16 => filter_box_border_u16_c4,
520 i16 => filter_box_border_i16_c4,
521 f32 => filter_box_border_f32_c4,
522 ]
523);
524impl_generic_filter_mask_border!(
525 FilterBoxBorderAc4,
526 filter_box_border,
527 filter_box_border_ac4,
528 AC4,
529 [
530 u8 => filter_box_border_u8_ac4,
531 u16 => filter_box_border_u16_ac4,
532 i16 => filter_box_border_i16_ac4,
533 f32 => filter_box_border_f32_ac4,
534 ]
535);
536impl_generic_filter_mask!(FilterMaxC1, filter_max, filter_max_c1, C1, [
537 u8 => filter_max_u8_c1,
538 u16 => filter_max_u16_c1,
539 i16 => filter_max_i16_c1,
540 f32 => filter_max_f32_c1,
541]);
542impl_generic_filter_mask!(FilterMaxC3, filter_max, filter_max_c3, C3, [
543 u8 => filter_max_u8_c3,
544 u16 => filter_max_u16_c3,
545 i16 => filter_max_i16_c3,
546 f32 => filter_max_f32_c3,
547]);
548impl_generic_filter_mask!(FilterMaxC4, filter_max, filter_max_c4, C4, [
549 u8 => filter_max_u8_c4,
550 u16 => filter_max_u16_c4,
551 i16 => filter_max_i16_c4,
552 f32 => filter_max_f32_c4,
553]);
554impl_generic_filter_mask!(FilterMaxAc4, filter_max, filter_max_ac4, AC4, [
555 u8 => filter_max_u8_ac4,
556 u16 => filter_max_u16_ac4,
557 i16 => filter_max_i16_ac4,
558 f32 => filter_max_f32_ac4,
559]);
560impl_generic_filter_mask!(FilterMinC1, filter_min, filter_min_c1, C1, [
561 u8 => filter_min_u8_c1,
562 u16 => filter_min_u16_c1,
563 i16 => filter_min_i16_c1,
564 f32 => filter_min_f32_c1,
565]);
566impl_generic_filter_mask!(FilterMinC3, filter_min, filter_min_c3, C3, [
567 u8 => filter_min_u8_c3,
568 u16 => filter_min_u16_c3,
569 i16 => filter_min_i16_c3,
570 f32 => filter_min_f32_c3,
571]);
572impl_generic_filter_mask!(FilterMinC4, filter_min, filter_min_c4, C4, [
573 u8 => filter_min_u8_c4,
574 u16 => filter_min_u16_c4,
575 i16 => filter_min_i16_c4,
576 f32 => filter_min_f32_c4,
577]);
578impl_generic_filter_mask!(FilterMinAc4, filter_min, filter_min_ac4, AC4, [
579 u8 => filter_min_u8_ac4,
580 u16 => filter_min_u16_ac4,
581 i16 => filter_min_i16_ac4,
582 f32 => filter_min_f32_ac4,
583]);