xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkisp_demo/demo/sample/sample_adehaze_module.cpp (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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