xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkisp_demo/demo/sample/sample_abayertnr_module.cpp (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  *  Copyright (c) 2019 Rockchip Corporation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17 
18 #include "sample_comm.h"
19 
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