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_abayertnr_usage()20 static void sample_abayertnr_usage()
21 {
22 printf("Usage : \n");
23 printf("\t 0) ABAYERTNR: get abayertnr attri on sync mode.\n");
24 printf("\t 1) ABAYERTNR: get abayertnr strength on sync mode.\n");
25 printf("\t 2) ABAYERTNR: set abayertnr attri auto on sync mode.\n");
26 printf("\t 3) ABAYERTNR: set abayertnr attri manual on sync mode.\n");
27 printf("\t 4) ABAYERTNR: set abayertnr attri reg value on sync mode.\n");
28 printf("\t 5) ABAYERTNR: set abayertnr strength max value 1.0 on sync mode, only on auto mode has effect.\n");
29 printf("\t 6) ABAYERTNR: set abayertnr strength min value 0.0 on sync mode, only on auto mode has effect.\n");
30 printf("\t 7) ABAYERTNR: set abayertnr strength med value 0.5 on sync mode, only on auto mode has effect.\n");
31 printf("\t 8) ABAYERTNR: set abayertnr attri to default value on sync mode.\n");
32 printf("\t a) ABAYERTNR: get abayertnr attri on async mode.\n");
33 printf("\t b) ABAYERTNR: get abayertnr strength on async mode.\n");
34 printf("\t c) ABAYERTNR: set abayertnr attri auto on async mode.\n");
35 printf("\t d) ABAYERTNR: set abayertnr attri manual on async mode.\n");
36 printf("\t e) ABAYERTNR: set abayertnr attri reg value on async mode.\n");
37 printf("\t f) ABAYERTNR: set abayertnr strength max value 1.0 on async mode, only on auto mode has effect.\n");
38 printf("\t g) ABAYERTNR: set abayertnr strength min value 0.0 on async mode, only on auto mode has effect.\n");
39 printf("\t h) ABAYERTNR: set abayertnr strength med value 0.5 on async mode, only on auto mode has effect.\n");
40 printf("\t i) ABAYERTNR: set abayertnr attri to default value on async mode.\n");
41 printf("\t q) ABAYERTNR: press key q or Q to quit.\n");
42
43
44
45 }
46
sample_print_abayertnr_info(const void * arg)47 void sample_print_abayertnr_info(const void *arg)
48 {
49 printf ("enter ABAYERTNR modult test!\n");
50 }
51
sample_abayertnr_getAttr_v2(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)52 XCamReturn sample_abayertnr_getAttr_v2(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode)
53 {
54 XCamReturn ret = XCAM_RETURN_NO_ERROR;
55
56 rk_aiq_bayertnr_attrib_v2_t bayertnrV2_attr;
57 bayertnrV2_attr.sync.sync_mode = sync_mode;
58 ret = rk_aiq_user_api2_abayertnrV2_GetAttrib(ctx, &bayertnrV2_attr);
59 printf("get abayertnr v2 attri ret:%d done:%d \n\n", ret, bayertnrV2_attr.sync.done);
60
61 return ret;
62 }
63
sample_abayertnr_getAttr_v23(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)64 XCamReturn sample_abayertnr_getAttr_v23(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode)
65 {
66 XCamReturn ret = XCAM_RETURN_NO_ERROR;
67
68 rk_aiq_bayertnr_attrib_v23_t bayertnr_attr;
69 bayertnr_attr.sync.sync_mode = sync_mode;
70 ret = rk_aiq_user_api2_abayertnrV23_GetAttrib(ctx, &bayertnr_attr);
71 printf("get abayertnr v23 attri ret:%d done:%d \n\n", ret, bayertnr_attr.sync.done);
72
73 return ret;
74 }
75
sample_abayertnr_getAttr_v23Lite(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)76 XCamReturn sample_abayertnr_getAttr_v23Lite(const rk_aiq_sys_ctx_t* ctx,
77 rk_aiq_uapi_mode_sync_e sync_mode) {
78 XCamReturn ret = XCAM_RETURN_NO_ERROR;
79
80 rk_aiq_bayertnr_attrib_v23L_t bayertnr_attr;
81 bayertnr_attr.sync.sync_mode = sync_mode;
82 ret = rk_aiq_user_api2_abayertnrV23Lite_GetAttrib(ctx, &bayertnr_attr);
83 printf("get abayertnr v23Lite attri ret:%d done:%d \n\n", ret, bayertnr_attr.sync.done);
84
85 return ret;
86 }
87
sample_abayertnr_getStrength_v2(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)88 XCamReturn sample_abayertnr_getStrength_v2(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode)
89 {
90 XCamReturn ret = XCAM_RETURN_NO_ERROR;
91
92 rk_aiq_bayertnr_strength_v2_t bayertnrV2Strenght;
93 bayertnrV2Strenght.sync.sync_mode = sync_mode;
94 ret = rk_aiq_user_api2_abayertnrV2_GetStrength(ctx, &bayertnrV2Strenght);
95 printf("get abayertnr v2 attri ret:%d strength:%f done:%d\n\n",
96 ret, bayertnrV2Strenght.percent, bayertnrV2Strenght.sync.done);
97
98
99 return ret;
100 }
101
sample_abayertnr_getStrength_v23(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)102 XCamReturn sample_abayertnr_getStrength_v23(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode)
103 {
104 XCamReturn ret = XCAM_RETURN_NO_ERROR;
105
106 rk_aiq_bayertnr_strength_v23_t bayertnrStrenght;
107 bayertnrStrenght.sync.sync_mode = sync_mode;
108 ret = rk_aiq_user_api2_abayertnrV23_GetStrength(ctx, &bayertnrStrenght);
109 printf("get abayertnr v2 attri ret:%d strength:%f done:%d\n\n",
110 ret, bayertnrStrenght.percent, bayertnrStrenght.sync.done);
111
112
113 return ret;
114 }
115
116
sample_abayertnr_setAuto_v2(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)117 XCamReturn sample_abayertnr_setAuto_v2(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode)
118 {
119 XCamReturn ret = XCAM_RETURN_NO_ERROR;
120
121 rk_aiq_bayertnr_attrib_v2_t bayertnrV2_attr;
122 bayertnrV2_attr.sync.sync_mode = sync_mode;
123 ret = rk_aiq_user_api2_abayertnrV2_GetAttrib(ctx, &bayertnrV2_attr);
124 bayertnrV2_attr.sync.sync_mode = sync_mode;
125 bayertnrV2_attr.eMode = ABAYERTNRV2_OP_MODE_AUTO;
126 bayertnrV2_attr.stAuto.st3DParams.enable = 1;
127 for(int i = 0; i < RK_BAYERNR_V2_MAX_ISO_NUM; i++) {
128 bayertnrV2_attr.stAuto.st3DParams.iso[i] = 50 * pow(2, i);
129
130 bayertnrV2_attr.stAuto.st3DParams.lumapoint[0] = 512;
131 bayertnrV2_attr.stAuto.st3DParams.lumapoint[1] = 1024;
132 bayertnrV2_attr.stAuto.st3DParams.lumapoint[2] = 1536;
133 bayertnrV2_attr.stAuto.st3DParams.lumapoint[3] = 2048;
134 bayertnrV2_attr.stAuto.st3DParams.lumapoint[4] = 3072;
135 bayertnrV2_attr.stAuto.st3DParams.lumapoint[5] = 4096;
136 bayertnrV2_attr.stAuto.st3DParams.lumapoint[6] = 5120;
137 bayertnrV2_attr.stAuto.st3DParams.lumapoint[7] = 6144;
138 bayertnrV2_attr.stAuto.st3DParams.lumapoint[8] = 7168;
139 bayertnrV2_attr.stAuto.st3DParams.lumapoint[9] = 8192;
140 bayertnrV2_attr.stAuto.st3DParams.lumapoint[10] = 9216;
141 bayertnrV2_attr.stAuto.st3DParams.lumapoint[11] = 10240;
142 bayertnrV2_attr.stAuto.st3DParams.lumapoint[12] = 11264;
143 bayertnrV2_attr.stAuto.st3DParams.lumapoint[13] = 12288;
144 bayertnrV2_attr.stAuto.st3DParams.lumapoint[14] = 13312;
145 bayertnrV2_attr.stAuto.st3DParams.lumapoint[15] = 14336;
146
147 bayertnrV2_attr.stAuto.st3DParams.sigma[i][0] = 90;
148 bayertnrV2_attr.stAuto.st3DParams.sigma[i][1] = 90;
149 bayertnrV2_attr.stAuto.st3DParams.sigma[i][2] = 90;
150 bayertnrV2_attr.stAuto.st3DParams.sigma[i][3] = 90;
151 bayertnrV2_attr.stAuto.st3DParams.sigma[i][4] = 90;
152 bayertnrV2_attr.stAuto.st3DParams.sigma[i][5] = 90;
153 bayertnrV2_attr.stAuto.st3DParams.sigma[i][6] = 90;
154 bayertnrV2_attr.stAuto.st3DParams.sigma[i][7] = 90;
155 bayertnrV2_attr.stAuto.st3DParams.sigma[i][8] = 90;
156 bayertnrV2_attr.stAuto.st3DParams.sigma[i][9] = 90;
157 bayertnrV2_attr.stAuto.st3DParams.sigma[i][10] = 90;
158 bayertnrV2_attr.stAuto.st3DParams.sigma[i][11] = 90;
159 bayertnrV2_attr.stAuto.st3DParams.sigma[i][12] = 90;
160 bayertnrV2_attr.stAuto.st3DParams.sigma[i][13] = 90;
161 bayertnrV2_attr.stAuto.st3DParams.sigma[i][14] = 90;
162 bayertnrV2_attr.stAuto.st3DParams.sigma[i][15] = 90;
163
164 bayertnrV2_attr.stAuto.st3DParams.lumapoint2[0] = 512;
165 bayertnrV2_attr.stAuto.st3DParams.lumapoint2[1] = 1024;
166 bayertnrV2_attr.stAuto.st3DParams.lumapoint2[2] = 1536;
167 bayertnrV2_attr.stAuto.st3DParams.lumapoint2[3] = 2048;
168 bayertnrV2_attr.stAuto.st3DParams.lumapoint2[4] = 3072;
169 bayertnrV2_attr.stAuto.st3DParams.lumapoint2[5] = 4096;
170 bayertnrV2_attr.stAuto.st3DParams.lumapoint2[6] = 5120;
171 bayertnrV2_attr.stAuto.st3DParams.lumapoint2[7] = 6144;
172 bayertnrV2_attr.stAuto.st3DParams.lumapoint2[8] = 7168;
173 bayertnrV2_attr.stAuto.st3DParams.lumapoint2[9] = 8192;
174 bayertnrV2_attr.stAuto.st3DParams.lumapoint2[10] = 9216;
175 bayertnrV2_attr.stAuto.st3DParams.lumapoint2[11] = 10240;
176 bayertnrV2_attr.stAuto.st3DParams.lumapoint2[12] = 11264;
177 bayertnrV2_attr.stAuto.st3DParams.lumapoint2[13] = 12288;
178 bayertnrV2_attr.stAuto.st3DParams.lumapoint2[14] = 13312;
179 bayertnrV2_attr.stAuto.st3DParams.lumapoint2[15] = 14336;
180
181
182 bayertnrV2_attr.stAuto.st3DParams.lo_sigma[i][0] = 90;
183 bayertnrV2_attr.stAuto.st3DParams.lo_sigma[i][1] = 90;
184 bayertnrV2_attr.stAuto.st3DParams.lo_sigma[i][2] = 90;
185 bayertnrV2_attr.stAuto.st3DParams.lo_sigma[i][3] = 90;
186 bayertnrV2_attr.stAuto.st3DParams.lo_sigma[i][4] = 90;
187 bayertnrV2_attr.stAuto.st3DParams.lo_sigma[i][5] = 90;
188 bayertnrV2_attr.stAuto.st3DParams.lo_sigma[i][6] = 90;
189 bayertnrV2_attr.stAuto.st3DParams.lo_sigma[i][7] = 90;
190 bayertnrV2_attr.stAuto.st3DParams.lo_sigma[i][8] = 90;
191 bayertnrV2_attr.stAuto.st3DParams.lo_sigma[i][9] = 90;
192 bayertnrV2_attr.stAuto.st3DParams.lo_sigma[i][10] = 90;
193 bayertnrV2_attr.stAuto.st3DParams.lo_sigma[i][11] = 90;
194 bayertnrV2_attr.stAuto.st3DParams.lo_sigma[i][12] = 90;
195 bayertnrV2_attr.stAuto.st3DParams.lo_sigma[i][13] = 90;
196 bayertnrV2_attr.stAuto.st3DParams.lo_sigma[i][14] = 90;
197 bayertnrV2_attr.stAuto.st3DParams.lo_sigma[i][15] = 90;
198
199 bayertnrV2_attr.stAuto.st3DParams.hi_sigma[i][0] = 90;
200 bayertnrV2_attr.stAuto.st3DParams.hi_sigma[i][1] = 90;
201 bayertnrV2_attr.stAuto.st3DParams.hi_sigma[i][2] = 90;
202 bayertnrV2_attr.stAuto.st3DParams.hi_sigma[i][3] = 90;
203 bayertnrV2_attr.stAuto.st3DParams.hi_sigma[i][4] = 90;
204 bayertnrV2_attr.stAuto.st3DParams.hi_sigma[i][5] = 90;
205 bayertnrV2_attr.stAuto.st3DParams.hi_sigma[i][6] = 90;
206 bayertnrV2_attr.stAuto.st3DParams.hi_sigma[i][7] = 90;
207 bayertnrV2_attr.stAuto.st3DParams.hi_sigma[i][8] = 90;
208 bayertnrV2_attr.stAuto.st3DParams.hi_sigma[i][9] = 90;
209 bayertnrV2_attr.stAuto.st3DParams.hi_sigma[i][10] = 90;
210 bayertnrV2_attr.stAuto.st3DParams.hi_sigma[i][11] = 90;
211 bayertnrV2_attr.stAuto.st3DParams.hi_sigma[i][12] = 90;
212 bayertnrV2_attr.stAuto.st3DParams.hi_sigma[i][13] = 90;
213 bayertnrV2_attr.stAuto.st3DParams.hi_sigma[i][14] = 90;
214 bayertnrV2_attr.stAuto.st3DParams.hi_sigma[i][15] = 90;
215
216 bayertnrV2_attr.stAuto.st3DParams.thumbds[i] = 8;
217 bayertnrV2_attr.stAuto.st3DParams.lo_enable[i] = 1;
218 bayertnrV2_attr.stAuto.st3DParams.hi_enable[i] = 1;
219 bayertnrV2_attr.stAuto.st3DParams.lo_med_en[i] = 1;
220 bayertnrV2_attr.stAuto.st3DParams.lo_gsbay_en[i] = 1;
221 bayertnrV2_attr.stAuto.st3DParams.lo_gslum_en[i] = 1;
222 bayertnrV2_attr.stAuto.st3DParams.hi_med_en[i] = 1;
223 bayertnrV2_attr.stAuto.st3DParams.hi_gslum_en[i] = 1;
224 bayertnrV2_attr.stAuto.st3DParams.global_pk_en[i] = 0;
225 bayertnrV2_attr.stAuto.st3DParams.global_pksq[i] = 1024;
226
227 bayertnrV2_attr.stAuto.st3DParams.lo_filter_strength[i] = 1.0;
228 bayertnrV2_attr.stAuto.st3DParams.hi_filter_strength[i] = 1.0;
229
230 bayertnrV2_attr.stAuto.st3DParams.soft_threshold_ratio[i] = 0.0;
231 bayertnrV2_attr.stAuto.st3DParams.hi_wgt_comp[i] = 0.16;
232 bayertnrV2_attr.stAuto.st3DParams.clipwgt[i] = 0.03215;
233 bayertnrV2_attr.stAuto.st3DParams.hidif_th[i] = 32767;
234
235 }
236
237 ret = rk_aiq_user_api2_abayertnrV2_SetAttrib(ctx, &bayertnrV2_attr);
238 printf("set abayertnr attri auto ret:%d \n\n", ret);
239
240 rk_aiq_bayertnr_attrib_v2_t get_bayertnrV2_attr;
241 get_bayertnrV2_attr.sync.sync_mode = sync_mode;
242 ret = rk_aiq_user_api2_abayertnrV2_GetAttrib(ctx, &get_bayertnrV2_attr);
243 printf("get abayertnr v2 attri ret:%d done:%d \n\n", ret, get_bayertnrV2_attr.sync.done);
244 return ret;
245 }
246
sample_abayertnr_setAuto_v23(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)247 XCamReturn sample_abayertnr_setAuto_v23(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode)
248 {
249 XCamReturn ret = XCAM_RETURN_NO_ERROR;
250
251 rk_aiq_bayertnr_attrib_v23_t bayertnr_attr;
252 bayertnr_attr.sync.sync_mode = sync_mode;
253 ret = rk_aiq_user_api2_abayertnrV23_GetAttrib(ctx, &bayertnr_attr);
254 bayertnr_attr.sync.sync_mode = sync_mode;
255 bayertnr_attr.eMode = ABAYERTNRV23_OP_MODE_AUTO;
256 bayertnr_attr.stAuto.st3DParams.enable = 1;
257
258 for(int i = 0; i < RK_BAYERNR_V23_MAX_ISO_NUM; i++) {
259 bayertnr_attr.stAuto.st3DParams.iso[i] = 50 * pow(2, i);
260
261 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[0] = 512;
262 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[1] = 1024;
263 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[2] = 1536;
264 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[3] = 2048;
265 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[4] = 3072;
266 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[5] = 4096;
267 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[6] = 5120;
268 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[7] = 6144;
269 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[8] = 7168;
270 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[9] = 8192;
271 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[10] = 9216;
272 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[11] = 10240;
273 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[12] = 11264;
274 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[13] = 12288;
275 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[14] = 13312;
276 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[15] = 14336;
277
278 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[0] = 90;
279 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[1] = 90;
280 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[2] = 90;
281 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[3] = 90;
282 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[4] = 90;
283 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[5] = 90;
284 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[6] = 90;
285 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[7] = 90;
286 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[8] = 90;
287 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[9] = 90;
288 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[10] = 90;
289 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[11] = 90;
290 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[12] = 90;
291 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[13] = 90;
292 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[14] = 90;
293 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[15] = 90;
294
295 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[0] = 512;
296 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[1] = 1024;
297 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[2] = 1536;
298 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[3] = 2048;
299 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[4] = 3072;
300 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[5] = 4096;
301 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[6] = 5120;
302 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[7] = 6144;
303 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[8] = 7168;
304 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[9] = 8192;
305 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[10] = 9216;
306 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[11] = 10240;
307 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[12] = 11264;
308 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[13] = 12288;
309 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[14] = 13312;
310 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[15] = 14336;
311
312
313 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[0] = 90;
314 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[1] = 90;
315 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[2] = 90;
316 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[3] = 90;
317 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[4] = 90;
318 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[5] = 90;
319 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[6] = 90;
320 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[7] = 90;
321 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[8] = 90;
322 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[9] = 90;
323 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[10] = 90;
324 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[11] = 90;
325 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[12] = 90;
326 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[13] = 90;
327 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[14] = 90;
328 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[15] = 90;
329
330 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[0] = 90;
331 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[1] = 90;
332 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[2] = 90;
333 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[3] = 90;
334 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[4] = 90;
335 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[5] = 90;
336 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[6] = 90;
337 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[7] = 90;
338 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[8] = 90;
339 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[9] = 90;
340 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[10] = 90;
341 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[11] = 90;
342 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[12] = 90;
343 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[13] = 90;
344 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[14] = 90;
345 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[15] = 90;
346
347
348 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].thumbds_w = 8;
349 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].thumbds_h = 4;
350 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_enable = 1;
351 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_enable = 1;
352 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_med_en = 1;
353 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_gsbay_en = 1;
354 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_gslum_en = 1;
355 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_med_en = 1;
356 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_gslum_en = 1;
357
358 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].global_pk_en = 0;
359 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].global_pksq = 1024;
360
361 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_filter_strength = 1.0;
362 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_filter_strength = 1.0;
363
364 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].soft_threshold_ratio = 0.0;
365 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_wgt_comp = 0.16;
366 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_clipwgt = 0.03215;
367 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hidif_th = 32767;
368
369 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].trans_en = 0;
370 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].wgt_use_mode = 0;
371 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].wgt_mge_mode = 1;
372 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_guass = 0;
373 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].kl_guass = 0;
374
375 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_filter_abs_ctrl = 0;
376 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_filter_filt_bay = 0;
377 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_filter_filt_avg = 0;
378 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_filter_filt_mode = 4;
379
380 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_filter_rat0 = 1;
381 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_filter_thed0 = 0;
382 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_filter_rat0 = 0;
383 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_filter_thed0 = 256;
384 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_filter_rat1 = 0;
385 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_filter_thed1 = 1024;
386
387 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].guass_guide_coeff0 = 16;
388 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].guass_guide_coeff1 = 8;
389 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].guass_guide_coeff2 = 16;
390 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].guass_guide_coeff3 = 8;
391
392 }
393
394 ret = rk_aiq_user_api2_abayertnrV23_SetAttrib(ctx, &bayertnr_attr);
395 printf("set abayertnr attri auto ret:%d \n\n", ret);
396
397 rk_aiq_bayertnr_attrib_v23_t get_bayertnr_attr;
398 get_bayertnr_attr.sync.sync_mode = sync_mode;
399 ret = rk_aiq_user_api2_abayertnrV23_GetAttrib(ctx, &get_bayertnr_attr);
400 printf("get abayertnr v2 attri ret:%d done:%d \n\n", ret, get_bayertnr_attr.sync.done);
401 return ret;
402 }
403
sample_abayertnr_setAuto_v23Lite(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)404 XCamReturn sample_abayertnr_setAuto_v23Lite(const rk_aiq_sys_ctx_t* ctx,
405 rk_aiq_uapi_mode_sync_e sync_mode) {
406 XCamReturn ret = XCAM_RETURN_NO_ERROR;
407
408 rk_aiq_bayertnr_attrib_v23L_t bayertnr_attr;
409 bayertnr_attr.sync.sync_mode = sync_mode;
410 ret = rk_aiq_user_api2_abayertnrV23Lite_GetAttrib(ctx, &bayertnr_attr);
411 bayertnr_attr.sync.sync_mode = sync_mode;
412 bayertnr_attr.eMode = ABAYERTNRV23_OP_MODE_AUTO;
413 bayertnr_attr.stAuto.st3DParams.enable = 1;
414
415 for (int i = 0; i < RK_BAYERNR_V23_MAX_ISO_NUM; i++) {
416 bayertnr_attr.stAuto.st3DParams.iso[i] = 50 * pow(2, i);
417
418 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[0] = 512;
419 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[1] = 1024;
420 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[2] = 1536;
421 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[3] = 2048;
422 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[4] = 3072;
423 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[5] = 4096;
424 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[6] = 5120;
425 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[7] = 6144;
426 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[8] = 7168;
427 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[9] = 8192;
428 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[10] = 9216;
429 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[11] = 10240;
430 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[12] = 11264;
431 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[13] = 12288;
432 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[14] = 13312;
433 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint[15] = 14336;
434
435 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[0] = 90;
436 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[1] = 90;
437 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[2] = 90;
438 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[3] = 90;
439 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[4] = 90;
440 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[5] = 90;
441 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[6] = 90;
442 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[7] = 90;
443 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[8] = 90;
444 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[9] = 90;
445 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[10] = 90;
446 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[11] = 90;
447 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[12] = 90;
448 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[13] = 90;
449 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[14] = 90;
450 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].sigma[15] = 90;
451
452 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[0] = 512;
453 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[1] = 1024;
454 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[2] = 1536;
455 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[3] = 2048;
456 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[4] = 3072;
457 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[5] = 4096;
458 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[6] = 5120;
459 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[7] = 6144;
460 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[8] = 7168;
461 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[9] = 8192;
462 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[10] = 9216;
463 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[11] = 10240;
464 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[12] = 11264;
465 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[13] = 12288;
466 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[14] = 13312;
467 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lumapoint2[15] = 14336;
468
469 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[0] = 90;
470 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[1] = 90;
471 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[2] = 90;
472 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[3] = 90;
473 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[4] = 90;
474 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[5] = 90;
475 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[6] = 90;
476 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[7] = 90;
477 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[8] = 90;
478 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[9] = 90;
479 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[10] = 90;
480 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[11] = 90;
481 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[12] = 90;
482 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[13] = 90;
483 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[14] = 90;
484 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_sigma[15] = 90;
485
486 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[0] = 90;
487 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[1] = 90;
488 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[2] = 90;
489 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[3] = 90;
490 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[4] = 90;
491 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[5] = 90;
492 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[6] = 90;
493 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[7] = 90;
494 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[8] = 90;
495 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[9] = 90;
496 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[10] = 90;
497 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[11] = 90;
498 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[12] = 90;
499 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[13] = 90;
500 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[14] = 90;
501 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_sigma[15] = 90;
502
503 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].thumbds_w = 8;
504 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].thumbds_h = 4;
505 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_enable = 1;
506 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_enable = 1;
507
508 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_gsbay_en = 1;
509 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_gslum_en = 1;
510
511 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_gslum_en = 1;
512
513 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].global_pk_en = 0;
514 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].global_pksq = 1024;
515
516 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_filter_strength = 1.0;
517 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_filter_strength = 1.0;
518
519 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].soft_threshold_ratio = 0.0;
520 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_wgt_comp = 0.16;
521 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_clipwgt = 0.03215;
522 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hidif_th = 32767;
523
524 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].trans_en = 0;
525 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].wgt_use_mode = 1;
526 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].wgt_mge_mode = 1;
527
528 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_filter_abs_ctrl = 0;
529
530 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_filter_rat0 = 1;
531 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].lo_filter_thed0 = 0;
532 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_filter_rat0 = 0;
533 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_filter_thed0 = 256;
534 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_filter_rat1 = 0;
535 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].hi_filter_thed1 = 1024;
536
537 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].guass_guide_coeff0 = 16;
538 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].guass_guide_coeff1 = 8;
539 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].guass_guide_coeff2 = 4;
540 // bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].guass_guide_coeff3 = 0;
541
542 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].wgtmm_opt_en = 0;
543 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].wgtmm_sel_en = 0;
544 bayertnr_attr.stAuto.st3DParams.bayertnrParamISO[i].wgtmin = 0;
545 }
546
547 ret = rk_aiq_user_api2_abayertnrV23Lite_SetAttrib(ctx, &bayertnr_attr);
548 printf("set abayertnr attri v23Lite auto ret:%d \n\n", ret);
549
550 rk_aiq_bayertnr_attrib_v23L_t get_bayertnr_attr;
551 get_bayertnr_attr.sync.sync_mode = sync_mode;
552 ret = rk_aiq_user_api2_abayertnrV23Lite_GetAttrib(ctx, &get_bayertnr_attr);
553 printf("get abayertnr v23Lite attri ret:%d done:%d \n\n", ret, get_bayertnr_attr.sync.done);
554 return ret;
555 }
556
sample_abayertnr_setManual_v2(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)557 XCamReturn sample_abayertnr_setManual_v2(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode)
558 {
559 XCamReturn ret = XCAM_RETURN_NO_ERROR;
560
561 rk_aiq_bayertnr_attrib_v2_t bayertnrV2_attr;
562 bayertnrV2_attr.sync.sync_mode = sync_mode;
563 ret = rk_aiq_user_api2_abayertnrV2_GetAttrib(ctx, &bayertnrV2_attr);
564 bayertnrV2_attr.sync.sync_mode = sync_mode;
565 bayertnrV2_attr.eMode = ABAYERTNRV2_OP_MODE_MANUAL;
566 bayertnrV2_attr.stManual.st3DSelect.enable = 1;
567
568
569 bayertnrV2_attr.stManual.st3DSelect.lumapoint[0] = 512;
570 bayertnrV2_attr.stManual.st3DSelect.lumapoint[1] = 1024;
571 bayertnrV2_attr.stManual.st3DSelect.lumapoint[2] = 1536;
572 bayertnrV2_attr.stManual.st3DSelect.lumapoint[3] = 2048;
573 bayertnrV2_attr.stManual.st3DSelect.lumapoint[4] = 3072;
574 bayertnrV2_attr.stManual.st3DSelect.lumapoint[5] = 4096;
575 bayertnrV2_attr.stManual.st3DSelect.lumapoint[6] = 5120;
576 bayertnrV2_attr.stManual.st3DSelect.lumapoint[7] = 6144;
577 bayertnrV2_attr.stManual.st3DSelect.lumapoint[8] = 7168;
578 bayertnrV2_attr.stManual.st3DSelect.lumapoint[9] = 8192;
579 bayertnrV2_attr.stManual.st3DSelect.lumapoint[10] = 9216;
580 bayertnrV2_attr.stManual.st3DSelect.lumapoint[11] = 10240;
581 bayertnrV2_attr.stManual.st3DSelect.lumapoint[12] = 11264;
582 bayertnrV2_attr.stManual.st3DSelect.lumapoint[13] = 12288;
583 bayertnrV2_attr.stManual.st3DSelect.lumapoint[14] = 13312;
584 bayertnrV2_attr.stManual.st3DSelect.lumapoint[15] = 14336;
585
586 bayertnrV2_attr.stManual.st3DSelect.sigma[0] = 90;
587 bayertnrV2_attr.stManual.st3DSelect.sigma[1] = 90;
588 bayertnrV2_attr.stManual.st3DSelect.sigma[2] = 90;
589 bayertnrV2_attr.stManual.st3DSelect.sigma[3] = 90;
590 bayertnrV2_attr.stManual.st3DSelect.sigma[4] = 90;
591 bayertnrV2_attr.stManual.st3DSelect.sigma[5] = 90;
592 bayertnrV2_attr.stManual.st3DSelect.sigma[6] = 90;
593 bayertnrV2_attr.stManual.st3DSelect.sigma[7] = 90;
594 bayertnrV2_attr.stManual.st3DSelect.sigma[8] = 90;
595 bayertnrV2_attr.stManual.st3DSelect.sigma[9] = 90;
596 bayertnrV2_attr.stManual.st3DSelect.sigma[10] = 90;
597 bayertnrV2_attr.stManual.st3DSelect.sigma[11] = 90;
598 bayertnrV2_attr.stManual.st3DSelect.sigma[12] = 90;
599 bayertnrV2_attr.stManual.st3DSelect.sigma[13] = 90;
600 bayertnrV2_attr.stManual.st3DSelect.sigma[14] = 90;
601 bayertnrV2_attr.stManual.st3DSelect.sigma[15] = 90;
602
603 bayertnrV2_attr.stManual.st3DSelect.lumapoint2[0] = 512;
604 bayertnrV2_attr.stManual.st3DSelect.lumapoint2[1] = 1024;
605 bayertnrV2_attr.stManual.st3DSelect.lumapoint2[2] = 1536;
606 bayertnrV2_attr.stManual.st3DSelect.lumapoint2[3] = 2048;
607 bayertnrV2_attr.stManual.st3DSelect.lumapoint2[4] = 3072;
608 bayertnrV2_attr.stManual.st3DSelect.lumapoint2[5] = 4096;
609 bayertnrV2_attr.stManual.st3DSelect.lumapoint2[6] = 5120;
610 bayertnrV2_attr.stManual.st3DSelect.lumapoint2[7] = 6144;
611 bayertnrV2_attr.stManual.st3DSelect.lumapoint2[8] = 7168;
612 bayertnrV2_attr.stManual.st3DSelect.lumapoint2[9] = 8192;
613 bayertnrV2_attr.stManual.st3DSelect.lumapoint2[10] = 9216;
614 bayertnrV2_attr.stManual.st3DSelect.lumapoint2[11] = 10240;
615 bayertnrV2_attr.stManual.st3DSelect.lumapoint2[12] = 11264;
616 bayertnrV2_attr.stManual.st3DSelect.lumapoint2[13] = 12288;
617 bayertnrV2_attr.stManual.st3DSelect.lumapoint2[14] = 13312;
618 bayertnrV2_attr.stManual.st3DSelect.lumapoint2[15] = 14336;
619
620
621 bayertnrV2_attr.stManual.st3DSelect.lo_sigma[0] = 32;
622 bayertnrV2_attr.stManual.st3DSelect.lo_sigma[1] = 32;
623 bayertnrV2_attr.stManual.st3DSelect.lo_sigma[2] = 32;
624 bayertnrV2_attr.stManual.st3DSelect.lo_sigma[3] = 32;
625 bayertnrV2_attr.stManual.st3DSelect.lo_sigma[4] = 32;
626 bayertnrV2_attr.stManual.st3DSelect.lo_sigma[5] = 32;
627 bayertnrV2_attr.stManual.st3DSelect.lo_sigma[6] = 32;
628 bayertnrV2_attr.stManual.st3DSelect.lo_sigma[7] = 32;
629 bayertnrV2_attr.stManual.st3DSelect.lo_sigma[8] = 32;
630 bayertnrV2_attr.stManual.st3DSelect.lo_sigma[9] = 32;
631 bayertnrV2_attr.stManual.st3DSelect.lo_sigma[10] = 32;
632 bayertnrV2_attr.stManual.st3DSelect.lo_sigma[11] = 32;
633 bayertnrV2_attr.stManual.st3DSelect.lo_sigma[12] = 32;
634 bayertnrV2_attr.stManual.st3DSelect.lo_sigma[13] = 32;
635 bayertnrV2_attr.stManual.st3DSelect.lo_sigma[14] = 32;
636 bayertnrV2_attr.stManual.st3DSelect.lo_sigma[15] = 32;
637
638 bayertnrV2_attr.stManual.st3DSelect.hi_sigma[0] = 256;
639 bayertnrV2_attr.stManual.st3DSelect.hi_sigma[1] = 256;
640 bayertnrV2_attr.stManual.st3DSelect.hi_sigma[2] = 256;
641 bayertnrV2_attr.stManual.st3DSelect.hi_sigma[3] = 256;
642 bayertnrV2_attr.stManual.st3DSelect.hi_sigma[4] = 256;
643 bayertnrV2_attr.stManual.st3DSelect.hi_sigma[5] = 256;
644 bayertnrV2_attr.stManual.st3DSelect.hi_sigma[6] = 256;
645 bayertnrV2_attr.stManual.st3DSelect.hi_sigma[7] = 256;
646 bayertnrV2_attr.stManual.st3DSelect.hi_sigma[8] = 256;
647 bayertnrV2_attr.stManual.st3DSelect.hi_sigma[9] = 256;
648 bayertnrV2_attr.stManual.st3DSelect.hi_sigma[10] = 256;
649 bayertnrV2_attr.stManual.st3DSelect.hi_sigma[11] = 256;
650 bayertnrV2_attr.stManual.st3DSelect.hi_sigma[12] = 256;
651 bayertnrV2_attr.stManual.st3DSelect.hi_sigma[13] = 256;
652 bayertnrV2_attr.stManual.st3DSelect.hi_sigma[14] = 256;
653 bayertnrV2_attr.stManual.st3DSelect.hi_sigma[15] = 256;
654
655 bayertnrV2_attr.stManual.st3DSelect.thumbds = 8;
656 bayertnrV2_attr.stManual.st3DSelect.lo_enable = 1;
657 bayertnrV2_attr.stManual.st3DSelect.hi_enable = 1;
658 bayertnrV2_attr.stManual.st3DSelect.lo_med_en = 1;
659 bayertnrV2_attr.stManual.st3DSelect.lo_gsbay_en = 1;
660 bayertnrV2_attr.stManual.st3DSelect.lo_gslum_en = 1;
661 bayertnrV2_attr.stManual.st3DSelect.hi_med_en = 1;
662 bayertnrV2_attr.stManual.st3DSelect.hi_gslum_en = 1;
663 bayertnrV2_attr.stManual.st3DSelect.global_pk_en = 0;
664 bayertnrV2_attr.stManual.st3DSelect.global_pksq = 1024;
665
666 bayertnrV2_attr.stManual.st3DSelect.lo_filter_strength = 1.0;
667 bayertnrV2_attr.stManual.st3DSelect.hi_filter_strength = 1.0;
668
669 bayertnrV2_attr.stManual.st3DSelect.soft_threshold_ratio = 0.0;
670 bayertnrV2_attr.stManual.st3DSelect.hi_wgt_comp = 0.16;
671 bayertnrV2_attr.stManual.st3DSelect.clipwgt = 0.03215;
672 bayertnrV2_attr.stManual.st3DSelect.hidif_th = 32767;
673
674
675 ret = rk_aiq_user_api2_abayertnrV2_SetAttrib(ctx, &bayertnrV2_attr);
676 printf("set bayertnr v2 attri manual ret:%d \n\n", ret);
677
678 rk_aiq_bayertnr_attrib_v2_t get_bayertnrV2_attr;
679 get_bayertnrV2_attr.sync.sync_mode = sync_mode;
680 ret = rk_aiq_user_api2_abayertnrV2_GetAttrib(ctx, &get_bayertnrV2_attr);
681 printf("get abayertnr v2 attri ret:%d done:%d \n\n", ret, get_bayertnrV2_attr.sync.done);
682 return ret;
683 }
684
685
sample_abayertnr_setManual_v23(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)686 XCamReturn sample_abayertnr_setManual_v23(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode)
687 {
688 XCamReturn ret = XCAM_RETURN_NO_ERROR;
689
690 rk_aiq_bayertnr_attrib_v23_t bayertnr_attr;
691 bayertnr_attr.sync.sync_mode = sync_mode;
692 ret = rk_aiq_user_api2_abayertnrV23_GetAttrib(ctx, &bayertnr_attr);
693 bayertnr_attr.sync.sync_mode = sync_mode;
694 bayertnr_attr.eMode = ABAYERTNRV23_OP_MODE_MANUAL;
695 bayertnr_attr.stManual.st3DSelect.enable = 1;
696
697
698 bayertnr_attr.stManual.st3DSelect.lumapoint[0] = 512;
699 bayertnr_attr.stManual.st3DSelect.lumapoint[1] = 1024;
700 bayertnr_attr.stManual.st3DSelect.lumapoint[2] = 1536;
701 bayertnr_attr.stManual.st3DSelect.lumapoint[3] = 2048;
702 bayertnr_attr.stManual.st3DSelect.lumapoint[4] = 3072;
703 bayertnr_attr.stManual.st3DSelect.lumapoint[5] = 4096;
704 bayertnr_attr.stManual.st3DSelect.lumapoint[6] = 5120;
705 bayertnr_attr.stManual.st3DSelect.lumapoint[7] = 6144;
706 bayertnr_attr.stManual.st3DSelect.lumapoint[8] = 7168;
707 bayertnr_attr.stManual.st3DSelect.lumapoint[9] = 8192;
708 bayertnr_attr.stManual.st3DSelect.lumapoint[10] = 9216;
709 bayertnr_attr.stManual.st3DSelect.lumapoint[11] = 10240;
710 bayertnr_attr.stManual.st3DSelect.lumapoint[12] = 11264;
711 bayertnr_attr.stManual.st3DSelect.lumapoint[13] = 12288;
712 bayertnr_attr.stManual.st3DSelect.lumapoint[14] = 13312;
713 bayertnr_attr.stManual.st3DSelect.lumapoint[15] = 14336;
714
715 bayertnr_attr.stManual.st3DSelect.sigma[0] = 90;
716 bayertnr_attr.stManual.st3DSelect.sigma[1] = 90;
717 bayertnr_attr.stManual.st3DSelect.sigma[2] = 90;
718 bayertnr_attr.stManual.st3DSelect.sigma[3] = 90;
719 bayertnr_attr.stManual.st3DSelect.sigma[4] = 90;
720 bayertnr_attr.stManual.st3DSelect.sigma[5] = 90;
721 bayertnr_attr.stManual.st3DSelect.sigma[6] = 90;
722 bayertnr_attr.stManual.st3DSelect.sigma[7] = 90;
723 bayertnr_attr.stManual.st3DSelect.sigma[8] = 90;
724 bayertnr_attr.stManual.st3DSelect.sigma[9] = 90;
725 bayertnr_attr.stManual.st3DSelect.sigma[10] = 90;
726 bayertnr_attr.stManual.st3DSelect.sigma[11] = 90;
727 bayertnr_attr.stManual.st3DSelect.sigma[12] = 90;
728 bayertnr_attr.stManual.st3DSelect.sigma[13] = 90;
729 bayertnr_attr.stManual.st3DSelect.sigma[14] = 90;
730 bayertnr_attr.stManual.st3DSelect.sigma[15] = 90;
731
732 bayertnr_attr.stManual.st3DSelect.lumapoint2[0] = 512;
733 bayertnr_attr.stManual.st3DSelect.lumapoint2[1] = 1024;
734 bayertnr_attr.stManual.st3DSelect.lumapoint2[2] = 1536;
735 bayertnr_attr.stManual.st3DSelect.lumapoint2[3] = 2048;
736 bayertnr_attr.stManual.st3DSelect.lumapoint2[4] = 3072;
737 bayertnr_attr.stManual.st3DSelect.lumapoint2[5] = 4096;
738 bayertnr_attr.stManual.st3DSelect.lumapoint2[6] = 5120;
739 bayertnr_attr.stManual.st3DSelect.lumapoint2[7] = 6144;
740 bayertnr_attr.stManual.st3DSelect.lumapoint2[8] = 7168;
741 bayertnr_attr.stManual.st3DSelect.lumapoint2[9] = 8192;
742 bayertnr_attr.stManual.st3DSelect.lumapoint2[10] = 9216;
743 bayertnr_attr.stManual.st3DSelect.lumapoint2[11] = 10240;
744 bayertnr_attr.stManual.st3DSelect.lumapoint2[12] = 11264;
745 bayertnr_attr.stManual.st3DSelect.lumapoint2[13] = 12288;
746 bayertnr_attr.stManual.st3DSelect.lumapoint2[14] = 13312;
747 bayertnr_attr.stManual.st3DSelect.lumapoint2[15] = 14336;
748
749
750 bayertnr_attr.stManual.st3DSelect.lo_sigma[0] = 32;
751 bayertnr_attr.stManual.st3DSelect.lo_sigma[1] = 32;
752 bayertnr_attr.stManual.st3DSelect.lo_sigma[2] = 32;
753 bayertnr_attr.stManual.st3DSelect.lo_sigma[3] = 32;
754 bayertnr_attr.stManual.st3DSelect.lo_sigma[4] = 32;
755 bayertnr_attr.stManual.st3DSelect.lo_sigma[5] = 32;
756 bayertnr_attr.stManual.st3DSelect.lo_sigma[6] = 32;
757 bayertnr_attr.stManual.st3DSelect.lo_sigma[7] = 32;
758 bayertnr_attr.stManual.st3DSelect.lo_sigma[8] = 32;
759 bayertnr_attr.stManual.st3DSelect.lo_sigma[9] = 32;
760 bayertnr_attr.stManual.st3DSelect.lo_sigma[10] = 32;
761 bayertnr_attr.stManual.st3DSelect.lo_sigma[11] = 32;
762 bayertnr_attr.stManual.st3DSelect.lo_sigma[12] = 32;
763 bayertnr_attr.stManual.st3DSelect.lo_sigma[13] = 32;
764 bayertnr_attr.stManual.st3DSelect.lo_sigma[14] = 32;
765 bayertnr_attr.stManual.st3DSelect.lo_sigma[15] = 32;
766
767 bayertnr_attr.stManual.st3DSelect.hi_sigma[0] = 256;
768 bayertnr_attr.stManual.st3DSelect.hi_sigma[1] = 256;
769 bayertnr_attr.stManual.st3DSelect.hi_sigma[2] = 256;
770 bayertnr_attr.stManual.st3DSelect.hi_sigma[3] = 256;
771 bayertnr_attr.stManual.st3DSelect.hi_sigma[4] = 256;
772 bayertnr_attr.stManual.st3DSelect.hi_sigma[5] = 256;
773 bayertnr_attr.stManual.st3DSelect.hi_sigma[6] = 256;
774 bayertnr_attr.stManual.st3DSelect.hi_sigma[7] = 256;
775 bayertnr_attr.stManual.st3DSelect.hi_sigma[8] = 256;
776 bayertnr_attr.stManual.st3DSelect.hi_sigma[9] = 256;
777 bayertnr_attr.stManual.st3DSelect.hi_sigma[10] = 256;
778 bayertnr_attr.stManual.st3DSelect.hi_sigma[11] = 256;
779 bayertnr_attr.stManual.st3DSelect.hi_sigma[12] = 256;
780 bayertnr_attr.stManual.st3DSelect.hi_sigma[13] = 256;
781 bayertnr_attr.stManual.st3DSelect.hi_sigma[14] = 256;
782 bayertnr_attr.stManual.st3DSelect.hi_sigma[15] = 256;
783
784 bayertnr_attr.stManual.st3DSelect.thumbds_w = 8;
785 bayertnr_attr.stManual.st3DSelect.thumbds_h = 4;
786 bayertnr_attr.stManual.st3DSelect.lo_enable = 1;
787 bayertnr_attr.stManual.st3DSelect.hi_enable = 1;
788 bayertnr_attr.stManual.st3DSelect.lo_med_en = 1;
789 bayertnr_attr.stManual.st3DSelect.lo_gsbay_en = 1;
790 bayertnr_attr.stManual.st3DSelect.lo_gslum_en = 1;
791 bayertnr_attr.stManual.st3DSelect.hi_med_en = 1;
792 bayertnr_attr.stManual.st3DSelect.hi_gslum_en = 1;
793 bayertnr_attr.stManual.st3DSelect.global_pk_en = 0;
794 bayertnr_attr.stManual.st3DSelect.global_pksq = 1024;
795
796 bayertnr_attr.stManual.st3DSelect.lo_filter_strength = 1.0;
797 bayertnr_attr.stManual.st3DSelect.hi_filter_strength = 1.0;
798
799 bayertnr_attr.stManual.st3DSelect.soft_threshold_ratio = 0.0;
800 bayertnr_attr.stManual.st3DSelect.hi_wgt_comp = 0.16;
801 bayertnr_attr.stManual.st3DSelect.lo_clipwgt = 0.03215;
802 bayertnr_attr.stManual.st3DSelect.hidif_th = 32767;
803
804
805 bayertnr_attr.stManual.st3DSelect.trans_en = 0;
806 bayertnr_attr.stManual.st3DSelect.wgt_use_mode = 0;
807 bayertnr_attr.stManual.st3DSelect.wgt_mge_mode = 1;
808 bayertnr_attr.stManual.st3DSelect.hi_guass = 0;
809 bayertnr_attr.stManual.st3DSelect.kl_guass = 0;
810
811 bayertnr_attr.stManual.st3DSelect.hi_filter_abs_ctrl = 0;
812 bayertnr_attr.stManual.st3DSelect.hi_filter_filt_bay = 0;
813 bayertnr_attr.stManual.st3DSelect.hi_filter_filt_avg = 0;
814 bayertnr_attr.stManual.st3DSelect.hi_filter_filt_mode = 4;
815
816 bayertnr_attr.stManual.st3DSelect.lo_filter_rat0 = 1;
817 bayertnr_attr.stManual.st3DSelect.lo_filter_thed0 = 0;
818 bayertnr_attr.stManual.st3DSelect.hi_filter_rat0 = 0;
819 bayertnr_attr.stManual.st3DSelect.hi_filter_thed0 = 256;
820 bayertnr_attr.stManual.st3DSelect.hi_filter_rat1 = 0;
821 bayertnr_attr.stManual.st3DSelect.hi_filter_thed1 = 1024;
822
823 bayertnr_attr.stManual.st3DSelect.guass_guide_coeff0 = 16;
824 bayertnr_attr.stManual.st3DSelect.guass_guide_coeff1 = 8;
825 bayertnr_attr.stManual.st3DSelect.guass_guide_coeff2 = 16;
826 bayertnr_attr.stManual.st3DSelect.guass_guide_coeff3 = 8;
827
828
829 ret = rk_aiq_user_api2_abayertnrV23_SetAttrib(ctx, &bayertnr_attr);
830 printf("set bayertnr v2 attri manual ret:%d \n\n", ret);
831
832 rk_aiq_bayertnr_attrib_v23_t get_bayertnr_attr;
833 get_bayertnr_attr.sync.sync_mode = sync_mode;
834 ret = rk_aiq_user_api2_abayertnrV23_GetAttrib(ctx, &get_bayertnr_attr);
835 printf("get abayertnr v2 attri ret:%d done:%d \n\n", ret, get_bayertnr_attr.sync.done);
836 return ret;
837 }
838
sample_abayertnr_setManual_v23Lite(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)839 XCamReturn sample_abayertnr_setManual_v23Lite(const rk_aiq_sys_ctx_t* ctx,
840 rk_aiq_uapi_mode_sync_e sync_mode) {
841 XCamReturn ret = XCAM_RETURN_NO_ERROR;
842
843 rk_aiq_bayertnr_attrib_v23L_t bayertnr_attr;
844 bayertnr_attr.sync.sync_mode = sync_mode;
845 ret = rk_aiq_user_api2_abayertnrV23Lite_GetAttrib(ctx, &bayertnr_attr);
846 bayertnr_attr.sync.sync_mode = sync_mode;
847 bayertnr_attr.eMode = ABAYERTNRV23_OP_MODE_MANUAL;
848 bayertnr_attr.stManual.st3DSelect.enable = 1;
849
850 bayertnr_attr.stManual.st3DSelect.lumapoint[0] = 512;
851 bayertnr_attr.stManual.st3DSelect.lumapoint[1] = 1024;
852 bayertnr_attr.stManual.st3DSelect.lumapoint[2] = 1536;
853 bayertnr_attr.stManual.st3DSelect.lumapoint[3] = 2048;
854 bayertnr_attr.stManual.st3DSelect.lumapoint[4] = 3072;
855 bayertnr_attr.stManual.st3DSelect.lumapoint[5] = 4096;
856 bayertnr_attr.stManual.st3DSelect.lumapoint[6] = 5120;
857 bayertnr_attr.stManual.st3DSelect.lumapoint[7] = 6144;
858 bayertnr_attr.stManual.st3DSelect.lumapoint[8] = 7168;
859 bayertnr_attr.stManual.st3DSelect.lumapoint[9] = 8192;
860 bayertnr_attr.stManual.st3DSelect.lumapoint[10] = 9216;
861 bayertnr_attr.stManual.st3DSelect.lumapoint[11] = 10240;
862 bayertnr_attr.stManual.st3DSelect.lumapoint[12] = 11264;
863 bayertnr_attr.stManual.st3DSelect.lumapoint[13] = 12288;
864 bayertnr_attr.stManual.st3DSelect.lumapoint[14] = 13312;
865 bayertnr_attr.stManual.st3DSelect.lumapoint[15] = 14336;
866
867 bayertnr_attr.stManual.st3DSelect.sigma[0] = 90;
868 bayertnr_attr.stManual.st3DSelect.sigma[1] = 90;
869 bayertnr_attr.stManual.st3DSelect.sigma[2] = 90;
870 bayertnr_attr.stManual.st3DSelect.sigma[3] = 90;
871 bayertnr_attr.stManual.st3DSelect.sigma[4] = 90;
872 bayertnr_attr.stManual.st3DSelect.sigma[5] = 90;
873 bayertnr_attr.stManual.st3DSelect.sigma[6] = 90;
874 bayertnr_attr.stManual.st3DSelect.sigma[7] = 90;
875 bayertnr_attr.stManual.st3DSelect.sigma[8] = 90;
876 bayertnr_attr.stManual.st3DSelect.sigma[9] = 90;
877 bayertnr_attr.stManual.st3DSelect.sigma[10] = 90;
878 bayertnr_attr.stManual.st3DSelect.sigma[11] = 90;
879 bayertnr_attr.stManual.st3DSelect.sigma[12] = 90;
880 bayertnr_attr.stManual.st3DSelect.sigma[13] = 90;
881 bayertnr_attr.stManual.st3DSelect.sigma[14] = 90;
882 bayertnr_attr.stManual.st3DSelect.sigma[15] = 90;
883
884 bayertnr_attr.stManual.st3DSelect.lumapoint2[0] = 512;
885 bayertnr_attr.stManual.st3DSelect.lumapoint2[1] = 1024;
886 bayertnr_attr.stManual.st3DSelect.lumapoint2[2] = 1536;
887 bayertnr_attr.stManual.st3DSelect.lumapoint2[3] = 2048;
888 bayertnr_attr.stManual.st3DSelect.lumapoint2[4] = 3072;
889 bayertnr_attr.stManual.st3DSelect.lumapoint2[5] = 4096;
890 bayertnr_attr.stManual.st3DSelect.lumapoint2[6] = 5120;
891 bayertnr_attr.stManual.st3DSelect.lumapoint2[7] = 6144;
892 bayertnr_attr.stManual.st3DSelect.lumapoint2[8] = 7168;
893 bayertnr_attr.stManual.st3DSelect.lumapoint2[9] = 8192;
894 bayertnr_attr.stManual.st3DSelect.lumapoint2[10] = 9216;
895 bayertnr_attr.stManual.st3DSelect.lumapoint2[11] = 10240;
896 bayertnr_attr.stManual.st3DSelect.lumapoint2[12] = 11264;
897 bayertnr_attr.stManual.st3DSelect.lumapoint2[13] = 12288;
898 bayertnr_attr.stManual.st3DSelect.lumapoint2[14] = 13312;
899 bayertnr_attr.stManual.st3DSelect.lumapoint2[15] = 14336;
900
901 bayertnr_attr.stManual.st3DSelect.lo_sigma[0] = 32;
902 bayertnr_attr.stManual.st3DSelect.lo_sigma[1] = 32;
903 bayertnr_attr.stManual.st3DSelect.lo_sigma[2] = 32;
904 bayertnr_attr.stManual.st3DSelect.lo_sigma[3] = 32;
905 bayertnr_attr.stManual.st3DSelect.lo_sigma[4] = 32;
906 bayertnr_attr.stManual.st3DSelect.lo_sigma[5] = 32;
907 bayertnr_attr.stManual.st3DSelect.lo_sigma[6] = 32;
908 bayertnr_attr.stManual.st3DSelect.lo_sigma[7] = 32;
909 bayertnr_attr.stManual.st3DSelect.lo_sigma[8] = 32;
910 bayertnr_attr.stManual.st3DSelect.lo_sigma[9] = 32;
911 bayertnr_attr.stManual.st3DSelect.lo_sigma[10] = 32;
912 bayertnr_attr.stManual.st3DSelect.lo_sigma[11] = 32;
913 bayertnr_attr.stManual.st3DSelect.lo_sigma[12] = 32;
914 bayertnr_attr.stManual.st3DSelect.lo_sigma[13] = 32;
915 bayertnr_attr.stManual.st3DSelect.lo_sigma[14] = 32;
916 bayertnr_attr.stManual.st3DSelect.lo_sigma[15] = 32;
917
918 bayertnr_attr.stManual.st3DSelect.hi_sigma[0] = 256;
919 bayertnr_attr.stManual.st3DSelect.hi_sigma[1] = 256;
920 bayertnr_attr.stManual.st3DSelect.hi_sigma[2] = 256;
921 bayertnr_attr.stManual.st3DSelect.hi_sigma[3] = 256;
922 bayertnr_attr.stManual.st3DSelect.hi_sigma[4] = 256;
923 bayertnr_attr.stManual.st3DSelect.hi_sigma[5] = 256;
924 bayertnr_attr.stManual.st3DSelect.hi_sigma[6] = 256;
925 bayertnr_attr.stManual.st3DSelect.hi_sigma[7] = 256;
926 bayertnr_attr.stManual.st3DSelect.hi_sigma[8] = 256;
927 bayertnr_attr.stManual.st3DSelect.hi_sigma[9] = 256;
928 bayertnr_attr.stManual.st3DSelect.hi_sigma[10] = 256;
929 bayertnr_attr.stManual.st3DSelect.hi_sigma[11] = 256;
930 bayertnr_attr.stManual.st3DSelect.hi_sigma[12] = 256;
931 bayertnr_attr.stManual.st3DSelect.hi_sigma[13] = 256;
932 bayertnr_attr.stManual.st3DSelect.hi_sigma[14] = 256;
933 bayertnr_attr.stManual.st3DSelect.hi_sigma[15] = 256;
934
935 bayertnr_attr.stManual.st3DSelect.thumbds_w = 8;
936 bayertnr_attr.stManual.st3DSelect.thumbds_h = 4;
937 bayertnr_attr.stManual.st3DSelect.lo_enable = 1;
938 bayertnr_attr.stManual.st3DSelect.hi_enable = 1;
939 bayertnr_attr.stManual.st3DSelect.lo_gsbay_en = 1;
940 bayertnr_attr.stManual.st3DSelect.lo_gslum_en = 1;
941 bayertnr_attr.stManual.st3DSelect.hi_gslum_en = 1;
942 bayertnr_attr.stManual.st3DSelect.global_pk_en = 0;
943 bayertnr_attr.stManual.st3DSelect.global_pksq = 1024;
944
945 bayertnr_attr.stManual.st3DSelect.lo_filter_strength = 1.0;
946 bayertnr_attr.stManual.st3DSelect.hi_filter_strength = 1.0;
947
948 bayertnr_attr.stManual.st3DSelect.soft_threshold_ratio = 0.0;
949 bayertnr_attr.stManual.st3DSelect.hi_wgt_comp = 0.16;
950 bayertnr_attr.stManual.st3DSelect.lo_clipwgt = 0.03215;
951 bayertnr_attr.stManual.st3DSelect.hidif_th = 32767;
952
953 bayertnr_attr.stManual.st3DSelect.trans_en = 0;
954 bayertnr_attr.stManual.st3DSelect.wgt_use_mode = 1;
955 bayertnr_attr.stManual.st3DSelect.wgt_mge_mode = 1;
956
957 bayertnr_attr.stManual.st3DSelect.hi_filter_abs_ctrl = 0;
958
959 bayertnr_attr.stManual.st3DSelect.lo_filter_rat0 = 1;
960 bayertnr_attr.stManual.st3DSelect.lo_filter_thed0 = 0;
961 bayertnr_attr.stManual.st3DSelect.hi_filter_rat0 = 0;
962 bayertnr_attr.stManual.st3DSelect.hi_filter_thed0 = 256;
963 bayertnr_attr.stManual.st3DSelect.hi_filter_rat1 = 0;
964 bayertnr_attr.stManual.st3DSelect.hi_filter_thed1 = 1024;
965
966 bayertnr_attr.stManual.st3DSelect.guass_guide_coeff0 = 16;
967 bayertnr_attr.stManual.st3DSelect.guass_guide_coeff1 = 8;
968 bayertnr_attr.stManual.st3DSelect.guass_guide_coeff2 = 4;
969 // bayertnr_attr.stManual.st3DSelect.guass_guide_coeff3 = 8;
970
971 bayertnr_attr.stManual.st3DSelect.wgtmm_opt_en = 0;
972 bayertnr_attr.stManual.st3DSelect.wgtmm_sel_en = 0;
973 bayertnr_attr.stManual.st3DSelect.wgtmin = 0;
974
975 ret = rk_aiq_user_api2_abayertnrV23Lite_SetAttrib(ctx, &bayertnr_attr);
976 printf("set bayertnr v2 attri manual ret:%d \n\n", ret);
977
978 rk_aiq_bayertnr_attrib_v23L_t get_bayertnr_attr;
979 get_bayertnr_attr.sync.sync_mode = sync_mode;
980 ret = rk_aiq_user_api2_abayertnrV23Lite_GetAttrib(ctx, &get_bayertnr_attr);
981 printf("get abayertnr v2 attri ret:%d done:%d \n\n", ret, get_bayertnr_attr.sync.done);
982 return ret;
983 }
984
sample_abayertnr_setReg_v2(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)985 XCamReturn sample_abayertnr_setReg_v2(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode)
986 {
987 XCamReturn ret = XCAM_RETURN_NO_ERROR;
988
989 rk_aiq_bayertnr_attrib_v2_t bayertnrV2_attr;
990 bayertnrV2_attr.sync.sync_mode = sync_mode;
991 ret = rk_aiq_user_api2_abayertnrV2_GetAttrib(ctx, &bayertnrV2_attr);
992 bayertnrV2_attr.sync.sync_mode = sync_mode;
993 bayertnrV2_attr.eMode = ABAYERTNRV2_OP_MODE_REG_MANUAL;
994
995 // BAY3D_BAY3D_CTRL 0x2c00
996 bayertnrV2_attr.stManual.st3DFix.bay3d_exp_sel = 0;
997 bayertnrV2_attr.stManual.st3DFix.bay3d_soft_st = 0;
998 bayertnrV2_attr.stManual.st3DFix.bay3d_soft_mode = 0;
999 bayertnrV2_attr.stManual.st3DFix.bay3d_bwsaving_en = 0;
1000
1001 bayertnrV2_attr.stManual.st3DFix.bay3d_loswitch_protect = 0;
1002 bayertnrV2_attr.stManual.st3DFix.bay3d_glbpk_en = 0;
1003 bayertnrV2_attr.stManual.st3DFix.bay3d_logaus3_bypass_en = 0;
1004 bayertnrV2_attr.stManual.st3DFix.bay3d_logaus5_bypass_en = 0;
1005
1006 bayertnrV2_attr.stManual.st3DFix.bay3d_lomed_bypass_en = 0;
1007 bayertnrV2_attr.stManual.st3DFix.bay3d_hichnsplit_en = 0;
1008 bayertnrV2_attr.stManual.st3DFix.bay3d_hiabs_pssel = 1;
1009 bayertnrV2_attr.stManual.st3DFix.bay3d_higaus_bypass_en = 0;
1010
1011 bayertnrV2_attr.stManual.st3DFix.bay3d_himed_bypass_en = 0;
1012 bayertnrV2_attr.stManual.st3DFix.bay3d_lobypass_en = 0;
1013 bayertnrV2_attr.stManual.st3DFix.bay3d_hibypass_en = 0;
1014 bayertnrV2_attr.stManual.st3DFix.bay3d_bypass_en = 0;
1015 bayertnrV2_attr.stManual.st3DFix.bay3d_en_i = 1;
1016
1017 // BAY3D_BAY3D_KALRATIO 0x2c04
1018 bayertnrV2_attr.stManual.st3DFix.bay3d_softwgt = 0x100;
1019 bayertnrV2_attr.stManual.st3DFix.bay3d_hidif_th = 0xffff;
1020
1021 // BAY3D_BAY3D_GLBPK2 0x2c08
1022 bayertnrV2_attr.stManual.st3DFix.bay3d_glbpk2 = 0x0000800;
1023
1024 // BAY3D_BAY3D_WGTLMT 0x2c10
1025 bayertnrV2_attr.stManual.st3DFix.bay3d_wgtlmt = 0x380;
1026 bayertnrV2_attr.stManual.st3DFix.bay3d_wgtratio = 0x000;
1027
1028 // BAY3D_BAY3D_SIG_X0 0x2c14 - 0x2c30
1029 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_x[0] = 0x200;
1030 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_x[1] = 0x400;
1031 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_x[2] = 0x600;
1032 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_x[3] = 0x800;
1033 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_x[4] = 0xc00;
1034 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_x[5] = 0x1000;
1035 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_x[6] = 0x1400;
1036 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_x[7] = 0x1800;
1037 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_x[8] = 0x1c00;
1038 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_x[9] = 0x2000;
1039 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_x[10] = 0x2400;
1040 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_x[11] = 0x2800;
1041 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_x[12] = 0x2c00;
1042 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_x[13] = 0x3000;
1043 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_x[14] = 0x3400;
1044 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_x[15] = 0x3800;
1045
1046 // BAY3D_BAY3D_SIG0_Y0 0x2c34 - 0x2c50
1047 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_y[0] = 0x0300;
1048 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_y[1] = 0x0300;
1049 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_y[2] = 0x0300;
1050 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_y[3] = 0x0300;
1051 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_y[4] = 0x0300;
1052 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_y[5] = 0x0300;
1053 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_y[6] = 0x0300;
1054 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_y[7] = 0x0300;
1055 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_y[8] = 0x0300;
1056 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_y[9] = 0x0300;
1057 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_y[10] = 0x0300;
1058 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_y[11] = 0x0300;
1059 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_y[12] = 0x0300;
1060 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_y[13] = 0x0300;
1061 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_y[14] = 0x0300;
1062 bayertnrV2_attr.stManual.st3DFix.bay3d_sig0_y[15] = 0x0300;
1063
1064 // BAY3D_BAY3D_SIG_X0 0x2c54 - 0x2c70
1065 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_x[0] = 0x200;
1066 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_x[1] = 0x400;
1067 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_x[2] = 0x600;
1068 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_x[3] = 0x800;
1069 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_x[4] = 0xc00;
1070 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_x[5] = 0x1000;
1071 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_x[6] = 0x1400;
1072 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_x[7] = 0x1800;
1073 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_x[8] = 0x1c00;
1074 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_x[9] = 0x2000;
1075 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_x[10] = 0x2400;
1076 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_x[11] = 0x2800;
1077 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_x[12] = 0x2c00;
1078 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_x[13] = 0x3000;
1079 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_x[14] = 0x3400;
1080 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_x[15] = 0x3800;
1081
1082 // ISP_BAYNR_3A00_SIGMAY0-15
1083 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_y[0] = 0x0400;
1084 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_y[1] = 0x0400;
1085 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_y[2] = 0x0400;
1086 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_y[3] = 0x0400;
1087 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_y[4] = 0x0400;
1088 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_y[5] = 0x0400;
1089 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_y[6] = 0x0400;
1090 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_y[7] = 0x0400;
1091 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_y[8] = 0x0400;
1092 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_y[9] = 0x0400;
1093 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_y[10] = 0x0400;
1094 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_y[11] = 0x0400;
1095 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_y[12] = 0x0400;
1096 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_y[13] = 0x0400;
1097 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_y[14] = 0x0400;
1098 bayertnrV2_attr.stManual.st3DFix.bay3d_sig1_y[15] = 0x0400;
1099
1100 // ISP_BAYNR_3A00_SIGMAY0-15
1101 bayertnrV2_attr.stManual.st3DFix.bay3d_sig2_y[0] = 0x080;
1102 bayertnrV2_attr.stManual.st3DFix.bay3d_sig2_y[1] = 0x080;
1103 bayertnrV2_attr.stManual.st3DFix.bay3d_sig2_y[2] = 0x080;
1104 bayertnrV2_attr.stManual.st3DFix.bay3d_sig2_y[3] = 0x080;
1105 bayertnrV2_attr.stManual.st3DFix.bay3d_sig2_y[4] = 0x080;
1106 bayertnrV2_attr.stManual.st3DFix.bay3d_sig2_y[5] = 0x080;
1107 bayertnrV2_attr.stManual.st3DFix.bay3d_sig2_y[6] = 0x080;
1108 bayertnrV2_attr.stManual.st3DFix.bay3d_sig2_y[7] = 0x080;
1109 bayertnrV2_attr.stManual.st3DFix.bay3d_sig2_y[8] = 0x080;
1110 bayertnrV2_attr.stManual.st3DFix.bay3d_sig2_y[9] = 0x080;
1111 bayertnrV2_attr.stManual.st3DFix.bay3d_sig2_y[10] = 0x080;
1112 bayertnrV2_attr.stManual.st3DFix.bay3d_sig2_y[11] = 0x080;
1113 bayertnrV2_attr.stManual.st3DFix.bay3d_sig2_y[12] = 0x080;
1114 bayertnrV2_attr.stManual.st3DFix.bay3d_sig2_y[13] = 0x080;
1115 bayertnrV2_attr.stManual.st3DFix.bay3d_sig2_y[14] = 0x080;
1116 bayertnrV2_attr.stManual.st3DFix.bay3d_sig2_y[15] = 0x080;
1117
1118
1119 //bayertnrV2_attr.stManual.st3DFix.ro_sum_lodif = 0x0;
1120 //bayertnrV2_attr.stManual.st3DFix.ro_sum_hidif0 = 0x0;
1121
1122 //bayertnrV2_attr.stManual.st3DFix.sw_bay3dmi_st_linemode = 0x01;
1123 //bayertnrV2_attr.stManual.st3DFix.sw_bay3d_mi2cur_linecnt = 0x4e;
1124
1125
1126 ret = rk_aiq_user_api2_abayertnrV2_SetAttrib(ctx, &bayertnrV2_attr);
1127 printf("set bayertnr v2 attri manual ret:%d \n\n", ret);
1128
1129 rk_aiq_bayertnr_attrib_v2_t get_bayertnrV2_attr;
1130 get_bayertnrV2_attr.sync.sync_mode = sync_mode;
1131 ret = rk_aiq_user_api2_abayertnrV2_GetAttrib(ctx, &get_bayertnrV2_attr);
1132 printf("get abayertnr v2 attri ret:%d done:%d \n\n", ret, get_bayertnrV2_attr.sync.done);
1133
1134 return ret;
1135 }
1136
1137
sample_abayertnr_setReg_v23(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)1138 XCamReturn sample_abayertnr_setReg_v23(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode)
1139 {
1140 XCamReturn ret = XCAM_RETURN_NO_ERROR;
1141
1142 rk_aiq_bayertnr_attrib_v23_t bayertnr_attr;
1143 bayertnr_attr.sync.sync_mode = sync_mode;
1144 ret = rk_aiq_user_api2_abayertnrV23_GetAttrib(ctx, &bayertnr_attr);
1145 bayertnr_attr.sync.sync_mode = sync_mode;
1146 bayertnr_attr.eMode = ABAYERTNRV23_OP_MODE_REG_MANUAL;
1147
1148
1149 // BAY3D_BAY3D_CTRL 0x2c00
1150 bayertnr_attr.stManual.st3DFix.soft_st = 0;
1151 bayertnr_attr.stManual.st3DFix.soft_mode = 0;
1152 bayertnr_attr.stManual.st3DFix.bwsaving_en = 0;
1153
1154 bayertnr_attr.stManual.st3DFix.loswitch_protect = 0;
1155 bayertnr_attr.stManual.st3DFix.glbpk_en = 0;
1156 bayertnr_attr.stManual.st3DFix.logaus3_bypass_en = 0;
1157 bayertnr_attr.stManual.st3DFix.logaus5_bypass_en = 0;
1158
1159 bayertnr_attr.stManual.st3DFix.lomed_bypass_en = 0;
1160 bayertnr_attr.stManual.st3DFix.hichnsplit_en = 0;
1161 bayertnr_attr.stManual.st3DFix.hiabs_possel = 1;
1162 bayertnr_attr.stManual.st3DFix.higaus_bypass_en = 0;
1163
1164 bayertnr_attr.stManual.st3DFix.himed_bypass_en = 0;
1165 bayertnr_attr.stManual.st3DFix.lobypass_en = 0;
1166 bayertnr_attr.stManual.st3DFix.hibypass_en = 0;
1167 bayertnr_attr.stManual.st3DFix.bypass_en = 0;
1168 bayertnr_attr.stManual.st3DFix.bay3d_en = 1;
1169
1170 // BAY3D_BAY3D_KALRATIO 0x2c04
1171 bayertnr_attr.stManual.st3DFix.softwgt = 0x100;
1172 bayertnr_attr.stManual.st3DFix.hidif_th = 0xffff;
1173
1174 // BAY3D_BAY3D_GLBPK2 0x2c08
1175 bayertnr_attr.stManual.st3DFix.glbpk2 = 0x0000800;
1176
1177 // BAY3D_BAY3D_CTRL1 0x2c0c
1178 bayertnr_attr.stManual.st3DFix.hiwgt_opt_en = 0;
1179 bayertnr_attr.stManual.st3DFix.hichncor_en = 0;
1180 bayertnr_attr.stManual.st3DFix.bwopt_gain_dis = 0;
1181 bayertnr_attr.stManual.st3DFix.lo4x8_en = 1;
1182 bayertnr_attr.stManual.st3DFix.lo4x4_en = 0;
1183
1184 bayertnr_attr.stManual.st3DFix.hisig_ind_sel = 0;
1185 bayertnr_attr.stManual.st3DFix.pksig_ind_sel = 0;
1186 bayertnr_attr.stManual.st3DFix.iirwr_rnd_en = 1;
1187 bayertnr_attr.stManual.st3DFix.curds_high_en = 0;
1188 bayertnr_attr.stManual.st3DFix.higaus3_mode = 0;
1189 bayertnr_attr.stManual.st3DFix.higaus5x5_en = 0;
1190 bayertnr_attr.stManual.st3DFix.wgtmix_opt_en = 0;
1191
1192 // BAY3D_BAY3D_WGTLMT 0x2c10
1193 bayertnr_attr.stManual.st3DFix.wgtlmt = 0x380;
1194 bayertnr_attr.stManual.st3DFix.wgtratio = 0x000;
1195
1196 // BAY3D_BAY3D_SIG_X0 0x2c14 - 0x2c30
1197 bayertnr_attr.stManual.st3DFix.sig0_x[0] = 0x200;
1198 bayertnr_attr.stManual.st3DFix.sig0_x[1] = 0x400;
1199 bayertnr_attr.stManual.st3DFix.sig0_x[2] = 0x600;
1200 bayertnr_attr.stManual.st3DFix.sig0_x[3] = 0x800;
1201 bayertnr_attr.stManual.st3DFix.sig0_x[4] = 0xc00;
1202 bayertnr_attr.stManual.st3DFix.sig0_x[5] = 0x1000;
1203 bayertnr_attr.stManual.st3DFix.sig0_x[6] = 0x1400;
1204 bayertnr_attr.stManual.st3DFix.sig0_x[7] = 0x1800;
1205 bayertnr_attr.stManual.st3DFix.sig0_x[8] = 0x1c00;
1206 bayertnr_attr.stManual.st3DFix.sig0_x[9] = 0x2000;
1207 bayertnr_attr.stManual.st3DFix.sig0_x[10] = 0x2400;
1208 bayertnr_attr.stManual.st3DFix.sig0_x[11] = 0x2800;
1209 bayertnr_attr.stManual.st3DFix.sig0_x[12] = 0x2c00;
1210 bayertnr_attr.stManual.st3DFix.sig0_x[13] = 0x3000;
1211 bayertnr_attr.stManual.st3DFix.sig0_x[14] = 0x3400;
1212 bayertnr_attr.stManual.st3DFix.sig0_x[15] = 0x3800;
1213
1214 // BAY3D_BAY3D_SIG0_Y0 0x2c34 - 0x2c50
1215 bayertnr_attr.stManual.st3DFix.sig0_y[0] = 0x0300;
1216 bayertnr_attr.stManual.st3DFix.sig0_y[1] = 0x0300;
1217 bayertnr_attr.stManual.st3DFix.sig0_y[2] = 0x0300;
1218 bayertnr_attr.stManual.st3DFix.sig0_y[3] = 0x0300;
1219 bayertnr_attr.stManual.st3DFix.sig0_y[4] = 0x0300;
1220 bayertnr_attr.stManual.st3DFix.sig0_y[5] = 0x0300;
1221 bayertnr_attr.stManual.st3DFix.sig0_y[6] = 0x0300;
1222 bayertnr_attr.stManual.st3DFix.sig0_y[7] = 0x0300;
1223 bayertnr_attr.stManual.st3DFix.sig0_y[8] = 0x0300;
1224 bayertnr_attr.stManual.st3DFix.sig0_y[9] = 0x0300;
1225 bayertnr_attr.stManual.st3DFix.sig0_y[10] = 0x0300;
1226 bayertnr_attr.stManual.st3DFix.sig0_y[11] = 0x0300;
1227 bayertnr_attr.stManual.st3DFix.sig0_y[12] = 0x0300;
1228 bayertnr_attr.stManual.st3DFix.sig0_y[13] = 0x0300;
1229 bayertnr_attr.stManual.st3DFix.sig0_y[14] = 0x0300;
1230 bayertnr_attr.stManual.st3DFix.sig0_y[15] = 0x0300;
1231
1232 // BAY3D_BAY3D_SIG_X0 0x2c54 - 0x2c70
1233 bayertnr_attr.stManual.st3DFix.sig1_x[0] = 0x200;
1234 bayertnr_attr.stManual.st3DFix.sig1_x[1] = 0x400;
1235 bayertnr_attr.stManual.st3DFix.sig1_x[2] = 0x600;
1236 bayertnr_attr.stManual.st3DFix.sig1_x[3] = 0x800;
1237 bayertnr_attr.stManual.st3DFix.sig1_x[4] = 0xc00;
1238 bayertnr_attr.stManual.st3DFix.sig1_x[5] = 0x1000;
1239 bayertnr_attr.stManual.st3DFix.sig1_x[6] = 0x1400;
1240 bayertnr_attr.stManual.st3DFix.sig1_x[7] = 0x1800;
1241 bayertnr_attr.stManual.st3DFix.sig1_x[8] = 0x1c00;
1242 bayertnr_attr.stManual.st3DFix.sig1_x[9] = 0x2000;
1243 bayertnr_attr.stManual.st3DFix.sig1_x[10] = 0x2400;
1244 bayertnr_attr.stManual.st3DFix.sig1_x[11] = 0x2800;
1245 bayertnr_attr.stManual.st3DFix.sig1_x[12] = 0x2c00;
1246 bayertnr_attr.stManual.st3DFix.sig1_x[13] = 0x3000;
1247 bayertnr_attr.stManual.st3DFix.sig1_x[14] = 0x3400;
1248 bayertnr_attr.stManual.st3DFix.sig1_x[15] = 0x3800;
1249
1250 // ISP_BAYNR_3A00_SIGMAY0-15
1251 bayertnr_attr.stManual.st3DFix.sig1_y[0] = 0x0400;
1252 bayertnr_attr.stManual.st3DFix.sig1_y[1] = 0x0400;
1253 bayertnr_attr.stManual.st3DFix.sig1_y[2] = 0x0400;
1254 bayertnr_attr.stManual.st3DFix.sig1_y[3] = 0x0400;
1255 bayertnr_attr.stManual.st3DFix.sig1_y[4] = 0x0400;
1256 bayertnr_attr.stManual.st3DFix.sig1_y[5] = 0x0400;
1257 bayertnr_attr.stManual.st3DFix.sig1_y[6] = 0x0400;
1258 bayertnr_attr.stManual.st3DFix.sig1_y[7] = 0x0400;
1259 bayertnr_attr.stManual.st3DFix.sig1_y[8] = 0x0400;
1260 bayertnr_attr.stManual.st3DFix.sig1_y[9] = 0x0400;
1261 bayertnr_attr.stManual.st3DFix.sig1_y[10] = 0x0400;
1262 bayertnr_attr.stManual.st3DFix.sig1_y[11] = 0x0400;
1263 bayertnr_attr.stManual.st3DFix.sig1_y[12] = 0x0400;
1264 bayertnr_attr.stManual.st3DFix.sig1_y[13] = 0x0400;
1265 bayertnr_attr.stManual.st3DFix.sig1_y[14] = 0x0400;
1266 bayertnr_attr.stManual.st3DFix.sig1_y[15] = 0x0400;
1267
1268 // ISP_BAYNR_3A00_SIGMAY0-15
1269 bayertnr_attr.stManual.st3DFix.sig2_y[0] = 0x080;
1270 bayertnr_attr.stManual.st3DFix.sig2_y[1] = 0x080;
1271 bayertnr_attr.stManual.st3DFix.sig2_y[2] = 0x080;
1272 bayertnr_attr.stManual.st3DFix.sig2_y[3] = 0x080;
1273 bayertnr_attr.stManual.st3DFix.sig2_y[4] = 0x080;
1274 bayertnr_attr.stManual.st3DFix.sig2_y[5] = 0x080;
1275 bayertnr_attr.stManual.st3DFix.sig2_y[6] = 0x080;
1276 bayertnr_attr.stManual.st3DFix.sig2_y[7] = 0x080;
1277 bayertnr_attr.stManual.st3DFix.sig2_y[8] = 0x080;
1278 bayertnr_attr.stManual.st3DFix.sig2_y[9] = 0x080;
1279 bayertnr_attr.stManual.st3DFix.sig2_y[10] = 0x080;
1280 bayertnr_attr.stManual.st3DFix.sig2_y[11] = 0x080;
1281 bayertnr_attr.stManual.st3DFix.sig2_y[12] = 0x080;
1282 bayertnr_attr.stManual.st3DFix.sig2_y[13] = 0x080;
1283 bayertnr_attr.stManual.st3DFix.sig2_y[14] = 0x080;
1284 bayertnr_attr.stManual.st3DFix.sig2_y[15] = 0x080;
1285
1286
1287 /* BAY3D_HISIGRAT */
1288 bayertnr_attr.stManual.st3DFix.hisigrat0 = 0x00;
1289 bayertnr_attr.stManual.st3DFix.hisigrat1 = 0x00;
1290
1291 /* BAY3D_HISIGOFF */
1292 bayertnr_attr.stManual.st3DFix.hisigoff0 = 0x100;
1293 bayertnr_attr.stManual.st3DFix.hisigoff1 = 0x400;
1294
1295 /* BAY3D_LOSIG */
1296 bayertnr_attr.stManual.st3DFix.losigoff = 0x00;
1297 bayertnr_attr.stManual.st3DFix.losigrat = 0x100;
1298
1299 /* BAY3D_SIGPK */
1300 bayertnr_attr.stManual.st3DFix.rgain_off = 0x00;
1301 bayertnr_attr.stManual.st3DFix.bgain_off = 0x00;
1302
1303 /* BAY3D_SIGGAUS */
1304 bayertnr_attr.stManual.st3DFix.siggaus0 = 0x10;
1305 bayertnr_attr.stManual.st3DFix.siggaus1 = 0x8;
1306 bayertnr_attr.stManual.st3DFix.siggaus2 = 0x10;
1307 bayertnr_attr.stManual.st3DFix.siggaus3 = 0x8;
1308
1309
1310 ret = rk_aiq_user_api2_abayertnrV23_SetAttrib(ctx, &bayertnr_attr);
1311 printf("set bayertnr v2 attri manual ret:%d \n\n", ret);
1312
1313 rk_aiq_bayertnr_attrib_v23_t get_bayertnr_attr;
1314 get_bayertnr_attr.sync.sync_mode = sync_mode;
1315 ret = rk_aiq_user_api2_abayertnrV23_GetAttrib(ctx, &get_bayertnr_attr);
1316 printf("get abayertnr v2 attri ret:%d done:%d \n\n", ret, get_bayertnr_attr.sync.done);
1317
1318 return ret;
1319 }
1320
sample_abayertnr_setReg_v23Lite(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode)1321 XCamReturn sample_abayertnr_setReg_v23Lite(const rk_aiq_sys_ctx_t* ctx,
1322 rk_aiq_uapi_mode_sync_e sync_mode) {
1323 XCamReturn ret = XCAM_RETURN_NO_ERROR;
1324
1325 rk_aiq_bayertnr_attrib_v23L_t bayertnr_attr;
1326 bayertnr_attr.sync.sync_mode = sync_mode;
1327 ret = rk_aiq_user_api2_abayertnrV23Lite_GetAttrib(ctx, &bayertnr_attr);
1328 bayertnr_attr.sync.sync_mode = sync_mode;
1329 bayertnr_attr.eMode = ABAYERTNRV23_OP_MODE_REG_MANUAL;
1330
1331 // BAY3D_BAY3D_CTRL 0x2c00
1332 bayertnr_attr.stManual.st3DFix.soft_st = 0;
1333 bayertnr_attr.stManual.st3DFix.soft_mode = 0;
1334 bayertnr_attr.stManual.st3DFix.bwsaving_en = 0;
1335
1336 bayertnr_attr.stManual.st3DFix.loswitch_protect = 0;
1337 bayertnr_attr.stManual.st3DFix.glbpk_en = 0;
1338 bayertnr_attr.stManual.st3DFix.logaus3_bypass_en = 0;
1339 bayertnr_attr.stManual.st3DFix.logaus5_bypass_en = 0;
1340
1341 bayertnr_attr.stManual.st3DFix.lomed_bypass_en = 0;
1342 bayertnr_attr.stManual.st3DFix.hichnsplit_en = 0;
1343 bayertnr_attr.stManual.st3DFix.hiabs_possel = 1;
1344 bayertnr_attr.stManual.st3DFix.higaus_bypass_en = 0;
1345
1346 bayertnr_attr.stManual.st3DFix.himed_bypass_en = 0;
1347 bayertnr_attr.stManual.st3DFix.lobypass_en = 0;
1348 bayertnr_attr.stManual.st3DFix.hibypass_en = 0;
1349 bayertnr_attr.stManual.st3DFix.bypass_en = 0;
1350 bayertnr_attr.stManual.st3DFix.bay3d_en = 1;
1351
1352 // BAY3D_BAY3D_KALRATIO 0x2c04
1353 bayertnr_attr.stManual.st3DFix.softwgt = 0x100;
1354 bayertnr_attr.stManual.st3DFix.hidif_th = 0xffff;
1355
1356 // BAY3D_BAY3D_GLBPK2 0x2c08
1357 bayertnr_attr.stManual.st3DFix.glbpk2 = 0x0000800;
1358
1359 // BAY3D_BAY3D_CTRL1 0x2c0c
1360 bayertnr_attr.stManual.st3DFix.hiwgt_opt_en = 0;
1361 bayertnr_attr.stManual.st3DFix.hichncor_en = 0;
1362 bayertnr_attr.stManual.st3DFix.bwopt_gain_dis = 0;
1363 bayertnr_attr.stManual.st3DFix.lo4x8_en = 1;
1364 bayertnr_attr.stManual.st3DFix.lo4x4_en = 0;
1365
1366 bayertnr_attr.stManual.st3DFix.hisig_ind_sel = 0;
1367 bayertnr_attr.stManual.st3DFix.pksig_ind_sel = 0;
1368 bayertnr_attr.stManual.st3DFix.iirwr_rnd_en = 1;
1369 bayertnr_attr.stManual.st3DFix.curds_high_en = 0;
1370 bayertnr_attr.stManual.st3DFix.higaus3_mode = 0;
1371 bayertnr_attr.stManual.st3DFix.higaus5x5_en = 0;
1372 bayertnr_attr.stManual.st3DFix.wgtmix_opt_en = 0;
1373
1374 // BAY3D_BAY3D_WGTLMT 0x2c10
1375 bayertnr_attr.stManual.st3DFix.wgtlmt = 0x380;
1376 bayertnr_attr.stManual.st3DFix.wgtratio = 0x000;
1377
1378 // BAY3D_BAY3D_SIG_X0 0x2c14 - 0x2c30
1379 bayertnr_attr.stManual.st3DFix.sig0_x[0] = 0x200;
1380 bayertnr_attr.stManual.st3DFix.sig0_x[1] = 0x400;
1381 bayertnr_attr.stManual.st3DFix.sig0_x[2] = 0x600;
1382 bayertnr_attr.stManual.st3DFix.sig0_x[3] = 0x800;
1383 bayertnr_attr.stManual.st3DFix.sig0_x[4] = 0xc00;
1384 bayertnr_attr.stManual.st3DFix.sig0_x[5] = 0x1000;
1385 bayertnr_attr.stManual.st3DFix.sig0_x[6] = 0x1400;
1386 bayertnr_attr.stManual.st3DFix.sig0_x[7] = 0x1800;
1387 bayertnr_attr.stManual.st3DFix.sig0_x[8] = 0x1c00;
1388 bayertnr_attr.stManual.st3DFix.sig0_x[9] = 0x2000;
1389 bayertnr_attr.stManual.st3DFix.sig0_x[10] = 0x2400;
1390 bayertnr_attr.stManual.st3DFix.sig0_x[11] = 0x2800;
1391 bayertnr_attr.stManual.st3DFix.sig0_x[12] = 0x2c00;
1392 bayertnr_attr.stManual.st3DFix.sig0_x[13] = 0x3000;
1393 bayertnr_attr.stManual.st3DFix.sig0_x[14] = 0x3400;
1394 bayertnr_attr.stManual.st3DFix.sig0_x[15] = 0x3800;
1395
1396 // BAY3D_BAY3D_SIG0_Y0 0x2c34 - 0x2c50
1397 bayertnr_attr.stManual.st3DFix.sig0_y[0] = 0x0300;
1398 bayertnr_attr.stManual.st3DFix.sig0_y[1] = 0x0300;
1399 bayertnr_attr.stManual.st3DFix.sig0_y[2] = 0x0300;
1400 bayertnr_attr.stManual.st3DFix.sig0_y[3] = 0x0300;
1401 bayertnr_attr.stManual.st3DFix.sig0_y[4] = 0x0300;
1402 bayertnr_attr.stManual.st3DFix.sig0_y[5] = 0x0300;
1403 bayertnr_attr.stManual.st3DFix.sig0_y[6] = 0x0300;
1404 bayertnr_attr.stManual.st3DFix.sig0_y[7] = 0x0300;
1405 bayertnr_attr.stManual.st3DFix.sig0_y[8] = 0x0300;
1406 bayertnr_attr.stManual.st3DFix.sig0_y[9] = 0x0300;
1407 bayertnr_attr.stManual.st3DFix.sig0_y[10] = 0x0300;
1408 bayertnr_attr.stManual.st3DFix.sig0_y[11] = 0x0300;
1409 bayertnr_attr.stManual.st3DFix.sig0_y[12] = 0x0300;
1410 bayertnr_attr.stManual.st3DFix.sig0_y[13] = 0x0300;
1411 bayertnr_attr.stManual.st3DFix.sig0_y[14] = 0x0300;
1412 bayertnr_attr.stManual.st3DFix.sig0_y[15] = 0x0300;
1413
1414 // BAY3D_BAY3D_SIG_X0 0x2c54 - 0x2c70
1415 bayertnr_attr.stManual.st3DFix.sig1_x[0] = 0x200;
1416 bayertnr_attr.stManual.st3DFix.sig1_x[1] = 0x400;
1417 bayertnr_attr.stManual.st3DFix.sig1_x[2] = 0x600;
1418 bayertnr_attr.stManual.st3DFix.sig1_x[3] = 0x800;
1419 bayertnr_attr.stManual.st3DFix.sig1_x[4] = 0xc00;
1420 bayertnr_attr.stManual.st3DFix.sig1_x[5] = 0x1000;
1421 bayertnr_attr.stManual.st3DFix.sig1_x[6] = 0x1400;
1422 bayertnr_attr.stManual.st3DFix.sig1_x[7] = 0x1800;
1423 bayertnr_attr.stManual.st3DFix.sig1_x[8] = 0x1c00;
1424 bayertnr_attr.stManual.st3DFix.sig1_x[9] = 0x2000;
1425 bayertnr_attr.stManual.st3DFix.sig1_x[10] = 0x2400;
1426 bayertnr_attr.stManual.st3DFix.sig1_x[11] = 0x2800;
1427 bayertnr_attr.stManual.st3DFix.sig1_x[12] = 0x2c00;
1428 bayertnr_attr.stManual.st3DFix.sig1_x[13] = 0x3000;
1429 bayertnr_attr.stManual.st3DFix.sig1_x[14] = 0x3400;
1430 bayertnr_attr.stManual.st3DFix.sig1_x[15] = 0x3800;
1431
1432 // ISP_BAYNR_3A00_SIGMAY0-15
1433 bayertnr_attr.stManual.st3DFix.sig1_y[0] = 0x0400;
1434 bayertnr_attr.stManual.st3DFix.sig1_y[1] = 0x0400;
1435 bayertnr_attr.stManual.st3DFix.sig1_y[2] = 0x0400;
1436 bayertnr_attr.stManual.st3DFix.sig1_y[3] = 0x0400;
1437 bayertnr_attr.stManual.st3DFix.sig1_y[4] = 0x0400;
1438 bayertnr_attr.stManual.st3DFix.sig1_y[5] = 0x0400;
1439 bayertnr_attr.stManual.st3DFix.sig1_y[6] = 0x0400;
1440 bayertnr_attr.stManual.st3DFix.sig1_y[7] = 0x0400;
1441 bayertnr_attr.stManual.st3DFix.sig1_y[8] = 0x0400;
1442 bayertnr_attr.stManual.st3DFix.sig1_y[9] = 0x0400;
1443 bayertnr_attr.stManual.st3DFix.sig1_y[10] = 0x0400;
1444 bayertnr_attr.stManual.st3DFix.sig1_y[11] = 0x0400;
1445 bayertnr_attr.stManual.st3DFix.sig1_y[12] = 0x0400;
1446 bayertnr_attr.stManual.st3DFix.sig1_y[13] = 0x0400;
1447 bayertnr_attr.stManual.st3DFix.sig1_y[14] = 0x0400;
1448 bayertnr_attr.stManual.st3DFix.sig1_y[15] = 0x0400;
1449
1450 // ISP_BAYNR_3A00_SIGMAY0-15
1451 bayertnr_attr.stManual.st3DFix.sig2_y[0] = 0x080;
1452 bayertnr_attr.stManual.st3DFix.sig2_y[1] = 0x080;
1453 bayertnr_attr.stManual.st3DFix.sig2_y[2] = 0x080;
1454 bayertnr_attr.stManual.st3DFix.sig2_y[3] = 0x080;
1455 bayertnr_attr.stManual.st3DFix.sig2_y[4] = 0x080;
1456 bayertnr_attr.stManual.st3DFix.sig2_y[5] = 0x080;
1457 bayertnr_attr.stManual.st3DFix.sig2_y[6] = 0x080;
1458 bayertnr_attr.stManual.st3DFix.sig2_y[7] = 0x080;
1459 bayertnr_attr.stManual.st3DFix.sig2_y[8] = 0x080;
1460 bayertnr_attr.stManual.st3DFix.sig2_y[9] = 0x080;
1461 bayertnr_attr.stManual.st3DFix.sig2_y[10] = 0x080;
1462 bayertnr_attr.stManual.st3DFix.sig2_y[11] = 0x080;
1463 bayertnr_attr.stManual.st3DFix.sig2_y[12] = 0x080;
1464 bayertnr_attr.stManual.st3DFix.sig2_y[13] = 0x080;
1465 bayertnr_attr.stManual.st3DFix.sig2_y[14] = 0x080;
1466 bayertnr_attr.stManual.st3DFix.sig2_y[15] = 0x080;
1467
1468 /* BAY3D_HISIGRAT */
1469 bayertnr_attr.stManual.st3DFix.hisigrat0 = 0x00;
1470 bayertnr_attr.stManual.st3DFix.hisigrat1 = 0x00;
1471
1472 /* BAY3D_HISIGOFF */
1473 bayertnr_attr.stManual.st3DFix.hisigoff0 = 0x100;
1474 bayertnr_attr.stManual.st3DFix.hisigoff1 = 0x400;
1475
1476 /* BAY3D_LOSIG */
1477 bayertnr_attr.stManual.st3DFix.losigoff = 0x00;
1478 bayertnr_attr.stManual.st3DFix.losigrat = 0x100;
1479
1480 /* BAY3D_SIGPK */
1481 bayertnr_attr.stManual.st3DFix.rgain_off = 0x00;
1482 bayertnr_attr.stManual.st3DFix.bgain_off = 0x00;
1483
1484 /* BAY3D_SIGGAUS */
1485 bayertnr_attr.stManual.st3DFix.siggaus0 = 0x10;
1486 bayertnr_attr.stManual.st3DFix.siggaus1 = 0x8;
1487 bayertnr_attr.stManual.st3DFix.siggaus2 = 0x4;
1488 bayertnr_attr.stManual.st3DFix.siggaus3 = 0x0;
1489
1490 ret = rk_aiq_user_api2_abayertnrV23Lite_SetAttrib(ctx, &bayertnr_attr);
1491 printf("set bayertnr v23Lite attri manual ret:%d \n\n", ret);
1492
1493 rk_aiq_bayertnr_attrib_v23L_t get_bayertnr_attr;
1494 get_bayertnr_attr.sync.sync_mode = sync_mode;
1495 ret = rk_aiq_user_api2_abayertnrV23Lite_GetAttrib(ctx, &get_bayertnr_attr);
1496 printf("get abayertnr v23Lite attri ret:%d done:%d \n\n", ret, get_bayertnr_attr.sync.done);
1497
1498 return ret;
1499 }
1500
sample_abayertnr_setStrength_v2(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode,float fStrength)1501 XCamReturn sample_abayertnr_setStrength_v2(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode, float fStrength)
1502 {
1503 XCamReturn ret = XCAM_RETURN_NO_ERROR;
1504
1505 rk_aiq_bayertnr_strength_v2_t bayertnrV2Strenght;
1506 bayertnrV2Strenght.sync.sync_mode = sync_mode;
1507 bayertnrV2Strenght.percent = fStrength;
1508 ret = rk_aiq_user_api2_abayertnrV2_SetStrength(ctx, &bayertnrV2Strenght);
1509 printf("Set abayertnr v2 set streangth ret:%d strength:%f \n\n", ret, bayertnrV2Strenght.percent);
1510
1511 rk_aiq_bayertnr_strength_v2_t get_bayertnrV2Strenght;
1512 get_bayertnrV2Strenght.sync.sync_mode = sync_mode;
1513 ret = rk_aiq_user_api2_abayertnrV2_GetStrength(ctx, &get_bayertnrV2Strenght);
1514 printf("get abayertnr v2 attri ret:%d strength:%f done:%d\n\n",
1515 ret, get_bayertnrV2Strenght.percent, get_bayertnrV2Strenght.sync.done);
1516 return ret;
1517 }
1518
sample_abayertnr_setStrength_v23(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode,float fStrength)1519 XCamReturn sample_abayertnr_setStrength_v23(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode, float fStrength)
1520 {
1521 XCamReturn ret = XCAM_RETURN_NO_ERROR;
1522
1523 rk_aiq_bayertnr_strength_v23_t bayertnrStrength;
1524 bayertnrStrength.sync.sync_mode = sync_mode;
1525 bayertnrStrength.percent = fStrength;
1526 bayertnrStrength.strength_enable = true;
1527 ret = rk_aiq_user_api2_abayertnrV23_SetStrength(ctx, &bayertnrStrength);
1528 printf("Set abayertnr v23 set streangth ret:%d strength:%f \n\n", ret, bayertnrStrength.percent);
1529
1530 rk_aiq_bayertnr_strength_v23_t get_bayertnrStrength;
1531 get_bayertnrStrength.sync.sync_mode = sync_mode;
1532 ret = rk_aiq_user_api2_abayertnrV23_GetStrength(ctx, &get_bayertnrStrength);
1533 printf("get abayertnr v23 attri ret:%d strength:%f done:%d\n\n",
1534 ret, get_bayertnrStrength.percent, get_bayertnrStrength.sync.done);
1535 return ret;
1536 }
1537
1538
sample_abayertnr_setDefault_v2(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode,rk_aiq_bayertnr_attrib_v2_t & default_bayertnrV2_attr)1539 XCamReturn sample_abayertnr_setDefault_v2(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode, rk_aiq_bayertnr_attrib_v2_t &default_bayertnrV2_attr)
1540 {
1541 XCamReturn ret = XCAM_RETURN_NO_ERROR;
1542
1543 default_bayertnrV2_attr.sync.sync_mode = sync_mode;
1544 ret = rk_aiq_user_api2_abayertnrV2_SetAttrib(ctx, &default_bayertnrV2_attr);
1545 printf("set bayertnr v2 default attri ret:%d \n\n", ret);
1546
1547 rk_aiq_bayertnr_attrib_v2_t get_bayertnrV2_attr;
1548 get_bayertnrV2_attr.sync.sync_mode = sync_mode;
1549 ret = rk_aiq_user_api2_abayertnrV2_GetAttrib(ctx, &get_bayertnrV2_attr);
1550 printf("get abayertnr v2 attri ret:%d done:%d \n\n", ret, get_bayertnrV2_attr.sync.done);
1551 return ret;
1552 }
1553
sample_abayertnr_setDefault_v23(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode,rk_aiq_bayertnr_attrib_v23_t & default_bayertnr_attr)1554 XCamReturn sample_abayertnr_setDefault_v23(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode, rk_aiq_bayertnr_attrib_v23_t & default_bayertnr_attr)
1555 {
1556 XCamReturn ret = XCAM_RETURN_NO_ERROR;
1557
1558 default_bayertnr_attr.sync.sync_mode = sync_mode;
1559 ret = rk_aiq_user_api2_abayertnrV23_SetAttrib(ctx, &default_bayertnr_attr);
1560 printf("set bayertnr v2 default attri ret:%d \n\n", ret);
1561
1562 rk_aiq_bayertnr_attrib_v23_t get_bayertnr_attr;
1563 get_bayertnr_attr.sync.sync_mode = sync_mode;
1564 ret = rk_aiq_user_api2_abayertnrV23_GetAttrib(ctx, &get_bayertnr_attr);
1565 printf("get abayertnr v2 attri ret:%d done:%d \n\n", ret, get_bayertnr_attr.sync.done);
1566 return ret;
1567 }
1568
sample_abayertnr_setDefault_v23Lite(const rk_aiq_sys_ctx_t * ctx,rk_aiq_uapi_mode_sync_e sync_mode,rk_aiq_bayertnr_attrib_v23L_t & default_bayertnr_attr)1569 XCamReturn sample_abayertnr_setDefault_v23Lite(
1570 const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapi_mode_sync_e sync_mode,
1571 rk_aiq_bayertnr_attrib_v23L_t& default_bayertnr_attr) {
1572 XCamReturn ret = XCAM_RETURN_NO_ERROR;
1573
1574 default_bayertnr_attr.sync.sync_mode = sync_mode;
1575 ret = rk_aiq_user_api2_abayertnrV23Lite_SetAttrib(ctx, &default_bayertnr_attr);
1576 printf("set bayertnr v23Lite default attri ret:%d \n\n", ret);
1577
1578 rk_aiq_bayertnr_attrib_v23L_t get_bayertnr_attr;
1579 get_bayertnr_attr.sync.sync_mode = sync_mode;
1580 ret = rk_aiq_user_api2_abayertnrV23Lite_GetAttrib(ctx, &get_bayertnr_attr);
1581 printf("get abayertnr v23Lite attri ret:%d done:%d \n\n", ret, get_bayertnr_attr.sync.done);
1582 return ret;
1583 }
1584
sample_abayertnr_module(const void * arg)1585 XCamReturn sample_abayertnr_module (const void *arg)
1586 {
1587 int key = -1;
1588 CLEAR();
1589 XCamReturn ret = XCAM_RETURN_NO_ERROR;
1590 const demo_context_t *demo_ctx = (demo_context_t *)arg;
1591 const rk_aiq_sys_ctx_t* ctx;
1592
1593 if (demo_ctx->camGroup) {
1594 ctx = (const rk_aiq_sys_ctx_t*)(demo_ctx->camgroup_ctx);
1595 printf("##################group !!!!########################\n");
1596 } else {
1597 ctx = (const rk_aiq_sys_ctx_t*)(demo_ctx->aiq_ctx);
1598 printf("##################sigle !!!!########################\n");
1599 }
1600 if (ctx == nullptr) {
1601 ERR ("%s, ctx is nullptr\n", __FUNCTION__);
1602 return XCAM_RETURN_ERROR_PARAM;
1603 }
1604
1605 rk_aiq_bayertnr_attrib_v2_t default_bayertnrV2_attr;
1606 if (CHECK_ISP_HW_V30()) {
1607 ret = rk_aiq_user_api2_abayertnrV2_GetAttrib(ctx, &default_bayertnrV2_attr);
1608 printf("get abayertnr v2 default attri ret:%d \n\n", ret);
1609 }
1610
1611
1612 rk_aiq_bayertnr_attrib_v23_t default_bayertnrV23_attr;
1613 if (CHECK_ISP_HW_V32()) {
1614 ret = rk_aiq_user_api2_abayertnrV23_GetAttrib(ctx, &default_bayertnrV23_attr);
1615 printf("get abayertnr v2 default attri ret:%d \n\n", ret);
1616 }
1617
1618 rk_aiq_bayertnr_attrib_v23L_t default_bayertnrV23_attr_lite;
1619 if (CHECK_ISP_HW_V32_LITE()) {
1620 ret = rk_aiq_user_api2_abayertnrV23Lite_GetAttrib(ctx, &default_bayertnrV23_attr_lite);
1621 printf("get abayertnr v2 default attri ret:%d \n\n", ret);
1622 }
1623
1624 do {
1625 sample_abayertnr_usage ();
1626
1627 key = getchar ();
1628 while (key == '\n' || key == '\r')
1629 key = getchar ();
1630 printf ("\n");
1631
1632 switch (key) {
1633 case '0':
1634 if (CHECK_ISP_HW_V30()) {
1635 sample_abayertnr_getAttr_v2(ctx, RK_AIQ_UAPI_MODE_SYNC);
1636 }
1637 if (CHECK_ISP_HW_V32()) {
1638 sample_abayertnr_getAttr_v23(ctx, RK_AIQ_UAPI_MODE_SYNC);
1639 }
1640 if (CHECK_ISP_HW_V32_LITE()) {
1641 sample_abayertnr_getAttr_v23Lite(ctx, RK_AIQ_UAPI_MODE_SYNC);
1642 }
1643 break;
1644 case '1':
1645 if (CHECK_ISP_HW_V30()) {
1646 sample_abayertnr_getStrength_v2(ctx, RK_AIQ_UAPI_MODE_SYNC);
1647 }
1648 if (CHECK_ISP_HW_V32() || CHECK_ISP_HW_V32_LITE()) {
1649 sample_abayertnr_getStrength_v23(ctx, RK_AIQ_UAPI_MODE_SYNC);
1650 }
1651 break;
1652 case '2':
1653 if (CHECK_ISP_HW_V30()) {
1654 sample_abayertnr_setAuto_v2(ctx, RK_AIQ_UAPI_MODE_SYNC);
1655 }
1656 if (CHECK_ISP_HW_V32()) {
1657 sample_abayertnr_setAuto_v23(ctx, RK_AIQ_UAPI_MODE_SYNC);
1658 }
1659 if (CHECK_ISP_HW_V32_LITE()) {
1660 sample_abayertnr_setAuto_v23Lite(ctx, RK_AIQ_UAPI_MODE_SYNC);
1661 }
1662 break;
1663 case '3':
1664 if (CHECK_ISP_HW_V30()) {
1665 sample_abayertnr_setManual_v2(ctx, RK_AIQ_UAPI_MODE_SYNC);
1666 }
1667 if (CHECK_ISP_HW_V32()) {
1668 sample_abayertnr_setManual_v23(ctx, RK_AIQ_UAPI_MODE_SYNC);
1669 }
1670 if (CHECK_ISP_HW_V32_LITE()) {
1671 sample_abayertnr_setManual_v23Lite(ctx, RK_AIQ_UAPI_MODE_SYNC);
1672 }
1673 break;
1674 case '4':
1675 if (CHECK_ISP_HW_V30()) {
1676 sample_abayertnr_setReg_v2(ctx, RK_AIQ_UAPI_MODE_SYNC);
1677 }
1678 if (CHECK_ISP_HW_V32()) {
1679 sample_abayertnr_setReg_v23(ctx, RK_AIQ_UAPI_MODE_SYNC);
1680 }
1681 if (CHECK_ISP_HW_V32_LITE()) {
1682 sample_abayertnr_setReg_v23Lite(ctx, RK_AIQ_UAPI_MODE_SYNC);
1683 }
1684 break;
1685 case '5':
1686 if (CHECK_ISP_HW_V30()) {
1687 sample_abayertnr_setStrength_v2(ctx, RK_AIQ_UAPI_MODE_SYNC, 1.0);
1688 }
1689 if (CHECK_ISP_HW_V32() || CHECK_ISP_HW_V32_LITE()) {
1690 sample_abayertnr_setStrength_v23(ctx, RK_AIQ_UAPI_MODE_SYNC, 1.0);
1691 }
1692 break;
1693 case '6':
1694 if (CHECK_ISP_HW_V30()) {
1695 sample_abayertnr_setStrength_v2(ctx, RK_AIQ_UAPI_MODE_SYNC, 0.0);
1696 }
1697 if (CHECK_ISP_HW_V32() || CHECK_ISP_HW_V32_LITE()) {
1698 sample_abayertnr_setStrength_v23(ctx, RK_AIQ_UAPI_MODE_SYNC, 0.0);
1699 }
1700 break;
1701 case '7':
1702 if (CHECK_ISP_HW_V30()) {
1703 sample_abayertnr_setStrength_v2(ctx, RK_AIQ_UAPI_MODE_SYNC, 0.5);
1704 }
1705 if (CHECK_ISP_HW_V32() || CHECK_ISP_HW_V32_LITE()) {
1706 sample_abayertnr_setStrength_v23(ctx, RK_AIQ_UAPI_MODE_SYNC, 0.5);
1707 }
1708 break;
1709 case '8':
1710 if (CHECK_ISP_HW_V30()) {
1711 sample_abayertnr_setDefault_v2(ctx, RK_AIQ_UAPI_MODE_SYNC, default_bayertnrV2_attr);
1712 }
1713 if (CHECK_ISP_HW_V32()) {
1714 sample_abayertnr_setDefault_v23(ctx, RK_AIQ_UAPI_MODE_SYNC, default_bayertnrV23_attr);
1715 }
1716 if (CHECK_ISP_HW_V32_LITE()) {
1717 sample_abayertnr_setDefault_v23Lite(ctx, RK_AIQ_UAPI_MODE_SYNC,
1718 default_bayertnrV23_attr_lite);
1719 }
1720 break;
1721 case 'a':
1722 if (CHECK_ISP_HW_V30()) {
1723 sample_abayertnr_getAttr_v2(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1724 }
1725 if (CHECK_ISP_HW_V32()) {
1726 sample_abayertnr_getAttr_v23(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1727 }
1728 if (CHECK_ISP_HW_V32_LITE()) {
1729 sample_abayertnr_getAttr_v23Lite(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1730 }
1731 break;
1732 case 'b':
1733 if (CHECK_ISP_HW_V30()) {
1734 sample_abayertnr_getStrength_v2(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1735 }
1736 if (CHECK_ISP_HW_V32() || CHECK_ISP_HW_V32_LITE()) {
1737 sample_abayertnr_getStrength_v23(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1738 }
1739 break;
1740 case 'c':
1741 if (CHECK_ISP_HW_V30()) {
1742 sample_abayertnr_setAuto_v2(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1743 }
1744 if (CHECK_ISP_HW_V32()) {
1745 sample_abayertnr_setAuto_v23(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1746 }
1747 if (CHECK_ISP_HW_V32_LITE()) {
1748 sample_abayertnr_setAuto_v23Lite(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1749 }
1750 break;
1751 case 'd':
1752 if (CHECK_ISP_HW_V30()) {
1753 sample_abayertnr_setManual_v2(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1754 }
1755 if (CHECK_ISP_HW_V32()) {
1756 sample_abayertnr_setManual_v23(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1757 }
1758 if (CHECK_ISP_HW_V32_LITE()) {
1759 sample_abayertnr_setManual_v23Lite(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1760 }
1761 break;
1762 case 'e':
1763 if (CHECK_ISP_HW_V30()) {
1764 sample_abayertnr_setReg_v2(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1765 }
1766 if (CHECK_ISP_HW_V32()) {
1767 sample_abayertnr_setReg_v23(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1768 }
1769 if (CHECK_ISP_HW_V32_LITE()) {
1770 sample_abayertnr_setReg_v23Lite(ctx, RK_AIQ_UAPI_MODE_ASYNC);
1771 }
1772 break;
1773 case 'f':
1774 if (CHECK_ISP_HW_V30()) {
1775 sample_abayertnr_setStrength_v2(ctx, RK_AIQ_UAPI_MODE_ASYNC, 1.0);
1776 }
1777 if (CHECK_ISP_HW_V32() || CHECK_ISP_HW_V32_LITE()) {
1778 sample_abayertnr_setStrength_v23(ctx, RK_AIQ_UAPI_MODE_ASYNC, 1.0);
1779 }
1780 break;
1781 case 'g':
1782 if (CHECK_ISP_HW_V30()) {
1783 sample_abayertnr_setStrength_v2(ctx, RK_AIQ_UAPI_MODE_ASYNC, 0.0);
1784 }
1785 if (CHECK_ISP_HW_V32() || CHECK_ISP_HW_V32_LITE()) {
1786 sample_abayertnr_setStrength_v23(ctx, RK_AIQ_UAPI_MODE_ASYNC, 0.0);
1787 }
1788 break;
1789 case 'h':
1790 if (CHECK_ISP_HW_V30()) {
1791 sample_abayertnr_setStrength_v2(ctx, RK_AIQ_UAPI_MODE_ASYNC, 0.5);
1792 }
1793 if (CHECK_ISP_HW_V32() || CHECK_ISP_HW_V32_LITE()) {
1794 sample_abayertnr_setStrength_v23(ctx, RK_AIQ_UAPI_MODE_ASYNC, 0.5);
1795 }
1796 break;
1797 case 'i':
1798 if (CHECK_ISP_HW_V30()) {
1799 sample_abayertnr_setDefault_v2(ctx, RK_AIQ_UAPI_MODE_ASYNC, default_bayertnrV2_attr);
1800 }
1801 if (CHECK_ISP_HW_V32()) {
1802 sample_abayertnr_setDefault_v23(ctx, RK_AIQ_UAPI_MODE_ASYNC, default_bayertnrV23_attr);
1803 }
1804 if (CHECK_ISP_HW_V32_LITE()) {
1805 sample_abayertnr_setDefault_v23Lite(ctx, RK_AIQ_UAPI_MODE_ASYNC,
1806 default_bayertnrV23_attr_lite);
1807 }
1808 break;
1809 default:
1810 printf("not support test\n\n");
1811 break;
1812 }
1813
1814 } while (key != 'q' && key != 'Q');
1815
1816 return ret;
1817 }
1818
1819