1 #include "mfnr_xml2json_v1.h"
2
3 #define MFNRV1_SETTING_NUM (2)
4 #define MFNRV1_ISO_NUM (13)
5
6
7
mfnrV1_calibdb_to_calibdbV2(const CalibDb_MFNR_2_t * pCalibdb,CalibDbV2_MFNR_t * pCalibdbV2,int mode_idx)8 int mfnrV1_calibdb_to_calibdbV2(const CalibDb_MFNR_2_t *pCalibdb, CalibDbV2_MFNR_t *pCalibdbV2, int mode_idx)
9 {
10 CalibDbV2_MFNR_Calib_t *pCalibParaV2 = NULL;
11 CalibDbV2_MFNR_Tuning_t *pTuningParaV2 = NULL;
12 CalibDbV2_MFNR_C_ISO_t *pCalibISOV2 = NULL;
13 CalibDbV2_MFNR_T_ISO_t *pTuningISOV2 = NULL;
14 CalibDbV2_MFNR_Motion_ISO_t *pMotionISOV2 = NULL;
15 CalibDbV2_MFNR_Dynamic_t *pDynamicV2 = NULL;
16 CalibDb_MFNR_Setting_t *pSetting = NULL;
17 CalibDb_MFNR_Dynamic_t *pDynamic = NULL;
18 CalibDb_MFNR_Motion_t *pMotion = NULL;
19 struct CalibDb_MFNR_ISO_s *pISO = NULL;
20
21 if(pCalibdb == NULL) {
22 printf(" pCalibdb is NULL pointer\n");
23 return -1;
24 }
25
26 if(pCalibdbV2 == NULL) {
27 printf(" pCalibdbV2 is NULL pointer\n");
28 return -1;
29 }
30
31 if(pCalibdb->mode_num < mode_idx) {
32 printf(" old xml file have no %d mode cell \n", mode_idx);
33 return -1;
34 }
35
36 pCalibParaV2 = &pCalibdbV2->CalibPara;
37 pTuningParaV2 = &pCalibdbV2->TuningPara;
38
39 //malloc settting size
40 pCalibParaV2->Setting = (CalibDbV2_MFNR_C_Set_t *)malloc(MFNRV1_SETTING_NUM * sizeof(CalibDbV2_MFNR_C_Set_t));
41 memset(pCalibParaV2->Setting, 0x00, MFNRV1_SETTING_NUM * sizeof(CalibDbV2_MFNR_C_Set_t));
42 pCalibParaV2->Setting_len = MFNRV1_SETTING_NUM;
43 pTuningParaV2->Setting = (CalibDbV2_MFNR_T_Set_t *)malloc(MFNRV1_SETTING_NUM * sizeof(CalibDbV2_MFNR_T_Set_t));
44 memset(pTuningParaV2->Setting, 0x00, MFNRV1_SETTING_NUM * sizeof(CalibDbV2_MFNR_T_Set_t));
45 pTuningParaV2->Setting_len = MFNRV1_SETTING_NUM;
46
47 //malloc iso size
48 for(int i = 0; i < pTuningParaV2->Setting_len; i++) {
49 pCalibParaV2->Setting[i].Calib_ISO = (CalibDbV2_MFNR_C_ISO_t *)malloc(MFNRV1_ISO_NUM * sizeof(CalibDbV2_MFNR_C_ISO_t));
50 memset(pCalibParaV2->Setting[i].Calib_ISO, 0x00, MFNRV1_ISO_NUM * sizeof(CalibDbV2_MFNR_C_ISO_t));
51 pCalibParaV2->Setting[i].Calib_ISO_len = MFNRV1_ISO_NUM;
52 pTuningParaV2->Setting[i].Tuning_ISO = (CalibDbV2_MFNR_T_ISO_t *)malloc(MFNRV1_ISO_NUM * sizeof(CalibDbV2_MFNR_T_ISO_t));
53 memset(pTuningParaV2->Setting[i].Tuning_ISO, 0x00, MFNRV1_ISO_NUM * sizeof(CalibDbV2_MFNR_T_ISO_t));
54 pTuningParaV2->Setting[i].Tuning_ISO_len = MFNRV1_ISO_NUM;
55 }
56 pTuningParaV2->Motion.Motion_ISO = (CalibDbV2_MFNR_Motion_ISO_t *)malloc(MFNRV1_ISO_NUM * sizeof(CalibDbV2_MFNR_Motion_ISO_t));
57 memset(pTuningParaV2->Motion.Motion_ISO, 0x00, MFNRV1_ISO_NUM * sizeof(CalibDbV2_MFNR_Motion_ISO_t));
58 pTuningParaV2->Motion.Motion_ISO_len = MFNRV1_ISO_NUM;
59
60 //assign the value
61 pCalibdbV2->Version = strdup(pCalibdb->version);
62
63 pTuningParaV2->enable = pCalibdb->enable;
64 pTuningParaV2->local_gain_en = pCalibdb->local_gain_en;
65 pTuningParaV2->mode_3to1 = pCalibdb->mode_3to1;
66 pTuningParaV2->motion_detect_en = pCalibdb->motion_detect_en;
67
68 for(int i = 0; i < MFNRV1_SETTING_NUM; i++) {
69 pSetting = &pCalibdb->mode_cell[mode_idx].setting[i];
70
71 pCalibParaV2->Setting[i].SNR_Mode = strdup(pSetting->snr_mode);
72 pCalibParaV2->Setting[i].Sensor_Mode = strdup(pSetting->sensor_mode);
73 pTuningParaV2->Setting[i].SNR_Mode = strdup( pSetting->snr_mode);
74 pTuningParaV2->Setting[i].Sensor_Mode = strdup( pSetting->sensor_mode);
75
76 for(int j = 0; j < MFNRV1_ISO_NUM; j++) {
77 pSetting = &pCalibdb->mode_cell[mode_idx].setting[i];
78 pCalibISOV2 = &pCalibParaV2->Setting[i].Calib_ISO[j];
79 pTuningISOV2 = &pTuningParaV2->Setting[i].Tuning_ISO[j];
80 pISO = &pSetting->mfnr_iso[j];
81
82 //calib
83 pCalibISOV2->iso = pISO->iso;
84 pCalibISOV2->noise_curve_x00 = pISO->noise_curve_x00;
85 for(int k = 0; k < 5; k++) {
86 pCalibISOV2->noise_curve[k] = pISO->noise_curve[k];
87 }
88 for(int k = 0; k < 4; k++) {
89 pCalibISOV2->y_lo_noiseprofile[k] = pISO->y_lo_noiseprofile[k];
90 pCalibISOV2->y_hi_noiseprofile[k] = pISO->y_hi_noiseprofile[k];
91 }
92 for(int k = 0; k < 3; k++) {
93 pCalibISOV2->uv_lo_noiseprofile[k] = pISO->uv_lo_noiseprofile[k];
94 pCalibISOV2->uv_hi_noiseprofile[k] = pISO->uv_hi_noiseprofile[k];
95 }
96
97 //tuning
98 pTuningISOV2->iso = pISO->iso;
99 pTuningISOV2->weight_limit_y_0 = pISO->weight_limit_y[0];
100 pTuningISOV2->weight_limit_y_1 = pISO->weight_limit_y[1];
101 pTuningISOV2->weight_limit_y_2 = pISO->weight_limit_y[2];
102 pTuningISOV2->weight_limit_y_3 = pISO->weight_limit_y[3];
103
104 pTuningISOV2->weight_limit_uv_0 = pISO->weight_limit_uv[0];
105 pTuningISOV2->weight_limit_uv_1 = pISO->weight_limit_uv[1];
106 pTuningISOV2->weight_limit_uv_2 = pISO->weight_limit_uv[2];
107
108 pTuningISOV2->ratio_frq_y_l = pISO->ratio_frq[0];
109 pTuningISOV2->ratio_frq_y_h = pISO->ratio_frq[1];
110 pTuningISOV2->ratio_frq_uv_l = pISO->ratio_frq[2];
111 pTuningISOV2->ratio_frq_uv_h = pISO->ratio_frq[3];
112
113 pTuningISOV2->luma_w_in_chroma_0 = pISO->luma_w_in_chroma[0];
114 pTuningISOV2->luma_w_in_chroma_1 = pISO->luma_w_in_chroma[1];
115 pTuningISOV2->luma_w_in_chroma_2 = pISO->luma_w_in_chroma[2];
116
117 pTuningISOV2->y_lo_bfscale_0 = pISO->y_lo_bfscale[0];
118 pTuningISOV2->y_lo_bfscale_1 = pISO->y_lo_bfscale[1];
119 pTuningISOV2->y_lo_bfscale_2 = pISO->y_lo_bfscale[2];
120 pTuningISOV2->y_lo_bfscale_3 = pISO->y_lo_bfscale[3];
121
122 pTuningISOV2->y_hi_bfscale_0 = pISO->y_hi_bfscale[0];
123 pTuningISOV2->y_hi_bfscale_1 = pISO->y_hi_bfscale[1];
124 pTuningISOV2->y_hi_bfscale_2 = pISO->y_hi_bfscale[2];
125 pTuningISOV2->y_hi_bfscale_3 = pISO->y_hi_bfscale[3];
126
127 pTuningISOV2->y_denoisestrength = pISO->y_denoisestrength;
128
129 pTuningISOV2->uv_lo_bfscale_0 = pISO->uv_lo_bfscale[0];
130 pTuningISOV2->uv_lo_bfscale_1 = pISO->uv_lo_bfscale[1];
131 pTuningISOV2->uv_lo_bfscale_2 = pISO->uv_lo_bfscale[2];
132
133 pTuningISOV2->uv_hi_bfscale_0 = pISO->uv_hi_bfscale[0];
134 pTuningISOV2->uv_hi_bfscale_1 = pISO->uv_hi_bfscale[1];
135 pTuningISOV2->uv_hi_bfscale_2 = pISO->uv_hi_bfscale[2];
136
137 pTuningISOV2->uv_denoisestrength = pISO->uv_denoisestrength;
138
139 for(int k = 0; k < 6; k++) {
140 pTuningISOV2->luma_para.y_lumanrpoint[k] = pISO->y_lumanrpoint[k];
141 pTuningISOV2->luma_para.y_lumanrcurve[k] = pISO->y_lumanrcurve[k];
142 pTuningISOV2->luma_para.uv_lumanrpoint[k] = pISO->uv_lumanrpoint[k];
143 pTuningISOV2->luma_para.uv_lumanrcurve[k] = pISO->uv_lumanrcurve[k];
144 }
145
146 for(int k = 0; k < 6; k++) {
147 pTuningISOV2->y_gfdelta_para.y_lo_lvl0_gfdelta[k] = pISO->y_lo_lvl0_gfdelta[k];
148 pTuningISOV2->y_gfdelta_para.y_hi_lvl0_gfdelta[k] = pISO->y_hi_lvl0_gfdelta[k];
149 pTuningISOV2->uv_gfdelta_para.uv_lo_lvl0_gfdelta[k] = pISO->uv_lo_lvl0_gfdelta[k];
150 pTuningISOV2->uv_gfdelta_para.uv_hi_lvl0_gfdelta[k] = pISO->uv_hi_lvl0_gfdelta[k];
151 pTuningISOV2->gfsigma_para.lvl0_gfsigma[k] = pISO->lvl0_gfsigma[k];
152 }
153
154 for(int k = 0; k < 3; k++) {
155 pTuningISOV2->y_gfdelta_para.y_lo_lvl1_gfdelta[k] = pISO->y_lo_lvl1_gfdelta[k];
156 pTuningISOV2->y_gfdelta_para.y_hi_lvl1_gfdelta[k] = pISO->y_hi_lvl1_gfdelta[k];
157 pTuningISOV2->y_gfdelta_para.y_lo_lvl2_gfdelta[k] = pISO->y_lo_lvl2_gfdelta[k];
158 pTuningISOV2->y_gfdelta_para.y_hi_lvl2_gfdelta[k] = pISO->y_hi_lvl2_gfdelta[k];
159 pTuningISOV2->y_gfdelta_para.y_lo_lvl3_gfdelta[k] = pISO->y_lo_lvl3_gfdelta[k];
160 pTuningISOV2->y_gfdelta_para.y_hi_lvl3_gfdelta[k] = pISO->y_hi_lvl3_gfdelta[k];
161 }
162
163 for(int k = 0; k < 3; k++) {
164 pTuningISOV2->uv_gfdelta_para.uv_lo_lvl1_gfdelta[k] = pISO->uv_lo_lvl1_gfdelta[k];
165 pTuningISOV2->uv_gfdelta_para.uv_hi_lvl1_gfdelta[k] = pISO->uv_hi_lvl1_gfdelta[k];
166 pTuningISOV2->uv_gfdelta_para.uv_lo_lvl2_gfdelta[k] = pISO->uv_lo_lvl2_gfdelta[k];
167 pTuningISOV2->uv_gfdelta_para.uv_hi_lvl2_gfdelta[k] = pISO->uv_hi_lvl2_gfdelta[k];
168 }
169
170 for(int k = 0; k < 3; k++) {
171 pTuningISOV2->gfsigma_para.lvl1_gfsigma[k] = pISO->lvl1_gfsigma[k];
172 pTuningISOV2->gfsigma_para.lvl2_gfsigma[k] = pISO->lvl2_gfsigma[k];
173 pTuningISOV2->gfsigma_para.lvl3_gfsigma[k] = pISO->lvl3_gfsigma[k];
174 }
175 }
176 }
177
178
179 //motion
180 pMotion = &pCalibdb->mode_cell[mode_idx].motion;
181 for(int i = 0; i < MFNRV1_ISO_NUM; i++) {
182 pMotionISOV2 = &pCalibdbV2->TuningPara.Motion.Motion_ISO[i];
183 pMotionISOV2->iso = pMotion->iso[i];
184 pMotionISOV2->sigmaHScale = pMotion->sigmaHScale[i];
185 pMotionISOV2->sigmaLScale = pMotion->sigmaLScale[i];
186 pMotionISOV2->lightClp = pMotion->lightClp[i];
187 pMotionISOV2->uvWeight = pMotion->uvWeight[i];
188 pMotionISOV2->mfnrSigmaScale = pMotion->mfnrSigmaScale[i];
189 pMotionISOV2->yuvnrGainScale0 = pMotion->yuvnrGainScale0[i];
190 pMotionISOV2->yuvnrGainScale1 = pMotion->yuvnrGainScale1[i];
191 pMotionISOV2->yuvnrGainScale2 = pMotion->yuvnrGainScale2[i];
192 pMotionISOV2->frame_limit_y = pMotion->frame_limit_y[i];
193 pMotionISOV2->frame_limit_uv = pMotion->frame_limit_uv[i];
194 }
195
196 //dynamic
197 pDynamic = &pCalibdb->mode_cell[mode_idx].dynamic;
198 pDynamicV2 = &pCalibdbV2->TuningPara.Dynamic;
199 pDynamicV2->Enable = pDynamic->enable;
200 pDynamicV2->LowTh_iso = pDynamic->lowth_iso;
201 pDynamicV2->LowTh_time = pDynamic->lowth_time;
202 pDynamicV2->HighTh_iso = pDynamic->highth_iso;
203 pDynamicV2->HighTh_time = pDynamic->highth_time;
204
205 return 0;
206
207 }
208
209
210
211
212
mfnrV1_calibdbV2_to_calibdb(CalibDbV2_MFNR_t * pCalibdbV2,CalibDb_MFNR_2_t * pCalibdb,int mode_idx)213 int mfnrV1_calibdbV2_to_calibdb(CalibDbV2_MFNR_t *pCalibdbV2, CalibDb_MFNR_2_t *pCalibdb, int mode_idx)
214 {
215 CalibDbV2_MFNR_Calib_t *pCalibParaV2 = NULL;
216 CalibDbV2_MFNR_Tuning_t *pTuningParaV2 = NULL;
217 CalibDbV2_MFNR_C_ISO_t *pCalibISOV2 = NULL;
218 CalibDbV2_MFNR_T_ISO_t *pTuningISOV2 = NULL;
219 CalibDbV2_MFNR_Motion_ISO_t *pMotionISOV2 = NULL;
220 CalibDbV2_MFNR_Dynamic_t *pDynamicV2 = NULL;
221 CalibDb_MFNR_Setting_t *pSetting = NULL;
222 CalibDb_MFNR_Dynamic_t *pDynamic = NULL;
223 CalibDb_MFNR_Motion_t *pMotion = NULL;
224 struct CalibDb_MFNR_ISO_s *pISO = NULL;
225
226 if(pCalibdb == NULL) {
227 printf(" pCalibdb is NULL pointer\n");
228 return -1;
229 }
230
231 if(pCalibdbV2 == NULL) {
232 printf(" pCalibdbV2 is NULL pointer\n");
233 return -1;
234 }
235
236 if(pCalibdb->mode_num < mode_idx) {
237 printf(" old xml file have no %d mode cell \n", mode_idx);
238 return -1;
239 }
240
241 pCalibParaV2 = &pCalibdbV2->CalibPara;
242 pTuningParaV2 = &pCalibdbV2->TuningPara;
243
244
245 //assign the value
246 strcpy(pCalibdb->version, pCalibdbV2->Version);
247
248 pCalibdb->enable = pTuningParaV2->enable;
249 pCalibdb->local_gain_en = pTuningParaV2->local_gain_en;
250 pCalibdb->mode_3to1 = pTuningParaV2->mode_3to1;
251 pCalibdb->motion_detect_en = pTuningParaV2->motion_detect_en;
252
253 for(int i = 0; i < pTuningParaV2->Setting_len; i++) {
254 pSetting = &pCalibdb->mode_cell[mode_idx].setting[i];
255
256 strcpy(pSetting->snr_mode, pTuningParaV2->Setting[i].SNR_Mode);
257 strcpy( pSetting->sensor_mode, pTuningParaV2->Setting[i].Sensor_Mode);
258
259 for(int j = 0; j < MFNRV1_ISO_NUM; j++) {
260 pSetting = &pCalibdb->mode_cell[mode_idx].setting[i];
261 pCalibISOV2 = &pCalibParaV2->Setting[i].Calib_ISO[j];
262 pTuningISOV2 = &pTuningParaV2->Setting[i].Tuning_ISO[j];
263 pISO = &pSetting->mfnr_iso[j];
264
265 //calib
266 pISO->iso = pCalibISOV2->iso;
267 pISO->noise_curve_x00 = pCalibISOV2->noise_curve_x00;
268 for(int k = 0; k < 5; k++) {
269 pISO->noise_curve[k] = pCalibISOV2->noise_curve[k];
270 }
271 for(int k = 0; k < 4; k++) {
272 pISO->y_lo_noiseprofile[k] = pCalibISOV2->y_lo_noiseprofile[k];
273 pISO->y_hi_noiseprofile[k] = pCalibISOV2->y_hi_noiseprofile[k];
274 }
275 for(int k = 0; k < 3; k++) {
276 pISO->uv_lo_noiseprofile[k] = pCalibISOV2->uv_lo_noiseprofile[k];
277 pISO->uv_hi_noiseprofile[k] = pCalibISOV2->uv_hi_noiseprofile[k];
278 }
279
280 //tuning
281 pISO->iso = pTuningISOV2->iso;
282 pISO->weight_limit_y[0] = pTuningISOV2->weight_limit_y_0;
283 pISO->weight_limit_y[1] = pTuningISOV2->weight_limit_y_1;
284 pISO->weight_limit_y[2] = pTuningISOV2->weight_limit_y_2;
285 pISO->weight_limit_y[3] = pTuningISOV2->weight_limit_y_3;
286
287 pISO->weight_limit_uv[0] = pTuningISOV2->weight_limit_uv_0;
288 pISO->weight_limit_uv[1] = pTuningISOV2->weight_limit_uv_1;
289 pISO->weight_limit_uv[2] = pTuningISOV2->weight_limit_uv_2;
290
291 pISO->ratio_frq[0] = pTuningISOV2->ratio_frq_y_l;
292 pISO->ratio_frq[1] = pTuningISOV2->ratio_frq_y_h;
293 pISO->ratio_frq[2] = pTuningISOV2->ratio_frq_uv_l;
294 pISO->ratio_frq[3] = pTuningISOV2->ratio_frq_uv_h;
295
296 pISO->luma_w_in_chroma[0] = pTuningISOV2->luma_w_in_chroma_0;
297 pISO->luma_w_in_chroma[1] = pTuningISOV2->luma_w_in_chroma_1;
298 pISO->luma_w_in_chroma[2] = pTuningISOV2->luma_w_in_chroma_2;
299
300 pISO->y_lo_bfscale[0] = pTuningISOV2->y_lo_bfscale_0;
301 pISO->y_lo_bfscale[1] = pTuningISOV2->y_lo_bfscale_1;
302 pISO->y_lo_bfscale[2] = pTuningISOV2->y_lo_bfscale_2;
303 pISO->y_lo_bfscale[3] = pTuningISOV2->y_lo_bfscale_3;
304
305 pISO->y_hi_bfscale[0] = pTuningISOV2->y_hi_bfscale_0;
306 pISO->y_hi_bfscale[1] = pTuningISOV2->y_hi_bfscale_1;
307 pISO->y_hi_bfscale[2] = pTuningISOV2->y_hi_bfscale_2;
308 pISO->y_hi_bfscale[3] = pTuningISOV2->y_hi_bfscale_3;
309
310 pISO->y_denoisestrength = pTuningISOV2->y_denoisestrength;
311
312 pISO->uv_lo_bfscale[0] = pTuningISOV2->uv_lo_bfscale_0;
313 pISO->uv_lo_bfscale[1] = pTuningISOV2->uv_lo_bfscale_1;
314 pISO->uv_lo_bfscale[2] = pTuningISOV2->uv_lo_bfscale_2;
315
316 pISO->uv_hi_bfscale[0] = pTuningISOV2->uv_hi_bfscale_0;
317 pISO->uv_hi_bfscale[1] = pTuningISOV2->uv_hi_bfscale_1;
318 pISO->uv_hi_bfscale[2] = pTuningISOV2->uv_hi_bfscale_2;
319
320 pISO->uv_denoisestrength = pTuningISOV2->uv_denoisestrength;
321
322 for(int k = 0; k < 6; k++) {
323 pISO->y_lumanrpoint[k] = pTuningISOV2->luma_para.y_lumanrpoint[k];
324 pISO->y_lumanrcurve[k] = pTuningISOV2->luma_para.y_lumanrcurve[k];
325 pISO->uv_lumanrpoint[k] = pTuningISOV2->luma_para.uv_lumanrpoint[k];
326 pISO->uv_lumanrcurve[k] = pTuningISOV2->luma_para.uv_lumanrcurve[k];
327 }
328
329 for(int k = 0; k < 6; k++) {
330 pISO->y_lo_lvl0_gfdelta[k] = pTuningISOV2->y_gfdelta_para.y_lo_lvl0_gfdelta[k];
331 pISO->y_hi_lvl0_gfdelta[k] = pTuningISOV2->y_gfdelta_para.y_hi_lvl0_gfdelta[k];
332 pISO->uv_lo_lvl0_gfdelta[k] = pTuningISOV2->uv_gfdelta_para.uv_lo_lvl0_gfdelta[k];
333 pISO->uv_hi_lvl0_gfdelta[k] = pTuningISOV2->uv_gfdelta_para.uv_hi_lvl0_gfdelta[k];
334 pISO->lvl0_gfsigma[k] = pTuningISOV2->gfsigma_para.lvl0_gfsigma[k];
335 }
336
337 for(int k = 0; k < 3; k++) {
338 pISO->y_lo_lvl1_gfdelta[k] = pTuningISOV2->y_gfdelta_para.y_lo_lvl1_gfdelta[k];
339 pISO->y_hi_lvl1_gfdelta[k] = pTuningISOV2->y_gfdelta_para.y_hi_lvl1_gfdelta[k];
340 pISO->y_lo_lvl2_gfdelta[k] = pTuningISOV2->y_gfdelta_para.y_lo_lvl2_gfdelta[k];
341 pISO->y_hi_lvl2_gfdelta[k] = pTuningISOV2->y_gfdelta_para.y_hi_lvl2_gfdelta[k];
342 pISO->y_lo_lvl3_gfdelta[k] = pTuningISOV2->y_gfdelta_para.y_lo_lvl3_gfdelta[k];
343 pISO->y_hi_lvl3_gfdelta[k] = pTuningISOV2->y_gfdelta_para.y_hi_lvl3_gfdelta[k];
344 }
345
346 for(int k = 0; k < 3; k++) {
347 pISO->uv_lo_lvl1_gfdelta[k] = pTuningISOV2->uv_gfdelta_para.uv_lo_lvl1_gfdelta[k];
348 pISO->uv_hi_lvl1_gfdelta[k] = pTuningISOV2->uv_gfdelta_para.uv_hi_lvl1_gfdelta[k];
349 pISO->uv_lo_lvl2_gfdelta[k] = pTuningISOV2->uv_gfdelta_para.uv_lo_lvl2_gfdelta[k];
350 pISO->uv_hi_lvl2_gfdelta[k] = pTuningISOV2->uv_gfdelta_para.uv_hi_lvl2_gfdelta[k];
351 }
352
353 for(int k = 0; k < 3; k++) {
354 pISO->lvl1_gfsigma[k] = pTuningISOV2->gfsigma_para.lvl1_gfsigma[k];
355 pISO->lvl2_gfsigma[k] = pTuningISOV2->gfsigma_para.lvl2_gfsigma[k];
356 pISO->lvl3_gfsigma[k] = pTuningISOV2->gfsigma_para.lvl3_gfsigma[k];
357 }
358 }
359 }
360
361
362 //motion
363 pMotion = &pCalibdb->mode_cell[mode_idx].motion;
364 pMotion->enable = pTuningParaV2->enable;
365 for(int i = 0; i < MFNRV1_ISO_NUM; i++) {
366 pMotionISOV2 = &pCalibdbV2->TuningPara.Motion.Motion_ISO[i];
367 pMotion->iso[i] = pMotionISOV2->iso;
368 pMotion->sigmaHScale[i] = pMotionISOV2->sigmaHScale;
369 pMotion->sigmaLScale[i] = pMotionISOV2->sigmaLScale;
370 pMotion->lightClp[i] = pMotionISOV2->lightClp;
371 pMotion->uvWeight[i] = pMotionISOV2->uvWeight;
372 pMotion->mfnrSigmaScale[i] = pMotionISOV2->mfnrSigmaScale;
373 pMotion->yuvnrGainScale0[i] = pMotionISOV2->yuvnrGainScale0;
374 pMotion->yuvnrGainScale1[i] = pMotionISOV2->yuvnrGainScale1;
375 pMotion->yuvnrGainScale2[i] = pMotionISOV2->yuvnrGainScale2;
376 pMotion->frame_limit_y[i] = pMotionISOV2->frame_limit_y;
377 pMotion->frame_limit_uv[i] = pMotionISOV2->frame_limit_uv;
378 }
379
380 //dynamic
381 pDynamic = &pCalibdb->mode_cell[mode_idx].dynamic;
382 pDynamicV2 = &pCalibdbV2->TuningPara.Dynamic;
383 pDynamic->enable = pDynamicV2->Enable;
384 pDynamic->lowth_iso = pDynamicV2->LowTh_iso;
385 pDynamic->lowth_time = pDynamicV2->LowTh_time;
386 pDynamic->highth_iso = pDynamicV2->HighTh_iso;
387 pDynamic->highth_time = pDynamicV2->HighTh_time;
388
389 return 0;
390
391 }
392
393
mfnrV1_calibdbV2_free(CalibDbV2_MFNR_t * pCalibdbV2)394 void mfnrV1_calibdbV2_free(CalibDbV2_MFNR_t *pCalibdbV2)
395 {
396 if(pCalibdbV2) {
397 if(pCalibdbV2->Version) {
398 free(pCalibdbV2->Version);
399 }
400
401 if(pCalibdbV2->CalibPara.Setting) {
402 for(int i = 0; i < pCalibdbV2->CalibPara.Setting_len; i++) {
403 if(pCalibdbV2->CalibPara.Setting[i].Calib_ISO) {
404 if(pCalibdbV2->CalibPara.Setting[i].Calib_ISO) {
405 free(pCalibdbV2->CalibPara.Setting[i].Calib_ISO);
406 }
407 if(pCalibdbV2->CalibPara.Setting[i].SNR_Mode) {
408 free(pCalibdbV2->CalibPara.Setting[i].SNR_Mode);
409 }
410 if(pCalibdbV2->CalibPara.Setting[i].Sensor_Mode) {
411 free(pCalibdbV2->CalibPara.Setting[i].Sensor_Mode);
412 }
413 }
414 }
415 free(pCalibdbV2->CalibPara.Setting);
416 }
417
418
419 if(pCalibdbV2->TuningPara.Setting) {
420 for(int i = 0; i < pCalibdbV2->TuningPara.Setting_len; i++) {
421 if(pCalibdbV2->TuningPara.Setting[i].Tuning_ISO) {
422 if(pCalibdbV2->TuningPara.Setting[i].Tuning_ISO) {
423 free(pCalibdbV2->TuningPara.Setting[i].Tuning_ISO);
424 }
425 if(pCalibdbV2->TuningPara.Setting[i].SNR_Mode) {
426 free(pCalibdbV2->TuningPara.Setting[i].SNR_Mode);
427 }
428 if(pCalibdbV2->TuningPara.Setting[i].Sensor_Mode) {
429 free(pCalibdbV2->TuningPara.Setting[i].Sensor_Mode);
430 }
431 }
432 }
433 free(pCalibdbV2->TuningPara.Setting);
434 }
435
436 if(pCalibdbV2->TuningPara.Motion.Motion_ISO) {
437 free(pCalibdbV2->TuningPara.Motion.Motion_ISO);
438 }
439
440 free(pCalibdbV2);
441 }
442 }
443
444