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
sample_asharp_usage()20 static void sample_asharp_usage()
21 {
22 printf("Usage : \n");
23 printf("\t 0) ASHARP: get asharp attri on sync mode.\n");
24 printf("\t 1) ASHARP: get asharp strength on sync mode.\n");
25 printf("\t 2) ASHARP: set asharp attri auto on sync mode.\n");
26 printf("\t 3) ASHARP: set asharp attri manual on sync mode.\n");
27 printf("\t 4) ASHARP: set asharp attri reg value on sync mode.\n");
28 printf("\t 5) ASHARP: set asharp strength max value 1.0 on sync mode, only on auto mode has effect.\n");
29 printf("\t 6) ASHARP: set asharp strength min value 0.0 on sync mode, only on auto mode has effect.\n");
30 printf("\t 7) ASHARP: set asharp strength med value 0.5 on sync mode, only on auto mode has effect.\n");
31 printf("\t 8) ASHARP: set asharp attri to default value on sync mode.\n");
32 printf("\t a) ASHARP: get asharp attri on async mode.\n");
33 printf("\t b) ASHARP: get asharp strength on async mode.\n");
34 printf("\t c) ASHARP: set asharp attri auto on async mode.\n");
35 printf("\t d) ASHARP: set asharp attri manual on async mode.\n");
36 printf("\t e) ASHARP: set asharp attri reg value on async mode.\n");
37 printf("\t f) ASHARP: set asharp strength max value 1.0 on async mode, only on auto mode has effect.\n");
38 printf("\t g) ASHARP: set asharp strength min value 0.0 on async mode, only on auto mode has effect.\n");
39 printf("\t h) ASHARP: set asharp strength med value 0.5 on async mode, only on auto mode has effect.\n");
40 printf("\t i) ASHARP: set asharp attri to default value on async mode.\n");
41 printf("\t q) ASHARP: press key q or Q to quit.\n");
42 }
43
sample_print_asharp_info(const void * arg)44 void sample_print_asharp_info(const void *arg)
45 {
46 printf ("enter ASHARP modult test!\n");
47 }
48
sample_sharp_setAuto_v4(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)49 XCamReturn sample_sharp_setAuto_v4(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode)
50 {
51 XCamReturn ret = XCAM_RETURN_NO_ERROR;
52 rk_aiq_sharp_attrib_v4_t sharpV4_attr;
53 sharpV4_attr.sync.sync_mode = sync_mode;
54 ret = rk_aiq_user_api2_asharpV4_GetAttrib(ctx, &sharpV4_attr);
55 sharpV4_attr.sync.sync_mode = sync_mode;
56 sharpV4_attr.eMode = ASHARP4_OP_MODE_AUTO;
57 sharpV4_attr.stAuto.stParams.enable = 1;
58 for(int i = 0; i < RK_SHARP_V4_MAX_ISO_NUM; i++) {
59 sharpV4_attr.stAuto.stParams.iso[i] = 50 * pow(2, i);
60
61 sharpV4_attr.stAuto.stParams.luma_point[0] = 0;
62 sharpV4_attr.stAuto.stParams.luma_point[1] = 64;
63 sharpV4_attr.stAuto.stParams.luma_point[2] = 128;
64 sharpV4_attr.stAuto.stParams.luma_point[3] = 256;
65 sharpV4_attr.stAuto.stParams.luma_point[4] = 384;
66 sharpV4_attr.stAuto.stParams.luma_point[5] = 640;
67 sharpV4_attr.stAuto.stParams.luma_point[6] = 896;
68 sharpV4_attr.stAuto.stParams.luma_point[7] = 1024;
69
70 sharpV4_attr.stAuto.stParams.luma_sigma[i][0] = 16;
71 sharpV4_attr.stAuto.stParams.luma_sigma[i][1] = 16;
72 sharpV4_attr.stAuto.stParams.luma_sigma[i][2] = 16;
73 sharpV4_attr.stAuto.stParams.luma_sigma[i][3] = 16;
74 sharpV4_attr.stAuto.stParams.luma_sigma[i][4] = 16;
75 sharpV4_attr.stAuto.stParams.luma_sigma[i][5] = 16;
76 sharpV4_attr.stAuto.stParams.luma_sigma[i][6] = 16;
77 sharpV4_attr.stAuto.stParams.luma_sigma[i][7] = 16;
78
79 sharpV4_attr.stAuto.stParams.hf_clip[i][0] = 128;
80 sharpV4_attr.stAuto.stParams.hf_clip[i][1] = 128;
81 sharpV4_attr.stAuto.stParams.hf_clip[i][2] = 128;
82 sharpV4_attr.stAuto.stParams.hf_clip[i][3] = 128;
83 sharpV4_attr.stAuto.stParams.hf_clip[i][4] = 128;
84 sharpV4_attr.stAuto.stParams.hf_clip[i][5] = 128;
85 sharpV4_attr.stAuto.stParams.hf_clip[i][6] = 128;
86 sharpV4_attr.stAuto.stParams.hf_clip[i][7] = 128;
87
88 sharpV4_attr.stAuto.stParams.local_sharp_strength[i][0] = 256;
89 sharpV4_attr.stAuto.stParams.local_sharp_strength[i][1] = 256;
90 sharpV4_attr.stAuto.stParams.local_sharp_strength[i][2] = 256;
91 sharpV4_attr.stAuto.stParams.local_sharp_strength[i][3] = 256;
92 sharpV4_attr.stAuto.stParams.local_sharp_strength[i][4] = 256;
93 sharpV4_attr.stAuto.stParams.local_sharp_strength[i][5] = 256;
94 sharpV4_attr.stAuto.stParams.local_sharp_strength[i][6] = 256;
95 sharpV4_attr.stAuto.stParams.local_sharp_strength[i][7] = 256;
96
97
98 sharpV4_attr.stAuto.stParams.pbf_gain[i] = 1.0;
99 sharpV4_attr.stAuto.stParams.pbf_add[i] = 0.0;
100 sharpV4_attr.stAuto.stParams.pbf_ratio[i] = 0.5;
101 sharpV4_attr.stAuto.stParams.gaus_ratio[i] = 0.0;
102 sharpV4_attr.stAuto.stParams.sharp_ratio[i] = 10.0;
103 sharpV4_attr.stAuto.stParams.bf_gain[i] = 1.0;
104 sharpV4_attr.stAuto.stParams.bf_add[i] = 0.0;
105 sharpV4_attr.stAuto.stParams.bf_ratio[i] = 0.5;
106
107 sharpV4_attr.stAuto.stParams.prefilter_coeff[i][0] = 0.2042;
108 sharpV4_attr.stAuto.stParams.prefilter_coeff[i][1] = 0.1238;
109 sharpV4_attr.stAuto.stParams.prefilter_coeff[i][2] = 0.0751;
110
111 sharpV4_attr.stAuto.stParams.hfBilateralFilter_coeff[i][0] = 0.2042;
112 sharpV4_attr.stAuto.stParams.hfBilateralFilter_coeff[i][1] = 0.1238;
113 sharpV4_attr.stAuto.stParams.hfBilateralFilter_coeff[i][2] = 0.0751;
114
115
116 sharpV4_attr.stAuto.stParams.GaussianFilter_coeff[i][0] = 0.0935;
117 sharpV4_attr.stAuto.stParams.GaussianFilter_coeff[i][1] = 0.0724;
118 sharpV4_attr.stAuto.stParams.GaussianFilter_coeff[i][2] = 0.0561;
119 sharpV4_attr.stAuto.stParams.GaussianFilter_coeff[i][3] = 0.0337;
120 sharpV4_attr.stAuto.stParams.GaussianFilter_coeff[i][4] = 0.0261;
121 sharpV4_attr.stAuto.stParams.GaussianFilter_coeff[i][5] = 0.0121;
122
123 sharpV4_attr.stAuto.stParams.kernel_sigma_enable = 0;
124 sharpV4_attr.stAuto.stParams.prefilter_sigma[i] = 1.0;
125 sharpV4_attr.stAuto.stParams.hfBilateralFilter_sigma[i] = 1.0;
126 sharpV4_attr.stAuto.stParams.GaussianFilter_sigma[i] = 1.0;
127 sharpV4_attr.stAuto.stParams.GaussianFilter_radius[i] = 2.0;
128
129 }
130
131 ret = rk_aiq_user_api2_asharpV4_SetAttrib(ctx, &sharpV4_attr);
132 printf("set asharp attri auto ret:%d \n\n", ret);
133
134 rk_aiq_sharp_attrib_v4_t get_sharpV4_attr;
135 get_sharpV4_attr.sync.sync_mode = sync_mode;
136 ret = rk_aiq_user_api2_asharpV4_GetAttrib(ctx, &get_sharpV4_attr);
137 printf("get asharp v4 attri ret:%d done:%d\n\n", ret, get_sharpV4_attr.sync.done);
138 return ret;
139 }
140
141
sample_sharp_setAuto_v33(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)142 XCamReturn sample_sharp_setAuto_v33(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode)
143 {
144 XCamReturn ret = XCAM_RETURN_NO_ERROR;
145 rk_aiq_sharp_attrib_v33_t sharpV33_attr;
146 sharpV33_attr.sync.sync_mode = sync_mode;
147 ret = rk_aiq_user_api2_asharpV33_GetAttrib(ctx, &sharpV33_attr);
148 sharpV33_attr.sync.sync_mode = sync_mode;
149 sharpV33_attr.eMode = ASHARP_V33_OP_MODE_AUTO;
150 sharpV33_attr.stAuto.stParams.enable = 1;
151 sharpV33_attr.stAuto.stParams.kernel_sigma_enable = 1;
152 sharpV33_attr.stAuto.stParams.sharp_ratio_seperate_en = 0;
153
154 sharpV33_attr.stAuto.stParams.Center_Mode = 0;
155 sharpV33_attr.stAuto.stParams.center_x = 0;
156 sharpV33_attr.stAuto.stParams.center_y = 0;
157
158 for(int i = 0; i < RK_SHARP_V4_MAX_ISO_NUM; i++) {
159 sharpV33_attr.stAuto.stParams.iso[i] = 50 * pow(2, i);
160
161 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_point[0] = 0;
162 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_point[1] = 64;
163 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_point[2] = 128;
164 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_point[3] = 256;
165 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_point[4] = 384;
166 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_point[5] = 640;
167 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_point[6] = 896;
168 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_point[7] = 1024;
169
170 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_sigma[0] = 16;
171 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_sigma[1] = 16;
172 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_sigma[2] = 16;
173 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_sigma[3] = 16;
174 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_sigma[4] = 16;
175 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_sigma[5] = 16;
176 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_sigma[6] = 16;
177 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_sigma[7] = 16;
178
179 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip[0] = 256;
180 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip[1] = 256;
181 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip[2] = 256;
182 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip[3] = 256;
183 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip[4] = 256;
184 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip[5] = 256;
185 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip[6] = 256;
186 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip[7] = 256;
187
188 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].pbf_gain = 1.0;
189 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].pbf_add = 0.0;
190 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].pbf_ratio = 0.5;
191 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gaus_ratio = 0.0;
192 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].sharp_ratio = 10.0;
193 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].sharp_ratio_0 = 10.0;
194 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].sharp_ratio_1 = 10.0;
195 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].bf_gain = 1.0;
196 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].bf_add = 0.0;
197 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].bf_ratio = 0.5;
198
199 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].prefilter_coeff[0] = 0.2042;
200 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].prefilter_coeff[1] = 0.1238;
201 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].prefilter_coeff[2] = 0.0751;
202
203 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hfBilateralFilter_coeff[0] = 0.2042;
204 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hfBilateralFilter_coeff[1] = 0.1238;
205 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hfBilateralFilter_coeff[2] = 0.0751;
206
207
208 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff[0] = 0.0935;
209 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff[1] = 0.0724;
210 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff[2] = 0.0561;
211 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff[3] = 0.0337;
212 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff[4] = 0.0261;
213 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff[5] = 0.0121;
214
215 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_0[0] = 0.0935;
216 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_0[1] = 0.0724;
217 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_0[2] = 0.0561;
218 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_0[3] = 0.0337;
219 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_0[4] = 0.0261;
220 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_0[5] = 0.0121;
221
222 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_1[0] = 0.0935;
223 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_1[1] = 0.0724;
224 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_1[2] = 0.0561;
225 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_1[3] = 0.0337;
226 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_1[4] = 0.0261;
227 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_1[5] = 0.0121;
228
229 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].prefilter_sigma = 1.0;
230 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hfBilateralFilter_sigma = 1.0;
231 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_sigma = 1.0;
232 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_radius = 2.0;
233
234 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_sigma_0 = 1.0;
235 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_radius_0 = 2.0;
236 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_sigma_1 = 1.0;
237 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_radius_1 = 2.0;
238
239 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].global_gain = 1.0;
240 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].global_gain_alpha = 0.0;
241 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].local_gainscale = 1.0;
242 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].exgain_bypass = 0;
243 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].noiseclip_strength = 1;
244 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].enhance_bit = 3;
245 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].noiseclip_mode = 0;
246 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].noise_sigma_clip = 1023;
247 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].global_hf_clip_pos = 0;
248
249 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[0] = 1;
250 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[1] = 1;
251 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[2] = 1;
252 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[3] = 1;
253 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[4] = 1;
254 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[5] = 1;
255 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[6] = 1;
256 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[7] = 1;
257 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[8] = 1;
258 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[9] = 1;
259 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[10] = 1;
260 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[11] = 1;
261 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[12] = 1;
262 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[13] = 1;
263
264 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[0] = 1;
265 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[1] = 1;
266 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[2] = 1;
267 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[3] = 1;
268 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[4] = 1;
269 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[5] = 1;
270 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[6] = 1;
271 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[7] = 1;
272 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[8] = 1;
273 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[9] = 1;
274 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[10] = 1;
275 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[11] = 1;
276 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[12] = 1;
277 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[13] = 1;
278 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[14] = 1;
279 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[15] = 1;
280 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[16] = 1;
281 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[17] = 1;
282 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[18] = 1;
283 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[19] = 1;
284 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[20] = 1;
285 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[21] = 1;
286
287 }
288
289 ret = rk_aiq_user_api2_asharpV33_SetAttrib(ctx, &sharpV33_attr);
290 printf("set asharp attri auto ret:%d \n\n", ret);
291
292 rk_aiq_sharp_attrib_v33_t get_sharpV33_attr;
293 get_sharpV33_attr.sync.sync_mode = sync_mode;
294 ret = rk_aiq_user_api2_asharpV33_GetAttrib(ctx, &get_sharpV33_attr);
295 printf("get asharp v4 attri ret:%d done:%d\n\n", ret, get_sharpV33_attr.sync.done);
296 return ret;
297 }
298
sample_sharp_setAuto_v33Lite(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)299 XCamReturn sample_sharp_setAuto_v33Lite(const rk_aiq_sys_ctx_t* ctx,
300 rk_aiq_uapi_mode_sync_e sync_mode) {
301 XCamReturn ret = XCAM_RETURN_NO_ERROR;
302 rk_aiq_sharp_attrib_v33LT_t sharpV33_attr;
303 sharpV33_attr.sync.sync_mode = sync_mode;
304 ret = rk_aiq_user_api2_asharpV33Lite_GetAttrib(ctx, &sharpV33_attr);
305 sharpV33_attr.sync.sync_mode = sync_mode;
306 sharpV33_attr.eMode = ASHARP_V33_OP_MODE_AUTO;
307 sharpV33_attr.stAuto.stParams.enable = 1;
308 sharpV33_attr.stAuto.stParams.kernel_sigma_enable = 1;
309 sharpV33_attr.stAuto.stParams.sharp_ratio_seperate_en = 0;
310
311 sharpV33_attr.stAuto.stParams.Center_Mode = 0;
312 sharpV33_attr.stAuto.stParams.center_x = 0;
313 sharpV33_attr.stAuto.stParams.center_y = 0;
314
315 for (int i = 0; i < RK_SHARP_V4_MAX_ISO_NUM; i++) {
316 sharpV33_attr.stAuto.stParams.iso[i] = 50 * pow(2, i);
317
318 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_point[0] = 0;
319 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_point[1] = 64;
320 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_point[2] = 128;
321 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_point[3] = 256;
322 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_point[4] = 384;
323 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_point[5] = 640;
324 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_point[6] = 896;
325 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_point[7] = 1024;
326
327 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_sigma[0] = 16;
328 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_sigma[1] = 16;
329 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_sigma[2] = 16;
330 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_sigma[3] = 16;
331 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_sigma[4] = 16;
332 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_sigma[5] = 16;
333 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_sigma[6] = 16;
334 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].luma_sigma[7] = 16;
335
336 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip[0] = 256;
337 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip[1] = 256;
338 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip[2] = 256;
339 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip[3] = 256;
340 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip[4] = 256;
341 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip[5] = 256;
342 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip[6] = 256;
343 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip[7] = 256;
344
345 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip_neg[0] = 256;
346 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip_neg[1] = 256;
347 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip_neg[2] = 256;
348 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip_neg[3] = 256;
349 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip_neg[4] = 256;
350 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip_neg[5] = 256;
351 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip_neg[6] = 256;
352 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hf_clip_neg[7] = 256;
353
354 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].local_sharp_strength[0] = 256;
355 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].local_sharp_strength[1] = 256;
356 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].local_sharp_strength[2] = 256;
357 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].local_sharp_strength[3] = 256;
358 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].local_sharp_strength[4] = 256;
359 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].local_sharp_strength[5] = 256;
360 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].local_sharp_strength[6] = 256;
361 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].local_sharp_strength[7] = 256;
362
363 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].clip_hf_mode = 0;
364 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].add_mode = 0;
365
366 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].pbf_gain = 1.0;
367 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].pbf_add = 0.0;
368 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].pbf_ratio = 0.5;
369 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gaus_ratio = 0.0;
370 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].sharp_ratio = 10.0;
371 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].bf_gain = 1.0;
372 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].bf_add = 0.0;
373 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].bf_ratio = 0.5;
374 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].sharp_ratio_0 = 10.0;
375 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].sharp_ratio_1 = 10.0;
376
377 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].prefilter_coeff[0] = 0.2042;
378 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].prefilter_coeff[1] = 0.1238;
379 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].prefilter_coeff[2] = 0.0751;
380
381 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hfBilateralFilter_coeff[0] = 0.2042;
382 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hfBilateralFilter_coeff[1] = 0.1238;
383 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hfBilateralFilter_coeff[2] = 0.0751;
384
385 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff[0] = 0.0935;
386 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff[1] = 0.0724;
387 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff[2] = 0.0561;
388 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff[3] = 0.0337;
389 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff[4] = 0.0261;
390 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff[5] = 0.0121;
391
392 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_0[0] = 0.0935;
393 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_0[1] = 0.0724;
394 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_0[2] = 0.0561;
395 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_0[3] = 0.0337;
396 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_0[4] = 0.0261;
397 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_0[5] = 0.0121;
398
399 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_1[0] = 0.0935;
400 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_1[1] = 0.0724;
401 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_1[2] = 0.0561;
402 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_1[3] = 0.0337;
403 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_1[4] = 0.0261;
404 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_coeff_1[5] = 0.0121;
405
406 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].prefilter_sigma = 1.0;
407 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].hfBilateralFilter_sigma = 1.0;
408 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_sigma = 1.0;
409 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_radius = 2.0;
410
411 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_sigma_0 = 1.0;
412 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_radius_0 = 2.0;
413 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_sigma_1 = 1.0;
414 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].GaussianFilter_radius_1 = 2.0;
415
416 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].global_gain = 1.0;
417 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].global_gain_alpha = 0.0;
418 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].local_gainscale = 1.0;
419 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].exgain_bypass = 0;
420
421 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[0] = 1;
422 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[1] = 1;
423 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[2] = 1;
424 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[3] = 1;
425 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[4] = 1;
426 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[5] = 1;
427 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[6] = 1;
428 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[7] = 1;
429 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[8] = 1;
430 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[9] = 1;
431 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[10] = 1;
432 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[11] = 1;
433 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[12] = 1;
434 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].gain_adj_sharp_strength[13] = 1;
435
436 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[0] = 1;
437 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[1] = 1;
438 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[2] = 1;
439 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[3] = 1;
440 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[4] = 1;
441 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[5] = 1;
442 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[6] = 1;
443 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[7] = 1;
444 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[8] = 1;
445 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[9] = 1;
446 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[10] = 1;
447 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[11] = 1;
448 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[12] = 1;
449 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[13] = 1;
450 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[14] = 1;
451 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[15] = 1;
452 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[16] = 1;
453 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[17] = 1;
454 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[18] = 1;
455 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[19] = 1;
456 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[20] = 1;
457 sharpV33_attr.stAuto.stParams.sharpParamsISO[i].dis_adj_sharp_strength[21] = 1;
458 }
459
460 ret = rk_aiq_user_api2_asharpV33Lite_SetAttrib(ctx, &sharpV33_attr);
461 printf("set asharp attri auto ret:%d \n\n", ret);
462
463 rk_aiq_sharp_attrib_v33LT_t get_sharpV33_attr;
464 get_sharpV33_attr.sync.sync_mode = sync_mode;
465 ret = rk_aiq_user_api2_asharpV33Lite_GetAttrib(ctx, &get_sharpV33_attr);
466 printf("get asharp v33LT attri ret:%d done:%d\n\n", ret, get_sharpV33_attr.sync.done);
467 return ret;
468 }
469
sample_sharp_setManual_v4(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)470 XCamReturn sample_sharp_setManual_v4(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode)
471 {
472 XCamReturn ret = XCAM_RETURN_NO_ERROR;
473
474 rk_aiq_sharp_attrib_v4_t sharpV4_attr;
475 sharpV4_attr.sync.sync_mode = sync_mode;
476 ret = rk_aiq_user_api2_asharpV4_GetAttrib(ctx, &sharpV4_attr);
477 sharpV4_attr.sync.sync_mode = sync_mode;
478 sharpV4_attr.eMode = ASHARP4_OP_MODE_MANUAL;
479 sharpV4_attr.stManual.stSelect.enable = 1;
480
481 sharpV4_attr.stManual.stSelect.luma_point[0] = 0;
482 sharpV4_attr.stManual.stSelect.luma_point[1] = 64;
483 sharpV4_attr.stManual.stSelect.luma_point[2] = 128;
484 sharpV4_attr.stManual.stSelect.luma_point[3] = 256;
485 sharpV4_attr.stManual.stSelect.luma_point[4] = 384;
486 sharpV4_attr.stManual.stSelect.luma_point[5] = 640;
487 sharpV4_attr.stManual.stSelect.luma_point[6] = 896;
488 sharpV4_attr.stManual.stSelect.luma_point[7] = 1024;
489
490 sharpV4_attr.stManual.stSelect.luma_sigma[0] = 16;
491 sharpV4_attr.stManual.stSelect.luma_sigma[1] = 16;
492 sharpV4_attr.stManual.stSelect.luma_sigma[2] = 16;
493 sharpV4_attr.stManual.stSelect.luma_sigma[3] = 16;
494 sharpV4_attr.stManual.stSelect.luma_sigma[4] = 16;
495 sharpV4_attr.stManual.stSelect.luma_sigma[5] = 16;
496 sharpV4_attr.stManual.stSelect.luma_sigma[6] = 16;
497 sharpV4_attr.stManual.stSelect.luma_sigma[7] = 16;
498
499 sharpV4_attr.stManual.stSelect.hf_clip[0] = 128;
500 sharpV4_attr.stManual.stSelect.hf_clip[1] = 128;
501 sharpV4_attr.stManual.stSelect.hf_clip[2] = 128;
502 sharpV4_attr.stManual.stSelect.hf_clip[3] = 128;
503 sharpV4_attr.stManual.stSelect.hf_clip[4] = 128;
504 sharpV4_attr.stManual.stSelect.hf_clip[5] = 128;
505 sharpV4_attr.stManual.stSelect.hf_clip[6] = 128;
506 sharpV4_attr.stManual.stSelect.hf_clip[7] = 128;
507
508 sharpV4_attr.stManual.stSelect.local_sharp_strength[0] = 256;
509 sharpV4_attr.stManual.stSelect.local_sharp_strength[1] = 256;
510 sharpV4_attr.stManual.stSelect.local_sharp_strength[2] = 256;
511 sharpV4_attr.stManual.stSelect.local_sharp_strength[3] = 256;
512 sharpV4_attr.stManual.stSelect.local_sharp_strength[4] = 256;
513 sharpV4_attr.stManual.stSelect.local_sharp_strength[5] = 256;
514 sharpV4_attr.stManual.stSelect.local_sharp_strength[6] = 256;
515 sharpV4_attr.stManual.stSelect.local_sharp_strength[7] = 256;
516
517
518 sharpV4_attr.stManual.stSelect.pbf_gain = 1.0;
519 sharpV4_attr.stManual.stSelect.pbf_add = 0.0;
520 sharpV4_attr.stManual.stSelect.pbf_ratio = 0.5;
521 sharpV4_attr.stManual.stSelect.gaus_ratio = 0.0;
522 sharpV4_attr.stManual.stSelect.sharp_ratio = 10.0;
523 sharpV4_attr.stManual.stSelect.bf_gain = 1.0;
524 sharpV4_attr.stManual.stSelect.bf_add = 0.0;
525 sharpV4_attr.stManual.stSelect.bf_ratio = 0.5;
526
527 sharpV4_attr.stManual.stSelect.prefilter_coeff[0] = 0.2042;
528 sharpV4_attr.stManual.stSelect.prefilter_coeff[1] = 0.1238;
529 sharpV4_attr.stManual.stSelect.prefilter_coeff[2] = 0.0751;
530
531 sharpV4_attr.stManual.stSelect.hfBilateralFilter_coeff[0] = 0.2042;
532 sharpV4_attr.stManual.stSelect.hfBilateralFilter_coeff[1] = 0.1238;
533 sharpV4_attr.stManual.stSelect.hfBilateralFilter_coeff[2] = 0.0751;
534
535
536 sharpV4_attr.stManual.stSelect.GaussianFilter_coeff[0] = 0.0935;
537 sharpV4_attr.stManual.stSelect.GaussianFilter_coeff[1] = 0.0724;
538 sharpV4_attr.stManual.stSelect.GaussianFilter_coeff[2] = 0.0561;
539 sharpV4_attr.stManual.stSelect.GaussianFilter_coeff[3] = 0.0337;
540 sharpV4_attr.stManual.stSelect.GaussianFilter_coeff[4] = 0.0261;
541 sharpV4_attr.stManual.stSelect.GaussianFilter_coeff[5] = 0.0121;
542
543 sharpV4_attr.stManual.stSelect.kernel_sigma_enable = 0;
544 sharpV4_attr.stManual.stSelect.prefilter_sigma = 1.0;
545 sharpV4_attr.stManual.stSelect.hfBilateralFilter_sigma = 1.0;
546 sharpV4_attr.stManual.stSelect.GaussianFilter_sigma = 1.0;
547 sharpV4_attr.stManual.stSelect.GaussianFilter_radius = 2.0;
548
549 ret = rk_aiq_user_api2_asharpV4_SetAttrib(ctx, &sharpV4_attr);
550 printf("set sharp v4 attri manual ret:%d \n\n", ret);
551
552 rk_aiq_sharp_attrib_v4_t get_sharpV4_attr;
553 get_sharpV4_attr.sync.sync_mode = sync_mode;
554 ret = rk_aiq_user_api2_asharpV4_GetAttrib(ctx, &get_sharpV4_attr);
555 printf("get asharp v4 attri ret:%d done:%d\n\n", ret, get_sharpV4_attr.sync.done);
556
557 return ret;
558 }
559
560
sample_sharp_setManual_v33(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)561 XCamReturn sample_sharp_setManual_v33(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode)
562 {
563 XCamReturn ret = XCAM_RETURN_NO_ERROR;
564
565 rk_aiq_sharp_attrib_v33_t sharpV33_attr;
566 sharpV33_attr.sync.sync_mode = sync_mode;
567 ret = rk_aiq_user_api2_asharpV33_GetAttrib(ctx, &sharpV33_attr);
568 sharpV33_attr.sync.sync_mode = sync_mode;
569 sharpV33_attr.eMode = ASHARP_V33_OP_MODE_MANUAL;
570 sharpV33_attr.stManual.stSelect.enable = 1;
571 sharpV33_attr.stManual.stSelect.kernel_sigma_enable = 0;
572 sharpV33_attr.stAuto.stParams.sharp_ratio_seperate_en = 0;
573
574 sharpV33_attr.stManual.stSelect.luma_point[0] = 0;
575 sharpV33_attr.stManual.stSelect.luma_point[1] = 64;
576 sharpV33_attr.stManual.stSelect.luma_point[2] = 128;
577 sharpV33_attr.stManual.stSelect.luma_point[3] = 256;
578 sharpV33_attr.stManual.stSelect.luma_point[4] = 384;
579 sharpV33_attr.stManual.stSelect.luma_point[5] = 640;
580 sharpV33_attr.stManual.stSelect.luma_point[6] = 896;
581 sharpV33_attr.stManual.stSelect.luma_point[7] = 1024;
582
583 sharpV33_attr.stManual.stSelect.luma_sigma[0] = 16;
584 sharpV33_attr.stManual.stSelect.luma_sigma[1] = 16;
585 sharpV33_attr.stManual.stSelect.luma_sigma[2] = 16;
586 sharpV33_attr.stManual.stSelect.luma_sigma[3] = 16;
587 sharpV33_attr.stManual.stSelect.luma_sigma[4] = 16;
588 sharpV33_attr.stManual.stSelect.luma_sigma[5] = 16;
589 sharpV33_attr.stManual.stSelect.luma_sigma[6] = 16;
590 sharpV33_attr.stManual.stSelect.luma_sigma[7] = 16;
591
592 sharpV33_attr.stManual.stSelect.hf_clip[0] = 256;
593 sharpV33_attr.stManual.stSelect.hf_clip[1] = 256;
594 sharpV33_attr.stManual.stSelect.hf_clip[2] = 256;
595 sharpV33_attr.stManual.stSelect.hf_clip[3] = 256;
596 sharpV33_attr.stManual.stSelect.hf_clip[4] = 256;
597 sharpV33_attr.stManual.stSelect.hf_clip[5] = 256;
598 sharpV33_attr.stManual.stSelect.hf_clip[6] = 256;
599 sharpV33_attr.stManual.stSelect.hf_clip[7] = 256;
600
601 sharpV33_attr.stManual.stSelect.pbf_gain = 1.0;
602 sharpV33_attr.stManual.stSelect.pbf_add = 0.0;
603 sharpV33_attr.stManual.stSelect.pbf_ratio = 0.5;
604 sharpV33_attr.stManual.stSelect.gaus_ratio = 0.0;
605 sharpV33_attr.stManual.stSelect.sharp_ratio = 10.0;
606 sharpV33_attr.stManual.stSelect.bf_gain = 1.0;
607 sharpV33_attr.stManual.stSelect.bf_add = 0.0;
608 sharpV33_attr.stManual.stSelect.bf_ratio = 0.5;
609 sharpV33_attr.stManual.stSelect.sharp_ratio_0 = 10.0;
610 sharpV33_attr.stManual.stSelect.sharp_ratio_1 = 10.0;
611
612 sharpV33_attr.stManual.stSelect.prefilter_coeff[0] = 0.2042;
613 sharpV33_attr.stManual.stSelect.prefilter_coeff[1] = 0.1238;
614 sharpV33_attr.stManual.stSelect.prefilter_coeff[2] = 0.0751;
615
616 sharpV33_attr.stManual.stSelect.hfBilateralFilter_coeff[0] = 0.2042;
617 sharpV33_attr.stManual.stSelect.hfBilateralFilter_coeff[1] = 0.1238;
618 sharpV33_attr.stManual.stSelect.hfBilateralFilter_coeff[2] = 0.0751;
619
620
621 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff[0] = 0.0935;
622 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff[1] = 0.0724;
623 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff[2] = 0.0561;
624 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff[3] = 0.0337;
625 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff[4] = 0.0261;
626 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff[5] = 0.0121;
627
628 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_0[0] = 0.0935;
629 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_0[1] = 0.0724;
630 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_0[2] = 0.0561;
631 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_0[3] = 0.0337;
632 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_0[4] = 0.0261;
633 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_0[5] = 0.0121;
634
635 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_1[0] = 0.0935;
636 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_1[1] = 0.0724;
637 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_1[2] = 0.0561;
638 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_1[3] = 0.0337;
639 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_1[4] = 0.0261;
640 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_1[5] = 0.0121;
641
642
643
644 sharpV33_attr.stManual.stSelect.prefilter_sigma = 1.0;
645 sharpV33_attr.stManual.stSelect.hfBilateralFilter_sigma = 1.0;
646 sharpV33_attr.stManual.stSelect.GaussianFilter_sigma = 1.0;
647 sharpV33_attr.stManual.stSelect.GaussianFilter_radius = 2.0;
648
649 sharpV33_attr.stManual.stSelect.GaussianFilter_sigma_0 = 1.0;
650 sharpV33_attr.stManual.stSelect.GaussianFilter_radius_0 = 2.0;
651 sharpV33_attr.stManual.stSelect.GaussianFilter_sigma_1 = 1.0;
652 sharpV33_attr.stManual.stSelect.GaussianFilter_radius_1 = 2.0;
653
654 sharpV33_attr.stManual.stSelect.global_gain = 1.0;
655 sharpV33_attr.stManual.stSelect.global_gain_alpha = 0.0;
656 sharpV33_attr.stManual.stSelect.local_gainscale = 1.0;
657 sharpV33_attr.stManual.stSelect.exgain_bypass = 0;
658 sharpV33_attr.stManual.stSelect.noiseclip_strength = 1;
659 sharpV33_attr.stManual.stSelect.enhance_bit = 3;
660 sharpV33_attr.stManual.stSelect.noiseclip_mode = 0;
661 sharpV33_attr.stManual.stSelect.noise_sigma_clip = 1023;
662 sharpV33_attr.stManual.stSelect.global_hf_clip_pos = 0;
663
664 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[0] = 1;
665 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[1] = 1;
666 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[2] = 1;
667 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[3] = 1;
668 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[4] = 1;
669 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[5] = 1;
670 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[6] = 1;
671 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[7] = 1;
672 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[8] = 1;
673 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[9] = 1;
674 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[10] = 1;
675 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[11] = 1;
676 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[12] = 1;
677 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[13] = 1;
678
679 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[0] = 1;
680 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[1] = 1;
681 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[2] = 1;
682 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[3] = 1;
683 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[4] = 1;
684 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[5] = 1;
685 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[6] = 1;
686 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[7] = 1;
687 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[8] = 1;
688 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[9] = 1;
689 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[10] = 1;
690 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[11] = 1;
691 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[12] = 1;
692 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[13] = 1;
693 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[14] = 1;
694 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[15] = 1;
695 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[16] = 1;
696 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[17] = 1;
697 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[18] = 1;
698 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[19] = 1;
699 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[20] = 1;
700 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[21] = 1;
701
702 ret = rk_aiq_user_api2_asharpV33_SetAttrib(ctx, &sharpV33_attr);
703 printf("set sharp v4 attri manual ret:%d \n\n", ret);
704
705 rk_aiq_sharp_attrib_v33_t get_sharpV33_attr;
706 get_sharpV33_attr.sync.sync_mode = sync_mode;
707 ret = rk_aiq_user_api2_asharpV33_GetAttrib(ctx, &get_sharpV33_attr);
708 printf("get asharp v4 attri ret:%d done:%d\n\n", ret, get_sharpV33_attr.sync.done);
709
710 return ret;
711 }
712
sample_sharp_setManual_v33Lite(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)713 XCamReturn sample_sharp_setManual_v33Lite(const rk_aiq_sys_ctx_t* ctx,
714 rk_aiq_uapi_mode_sync_e sync_mode) {
715 XCamReturn ret = XCAM_RETURN_NO_ERROR;
716
717 rk_aiq_sharp_attrib_v33LT_t sharpV33_attr;
718 sharpV33_attr.sync.sync_mode = sync_mode;
719 ret = rk_aiq_user_api2_asharpV33Lite_GetAttrib(ctx, &sharpV33_attr);
720 sharpV33_attr.sync.sync_mode = sync_mode;
721 sharpV33_attr.eMode = ASHARP_V33_OP_MODE_MANUAL;
722 sharpV33_attr.stManual.stSelect.enable = 1;
723 sharpV33_attr.stManual.stSelect.kernel_sigma_enable = 0;
724 sharpV33_attr.stAuto.stParams.sharp_ratio_seperate_en = 0;
725
726 sharpV33_attr.stManual.stSelect.luma_point[0] = 0;
727 sharpV33_attr.stManual.stSelect.luma_point[1] = 64;
728 sharpV33_attr.stManual.stSelect.luma_point[2] = 128;
729 sharpV33_attr.stManual.stSelect.luma_point[3] = 256;
730 sharpV33_attr.stManual.stSelect.luma_point[4] = 384;
731 sharpV33_attr.stManual.stSelect.luma_point[5] = 640;
732 sharpV33_attr.stManual.stSelect.luma_point[6] = 896;
733 sharpV33_attr.stManual.stSelect.luma_point[7] = 1024;
734
735 sharpV33_attr.stManual.stSelect.luma_sigma[0] = 16;
736 sharpV33_attr.stManual.stSelect.luma_sigma[1] = 16;
737 sharpV33_attr.stManual.stSelect.luma_sigma[2] = 16;
738 sharpV33_attr.stManual.stSelect.luma_sigma[3] = 16;
739 sharpV33_attr.stManual.stSelect.luma_sigma[4] = 16;
740 sharpV33_attr.stManual.stSelect.luma_sigma[5] = 16;
741 sharpV33_attr.stManual.stSelect.luma_sigma[6] = 16;
742 sharpV33_attr.stManual.stSelect.luma_sigma[7] = 16;
743
744 sharpV33_attr.stManual.stSelect.hf_clip[0] = 256;
745 sharpV33_attr.stManual.stSelect.hf_clip[1] = 256;
746 sharpV33_attr.stManual.stSelect.hf_clip[2] = 256;
747 sharpV33_attr.stManual.stSelect.hf_clip[3] = 256;
748 sharpV33_attr.stManual.stSelect.hf_clip[4] = 256;
749 sharpV33_attr.stManual.stSelect.hf_clip[5] = 256;
750 sharpV33_attr.stManual.stSelect.hf_clip[6] = 256;
751 sharpV33_attr.stManual.stSelect.hf_clip[7] = 256;
752
753 sharpV33_attr.stManual.stSelect.hf_clip_neg[0] = 256;
754 sharpV33_attr.stManual.stSelect.hf_clip_neg[1] = 256;
755 sharpV33_attr.stManual.stSelect.hf_clip_neg[2] = 256;
756 sharpV33_attr.stManual.stSelect.hf_clip_neg[3] = 256;
757 sharpV33_attr.stManual.stSelect.hf_clip_neg[4] = 256;
758 sharpV33_attr.stManual.stSelect.hf_clip_neg[5] = 256;
759 sharpV33_attr.stManual.stSelect.hf_clip_neg[6] = 256;
760 sharpV33_attr.stManual.stSelect.hf_clip_neg[7] = 256;
761
762 sharpV33_attr.stManual.stSelect.local_sharp_strength[0] = 256;
763 sharpV33_attr.stManual.stSelect.local_sharp_strength[1] = 256;
764 sharpV33_attr.stManual.stSelect.local_sharp_strength[2] = 256;
765 sharpV33_attr.stManual.stSelect.local_sharp_strength[3] = 256;
766 sharpV33_attr.stManual.stSelect.local_sharp_strength[4] = 256;
767 sharpV33_attr.stManual.stSelect.local_sharp_strength[5] = 256;
768 sharpV33_attr.stManual.stSelect.local_sharp_strength[6] = 256;
769 sharpV33_attr.stManual.stSelect.local_sharp_strength[7] = 256;
770
771 sharpV33_attr.stManual.stSelect.clip_hf_mode = 0;
772 sharpV33_attr.stManual.stSelect.add_mode = 0;
773
774 sharpV33_attr.stManual.stSelect.pbf_gain = 1.0;
775 sharpV33_attr.stManual.stSelect.pbf_add = 0.0;
776 sharpV33_attr.stManual.stSelect.pbf_ratio = 0.5;
777 sharpV33_attr.stManual.stSelect.gaus_ratio = 0.0;
778 sharpV33_attr.stManual.stSelect.sharp_ratio = 10.0;
779 sharpV33_attr.stManual.stSelect.bf_gain = 1.0;
780 sharpV33_attr.stManual.stSelect.bf_add = 0.0;
781 sharpV33_attr.stManual.stSelect.bf_ratio = 0.5;
782 sharpV33_attr.stManual.stSelect.sharp_ratio_0 = 10.0;
783 sharpV33_attr.stManual.stSelect.sharp_ratio_1 = 10.0;
784
785 sharpV33_attr.stManual.stSelect.prefilter_coeff[0] = 0.2042;
786 sharpV33_attr.stManual.stSelect.prefilter_coeff[1] = 0.1238;
787 sharpV33_attr.stManual.stSelect.prefilter_coeff[2] = 0.0751;
788
789 sharpV33_attr.stManual.stSelect.hfBilateralFilter_coeff[0] = 0.2042;
790 sharpV33_attr.stManual.stSelect.hfBilateralFilter_coeff[1] = 0.1238;
791 sharpV33_attr.stManual.stSelect.hfBilateralFilter_coeff[2] = 0.0751;
792
793 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff[0] = 0.0935;
794 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff[1] = 0.0724;
795 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff[2] = 0.0561;
796 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff[3] = 0.0337;
797 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff[4] = 0.0261;
798 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff[5] = 0.0121;
799
800 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_0[0] = 0.0935;
801 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_0[1] = 0.0724;
802 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_0[2] = 0.0561;
803 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_0[3] = 0.0337;
804 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_0[4] = 0.0261;
805 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_0[5] = 0.0121;
806
807 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_1[0] = 0.0935;
808 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_1[1] = 0.0724;
809 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_1[2] = 0.0561;
810 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_1[3] = 0.0337;
811 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_1[4] = 0.0261;
812 sharpV33_attr.stManual.stSelect.GaussianFilter_coeff_1[5] = 0.0121;
813
814 sharpV33_attr.stManual.stSelect.prefilter_sigma = 1.0;
815 sharpV33_attr.stManual.stSelect.hfBilateralFilter_sigma = 1.0;
816 sharpV33_attr.stManual.stSelect.GaussianFilter_sigma = 1.0;
817 sharpV33_attr.stManual.stSelect.GaussianFilter_radius = 2.0;
818
819 sharpV33_attr.stManual.stSelect.GaussianFilter_sigma_0 = 1.0;
820 sharpV33_attr.stManual.stSelect.GaussianFilter_radius_0 = 2.0;
821 sharpV33_attr.stManual.stSelect.GaussianFilter_sigma_1 = 1.0;
822 sharpV33_attr.stManual.stSelect.GaussianFilter_radius_1 = 2.0;
823
824 sharpV33_attr.stManual.stSelect.global_gain = 1.0;
825 sharpV33_attr.stManual.stSelect.global_gain_alpha = 0.0;
826 sharpV33_attr.stManual.stSelect.local_gainscale = 1.0;
827 sharpV33_attr.stManual.stSelect.exgain_bypass = 0;
828
829 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[0] = 1;
830 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[1] = 1;
831 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[2] = 1;
832 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[3] = 1;
833 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[4] = 1;
834 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[5] = 1;
835 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[6] = 1;
836 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[7] = 1;
837 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[8] = 1;
838 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[9] = 1;
839 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[10] = 1;
840 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[11] = 1;
841 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[12] = 1;
842 sharpV33_attr.stManual.stSelect.gain_adj_sharp_strength[13] = 1;
843
844 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[0] = 1;
845 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[1] = 1;
846 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[2] = 1;
847 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[3] = 1;
848 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[4] = 1;
849 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[5] = 1;
850 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[6] = 1;
851 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[7] = 1;
852 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[8] = 1;
853 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[9] = 1;
854 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[10] = 1;
855 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[11] = 1;
856 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[12] = 1;
857 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[13] = 1;
858 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[14] = 1;
859 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[15] = 1;
860 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[16] = 1;
861 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[17] = 1;
862 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[18] = 1;
863 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[19] = 1;
864 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[20] = 1;
865 sharpV33_attr.stManual.stSelect.dis_adj_sharp_strength[21] = 1;
866
867 ret = rk_aiq_user_api2_asharpV33Lite_SetAttrib(ctx, &sharpV33_attr);
868 printf("set sharp v4 attri manual ret:%d \n\n", ret);
869
870 rk_aiq_sharp_attrib_v33LT_t get_sharpV33_attr;
871 get_sharpV33_attr.sync.sync_mode = sync_mode;
872 ret = rk_aiq_user_api2_asharpV33Lite_GetAttrib(ctx, &get_sharpV33_attr);
873 printf("get asharp v33Lite attri ret:%d done:%d\n\n", ret, get_sharpV33_attr.sync.done);
874
875 return ret;
876 }
877
sample_sharp_setReg_v4(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)878 XCamReturn sample_sharp_setReg_v4(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode)
879 {
880 XCamReturn ret = XCAM_RETURN_NO_ERROR;
881
882 rk_aiq_sharp_attrib_v4_t sharpV4_attr;
883 sharpV4_attr.sync.sync_mode = sync_mode;
884 ret = rk_aiq_user_api2_asharpV4_GetAttrib(ctx, &sharpV4_attr);
885 sharpV4_attr.sync.sync_mode = sync_mode;
886 sharpV4_attr.eMode = ASHARP4_OP_MODE_REG_MANUAL;
887
888 // SHARP_SHARP_EN (0x0000)
889 sharpV4_attr.stManual.stFix.sharp_clk_dis = 0;
890 sharpV4_attr.stManual.stFix.sharp_exgain_bypass = 0;
891 sharpV4_attr.stManual.stFix.sharp_center_mode = 0;
892 sharpV4_attr.stManual.stFix.sharp_bypass = 0;
893 sharpV4_attr.stManual.stFix.sharp_en = 1;
894
895 // SHARP_SHARP_RATIO (0x0004)
896 sharpV4_attr.stManual.stFix.sharp_sharp_ratio = 0x28;
897 sharpV4_attr.stManual.stFix.sharp_bf_ratio = 0x80;
898 sharpV4_attr.stManual.stFix.sharp_gaus_ratio = 0x00;
899 sharpV4_attr.stManual.stFix.sharp_pbf_ratio = 0x33;
900
901 // SHARP_SHARP_LUMA_DX (0x0008)
902 sharpV4_attr.stManual.stFix.sharp_luma_dx[0] = 0x6;
903 sharpV4_attr.stManual.stFix.sharp_luma_dx[1] = 0x6;
904 sharpV4_attr.stManual.stFix.sharp_luma_dx[2] = 0x7;
905 sharpV4_attr.stManual.stFix.sharp_luma_dx[3] = 0x7;
906 sharpV4_attr.stManual.stFix.sharp_luma_dx[4] = 0x8;
907 sharpV4_attr.stManual.stFix.sharp_luma_dx[5] = 0x8;
908 sharpV4_attr.stManual.stFix.sharp_luma_dx[6] = 0x7;
909
910 // SHARP_SHARP_PBF_SIGMA_INV_0 (0x000c - 0x0014)
911 sharpV4_attr.stManual.stFix.sharp_pbf_sigma_inv[0] = 0x115;
912 sharpV4_attr.stManual.stFix.sharp_pbf_sigma_inv[1] = 0x0c1;
913 sharpV4_attr.stManual.stFix.sharp_pbf_sigma_inv[2] = 0x094;
914 sharpV4_attr.stManual.stFix.sharp_pbf_sigma_inv[3] = 0x094;
915 sharpV4_attr.stManual.stFix.sharp_pbf_sigma_inv[4] = 0x065;
916 sharpV4_attr.stManual.stFix.sharp_pbf_sigma_inv[5] = 0x078;
917 sharpV4_attr.stManual.stFix.sharp_pbf_sigma_inv[6] = 0x094;
918 sharpV4_attr.stManual.stFix.sharp_pbf_sigma_inv[7] = 0x094;
919
920 // SHARP_SHARP_BF_SIGMA_INV_0 (0x0018 - 0x0020)
921 sharpV4_attr.stManual.stFix.sharp_bf_sigma_inv[0] = 0x1c7;
922 sharpV4_attr.stManual.stFix.sharp_bf_sigma_inv[1] = 0x13b;
923 sharpV4_attr.stManual.stFix.sharp_bf_sigma_inv[2] = 0x0f1;
924 sharpV4_attr.stManual.stFix.sharp_bf_sigma_inv[3] = 0x0f1;
925 sharpV4_attr.stManual.stFix.sharp_bf_sigma_inv[4] = 0x0a4;
926 sharpV4_attr.stManual.stFix.sharp_bf_sigma_inv[5] = 0x0c3;
927 sharpV4_attr.stManual.stFix.sharp_bf_sigma_inv[6] = 0x0f1;
928 sharpV4_attr.stManual.stFix.sharp_bf_sigma_inv[7] = 0x0f1;
929
930 // SHARP_SHARP_SIGMA_SHIFT (0x00024)
931 sharpV4_attr.stManual.stFix.sharp_bf_sigma_shift = 0x6;
932 sharpV4_attr.stManual.stFix.sharp_pbf_sigma_shift = 0x7;
933
934 // SHARP_SHARP_EHF_TH_0 (0x0028 - 0x0030)
935 sharpV4_attr.stManual.stFix.sharp_ehf_th[0] = 0x80;
936 sharpV4_attr.stManual.stFix.sharp_ehf_th[1] = 0x80;
937 sharpV4_attr.stManual.stFix.sharp_ehf_th[2] = 0x80;
938 sharpV4_attr.stManual.stFix.sharp_ehf_th[3] = 0x80;
939 sharpV4_attr.stManual.stFix.sharp_ehf_th[4] = 0x80;
940 sharpV4_attr.stManual.stFix.sharp_ehf_th[5] = 0x80;
941 sharpV4_attr.stManual.stFix.sharp_ehf_th[6] = 0x80;
942 sharpV4_attr.stManual.stFix.sharp_ehf_th[7] = 0x80;
943
944 // SHARP_SHARP_CLIP_HF_0 (0x0034 - 0x003c)
945 sharpV4_attr.stManual.stFix.sharp_clip_hf[0] = 0x40;
946 sharpV4_attr.stManual.stFix.sharp_clip_hf[1] = 0x40;
947 sharpV4_attr.stManual.stFix.sharp_clip_hf[2] = 0x40;
948 sharpV4_attr.stManual.stFix.sharp_clip_hf[3] = 0x40;
949 sharpV4_attr.stManual.stFix.sharp_clip_hf[4] = 0x40;
950 sharpV4_attr.stManual.stFix.sharp_clip_hf[5] = 0x40;
951 sharpV4_attr.stManual.stFix.sharp_clip_hf[6] = 0x40;
952 sharpV4_attr.stManual.stFix.sharp_clip_hf[7] = 0x40;
953
954 // SHARP_SHARP_PBF_COEF (0x00040)
955 sharpV4_attr.stManual.stFix.sharp_pbf_coef[0] = 0x18;
956 sharpV4_attr.stManual.stFix.sharp_pbf_coef[1] = 0x10;
957 sharpV4_attr.stManual.stFix.sharp_pbf_coef[2] = 0x0a;
958
959 // SHARP_SHARP_BF_COEF (0x00044)
960 sharpV4_attr.stManual.stFix.sharp_bf_coef[0] = 0x18;
961 sharpV4_attr.stManual.stFix.sharp_bf_coef[1] = 0x10;
962 sharpV4_attr.stManual.stFix.sharp_bf_coef[2] = 0x0a;
963
964 // SHARP_SHARP_GAUS_COEF (0x00048 - 0x0004c)
965 sharpV4_attr.stManual.stFix.sharp_gaus_coef[0] = 0x0c;
966 sharpV4_attr.stManual.stFix.sharp_gaus_coef[1] = 0x07;
967 sharpV4_attr.stManual.stFix.sharp_gaus_coef[2] = 0x06;
968 sharpV4_attr.stManual.stFix.sharp_gaus_coef[3] = 0x05;
969 sharpV4_attr.stManual.stFix.sharp_gaus_coef[4] = 0x04;
970 sharpV4_attr.stManual.stFix.sharp_gaus_coef[5] = 0x03;
971
972
973 ret = rk_aiq_user_api2_asharpV4_SetAttrib(ctx, &sharpV4_attr);
974 printf("set sharp v4 attri manual ret:%d \n\n", ret);
975
976 rk_aiq_sharp_attrib_v4_t get_sharpV4_attr;
977 get_sharpV4_attr.sync.sync_mode = sync_mode;
978 ret = rk_aiq_user_api2_asharpV4_GetAttrib(ctx, &get_sharpV4_attr);
979 printf("get asharp v4 attri ret:%d done:%d\n\n", ret, get_sharpV4_attr.sync.done);
980
981 return ret;
982 }
983
984
985
sample_sharp_setReg_v33(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)986 XCamReturn sample_sharp_setReg_v33(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode)
987 {
988 XCamReturn ret = XCAM_RETURN_NO_ERROR;
989
990 rk_aiq_sharp_attrib_v33_t sharpV33_attr;
991 sharpV33_attr.sync.sync_mode = sync_mode;
992 ret = rk_aiq_user_api2_asharpV33_GetAttrib(ctx, &sharpV33_attr);
993 sharpV33_attr.sync.sync_mode = sync_mode;
994 sharpV33_attr.eMode = ASHARP_V33_OP_MODE_REG_MANUAL;
995
996
997 // SHARP_SHARP_EN (0x0000)sharp_noiseclip_mode
998 sharpV33_attr.stManual.stFix.sharp_noiseclip_mode = 0;
999 sharpV33_attr.stManual.stFix.sharp_radius_ds_mode = 0;
1000 sharpV33_attr.stManual.stFix.sharp_exgain_bypass = 0;
1001 sharpV33_attr.stManual.stFix.sharp_center_mode = 0;
1002 sharpV33_attr.stManual.stFix.sharp_bypass = 0;
1003 sharpV33_attr.stManual.stFix.sharp_en = 1;
1004
1005 // SHARP_SHARP_RATIO (0x0004)
1006 sharpV33_attr.stManual.stFix.sharp_sharp_ratio = 0x28;
1007 sharpV33_attr.stManual.stFix.sharp_bf_ratio = 0x80;
1008 sharpV33_attr.stManual.stFix.sharp_gaus_ratio = 0x00;
1009 sharpV33_attr.stManual.stFix.sharp_pbf_ratio = 0x33;
1010
1011 // SHARP_SHARP_LUMA_DX (0x0008)
1012 sharpV33_attr.stManual.stFix.sharp_luma_dx[0] = 0x6;
1013 sharpV33_attr.stManual.stFix.sharp_luma_dx[1] = 0x6;
1014 sharpV33_attr.stManual.stFix.sharp_luma_dx[2] = 0x7;
1015 sharpV33_attr.stManual.stFix.sharp_luma_dx[3] = 0x7;
1016 sharpV33_attr.stManual.stFix.sharp_luma_dx[4] = 0x8;
1017 sharpV33_attr.stManual.stFix.sharp_luma_dx[5] = 0x8;
1018 sharpV33_attr.stManual.stFix.sharp_luma_dx[6] = 0x7;
1019
1020 // SHARP_SHARP_PBF_SIGMA_INV_0 (0x000c - 0x0014)
1021 sharpV33_attr.stManual.stFix.sharp_pbf_sigma_inv[0] = 0x115;
1022 sharpV33_attr.stManual.stFix.sharp_pbf_sigma_inv[1] = 0x0c1;
1023 sharpV33_attr.stManual.stFix.sharp_pbf_sigma_inv[2] = 0x094;
1024 sharpV33_attr.stManual.stFix.sharp_pbf_sigma_inv[3] = 0x094;
1025 sharpV33_attr.stManual.stFix.sharp_pbf_sigma_inv[4] = 0x065;
1026 sharpV33_attr.stManual.stFix.sharp_pbf_sigma_inv[5] = 0x078;
1027 sharpV33_attr.stManual.stFix.sharp_pbf_sigma_inv[6] = 0x094;
1028 sharpV33_attr.stManual.stFix.sharp_pbf_sigma_inv[7] = 0x094;
1029
1030 // SHARP_SHARP_BF_SIGMA_INV_0 (0x0018 - 0x0020)
1031 sharpV33_attr.stManual.stFix.sharp_bf_sigma_inv[0] = 0x1c7;
1032 sharpV33_attr.stManual.stFix.sharp_bf_sigma_inv[1] = 0x13b;
1033 sharpV33_attr.stManual.stFix.sharp_bf_sigma_inv[2] = 0x0f1;
1034 sharpV33_attr.stManual.stFix.sharp_bf_sigma_inv[3] = 0x0f1;
1035 sharpV33_attr.stManual.stFix.sharp_bf_sigma_inv[4] = 0x0a4;
1036 sharpV33_attr.stManual.stFix.sharp_bf_sigma_inv[5] = 0x0c3;
1037 sharpV33_attr.stManual.stFix.sharp_bf_sigma_inv[6] = 0x0f1;
1038 sharpV33_attr.stManual.stFix.sharp_bf_sigma_inv[7] = 0x0f1;
1039
1040 // SHARP_SHARP_SIGMA_SHIFT (0x00024)
1041 sharpV33_attr.stManual.stFix.sharp_bf_sigma_shift = 0x6;
1042 sharpV33_attr.stManual.stFix.sharp_pbf_sigma_shift = 0x7;
1043
1044 // SHARP_SHARP_CLIP_HF_0 (0x0034 - 0x003c)
1045 sharpV33_attr.stManual.stFix.sharp_clip_hf[0] = 0x40;
1046 sharpV33_attr.stManual.stFix.sharp_clip_hf[1] = 0x40;
1047 sharpV33_attr.stManual.stFix.sharp_clip_hf[2] = 0x40;
1048 sharpV33_attr.stManual.stFix.sharp_clip_hf[3] = 0x40;
1049 sharpV33_attr.stManual.stFix.sharp_clip_hf[4] = 0x40;
1050 sharpV33_attr.stManual.stFix.sharp_clip_hf[5] = 0x40;
1051 sharpV33_attr.stManual.stFix.sharp_clip_hf[6] = 0x40;
1052 sharpV33_attr.stManual.stFix.sharp_clip_hf[7] = 0x40;
1053
1054 // SHARP_SHARP_PBF_COEF (0x00040)
1055 sharpV33_attr.stManual.stFix.sharp_pbf_coef[0] = 0x18;
1056 sharpV33_attr.stManual.stFix.sharp_pbf_coef[1] = 0x10;
1057 sharpV33_attr.stManual.stFix.sharp_pbf_coef[2] = 0x0a;
1058
1059 // SHARP_SHARP_BF_COEF (0x00044)
1060 sharpV33_attr.stManual.stFix.sharp_bf_coef[0] = 0x18;
1061 sharpV33_attr.stManual.stFix.sharp_bf_coef[1] = 0x10;
1062 sharpV33_attr.stManual.stFix.sharp_bf_coef[2] = 0x0a;
1063
1064 // SHARP_SHARP_GAUS_COEF (0x00048 - 0x0004c)
1065 sharpV33_attr.stManual.stFix.sharp_gaus_coef[0] = 0x0c;
1066 sharpV33_attr.stManual.stFix.sharp_gaus_coef[1] = 0x07;
1067 sharpV33_attr.stManual.stFix.sharp_gaus_coef[2] = 0x06;
1068 sharpV33_attr.stManual.stFix.sharp_gaus_coef[3] = 0x05;
1069 sharpV33_attr.stManual.stFix.sharp_gaus_coef[4] = 0x04;
1070 sharpV33_attr.stManual.stFix.sharp_gaus_coef[5] = 0x03;
1071
1072 // SHARP_GAIN (0x50)
1073 sharpV33_attr.stManual.stFix.sharp_global_gain = 0x10;
1074 sharpV33_attr.stManual.stFix.sharp_global_gain_alpha = 0x0;
1075 sharpV33_attr.stManual.stFix.sharp_local_gainscale = 0x80;
1076
1077 // SHARP_GAIN_ADJUST (0x54)
1078 sharpV33_attr.stManual.stFix.sharp_gain_adj[0] = 0x400;
1079 sharpV33_attr.stManual.stFix.sharp_gain_adj[1] = 0x400;
1080 sharpV33_attr.stManual.stFix.sharp_gain_adj[2] = 0x400;
1081 sharpV33_attr.stManual.stFix.sharp_gain_adj[3] = 0x400;
1082 sharpV33_attr.stManual.stFix.sharp_gain_adj[4] = 0x400;
1083 sharpV33_attr.stManual.stFix.sharp_gain_adj[5] = 0x400;
1084 sharpV33_attr.stManual.stFix.sharp_gain_adj[6] = 0x400;
1085 sharpV33_attr.stManual.stFix.sharp_gain_adj[7] = 0x400;
1086 sharpV33_attr.stManual.stFix.sharp_gain_adj[8] = 0x400;
1087 sharpV33_attr.stManual.stFix.sharp_gain_adj[9] = 0x400;
1088 sharpV33_attr.stManual.stFix.sharp_gain_adj[10] = 0x400;
1089 sharpV33_attr.stManual.stFix.sharp_gain_adj[11] = 0x400;
1090 sharpV33_attr.stManual.stFix.sharp_gain_adj[12] = 0x400;
1091 sharpV33_attr.stManual.stFix.sharp_gain_adj[13] = 0x400;
1092
1093 // SHARP_CENTER (0x70)
1094 sharpV33_attr.stManual.stFix.sharp_center_wid = 0x0;
1095 sharpV33_attr.stManual.stFix.sharp_center_wid = 0x0;
1096
1097 // SHARP_GAIN_DIS_STRENGTH (0x74)
1098 sharpV33_attr.stManual.stFix.sharp_strength[0] = 0x80;
1099 sharpV33_attr.stManual.stFix.sharp_strength[1] = 0x80;
1100 sharpV33_attr.stManual.stFix.sharp_strength[2] = 0x80;
1101 sharpV33_attr.stManual.stFix.sharp_strength[3] = 0x80;
1102 sharpV33_attr.stManual.stFix.sharp_strength[4] = 0x80;
1103 sharpV33_attr.stManual.stFix.sharp_strength[5] = 0x80;
1104 sharpV33_attr.stManual.stFix.sharp_strength[6] = 0x80;
1105 sharpV33_attr.stManual.stFix.sharp_strength[7] = 0x80;
1106 sharpV33_attr.stManual.stFix.sharp_strength[8] = 0x80;
1107 sharpV33_attr.stManual.stFix.sharp_strength[9] = 0x80;
1108 sharpV33_attr.stManual.stFix.sharp_strength[10] = 0x80;
1109 sharpV33_attr.stManual.stFix.sharp_strength[11] = 0x80;
1110 sharpV33_attr.stManual.stFix.sharp_strength[12] = 0x80;
1111 sharpV33_attr.stManual.stFix.sharp_strength[13] = 0x80;
1112 sharpV33_attr.stManual.stFix.sharp_strength[14] = 0x80;
1113 sharpV33_attr.stManual.stFix.sharp_strength[15] = 0x80;
1114 sharpV33_attr.stManual.stFix.sharp_strength[16] = 0x80;
1115 sharpV33_attr.stManual.stFix.sharp_strength[17] = 0x80;
1116 sharpV33_attr.stManual.stFix.sharp_strength[18] = 0x80;
1117 sharpV33_attr.stManual.stFix.sharp_strength[19] = 0x80;
1118 sharpV33_attr.stManual.stFix.sharp_strength[20] = 0x80;
1119 sharpV33_attr.stManual.stFix.sharp_strength[21] = 0x80;
1120
1121 // SHARP_TEXTURE (0x8c)
1122 sharpV33_attr.stManual.stFix.sharp_noise_sigma = 0x3ff;
1123 sharpV33_attr.stManual.stFix.sharp_enhance_bit = 0x5;
1124 sharpV33_attr.stManual.stFix.sharp_noise_strength = 0x400;
1125
1126 ret = rk_aiq_user_api2_asharpV33_SetAttrib(ctx, &sharpV33_attr);
1127 printf("set sharp v4 attri manual ret:%d \n\n", ret);
1128
1129 rk_aiq_sharp_attrib_v33_t get_sharpV33_attr;
1130 get_sharpV33_attr.sync.sync_mode = sync_mode;
1131 ret = rk_aiq_user_api2_asharpV33_GetAttrib(ctx, &get_sharpV33_attr);
1132 printf("get asharp v4 attri ret:%d done:%d\n\n", ret, get_sharpV33_attr.sync.done);
1133
1134 return ret;
1135 }
1136
sample_sharp_setReg_v33Lite(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)1137 XCamReturn sample_sharp_setReg_v33Lite(const rk_aiq_sys_ctx_t* ctx,
1138 rk_aiq_uapi_mode_sync_e sync_mode) {
1139 XCamReturn ret = XCAM_RETURN_NO_ERROR;
1140
1141 rk_aiq_sharp_attrib_v33LT_t sharpV33_attr;
1142 sharpV33_attr.sync.sync_mode = sync_mode;
1143 ret = rk_aiq_user_api2_asharpV33Lite_GetAttrib(ctx, &sharpV33_attr);
1144 sharpV33_attr.sync.sync_mode = sync_mode;
1145 sharpV33_attr.eMode = ASHARP_V33_OP_MODE_REG_MANUAL;
1146
1147 // SHARP_SHARP_EN (0x0000)sharp_noiseclip_mode
1148 sharpV33_attr.stManual.stFix.sharp_radius_ds_mode = 0;
1149 sharpV33_attr.stManual.stFix.sharp_exgain_bypass = 0;
1150 sharpV33_attr.stManual.stFix.sharp_center_mode = 0;
1151 sharpV33_attr.stManual.stFix.sharp_bypass = 0;
1152 sharpV33_attr.stManual.stFix.sharp_en = 1;
1153
1154 sharpV33_attr.stManual.stFix.sharp_clip_hf_mode = 0;
1155 sharpV33_attr.stManual.stFix.sharp_add_mode = 0;
1156
1157 // SHARP_SHARP_RATIO (0x0004)
1158 sharpV33_attr.stManual.stFix.sharp_sharp_ratio = 0x28;
1159 sharpV33_attr.stManual.stFix.sharp_bf_ratio = 0x80;
1160 sharpV33_attr.stManual.stFix.sharp_gaus_ratio = 0x00;
1161 sharpV33_attr.stManual.stFix.sharp_pbf_ratio = 0x33;
1162
1163 // SHARP_SHARP_LUMA_DX (0x0008)
1164 sharpV33_attr.stManual.stFix.sharp_luma_dx[0] = 0x6;
1165 sharpV33_attr.stManual.stFix.sharp_luma_dx[1] = 0x6;
1166 sharpV33_attr.stManual.stFix.sharp_luma_dx[2] = 0x7;
1167 sharpV33_attr.stManual.stFix.sharp_luma_dx[3] = 0x7;
1168 sharpV33_attr.stManual.stFix.sharp_luma_dx[4] = 0x8;
1169 sharpV33_attr.stManual.stFix.sharp_luma_dx[5] = 0x8;
1170 sharpV33_attr.stManual.stFix.sharp_luma_dx[6] = 0x7;
1171
1172 // SHARP_SHARP_PBF_SIGMA_INV_0 (0x000c - 0x0014)
1173 sharpV33_attr.stManual.stFix.sharp_pbf_sigma_inv[0] = 0x115;
1174 sharpV33_attr.stManual.stFix.sharp_pbf_sigma_inv[1] = 0x0c1;
1175 sharpV33_attr.stManual.stFix.sharp_pbf_sigma_inv[2] = 0x094;
1176 sharpV33_attr.stManual.stFix.sharp_pbf_sigma_inv[3] = 0x094;
1177 sharpV33_attr.stManual.stFix.sharp_pbf_sigma_inv[4] = 0x065;
1178 sharpV33_attr.stManual.stFix.sharp_pbf_sigma_inv[5] = 0x078;
1179 sharpV33_attr.stManual.stFix.sharp_pbf_sigma_inv[6] = 0x094;
1180 sharpV33_attr.stManual.stFix.sharp_pbf_sigma_inv[7] = 0x094;
1181
1182 // SHARP_SHARP_BF_SIGMA_INV_0 (0x0018 - 0x0020)
1183 sharpV33_attr.stManual.stFix.sharp_bf_sigma_inv[0] = 0x1c7;
1184 sharpV33_attr.stManual.stFix.sharp_bf_sigma_inv[1] = 0x13b;
1185 sharpV33_attr.stManual.stFix.sharp_bf_sigma_inv[2] = 0x0f1;
1186 sharpV33_attr.stManual.stFix.sharp_bf_sigma_inv[3] = 0x0f1;
1187 sharpV33_attr.stManual.stFix.sharp_bf_sigma_inv[4] = 0x0a4;
1188 sharpV33_attr.stManual.stFix.sharp_bf_sigma_inv[5] = 0x0c3;
1189 sharpV33_attr.stManual.stFix.sharp_bf_sigma_inv[6] = 0x0f1;
1190 sharpV33_attr.stManual.stFix.sharp_bf_sigma_inv[7] = 0x0f1;
1191
1192 // SHARP_SHARP_SIGMA_SHIFT (0x00024)
1193 sharpV33_attr.stManual.stFix.sharp_bf_sigma_shift = 0x6;
1194 sharpV33_attr.stManual.stFix.sharp_pbf_sigma_shift = 0x7;
1195
1196 // SHARP_SHARP_CLIP_HF_0 (0x0028 - 0x0030)
1197 sharpV33_attr.stManual.stFix.sharp_ehf_th[0] = 0x40;
1198 sharpV33_attr.stManual.stFix.sharp_ehf_th[1] = 0x40;
1199 sharpV33_attr.stManual.stFix.sharp_ehf_th[2] = 0x40;
1200 sharpV33_attr.stManual.stFix.sharp_ehf_th[3] = 0x40;
1201 sharpV33_attr.stManual.stFix.sharp_ehf_th[4] = 0x40;
1202 sharpV33_attr.stManual.stFix.sharp_ehf_th[5] = 0x40;
1203 sharpV33_attr.stManual.stFix.sharp_ehf_th[6] = 0x40;
1204 sharpV33_attr.stManual.stFix.sharp_ehf_th[7] = 0x40;
1205
1206 // SHARP_SHARP_CLIP_HF_0 (0x0034 - 0x003c)
1207 sharpV33_attr.stManual.stFix.sharp_clip_hf[0] = 0x40;
1208 sharpV33_attr.stManual.stFix.sharp_clip_hf[1] = 0x40;
1209 sharpV33_attr.stManual.stFix.sharp_clip_hf[2] = 0x40;
1210 sharpV33_attr.stManual.stFix.sharp_clip_hf[3] = 0x40;
1211 sharpV33_attr.stManual.stFix.sharp_clip_hf[4] = 0x40;
1212 sharpV33_attr.stManual.stFix.sharp_clip_hf[5] = 0x40;
1213 sharpV33_attr.stManual.stFix.sharp_clip_hf[6] = 0x40;
1214 sharpV33_attr.stManual.stFix.sharp_clip_hf[7] = 0x40;
1215
1216 // SHARP_SHARP_PBF_COEF (0x00040)
1217 sharpV33_attr.stManual.stFix.sharp_pbf_coef[0] = 0x18;
1218 sharpV33_attr.stManual.stFix.sharp_pbf_coef[1] = 0x10;
1219 sharpV33_attr.stManual.stFix.sharp_pbf_coef[2] = 0x0a;
1220
1221 // SHARP_SHARP_BF_COEF (0x00044)
1222 sharpV33_attr.stManual.stFix.sharp_bf_coef[0] = 0x18;
1223 sharpV33_attr.stManual.stFix.sharp_bf_coef[1] = 0x10;
1224 sharpV33_attr.stManual.stFix.sharp_bf_coef[2] = 0x0a;
1225
1226 // SHARP_SHARP_GAUS_COEF (0x00048 - 0x0004c)
1227 sharpV33_attr.stManual.stFix.sharp_gaus_coef[0] = 0x0c;
1228 sharpV33_attr.stManual.stFix.sharp_gaus_coef[1] = 0x07;
1229 sharpV33_attr.stManual.stFix.sharp_gaus_coef[2] = 0x06;
1230 sharpV33_attr.stManual.stFix.sharp_gaus_coef[3] = 0x05;
1231 sharpV33_attr.stManual.stFix.sharp_gaus_coef[4] = 0x04;
1232 sharpV33_attr.stManual.stFix.sharp_gaus_coef[5] = 0x03;
1233
1234 // SHARP_GAIN (0x50)
1235 sharpV33_attr.stManual.stFix.sharp_global_gain = 0x10;
1236 sharpV33_attr.stManual.stFix.sharp_global_gain_alpha = 0x0;
1237 sharpV33_attr.stManual.stFix.sharp_local_gainscale = 0x80;
1238
1239 // SHARP_GAIN_ADJUST (0x54)
1240 sharpV33_attr.stManual.stFix.sharp_gain_adj[0] = 0x400;
1241 sharpV33_attr.stManual.stFix.sharp_gain_adj[1] = 0x400;
1242 sharpV33_attr.stManual.stFix.sharp_gain_adj[2] = 0x400;
1243 sharpV33_attr.stManual.stFix.sharp_gain_adj[3] = 0x400;
1244 sharpV33_attr.stManual.stFix.sharp_gain_adj[4] = 0x400;
1245 sharpV33_attr.stManual.stFix.sharp_gain_adj[5] = 0x400;
1246 sharpV33_attr.stManual.stFix.sharp_gain_adj[6] = 0x400;
1247 sharpV33_attr.stManual.stFix.sharp_gain_adj[7] = 0x400;
1248 sharpV33_attr.stManual.stFix.sharp_gain_adj[8] = 0x400;
1249 sharpV33_attr.stManual.stFix.sharp_gain_adj[9] = 0x400;
1250 sharpV33_attr.stManual.stFix.sharp_gain_adj[10] = 0x400;
1251 sharpV33_attr.stManual.stFix.sharp_gain_adj[11] = 0x400;
1252 sharpV33_attr.stManual.stFix.sharp_gain_adj[12] = 0x400;
1253 sharpV33_attr.stManual.stFix.sharp_gain_adj[13] = 0x400;
1254
1255 // SHARP_CENTER (0x70)
1256 sharpV33_attr.stManual.stFix.sharp_center_wid = 0x0;
1257 sharpV33_attr.stManual.stFix.sharp_center_wid = 0x0;
1258
1259 // SHARP_GAIN_DIS_STRENGTH (0x74)
1260 sharpV33_attr.stManual.stFix.sharp_strength[0] = 0x80;
1261 sharpV33_attr.stManual.stFix.sharp_strength[1] = 0x80;
1262 sharpV33_attr.stManual.stFix.sharp_strength[2] = 0x80;
1263 sharpV33_attr.stManual.stFix.sharp_strength[3] = 0x80;
1264 sharpV33_attr.stManual.stFix.sharp_strength[4] = 0x80;
1265 sharpV33_attr.stManual.stFix.sharp_strength[5] = 0x80;
1266 sharpV33_attr.stManual.stFix.sharp_strength[6] = 0x80;
1267 sharpV33_attr.stManual.stFix.sharp_strength[7] = 0x80;
1268 sharpV33_attr.stManual.stFix.sharp_strength[8] = 0x80;
1269 sharpV33_attr.stManual.stFix.sharp_strength[9] = 0x80;
1270 sharpV33_attr.stManual.stFix.sharp_strength[10] = 0x80;
1271 sharpV33_attr.stManual.stFix.sharp_strength[11] = 0x80;
1272 sharpV33_attr.stManual.stFix.sharp_strength[12] = 0x80;
1273 sharpV33_attr.stManual.stFix.sharp_strength[13] = 0x80;
1274 sharpV33_attr.stManual.stFix.sharp_strength[14] = 0x80;
1275 sharpV33_attr.stManual.stFix.sharp_strength[15] = 0x80;
1276 sharpV33_attr.stManual.stFix.sharp_strength[16] = 0x80;
1277 sharpV33_attr.stManual.stFix.sharp_strength[17] = 0x80;
1278 sharpV33_attr.stManual.stFix.sharp_strength[18] = 0x80;
1279 sharpV33_attr.stManual.stFix.sharp_strength[19] = 0x80;
1280 sharpV33_attr.stManual.stFix.sharp_strength[20] = 0x80;
1281 sharpV33_attr.stManual.stFix.sharp_strength[21] = 0x80;
1282
1283 // SHARP_SHARP_CLIP_HF_0 (0x0090 - 0x0098)
1284 sharpV33_attr.stManual.stFix.sharp_clip_neg[0] = 0x40;
1285 sharpV33_attr.stManual.stFix.sharp_clip_neg[1] = 0x40;
1286 sharpV33_attr.stManual.stFix.sharp_clip_neg[2] = 0x40;
1287 sharpV33_attr.stManual.stFix.sharp_clip_neg[3] = 0x40;
1288 sharpV33_attr.stManual.stFix.sharp_clip_neg[4] = 0x40;
1289 sharpV33_attr.stManual.stFix.sharp_clip_neg[5] = 0x40;
1290 sharpV33_attr.stManual.stFix.sharp_clip_neg[6] = 0x40;
1291 sharpV33_attr.stManual.stFix.sharp_clip_neg[7] = 0x40;
1292
1293 ret = rk_aiq_user_api2_asharpV33Lite_SetAttrib(ctx, &sharpV33_attr);
1294 printf("set sharp v4 attri manual ret:%d \n\n", ret);
1295
1296 rk_aiq_sharp_attrib_v33LT_t get_sharpV33_attr;
1297 get_sharpV33_attr.sync.sync_mode = sync_mode;
1298 ret = rk_aiq_user_api2_asharpV33Lite_GetAttrib(ctx, &get_sharpV33_attr);
1299 printf("get asharp v4 attri ret:%d done:%d\n\n", ret, get_sharpV33_attr.sync.done);
1300
1301 return ret;
1302 }
1303
sample_sharp_setStrength_v4(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode,float fStrength)1304 XCamReturn sample_sharp_setStrength_v4(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode, float fStrength)
1305 {
1306 XCamReturn ret = XCAM_RETURN_NO_ERROR;
1307
1308 rk_aiq_sharp_strength_v4_t set_sharpV4Strength;
1309 set_sharpV4Strength.sync.sync_mode = sync_mode;
1310 set_sharpV4Strength.percent = fStrength;
1311 ret = rk_aiq_user_api2_asharpV4_SetStrength(ctx, &set_sharpV4Strength);
1312 printf("Set asharp v4 set streangth ret:%d strength:%f \n\n", ret, set_sharpV4Strength.percent);
1313
1314 rk_aiq_sharp_strength_v4_t get_sharpV4Strength;
1315 get_sharpV4Strength.sync.sync_mode = sync_mode;
1316 ret = rk_aiq_user_api2_asharpV4_GetStrength(ctx, &get_sharpV4Strength);
1317 printf("get asharp v4 attri ret:%d strength:%f done:%d\n\n",
1318 ret, get_sharpV4Strength.percent, get_sharpV4Strength.sync.done);
1319
1320 return ret;
1321 }
1322
sample_sharp_setStrength_v33(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode,float fStrength)1323 XCamReturn sample_sharp_setStrength_v33(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode, float fStrength)
1324 {
1325 XCamReturn ret = XCAM_RETURN_NO_ERROR;
1326
1327 rk_aiq_sharp_strength_v33_t set_sharpV33Strength;
1328 set_sharpV33Strength.sync.sync_mode = sync_mode;
1329 set_sharpV33Strength.percent = fStrength;
1330 set_sharpV33Strength.strength_enable = true;
1331 ret = rk_aiq_user_api2_asharpV33_SetStrength(ctx, &set_sharpV33Strength);
1332 printf("Set asharp v4 set streangth ret:%d strength:%f \n\n", ret, set_sharpV33Strength.percent);
1333
1334 rk_aiq_sharp_strength_v33_t get_sharpV33Strength;
1335 get_sharpV33Strength.sync.sync_mode = sync_mode;
1336 ret = rk_aiq_user_api2_asharpV33_GetStrength(ctx, &get_sharpV33Strength);
1337 printf("get asharp v4 attri ret:%d strength:%f done:%d\n\n",
1338 ret, get_sharpV33Strength.percent, get_sharpV33Strength.sync.done);
1339
1340 return ret;
1341 }
1342
1343
sample_sharp_getStrength_v4(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)1344 XCamReturn sample_sharp_getStrength_v4(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode)
1345 {
1346 XCamReturn ret = XCAM_RETURN_NO_ERROR;
1347
1348 rk_aiq_sharp_strength_v4_t sharpV4Strength;
1349 sharpV4Strength.sync.sync_mode = sync_mode;
1350 ret = rk_aiq_user_api2_asharpV4_GetStrength(ctx, &sharpV4Strength);
1351 printf("get asharp v4 attri ret:%d strength:%f done:%d\n\n",
1352 ret, sharpV4Strength.percent, sharpV4Strength.sync.done);
1353
1354 return ret;
1355 }
1356
1357
sample_sharp_getStrength_v33(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)1358 XCamReturn sample_sharp_getStrength_v33(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode)
1359 {
1360 XCamReturn ret = XCAM_RETURN_NO_ERROR;
1361
1362 rk_aiq_sharp_strength_v33_t sharpV33Strength;
1363 sharpV33Strength.sync.sync_mode = sync_mode;
1364 ret = rk_aiq_user_api2_asharpV33_GetStrength(ctx, &sharpV33Strength);
1365 printf("get asharp v4 attri ret:%d strength:%f done:%d\n\n",
1366 ret, sharpV33Strength.percent, sharpV33Strength.sync.done);
1367
1368 return ret;
1369 }
1370
sample_sharp_getAttri_v4(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)1371 XCamReturn sample_sharp_getAttri_v4(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode)
1372 {
1373 XCamReturn ret = XCAM_RETURN_NO_ERROR;
1374
1375 rk_aiq_sharp_attrib_v4_t sharpV4_attr;
1376 sharpV4_attr.sync.sync_mode = sync_mode;
1377 ret = rk_aiq_user_api2_asharpV4_GetAttrib(ctx, &sharpV4_attr);
1378 printf("get asharp v4 attri ret:%d done:%d\n\n", ret, sharpV4_attr.sync.done);
1379
1380 return ret;
1381 }
1382
sample_sharp_getAttri_v33(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)1383 XCamReturn sample_sharp_getAttri_v33(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode)
1384 {
1385 XCamReturn ret = XCAM_RETURN_NO_ERROR;
1386
1387 rk_aiq_sharp_attrib_v33_t sharpV33_attr;
1388 sharpV33_attr.sync.sync_mode = sync_mode;
1389 ret = rk_aiq_user_api2_asharpV33_GetAttrib(ctx, &sharpV33_attr);
1390 printf("get asharp v4 attri ret:%d done:%d\n\n", ret, sharpV33_attr.sync.done);
1391
1392 return ret;
1393 }
1394
sample_sharp_getAttri_v33Lite(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)1395 XCamReturn sample_sharp_getAttri_v33Lite(const rk_aiq_sys_ctx_t* ctx,
1396 rk_aiq_uapi_mode_sync_e sync_mode) {
1397 XCamReturn ret = XCAM_RETURN_NO_ERROR;
1398
1399 rk_aiq_sharp_attrib_v33LT_t sharpV33_attr;
1400 sharpV33_attr.sync.sync_mode = sync_mode;
1401 ret = rk_aiq_user_api2_asharpV33Lite_GetAttrib(ctx, &sharpV33_attr);
1402 printf("get asharp v33Lite attri ret:%d done:%d\n\n", ret, sharpV33_attr.sync.done);
1403
1404 return ret;
1405 }
1406
sample_sharp_SetDefault_v4(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode,rk_aiq_sharp_attrib_v4_t & default_sharpV4_attr)1407 XCamReturn sample_sharp_SetDefault_v4(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode, rk_aiq_sharp_attrib_v4_t &default_sharpV4_attr)
1408 {
1409 XCamReturn ret = XCAM_RETURN_NO_ERROR;
1410
1411 ret = rk_aiq_user_api2_asharpV4_SetAttrib(ctx, &default_sharpV4_attr);
1412 printf("set sharp v4 default auto attri ret:%d \n\n", ret);
1413
1414 rk_aiq_sharp_attrib_v4_t get_sharpV4_attr;
1415 get_sharpV4_attr.sync.sync_mode = sync_mode;
1416 ret = rk_aiq_user_api2_asharpV4_GetAttrib(ctx, &get_sharpV4_attr);
1417 printf("get asharp v4 attri ret:%d done:%d\n\n", ret, get_sharpV4_attr.sync.done);
1418
1419 return ret;
1420 }
1421
sample_sharp_SetDefault_v33(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode,rk_aiq_sharp_attrib_v33_t & default_sharpV33_attr)1422 XCamReturn sample_sharp_SetDefault_v33(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode, rk_aiq_sharp_attrib_v33_t &default_sharpV33_attr)
1423 {
1424 XCamReturn ret = XCAM_RETURN_NO_ERROR;
1425
1426 ret = rk_aiq_user_api2_asharpV33_SetAttrib(ctx, &default_sharpV33_attr);
1427 printf("set sharp v4 default auto attri ret:%d \n\n", ret);
1428
1429 rk_aiq_sharp_attrib_v33_t get_sharpV33_attr;
1430 get_sharpV33_attr.sync.sync_mode = sync_mode;
1431 ret = rk_aiq_user_api2_asharpV33_GetAttrib(ctx, &get_sharpV33_attr);
1432 printf("get asharp v4 attri ret:%d done:%d\n\n", ret, get_sharpV33_attr.sync.done);
1433
1434 return ret;
1435 }
1436
sample_sharp_SetDefault_v33Lite(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode,rk_aiq_sharp_attrib_v33LT_t & default_sharpV33_attr)1437 XCamReturn sample_sharp_SetDefault_v33Lite(const rk_aiq_sys_ctx_t* ctx,
1438 rk_aiq_uapi_mode_sync_e sync_mode,
1439 rk_aiq_sharp_attrib_v33LT_t& default_sharpV33_attr) {
1440 XCamReturn ret = XCAM_RETURN_NO_ERROR;
1441
1442 ret = rk_aiq_user_api2_asharpV33Lite_SetAttrib(ctx, &default_sharpV33_attr);
1443 printf("set sharp v33Lite default auto attri ret:%d \n\n", ret);
1444
1445 rk_aiq_sharp_attrib_v33LT_t get_sharpV33_attr;
1446 get_sharpV33_attr.sync.sync_mode = sync_mode;
1447 ret = rk_aiq_user_api2_asharpV33Lite_GetAttrib(ctx, &get_sharpV33_attr);
1448 printf("get asharp v33Lite attri ret:%d done:%d\n\n", ret, get_sharpV33_attr.sync.done);
1449
1450 return ret;
1451 }
1452
sample_asharp_module(const void * arg)1453 XCamReturn sample_asharp_module (const void *arg)
1454 {
1455 int key = -1;
1456 CLEAR();
1457 XCamReturn ret = XCAM_RETURN_NO_ERROR;
1458 const demo_context_t *demo_ctx = (demo_context_t *)arg;
1459 const rk_aiq_sys_ctx_t* ctx ;
1460
1461 if (demo_ctx->camGroup) {
1462 ctx = (const rk_aiq_sys_ctx_t*)(demo_ctx->camgroup_ctx);
1463 printf("##################group !!!!########################\n");
1464 } else {
1465 ctx = (const rk_aiq_sys_ctx_t*)(demo_ctx->aiq_ctx);
1466 printf("##################sigle !!!!########################\n");
1467 }
1468 if (ctx == nullptr) {
1469 ERR ("%s, ctx is nullptr\n", __FUNCTION__);
1470 return XCAM_RETURN_ERROR_PARAM;
1471 }
1472
1473 rk_aiq_sharp_attrib_v4_t default_sharpV4_attr;
1474 rk_aiq_sharp_attrib_v33_t default_sharpV33_attr;
1475 rk_aiq_sharp_attrib_v33LT_t default_sharpV33LT_attr;
1476 if (CHECK_ISP_HW_V30()) {
1477 ret = rk_aiq_user_api2_asharpV4_GetAttrib(ctx, &default_sharpV4_attr);
1478 printf("get asharp v4 default auto attri ret:%d \n\n", ret);
1479 }
1480
1481 if (CHECK_ISP_HW_V32()) {
1482 ret = rk_aiq_user_api2_asharpV33_GetAttrib(ctx, &default_sharpV33_attr);
1483 printf("get asharp v33 default auto attri ret:%d \n\n", ret);
1484 }
1485
1486 if (CHECK_ISP_HW_V32_LITE()) {
1487 ret = rk_aiq_user_api2_asharpV33Lite_GetAttrib(ctx, &default_sharpV33LT_attr);
1488 printf("get asharp v33 default auto attri ret:%d \n\n", ret);
1489 }
1490
1491 do {
1492 sample_asharp_usage ();
1493
1494 key = getchar ();
1495 while (key == '\n' || key == '\r')
1496 key = getchar ();
1497 printf ("\n");
1498
1499 switch (key) {
1500 case '0':
1501 if (CHECK_ISP_HW_V30()) {
1502 sample_sharp_getAttri_v4(ctx, RK_AIQ_UAPI_MODE_SYNC);
1503 }
1504 if (CHECK_ISP_HW_V32()) {
1505 sample_sharp_getAttri_v33(ctx, RK_AIQ_UAPI_MODE_SYNC);
1506 }
1507 if (CHECK_ISP_HW_V32_LITE()) {
1508 sample_sharp_getAttri_v33Lite(ctx, RK_AIQ_UAPI_MODE_SYNC);
1509 }
1510 break;
1511 case '1':
1512 if (CHECK_ISP_HW_V30()) {
1513 sample_sharp_getStrength_v4(ctx, RK_AIQ_UAPI_MODE_SYNC);
1514 }
1515 if (CHECK_ISP_HW_V32() || CHECK_ISP_HW_V32_LITE()) {
1516 sample_sharp_getStrength_v33(ctx, RK_AIQ_UAPI_MODE_SYNC);
1517 }
1518 break;
1519 case '2':
1520 if (CHECK_ISP_HW_V30()) {
1521 sample_sharp_setAuto_v4(ctx, RK_AIQ_UAPI_MODE_SYNC);
1522 }
1523 if (CHECK_ISP_HW_V32()) {
1524 sample_sharp_setAuto_v33(ctx, RK_AIQ_UAPI_MODE_SYNC);
1525 }
1526 if (CHECK_ISP_HW_V32_LITE()) {
1527 sample_sharp_setAuto_v33Lite(ctx, RK_AIQ_UAPI_MODE_SYNC);
1528 }
1529 break;
1530 case '3':
1531 if (CHECK_ISP_HW_V30()) {
1532 sample_sharp_setManual_v4(ctx, RK_AIQ_UAPI_MODE_SYNC);
1533 }
1534 if (CHECK_ISP_HW_V32()) {
1535 sample_sharp_setManual_v33(ctx, RK_AIQ_UAPI_MODE_SYNC);
1536 }
1537 if (CHECK_ISP_HW_V32_LITE()) {
1538 sample_sharp_setManual_v33Lite(ctx, RK_AIQ_UAPI_MODE_SYNC);
1539 }
1540 break;
1541 case '4':
1542 if (CHECK_ISP_HW_V30()) {
1543 sample_sharp_setReg_v4(ctx, RK_AIQ_UAPI_MODE_SYNC);
1544 }
1545 if (CHECK_ISP_HW_V32()) {
1546 sample_sharp_setReg_v33(ctx, RK_AIQ_UAPI_MODE_SYNC);
1547 }
1548 if (CHECK_ISP_HW_V32_LITE()) {
1549 sample_sharp_setReg_v33Lite(ctx, RK_AIQ_UAPI_MODE_SYNC);
1550 }
1551 break;
1552 case '5':
1553 if (CHECK_ISP_HW_V30()) {
1554 sample_sharp_setStrength_v4(ctx, RK_AIQ_UAPI_MODE_SYNC, 1.0);
1555 }
1556 if (CHECK_ISP_HW_V32() || CHECK_ISP_HW_V32_LITE()) {
1557 sample_sharp_setStrength_v33(ctx, RK_AIQ_UAPI_MODE_SYNC, 1.0);
1558 }
1559 break;
1560 case '6':
1561 if (CHECK_ISP_HW_V30()) {
1562 sample_sharp_setStrength_v4(ctx, RK_AIQ_UAPI_MODE_SYNC, 0.0);
1563 }
1564 if (CHECK_ISP_HW_V32() || CHECK_ISP_HW_V32_LITE()) {
1565 sample_sharp_setStrength_v33(ctx, RK_AIQ_UAPI_MODE_SYNC, 0.0);
1566 }
1567 break;
1568 case '7':
1569 if (CHECK_ISP_HW_V30()) {
1570 sample_sharp_setStrength_v4(ctx, RK_AIQ_UAPI_MODE_SYNC, 0.5);
1571 }
1572 if (CHECK_ISP_HW_V32() || CHECK_ISP_HW_V32_LITE()) {
1573 sample_sharp_setStrength_v33(ctx, RK_AIQ_UAPI_MODE_SYNC, 0.5);
1574 }
1575 break;
1576 case '8':
1577 if (CHECK_ISP_HW_V30()) {
1578 sample_sharp_SetDefault_v4(ctx, RK_AIQ_UAPI_MODE_SYNC, default_sharpV4_attr);
1579 }
1580 if (CHECK_ISP_HW_V32()) {
1581 sample_sharp_SetDefault_v33(ctx, RK_AIQ_UAPI_MODE_SYNC, default_sharpV33_attr);
1582 }
1583 if (CHECK_ISP_HW_V32_LITE()) {
1584 sample_sharp_SetDefault_v33Lite(ctx, RK_AIQ_UAPI_MODE_SYNC,
1585 default_sharpV33LT_attr);
1586 }
1587 break;
1588 case 'a':
1589 if (CHECK_ISP_HW_V30()) {
1590 sample_sharp_getAttri_v4(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1591 }
1592 if (CHECK_ISP_HW_V32()) {
1593 sample_sharp_getAttri_v33(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1594 }
1595 if (CHECK_ISP_HW_V32_LITE()) {
1596 sample_sharp_getAttri_v33Lite(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1597 }
1598 break;
1599 case 'b':
1600 if (CHECK_ISP_HW_V30()) {
1601 sample_sharp_getStrength_v4(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1602 }
1603 if (CHECK_ISP_HW_V32() || CHECK_ISP_HW_V32_LITE()) {
1604 sample_sharp_getStrength_v33(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1605 }
1606 break;
1607 case 'c':
1608 if (CHECK_ISP_HW_V30()) {
1609 sample_sharp_setAuto_v4(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1610 }
1611 if (CHECK_ISP_HW_V32()) {
1612 sample_sharp_setAuto_v33(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1613 }
1614 if (CHECK_ISP_HW_V32_LITE()) {
1615 sample_sharp_setAuto_v33Lite(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1616 }
1617 break;
1618 case 'd':
1619 if (CHECK_ISP_HW_V30()) {
1620 sample_sharp_setManual_v4(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1621 }
1622 if (CHECK_ISP_HW_V32()) {
1623 sample_sharp_setManual_v33(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1624 }
1625 if (CHECK_ISP_HW_V32_LITE()) {
1626 sample_sharp_setManual_v33Lite(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1627 }
1628 break;
1629 case 'e':
1630 if (CHECK_ISP_HW_V30()) {
1631 sample_sharp_setReg_v4(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1632 }
1633 if (CHECK_ISP_HW_V32()) {
1634 sample_sharp_setReg_v33(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1635 }
1636 if (CHECK_ISP_HW_V32_LITE()) {
1637 sample_sharp_setReg_v33Lite(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1638 }
1639 break;
1640 case 'f':
1641 if (CHECK_ISP_HW_V30()) {
1642 sample_sharp_setStrength_v4(ctx, RK_AIQ_UAPI_MODE_ASYNC, 1.0);
1643 }
1644 if (CHECK_ISP_HW_V32() || CHECK_ISP_HW_V32_LITE()) {
1645 sample_sharp_setStrength_v33(ctx, RK_AIQ_UAPI_MODE_ASYNC, 1.0);
1646 }
1647 break;
1648 case 'g':
1649 if (CHECK_ISP_HW_V30()) {
1650 sample_sharp_setStrength_v4(ctx, RK_AIQ_UAPI_MODE_ASYNC, 0.0);
1651 }
1652 if (CHECK_ISP_HW_V32() || CHECK_ISP_HW_V32_LITE()) {
1653 sample_sharp_setStrength_v33(ctx, RK_AIQ_UAPI_MODE_ASYNC, 0.0);
1654 }
1655 break;
1656 case 'h':
1657 if (CHECK_ISP_HW_V30()) {
1658 sample_sharp_setStrength_v4(ctx, RK_AIQ_UAPI_MODE_ASYNC, 0.5);
1659 }
1660 if (CHECK_ISP_HW_V32() || CHECK_ISP_HW_V32_LITE()) {
1661 sample_sharp_setStrength_v33(ctx, RK_AIQ_UAPI_MODE_ASYNC, 0.5);
1662 }
1663 break;
1664 case 'i':
1665 if (CHECK_ISP_HW_V30()) {
1666 sample_sharp_SetDefault_v4(ctx, RK_AIQ_UAPI_MODE_ASYNC, default_sharpV4_attr);
1667 }
1668 if (CHECK_ISP_HW_V32()) {
1669 sample_sharp_SetDefault_v33(ctx, RK_AIQ_UAPI_MODE_ASYNC, default_sharpV33_attr);
1670 }
1671 if (CHECK_ISP_HW_V32_LITE()) {
1672 sample_sharp_SetDefault_v33Lite(ctx, RK_AIQ_UAPI_MODE_ASYNC,
1673 default_sharpV33LT_attr);
1674 }
1675 break;
1676 default:
1677 printf("not support test\n\n");
1678 break;
1679 }
1680
1681 } while (key != 'q' && key != 'Q');
1682
1683 return ret;
1684 }
1685
1686