Skip to main content

singe_npp/image/
exchange_convert_extended.rs

1use super::*;
2
3impl_convert!(
4    convert_i16_to_u16_c1,
5    i16,
6    u16,
7    C1,
8    nppiConvert_16s16u_C1Rs_Ctx
9);
10impl_convert!(
11    convert_i16_to_u32_c1,
12    i16,
13    u32,
14    C1,
15    nppiConvert_16s32u_C1Rs_Ctx
16);
17impl_convert!(
18    convert_i32_to_u32_c1,
19    i32,
20    u32,
21    C1,
22    nppiConvert_32s32u_C1Rs_Ctx
23);
24impl_convert_scaled_round!(
25    convert_u16_to_i8_scaled_c1,
26    u16,
27    i8,
28    C1,
29    nppiConvert_16u8s_C1RSfs_Ctx
30);
31impl_convert_scaled_round!(
32    convert_i16_to_i8_scaled_c1,
33    i16,
34    i8,
35    C1,
36    nppiConvert_16s8s_C1RSfs_Ctx
37);
38impl_convert_scaled_round!(
39    convert_u16_to_i16_scaled_c1,
40    u16,
41    i16,
42    C1,
43    nppiConvert_16u16s_C1RSfs_Ctx
44);
45impl_convert_scaled_round!(
46    convert_u32_to_u8_scaled_c1,
47    u32,
48    u8,
49    C1,
50    nppiConvert_32u8u_C1RSfs_Ctx
51);
52impl_convert_scaled_round!(
53    convert_u32_to_i8_scaled_c1,
54    u32,
55    i8,
56    C1,
57    nppiConvert_32u8s_C1RSfs_Ctx
58);
59impl_convert_scaled_round!(
60    convert_u32_to_u16_scaled_c1,
61    u32,
62    u16,
63    C1,
64    nppiConvert_32u16u_C1RSfs_Ctx
65);
66impl_convert_scaled_round!(
67    convert_u32_to_i16_scaled_c1,
68    u32,
69    i16,
70    C1,
71    nppiConvert_32u16s_C1RSfs_Ctx
72);
73impl_convert_scaled_round!(
74    convert_i32_to_u16_scaled_c1,
75    i32,
76    u16,
77    C1,
78    nppiConvert_32s16u_C1RSfs_Ctx
79);
80impl_convert_scaled_round!(
81    convert_i32_to_i16_scaled_c1,
82    i32,
83    i16,
84    C1,
85    nppiConvert_32s16s_C1RSfs_Ctx
86);
87impl_convert_round!(convert_f32_to_u8_c1, f32, u8, C1, nppiConvert_32f8u_C1R_Ctx);
88impl_convert_round!(convert_f32_to_u8_c3, f32, u8, C3, nppiConvert_32f8u_C3R_Ctx);
89impl_convert_round!(convert_f32_to_u8_c4, f32, u8, C4, nppiConvert_32f8u_C4R_Ctx);
90impl_convert_round!(
91    convert_f32_to_u8_ac4,
92    f32,
93    u8,
94    AC4,
95    nppiConvert_32f8u_AC4R_Ctx
96);
97impl_generic_convert_to_operation!(
98    ConvertToU8C1,
99    convert_to_u8_c1,
100    u8,
101    C1,
102    [
103        i8 => convert_i8_to_u8_c1,
104        u16 => convert_u16_to_u8_c1,
105        i16 => convert_i16_to_u8_c1,
106        i32 => convert_i32_to_u8_c1,
107    ]
108);
109impl_generic_convert_to_operation!(
110    ConvertToU8C3,
111    convert_to_u8_c3,
112    u8,
113    C3,
114    [
115        u16 => convert_u16_to_u8_c3,
116        i16 => convert_i16_to_u8_c3,
117        i32 => convert_i32_to_u8_c3,
118    ]
119);
120impl_generic_convert_to_operation!(
121    ConvertToU8C4,
122    convert_to_u8_c4,
123    u8,
124    C4,
125    [
126        u16 => convert_u16_to_u8_c4,
127        i16 => convert_i16_to_u8_c4,
128        i32 => convert_i32_to_u8_c4,
129    ]
130);
131impl_generic_convert_to_operation!(
132    ConvertToU8AC4,
133    convert_to_u8_ac4,
134    u8,
135    AC4,
136    [
137        u16 => convert_u16_to_u8_ac4,
138        i16 => convert_i16_to_u8_ac4,
139        i32 => convert_i32_to_u8_ac4,
140    ]
141);
142impl_generic_convert_round_to_operation!(
143    ConvertRoundToU8C1,
144    convert_round_to_u8_c1,
145    u8,
146    C1,
147    [f32 => convert_f32_to_u8_c1]
148);
149impl_generic_convert_round_to_operation!(
150    ConvertRoundToU8C3,
151    convert_round_to_u8_c3,
152    u8,
153    C3,
154    [f32 => convert_f32_to_u8_c3]
155);
156impl_generic_convert_round_to_operation!(
157    ConvertRoundToU8C4,
158    convert_round_to_u8_c4,
159    u8,
160    C4,
161    [f32 => convert_f32_to_u8_c4]
162);
163impl_generic_convert_round_to_operation!(
164    ConvertRoundToU8AC4,
165    convert_round_to_u8_ac4,
166    u8,
167    AC4,
168    [f32 => convert_f32_to_u8_ac4]
169);
170impl_convert_round!(convert_f32_to_i8_c1, f32, i8, C1, nppiConvert_32f8s_C1R_Ctx);
171impl_convert_round!(convert_f32_to_i8_c3, f32, i8, C3, nppiConvert_32f8s_C3R_Ctx);
172impl_convert_round!(convert_f32_to_i8_c4, f32, i8, C4, nppiConvert_32f8s_C4R_Ctx);
173impl_convert_round!(
174    convert_f32_to_i8_ac4,
175    f32,
176    i8,
177    AC4,
178    nppiConvert_32f8s_AC4R_Ctx
179);
180impl_convert_scaled_round!(
181    convert_f32_to_u8_scaled_c1,
182    f32,
183    u8,
184    C1,
185    nppiConvert_32f8u_C1RSfs_Ctx
186);
187impl_convert_scaled_round!(
188    convert_f32_to_i8_scaled_c1,
189    f32,
190    i8,
191    C1,
192    nppiConvert_32f8s_C1RSfs_Ctx
193);
194impl_convert_scaled_round!(
195    convert_f32_to_u16_scaled_c1,
196    f32,
197    u16,
198    C1,
199    nppiConvert_32f16u_C1RSfs_Ctx
200);
201impl_convert_scaled_round!(
202    convert_f32_to_i16_scaled_c1,
203    f32,
204    i16,
205    C1,
206    nppiConvert_32f16s_C1RSfs_Ctx
207);
208impl_convert_scaled_round!(
209    convert_f32_to_u32_scaled_c1,
210    f32,
211    u32,
212    C1,
213    nppiConvert_32f32u_C1RSfs_Ctx
214);
215impl_convert_scaled_round!(
216    convert_f32_to_i32_scaled_c1,
217    f32,
218    i32,
219    C1,
220    nppiConvert_32f32s_C1RSfs_Ctx
221);
222impl_convert_scaled_round!(
223    convert_u8_to_i8_scaled_c1,
224    u8,
225    i8,
226    C1,
227    nppiConvert_8u8s_C1RSfs_Ctx
228);
229impl_generic_convert_scaled_round_to_operation!(
230    ConvertScaledRoundToI8C1,
231    convert_scaled_round_to_i8_c1,
232    i8,
233    C1,
234    [
235        u8 => convert_u8_to_i8_scaled_c1,
236        u16 => convert_u16_to_i8_scaled_c1,
237        i16 => convert_i16_to_i8_scaled_c1,
238        u32 => convert_u32_to_i8_scaled_c1,
239        f32 => convert_f32_to_i8_scaled_c1,
240    ]
241);
242impl_generic_convert_scaled_round_to_operation!(
243    ConvertScaledRoundToU8C1,
244    convert_scaled_round_to_u8_c1,
245    u8,
246    C1,
247    [
248        u32 => convert_u32_to_u8_scaled_c1,
249        f32 => convert_f32_to_u8_scaled_c1,
250    ]
251);
252impl_generic_convert_scaled_round_to_operation!(
253    ConvertScaledRoundToI16C1,
254    convert_scaled_round_to_i16_c1,
255    i16,
256    C1,
257    [
258        u16 => convert_u16_to_i16_scaled_c1,
259        u32 => convert_u32_to_i16_scaled_c1,
260        i32 => convert_i32_to_i16_scaled_c1,
261        f32 => convert_f32_to_i16_scaled_c1,
262    ]
263);
264impl_generic_convert_scaled_round_to_operation!(
265    ConvertScaledRoundToU16C1,
266    convert_scaled_round_to_u16_c1,
267    u16,
268    C1,
269    [
270        u32 => convert_u32_to_u16_scaled_c1,
271        i32 => convert_i32_to_u16_scaled_c1,
272        f32 => convert_f32_to_u16_scaled_c1,
273    ]
274);
275impl_generic_convert_scaled_round_to_operation!(
276    ConvertScaledRoundToI32C1,
277    convert_scaled_round_to_i32_c1,
278    i32,
279    C1,
280    [
281        u32 => convert_u32_to_i32_scaled_c1,
282        f32 => convert_f32_to_i32_scaled_c1,
283    ]
284);
285impl_generic_convert_scaled_round_to_operation!(
286    ConvertScaledRoundToU32C1,
287    convert_scaled_round_to_u32_c1,
288    u32,
289    C1,
290    [f32 => convert_f32_to_u32_scaled_c1]
291);
292impl_convert!(convert_i8_to_u8_c1, i8, u8, C1, nppiConvert_8s8u_C1Rs_Ctx);
293impl_convert!(
294    convert_i8_to_u16_c1,
295    i8,
296    u16,
297    C1,
298    nppiConvert_8s16u_C1Rs_Ctx
299);
300impl_convert!(convert_i8_to_i16_c1, i8, i16, C1, nppiConvert_8s16s_C1R_Ctx);
301impl_convert!(
302    convert_i8_to_u32_c1,
303    i8,
304    u32,
305    C1,
306    nppiConvert_8s32u_C1Rs_Ctx
307);
308impl_convert!(convert_i8_to_i32_c1, i8, i32, C1, nppiConvert_8s32s_C1R_Ctx);
309impl_convert!(convert_i8_to_i32_c3, i8, i32, C3, nppiConvert_8s32s_C3R_Ctx);
310impl_convert!(convert_i8_to_i32_c4, i8, i32, C4, nppiConvert_8s32s_C4R_Ctx);
311impl_convert!(
312    convert_i8_to_i32_ac4,
313    i8,
314    i32,
315    AC4,
316    nppiConvert_8s32s_AC4R_Ctx
317);
318impl_convert!(convert_i8_to_f32_c1, i8, f32, C1, nppiConvert_8s32f_C1R_Ctx);
319impl_convert!(convert_i8_to_f32_c3, i8, f32, C3, nppiConvert_8s32f_C3R_Ctx);
320impl_convert!(convert_i8_to_f32_c4, i8, f32, C4, nppiConvert_8s32f_C4R_Ctx);
321impl_convert!(
322    convert_i8_to_f32_ac4,
323    i8,
324    f32,
325    AC4,
326    nppiConvert_8s32f_AC4R_Ctx
327);
328impl_convert!(convert_i32_to_i8_c1, i32, i8, C1, nppiConvert_32s8s_C1R_Ctx);
329impl_convert!(convert_i32_to_i8_c3, i32, i8, C3, nppiConvert_32s8s_C3R_Ctx);
330impl_convert!(convert_i32_to_i8_c4, i32, i8, C4, nppiConvert_32s8s_C4R_Ctx);
331impl_convert!(
332    convert_i32_to_i8_ac4,
333    i32,
334    i8,
335    AC4,
336    nppiConvert_32s8s_AC4R_Ctx
337);
338impl_convert!(
339    convert_i32_to_f32_c1,
340    i32,
341    f32,
342    C1,
343    nppiConvert_32s32f_C1R_Ctx
344);
345impl_convert!(
346    convert_u32_to_f32_c1,
347    u32,
348    f32,
349    C1,
350    nppiConvert_32u32f_C1R_Ctx
351);
352impl_generic_convert_to_operation!(
353    ConvertToF32C1,
354    convert_to_f32_c1,
355    f32,
356    C1,
357    [
358        u8 => convert_u8_to_f32_c1,
359        i8 => convert_i8_to_f32_c1,
360        u16 => convert_u16_to_f32_c1,
361        i16 => convert_i16_to_f32_c1,
362        f16 => convert_f16_to_f32_c1,
363        i32 => convert_i32_to_f32_c1,
364        u32 => convert_u32_to_f32_c1,
365    ]
366);
367impl_generic_convert_to_operation!(
368    ConvertToF32C3,
369    convert_to_f32_c3,
370    f32,
371    C3,
372    [
373        u8 => convert_u8_to_f32_c3,
374        i8 => convert_i8_to_f32_c3,
375        u16 => convert_u16_to_f32_c3,
376        i16 => convert_i16_to_f32_c3,
377        f16 => convert_f16_to_f32_c3,
378    ]
379);
380impl_generic_convert_to_operation!(
381    ConvertToF32C4,
382    convert_to_f32_c4,
383    f32,
384    C4,
385    [
386        u8 => convert_u8_to_f32_c4,
387        i8 => convert_i8_to_f32_c4,
388        u16 => convert_u16_to_f32_c4,
389        i16 => convert_i16_to_f32_c4,
390        f16 => convert_f16_to_f32_c4,
391    ]
392);
393impl_generic_convert_to_operation!(
394    ConvertToF32AC4,
395    convert_to_f32_ac4,
396    f32,
397    AC4,
398    [
399        u8 => convert_u8_to_f32_ac4,
400        i8 => convert_i8_to_f32_ac4,
401        u16 => convert_u16_to_f32_ac4,
402        i16 => convert_i16_to_f32_ac4,
403        f16 => convert_f16_to_f32_ac4,
404    ]
405);
406impl_generic_convert_to_operation!(
407    ConvertToI32C1,
408    convert_to_i32_c1,
409    i32,
410    C1,
411    [
412        u8 => convert_u8_to_i32_c1,
413        i8 => convert_i8_to_i32_c1,
414        u16 => convert_u16_to_i32_c1,
415        i16 => convert_i16_to_i32_c1,
416    ]
417);
418impl_generic_convert_to_operation!(
419    ConvertToI32C3,
420    convert_to_i32_c3,
421    i32,
422    C3,
423    [
424        u8 => convert_u8_to_i32_c3,
425        i8 => convert_i8_to_i32_c3,
426        u16 => convert_u16_to_i32_c3,
427        i16 => convert_i16_to_i32_c3,
428    ]
429);
430impl_generic_convert_to_operation!(
431    ConvertToI32C4,
432    convert_to_i32_c4,
433    i32,
434    C4,
435    [
436        u8 => convert_u8_to_i32_c4,
437        i8 => convert_i8_to_i32_c4,
438        u16 => convert_u16_to_i32_c4,
439        i16 => convert_i16_to_i32_c4,
440    ]
441);
442impl_generic_convert_to_operation!(
443    ConvertToI32AC4,
444    convert_to_i32_ac4,
445    i32,
446    AC4,
447    [
448        u8 => convert_u8_to_i32_ac4,
449        i8 => convert_i8_to_i32_ac4,
450        u16 => convert_u16_to_i32_ac4,
451        i16 => convert_i16_to_i32_ac4,
452    ]
453);
454impl_convert_scaled_round!(
455    convert_u32_to_i32_scaled_c1,
456    u32,
457    i32,
458    C1,
459    nppiConvert_32u32s_C1RSfs_Ctx
460);