#include "mfnr_xml2json_v1.h"
|
|
#define MFNRV1_SETTING_NUM (2)
|
#define MFNRV1_ISO_NUM (13)
|
|
|
|
int mfnrV1_calibdb_to_calibdbV2(const CalibDb_MFNR_2_t *pCalibdb, CalibDbV2_MFNR_t *pCalibdbV2, int mode_idx)
|
{
|
CalibDbV2_MFNR_CalibPara_t *pCalibParaV2 = NULL;
|
CalibDbV2_MFNR_TuningPara_t *pTuningParaV2 = NULL;
|
CalibDbV2_MFNR_CalibPara_Setting_ISO_t *pCalibISOV2 = NULL;
|
CalibDbV2_MFNR_TuningPara_Setting_ISO_t *pTuningISOV2 = NULL;
|
CalibDbV2_MFNR_TuningPara_Motion_ISO_t *pMotionISOV2 = NULL;
|
CalibDbV2_MFNR_TuningPara_Dynamic_t *pDynamicV2 = NULL;
|
CalibDb_MFNR_Setting_t *pSetting = NULL;
|
CalibDb_MFNR_Dynamic_t *pDynamic = NULL;
|
CalibDb_MFNR_Motion_t *pMotion = NULL;
|
struct CalibDb_MFNR_ISO_s *pISO = NULL;
|
|
if(pCalibdb == NULL) {
|
printf(" pCalibdb is NULL pointer\n");
|
return -1;
|
}
|
|
if(pCalibdbV2 == NULL) {
|
printf(" pCalibdbV2 is NULL pointer\n");
|
return -1;
|
}
|
|
if(pCalibdb->mode_num < mode_idx) {
|
printf(" old xml file have no %d mode cell \n", mode_idx);
|
return -1;
|
}
|
|
pCalibParaV2 = &pCalibdbV2->CalibPara;
|
pTuningParaV2 = &pCalibdbV2->TuningPara;
|
|
//malloc settting size
|
pCalibParaV2->Setting = (CalibDbV2_MFNR_CalibPara_Setting_t *)malloc(MFNRV1_SETTING_NUM * sizeof(CalibDbV2_MFNR_CalibPara_Setting_t));
|
memset(pCalibParaV2->Setting, 0x00, MFNRV1_SETTING_NUM * sizeof(CalibDbV2_MFNR_CalibPara_Setting_t));
|
pCalibParaV2->Setting_len = MFNRV1_SETTING_NUM;
|
pTuningParaV2->Setting = (CalibDbV2_MFNR_TuningPara_Setting_t *)malloc(MFNRV1_SETTING_NUM * sizeof(CalibDbV2_MFNR_TuningPara_Setting_t));
|
memset(pTuningParaV2->Setting, 0x00, MFNRV1_SETTING_NUM * sizeof(CalibDbV2_MFNR_TuningPara_Setting_t));
|
pTuningParaV2->Setting_len = MFNRV1_SETTING_NUM;
|
|
//malloc iso size
|
for(int i = 0; i < pTuningParaV2->Setting_len; i++) {
|
pCalibParaV2->Setting[i].Calib_ISO = (CalibDbV2_MFNR_CalibPara_Setting_ISO_t *)malloc(MFNRV1_ISO_NUM * sizeof(CalibDbV2_MFNR_CalibPara_Setting_ISO_t));
|
memset(pCalibParaV2->Setting[i].Calib_ISO, 0x00, MFNRV1_ISO_NUM * sizeof(CalibDbV2_MFNR_CalibPara_Setting_ISO_t));
|
pCalibParaV2->Setting[i].Calib_ISO_len = MFNRV1_ISO_NUM;
|
pTuningParaV2->Setting[i].Tuning_ISO = (CalibDbV2_MFNR_TuningPara_Setting_ISO_t *)malloc(MFNRV1_ISO_NUM * sizeof(CalibDbV2_MFNR_TuningPara_Setting_ISO_t));
|
memset(pTuningParaV2->Setting[i].Tuning_ISO, 0x00, MFNRV1_ISO_NUM * sizeof(CalibDbV2_MFNR_TuningPara_Setting_ISO_t));
|
pTuningParaV2->Setting[i].Tuning_ISO_len = MFNRV1_ISO_NUM;
|
}
|
pTuningParaV2->Motion.Motion_ISO = (CalibDbV2_MFNR_TuningPara_Motion_ISO_t *)malloc(MFNRV1_ISO_NUM * sizeof(CalibDbV2_MFNR_TuningPara_Motion_ISO_t));
|
memset(pTuningParaV2->Motion.Motion_ISO, 0x00, MFNRV1_ISO_NUM * sizeof(CalibDbV2_MFNR_TuningPara_Motion_ISO_t));
|
pTuningParaV2->Motion.Motion_ISO_len = MFNRV1_ISO_NUM;
|
|
//assign the value
|
pCalibdbV2->Version = strdup(pCalibdb->version);
|
|
pTuningParaV2->enable = pCalibdb->enable;
|
pTuningParaV2->local_gain_en = pCalibdb->local_gain_en;
|
pTuningParaV2->mode_3to1 = pCalibdb->mode_3to1;
|
pTuningParaV2->motion_detect_en = pCalibdb->motion_detect_en;
|
|
for(int i = 0; i < MFNRV1_SETTING_NUM; i++) {
|
pSetting = &pCalibdb->mode_cell[mode_idx].setting[i];
|
|
pCalibParaV2->Setting[i].SNR_Mode = strdup(pSetting->snr_mode);
|
pCalibParaV2->Setting[i].Sensor_Mode = strdup(pSetting->sensor_mode);
|
pTuningParaV2->Setting[i].SNR_Mode = strdup( pSetting->snr_mode);
|
pTuningParaV2->Setting[i].Sensor_Mode = strdup( pSetting->sensor_mode);
|
|
for(int j = 0; j < MFNRV1_ISO_NUM; j++) {
|
pSetting = &pCalibdb->mode_cell[mode_idx].setting[i];
|
pCalibISOV2 = &pCalibParaV2->Setting[i].Calib_ISO[j];
|
pTuningISOV2 = &pTuningParaV2->Setting[i].Tuning_ISO[j];
|
pISO = &pSetting->mfnr_iso[j];
|
|
//calib
|
pCalibISOV2->iso = pISO->iso;
|
pCalibISOV2->noise_curve_x00 = pISO->noise_curve_x00;
|
for(int k = 0; k < 5; k++) {
|
pCalibISOV2->noise_curve[k] = pISO->noise_curve[k];
|
}
|
for(int k = 0; k < 4; k++) {
|
pCalibISOV2->y_lo_noiseprofile[k] = pISO->y_lo_noiseprofile[k];
|
pCalibISOV2->y_hi_noiseprofile[k] = pISO->y_hi_noiseprofile[k];
|
}
|
for(int k = 0; k < 3; k++) {
|
pCalibISOV2->uv_lo_noiseprofile[k] = pISO->uv_lo_noiseprofile[k];
|
pCalibISOV2->uv_hi_noiseprofile[k] = pISO->uv_hi_noiseprofile[k];
|
}
|
|
//tuning
|
pTuningISOV2->iso = pISO->iso;
|
pTuningISOV2->weight_limit_y_0 = pISO->weight_limit_y[0];
|
pTuningISOV2->weight_limit_y_1 = pISO->weight_limit_y[1];
|
pTuningISOV2->weight_limit_y_2 = pISO->weight_limit_y[2];
|
pTuningISOV2->weight_limit_y_3 = pISO->weight_limit_y[3];
|
|
pTuningISOV2->weight_limit_uv_0 = pISO->weight_limit_uv[0];
|
pTuningISOV2->weight_limit_uv_1 = pISO->weight_limit_uv[1];
|
pTuningISOV2->weight_limit_uv_2 = pISO->weight_limit_uv[2];
|
|
pTuningISOV2->ratio_frq_y_l = pISO->ratio_frq[0];
|
pTuningISOV2->ratio_frq_y_h = pISO->ratio_frq[1];
|
pTuningISOV2->ratio_frq_uv_l = pISO->ratio_frq[2];
|
pTuningISOV2->ratio_frq_uv_h = pISO->ratio_frq[3];
|
|
pTuningISOV2->luma_w_in_chroma_0 = pISO->luma_w_in_chroma[0];
|
pTuningISOV2->luma_w_in_chroma_1 = pISO->luma_w_in_chroma[1];
|
pTuningISOV2->luma_w_in_chroma_2 = pISO->luma_w_in_chroma[2];
|
|
pTuningISOV2->y_lo_bfscale_0 = pISO->y_lo_bfscale[0];
|
pTuningISOV2->y_lo_bfscale_1 = pISO->y_lo_bfscale[1];
|
pTuningISOV2->y_lo_bfscale_2 = pISO->y_lo_bfscale[2];
|
pTuningISOV2->y_lo_bfscale_3 = pISO->y_lo_bfscale[3];
|
|
pTuningISOV2->y_hi_bfscale_0 = pISO->y_hi_bfscale[0];
|
pTuningISOV2->y_hi_bfscale_1 = pISO->y_hi_bfscale[1];
|
pTuningISOV2->y_hi_bfscale_2 = pISO->y_hi_bfscale[2];
|
pTuningISOV2->y_hi_bfscale_3 = pISO->y_hi_bfscale[3];
|
|
pTuningISOV2->y_denoisestrength = pISO->y_denoisestrength;
|
|
pTuningISOV2->uv_lo_bfscale_0 = pISO->uv_lo_bfscale[0];
|
pTuningISOV2->uv_lo_bfscale_1 = pISO->uv_lo_bfscale[1];
|
pTuningISOV2->uv_lo_bfscale_2 = pISO->uv_lo_bfscale[2];
|
|
pTuningISOV2->uv_hi_bfscale_0 = pISO->uv_hi_bfscale[0];
|
pTuningISOV2->uv_hi_bfscale_1 = pISO->uv_hi_bfscale[1];
|
pTuningISOV2->uv_hi_bfscale_2 = pISO->uv_hi_bfscale[2];
|
|
pTuningISOV2->uv_denoisestrength = pISO->uv_denoisestrength;
|
|
for(int k = 0; k < 6; k++) {
|
pTuningISOV2->luma_para.y_lumanrpoint[k] = pISO->y_lumanrpoint[k];
|
pTuningISOV2->luma_para.y_lumanrcurve[k] = pISO->y_lumanrcurve[k];
|
pTuningISOV2->luma_para.uv_lumanrpoint[k] = pISO->uv_lumanrpoint[k];
|
pTuningISOV2->luma_para.uv_lumanrcurve[k] = pISO->uv_lumanrcurve[k];
|
}
|
|
for(int k = 0; k < 6; k++) {
|
pTuningISOV2->y_gfdelta_para.y_lo_lvl0_gfdelta[k] = pISO->y_lo_lvl0_gfdelta[k];
|
pTuningISOV2->y_gfdelta_para.y_hi_lvl0_gfdelta[k] = pISO->y_hi_lvl0_gfdelta[k];
|
pTuningISOV2->uv_gfdelta_para.uv_lo_lvl0_gfdelta[k] = pISO->uv_lo_lvl0_gfdelta[k];
|
pTuningISOV2->uv_gfdelta_para.uv_hi_lvl0_gfdelta[k] = pISO->uv_hi_lvl0_gfdelta[k];
|
pTuningISOV2->gfsigma_para.lvl0_gfsigma[k] = pISO->lvl0_gfsigma[k];
|
}
|
|
for(int k = 0; k < 3; k++) {
|
pTuningISOV2->y_gfdelta_para.y_lo_lvl1_gfdelta[k] = pISO->y_lo_lvl1_gfdelta[k];
|
pTuningISOV2->y_gfdelta_para.y_hi_lvl1_gfdelta[k] = pISO->y_hi_lvl1_gfdelta[k];
|
pTuningISOV2->y_gfdelta_para.y_lo_lvl2_gfdelta[k] = pISO->y_lo_lvl2_gfdelta[k];
|
pTuningISOV2->y_gfdelta_para.y_hi_lvl2_gfdelta[k] = pISO->y_hi_lvl2_gfdelta[k];
|
pTuningISOV2->y_gfdelta_para.y_lo_lvl3_gfdelta[k] = pISO->y_lo_lvl3_gfdelta[k];
|
pTuningISOV2->y_gfdelta_para.y_hi_lvl3_gfdelta[k] = pISO->y_hi_lvl3_gfdelta[k];
|
}
|
|
for(int k = 0; k < 3; k++) {
|
pTuningISOV2->uv_gfdelta_para.uv_lo_lvl1_gfdelta[k] = pISO->uv_lo_lvl1_gfdelta[k];
|
pTuningISOV2->uv_gfdelta_para.uv_hi_lvl1_gfdelta[k] = pISO->uv_hi_lvl1_gfdelta[k];
|
pTuningISOV2->uv_gfdelta_para.uv_lo_lvl2_gfdelta[k] = pISO->uv_lo_lvl2_gfdelta[k];
|
pTuningISOV2->uv_gfdelta_para.uv_hi_lvl2_gfdelta[k] = pISO->uv_hi_lvl2_gfdelta[k];
|
}
|
|
for(int k = 0; k < 3; k++) {
|
pTuningISOV2->gfsigma_para.lvl1_gfsigma[k] = pISO->lvl1_gfsigma[k];
|
pTuningISOV2->gfsigma_para.lvl2_gfsigma[k] = pISO->lvl2_gfsigma[k];
|
pTuningISOV2->gfsigma_para.lvl3_gfsigma[k] = pISO->lvl3_gfsigma[k];
|
}
|
}
|
}
|
|
|
//motion
|
pMotion = &pCalibdb->mode_cell[mode_idx].motion;
|
for(int i = 0; i < MFNRV1_ISO_NUM; i++) {
|
pMotionISOV2 = &pCalibdbV2->TuningPara.Motion.Motion_ISO[i];
|
pMotionISOV2->iso = pMotion->iso[i];
|
pMotionISOV2->sigmaHScale = pMotion->sigmaHScale[i];
|
pMotionISOV2->sigmaLScale = pMotion->sigmaLScale[i];
|
pMotionISOV2->lightClp = pMotion->lightClp[i];
|
pMotionISOV2->uvWeight = pMotion->uvWeight[i];
|
pMotionISOV2->mfnrSigmaScale = pMotion->mfnrSigmaScale[i];
|
pMotionISOV2->yuvnrGainScale0 = pMotion->yuvnrGainScale0[i];
|
pMotionISOV2->yuvnrGainScale1 = pMotion->yuvnrGainScale1[i];
|
pMotionISOV2->yuvnrGainScale2 = pMotion->yuvnrGainScale2[i];
|
pMotionISOV2->frame_limit_y = pMotion->frame_limit_y[i];
|
pMotionISOV2->frame_limit_uv = pMotion->frame_limit_uv[i];
|
}
|
|
//dynamic
|
pDynamic = &pCalibdb->mode_cell[mode_idx].dynamic;
|
pDynamicV2 = &pCalibdbV2->TuningPara.Dynamic;
|
pDynamicV2->Enable = pDynamic->enable;
|
pDynamicV2->LowTh_iso = pDynamic->lowth_iso;
|
pDynamicV2->LowTh_time = pDynamic->lowth_time;
|
pDynamicV2->HighTh_iso = pDynamic->highth_iso;
|
pDynamicV2->HighTh_time = pDynamic->highth_time;
|
|
return 0;
|
|
}
|
|
|
|
|
|
int mfnrV1_calibdbV2_to_calibdb(CalibDbV2_MFNR_t *pCalibdbV2, CalibDb_MFNR_2_t *pCalibdb, int mode_idx)
|
{
|
CalibDbV2_MFNR_CalibPara_t *pCalibParaV2 = NULL;
|
CalibDbV2_MFNR_TuningPara_t *pTuningParaV2 = NULL;
|
CalibDbV2_MFNR_CalibPara_Setting_ISO_t *pCalibISOV2 = NULL;
|
CalibDbV2_MFNR_TuningPara_Setting_ISO_t *pTuningISOV2 = NULL;
|
CalibDbV2_MFNR_TuningPara_Motion_ISO_t *pMotionISOV2 = NULL;
|
CalibDbV2_MFNR_TuningPara_Dynamic_t *pDynamicV2 = NULL;
|
CalibDb_MFNR_Setting_t *pSetting = NULL;
|
CalibDb_MFNR_Dynamic_t *pDynamic = NULL;
|
CalibDb_MFNR_Motion_t *pMotion = NULL;
|
struct CalibDb_MFNR_ISO_s *pISO = NULL;
|
|
if(pCalibdb == NULL) {
|
printf(" pCalibdb is NULL pointer\n");
|
return -1;
|
}
|
|
if(pCalibdbV2 == NULL) {
|
printf(" pCalibdbV2 is NULL pointer\n");
|
return -1;
|
}
|
|
if(pCalibdb->mode_num < mode_idx) {
|
printf(" old xml file have no %d mode cell \n", mode_idx);
|
return -1;
|
}
|
|
pCalibParaV2 = &pCalibdbV2->CalibPara;
|
pTuningParaV2 = &pCalibdbV2->TuningPara;
|
|
|
//assign the value
|
strcpy(pCalibdb->version, pCalibdbV2->Version);
|
|
pCalibdb->enable = pTuningParaV2->enable;
|
pCalibdb->local_gain_en = pTuningParaV2->local_gain_en;
|
pCalibdb->mode_3to1 = pTuningParaV2->mode_3to1;
|
pCalibdb->motion_detect_en = pTuningParaV2->motion_detect_en;
|
|
for(int i = 0; i < pTuningParaV2->Setting_len; i++) {
|
pSetting = &pCalibdb->mode_cell[mode_idx].setting[i];
|
|
strcpy(pSetting->snr_mode, pTuningParaV2->Setting[i].SNR_Mode);
|
strcpy( pSetting->sensor_mode, pTuningParaV2->Setting[i].Sensor_Mode);
|
|
for(int j = 0; j < MFNRV1_ISO_NUM; j++) {
|
pSetting = &pCalibdb->mode_cell[mode_idx].setting[i];
|
pCalibISOV2 = &pCalibParaV2->Setting[i].Calib_ISO[j];
|
pTuningISOV2 = &pTuningParaV2->Setting[i].Tuning_ISO[j];
|
pISO = &pSetting->mfnr_iso[j];
|
|
//calib
|
pISO->iso = pCalibISOV2->iso;
|
pISO->noise_curve_x00 = pCalibISOV2->noise_curve_x00;
|
for(int k = 0; k < 5; k++) {
|
pISO->noise_curve[k] = pCalibISOV2->noise_curve[k];
|
}
|
for(int k = 0; k < 4; k++) {
|
pISO->y_lo_noiseprofile[k] = pCalibISOV2->y_lo_noiseprofile[k];
|
pISO->y_hi_noiseprofile[k] = pCalibISOV2->y_hi_noiseprofile[k];
|
}
|
for(int k = 0; k < 3; k++) {
|
pISO->uv_lo_noiseprofile[k] = pCalibISOV2->uv_lo_noiseprofile[k];
|
pISO->uv_hi_noiseprofile[k] = pCalibISOV2->uv_hi_noiseprofile[k];
|
}
|
|
//tuning
|
pISO->iso = pTuningISOV2->iso;
|
pISO->weight_limit_y[0] = pTuningISOV2->weight_limit_y_0;
|
pISO->weight_limit_y[1] = pTuningISOV2->weight_limit_y_1;
|
pISO->weight_limit_y[2] = pTuningISOV2->weight_limit_y_2;
|
pISO->weight_limit_y[3] = pTuningISOV2->weight_limit_y_3;
|
|
pISO->weight_limit_uv[0] = pTuningISOV2->weight_limit_uv_0;
|
pISO->weight_limit_uv[1] = pTuningISOV2->weight_limit_uv_1;
|
pISO->weight_limit_uv[2] = pTuningISOV2->weight_limit_uv_2;
|
|
pISO->ratio_frq[0] = pTuningISOV2->ratio_frq_y_l;
|
pISO->ratio_frq[1] = pTuningISOV2->ratio_frq_y_h;
|
pISO->ratio_frq[2] = pTuningISOV2->ratio_frq_uv_l;
|
pISO->ratio_frq[3] = pTuningISOV2->ratio_frq_uv_h;
|
|
pISO->luma_w_in_chroma[0] = pTuningISOV2->luma_w_in_chroma_0;
|
pISO->luma_w_in_chroma[1] = pTuningISOV2->luma_w_in_chroma_1;
|
pISO->luma_w_in_chroma[2] = pTuningISOV2->luma_w_in_chroma_2;
|
|
pISO->y_lo_bfscale[0] = pTuningISOV2->y_lo_bfscale_0;
|
pISO->y_lo_bfscale[1] = pTuningISOV2->y_lo_bfscale_1;
|
pISO->y_lo_bfscale[2] = pTuningISOV2->y_lo_bfscale_2;
|
pISO->y_lo_bfscale[3] = pTuningISOV2->y_lo_bfscale_3;
|
|
pISO->y_hi_bfscale[0] = pTuningISOV2->y_hi_bfscale_0;
|
pISO->y_hi_bfscale[1] = pTuningISOV2->y_hi_bfscale_1;
|
pISO->y_hi_bfscale[2] = pTuningISOV2->y_hi_bfscale_2;
|
pISO->y_hi_bfscale[3] = pTuningISOV2->y_hi_bfscale_3;
|
|
pISO->y_denoisestrength = pTuningISOV2->y_denoisestrength;
|
|
pISO->uv_lo_bfscale[0] = pTuningISOV2->uv_lo_bfscale_0;
|
pISO->uv_lo_bfscale[1] = pTuningISOV2->uv_lo_bfscale_1;
|
pISO->uv_lo_bfscale[2] = pTuningISOV2->uv_lo_bfscale_2;
|
|
pISO->uv_hi_bfscale[0] = pTuningISOV2->uv_hi_bfscale_0;
|
pISO->uv_hi_bfscale[1] = pTuningISOV2->uv_hi_bfscale_1;
|
pISO->uv_hi_bfscale[2] = pTuningISOV2->uv_hi_bfscale_2;
|
|
pISO->uv_denoisestrength = pTuningISOV2->uv_denoisestrength;
|
|
for(int k = 0; k < 6; k++) {
|
pISO->y_lumanrpoint[k] = pTuningISOV2->luma_para.y_lumanrpoint[k];
|
pISO->y_lumanrcurve[k] = pTuningISOV2->luma_para.y_lumanrcurve[k];
|
pISO->uv_lumanrpoint[k] = pTuningISOV2->luma_para.uv_lumanrpoint[k];
|
pISO->uv_lumanrcurve[k] = pTuningISOV2->luma_para.uv_lumanrcurve[k];
|
}
|
|
for(int k = 0; k < 6; k++) {
|
pISO->y_lo_lvl0_gfdelta[k] = pTuningISOV2->y_gfdelta_para.y_lo_lvl0_gfdelta[k];
|
pISO->y_hi_lvl0_gfdelta[k] = pTuningISOV2->y_gfdelta_para.y_hi_lvl0_gfdelta[k];
|
pISO->uv_lo_lvl0_gfdelta[k] = pTuningISOV2->uv_gfdelta_para.uv_lo_lvl0_gfdelta[k];
|
pISO->uv_hi_lvl0_gfdelta[k] = pTuningISOV2->uv_gfdelta_para.uv_hi_lvl0_gfdelta[k];
|
pISO->lvl0_gfsigma[k] = pTuningISOV2->gfsigma_para.lvl0_gfsigma[k];
|
}
|
|
for(int k = 0; k < 3; k++) {
|
pISO->y_lo_lvl1_gfdelta[k] = pTuningISOV2->y_gfdelta_para.y_lo_lvl1_gfdelta[k];
|
pISO->y_hi_lvl1_gfdelta[k] = pTuningISOV2->y_gfdelta_para.y_hi_lvl1_gfdelta[k];
|
pISO->y_lo_lvl2_gfdelta[k] = pTuningISOV2->y_gfdelta_para.y_lo_lvl2_gfdelta[k];
|
pISO->y_hi_lvl2_gfdelta[k] = pTuningISOV2->y_gfdelta_para.y_hi_lvl2_gfdelta[k];
|
pISO->y_lo_lvl3_gfdelta[k] = pTuningISOV2->y_gfdelta_para.y_lo_lvl3_gfdelta[k];
|
pISO->y_hi_lvl3_gfdelta[k] = pTuningISOV2->y_gfdelta_para.y_hi_lvl3_gfdelta[k];
|
}
|
|
for(int k = 0; k < 3; k++) {
|
pISO->uv_lo_lvl1_gfdelta[k] = pTuningISOV2->uv_gfdelta_para.uv_lo_lvl1_gfdelta[k];
|
pISO->uv_hi_lvl1_gfdelta[k] = pTuningISOV2->uv_gfdelta_para.uv_hi_lvl1_gfdelta[k];
|
pISO->uv_lo_lvl2_gfdelta[k] = pTuningISOV2->uv_gfdelta_para.uv_lo_lvl2_gfdelta[k];
|
pISO->uv_hi_lvl2_gfdelta[k] = pTuningISOV2->uv_gfdelta_para.uv_hi_lvl2_gfdelta[k];
|
}
|
|
for(int k = 0; k < 3; k++) {
|
pISO->lvl1_gfsigma[k] = pTuningISOV2->gfsigma_para.lvl1_gfsigma[k];
|
pISO->lvl2_gfsigma[k] = pTuningISOV2->gfsigma_para.lvl2_gfsigma[k];
|
pISO->lvl3_gfsigma[k] = pTuningISOV2->gfsigma_para.lvl3_gfsigma[k];
|
}
|
}
|
}
|
|
|
//motion
|
pMotion = &pCalibdb->mode_cell[mode_idx].motion;
|
pMotion->enable = pTuningParaV2->enable;
|
for(int i = 0; i < MFNRV1_ISO_NUM; i++) {
|
pMotionISOV2 = &pCalibdbV2->TuningPara.Motion.Motion_ISO[i];
|
pMotion->iso[i] = pMotionISOV2->iso;
|
pMotion->sigmaHScale[i] = pMotionISOV2->sigmaHScale;
|
pMotion->sigmaLScale[i] = pMotionISOV2->sigmaLScale;
|
pMotion->lightClp[i] = pMotionISOV2->lightClp;
|
pMotion->uvWeight[i] = pMotionISOV2->uvWeight;
|
pMotion->mfnrSigmaScale[i] = pMotionISOV2->mfnrSigmaScale;
|
pMotion->yuvnrGainScale0[i] = pMotionISOV2->yuvnrGainScale0;
|
pMotion->yuvnrGainScale1[i] = pMotionISOV2->yuvnrGainScale1;
|
pMotion->yuvnrGainScale2[i] = pMotionISOV2->yuvnrGainScale2;
|
pMotion->frame_limit_y[i] = pMotionISOV2->frame_limit_y;
|
pMotion->frame_limit_uv[i] = pMotionISOV2->frame_limit_uv;
|
}
|
|
//dynamic
|
pDynamic = &pCalibdb->mode_cell[mode_idx].dynamic;
|
pDynamicV2 = &pCalibdbV2->TuningPara.Dynamic;
|
pDynamic->enable = pDynamicV2->Enable;
|
pDynamic->lowth_iso = pDynamicV2->LowTh_iso;
|
pDynamic->lowth_time = pDynamicV2->LowTh_time;
|
pDynamic->highth_iso = pDynamicV2->HighTh_iso;
|
pDynamic->highth_time = pDynamicV2->HighTh_time;
|
|
return 0;
|
|
}
|
|
|
void mfnrV1_calibdbV2_free(CalibDbV2_MFNR_t *pCalibdbV2)
|
{
|
if(pCalibdbV2) {
|
if(pCalibdbV2->Version) {
|
free(pCalibdbV2->Version);
|
}
|
|
if(pCalibdbV2->CalibPara.Setting) {
|
for(int i = 0; i < pCalibdbV2->CalibPara.Setting_len; i++) {
|
if(pCalibdbV2->CalibPara.Setting[i].Calib_ISO) {
|
if(pCalibdbV2->CalibPara.Setting[i].Calib_ISO) {
|
free(pCalibdbV2->CalibPara.Setting[i].Calib_ISO);
|
}
|
if(pCalibdbV2->CalibPara.Setting[i].SNR_Mode) {
|
free(pCalibdbV2->CalibPara.Setting[i].SNR_Mode);
|
}
|
if(pCalibdbV2->CalibPara.Setting[i].Sensor_Mode) {
|
free(pCalibdbV2->CalibPara.Setting[i].Sensor_Mode);
|
}
|
}
|
}
|
free(pCalibdbV2->CalibPara.Setting);
|
}
|
|
|
if(pCalibdbV2->TuningPara.Setting) {
|
for(int i = 0; i < pCalibdbV2->TuningPara.Setting_len; i++) {
|
if(pCalibdbV2->TuningPara.Setting[i].Tuning_ISO) {
|
if(pCalibdbV2->TuningPara.Setting[i].Tuning_ISO) {
|
free(pCalibdbV2->TuningPara.Setting[i].Tuning_ISO);
|
}
|
if(pCalibdbV2->TuningPara.Setting[i].SNR_Mode) {
|
free(pCalibdbV2->TuningPara.Setting[i].SNR_Mode);
|
}
|
if(pCalibdbV2->TuningPara.Setting[i].Sensor_Mode) {
|
free(pCalibdbV2->TuningPara.Setting[i].Sensor_Mode);
|
}
|
}
|
}
|
free(pCalibdbV2->TuningPara.Setting);
|
}
|
|
if(pCalibdbV2->TuningPara.Motion.Motion_ISO) {
|
free(pCalibdbV2->TuningPara.Motion.Motion_ISO);
|
}
|
|
free(pCalibdbV2);
|
}
|
}
|