1 /*
2 * Copyright (c) 2019 Rockchip Corporation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16 */
17
18 #include "sample_comm.h"
19 #include "uAPI2/rk_aiq_user_api2_adehaze.h"
20
sample_adehaze_usage()21 static void sample_adehaze_usage()
22 {
23 printf("Usage : \n");
24 // printf("\t 0) ADEHAZE: test rk_aiq_user_api2_adehaze_v10_setSwAttrib
25 // DEHAZE_API_MANUAL Sync.\n"); printf("\t 1) ADEHAZE: test
26 // rk_aiq_user_api2_adehaze_v10_setSwAttrib DEHAZE_API_MANUAL Async.\n");
27 printf(
28 "\t 0) ADEHAZE: test rk_aiq_user_api2_adehaze_v11_setSwAttrib DEHAZE_API_MANUAL "
29 "Sync.\n");
30 printf(
31 "\t 1) ADEHAZE: test rk_aiq_user_api2_adehaze_v11_setSwAttrib DEHAZE_API_MANUAL "
32 "Async.\n");
33 printf("\t 2) ADEHAZE: test rk_aiq_user_api2_adehaze_v11_getSwAttrib.\n");
34 printf(
35 "\t 3) ADEHAZE: test rk_aiq_user_api2_adehaze_v12_setSwAttrib DEHAZE_API_MANUAL "
36 "Sync.\n");
37 printf(
38 "\t 4) ADEHAZE: test rk_aiq_user_api2_adehaze_v12_setSwAttrib DEHAZE_API_MANUAL "
39 "Async.\n");
40 printf("\t 5) ADEHAZE: test rk_aiq_user_api2_adehaze_v12_getSwAttrib.\n");
41 printf(
42 "\t 6) ADEHAZE: test rk_aiq_user_api2_adehaze_setSwAttrib DEHAZE_API_MANUAL "
43 "Sync.\n");
44 printf(
45 "\t 7) ADEHAZE: test rk_aiq_user_api2_adehaze_setSwAttrib DEHAZE_API_MANUAL "
46 "Async.\n");
47 printf("\t 8) ADEHAZE: test rk_aiq_user_api2_adehaze_getSwAttrib.\n");
48 printf("\t 9) ADEHAZE: test rk_aiq_uapi2_setDehazeModuleEnable.\n");
49 printf("\t a) ADEHAZE: test rk_aiq_uapi2_setDehazeEnable.\n");
50 printf("\t b) ADEHAZE: test rk_aiq_uapi2_getMDehazeStrth.\n");
51 printf("\t c) ADEHAZE: test rk_aiq_uapi2_setMDehazeStrth.\n");
52 printf("\t d) ADEHAZE: test rk_aiq_uapi2_setEnhanceEnable.\n");
53 printf("\t e) ADEHAZE: test rk_aiq_uapi2_getMEnhanceStrth.\n");
54 printf("\t f) ADEHAZE: test rk_aiq_uapi2_setMEnhanceStrth.\n");
55 printf("\t g) ADEHAZE: test rk_aiq_uapi2_getMEnhanceChromeStrth.\n");
56 printf("\t h) ADEHAZE: test rk_aiq_uapi2_setMEnhanceChromeStrth.\n");
57 printf("\t q) ADEHAZE: return to main sample screen.\n");
58
59 printf("\n");
60 printf("\t please press the key: ");
61
62 return;
63 }
64
sample_print_adehaze_info(const void * arg)65 void sample_print_adehaze_info(const void *arg)
66 {
67 printf ("enter ADEHAZE modult test!\n");
68 }
69
sample_adehaze_module(const void * arg)70 XCamReturn sample_adehaze_module(const void *arg)
71 {
72 int key = -1;
73 CLEAR();
74
75 const demo_context_t *demo_ctx = (demo_context_t *)arg;
76 const rk_aiq_sys_ctx_t* ctx ;
77 if (demo_ctx->camGroup) {
78 ctx = (rk_aiq_sys_ctx_t*)(demo_ctx->camgroup_ctx);
79 } else {
80 ctx = (rk_aiq_sys_ctx_t*)(demo_ctx->aiq_ctx);
81 }
82
83 do {
84 sample_adehaze_usage ();
85
86 key = getchar ();
87 while (key == '\n' || key == '\r')
88 key = getchar();
89 printf ("\n");
90
91 adehaze_sw_v11_t attr_v11;
92 memset(&attr_v11, 0, sizeof(adehaze_sw_v11_t));
93 adehaze_sw_v12_t attr_v12;
94 memset(&attr_v12, 0, sizeof(adehaze_sw_v12_t));
95 adehaze_sw_V2_t attr_v2;
96 memset(&attr_v2, 0, sizeof(adehaze_sw_V2_t));
97
98 switch (key)
99 {
100 case '0': {
101 printf(
102 "\t ADEHAZE test rk_aiq_user_api2_adehaze_v11_setSwAttrib DEHAZE_API_MANUAL "
103 "Sync\n\n");
104 attr_v11.sync.sync_mode = RK_AIQ_UAPI_MODE_DEFAULT;
105 attr_v11.sync.done = false;
106 attr_v11.mode = DEHAZE_API_MANUAL;
107 attr_v11.stManual.Enable = true;
108 attr_v11.stManual.cfg_alpha = 1.0;
109 attr_v11.stManual.dehaze_setting.en = false;
110 attr_v11.stManual.dehaze_setting.air_lc_en = true;
111 attr_v11.stManual.dehaze_setting.stab_fnum = 8;
112 attr_v11.stManual.dehaze_setting.sigma = 6;
113 attr_v11.stManual.dehaze_setting.wt_sigma = 8;
114 attr_v11.stManual.dehaze_setting.air_sigma = 120;
115 attr_v11.stManual.dehaze_setting.tmax_sigma = 0.01;
116 attr_v11.stManual.dehaze_setting.pre_wet = 0.01;
117 attr_v11.stManual.dehaze_setting.DehazeData.dc_min_th = 64;
118 attr_v11.stManual.dehaze_setting.DehazeData.dc_max_th = 192;
119 attr_v11.stManual.dehaze_setting.DehazeData.yhist_th = 249;
120 attr_v11.stManual.dehaze_setting.DehazeData.yblk_th = 0.002;
121 attr_v11.stManual.dehaze_setting.DehazeData.dark_th = 250;
122 attr_v11.stManual.dehaze_setting.DehazeData.bright_min = 180;
123 attr_v11.stManual.dehaze_setting.DehazeData.bright_max = 240;
124 attr_v11.stManual.dehaze_setting.DehazeData.wt_max = 0.9;
125 attr_v11.stManual.dehaze_setting.DehazeData.air_min = 200;
126 attr_v11.stManual.dehaze_setting.DehazeData.air_max = 250;
127 attr_v11.stManual.dehaze_setting.DehazeData.tmax_base = 125;
128 attr_v11.stManual.dehaze_setting.DehazeData.tmax_off = 0.1;
129 attr_v11.stManual.dehaze_setting.DehazeData.tmax_max = 0.8;
130 attr_v11.stManual.dehaze_setting.DehazeData.cfg_wt = 0.8;
131 attr_v11.stManual.dehaze_setting.DehazeData.cfg_air = 211;
132 attr_v11.stManual.dehaze_setting.DehazeData.cfg_tmax = 0.2;
133 attr_v11.stManual.dehaze_setting.DehazeData.dc_weitcur = 1;
134 attr_v11.stManual.dehaze_setting.DehazeData.bf_weight = 0.5;
135 attr_v11.stManual.dehaze_setting.DehazeData.range_sigma = 0.14;
136 attr_v11.stManual.dehaze_setting.DehazeData.space_sigma_pre = 0.14;
137 attr_v11.stManual.dehaze_setting.DehazeData.space_sigma_cur = 0.14;
138
139 attr_v11.stManual.enhance_setting.en = true;
140 attr_v11.stManual.enhance_setting.EnhanceData.enhance_value = 1.0;
141 attr_v11.stManual.enhance_setting.EnhanceData.enhance_chroma = 1.0;
142 attr_v11.stManual.enhance_setting.enhance_curve[0] = 0;
143 attr_v11.stManual.enhance_setting.enhance_curve[1] = 64;
144 attr_v11.stManual.enhance_setting.enhance_curve[2] = 128;
145 attr_v11.stManual.enhance_setting.enhance_curve[3] = 192;
146 attr_v11.stManual.enhance_setting.enhance_curve[4] = 256;
147 attr_v11.stManual.enhance_setting.enhance_curve[5] = 320;
148 attr_v11.stManual.enhance_setting.enhance_curve[6] = 384;
149 attr_v11.stManual.enhance_setting.enhance_curve[7] = 448;
150 attr_v11.stManual.enhance_setting.enhance_curve[8] = 512;
151 attr_v11.stManual.enhance_setting.enhance_curve[9] = 576;
152 attr_v11.stManual.enhance_setting.enhance_curve[10] = 640;
153 attr_v11.stManual.enhance_setting.enhance_curve[11] = 704;
154 attr_v11.stManual.enhance_setting.enhance_curve[12] = 768;
155 attr_v11.stManual.enhance_setting.enhance_curve[13] = 832;
156 attr_v11.stManual.enhance_setting.enhance_curve[14] = 896;
157 attr_v11.stManual.enhance_setting.enhance_curve[15] = 960;
158 attr_v11.stManual.enhance_setting.enhance_curve[16] = 1023;
159
160 attr_v11.stManual.hist_setting.en = false;
161 attr_v11.stManual.hist_setting.hist_para_en = true;
162 attr_v11.stManual.hist_setting.HistData.hist_gratio = 2;
163 attr_v11.stManual.hist_setting.HistData.hist_th_off = 64;
164 attr_v11.stManual.hist_setting.HistData.hist_k = 2;
165 attr_v11.stManual.hist_setting.HistData.hist_min = 0.015;
166 attr_v11.stManual.hist_setting.HistData.hist_scale = 0.09;
167 attr_v11.stManual.hist_setting.HistData.cfg_gratio = 2;
168
169 rk_aiq_user_api2_adehaze_v11_setSwAttrib(ctx, &attr_v11);
170 break;
171 }
172 case '1': {
173 printf(
174 "\t ADEHAZE test rk_aiq_user_api2_adehaze_v11_setSwAttrib DEHAZE_API_MANUAL "
175 "Async\n\n");
176 attr_v11.sync.sync_mode = RK_AIQ_UAPI_MODE_ASYNC;
177 attr_v11.sync.done = false;
178 attr_v11.mode = DEHAZE_API_MANUAL;
179 attr_v11.stManual.Enable = true;
180 attr_v11.stManual.cfg_alpha = 0.0;
181 attr_v11.stManual.dehaze_setting.en = false;
182 attr_v11.stManual.dehaze_setting.air_lc_en = true;
183 attr_v11.stManual.dehaze_setting.stab_fnum = 8;
184 attr_v11.stManual.dehaze_setting.sigma = 6;
185 attr_v11.stManual.dehaze_setting.wt_sigma = 8;
186 attr_v11.stManual.dehaze_setting.air_sigma = 120;
187 attr_v11.stManual.dehaze_setting.tmax_sigma = 0.01;
188 attr_v11.stManual.dehaze_setting.pre_wet = 0.01;
189 attr_v11.stManual.dehaze_setting.DehazeData.dc_min_th = 64;
190 attr_v11.stManual.dehaze_setting.DehazeData.dc_max_th = 192;
191 attr_v11.stManual.dehaze_setting.DehazeData.yhist_th = 249;
192 attr_v11.stManual.dehaze_setting.DehazeData.yblk_th = 0.002;
193 attr_v11.stManual.dehaze_setting.DehazeData.dark_th = 250;
194 attr_v11.stManual.dehaze_setting.DehazeData.bright_min = 180;
195 attr_v11.stManual.dehaze_setting.DehazeData.bright_max = 240;
196 attr_v11.stManual.dehaze_setting.DehazeData.wt_max = 0.9;
197 attr_v11.stManual.dehaze_setting.DehazeData.air_min = 200;
198 attr_v11.stManual.dehaze_setting.DehazeData.air_max = 250;
199 attr_v11.stManual.dehaze_setting.DehazeData.tmax_base = 125;
200 attr_v11.stManual.dehaze_setting.DehazeData.tmax_off = 0.1;
201 attr_v11.stManual.dehaze_setting.DehazeData.tmax_max = 0.8;
202 attr_v11.stManual.dehaze_setting.DehazeData.cfg_wt = 0.8;
203 attr_v11.stManual.dehaze_setting.DehazeData.cfg_air = 211;
204 attr_v11.stManual.dehaze_setting.DehazeData.cfg_tmax = 0.2;
205 attr_v11.stManual.dehaze_setting.DehazeData.dc_weitcur = 1;
206 attr_v11.stManual.dehaze_setting.DehazeData.bf_weight = 0.5;
207 attr_v11.stManual.dehaze_setting.DehazeData.range_sigma = 0.14;
208 attr_v11.stManual.dehaze_setting.DehazeData.space_sigma_pre = 0.14;
209 attr_v11.stManual.dehaze_setting.DehazeData.space_sigma_cur = 0.14;
210
211 attr_v11.stManual.enhance_setting.en = true;
212 attr_v11.stManual.enhance_setting.EnhanceData.enhance_value = 2.0;
213 attr_v11.stManual.enhance_setting.EnhanceData.enhance_chroma = 2.0;
214 attr_v11.stManual.enhance_setting.enhance_curve[0] = 0;
215 attr_v11.stManual.enhance_setting.enhance_curve[1] = 64;
216 attr_v11.stManual.enhance_setting.enhance_curve[2] = 128;
217 attr_v11.stManual.enhance_setting.enhance_curve[3] = 192;
218 attr_v11.stManual.enhance_setting.enhance_curve[4] = 256;
219 attr_v11.stManual.enhance_setting.enhance_curve[5] = 320;
220 attr_v11.stManual.enhance_setting.enhance_curve[6] = 384;
221 attr_v11.stManual.enhance_setting.enhance_curve[7] = 448;
222 attr_v11.stManual.enhance_setting.enhance_curve[8] = 512;
223 attr_v11.stManual.enhance_setting.enhance_curve[9] = 576;
224 attr_v11.stManual.enhance_setting.enhance_curve[10] = 640;
225 attr_v11.stManual.enhance_setting.enhance_curve[11] = 704;
226 attr_v11.stManual.enhance_setting.enhance_curve[12] = 768;
227 attr_v11.stManual.enhance_setting.enhance_curve[13] = 832;
228 attr_v11.stManual.enhance_setting.enhance_curve[14] = 896;
229 attr_v11.stManual.enhance_setting.enhance_curve[15] = 960;
230 attr_v11.stManual.enhance_setting.enhance_curve[16] = 1023;
231
232 attr_v11.stManual.hist_setting.en = false;
233 attr_v11.stManual.hist_setting.hist_para_en = true;
234 attr_v11.stManual.hist_setting.HistData.hist_gratio = 2;
235 attr_v11.stManual.hist_setting.HistData.hist_th_off = 64;
236 attr_v11.stManual.hist_setting.HistData.hist_k = 2;
237 attr_v11.stManual.hist_setting.HistData.hist_min = 0.015;
238 attr_v11.stManual.hist_setting.HistData.hist_scale = 0.09;
239 attr_v11.stManual.hist_setting.HistData.cfg_gratio = 2;
240
241 rk_aiq_user_api2_adehaze_v11_setSwAttrib(ctx, &attr_v11);
242 break;
243 }
244 case '2': {
245 printf("\t ADEHAZE test rk_aiq_user_api2_adehaze_v11_getSwAttrib\n\n");
246 rk_aiq_user_api2_adehaze_v11_getSwAttrib(ctx, &attr_v11);
247 printf("\t sync = %d, done = %d\n", attr_v11.sync.sync_mode, attr_v11.sync.done);
248 printf("\t mode: %d\n\n", attr_v11.mode);
249 printf("\t stManual Enable: %d cfg_alpha:%f\n\n", attr_v11.stManual.Enable,
250 attr_v11.stManual.cfg_alpha);
251 printf("\t MDehazeStrth: %d MEnhanceStrth:%d MEnhanceChromeStrth:%d\n\n",
252 attr_v11.Info.MDehazeStrth, attr_v11.Info.MEnhanceStrth,
253 attr_v11.Info.MEnhanceChromeStrth);
254 break;
255 }
256 case '3': {
257 printf(
258 "\t ADEHAZE test rk_aiq_user_api2_adehaze_v12_setSwAttrib DEHAZE_API_MANUAL "
259 "Sync\n\n");
260 attr_v12.sync.sync_mode = RK_AIQ_UAPI_MODE_DEFAULT;
261 attr_v12.sync.done = false;
262 attr_v12.mode = DEHAZE_API_MANUAL;
263 attr_v12.stManual.Enable = true;
264 attr_v12.stManual.cfg_alpha = 1.0;
265 attr_v12.stManual.dehaze_setting.en = false;
266 attr_v12.stManual.dehaze_setting.air_lc_en = true;
267 attr_v12.stManual.dehaze_setting.stab_fnum = 8;
268 attr_v12.stManual.dehaze_setting.sigma = 6;
269 attr_v12.stManual.dehaze_setting.wt_sigma = 8;
270 attr_v12.stManual.dehaze_setting.air_sigma = 120;
271 attr_v12.stManual.dehaze_setting.tmax_sigma = 0.01;
272 attr_v12.stManual.dehaze_setting.pre_wet = 0.01;
273 attr_v12.stManual.dehaze_setting.DehazeData.dc_min_th = 64;
274 attr_v12.stManual.dehaze_setting.DehazeData.dc_max_th = 192;
275 attr_v12.stManual.dehaze_setting.DehazeData.yhist_th = 249;
276 attr_v12.stManual.dehaze_setting.DehazeData.yblk_th = 0.002;
277 attr_v12.stManual.dehaze_setting.DehazeData.dark_th = 250;
278 attr_v12.stManual.dehaze_setting.DehazeData.bright_min = 180;
279 attr_v12.stManual.dehaze_setting.DehazeData.bright_max = 240;
280 attr_v12.stManual.dehaze_setting.DehazeData.wt_max = 0.9;
281 attr_v12.stManual.dehaze_setting.DehazeData.air_min = 200;
282 attr_v12.stManual.dehaze_setting.DehazeData.air_max = 250;
283 attr_v12.stManual.dehaze_setting.DehazeData.tmax_base = 125;
284 attr_v12.stManual.dehaze_setting.DehazeData.tmax_off = 0.1;
285 attr_v12.stManual.dehaze_setting.DehazeData.tmax_max = 0.8;
286 attr_v12.stManual.dehaze_setting.DehazeData.cfg_wt = 0.8;
287 attr_v12.stManual.dehaze_setting.DehazeData.cfg_air = 212;
288 attr_v12.stManual.dehaze_setting.DehazeData.cfg_tmax = 0.2;
289 attr_v12.stManual.dehaze_setting.DehazeData.dc_weitcur = 1;
290 attr_v12.stManual.dehaze_setting.DehazeData.bf_weight = 0.5;
291 attr_v12.stManual.dehaze_setting.DehazeData.range_sigma = 0.14;
292 attr_v12.stManual.dehaze_setting.DehazeData.space_sigma_pre = 0.14;
293 attr_v12.stManual.dehaze_setting.DehazeData.space_sigma_cur = 0.14;
294
295 attr_v12.stManual.enhance_setting.en = true;
296 attr_v12.stManual.enhance_setting.color_deviate_en = false;
297 attr_v12.stManual.enhance_setting.enh_luma_en = false;
298 attr_v12.stManual.enhance_setting.EnhanceData.enhance_value = 1.0;
299 attr_v12.stManual.enhance_setting.EnhanceData.enhance_chroma = 1.0;
300 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[0] = 0;
301 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[1] = 64;
302 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[2] = 128;
303 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[3] = 192;
304 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[4] = 256;
305 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[5] = 320;
306 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[6] = 384;
307 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[7] = 448;
308 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[8] = 512;
309 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[9] = 576;
310 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[10] = 640;
311 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[11] = 704;
312 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[12] = 768;
313 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[13] = 832;
314 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[14] = 896;
315 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[15] = 960;
316 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[16] = 1023;
317 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[0] = 0;
318 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[1] = 64;
319 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[2] = 128;
320 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[3] = 192;
321 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[4] = 256;
322 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[5] = 320;
323 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[6] = 384;
324 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[7] = 448;
325 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[8] = 512;
326 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[9] = 576;
327 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[10] = 640;
328 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[11] = 704;
329 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[12] = 768;
330 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[13] = 832;
331 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[14] = 896;
332 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[15] = 960;
333 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[16] = 1023;
334
335 attr_v12.stManual.hist_setting.en = false;
336 attr_v12.stManual.hist_setting.hist_para_en = true;
337 attr_v12.stManual.hist_setting.hist_wr.mode = HIST_WR_AUTO;
338 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[0] = 0;
339 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[1] = 64;
340 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[2] = 128;
341 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[3] = 192;
342 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[4] = 256;
343 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[5] = 320;
344 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[6] = 384;
345 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[7] = 448;
346 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[8] = 512;
347 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[9] = 576;
348 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[10] = 640;
349 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[11] = 704;
350 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[12] = 768;
351 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[13] = 832;
352 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[14] = 896;
353 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[15] = 960;
354 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[16] = 1023;
355 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[0] = 0;
356 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[1] = 64;
357 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[2] = 128;
358 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[3] = 192;
359 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[4] = 256;
360 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[5] = 320;
361 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[6] = 384;
362 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[7] = 448;
363 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[8] = 512;
364 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[9] = 576;
365 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[10] = 640;
366 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[11] = 704;
367 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[12] = 768;
368 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[13] = 832;
369 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[14] = 896;
370 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[15] = 960;
371 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[16] = 1023;
372 attr_v12.stManual.hist_setting.HistData.hist_gratio = 2;
373 attr_v12.stManual.hist_setting.HistData.hist_th_off = 64;
374 attr_v12.stManual.hist_setting.HistData.hist_k = 2;
375 attr_v12.stManual.hist_setting.HistData.hist_min = 0.015;
376 attr_v12.stManual.hist_setting.HistData.hist_scale = 0.09;
377 attr_v12.stManual.hist_setting.HistData.cfg_gratio = 2;
378
379 rk_aiq_user_api2_adehaze_v12_setSwAttrib(ctx, &attr_v12);
380 break;
381 }
382 case '4': {
383 printf(
384 "\t ADEHAZE test rk_aiq_user_api2_adehaze_v12_setSwAttrib DEHAZE_API_MANUAL "
385 "Async\n\n");
386 attr_v12.sync.sync_mode = RK_AIQ_UAPI_MODE_ASYNC;
387 attr_v12.sync.done = false;
388 attr_v12.mode = DEHAZE_API_MANUAL;
389 attr_v12.stManual.Enable = false;
390 attr_v12.stManual.cfg_alpha = 0.0;
391 attr_v12.stManual.dehaze_setting.en = false;
392 attr_v12.stManual.dehaze_setting.air_lc_en = true;
393 attr_v12.stManual.dehaze_setting.stab_fnum = 8;
394 attr_v12.stManual.dehaze_setting.sigma = 6;
395 attr_v12.stManual.dehaze_setting.wt_sigma = 8;
396 attr_v12.stManual.dehaze_setting.air_sigma = 120;
397 attr_v12.stManual.dehaze_setting.tmax_sigma = 0.01;
398 attr_v12.stManual.dehaze_setting.pre_wet = 0.01;
399 attr_v12.stManual.dehaze_setting.DehazeData.dc_min_th = 64;
400 attr_v12.stManual.dehaze_setting.DehazeData.dc_max_th = 192;
401 attr_v12.stManual.dehaze_setting.DehazeData.yhist_th = 249;
402 attr_v12.stManual.dehaze_setting.DehazeData.yblk_th = 0.002;
403 attr_v12.stManual.dehaze_setting.DehazeData.dark_th = 250;
404 attr_v12.stManual.dehaze_setting.DehazeData.bright_min = 180;
405 attr_v12.stManual.dehaze_setting.DehazeData.bright_max = 240;
406 attr_v12.stManual.dehaze_setting.DehazeData.wt_max = 0.9;
407 attr_v12.stManual.dehaze_setting.DehazeData.air_min = 200;
408 attr_v12.stManual.dehaze_setting.DehazeData.air_max = 250;
409 attr_v12.stManual.dehaze_setting.DehazeData.tmax_base = 125;
410 attr_v12.stManual.dehaze_setting.DehazeData.tmax_off = 0.1;
411 attr_v12.stManual.dehaze_setting.DehazeData.tmax_max = 0.8;
412 attr_v12.stManual.dehaze_setting.DehazeData.cfg_wt = 0.8;
413 attr_v12.stManual.dehaze_setting.DehazeData.cfg_air = 212;
414 attr_v12.stManual.dehaze_setting.DehazeData.cfg_tmax = 0.2;
415 attr_v12.stManual.dehaze_setting.DehazeData.dc_weitcur = 1;
416 attr_v12.stManual.dehaze_setting.DehazeData.bf_weight = 0.5;
417 attr_v12.stManual.dehaze_setting.DehazeData.range_sigma = 0.14;
418 attr_v12.stManual.dehaze_setting.DehazeData.space_sigma_pre = 0.14;
419 attr_v12.stManual.dehaze_setting.DehazeData.space_sigma_cur = 0.14;
420
421 attr_v12.stManual.enhance_setting.en = true;
422 attr_v12.stManual.enhance_setting.color_deviate_en = false;
423 attr_v12.stManual.enhance_setting.enh_luma_en = false;
424 attr_v12.stManual.enhance_setting.EnhanceData.enhance_value = 2.0;
425 attr_v12.stManual.enhance_setting.EnhanceData.enhance_chroma = 2.0;
426 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[0] = 0;
427 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[1] = 64;
428 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[2] = 128;
429 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[3] = 192;
430 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[4] = 256;
431 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[5] = 320;
432 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[6] = 384;
433 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[7] = 448;
434 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[8] = 512;
435 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[9] = 576;
436 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[10] = 640;
437 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[11] = 704;
438 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[12] = 768;
439 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[13] = 832;
440 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[14] = 896;
441 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[15] = 960;
442 attr_v12.stManual.enhance_setting.EnhanceData.enhance_curve[16] = 1023;
443 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[0] = 0;
444 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[1] = 64;
445 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[2] = 128;
446 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[3] = 192;
447 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[4] = 256;
448 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[5] = 320;
449 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[6] = 384;
450 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[7] = 448;
451 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[8] = 512;
452 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[9] = 576;
453 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[10] = 640;
454 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[11] = 704;
455 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[12] = 768;
456 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[13] = 832;
457 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[14] = 896;
458 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[15] = 960;
459 attr_v12.stManual.enhance_setting.EnhanceData.enh_luma[16] = 1023;
460
461 attr_v12.stManual.hist_setting.en = false;
462 attr_v12.stManual.hist_setting.hist_para_en = true;
463 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[0] = 0;
464 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[1] = 64;
465 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[2] = 128;
466 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[3] = 192;
467 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[4] = 256;
468 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[5] = 320;
469 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[6] = 384;
470 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[7] = 448;
471 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[8] = 512;
472 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[9] = 576;
473 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[10] = 640;
474 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[11] = 704;
475 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[12] = 768;
476 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[13] = 832;
477 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[14] = 896;
478 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[15] = 960;
479 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_x[16] = 1023;
480 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[0] = 0;
481 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[1] = 64;
482 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[2] = 128;
483 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[3] = 192;
484 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[4] = 256;
485 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[5] = 320;
486 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[6] = 384;
487 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[7] = 448;
488 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[8] = 512;
489 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[9] = 576;
490 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[10] = 640;
491 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[11] = 704;
492 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[12] = 768;
493 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[13] = 832;
494 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[14] = 896;
495 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[15] = 960;
496 attr_v12.stManual.hist_setting.hist_wr.manual_curve.curve_y[16] = 1023;
497 attr_v12.stManual.hist_setting.HistData.hist_gratio = 2;
498 attr_v12.stManual.hist_setting.HistData.hist_th_off = 64;
499 attr_v12.stManual.hist_setting.HistData.hist_k = 2;
500 attr_v12.stManual.hist_setting.HistData.hist_min = 0.015;
501 attr_v12.stManual.hist_setting.HistData.hist_scale = 0.09;
502 attr_v12.stManual.hist_setting.HistData.cfg_gratio = 2;
503
504 rk_aiq_user_api2_adehaze_v12_setSwAttrib(ctx, &attr_v12);
505 break;
506 }
507 case '5': {
508 printf("\t ADEHAZE test rk_aiq_user_api2_adehaze_v12_getSwAttrib\n\n");
509 rk_aiq_user_api2_adehaze_v12_getSwAttrib(ctx, &attr_v12);
510 printf("\t sync = %d, done = %d\n", attr_v12.sync.sync_mode, attr_v12.sync.done);
511 printf("\t mode: %d\n\n", attr_v12.mode);
512 printf("\t stManual Enable: %d cfg_alpha:%f\n\n", attr_v12.stManual.Enable,
513 attr_v12.stManual.cfg_alpha);
514 printf("\t MDehazeStrth: %d MEnhanceStrth:%d MEnhanceChromeStrth:%d\n\n",
515 attr_v12.Info.MDehazeStrth, attr_v12.Info.MEnhanceStrth,
516 attr_v12.Info.MEnhanceChromeStrth);
517 break;
518 }
519 case '6': {
520 printf(
521 "\t ADEHAZE test rk_aiq_user_api2_adehaze_setSwAttrib DEHAZE_API_MANUAL "
522 "Sync\n\n");
523 attr_v2.sync.sync_mode = RK_AIQ_UAPI_MODE_DEFAULT;
524 attr_v2.sync.done = false;
525 attr_v2.mode = DEHAZE_API_MANUAL;
526 attr_v2.stManual.Enable = true;
527 attr_v2.stManual.cfg_alpha = 1.0;
528 attr_v2.stManual.dehaze_setting.en = false;
529 attr_v2.stManual.dehaze_setting.air_lc_en = true;
530 attr_v2.stManual.dehaze_setting.stab_fnum = 8;
531 attr_v2.stManual.dehaze_setting.sigma = 6;
532 attr_v2.stManual.dehaze_setting.wt_sigma = 8;
533 attr_v2.stManual.dehaze_setting.air_sigma = 120;
534 attr_v2.stManual.dehaze_setting.tmax_sigma = 0.01;
535 attr_v2.stManual.dehaze_setting.pre_wet = 0.01;
536 attr_v2.stManual.dehaze_setting.DehazeData.dc_min_th = 64;
537 attr_v2.stManual.dehaze_setting.DehazeData.dc_max_th = 192;
538 attr_v2.stManual.dehaze_setting.DehazeData.yhist_th = 249;
539 attr_v2.stManual.dehaze_setting.DehazeData.yblk_th = 0.002;
540 attr_v2.stManual.dehaze_setting.DehazeData.dark_th = 250;
541 attr_v2.stManual.dehaze_setting.DehazeData.bright_min = 180;
542 attr_v2.stManual.dehaze_setting.DehazeData.bright_max = 240;
543 attr_v2.stManual.dehaze_setting.DehazeData.wt_max = 0.9;
544 attr_v2.stManual.dehaze_setting.DehazeData.air_min = 200;
545 attr_v2.stManual.dehaze_setting.DehazeData.air_max = 250;
546 attr_v2.stManual.dehaze_setting.DehazeData.tmax_base = 125;
547 attr_v2.stManual.dehaze_setting.DehazeData.tmax_off = 0.1;
548 attr_v2.stManual.dehaze_setting.DehazeData.tmax_max = 0.8;
549 attr_v2.stManual.dehaze_setting.DehazeData.cfg_wt = 0.8;
550 attr_v2.stManual.dehaze_setting.DehazeData.cfg_air = 211;
551 attr_v2.stManual.dehaze_setting.DehazeData.cfg_tmax = 0.2;
552 attr_v2.stManual.dehaze_setting.DehazeData.dc_weitcur = 1;
553 attr_v2.stManual.dehaze_setting.DehazeData.bf_weight = 0.5;
554 attr_v2.stManual.dehaze_setting.DehazeData.range_sigma = 0.14;
555 attr_v2.stManual.dehaze_setting.DehazeData.space_sigma_pre = 0.14;
556 attr_v2.stManual.dehaze_setting.DehazeData.space_sigma_cur = 0.14;
557
558 attr_v2.stManual.enhance_setting.en = true;
559 attr_v2.stManual.enhance_setting.EnhanceData.enhance_value = 1.0;
560 attr_v2.stManual.enhance_setting.EnhanceData.enhance_chroma = 1.0;
561 attr_v2.stManual.enhance_setting.enhance_curve[0] = 0;
562 attr_v2.stManual.enhance_setting.enhance_curve[1] = 64;
563 attr_v2.stManual.enhance_setting.enhance_curve[2] = 128;
564 attr_v2.stManual.enhance_setting.enhance_curve[3] = 192;
565 attr_v2.stManual.enhance_setting.enhance_curve[4] = 256;
566 attr_v2.stManual.enhance_setting.enhance_curve[5] = 320;
567 attr_v2.stManual.enhance_setting.enhance_curve[6] = 384;
568 attr_v2.stManual.enhance_setting.enhance_curve[7] = 448;
569 attr_v2.stManual.enhance_setting.enhance_curve[8] = 512;
570 attr_v2.stManual.enhance_setting.enhance_curve[9] = 576;
571 attr_v2.stManual.enhance_setting.enhance_curve[10] = 640;
572 attr_v2.stManual.enhance_setting.enhance_curve[11] = 704;
573 attr_v2.stManual.enhance_setting.enhance_curve[12] = 768;
574 attr_v2.stManual.enhance_setting.enhance_curve[13] = 832;
575 attr_v2.stManual.enhance_setting.enhance_curve[14] = 896;
576 attr_v2.stManual.enhance_setting.enhance_curve[15] = 960;
577 attr_v2.stManual.enhance_setting.enhance_curve[16] = 1023;
578
579 attr_v2.stManual.hist_setting.en = false;
580 attr_v2.stManual.hist_setting.hist_para_en = true;
581 attr_v2.stManual.hist_setting.HistData.hist_gratio = 2;
582 attr_v2.stManual.hist_setting.HistData.hist_th_off = 64;
583 attr_v2.stManual.hist_setting.HistData.hist_k = 2;
584 attr_v2.stManual.hist_setting.HistData.hist_min = 0.015;
585 attr_v2.stManual.hist_setting.HistData.hist_scale = 0.09;
586 attr_v2.stManual.hist_setting.HistData.cfg_gratio = 2;
587
588 rk_aiq_user_api2_adehaze_setSwAttrib(ctx, attr_v2);
589 break;
590 }
591 case '7': {
592 printf(
593 "\t ADEHAZE test rk_aiq_user_api2_adehaze_setSwAttrib DEHAZE_API_MANUAL "
594 "Async\n\n");
595 attr_v2.sync.sync_mode = RK_AIQ_UAPI_MODE_ASYNC;
596 attr_v2.sync.done = false;
597 attr_v2.mode = DEHAZE_API_MANUAL;
598 attr_v2.stManual.Enable = true;
599 attr_v2.stManual.cfg_alpha = 0.0;
600 attr_v2.stManual.dehaze_setting.en = false;
601 attr_v2.stManual.dehaze_setting.air_lc_en = true;
602 attr_v2.stManual.dehaze_setting.stab_fnum = 8;
603 attr_v2.stManual.dehaze_setting.sigma = 6;
604 attr_v2.stManual.dehaze_setting.wt_sigma = 8;
605 attr_v2.stManual.dehaze_setting.air_sigma = 120;
606 attr_v2.stManual.dehaze_setting.tmax_sigma = 0.01;
607 attr_v2.stManual.dehaze_setting.pre_wet = 0.01;
608 attr_v2.stManual.dehaze_setting.DehazeData.dc_min_th = 64;
609 attr_v2.stManual.dehaze_setting.DehazeData.dc_max_th = 192;
610 attr_v2.stManual.dehaze_setting.DehazeData.yhist_th = 249;
611 attr_v2.stManual.dehaze_setting.DehazeData.yblk_th = 0.002;
612 attr_v2.stManual.dehaze_setting.DehazeData.dark_th = 250;
613 attr_v2.stManual.dehaze_setting.DehazeData.bright_min = 180;
614 attr_v2.stManual.dehaze_setting.DehazeData.bright_max = 240;
615 attr_v2.stManual.dehaze_setting.DehazeData.wt_max = 0.9;
616 attr_v2.stManual.dehaze_setting.DehazeData.air_min = 200;
617 attr_v2.stManual.dehaze_setting.DehazeData.air_max = 250;
618 attr_v2.stManual.dehaze_setting.DehazeData.tmax_base = 125;
619 attr_v2.stManual.dehaze_setting.DehazeData.tmax_off = 0.1;
620 attr_v2.stManual.dehaze_setting.DehazeData.tmax_max = 0.8;
621 attr_v2.stManual.dehaze_setting.DehazeData.cfg_wt = 0.8;
622 attr_v2.stManual.dehaze_setting.DehazeData.cfg_air = 211;
623 attr_v2.stManual.dehaze_setting.DehazeData.cfg_tmax = 0.2;
624 attr_v2.stManual.dehaze_setting.DehazeData.dc_weitcur = 1;
625 attr_v2.stManual.dehaze_setting.DehazeData.bf_weight = 0.5;
626 attr_v2.stManual.dehaze_setting.DehazeData.range_sigma = 0.14;
627 attr_v2.stManual.dehaze_setting.DehazeData.space_sigma_pre = 0.14;
628 attr_v2.stManual.dehaze_setting.DehazeData.space_sigma_cur = 0.14;
629
630 attr_v2.stManual.enhance_setting.en = true;
631 attr_v2.stManual.enhance_setting.EnhanceData.enhance_value = 2.0;
632 attr_v2.stManual.enhance_setting.EnhanceData.enhance_chroma = 2.0;
633 attr_v2.stManual.enhance_setting.enhance_curve[0] = 0;
634 attr_v2.stManual.enhance_setting.enhance_curve[1] = 64;
635 attr_v2.stManual.enhance_setting.enhance_curve[2] = 128;
636 attr_v2.stManual.enhance_setting.enhance_curve[3] = 192;
637 attr_v2.stManual.enhance_setting.enhance_curve[4] = 256;
638 attr_v2.stManual.enhance_setting.enhance_curve[5] = 320;
639 attr_v2.stManual.enhance_setting.enhance_curve[6] = 384;
640 attr_v2.stManual.enhance_setting.enhance_curve[7] = 448;
641 attr_v2.stManual.enhance_setting.enhance_curve[8] = 512;
642 attr_v2.stManual.enhance_setting.enhance_curve[9] = 576;
643 attr_v2.stManual.enhance_setting.enhance_curve[10] = 640;
644 attr_v2.stManual.enhance_setting.enhance_curve[11] = 704;
645 attr_v2.stManual.enhance_setting.enhance_curve[12] = 768;
646 attr_v2.stManual.enhance_setting.enhance_curve[13] = 832;
647 attr_v2.stManual.enhance_setting.enhance_curve[14] = 896;
648 attr_v2.stManual.enhance_setting.enhance_curve[15] = 960;
649 attr_v2.stManual.enhance_setting.enhance_curve[16] = 1023;
650
651 attr_v2.stManual.hist_setting.en = false;
652 attr_v2.stManual.hist_setting.hist_para_en = true;
653 attr_v2.stManual.hist_setting.HistData.hist_gratio = 2;
654 attr_v2.stManual.hist_setting.HistData.hist_th_off = 64;
655 attr_v2.stManual.hist_setting.HistData.hist_k = 2;
656 attr_v2.stManual.hist_setting.HistData.hist_min = 0.015;
657 attr_v2.stManual.hist_setting.HistData.hist_scale = 0.09;
658 attr_v2.stManual.hist_setting.HistData.cfg_gratio = 2;
659
660 rk_aiq_user_api2_adehaze_setSwAttrib(ctx, attr_v2);
661 break;
662 }
663 case '8': {
664 printf("\t ADEHAZE test rk_aiq_user_api2_adehaze_getSwAttrib\n\n");
665 rk_aiq_user_api2_adehaze_getSwAttrib(ctx, &attr_v2);
666 printf("\t sync = %d, done = %d\n", attr_v2.sync.sync_mode, attr_v2.sync.done);
667 printf("\t mode: %d\n\n", attr_v2.mode);
668 printf("\t stManual Enable: %d cfg_alpha:%f\n\n", attr_v2.stManual.Enable,
669 attr_v2.stManual.cfg_alpha);
670 printf("\t MDehazeStrth: %d MEnhanceStrth:%d \n\n", attr_v2.stDehazeManu.level,
671 attr_v2.stEnhanceManu.level);
672 break;
673 }
674 case '9': {
675 printf("\t ADEHAZE test rk_aiq_uapi2_setDehazeModuleEnable\n\n");
676 rk_aiq_uapi2_setDehazeModuleEnable(ctx, false);
677 break;
678 }
679 case 'a': {
680 printf("\t ADEHAZE test rk_aiq_uapi2_setDehazeEnable\n\n");
681 rk_aiq_uapi2_setDehazeEnable(ctx, false);
682 break;
683 }
684 case 'b': {
685 printf("\t ADEHAZE test rk_aiq_uapi2_getMDehazeStrth\n\n");
686 unsigned int level = 60;
687 rk_aiq_uapi2_getMDehazeStrth(ctx, &level);
688 printf("\t rk_aiq_uapi2_getMDehazeStrth level: %d\n\n", level);
689 break;
690 }
691 case 'c': {
692 printf("\t ADEHAZE test rk_aiq_uapi2_setMDehazeStrth\n\n");
693 rk_aiq_uapi2_setDehazeModuleEnable(ctx, true);
694 rk_aiq_uapi2_setDehazeEnable(ctx, true);
695 unsigned int level = 70;
696 rk_aiq_uapi2_setMDehazeStrth(ctx, level);
697 printf("\t rk_aiq_uapi2_setMDehazeStrth level: %d\n\n", level);
698 break;
699 }
700 case 'd': {
701 printf("\t ADEHAZE test rk_aiq_uapi2_setEnhanceEnable\n\n");
702 rk_aiq_uapi2_setEnhanceEnable(ctx, false);
703 break;
704 }
705 case 'e': {
706 printf("\t ADEHAZE test rk_aiq_uapi2_getMEnhanceStrth\n\n");
707 unsigned int level = 60;
708 rk_aiq_uapi2_getMEnhanceStrth(ctx, &level);
709 printf("\t rk_aiq_uapi2_getMEnhanceStrth level: %d\n\n", level);
710 break;
711 }
712 case 'f': {
713 printf("\t ADEHAZE test rk_aiq_uapi2_setMEnhanceStrth\n\n");
714 rk_aiq_uapi2_setDehazeModuleEnable(ctx, true);
715 rk_aiq_uapi2_setMEnhanceStrth(ctx, true);
716 unsigned int level = 70;
717 rk_aiq_uapi2_setMEnhanceStrth(ctx, level);
718 printf("\t rk_aiq_uapi2_setMEnhanceStrth level: %d\n\n", level);
719 break;
720 }
721 case 'g': {
722 printf("\t ADEHAZE test rk_aiq_uapi2_getMEnhanceChromeStrth\n\n");
723 unsigned int level = 60;
724 rk_aiq_uapi2_getMEnhanceChromeStrth(ctx, &level);
725 printf("\t rk_aiq_uapi2_getMEnhanceChromeStrth level: %d\n\n", level);
726 break;
727 }
728 case 'h': {
729 printf("\t ADEHAZE test rk_aiq_uapi2_setMEnhanceChromeStrth\n\n");
730 rk_aiq_uapi2_setDehazeModuleEnable(ctx, true);
731 rk_aiq_uapi2_setMEnhanceStrth(ctx, true);
732 unsigned int level = 70;
733 rk_aiq_uapi2_setMEnhanceChromeStrth(ctx, level);
734 printf("\t rk_aiq_uapi2_setMEnhanceChromeStrth level: %d\n\n", level);
735 break;
736 }
737 default:
738 break;
739 }
740 } while (key != 'q' && key != 'Q');
741
742 return XCAM_RETURN_NO_ERROR;
743 }
744