Skip to main content

singe_npp/image/
exchange_scale.rs

1use super::*;
2
3impl_scale_to_higher!(scale_u8_to_u16_c1, u8, u16, C1, nppiScale_8u16u_C1R_Ctx);
4impl_scale_to_higher!(scale_u8_to_u16_c3, u8, u16, C3, nppiScale_8u16u_C3R_Ctx);
5impl_scale_to_higher!(scale_u8_to_u16_c4, u8, u16, C4, nppiScale_8u16u_C4R_Ctx);
6impl_scale_to_higher!(scale_u8_to_u16_ac4, u8, u16, AC4, nppiScale_8u16u_AC4R_Ctx);
7impl_scale_to_higher!(scale_u8_to_i16_c1, u8, i16, C1, nppiScale_8u16s_C1R_Ctx);
8impl_scale_to_higher!(scale_u8_to_i16_c3, u8, i16, C3, nppiScale_8u16s_C3R_Ctx);
9impl_scale_to_higher!(scale_u8_to_i16_c4, u8, i16, C4, nppiScale_8u16s_C4R_Ctx);
10impl_scale_to_higher!(scale_u8_to_i16_ac4, u8, i16, AC4, nppiScale_8u16s_AC4R_Ctx);
11impl_scale_to_higher!(scale_u8_to_i32_c1, u8, i32, C1, nppiScale_8u32s_C1R_Ctx);
12impl_scale_to_higher!(scale_u8_to_i32_c3, u8, i32, C3, nppiScale_8u32s_C3R_Ctx);
13impl_scale_to_higher!(scale_u8_to_i32_c4, u8, i32, C4, nppiScale_8u32s_C4R_Ctx);
14impl_scale_to_higher!(scale_u8_to_i32_ac4, u8, i32, AC4, nppiScale_8u32s_AC4R_Ctx);
15impl_scale_to_higher_range!(scale_u8_to_f32_c1, u8, C1, nppiScale_8u32f_C1R_Ctx);
16impl_scale_to_higher_range!(scale_u8_to_f32_c3, u8, C3, nppiScale_8u32f_C3R_Ctx);
17impl_scale_to_higher_range!(scale_u8_to_f32_c4, u8, C4, nppiScale_8u32f_C4R_Ctx);
18impl_scale_to_higher_range!(scale_u8_to_f32_ac4, u8, AC4, nppiScale_8u32f_AC4R_Ctx);
19impl_scale_to_lower_hint!(scale_u16_to_u8_c1, u16, C1, nppiScale_16u8u_C1R_Ctx);
20impl_scale_to_lower_hint!(scale_u16_to_u8_c3, u16, C3, nppiScale_16u8u_C3R_Ctx);
21impl_scale_to_lower_hint!(scale_u16_to_u8_c4, u16, C4, nppiScale_16u8u_C4R_Ctx);
22impl_scale_to_lower_hint!(scale_u16_to_u8_ac4, u16, AC4, nppiScale_16u8u_AC4R_Ctx);
23impl_scale_to_lower_hint!(scale_i16_to_u8_c1, i16, C1, nppiScale_16s8u_C1R_Ctx);
24impl_scale_to_lower_hint!(scale_i16_to_u8_c3, i16, C3, nppiScale_16s8u_C3R_Ctx);
25impl_scale_to_lower_hint!(scale_i16_to_u8_c4, i16, C4, nppiScale_16s8u_C4R_Ctx);
26impl_scale_to_lower_hint!(scale_i16_to_u8_ac4, i16, AC4, nppiScale_16s8u_AC4R_Ctx);
27impl_scale_to_lower_hint!(scale_i32_to_u8_c1, i32, C1, nppiScale_32s8u_C1R_Ctx);
28impl_scale_to_lower_hint!(scale_i32_to_u8_c3, i32, C3, nppiScale_32s8u_C3R_Ctx);
29impl_scale_to_lower_hint!(scale_i32_to_u8_c4, i32, C4, nppiScale_32s8u_C4R_Ctx);
30impl_scale_to_lower_hint!(scale_i32_to_u8_ac4, i32, AC4, nppiScale_32s8u_AC4R_Ctx);
31impl_scale_to_lower_range!(scale_f32_to_u8_c1, C1, nppiScale_32f8u_C1R_Ctx);
32impl_scale_to_lower_range!(scale_f32_to_u8_c3, C3, nppiScale_32f8u_C3R_Ctx);
33impl_scale_to_lower_range!(scale_f32_to_u8_c4, C4, nppiScale_32f8u_C4R_Ctx);
34impl_scale_to_lower_range!(scale_f32_to_u8_ac4, AC4, nppiScale_32f8u_AC4R_Ctx);
35impl_generic_scale_to_higher_operation!(
36    ScaleToU16C1,
37    scale_to_u16_c1,
38    C1,
39    [u8 => (u16, scale_u8_to_u16_c1)]
40);
41impl_generic_scale_to_higher_operation!(
42    ScaleToU16C3,
43    scale_to_u16_c3,
44    C3,
45    [u8 => (u16, scale_u8_to_u16_c3)]
46);
47impl_generic_scale_to_higher_operation!(
48    ScaleToU16C4,
49    scale_to_u16_c4,
50    C4,
51    [u8 => (u16, scale_u8_to_u16_c4)]
52);
53impl_generic_scale_to_higher_operation!(
54    ScaleToU16AC4,
55    scale_to_u16_ac4,
56    AC4,
57    [u8 => (u16, scale_u8_to_u16_ac4)]
58);
59impl_generic_scale_to_higher_operation!(
60    ScaleToI16C1,
61    scale_to_i16_c1,
62    C1,
63    [u8 => (i16, scale_u8_to_i16_c1)]
64);
65impl_generic_scale_to_higher_operation!(
66    ScaleToI16C3,
67    scale_to_i16_c3,
68    C3,
69    [u8 => (i16, scale_u8_to_i16_c3)]
70);
71impl_generic_scale_to_higher_operation!(
72    ScaleToI16C4,
73    scale_to_i16_c4,
74    C4,
75    [u8 => (i16, scale_u8_to_i16_c4)]
76);
77impl_generic_scale_to_higher_operation!(
78    ScaleToI16AC4,
79    scale_to_i16_ac4,
80    AC4,
81    [u8 => (i16, scale_u8_to_i16_ac4)]
82);
83impl_generic_scale_to_higher_operation!(
84    ScaleToI32C1,
85    scale_to_i32_c1,
86    C1,
87    [u8 => (i32, scale_u8_to_i32_c1)]
88);
89impl_generic_scale_to_higher_operation!(
90    ScaleToI32C3,
91    scale_to_i32_c3,
92    C3,
93    [u8 => (i32, scale_u8_to_i32_c3)]
94);
95impl_generic_scale_to_higher_operation!(
96    ScaleToI32C4,
97    scale_to_i32_c4,
98    C4,
99    [u8 => (i32, scale_u8_to_i32_c4)]
100);
101impl_generic_scale_to_higher_operation!(
102    ScaleToI32AC4,
103    scale_to_i32_ac4,
104    AC4,
105    [u8 => (i32, scale_u8_to_i32_ac4)]
106);
107impl_generic_scale_to_f32_operation!(
108    ScaleToF32C1,
109    scale_to_f32_c1,
110    C1,
111    [u8 => scale_u8_to_f32_c1]
112);
113impl_generic_scale_to_f32_operation!(
114    ScaleToF32C3,
115    scale_to_f32_c3,
116    C3,
117    [u8 => scale_u8_to_f32_c3]
118);
119impl_generic_scale_to_f32_operation!(
120    ScaleToF32C4,
121    scale_to_f32_c4,
122    C4,
123    [u8 => scale_u8_to_f32_c4]
124);
125impl_generic_scale_to_f32_operation!(
126    ScaleToF32AC4,
127    scale_to_f32_ac4,
128    AC4,
129    [u8 => scale_u8_to_f32_ac4]
130);
131impl_generic_scale_to_u8_hint_operation!(
132    ScaleToU8HintC1,
133    scale_to_u8_hint_c1,
134    C1,
135    [
136        u16 => scale_u16_to_u8_c1,
137        i16 => scale_i16_to_u8_c1,
138        i32 => scale_i32_to_u8_c1,
139    ]
140);
141impl_generic_scale_to_u8_hint_operation!(
142    ScaleToU8HintC3,
143    scale_to_u8_hint_c3,
144    C3,
145    [
146        u16 => scale_u16_to_u8_c3,
147        i16 => scale_i16_to_u8_c3,
148        i32 => scale_i32_to_u8_c3,
149    ]
150);
151impl_generic_scale_to_u8_hint_operation!(
152    ScaleToU8HintC4,
153    scale_to_u8_hint_c4,
154    C4,
155    [
156        u16 => scale_u16_to_u8_c4,
157        i16 => scale_i16_to_u8_c4,
158        i32 => scale_i32_to_u8_c4,
159    ]
160);
161impl_generic_scale_to_u8_hint_operation!(
162    ScaleToU8HintAC4,
163    scale_to_u8_hint_ac4,
164    AC4,
165    [
166        u16 => scale_u16_to_u8_ac4,
167        i16 => scale_i16_to_u8_ac4,
168        i32 => scale_i32_to_u8_ac4,
169    ]
170);
171impl_generic_scale_to_u8_range_operation!(
172    ScaleToU8RangeC1,
173    scale_to_u8_range_c1,
174    C1,
175    [f32 => scale_f32_to_u8_c1]
176);
177impl_generic_scale_to_u8_range_operation!(
178    ScaleToU8RangeC3,
179    scale_to_u8_range_c3,
180    C3,
181    [f32 => scale_f32_to_u8_c3]
182);
183impl_generic_scale_to_u8_range_operation!(
184    ScaleToU8RangeC4,
185    scale_to_u8_range_c4,
186    C4,
187    [f32 => scale_f32_to_u8_c4]
188);
189impl_generic_scale_to_u8_range_operation!(
190    ScaleToU8RangeAC4,
191    scale_to_u8_range_ac4,
192    AC4,
193    [f32 => scale_f32_to_u8_ac4]
194);