xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/include/iq_parser/RkAiqCalibDbTypesIsp21.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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