1 #ifndef _RK_AIQ_CALIB_TYPES_ISP21_H_ 2 #define _RK_AIQ_CALIB_TYPES_ISP21_H_ 3 4 #include "RkAiqCalibDbTypesIsp20.h" 5 6 #pragma pack(4) 7 8 #define ISP21_DRC_Y_NUM 17 9 #define RK_BAYERNR_V2_MAX_ISO_NUM (CALIBDB_MAX_ISO_LEVEL) 10 #define RK_YNR_V2_MAX_ISO_NUM (CALIBDB_MAX_ISO_LEVEL) 11 #define RK_CNR_V1_MAX_ISO_NUM (CALIBDB_MAX_ISO_LEVEL) 12 13 #define RK_SHARP_V3_MAX_ISO_NUM (CALIBDB_MAX_ISO_LEVEL) 14 #define RK_SHARP_V3_LUMA_POINT_NUM (8) 15 16 #define CALD_AEC_GAIN_RANGE_MAX_LEN 350 17 18 typedef struct { 19 int time_update; 20 int gain_update; 21 int dcg_update; 22 } CalibDb_ExpUpdate_t; 23 24 typedef struct CalibDb_CISTimeSet_s { 25 char name[20]; 26 Cam2x1FloatMatrix_t CISHdrTimeRegSumFac; 27 Cam2x1FloatMatrix_t CISLinTimeRegMaxFac; 28 uint16_t CISTimeRegMin; 29 Cam1x3ShortMatrix_t CISTimeRegMax; //specially for Hdr that has limit on sframe/mframe, requiring max time line.value 0: no limit 30 Cam2x1FloatMatrix_t CISTimeRegOdevity; 31 uint8_t CISTimeRegUnEqualEn; 32 } CalibDb_CISTimeSet_t; 33 34 typedef struct { 35 unsigned char hdr_en; 36 rk_aiq_isp_hdr_mode_t hdr_mode; 37 rk_aiq_sensor_hdr_line_mode_t line_mode; 38 } CalibDb_CISHdrSet_t; 39 40 typedef struct CalibDb_CISTimeSet_comb_s { 41 CalibDb_CISTimeSet_t Normal; 42 CalibDb_CISTimeSet_t Hdr[2]; 43 } CalibDb_CISTimeSet_comb_t; 44 45 typedef struct CalibDb_CISGainSet_s { 46 //CISGainSetting 47 CalibDb_AeRange_t CISAgainRange; //sensor Again or LCG range 48 CalibDb_AeRange_t CISExtraAgainRange; //add for HDR-DCG MODE, HCG range 49 CalibDb_AeRange_t CISDgainRange; //sensor Dgain 50 CalibDb_AeRange_t CISIspDgainRange; //Isp Dgain 51 uint8_t CISHdrGainIndSetEn; //bit 0:use the same value; bit 1: support use different gain value 52 } CalibDb_CISGainSet_t; 53 54 typedef struct { 55 CalibDb_ExpUpdate_t Hdr; 56 CalibDb_ExpUpdate_t Normal; 57 } CalibDb_ExpUpdate_comb_t; 58 59 typedef enum CalibDb_HdrFrmNum_e { 60 EXPSET_HDR_TWO_FRAME = 0, 61 EXPSET_HDR_THREE_FRAME = 1, 62 } CalibDb_HdrFrmNum_t; 63 64 typedef struct CalibDb_ExpSet_para_s { 65 CalibDb_AecGainRange_t Gain2Reg; 66 float Time2Reg[4]; 67 CalibDb_CISGainSet_t CISGainSet; 68 CalibDb_CISTimeSet_comb_t CISTimeSet; 69 CalibDb_CISHdrSet_t CISHdrSet; 70 CalibDb_Dcg_t CISDcgSet; 71 CalibDb_ExpUpdate_comb_t CISExpUpdate; 72 float CISMinFps; 73 uint8_t CISFlip; 74 } CalibDb_ExpSet_para_t; 75 76 typedef struct CalibDb_Awb_Calib_Para_V201_s { 77 struct list_head listHead; 78 char scene[CALIBDB_MAX_SCENE_NAME_LENGTH]; 79 bool lscBypEnable; 80 bool uvDetectionEnable; 81 bool xyDetectionEnable; 82 bool yuvDetectionEnable; 83 int lsUsedForYuvDetNum; 84 char lsUsedForYuvDet[CALD_AWB_LS_NUM_MAX][CALD_AWB_ILLUMINATION_NAME]; 85 bool wbGainClipEn; 86 bool wbGainDaylightClipEn; 87 bool wpDiffWeiEnable; 88 bool blkWeightEnable; 89 bool blkStatisticsEnable; 90 unsigned char dsMode; 91 unsigned char blkMeasureMode; 92 bool multiwindow_en; 93 unsigned char hdrFrameChooseMode; 94 unsigned char hdrFrameChoose; 95 CalibDb_StatWindow_t measeureWindow; 96 unsigned char lightNum; 97 char lightName[CALD_AWB_LS_NUM_MAX][CALD_AWB_ILLUMINATION_NAME]; 98 unsigned char doorType[CALD_AWB_LS_NUM_MAX]; 99 float standardGainValue[CALD_AWB_LS_NUM_MAX][4];//rggb 100 CalibDb_limit_range_t limitRange; 101 CalibDb_Rgb2TcsParam_t rgb2tcs_param; 102 float rgb2RYuv_matrix[16]; 103 CalibDb_UV_Range_Ill_t uvRange_param[CALD_AWB_LS_NUM_MAX]; 104 CalibDb_UV_Range_Ill_t uvRange_param_small[CALD_AWB_LS_NUM_MAX]; 105 CalibDb_tcs_range_ill_t xyRangeLight[CALD_AWB_LS_NUM_MAX]; 106 CalibDb_Yuv3D_2_Range_Ill_t yuv3D2Range_param[CALD_AWB_LS_NUM_MAX]; 107 108 unsigned short multiwindow[CALD_AWB_WINDOW_NUM_MAX][4];//8 windows in pixel domain ,hOffset,vOffser,hSize,vSize; 109 //several winow in uv or xy domain 110 CalibDb_ExcRange_t excludeWpRange[CALD_AWB_EXCRANGE_NUM_MAX]; 111 //with differernt luma ,the different weight in WP sum 112 float wpDiffNoTh; 113 unsigned int wpDiffLvValueTh; 114 unsigned char wpDiffwei_y[9]; 115 unsigned char perfectBin[8];// ture means the luma is appropriate 116 float wpDiffweiSet_w_LvValueTh[2]; 117 float wpDiffWeiRatioTh[3]; 118 float wpDiffweiSet_w_HigLV[3][9]; 119 float wpDiffweiSet_w_LowLV[3][9]; 120 unsigned short blkWeight[CALD_AWB_GRID_NUM_TOTAL]; 121 float spatialGain_H[4];//spatial gain 122 float spatialGain_L[4]; 123 float temporalDefaultGain[4]; 124 float ca_targetGain[4]; 125 //single color 126 unsigned short sSelColorNUM; 127 unsigned short sIndSelColor[CALD_AWB_SGC_NUM_MAX]; 128 float sMeanCh[2][CALD_AWB_SGC_NUM_MAX]; 129 float srGain[CALD_AWB_LS_NUM_MAX]; 130 float sbGain[CALD_AWB_LS_NUM_MAX]; 131 unsigned short sIllEstNum; 132 char sNameIllEst[CALD_AWB_LS_NUM_MAX][CALD_AWB_ILLUMINATION_NAME]; 133 float sAlpha; 134 float lineRgBg[3]; 135 float lineRgProjCCT[3]; 136 //wbgain clip 137 CalibDb_Awb_Cct_Clip_Cfg_t cct_clip_cfg; 138 } CalibDb_Awb_Calib_Para_V201_t; 139 140 typedef struct CalibDb_Awb_Para_Isp21_s 141 { 142 CalibDb_Awb_Calib_Para_V201_t calib_para_v201; 143 CalibDb_Awb_Adjust_Para_t adjust_para; 144 } CalibDb_Awb_Para_Isp21_t; 145 146 typedef struct CalibDb_Drc_ModeCell_s { 147 char scene[CALIBDB_MAX_MODE_NAME_LENGTH]; 148 int sw_drc_offset_pow2;// 149 int sw_drc_position; 150 int sw_drc_hpdetail_ratio; 151 int sw_drc_lpdetail_ratio; 152 int sw_drc_weicur_pix;// 153 int sw_drc_weipre_frame;// 154 int sw_drc_force_sgm_inv0;// 155 int sw_drc_motion_scl;// 156 int sw_drc_edge_scl;// 157 int sw_drc_space_sgm_inv1;// 158 int sw_drc_space_sgm_inv0;// 159 int sw_drc_range_sgm_inv1;// 160 int sw_drc_range_sgm_inv0;// 161 int sw_drc_weig_maxl;// 162 int sw_drc_weig_bilat;// 163 int sw_drc_scale_y[ISP21_DRC_Y_NUM];// 164 int sw_drc_iir_frame; 165 int sw_drc_gain; 166 int sw_drc_min_ogain;// 167 } CalibDb_Drc_ModeCell_t; 168 169 typedef struct CalibDb_Adrc_Para_s { 170 CalibDb_Drc_ModeCell_t calib[CALIBDB_MAX_MODE_NUM]; 171 CalibDb_Drc_ModeCell_t tuning[CALIBDB_MAX_MODE_NUM]; 172 } CalibDb_Adrc_Para_t; 173 174 175 typedef struct CalibDb_Gic_setting_v21_s { 176 float iso[CALIBDB_ISO_NUM]; 177 float min_busy_thre[CALIBDB_ISO_NUM]; 178 float min_grad_thr1[CALIBDB_ISO_NUM]; 179 float min_grad_thr2[CALIBDB_ISO_NUM] ; 180 float k_grad1[CALIBDB_ISO_NUM]; 181 float k_grad2[CALIBDB_ISO_NUM] ; 182 float gb_thre[CALIBDB_ISO_NUM] ; 183 float maxCorV[CALIBDB_ISO_NUM] ; 184 float maxCorVboth[CALIBDB_ISO_NUM]; 185 float dark_thre[CALIBDB_ISO_NUM]; 186 float dark_threHi[CALIBDB_ISO_NUM]; 187 float k_grad1_dark[CALIBDB_ISO_NUM]; 188 float k_grad2_dark[CALIBDB_ISO_NUM] ; 189 float min_grad_thr_dark1[CALIBDB_ISO_NUM]; 190 float min_grad_thr_dark2[CALIBDB_ISO_NUM] ; 191 float noiseCurve_0[CALIBDB_ISO_NUM]; 192 float noiseCurve_1[CALIBDB_ISO_NUM]; 193 float NoiseScale[CALIBDB_ISO_NUM] ; 194 float NoiseBase[CALIBDB_ISO_NUM] ; 195 float globalStrength[CALIBDB_ISO_NUM]; 196 float diff_clip[CALIBDB_ISO_NUM]; 197 } CalibDb_Gic_setting_v21_t; 198 199 typedef struct CalibDb_Gic_ModeCell_v21_s { 200 char scene[CALIBDB_MAX_MODE_NAME_LENGTH]; 201 unsigned char gic_en; 202 unsigned char gr_ration; 203 CalibDb_Gic_setting_v21_t setting; 204 } CalibDb_Gic_ModeCell_v21_t; 205 206 typedef struct CalibDb_Gic_ISP21_s { 207 CalibDb_Gic_ModeCell_v21_t calib_v21[CALIBDB_MAX_MODE_NUM]; 208 CalibDb_Gic_ModeCell_v21_t tuning_v21[CALIBDB_MAX_MODE_NUM]; 209 } CalibDb_Gic_Isp21_t; 210 211 typedef struct CalibDb_IIR_setting_v21_s { 212 float stab_fnum; 213 float sigma; 214 float wt_sigma; 215 float air_sigma; 216 float tmax_sigma; 217 float pre_wet; 218 } CalibDb_IIR_setting_v21_t; 219 220 typedef struct CalibDb_Dehaze_Setting_v21_s { 221 float en; 222 float iso[9]; 223 float air_lc_en[9]; 224 float dc_min_th[9]; 225 float dc_max_th[9]; 226 float yhist_th[9]; 227 float yblk_th[9]; 228 float dark_th[9]; 229 float bright_min[9]; 230 float bright_max[9]; 231 float wt_max[9]; 232 float air_min[9]; 233 float air_max[9]; 234 float tmax_base[9]; 235 float tmax_off[9]; 236 float tmax_max[9]; 237 float cfg_wt[9]; 238 float cfg_air[9]; 239 float cfg_tmax[9]; 240 float dc_weitcur[9]; 241 float bf_weight[9]; 242 float range_sigma[9]; 243 float space_sigma_pre[9]; 244 float space_sigma_cur[9]; 245 CalibDb_IIR_setting_v21_t IIR_setting; 246 } CalibDb_Dehaze_Setting_v21_t; 247 248 typedef struct CalibDb_Enhance_Setting_v21_s { 249 float en; 250 float iso[9]; 251 float enhance_value[9]; 252 float enhance_chroma[9]; 253 float enhance_curve[17]; 254 } CalibDb_Enhance_Setting_v21_t; 255 256 typedef struct CalibDb_Hist_setting_v21_s { 257 float en; 258 float iso[9]; 259 unsigned char hist_para_en[9]; 260 float hist_gratio[9]; 261 float hist_th_off[9]; 262 float hist_k[9]; 263 float hist_min[9]; 264 float hist_scale[9]; 265 float cfg_gratio[9]; 266 } CalibDb_Hist_setting_v21_t; 267 268 typedef struct CalibDb_Dehaze_ModeCell_v21_s { 269 char scene[CALIBDB_MAX_MODE_NAME_LENGTH]; 270 float en; 271 float cfg_alpha; 272 CalibDb_Dehaze_Setting_v21_t dehaze_setting; 273 CalibDb_Enhance_Setting_v21_t enhance_setting; 274 CalibDb_Hist_setting_v21_t hist_setting; 275 276 } CalibDb_Dehaze_ModeCell_v21_t; 277 278 typedef struct CalibDb_Dehaze_Isp21_s { 279 CalibDb_Dehaze_ModeCell_v21_t calib_v21[CALIBDB_MAX_MODE_NUM]; 280 CalibDb_Dehaze_ModeCell_v21_t tuning_v21[CALIBDB_MAX_MODE_NUM]; 281 } CalibDb_Dehaze_Isp21_t; 282 283 //bayernrV2 284 285 ////////////////////calibdb type //////////////////////////////////////////////// 286 287 typedef struct Calibdb_Bayernr_2Dparams_V2_s { 288 struct list_head listItem; 289 290 char snr_mode[CALIBDB_NR_SHARP_NAME_LENGTH]; 291 char sensor_mode[CALIBDB_NR_SHARP_MODE_LENGTH]; 292 293 float iso[RK_BAYERNR_V2_MAX_ISO_NUM]; 294 295 float bayernrv2_filter_strength_r[RK_BAYERNR_V2_MAX_ISO_NUM]; 296 int bayernrv2_filter_lumapoint_r[16]; 297 int bayernrv2_filter_sigma_r[RK_BAYERNR_V2_MAX_ISO_NUM][16]; 298 float bayernrv2_filter_edgesofts_r[RK_BAYERNR_V2_MAX_ISO_NUM]; 299 float bayernrv2_filter_soft_threshold_ratio_r[RK_BAYERNR_V2_MAX_ISO_NUM]; 300 float bayernrv2_filter_out_wgt_r[RK_BAYERNR_V2_MAX_ISO_NUM]; 301 int bayernrv2_gauss_guide_r[RK_BAYERNR_V2_MAX_ISO_NUM]; 302 303 //not use in xml param 304 float bayernrv2_edge_filter_lumapoint_r[8]; 305 float bayernrv2_edge_filter_wgt_r[RK_BAYERNR_V2_MAX_ISO_NUM][8]; 306 307 } Calibdb_Bayernr_2Dparams_V2_t; 308 309 310 typedef struct CalibDb_Bayernr_2DSetting_V2_s { 311 // bayernr version 312 int bayernrv2_2dnr_enable; 313 314 // bayernr settting for hcg & lcg 315 struct list_head listHead; 316 317 } CalibDb_Bayernr_2DSetting_V2_t; 318 319 typedef struct CalibDb_Bayernr_3DParams_V2_s { 320 struct list_head listItem; 321 322 char snr_mode[CALIBDB_NR_SHARP_NAME_LENGTH]; 323 char sensor_mode[CALIBDB_NR_SHARP_MODE_LENGTH]; 324 325 float iso[RK_BAYERNR_V2_MAX_ISO_NUM]; 326 float bayernrv2_tnr_filter_strength_r[RK_BAYERNR_V2_MAX_ISO_NUM]; 327 float bayernrv2_tnr_sp_filter_strength_r[RK_BAYERNR_V2_MAX_ISO_NUM]; 328 float bayernrv2_tnr_lo_clipwgt_r[RK_BAYERNR_V2_MAX_ISO_NUM]; 329 float bayernrv2_tnr_hi_clipwgt_r[RK_BAYERNR_V2_MAX_ISO_NUM]; 330 float bayernrv2_tnr_softwgt_r[RK_BAYERNR_V2_MAX_ISO_NUM]; 331 332 int bayernrv2_lumapoint_r[16]; 333 int bayernrv2_sigma_r[RK_BAYERNR_V2_MAX_ISO_NUM][16]; 334 } CalibDb_Bayernr_3DParams_V2_t; 335 336 typedef struct CalibDb_Bayernr_3DSetting_V2_s { 337 // bayernr version 338 int bayernrv2_tnr_enable; 339 340 // bayernr settting for hcg & lcg 341 struct list_head listHead; 342 } CalibDb_Bayernr_3DSetting_V2_t; 343 344 345 typedef struct CalibDb_Bayernr_V2_t { 346 struct list_head listItem; 347 348 char modeName[64]; 349 350 CalibDb_Bayernr_2DSetting_V2_t st2DParams; 351 CalibDb_Bayernr_3DSetting_V2_t st3DParams; 352 353 } CalibDb_Bayernr_V2_t; 354 355 356 typedef struct Calibdb_Ynr_params_V2_s { 357 struct list_head listItem; 358 char snr_mode[64]; 359 char sensor_mode[64]; 360 361 float iso[RK_YNR_V2_MAX_ISO_NUM]; 362 float ciISO_V2[2][RK_YNR_V2_MAX_ISO_NUM]; 363 float sigmaCurve[RK_YNR_V2_MAX_ISO_NUM][5]; 364 365 // low frequency 366 float ynr_rnr_strength_V2[RK_YNR_V2_MAX_ISO_NUM][17]; 367 int ynr_bft3x3_bypass_V2[RK_YNR_V2_MAX_ISO_NUM]; 368 int ynr_lbft5x5_bypass_V2[RK_YNR_V2_MAX_ISO_NUM]; 369 int ynr_lgft3x3_bypass_V2[RK_YNR_V2_MAX_ISO_NUM]; 370 int ynr_flt1x1_bypass_V2[RK_YNR_V2_MAX_ISO_NUM]; 371 int ynr_sft5x5_bypass_V2[RK_YNR_V2_MAX_ISO_NUM]; 372 float ynr_low_bf_V2[2][RK_YNR_V2_MAX_ISO_NUM]; 373 float ynr_low_thred_adj_V2[RK_YNR_V2_MAX_ISO_NUM]; 374 float ynr_low_peak_supress_V2[RK_YNR_V2_MAX_ISO_NUM]; 375 float ynr_low_edge_adj_thresh_V2[RK_YNR_V2_MAX_ISO_NUM]; 376 float ynr_low_center_weight_V2[RK_YNR_V2_MAX_ISO_NUM]; 377 float ynr_low_dist_adj_V2[RK_YNR_V2_MAX_ISO_NUM]; 378 float ynr_low_weight_V2[RK_YNR_V2_MAX_ISO_NUM]; 379 float ynr_low_filt_strength_V2[2][RK_YNR_V2_MAX_ISO_NUM]; 380 float ynr_low_bi_weight_V2[RK_YNR_V2_MAX_ISO_NUM]; 381 382 // high frequency 383 float ynr_base_filter_weight_V2[3][RK_YNR_V2_MAX_ISO_NUM]; 384 float ynr_high_thred_adj_V2[RK_YNR_V2_MAX_ISO_NUM]; 385 float ynr_high_weight_V2[RK_YNR_V2_MAX_ISO_NUM]; 386 float ynr_direction_weight_V2[RK_YNR_V2_MAX_ISO_NUM][8]; 387 float ynr_hi_min_adj_V2[RK_YNR_V2_MAX_ISO_NUM]; 388 float ynr_hi_edge_thed_V2[RK_YNR_V2_MAX_ISO_NUM]; 389 390 } Calibdb_Ynr_params_V2_t; 391 392 typedef struct Calibdb_Ynr_V2_s { 393 struct list_head listItem; 394 char modeName[64]; 395 int enable; 396 397 struct list_head listHead; 398 } Calibdb_Ynr_V2_t; 399 400 401 typedef struct Calibdb_Cnr_params_V1_s 402 { 403 struct list_head listItem; 404 char snr_mode[64]; 405 char sensor_mode[64]; 406 407 int enable; 408 float iso[RK_CNR_V1_MAX_ISO_NUM]; 409 int rkcnr_hq_bila_bypass[RK_CNR_V1_MAX_ISO_NUM]; 410 int rkcnr_lq_bila_bypass[RK_CNR_V1_MAX_ISO_NUM]; 411 412 // gain 413 float rkcnr_exgain[RK_CNR_V1_MAX_ISO_NUM]; 414 float rkcnr_g_gain[RK_CNR_V1_MAX_ISO_NUM]; 415 416 // 417 float ratio[RK_CNR_V1_MAX_ISO_NUM]; 418 float offset[RK_CNR_V1_MAX_ISO_NUM]; 419 420 // step1 421 // median filter 422 float medRatio1[RK_CNR_V1_MAX_ISO_NUM]; 423 424 // bilateral filter 425 float sigmaR1[RK_CNR_V1_MAX_ISO_NUM]; 426 float uvgain1[RK_CNR_V1_MAX_ISO_NUM]; 427 float bfRatio1[RK_CNR_V1_MAX_ISO_NUM]; 428 int hbf_wgt_clip[RK_CNR_V1_MAX_ISO_NUM]; 429 430 431 // step2 432 // median filter 433 float medRatio2[RK_CNR_V1_MAX_ISO_NUM]; 434 435 // bilateral filter 436 float sigmaR2[RK_CNR_V1_MAX_ISO_NUM]; 437 float uvgain2[RK_CNR_V1_MAX_ISO_NUM]; 438 439 440 // step3 441 // bilateral filter 442 float sigmaR3[RK_CNR_V1_MAX_ISO_NUM]; 443 float uvgain3[RK_CNR_V1_MAX_ISO_NUM]; 444 float bfRatio3[RK_CNR_V1_MAX_ISO_NUM]; 445 446 // bilateral filter kernels 447 float kernel_5x5_table[5]; 448 } Calibdb_Cnr_params_V1_t; 449 450 typedef struct Calibdb_Cnr_V1_s { 451 struct list_head listItem; 452 char modeName[64]; 453 int enable; 454 455 struct list_head listHead; 456 } Calibdb_Cnr_V1_t; 457 458 459 typedef struct Calibdb_Sharp_params_V3_s 460 { 461 struct list_head listItem; 462 char snr_mode[64]; 463 char sensor_mode[64]; 464 float iso[RK_SHARP_V3_MAX_ISO_NUM]; 465 466 short luma_point [RK_SHARP_V3_LUMA_POINT_NUM]; 467 short luma_sigma [RK_SHARP_V3_MAX_ISO_NUM][RK_SHARP_V3_LUMA_POINT_NUM]; 468 float pbf_gain [RK_SHARP_V3_MAX_ISO_NUM]; 469 float pbf_add [RK_SHARP_V3_MAX_ISO_NUM]; 470 float pbf_ratio [RK_SHARP_V3_MAX_ISO_NUM]; 471 float gaus_ratio [RK_SHARP_V3_MAX_ISO_NUM]; 472 float sharp_ratio [RK_SHARP_V3_MAX_ISO_NUM]; 473 short lum_clip_h [RK_SHARP_V3_MAX_ISO_NUM][RK_SHARP_V3_LUMA_POINT_NUM]; 474 float bf_gain [RK_SHARP_V3_MAX_ISO_NUM]; 475 float bf_add [RK_SHARP_V3_MAX_ISO_NUM]; 476 float bf_ratio [RK_SHARP_V3_MAX_ISO_NUM]; 477 short ehf_th [RK_SHARP_V3_MAX_ISO_NUM][RK_SHARP_V3_LUMA_POINT_NUM]; 478 479 float kernel_pre_bila_filter[9][RK_SHARP_V3_MAX_ISO_NUM]; 480 float kernel_range_filter [9][RK_SHARP_V3_MAX_ISO_NUM]; 481 float kernel_bila_filter [9][RK_SHARP_V3_MAX_ISO_NUM]; 482 483 ////////////////////////////////////////////////////////////////////////// 484 // test params 485 float sharp_ratio_h [RK_SHARP_V3_MAX_ISO_NUM]; 486 float sharp_ratio_m [RK_SHARP_V3_MAX_ISO_NUM]; 487 float sharp_ratio_l [RK_SHARP_V3_MAX_ISO_NUM]; 488 short clip_hf [RK_SHARP_V3_MAX_ISO_NUM][RK_SHARP_V3_LUMA_POINT_NUM]; 489 short clip_mf [RK_SHARP_V3_MAX_ISO_NUM][RK_SHARP_V3_LUMA_POINT_NUM]; 490 short clip_lf [RK_SHARP_V3_MAX_ISO_NUM][RK_SHARP_V3_LUMA_POINT_NUM]; 491 short local_wgt [RK_SHARP_V3_MAX_ISO_NUM][RK_SHARP_V3_LUMA_POINT_NUM]; 492 493 short kernel_hf_filter [RK_SHARP_V3_MAX_ISO_NUM][9]; 494 short kernel_mf_filter [RK_SHARP_V3_MAX_ISO_NUM][9]; 495 short kernel_lf_filter [RK_SHARP_V3_MAX_ISO_NUM][9]; 496 } Calibdb_Sharp_params_V3_t; 497 498 499 typedef struct Calibdb_Sharp_V3_s { 500 struct list_head listItem; 501 char modeName[64]; 502 int enable; 503 504 struct list_head listHead; 505 } Calibdb_Sharp_V3_t; 506 507 /*****************************************************************************/ 508 /** 509 * @brief Global AEC calibration structure of isp2.0 510 */ 511 /*****************************************************************************/ 512 typedef struct CalibDb_Aec_WinScale_V21_s { 513 float h_offs; 514 float v_offs; 515 float h_size; 516 float v_size; 517 } CalibDb_Aec_WinScale_V21_t; 518 519 typedef struct CalibDb_Aec_CalibPara_s { 520 struct list_head listHead; 521 char scene[CALIBDB_MAX_SCENE_NAME_LENGTH]; 522 CalibDb_AeEnvLvCalib_t stEnvLvCalib; 523 CalibDb_Aec_WinScale_V21_t InRawWinScale; 524 CalibDb_Aec_WinScale_V21_t TmoRawWinScale; 525 CalibDb_Aec_WinScale_V21_t YuvWinScale; 526 } CalibDb_Aec_CalibPara_t; 527 528 typedef struct CalibDb_AeRoute_Attr_V21_s { 529 CalibDb_LinAeRoute_Attr_t LinAeSeperate; 530 CalibDb_HdrAeRoute_Attr_t HdrAeSeperate; 531 } CalibDb_AeRoute_Attr_V21_t; 532 533 #define AEC_MAX_GRIDWEIGHT_NUM (225) 534 typedef struct CalibDb_AecCommon_Attr_V21_s { 535 uint8_t enable; 536 uint8_t AecRunInterval; 537 RKAiqOPMode_t AecOpType; 538 CalibDb_CamRawStatsMode_t RawStatsMode; 539 CalibDb_CamHistStatsMode_t HistStatsMode; 540 CalibDb_CamYRangeMode_t YRangeMode; 541 uint8_t GridWeights[AEC_MAX_GRIDWEIGHT_NUM]; 542 543 CalibDb_AecIrisCtrl_t stIris; 544 CalibDb_AeSyncTest_t stSyncTest; 545 //antiflicker 546 CalibDb_AntiFlickerAttr_t stAntiFlicker; 547 //initial exp 548 CalibDb_ExpInitExp_t stInitExp; 549 //DayOrNight switch 550 CalibDb_DNSwitch_Attr_t stDNSwitch; 551 //ExpSeperate 552 CalibDb_AeRoute_Attr_V21_t stAeRoute; 553 //manual expvalue 554 CalibDb_MeAttr_t stManual; 555 CalibDb_AeAttr_t stAuto; 556 } CalibDb_AecCommon_Attr_V21_t; 557 558 typedef struct CalibDb_LinearAE_Attr_V21_s { 559 uint8_t RawStatsEn; 560 float SetPoint; /**< set point to hit by the ae control system */ 561 float NightSetPoint; 562 float ToleranceIn; 563 float ToleranceOut; 564 float Evbias; 565 CalibDb_AeStrategyMode_t StrategyMode; 566 bool DySetPointEn; 567 CalibDb_AecDynamicSetpoint_t DySetpoint; 568 CalibDb_AecBacklight_t BackLightConf; 569 CalibDb_AecOverExpCtrl_t OverExpCtrl; 570 } CalibDb_LinearAE_Attr_V21_t; 571 572 typedef struct CalibDb_Aec_TunePara_s { 573 struct list_head listHead; 574 char scene[CALIBDB_MAX_SCENE_NAME_LENGTH]; 575 CalibDb_AecCommon_Attr_V21_t CommCtrl; 576 CalibDb_LinearAE_Attr_V21_t LinearAeCtrl; 577 CalibDb_HdrAE_Attr_t HdrAeCtrl; 578 } CalibDb_Aec_TunePara_t; 579 580 typedef struct CalibDb_Aec_Para_v21_s { 581 CalibDb_Aec_CalibPara_t CalibPara; 582 CalibDb_Aec_TunePara_t TunePara; 583 } CalibDb_Aec_Para_v21_t; 584 585 586 typedef struct CamCalibDbContextIsp21_s { 587 CalibDb_Header_t header; 588 struct list_head awb_calib_para_v201; 589 struct list_head awb_adjust_para; 590 struct list_head ae_calib_para; 591 struct list_head ae_tuning_para; 592 CalibDb_Lut3d_t lut3d; 593 CalibDb_AF_t af; 594 CalibDb_Amerge_Para_t amerge; 595 CalibDb_Adrc_Para_t adrc; 596 CalibDb_Blc_t blc; 597 CalibDb_Dpcc_t dpcc; 598 CalibDb_Lsc_t lsc; 599 CalibDb_RKDM_t dm; 600 CalibDb_Ccm_t ccm; 601 CalibDb_Gamma_t gamma; 602 CalibDb_Degamma_t degamma; 603 CalibDb_Gic_Isp21_t gic; 604 CalibDb_Dehaze_Isp21_t dehaze; 605 CalibDb_LDCH_t aldch; 606 CalibDb_LUMA_DETECT_t lumaDetect; 607 CalibDb_Cpsl_t cpsl; 608 CalibDb_ColorAsGrey_t colorAsGrey; 609 CalibDb_cProc_t cProc; 610 CalibDb_IE_t ie; 611 CalibDb_ExpSet_para_t expset; 612 CalibDb_Module_Info_t module; 613 //vw 614 struct list_head list_bayernr_v2; 615 struct list_head list_ynr_v2; 616 struct list_head list_cnr_v1; 617 struct list_head list_sharp_v3; 618 } CamCalibDbContextIsp21_t; 619 620 #pragma pack() 621 622 #endif 623