1 /* 2 * awb_head.h 3 * 4 * Copyright (c) 2021 Rockchip Corporation 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 * 18 */ 19 20 #ifndef __CALIBDBV2_AWB_HEADER_H__ 21 #define __CALIBDBV2_AWB_HEADER_H__ 22 23 #include "rk_aiq_comm.h" 24 25 RKAIQ_BEGIN_DECLARE 26 27 #define CALD_AWB_WINDOW_NUM_MAX 8 28 #define CALD_AWB_EXCRANGE_NUM_MAX 7 29 #define CALD_AWB_LV_NUM_MAX 16 30 #define CALD_AWB_ILLUMINATION_NAME ( 20U ) 31 #define CALD_AWB_GRID_NUM_TOTAL_LITE 25 32 #define CALD_AWB_GRID_NUM_TOTAL 225 33 #define CALD_AWB_RGCT_GRID_NUM 9 34 #define CALD_AWB_BGCRI_GRID_NUM 11 35 36 #if ISP_HW_V32_LITE 37 typedef enum CalibDbV2_Awb_Down_Scale_Mode_e { 38 CALIB_AWB_DS_4X4 = 0, 39 CALIB_AWB_DS_8X8 = 1, 40 CALIB_AWB_DS_16X8 = 2, 41 } CalibDbV2_Awb_Down_Scale_Mode_t; 42 #else 43 typedef enum CalibDbV2_Awb_Down_Scale_Mode_e { 44 CALIB_AWB_DS_4X4 = 0, 45 CALIB_AWB_DS_8X8 = 1, 46 } CalibDbV2_Awb_Down_Scale_Mode_t; 47 #endif 48 49 typedef enum CalibDbV2_Awb_Blk_Stat_V21_e { 50 CALIB_AWB_BLK_STAT_MODE_AL_V201 = 0, 51 CALIB_AWB_BLK_STAT_MODE_WP_V201 = 1, 52 } CalibDbV2_Awb_Blk_Stat_V21_t; 53 54 typedef enum CalibDbV2_Awb_Blk_Stat_V20_e { 55 CALIB_AWB_BLK_STAT_MODE_AL_V200 = 1, 56 CALIB_AWB_BLK_STAT_MODE_UV_V200 = 2, 57 CALIB_AWB_BLK_STAT_MODE_XY_V200 = 3, 58 } CalibDbV2_Awb_Blk_Stat_V20_t; 59 60 61 typedef enum CalibDbV2_Awb_Ext_Range_Dom_e { 62 CALIB_AWB_EXTRA_RANGE_DOMAIN_UV = 0, 63 CALIB_AWB_EXTRA_RANGE_DOMAIN_XY = 1 64 } CalibDbV2_Awb_Ext_Range_Dom_t; 65 66 typedef enum CalibDbV2_Awb_Ext_Range_Mode_s { 67 CALIB_AWB_EXCLUDE_WP_MODE = 1, 68 CALIB_AWB_ETR_LIGHT_SOUR_MODE = 3, 69 } CalibDbV2_Awb_Ext_Range_Mode_t; 70 71 typedef struct CalibDbV2_ExtRange_s { 72 // M4_ENUM_DESC("domain", "CalibDbV2_Awb_Ext_Range_Dom_t", "CALIB_AWB_EXTRA_RANGE_DOMAIN_UV") 73 CalibDbV2_Awb_Ext_Range_Dom_t domain;/*0uv domain,1 xy domain*/ 74 // M4_ENUM_DESC("mode", "CalibDbV2_Awb_Ext_Range_Mode_t", "CALIB_AWB_EXCLUDE_WP_MODE") 75 CalibDbV2_Awb_Ext_Range_Mode_t mode; 76 // M4_ARRAY_DESC("region", "s32", M4_SIZE(1,4), M4_RANGE(-8192, 8191), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 77 int region[4]; 78 } CalibDbV2_ExtRange_t; 79 80 typedef struct CalibDbV2_Yuv3D_Range_Ill_s { 81 // M4_NUMBER_DESC("b_uv", "s32", M4_RANGE(-65536,65535), "0", M4_DIGIT(0), M4_HIDE(1)) 82 int b_uv; //17+0 s 83 // M4_NUMBER_DESC("slope_inv_neg_uv", "s32", M4_RANGE(-262144,262143), "0", M4_DIGIT(0)) 84 int slope_inv_neg_uv; //9+10s //-1/k 85 // M4_NUMBER_DESC("slope_factor_uv", "s32", M4_RANGE(-16384,16383), "0", M4_DIGIT(0), M4_HIDE(1)) 86 int slope_factor_uv; //1+14s // 1/(-1/k+k) 87 // M4_NUMBER_DESC("slope_ydis", "s32", M4_RANGE(-262144,262143), "0", M4_DIGIT(0), M4_HIDE(1)) 88 int slope_ydis; //9+10s //k 89 // M4_NUMBER_DESC("b_ydis", "s32", M4_RANGE(-65536,65535), "0", M4_DIGIT(0), M4_HIDE(1)) 90 int b_ydis; //17+0s 91 // M4_NUMBER_DESC("ref_v", "u8", M4_RANGE(0,255), "0", M4_DIGIT(0), M4_HIDE(1)) 92 unsigned char ref_v;//8u 93 // M4_ARRAY_DESC("dis", "u16", M4_SIZE(1,6), M4_RANGE(0,4095), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 94 unsigned short dis[6];//8+4 u 95 // M4_ARRAY_DESC("th", "u8", M4_SIZE(1,6), M4_RANGE(0,255), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 96 unsigned char th[6]; //8u 97 } CalibDbV2_Yuv3D_Range_Ill_t; 98 99 typedef struct CalibDbV2_Yuv3D_2_Range_Ill_s { 100 // M4_ARRAY_DESC("thcurve_u", "f32", M4_SIZE(1,6), M4_RANGE(0,255), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 101 float thcurve_u[6]; 102 // M4_ARRAY_DESC("thcure_th", "f32", M4_SIZE(1,6), M4_RANGE(0,8), "0", M4_DIGIT(4), M4_DYNAMIC(0)) 103 float thcure_th[6]; 104 // M4_ARRAY_DESC("lineVector", "f32", M4_SIZE(1,6), M4_RANGE(0,255), "0", M4_DIGIT(4), M4_DYNAMIC(0), M4_HIDE(1)) 105 float lineVector[6]; 106 // M4_NUMBER_DESC("disP1P2", "u8", M4_RANGE(0,255), "0", M4_DIGIT(0), M4_HIDE(1)) 107 unsigned char disP1P2; 108 } CalibDbV2_Yuv3D_2_Range_Ill_t; 109 110 typedef struct CalibDbV2_Tcs_Range_Ill_s { 111 // M4_ARRAY_DESC("normal", "f32", M4_SIZE(1,4), M4_RANGE(-8,8), "0", M4_DIGIT(4), M4_DYNAMIC(0)) 112 float normal[4]; 113 // M4_ARRAY_DESC("big", "f32", M4_SIZE(1,4), M4_RANGE(-8,8), "0", M4_DIGIT(4), M4_DYNAMIC(0)) 114 float big[4]; 115 // M4_ARRAY_DESC("small", "f32", M4_SIZE(1,4), M4_RANGE(-8,8), "0", M4_DIGIT(4), M4_DYNAMIC(0)) 116 float small[4]; 117 } CalibDbV2_Tcs_Range_Ill_t; 118 119 typedef struct CalibDbV2_Tcs_Range_Ill2_s { 120 // M4_ARRAY_DESC("normal", "f32", M4_SIZE(1,4), M4_RANGE(-8,8), "0", M4_DIGIT(4), M4_DYNAMIC(0)) 121 float normal[4]; 122 // M4_ARRAY_DESC("big", "f32", M4_SIZE(1,4), M4_RANGE(-8,8), "0", M4_DIGIT(4), M4_DYNAMIC(0)) 123 float big[4]; 124 } CalibDbV2_Tcs_Range_Ill2_t; 125 126 typedef struct CalibDbV2_Uv_Range_Ill_s { 127 // M4_ARRAY_DESC("u", "f32", M4_SIZE(1,4), M4_RANGE(0,255), "0", M4_DIGIT(1), M4_DYNAMIC(0)) 128 float u[4]; 129 // M4_ARRAY_DESC("v", "f32", M4_SIZE(1,4), M4_RANGE(0,255), "0", M4_DIGIT(1), M4_DYNAMIC(0)) 130 float v[4]; 131 } CalibDbV2_Uv_Range_Ill_t; 132 133 typedef enum CalibDbV2_Awb_DoorType_e { 134 CALIB_AWB_DOOR_TYPE_INDOOR = 1, 135 CALIB_AWB_DOOR_TYPE_AMBIGUITY = 2, 136 CALIB_AWB_DOOR_TYPE_OUTDOOR = 3, 137 } CalibDbV2_Awb_DoorType_t; 138 139 typedef struct CalibDbV2_Awb_Light_V20_s { 140 // M4_STRING_DESC("name", M4_SIZE(1,1), M4_RANGE(0, 16), "default", M4_DYNAMIC(0)) 141 char* name; 142 // M4_ENUM_DESC("doorType", "CalibDbV2_Awb_DoorType_t", "CALIB_AWB_DOOR_TYPE_AMBIGUITY") 143 CalibDbV2_Awb_DoorType_t doorType; 144 // M4_ARRAY_DESC("standardGainValue", "f32", M4_SIZE(1,4), M4_RANGE(0,4), "1.0", M4_DIGIT(4), M4_DYNAMIC(0)) 145 float standardGainValue[4]; 146 // M4_ARRAY_TABLE_DESC("uvRegion", "array_table_ui", M4_INDEX_DEFAULT) 147 CalibDbV2_Uv_Range_Ill_t uvRegion; 148 // M4_ARRAY_TABLE_DESC("xyRegion", "array_table_ui", M4_INDEX_DEFAULT) 149 CalibDbV2_Tcs_Range_Ill_t xyRegion; 150 // M4_STRUCT_DESC("yuvRegion", "normal_ui_style") 151 CalibDbV2_Yuv3D_Range_Ill_t yuvRegion; 152 // M4_ARRAY_DESC("staWeight", "u8", M4_SIZE(1,16), M4_RANGE(0,100), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 153 unsigned char staWeight[CALD_AWB_LV_NUM_MAX]; 154 // M4_ARRAY_DESC("dayGainLvThSet", "u32", M4_SIZE(1,2), M4_RANGE(0,255000), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 155 unsigned int dayGainLvThSet[2]; 156 // M4_ARRAY_DESC("defaultDayGainLow", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 157 float defaultDayGainLow[4];//spatial gain 158 // M4_ARRAY_DESC("defaultDayGainHigh", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 159 float defaultDayGainHigh[4]; 160 // M4_BOOL_DESC("xyType2Enable", "1", M4_HIDE(1)) 161 bool xyType2Enable; 162 } CalibDbV2_Awb_Light_V20_t; 163 164 typedef enum CalibDb_Window_Mode_e { 165 CALIB_AWB_WINDOW_CFG_AUTO = 0, 166 CALIB_AWB_WINDOW_CFG_FIXED, 167 } CalibDb_Window_Mode_t; 168 169 typedef struct CalibDbV2_StatWindow_s { 170 // M4_ENUM_DESC("mode", "CALIB_AWB_WINDOW_CFG_AUTO", "CALIB_AWB_WINDOW_CFG_AUTO") 171 CalibDb_Window_Mode_t mode; 172 // M4_ARRAY_DESC("window", "f32", M4_SIZE(1,4), M4_RANGE(0,100), "[0,0,1,1]", M4_DIGIT(2), M4_DYNAMIC(0)) 173 float window[4];//percent 100% ,between[0,100] 174 } CalibDbV2_StatWindow_t; 175 176 typedef struct CalibDbV2_Awb_Cct_Clip_Cfg_s { 177 // M4_BOOL_DESC("enable", "0") 178 bool enable; 179 // M4_ARRAY_DESC("cct", "f32", M4_SIZE(1,5), M4_RANGE(0,10000), "0", M4_DIGIT(0), M4_DYNAMIC(1)) 180 float* cct; 181 int cct_len; 182 // M4_ARRAY_DESC("cri_bound_up", "f32", M4_SIZE(1,5), M4_RANGE(0,1), "0", M4_DIGIT(4), M4_DYNAMIC(1)) 183 float* cri_bound_up; 184 int cri_bound_up_len; 185 // M4_ARRAY_DESC("cri_bound_low", "f32", M4_SIZE(1,5), M4_RANGE(0,1), "0", M4_DIGIT(4), M4_DYNAMIC(1)) 186 float* cri_bound_low; 187 int cri_bound_low_len; 188 } CalibDbV2_Awb_Cct_Clip_Cfg_t; 189 190 typedef struct CalibDbV2_Awb_DaylgtClip_Cfg_s { 191 // M4_BOOL_DESC("enable", "0") 192 bool enable; 193 // M4_NUMBER_DESC("outdoor_cct_min", "f32", M4_RANGE(0,10000), "5000", M4_DIGIT(0)) 194 float outdoor_cct_min; 195 } CalibDbV2_Awb_DaylgtClip_Cfg_t; 196 197 typedef struct CalibDbV2_Awb_Limit_Range_s { 198 // M4_ARRAY_DESC("lumaValue", "f32", M4_SIZE(1,5), M4_RANGE(0,255000), "0", M4_DIGIT(1), M4_DYNAMIC(1)) 199 float *lumaValue; 200 int lumaValue_len; 201 // M4_ARRAY_DESC("maxR", "u16", M4_SIZE(1,5), M4_RANGE(0,255), "230", M4_DIGIT(0), M4_DYNAMIC(1)) 202 unsigned short *maxR; 203 int maxR_len; 204 // M4_ARRAY_DESC("minR", "u16", M4_SIZE(1,5), M4_RANGE(0,255), "3", M4_DIGIT(0), M4_DYNAMIC(1)) 205 unsigned short *minR; 206 int minR_len; 207 // M4_ARRAY_DESC("maxG", "u16", M4_SIZE(1,5), M4_RANGE(0,255), "230", M4_DIGIT(0), M4_DYNAMIC(1)) 208 unsigned short *maxG; 209 int maxG_len; 210 // M4_ARRAY_DESC("minG", "u16", M4_SIZE(1,5), M4_RANGE(0,255), "3", M4_DIGIT(0), M4_DYNAMIC(1)) 211 unsigned short *minG; 212 int minG_len; 213 // M4_ARRAY_DESC("maxB", "u16", M4_SIZE(1,5), M4_RANGE(0,255), "230", M4_DIGIT(0), M4_DYNAMIC(1)) 214 unsigned short *maxB; 215 int maxB_len; 216 // M4_ARRAY_DESC("minB", "u16", M4_SIZE(1,5), M4_RANGE(0,255), "3", M4_DIGIT(0), M4_DYNAMIC(1)) 217 unsigned short *minB; 218 int minB_len; 219 // M4_ARRAY_DESC("maxY", "u16", M4_SIZE(1,5), M4_RANGE(0,255), "230", M4_DIGIT(0), M4_DYNAMIC(1)) 220 unsigned short *maxY; 221 int maxY_len; 222 // M4_ARRAY_DESC("minY", "u16", M4_SIZE(1,5), M4_RANGE(0,255), "3", M4_DIGIT(0), M4_DYNAMIC(1)) 223 unsigned short *minY; 224 int minY_len; 225 } CalibDbV2_Awb_Limit_Range_t; 226 227 typedef struct CalibDbV2_Rgb2Tcs_s { 228 // M4_ARRAY_DESC("pseudoLuminanceWeight", "f32", M4_SIZE(1,3), M4_RANGE(0,1), "0.3", M4_DIGIT(6), M4_DYNAMIC(0)) 229 float pseudoLuminanceWeight[3]; 230 // M4_ARRAY_DESC("rotationMat", "f32", M4_SIZE(3,3), M4_RANGE(0,1), "0.3", M4_DIGIT(6), M4_DYNAMIC(0)) 231 float rotationMat[9]; 232 } CalibDbV2_Rgb2Tcs_t; 233 234 typedef struct CalibDbV2_Awb_Sgc_Cblk_s { 235 // M4_NUMBER_DESC("index", "u16", M4_RANGE(1,24), "1", M4_DIGIT(0)) 236 unsigned short index; 237 // M4_NUMBER_DESC("meanC", "f32", M4_RANGE(0,255), "0", M4_DIGIT(6)) 238 float meanC; 239 // M4_NUMBER_DESC("meanH", "f32", M4_RANGE(-180,180), "0", M4_DIGIT(6)) 240 float meanH; 241 } CalibDbV2_Awb_Sgc_Cblk_t; 242 243 typedef struct CalibDbV2_Awb_Sgc_Ls_s { 244 // M4_STRING_DESC("name", M4_SIZE(1,1), M4_RANGE(0, 16), "default", M4_DYNAMIC(0)) 245 char* name; 246 // M4_NUMBER_DESC("RGain", "f32", M4_RANGE(0,8), "1", M4_DIGIT(6)) 247 float RGain; 248 // M4_NUMBER_DESC("BGain", "f32", M4_RANGE(0,8), "1", M4_DIGIT(6)) 249 float BGain; 250 } CalibDbV2_Awb_Sgc_Ls_t; 251 252 typedef struct CalibDbV2_Awb_Sgc_s { 253 // M4_BOOL_DESC("enable", "0") 254 bool enable; 255 // M4_STRUCT_LIST_DESC("colorBlock", M4_SIZE(1,24), "normal_ui_style") 256 CalibDbV2_Awb_Sgc_Cblk_t *colorBlock; 257 int colorBlock_len; 258 // M4_STRUCT_LIST_DESC("lsUsedForEstimation", M4_SIZE(1,7), "normal_ui_style") 259 CalibDbV2_Awb_Sgc_Ls_t *lsUsedForEstimation; 260 int lsUsedForEstimation_len; 261 // M4_NUMBER_DESC("alpha", "f32", M4_RANGE(0,1), "1", M4_DIGIT(4)) 262 float alpha; 263 } CalibDbV2_Awb_Sgc_t; 264 265 typedef enum CalibDbV2_Awb_Hdr_Fr_Ch_Mode_e { 266 CALIB_AWB_HDR_FR_CH_MANUAL = 0, 267 CALIB_AWB_HDR_FR_CH_AUTO 268 } CalibDbV2_Awb_Hdr_Fr_Ch_Mode_t; 269 270 typedef struct CalibDbV2_Awb_Hdr_Fr_Ch_s { 271 // M4_ENUM_DESC("frameChooseMode", "CalibDbV2_Awb_Hdr_Fr_Ch_Mode_t", "CALIB_AWB_HDR_FR_CH_AUTO") 272 CalibDbV2_Awb_Hdr_Fr_Ch_Mode_t frameChooseMode; 273 // M4_NUMBER_DESC("frameChoose", "u8", M4_RANGE(0,2), "1", M4_DIGIT(0)) 274 unsigned char frameChoose; 275 } CalibDbV2_Awb_Hdr_Fr_Ch_t; 276 277 typedef enum CalibDbV2_Awb_Mul_Win_Mode_e { 278 CALIB_AWB_WIN_USELESS = 0, 279 CALIB_AWB_WIN_EXTRAWP = 1, 280 CALIB_AWB_WIN_WEIGHTWP = 2, 281 } CalibDbV2_Awb_Mul_Win_Mode_t; 282 283 typedef struct CalibDbV2_Awb_Mul_Win_s { 284 // M4_BOOL_DESC("enable", "1") 285 bool enable; 286 // M4_ENUM_DESC("multiwindowMode", "CalibDbV2_Awb_Mul_Win_Mode_t", "CALIB_AWB_WIN_USELESS") 287 CalibDbV2_Awb_Mul_Win_Mode_t multiwindowMode; 288 // M4_ARRAY_DESC("window", "u16", M4_SIZE(8,4), M4_RANGE(0,8191), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 289 float window[CALD_AWB_WINDOW_NUM_MAX][4];//8 windows in pixel domain ,hOffset,vOffser,hSize,vSize; 290 // M4_ARRAY_DESC("weight", "u16", M4_SIZE(8,4), M4_RANGE(0,10), "0", M4_DIGIT(4), M4_DYNAMIC(0)) 291 float weight;//weight for 8 windows; 292 } CalibDbV2_Awb_Mul_Win_t; 293 294 typedef struct CalibDbV2_Wb_Awb_Div_WpTh_s { 295 // M4_ARRAY_DESC("lumaValue", "f32", M4_SIZE(1,5), M4_RANGE(0,255000), "0", M4_DIGIT(1), M4_DYNAMIC(1)) 296 float *lumaValue; 297 int lumaValue_len; 298 // M4_ARRAY_DESC("low", "f32", M4_SIZE(1,5), M4_RANGE(0,100000), "0", M4_DIGIT(0), M4_DYNAMIC(1)) 299 float *low; 300 int low_len; 301 // M4_ARRAY_DESC("high", "f32", M4_SIZE(1,5), M4_RANGE(0,100000), "0", M4_DIGIT(0), M4_DYNAMIC(1)) 302 float *high; 303 int high_len; 304 } CalibDbV2_Wb_Awb_Div_WpTh_t; 305 306 typedef struct CalibDbV2_Wb_Awb_Div_s { 307 // M4_NUMBER_DESC("lumaValThLow", "u32", M4_RANGE(0, 255000), "0", M4_DIGIT(0)) 308 unsigned int lumaValThLow; 309 // M4_NUMBER_DESC("lumaValThLow2", "u32", M4_RANGE(0, 255000), "0", M4_DIGIT(0)) 310 unsigned int lumaValThLow2; 311 // M4_NUMBER_DESC("lumaValThHigh", "u32", M4_RANGE(0, 255000), "0", M4_DIGIT(0)) 312 unsigned int lumaValThHigh; 313 // M4_NUMBER_DESC("lumaValThHigh2", "u32", M4_RANGE(0, 255000), "0", M4_DIGIT(0)) 314 unsigned int lumaValThHigh2; 315 // M4_ARRAY_TABLE_DESC("wpNumTh", "array_table_ui", M4_INDEX_DEFAULT) 316 CalibDbV2_Wb_Awb_Div_WpTh_t wpNumTh; 317 } CalibDbV2_Wb_Awb_Div_t; 318 319 typedef struct CalibDbV2_Wb_Awb_Caga_s { 320 // M4_BOOL_DESC("enable", "1") 321 bool enable; 322 // M4_ARRAY_DESC("targetGain", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 323 float targetGain[4];//cagaTargetGain 324 // M4_NUMBER_DESC("laCalcFactor", "f32", M4_RANGE(0, 255), "0", M4_DIGIT(4)) 325 float laCalcFactor; 326 } CalibDbV2_Wb_Awb_Caga_t; 327 328 typedef struct CalibDbV2_Wb_Awb_Prob_Calc_Dt_s { 329 // M4_NUMBER_DESC("proDis_THH", "f32", M4_RANGE(0, 8), "0", M4_DIGIT(4)) 330 float proDis_THH; //threshold for distance probality calculation// rename to do 331 // M4_NUMBER_DESC("proDis_THL", "f32", M4_RANGE(0, 8), "0", M4_DIGIT(4)) 332 float proDis_THL; 333 } CalibDbV2_Wb_Awb_Prob_Calc_Dt_t; 334 335 typedef struct CalibDbV2_Wb_Awb_Prob_Calc_Lv_s { 336 // M4_NUMBER_DESC("outdoorLumaValThLow", "u32", M4_RANGE(0, 255000), "0", M4_DIGIT(0)) 337 unsigned int outdoorLumaValThLow; 338 // M4_NUMBER_DESC("outdoorLumaValThHigh", "u32", M4_RANGE(0, 255000), "0", M4_DIGIT(0)) 339 unsigned int outdoorLumaValThHigh;// threshold for luminance probality calculation 340 } CalibDbV2_Wb_Awb_Prob_Calc_Lv_t; 341 342 typedef struct CalibDbV2_Wb_Awb_Prob_Calc_Wp_s { 343 // M4_NUMBER_DESC("wpNumPercTh", "f32", M4_RANGE(0, 1), "0", M4_DIGIT(6)) 344 float wpNumPercTh; 345 // M4_NUMBER_DESC("wpNumPercTh2", "f32", M4_RANGE(0, 1), "0", M4_DIGIT(6)) 346 float wpNumPercTh2; 347 } CalibDbV2_Wb_Awb_Prob_Calc_Wp_t; 348 349 typedef struct CalibDbV2_Wb_Awb_Convg_s { 350 // M4_NUMBER_DESC("varThforUnDamp", "f32", M4_RANGE(0, 1), "0", M4_DIGIT(4)) 351 float varThforUnDamp; 352 // M4_NUMBER_DESC("varThforDamp", "f32", M4_RANGE(0, 1), "0", M4_DIGIT(4)) 353 float varThforDamp; 354 } CalibDbV2_Wb_Awb_Convg_t; 355 356 typedef struct CalibDbV2_Awb_Tolerance_s { 357 // M4_ARRAY_DESC("lumaValue", "f32", M4_SIZE(1,4), M4_RANGE(0,255000), "0", M4_DIGIT(0), M4_DYNAMIC(1)) 358 float* lumaValue; 359 int lumaValue_len; 360 // M4_ARRAY_DESC("toleranceValue", "f32", M4_SIZE(1,4), M4_RANGE(0,1), "0", M4_DIGIT(4), M4_DYNAMIC(1)) 361 float* toleranceValue; 362 int toleranceValue_len; 363 } CalibDbV2_Awb_Tolerance_t; 364 365 typedef struct CalibDbV2_Awb_runinterval_s { 366 // M4_ARRAY_DESC("lumaValue", "f32", M4_SIZE(1,4), M4_RANGE(0,255000), "0", M4_DIGIT(0), M4_DYNAMIC(1)) 367 float *lumaValue; 368 int lumaValue_len; 369 // M4_ARRAY_DESC("intervalValue", "f32", M4_SIZE(1,4), M4_RANGE(0,255), "0", M4_DIGIT(0), M4_DYNAMIC(1)) 370 float *intervalValue; 371 int intervalValue_len; 372 } CalibDbV2_Awb_runinterval_t; 373 374 typedef struct CalibDbV2_Awb_DampFactor_s { 375 // M4_NUMBER_DESC("dFStep", "f32", M4_RANGE(0, 1), "0", M4_DIGIT(4)) 376 float dFStep; 377 // M4_NUMBER_DESC("dFMin", "f32", M4_RANGE(0, 1), "0", M4_DIGIT(4)) 378 float dFMin; 379 // M4_NUMBER_DESC("dFMax", "f32", M4_RANGE(0, 1), "0", M4_DIGIT(4)) 380 float dFMax; 381 // M4_NUMBER_DESC("lvIIRsize", "u32", M4_RANGE(0, 128), "0", M4_DIGIT(0)) 382 int lvIIRsize; 383 // M4_NUMBER_DESC("lvVarTh", "f32", M4_RANGE(0, 100), "0", M4_DIGIT(4)) 384 float lvVarTh; 385 } CalibDbV2_Awb_DampFactor_t; 386 387 typedef struct CalibDbV2_Awb_Cct_Lut_Cfg_Lv_s { 388 // M4_NUMBER_DESC("lumaValue", "f32", M4_RANGE(0, 255000), "0", M4_DIGIT(0)) 389 float lumaValue; 390 // M4_NUMBER_DESC("ct_grid_num", "s32", M4_RANGE(0, 32), "0", M4_DIGIT(0)) 391 int ct_grid_num; 392 // M4_NUMBER_DESC("cri_grid_num", "s32", M4_RANGE(0, 32), "0", M4_DIGIT(0)) 393 int cri_grid_num; 394 // M4_ARRAY_DESC("ct_in_range", "f32", M4_SIZE(1,2), M4_RANGE(0,10000), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 395 float ct_in_range[2];//min,max, equal distance sapmle 396 // M4_ARRAY_DESC("cri_in_range", "f32", M4_SIZE(1,2), M4_RANGE(-2,2), "0", M4_DIGIT(4), M4_DYNAMIC(0)) 397 float cri_in_range[2];//min,max 398 // M4_ARRAY_DESC("ct_lut_out", "f32", M4_SIZE(9,7), M4_RANGE(0,10000), "0", M4_DIGIT(0), M4_DYNAMIC(1)) 399 float *ct_lut_out; 400 int ct_lut_out_len; 401 // M4_ARRAY_DESC("cri_lut_out", "f32", M4_SIZE(9,7), M4_RANGE(-2,2), "0", M4_DIGIT(4), M4_DYNAMIC(1)) 402 float *cri_lut_out; 403 int cri_lut_out_len; 404 } CalibDbV2_Awb_Cct_Lut_Cfg_Lv_t; 405 406 typedef struct CalibDbV2_Awb_GainAdjust_s { 407 // M4_BOOL_DESC("enable", "1") 408 bool enable; 409 // M4_STRUCT_LIST_DESC("lutAll", M4_SIZE(1,8), "normal_ui_style") 410 CalibDbV2_Awb_Cct_Lut_Cfg_Lv_t *lutAll; 411 int lutAll_len; 412 } CalibDbV2_Awb_GainAdjust_t; 413 414 415 typedef struct CalibDbV2_Awb_Cct_Lut_Cfg_Lv2_s { 416 // M4_NUMBER_DESC("ctlData", "f32", M4_RANGE(0, 255000), "0", M4_DIGIT(1)) 417 float ctlData; 418 // M4_ARRAY_DESC("rgct_in_ds", "f32", M4_SIZE(1,9), M4_RANGE(0,10000), "0", M4_DIGIT(4), M4_DYNAMIC(0)) 419 float rgct_in_ds[CALD_AWB_RGCT_GRID_NUM];//min,max 420 // M4_ARRAY_DESC("bgcri_in_ds", "f32", M4_SIZE(1,11), M4_RANGE(-2,8), "0", M4_DIGIT(4), M4_DYNAMIC(0)) 421 float bgcri_in_ds[CALD_AWB_BGCRI_GRID_NUM];//max,min 422 // M4_ARRAY_DESC("rgct_lut_out", "f32", M4_SIZE(11,9), M4_RANGE(0,10000), "0", M4_DIGIT(4), M4_DYNAMIC(0)) 423 float rgct_lut_out[CALD_AWB_RGCT_GRID_NUM*CALD_AWB_BGCRI_GRID_NUM]; 424 // M4_ARRAY_DESC("bgcri_lut_out", "f32", M4_SIZE(11,9), M4_RANGE(-2,8), "0", M4_DIGIT(4), M4_DYNAMIC(0)) 425 float bgcri_lut_out[CALD_AWB_RGCT_GRID_NUM*CALD_AWB_BGCRI_GRID_NUM]; 426 } CalibDbV2_Awb_Cct_Lut_Cfg_Lv2_t; 427 428 429 typedef enum CalibDbV2_Awb_Ctrl_Dat_Selt_e{ 430 AWB_CTRL_DATA_ISO = 0, 431 AWB_CTRL_DATA_LV = 1, 432 }CalibDbV2_Awb_Ctrl_Dat_Selt_t; 433 434 typedef enum CalibDbV2_Awb_Gain_Adj_Dat_Sl_e{ 435 AWB_GAIN_ADJ_DATA_GAIN = 0, 436 AWB_GAIN_ADJ_DATA_CT = 1, 437 }CalibDbV2_Awb_Gain_Adj_Dat_Sl_t; 438 439 typedef struct CalibDbV2_Awb_GainAdjust2_s { 440 // M4_BOOL_DESC("enable", "1") 441 bool enable; 442 // M4_ENUM_DESC("ctrlDataSelt", "CalibDbV2_Awb_Ctrl_Dat_Selt_t", "AWB_CTRL_DATA_LV") 443 CalibDbV2_Awb_Ctrl_Dat_Selt_t ctrlDataSelt; 444 // M4_ENUM_DESC("adjDataSelt", "CalibDbV2_Awb_Gain_Adj_Dat_Sl_t", "AWB_GAIN_ADJ_DATA_GAIN") 445 CalibDbV2_Awb_Gain_Adj_Dat_Sl_t adjDataSelt; 446 // M4_STRUCT_LIST_DESC("lutAll", M4_SIZE(1,8), "normal_ui_style") 447 CalibDbV2_Awb_Cct_Lut_Cfg_Lv2_t *lutAll; 448 int lutAll_len; 449 } CalibDbV2_Awb_GainAdjust2_t; 450 451 452 typedef struct CalibDbV2_Awb_Remosaic_Para_s { 453 // M4_BOOL_DESC("enable", "1") 454 bool enable; 455 // M4_BOOL_DESC("applyInvWbGainEnable", "1") 456 bool applyInvWbGainEnable; 457 // M4_ARRAY_DESC("sensorWbGain", "f32", M4_SIZE(1,4), M4_RANGE(0,4), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 458 float sensorWbGain[4]; 459 } CalibDbV2_Awb_Remosaic_Para_t; 460 461 typedef struct CalibDbV2_Awb_xyRg_stb_WpTh_s { 462 // M4_ARRAY_DESC("lumaValue", "f32", M4_SIZE(1,5), M4_RANGE(0,255000), "0", M4_DIGIT(1), M4_DYNAMIC(1)) 463 float *lumaValue; 464 int lumaValue_len; 465 // M4_ARRAY_DESC("forBigType", "f32", M4_SIZE(1,5), M4_RANGE(0,100000), "0", M4_DIGIT(0), M4_DYNAMIC(1)) 466 float *forBigType; 467 int forBigType_len; 468 // M4_ARRAY_DESC("forExtraType", "f32", M4_SIZE(1,5), M4_RANGE(0,100000), "0", M4_DIGIT(0), M4_DYNAMIC(1)) 469 float *forExtraType; 470 int forExtraType_len; 471 } CalibDbV2_Awb_xyRg_stb_WpTh_t; 472 473 typedef struct CalibDbV2_Awb_xyRegion_stable_s { 474 // M4_BOOL_DESC("enable", "1") 475 bool enable; 476 // M4_ARRAY_TABLE_DESC("wpNumTh", "array_table_ui", M4_INDEX_DEFAULT) 477 CalibDbV2_Awb_xyRg_stb_WpTh_t wpNumTh; 478 // M4_NUMBER_DESC("xyTypeListSize", "s32", M4_RANGE(0, 65535), "0", M4_DIGIT(0)) 479 int xyTypeListSize;// xyTypeListSize ==0 will disable this function 480 // M4_NUMBER_DESC("varianceLumaTh", "f32", M4_RANGE(0, 100), "0", M4_DIGIT(4)) 481 float varianceLumaTh; 482 } CalibDbV2_Awb_xyRegion_stable_t; 483 484 typedef struct CalibDbV2_Awb_gain_offset_cfg_s { 485 // M4_BOOL_DESC("enable", "1") 486 bool enable; 487 // M4_ARRAY_DESC("offset", "f32", M4_SIZE(1,4), M4_RANGE(-8,8), "0", M4_DIGIT(4), M4_DYNAMIC(0)) 488 float offset[4];//rggb 489 } CalibDbV2_Awb_gain_offset_cfg_t; 490 491 typedef struct CalibDbV2_Awb_SmartRun_cfg_s { 492 // M4_ARRAY_DESC("lumaValue", "f32", M4_SIZE(1,5), M4_RANGE(0,255000), "0", M4_DIGIT(1), M4_DYNAMIC(1)) 493 float *lumaValue; 494 int lumaValue_len; 495 // M4_ARRAY_DESC("lvVarTh", "f32", M4_SIZE(1,5), M4_RANGE(0,255), "0", M4_DIGIT(4), M4_DYNAMIC(1)) 496 float *lvVarTh; 497 int lvVarTh_len; 498 // M4_ARRAY_DESC("wbgainAlgDiffTh", "f32", M4_SIZE(1,5), M4_RANGE(0,1), "0", M4_DIGIT(4), M4_DYNAMIC(1)) 499 float *wbgainAlgDiffTh; 500 int wbgainAlgDiffTh_len; 501 // M4_ARRAY_DESC("wbgainHwDiffTh", "f32", M4_SIZE(1,5), M4_RANGE(0,1), "0", M4_DIGIT(4), M4_DYNAMIC(1)) 502 float *wbgainHwDiffTh; 503 int wbgainHwDiffTh_len; 504 } CalibDbV2_Awb_SmartRun_cfg_t; 505 506 typedef struct CalibDbV2_Awb_SmartRun_s { 507 // M4_BOOL_DESC("enable", "1") 508 bool enable; 509 // M4_ARRAY_TABLE_DESC("cfg", "array_table_ui", M4_INDEX_DEFAULT) 510 CalibDbV2_Awb_SmartRun_cfg_t cfg; 511 } CalibDbV2_Awb_SmartRun_t; 512 513 typedef struct CalibDbV2_Wb_Awb_Ext_Com_Para_t { 514 // M4_STRING_DESC("lightSourceForFirstFrame", M4_SIZE(1,1), M4_RANGE(-128, 127), "default", M4_DYNAMIC(0)) 515 char *lightSourceForFirstFrame; 516 // M4_STRUCT_DESC("smartRun", "normal_ui_style") 517 CalibDbV2_Awb_SmartRun_t smartRun; 518 // M4_ARRAY_TABLE_DESC("tolerance", "array_table_ui", M4_INDEX_DEFAULT) 519 CalibDbV2_Awb_Tolerance_t tolerance;//wb gain diff th for awb gain update, set 0 to disable this function 520 // M4_ARRAY_TABLE_DESC("runInterval", "array_table_ui", M4_INDEX_DEFAULT) 521 CalibDbV2_Awb_runinterval_t runInterval; 522 // M4_STRUCT_DESC("dampFactor", "normal_ui_style") 523 CalibDbV2_Awb_DampFactor_t dampFactor; 524 // M4_STRUCT_DESC("wbGainAdjust", "normal_ui_style") 525 CalibDbV2_Awb_GainAdjust_t wbGainAdjust; 526 // M4_STRUCT_DESC("wbGainDaylightClip", "normal_ui_style") 527 CalibDbV2_Awb_DaylgtClip_Cfg_t wbGainDaylightClip; 528 // M4_STRUCT_DESC("wbGainClip", "normal_ui_style") 529 CalibDbV2_Awb_Cct_Clip_Cfg_t wbGainClip; 530 // M4_STRUCT_DESC("division", "normal_ui_style") 531 CalibDbV2_Wb_Awb_Div_t division; 532 // M4_ARRAY_DESC("defaultNightGain", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 533 float defaultNightGain[4]; 534 // M4_ARRAY_DESC("lumaValueMatrix", "u32", M4_SIZE(1,16), M4_RANGE(0,255000), "1", M4_DIGIT(0), M4_DYNAMIC(0)) 535 unsigned int lumaValueMatrix[CALD_AWB_LV_NUM_MAX]; 536 // M4_ARRAY_DESC("defaultNightGainWeight", "u8", M4_SIZE(1,16), M4_RANGE(0,100), "1", M4_DIGIT(0), M4_DYNAMIC(0)) 537 unsigned char defaultNightGainWeight[CALD_AWB_LV_NUM_MAX]; 538 // M4_STRUCT_DESC("probCalcDis", "normal_ui_style") 539 CalibDbV2_Wb_Awb_Prob_Calc_Dt_t probCalcDis; 540 // M4_STRUCT_DESC("probCalcLv", "normal_ui_style") 541 CalibDbV2_Wb_Awb_Prob_Calc_Lv_t probCalcLv; 542 // M4_STRUCT_DESC("probCalcWp", "normal_ui_style") 543 CalibDbV2_Wb_Awb_Prob_Calc_Wp_t probCalcWp; 544 // M4_STRUCT_DESC("converged", "normal_ui_style") 545 CalibDbV2_Wb_Awb_Convg_t converged; 546 // M4_STRUCT_DESC("xyRegionStableSelection", "normal_ui_style") 547 CalibDbV2_Awb_xyRegion_stable_t xyRegionStableSelection; 548 // M4_ARRAY_DESC("weightForNightGainCalc", "u8", M4_SIZE(1,16), M4_RANGE(0,100), "1", M4_DIGIT(0), M4_DYNAMIC(1)) 549 unsigned char *weightForNightGainCalc; 550 int weightForNightGainCalc_len; 551 // M4_STRUCT_DESC("singleColorProces", "normal_ui_style") 552 CalibDbV2_Awb_Sgc_t singleColorProces; 553 // M4_ARRAY_DESC("lineRgBg", "f32", M4_SIZE(1,3), M4_RANGE(-2147483648,2147483647), "1", M4_DIGIT(6), M4_DYNAMIC(0), M4_HIDE(1)) 554 float lineRgBg[3]; 555 // M4_ARRAY_DESC("lineRgProjCCT", "f32", M4_SIZE(1,3), M4_RANGE(-2147483648,2147483647), "1", M4_DIGIT(6), M4_DYNAMIC(0), M4_HIDE(1)) 556 float lineRgProjCCT[3]; 557 // M4_STRUCT_DESC("chrAdpttAdj", "normal_ui_style", M4_HIDE(1)) 558 CalibDbV2_Wb_Awb_Caga_t chrAdpttAdj; 559 // M4_STRUCT_DESC("remosaicCfg", "normal_ui_style") 560 CalibDbV2_Awb_Remosaic_Para_t remosaicCfg; 561 // M4_STRUCT_DESC("wbGainOffset", "normal_ui_style") 562 CalibDbV2_Awb_gain_offset_cfg_t wbGainOffset; 563 } CalibDbV2_Wb_Awb_Ext_Com_Para_t; 564 565 566 typedef struct CalibDbV2_Awb_Ava_Site_Rec_s{ 567 // M4_BOOL_DESC("enable", "1") 568 bool enable; 569 // M4_ARRAY_DESC("frameNum", "u32", M4_SIZE(1,1), M4_RANGE(0,255), "3", M4_DIGIT(0), M4_DYNAMIC(0)) 570 unsigned int frameNum; 571 // M4_STRING_DESC("fullFileName", M4_SIZE(1,1), M4_RANGE(0, 255), "/tmp/avaSiteInfo", M4_DYNAMIC(0)) 572 char fullFileName[100]; 573 // M4_BOOL_DESC("avaEnable", "1") 574 bool avaEnable; 575 // M4_ARRAY_DESC("wbgainTh", "f32", M4_SIZE(1,1), M4_RANGE(0,8), "0.2", M4_DIGIT(4), M4_DYNAMIC(0)) 576 float wbgainTh; 577 // M4_ARRAY_DESC("wbgainTh", "f32", M4_SIZE(1,1), M4_RANGE(0,255), "2", M4_DIGIT(4), M4_DYNAMIC(0)) 578 float lvValueTh; 579 }CalibDbV2_Awb_Ava_Site_Rec_t; 580 581 582 typedef struct CalibDbV2_Wb_Awb_Ext_Para_V32_s { 583 // M4_STRING_DESC("lightSourceForFirstFrame", M4_SIZE(1,1), M4_RANGE(-128, 127), "default", M4_DYNAMIC(0)) 584 char *lightSourceForFirstFrame; 585 // M4_STRUCT_DESC("smartRun", "normal_ui_style") 586 CalibDbV2_Awb_SmartRun_t smartRun; 587 // M4_ARRAY_TABLE_DESC("tolerance", "array_table_ui", M4_INDEX_DEFAULT) 588 CalibDbV2_Awb_Tolerance_t tolerance;//wb gain diff th for awb gain update, set 0 to disable this function 589 // M4_ARRAY_TABLE_DESC("runInterval", "array_table_ui", M4_INDEX_DEFAULT) 590 CalibDbV2_Awb_runinterval_t runInterval; 591 // M4_STRUCT_DESC("dampFactor", "normal_ui_style") 592 CalibDbV2_Awb_DampFactor_t dampFactor; 593 // M4_STRUCT_DESC("wbGainAdjust", "normal_ui_style") 594 CalibDbV2_Awb_GainAdjust2_t wbGainAdjust; 595 // M4_STRUCT_DESC("wbGainDaylightClip", "normal_ui_style") 596 CalibDbV2_Awb_DaylgtClip_Cfg_t wbGainDaylightClip; 597 // M4_STRUCT_DESC("wbGainClip", "normal_ui_style") 598 CalibDbV2_Awb_Cct_Clip_Cfg_t wbGainClip; 599 // M4_STRUCT_DESC("division", "normal_ui_style") 600 CalibDbV2_Wb_Awb_Div_t division; 601 // M4_ARRAY_DESC("defaultNightGain", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 602 float defaultNightGain[4]; 603 // M4_ARRAY_DESC("lumaValueMatrix", "u32", M4_SIZE(1,16), M4_RANGE(0,255000), "1", M4_DIGIT(0), M4_DYNAMIC(0)) 604 unsigned int lumaValueMatrix[CALD_AWB_LV_NUM_MAX]; 605 // M4_ARRAY_DESC("defaultNightGainWeight", "u8", M4_SIZE(1,16), M4_RANGE(0,100), "1", M4_DIGIT(0), M4_DYNAMIC(0)) 606 unsigned char defaultNightGainWeight[CALD_AWB_LV_NUM_MAX]; 607 // M4_STRUCT_DESC("probCalcDis", "normal_ui_style") 608 CalibDbV2_Wb_Awb_Prob_Calc_Dt_t probCalcDis; 609 // M4_STRUCT_DESC("probCalcLv", "normal_ui_style") 610 CalibDbV2_Wb_Awb_Prob_Calc_Lv_t probCalcLv; 611 // M4_STRUCT_DESC("probCalcWp", "normal_ui_style") 612 CalibDbV2_Wb_Awb_Prob_Calc_Wp_t probCalcWp; 613 // M4_STRUCT_DESC("converged", "normal_ui_style") 614 CalibDbV2_Wb_Awb_Convg_t converged; 615 // M4_STRUCT_DESC("xyRegionStableSelection", "normal_ui_style") 616 CalibDbV2_Awb_xyRegion_stable_t xyRegionStableSelection; 617 // M4_ARRAY_DESC("weightForNightGainCalc", "u8", M4_SIZE(1,16), M4_RANGE(0,100), "1", M4_DIGIT(0), M4_DYNAMIC(1)) 618 unsigned char *weightForNightGainCalc; 619 int weightForNightGainCalc_len; 620 // M4_STRUCT_DESC("singleColorProces", "normal_ui_style") 621 CalibDbV2_Awb_Sgc_t singleColorProces; 622 // M4_ARRAY_DESC("lineRgBg", "f32", M4_SIZE(1,3), M4_RANGE(-2147483648,2147483647), "1", M4_DIGIT(6), M4_DYNAMIC(0), M4_HIDE(1)) 623 float lineRgBg[3]; 624 // M4_ARRAY_DESC("lineRgProjCCT", "f32", M4_SIZE(1,3), M4_RANGE(-2147483648,2147483647), "1", M4_DIGIT(6), M4_DYNAMIC(0), M4_HIDE(1)) 625 float lineRgProjCCT[3]; 626 // M4_STRUCT_DESC("remosaicCfg", "normal_ui_style") 627 CalibDbV2_Awb_Remosaic_Para_t remosaicCfg; 628 // M4_STRUCT_DESC("wbGainOffset", "normal_ui_style") 629 CalibDbV2_Awb_gain_offset_cfg_t wbGainOffset; 630 // M4_STRUCT_DESC("avaSiteRec", "normal_ui_style") 631 CalibDbV2_Awb_Ava_Site_Rec_t avaSiteRec; 632 } CalibDbV2_Wb_Awb_Ext_Para_V32_t; 633 634 typedef struct CalibDbV2_Wb_Awb_Para_V20_t { 635 // M4_STRUCT_DESC("hdrPara", "normal_ui_style") 636 CalibDbV2_Awb_Hdr_Fr_Ch_t hdrPara; 637 // M4_BOOL_DESC("lscBypassEnable", "0"); 638 bool lscBypassEnable; 639 // M4_BOOL_DESC("uvDetectionEnable", "1"); 640 bool uvDetectionEnable; 641 // M4_BOOL_DESC("xyDetectionEnable", "1"); 642 bool xyDetectionEnable; 643 // M4_BOOL_DESC("yuvDetectionEnable", "1"); 644 bool yuvDetectionEnable; 645 // CXF CHECK 646 // M4_STRING_DESC("lsUsedForYuvDet", M4_SIZE(1,7), M4_RANGE(-128,127), "light", M4_DYNAMIC(1), M4_HIDE(1)); 647 char** lsUsedForYuvDet; 648 int lsUsedForYuvDet_len; 649 // M4_NUMBER_DESC("yuvDetRef_u", "u8", M4_RANGE(0,255), "0", M4_DIGIT(0), M4_HIDE(1)) 650 unsigned char yuvDetRef_u; //8u //cxf3333 651 // M4_ENUM_DESC("downScaleMode", "CalibDbV2_Awb_Down_Scale_Mode_t","CALIB_AWB_DS_4X4"); 652 CalibDbV2_Awb_Down_Scale_Mode_t downScaleMode; 653 // M4_ENUM_DESC("blkMeasureMode", "CalibDbV2_Awb_Blk_Stat_V20_t","CALIB_AWB_BLK_STAT_MODE_AL_V200"); 654 CalibDbV2_Awb_Blk_Stat_V20_t blkMeasureMode; 655 // M4_STRUCT_DESC("mainWindow", "normal_ui_style") 656 CalibDbV2_StatWindow_t mainWindow; 657 // M4_ARRAY_TABLE_DESC("limitRange", "array_table_ui", M4_INDEX_DEFAULT) 658 CalibDbV2_Awb_Limit_Range_t limitRange; 659 // M4_STRUCT_DESC("rgb2TcsPara", "normal_ui_style", M4_HIDE(1)) 660 CalibDbV2_Rgb2Tcs_t rgb2TcsPara; 661 // M4_STRUCT_DESC("multiWindow", "normal_ui_style") 662 CalibDbV2_Awb_Mul_Win_t multiWindow; 663 // M4_STRUCT_LIST_DESC("extraWpRange", M4_SIZE(1,7), "normal_ui_style") 664 CalibDbV2_ExtRange_t extraWpRange[CALD_AWB_EXCRANGE_NUM_MAX]; 665 // M4_STRUCT_LIST_DESC("lightSources", M4_SIZE(1,7), "normal_ui_style") 666 CalibDbV2_Awb_Light_V20_t* lightSources; 667 int lightSources_len; 668 } CalibDbV2_Wb_Awb_Para_V20_t; 669 670 typedef struct CalibDbV2_Awb_Lu_Wgt_En_Th_s { 671 // M4_NUMBER_DESC("wpDiffWeiNoTh", "f32", M4_RANGE(0,1), "0", M4_DIGIT(4)) 672 float wpDiffWeiNoTh; 673 // M4_NUMBER_DESC("wpDiffWeiLvValueTh", "u32", M4_RANGE(0,255000), "0", M4_DIGIT(0)) 674 unsigned int wpDiffWeiLvValueTh; 675 } CalibDbV2_Awb_Lu_Wgt_En_Th_t; 676 677 typedef struct CalibDbV2_Awb_Lum_Wgt_Lv_Rto_s { 678 // M4_NUMBER_DESC("ratioValue", "f32", M4_RANGE(0,1), "0", M4_DIGIT(4)) 679 float ratioValue; 680 // M4_ARRAY_DESC("weight", "f32", M4_SIZE(1,9), M4_RANGE(0,1), "0", M4_DIGIT(4), M4_DYNAMIC(0)) 681 float weight[9] ; 682 } CalibDbV2_Awb_Lum_Wgt_Lv_Rto_t; 683 684 typedef struct CalibDbV2_Awb_Luma_Weight_Lv_s { 685 // M4_NUMBER_DESC("LvValue", "f32", M4_RANGE(0,255000), "0", M4_DIGIT(0)) 686 float LvValue; 687 // M4_STRUCT_LIST_DESC("ratioSet", M4_SIZE(1,4), "normal_ui_style") 688 CalibDbV2_Awb_Lum_Wgt_Lv_Rto_t* ratioSet; 689 int ratioSet_len; 690 } CalibDbV2_Awb_Luma_Weight_Lv_t; 691 692 typedef struct CalibDbV2_Awb_Luma_Weight_s { 693 //with differernt luma ,the different weight in WP sum 694 // M4_BOOL_DESC("enable", "0"); 695 bool enable; 696 // M4_STRUCT_DESC("wpDiffWeiEnableTh", "normal_ui_style") 697 CalibDbV2_Awb_Lu_Wgt_En_Th_t wpDiffWeiEnableTh; 698 // M4_ARRAY_DESC("wpDiffwei_y", "u8", M4_SIZE(1,9), M4_RANGE(0,255), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 699 unsigned char wpDiffwei_y[9]; 700 // M4_ARRAY_DESC("perfectBin", "u8", M4_SIZE(1,8), M4_RANGE(0,1), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 701 unsigned char perfectBin[8];// true means the luma is appropriate 702 // M4_STRUCT_LIST_DESC("wpDiffWeightLvSet", M4_SIZE(1,4), "normal_ui_style") 703 CalibDbV2_Awb_Luma_Weight_Lv_t* wpDiffWeightLvSet; 704 int wpDiffWeightLvSet_len; 705 } CalibDbV2_Awb_Luma_Weight_t; 706 707 708 typedef struct CalibDbV2_ExtR_Wei_V32_s { 709 // M4_ARRAY_DESC("lumaValue", "f32", M4_SIZE(1,5), M4_RANGE(0,255000), "0", M4_DIGIT(1), M4_DYNAMIC(1)) 710 float* lumaValue; 711 int lumaValue_len; 712 // M4_ARRAY_DESC("weight", "f32", M4_SIZE(1,5), M4_RANGE(0,5), "0",M4_DIGIT(4), M4_DYNAMIC(1)) 713 float* weight; 714 int weight_len; 715 } CalibDbV2_ExtR_Wei_V32_t; 716 717 typedef struct CalibDbV2_Awb_Light_V21_s { 718 // M4_STRING_DESC("name", M4_SIZE(1,1), M4_RANGE(0, 32), "default", M4_DYNAMIC(0)) 719 char* name; 720 // M4_ENUM_DESC("doorType", "CalibDbV2_Awb_DoorType_t", "CALIB_AWB_DOOR_TYPE_AMBIGUITY") 721 CalibDbV2_Awb_DoorType_t doorType; 722 // M4_ARRAY_DESC("standardGainValue", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "0", M4_DIGIT(4), M4_DYNAMIC(0)) 723 float standardGainValue[4]; 724 // M4_ARRAY_TABLE_DESC("uvRegion", "array_table_ui", M4_INDEX_DEFAULT) 725 CalibDbV2_Uv_Range_Ill_t uvRegion; 726 // M4_ARRAY_TABLE_DESC("xyRegion", "array_table_ui", M4_INDEX_DEFAULT) 727 CalibDbV2_Tcs_Range_Ill2_t xyRegion; 728 // M4_STRUCT_DESC("rtYuvRegion", "normal_ui_style") 729 CalibDbV2_Yuv3D_2_Range_Ill_t rtYuvRegion; 730 // M4_ARRAY_DESC("staWeight", "u8", M4_SIZE(1,16), M4_RANGE(0,100), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 731 unsigned char staWeight[CALD_AWB_LV_NUM_MAX]; 732 // M4_ARRAY_DESC("dayGainLvThSet", "u8", M4_SIZE(1,2), M4_RANGE(0,255000), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 733 unsigned int dayGainLvThSet[2]; 734 // M4_ARRAY_DESC("defaultDayGainLow", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 735 float defaultDayGainLow[4];//spatial gain 736 // M4_ARRAY_DESC("defaultDayGainHigh", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 737 float defaultDayGainHigh[4]; 738 // M4_NUMBER_DESC("xyType2Enable", "u8", M4_RANGE(0,1), "1", M4_DIGIT(0), M4_HIDE(1)) 739 unsigned char xyType2Enable; 740 // M4_ARRAY_TABLE_DESC("weight", "array_table_ui", M4_INDEX_DEFAULT) 741 CalibDbV2_ExtR_Wei_V32_t weight; 742 } CalibDbV2_Awb_Light_V21_t; 743 744 typedef struct CalibDbV2_Wb_Awb_Para_V21_t { 745 // M4_STRUCT_DESC("hdrPara", "normal_ui_style") 746 CalibDbV2_Awb_Hdr_Fr_Ch_t hdrPara;//hdrFrameChoose; 747 // M4_BOOL_DESC("lscBypassEnable", "0"); 748 bool lscBypassEnable; 749 // M4_BOOL_DESC("uvDetectionEnable", "0"); 750 bool uvDetectionEnable; 751 // M4_BOOL_DESC("xyDetectionEnable", "0"); 752 bool xyDetectionEnable; 753 // M4_BOOL_DESC("yuvDetectionEnable", "0"); 754 bool yuvDetectionEnable; 755 // M4_STRING_DESC("lsUsedForYuvDet", M4_SIZE(1,7), M4_RANGE(0, 16), "default", M4_DYNAMIC(1), M4_HIDE(1)) 756 char** lsUsedForYuvDet; 757 int lsUsedForYuvDet_len; 758 // M4_BOOL_DESC("blkStatisticsEnable", "0"); 759 bool blkStatisticsEnable; 760 // M4_ENUM_DESC("downScaleMode", "CalibDbV2_Awb_Down_Scale_Mode_t", "CALIB_AWB_DS_8X8") 761 CalibDbV2_Awb_Down_Scale_Mode_t downScaleMode; 762 // M4_ENUM_DESC("blkMeasureMode", "CalibDbV2_Awb_Blk_Stat_V21_t", "CALIB_AWB_BLK_STAT_MODE_WP_V201") 763 CalibDbV2_Awb_Blk_Stat_V21_t blkMeasureMode; 764 // M4_STRUCT_DESC("mainWindow", "normal_ui_style") 765 CalibDbV2_StatWindow_t mainWindow; 766 // M4_ARRAY_TABLE_DESC("limitRange", "array_table_ui", M4_INDEX_DEFAULT) 767 CalibDbV2_Awb_Limit_Range_t limitRange; 768 // M4_STRUCT_DESC("rgb2TcsPara", "normal_ui_style", M4_HIDE(1)) 769 CalibDbV2_Rgb2Tcs_t rgb2TcsPara; 770 // M4_ARRAY_DESC("rgb2RotationYuvMat", "f32", M4_SIZE(4,4), M4_RANGE(-255,255), "0", M4_DIGIT(6), M4_DYNAMIC(0), M4_HIDE(1)) 771 float rgb2RotationYuvMat[16]; 772 //several winow in uv or xy domain 773 // M4_STRUCT_LIST_DESC("extraWpRange", M4_SIZE(1,7), "normal_ui_style") 774 CalibDbV2_ExtRange_t extraWpRange[CALD_AWB_EXCRANGE_NUM_MAX]; 775 // M4_STRUCT_DESC("wpDiffLumaWeight", "normal_ui_style") 776 CalibDbV2_Awb_Luma_Weight_t wpDiffLumaWeight; 777 // M4_BOOL_DESC("wpDiffBlkWeiEnable", "0"); 778 bool wpDiffBlkWeiEnable; 779 // M4_ARRAY_DESC("wpDiffBlkWeight", "u16", M4_SIZE(15,15), M4_RANGE(0,63), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 780 unsigned short wpDiffBlkWeight[CALD_AWB_GRID_NUM_TOTAL]; 781 // M4_STRUCT_LIST_DESC("lightSources", M4_SIZE(1,7), "normal_ui_style") 782 CalibDbV2_Awb_Light_V21_t* lightSources; 783 int lightSources_len; 784 } CalibDbV2_Wb_Awb_Para_V21_t; 785 786 typedef enum CalibDbV2_Wb_Mwb_Mode_e { 787 CALIB_MWB_MODE_CCT = 1, /**< run manual white balance by cct*/ 788 CALIB_MWB_MODE_WBGAIN = 2, /**< run manual white balance by wbgain*/ 789 CALIB_MWB_MODE_SCENE = 3, /**< run manual white balance by scene selection*/ 790 } CalibDbV2_Wb_Mwb_Mode_t; 791 792 typedef enum CalibDbV2_Wb_Mwb_Scene_e { 793 CALIB_WB_SCENE_INCANDESCENT = 0, 794 CALIB_WB_SCENE_FLUORESCENT, 795 CALIB_WB_SCENE_WARM_FLUORESCENT, 796 CALIB_WB_SCENE_DAYLIGHT, 797 CALIB_WB_SCENE_CLOUDY_DAYLIGHT, 798 CALIB_WB_SCENE_TWILIGHT, 799 CALIB_WB_SCENE_SHADE 800 } CalibDbV2_Wb_Mwb_Scene_t; 801 802 typedef struct CalibDbV2_Awb_Cct_s { 803 // M4_NUMBER_DESC("CCT", "f32", M4_RANGE(0,10000), "5000", M4_DIGIT(0)) 804 float CCT; 805 // CXF CHECK 806 // M4_NUMBER_DESC("CCRI", "f32", M4_RANGE(-2,2), "0", M4_DIGIT(3)) 807 float CCRI; 808 } CalibDbV2_Awb_Cct_t; 809 typedef struct CalibDbV2_Wb_Mwb_Cfg_Para_s { 810 // M4_ARRAY_DESC("mwbGain", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1.0", M4_DIGIT(4), M4_DYNAMIC(0)) 811 float mwbGain[4]; 812 // M4_ENUM_DESC("scene", "CalibDbV2_Wb_Mwb_Scene_t", "CALIB_WB_SCENE_DAYLIGHT"); 813 CalibDbV2_Wb_Mwb_Scene_t scene; 814 // M4_STRUCT_DESC("cct", "normal_ui_style") 815 CalibDbV2_Awb_Cct_t cct; 816 } CalibDbV2_Wb_Mwb_Cfg_Para_t; 817 818 typedef struct CalibDbV2_Wb_Mwb_Para_s { 819 // M4_ENUM_DESC("mode", "CalibDbV2_Wb_Mwb_Mode_t", "CALIB_MWB_MODE_WBGAIN"); 820 CalibDbV2_Wb_Mwb_Mode_t mode; 821 // M4_STRUCT_DESC("cfg", "normal_ui_style") 822 CalibDbV2_Wb_Mwb_Cfg_Para_t cfg; 823 } CalibDbV2_Wb_Mwb_Para_t; 824 825 typedef enum CalibDbV2_Wb_Op_Mode_e { 826 CALIB_WB_MODE_MANUAL = 0, /**< run manual white balance */ 827 CALIB_WB_MODE_AUTO = 1, /**< run auto white balance */ 828 } CalibDbV2_Wb_Op_Mode_t; 829 830 typedef struct CalibDbV2_Wb_Para_t { 831 // M4_BOOL_DESC("byPass", "0"); 832 bool byPass; 833 // M4_ENUM_DESC("mode", "CalibDbV2_Wb_Op_Mode_t", "CALIB_WB_MODE_AUTO"); 834 CalibDbV2_Wb_Op_Mode_t mode;//replace awbEnable 835 } CalibDbV2_Wb_Para_t; 836 837 typedef struct CalibDbV2_Wb_Para_V20_s { 838 // M4_STRUCT_DESC("control", "normal_ui_style") 839 CalibDbV2_Wb_Para_t control; 840 // M4_STRUCT_DESC("manualPara", "normal_ui_style") 841 CalibDbV2_Wb_Mwb_Para_t manualPara; 842 // M4_STRUCT_DESC("autoPara", "normal_ui_style") 843 CalibDbV2_Wb_Awb_Para_V20_t autoPara; 844 // M4_STRUCT_DESC("autoExtPara", "normal_ui_style") 845 CalibDbV2_Wb_Awb_Ext_Com_Para_t autoExtPara; 846 } CalibDbV2_Wb_Para_V20_t; 847 848 typedef struct CalibDbV2_Wb_Para_V21_s { 849 // M4_STRUCT_DESC("control", "normal_ui_style") 850 CalibDbV2_Wb_Para_t control; 851 // M4_STRUCT_DESC("manualPara", "normal_ui_style") 852 CalibDbV2_Wb_Mwb_Para_t manualPara; 853 // M4_STRUCT_DESC("autoPara", "normal_ui_style") 854 CalibDbV2_Wb_Awb_Para_V21_t autoPara; 855 // M4_STRUCT_DESC("autoExtPara", "normal_ui_style") 856 CalibDbV2_Wb_Awb_Ext_Com_Para_t autoExtPara; 857 } CalibDbV2_Wb_Para_V21_t; 858 859 typedef enum CalibDbV2_Awb_Raw_Select_Mode_s { 860 CALIB_AWB_INPUT_RAW_FIXED = 0, 861 CALIB_AWB_INPUT_RAW_AUTO = 1, 862 CALIB_AWB_INPUT_BAYERNR = 3, 863 CALIB_AWB_INPUT_DRC = 4, 864 } CalibDbV2_Awb_Raw_Select_Mode_e; 865 866 typedef struct CalibDbV2_Awb_Raw_Select_s { 867 // M4_ENUM_DESC("frameChooseMode", "CalibDbV2_Awb_Raw_Select_Mode_e", "CALIB_AWB_INPUT_BAYERNR") 868 CalibDbV2_Awb_Raw_Select_Mode_e frameChooseMode; 869 // M4_NUMBER_DESC("frameChoose", "u8", M4_RANGE(0,2), "1", M4_DIGIT(0)) 870 unsigned char frameChoose; 871 } CalibDbV2_Awb_Raw_Select_t; 872 873 874 typedef struct CalibDbV2_ExtRange_V32_s { 875 // M4_ENUM_DESC("domain", "CalibDbV2_Awb_Ext_Range_Dom_t", "CALIB_AWB_EXTRA_RANGE_DOMAIN_UV") 876 CalibDbV2_Awb_Ext_Range_Dom_t domain;/*0uv domain,1 xy domain*/ 877 // M4_ENUM_DESC("mode", "CalibDbV2_Awb_Ext_Range_Mode_t", "CALIB_AWB_EXCLUDE_WP_MODE") 878 CalibDbV2_Awb_Ext_Range_Mode_t mode; 879 // M4_ARRAY_DESC("region", "s32", M4_SIZE(1,4), M4_RANGE(-8192, 8191), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 880 int region[4]; 881 // M4_ARRAY_TABLE_DESC("weightInculde", "array_table_ui", M4_INDEX_DEFAULT) 882 CalibDbV2_ExtR_Wei_V32_t weightInculde; 883 } CalibDbV2_ExtRange_V32_t; 884 885 typedef struct CalibDbV2_Awb_offset_data_s { 886 // M4_ARRAY_DESC("ISO", "f32", M4_SIZE(1,100), M4_RANGE(0,10000000), "50",M4_DIGIT(4), M4_DYNAMIC(1)) 887 float* ISO; 888 int ISO_len; 889 // M4_ARRAY_DESC("R_Channel", "f32", M4_SIZE(1,100), M4_RANGE(0,4095), "0",M4_DIGIT(4), M4_DYNAMIC(1)) 890 float* R_Channel; 891 int R_Channel_len; 892 // M4_ARRAY_DESC("Gr_Channel", "f32", M4_SIZE(1,100), M4_RANGE(0,4095), "0",M4_DIGIT(4), M4_DYNAMIC(1)) 893 float* Gr_Channel; 894 int Gr_Channel_len; 895 // M4_ARRAY_DESC("Gb_Channel", "f32", M4_SIZE(1,100), M4_RANGE(0,4095), "0",M4_DIGIT(4), M4_DYNAMIC(1)) 896 float* Gb_Channel; 897 int Gb_Channel_len; 898 // M4_ARRAY_DESC("B_Channel", "f32", M4_SIZE(1,100), M4_RANGE(0,4095), "0",M4_DIGIT(4), M4_DYNAMIC(1)) 899 float* B_Channel; 900 int B_Channel_len; 901 } CalibDbV2_Awb_offset_data_t; 902 903 typedef struct CalibDbV2_Awb_Blc_s { 904 // M4_BOOL_DESC("enable", "0"); 905 bool enable; 906 // M4_ARRAY_TABLE_DESC("offset", "array_table_ui", M4_INDEX_DEFAULT) 907 CalibDbV2_Awb_offset_data_t offset;//r gr gb b 908 } CalibDbV2_Awb_Blc_t; 909 910 typedef struct CalibDbV2_Awb_Limit_Range_V32_s { 911 // M4_ARRAY_DESC("lumaValue", "f32", M4_SIZE(1,5), M4_RANGE(0,255000), "0", M4_DIGIT(1), M4_DYNAMIC(1)) 912 float* lumaValue; 913 int lumaValue_len; 914 // M4_ARRAY_DESC("maxR", "f32", M4_SIZE(1,5), M4_RANGE(0,255), "0", M4_DIGIT(4), M4_DYNAMIC(1)) 915 float* maxR; 916 int maxR_len; 917 // M4_ARRAY_DESC("minR", "f32", M4_SIZE(1,5), M4_RANGE(0,255), "0", M4_DIGIT(4), M4_DYNAMIC(1)) 918 float * minR; 919 int minR_len; 920 // M4_ARRAY_DESC("maxG", "f32", M4_SIZE(1,5), M4_RANGE(0,255), "0", M4_DIGIT(4), M4_DYNAMIC(1)) 921 float * maxG; 922 int maxG_len; 923 // M4_ARRAY_DESC("minG", "f32", M4_SIZE(1,5), M4_RANGE(0,255), "0", M4_DIGIT(4), M4_DYNAMIC(1)) 924 float * minG; 925 int minG_len; 926 // M4_ARRAY_DESC("maxB", "f32", M4_SIZE(1,5), M4_RANGE(0,255), "0", M4_DIGIT(4), M4_DYNAMIC(1)) 927 float *maxB; 928 int maxB_len; 929 // M4_ARRAY_DESC("minB", "f32", M4_SIZE(1,5), M4_RANGE(0,255), "0", M4_DIGIT(4), M4_DYNAMIC(1)) 930 float * minB; 931 int minB_len; 932 // M4_ARRAY_DESC("maxY", "f32", M4_SIZE(1,5), M4_RANGE(0,255), "0", M4_DIGIT(4), M4_DYNAMIC(1)) 933 float * maxY; 934 int maxY_len; 935 // M4_ARRAY_DESC("minY", "f32", M4_SIZE(1,5), M4_RANGE(0,255), "0", M4_DIGIT(4), M4_DYNAMIC(1)) 936 float *minY; 937 int minY_len; 938 } CalibDbV2_Awb_Limit_Range_V32_t; 939 940 typedef enum CalibDbV2_Wb_Awb_EarlAct_mdoe_e { 941 CALIB_AWB_EARLACT_XYREG_AUTO = 0, 942 CALIB_AWB_EARLACT_XYREG_FIXED, 943 } CalibDbV2_Wb_Awb_EarlAct_mdoe_t; 944 945 typedef struct CalibDbV2_Tcs_Range_Ill3_s { 946 // M4_ARRAY_DESC("normal", "s32", M4_SIZE(1,4), M4_RANGE(-8192,8192), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 947 int normal[4]; 948 // M4_ARRAY_DESC("big", "s32", M4_SIZE(1,4), M4_RANGE(-8192,8192), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 949 int big[4]; 950 } CalibDbV2_Tcs_Range_Ill3_t; 951 952 typedef struct CalibDbV2_Wb_Awb_EarlAct_s { 953 // M4_BOOL_DESC("enable", "1"); 954 bool enable; 955 // M4_ENUM_DESC("mode", "CalibDbV2_Wb_Awb_EarlAct_mdoe_t", "CALIB_AWB_EARLACT_XYREG_AUTO") 956 CalibDbV2_Wb_Awb_EarlAct_mdoe_t mode; 957 // M4_STRUCT_LIST_DESC("xyRegion", M4_SIZE(1,4), "normal_ui_style") 958 CalibDbV2_Tcs_Range_Ill3_t xyRegion[4]; 959 } CalibDbV2_Wb_Awb_EarlAct_t; 960 961 typedef struct CalibDbV2_Awb_Light_V32_s { 962 // M4_STRING_DESC("name", M4_SIZE(1,1), M4_RANGE(0, 32), "default", M4_DYNAMIC(0)) 963 char* name; 964 // M4_ENUM_DESC("doorType", "CalibDbV2_Awb_DoorType_t", "CALIB_AWB_DOOR_TYPE_AMBIGUITY") 965 CalibDbV2_Awb_DoorType_t doorType; 966 // M4_ARRAY_DESC("standardGainValue", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "0", M4_DIGIT(4), M4_DYNAMIC(0)) 967 float standardGainValue[4]; 968 // M4_ARRAY_TABLE_DESC("uvRegion", "array_table_ui", M4_INDEX_DEFAULT) 969 CalibDbV2_Uv_Range_Ill_t uvRegion; 970 // M4_ARRAY_TABLE_DESC("xyRegion", "array_table_ui", M4_INDEX_DEFAULT) 971 CalibDbV2_Tcs_Range_Ill2_t xyRegion; 972 // M4_STRUCT_DESC("rtYuvRegion", "normal_ui_style") 973 CalibDbV2_Yuv3D_2_Range_Ill_t rtYuvRegion; 974 // M4_ARRAY_DESC("staWeight", "u8", M4_SIZE(1,16), M4_RANGE(0,100), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 975 unsigned char staWeight[CALD_AWB_LV_NUM_MAX]; 976 // M4_ARRAY_DESC("dayGainLvThSet", "u8", M4_SIZE(1,2), M4_RANGE(0,255000), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 977 unsigned int dayGainLvThSet[2]; 978 // M4_ARRAY_DESC("defaultDayGainLow", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 979 float defaultDayGainLow[4]; // spatial gain 980 // M4_ARRAY_DESC("defaultDayGainHigh", "f32", M4_SIZE(1,4), M4_RANGE(0,8), "1", M4_DIGIT(4), M4_DYNAMIC(0)) 981 float defaultDayGainHigh[4]; 982 // M4_ARRAY_TABLE_DESC("weight", "array_table_ui", M4_INDEX_DEFAULT) 983 CalibDbV2_ExtR_Wei_V32_t weight; 984 985 } CalibDbV2_Awb_Light_V32_t; 986 987 typedef struct CalibDbV2_Wb_Awb_Para_V32_t { 988 // M4_STRUCT_DESC("rawSelectPara", "normal_ui_style") 989 CalibDbV2_Awb_Raw_Select_t rawSelectPara;//hdrFrameChoose; 990 // M4_STRUCT_DESC("blc2ForAwb", "normal_ui_style") 991 CalibDbV2_Awb_Blc_t blc2ForAwb; 992 // M4_BOOL_DESC("lscBypass", "0"); 993 bool lscBypass; 994 // M4_BOOL_DESC("uvDetectionEnable", "0"); 995 bool uvDetectionEnable; 996 // M4_BOOL_DESC("xyDetectionEnable", "0"); 997 bool xyDetectionEnable; 998 // M4_BOOL_DESC("yuvDetectionEnable", "0"); 999 bool yuvDetectionEnable; 1000 // M4_BOOL_DESC("blkStatisticsEnable", "0"); 1001 bool blkStatisticsEnable; 1002 // M4_ENUM_DESC("downScaleMode", "CalibDbV2_Awb_Down_Scale_Mode_t", "CALIB_AWB_DS_8X8") 1003 CalibDbV2_Awb_Down_Scale_Mode_t downScaleMode; 1004 // M4_ENUM_DESC("blkMeasureMode", "CalibDbV2_Awb_Blk_Stat_V21_t", "CALIB_AWB_BLK_STAT_MODE_WP_V201") 1005 CalibDbV2_Awb_Blk_Stat_V21_t blkMeasureMode; 1006 // M4_STRUCT_DESC("mainWindow", "normal_ui_style") 1007 CalibDbV2_StatWindow_t mainWindow; 1008 // M4_ARRAY_TABLE_DESC("limitRange", "array_table_ui", M4_INDEX_DEFAULT) 1009 CalibDbV2_Awb_Limit_Range_V32_t limitRange; 1010 // M4_STRUCT_DESC("rgb2TcsPara", "normal_ui_style", M4_HIDE(1)) 1011 CalibDbV2_Rgb2Tcs_t rgb2TcsPara; 1012 // M4_ARRAY_DESC("rgb2RotationYuvMat", "f32", M4_SIZE(4,4), M4_RANGE(-255,255), "0", M4_DIGIT(6), M4_DYNAMIC(0), M4_HIDE(1)) 1013 float rgb2RotationYuvMat[16]; 1014 //several winow in uv or xy domain 1015 // M4_STRUCT_LIST_DESC("extraWpRange", M4_SIZE(1,7), "normal_ui_style") 1016 CalibDbV2_ExtRange_V32_t extraWpRange[CALD_AWB_EXCRANGE_NUM_MAX]; 1017 // M4_STRUCT_DESC("wpDiffLumaWeight", "normal_ui_style") 1018 CalibDbV2_Awb_Luma_Weight_t wpDiffLumaWeight; 1019 // M4_BOOL_DESC("wpDiffBlkWeiEnable", "0"); 1020 bool wpDiffBlkWeiEnable; 1021 #if ISP_HW_V32_LITE 1022 // M4_ARRAY_DESC("wpDiffBlkWeight", "u16", M4_SIZE(5,5), M4_RANGE(0,63), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 1023 unsigned short wpDiffBlkWeight[CALD_AWB_GRID_NUM_TOTAL_LITE]; 1024 #else 1025 // M4_ARRAY_DESC("wpDiffBlkWeight", "u16", M4_SIZE(15,15), M4_RANGE(0,63), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 1026 unsigned short wpDiffBlkWeight[CALD_AWB_GRID_NUM_TOTAL]; 1027 #endif 1028 // M4_STRUCT_LIST_DESC("lightSources", M4_SIZE(1,7), "normal_ui_style") 1029 CalibDbV2_Awb_Light_V32_t* lightSources; 1030 int lightSources_len; 1031 // M4_STRUCT_DESC("earlierAwbAct", "normal_ui_style") 1032 CalibDbV2_Wb_Awb_EarlAct_t earlierAwbAct; 1033 1034 } CalibDbV2_Wb_Awb_Para_V32_t; 1035 1036 1037 1038 1039 typedef struct CalibDbV2_Wb_Para_V32_s { 1040 // M4_STRUCT_DESC("control", "normal_ui_style") 1041 CalibDbV2_Wb_Para_t control; 1042 // M4_STRUCT_DESC("manualPara", "normal_ui_style") 1043 CalibDbV2_Wb_Mwb_Para_t manualPara; 1044 // M4_STRUCT_DESC("autoPara", "normal_ui_style") 1045 CalibDbV2_Wb_Awb_Para_V32_t autoPara; 1046 // M4_STRUCT_DESC("autoExtPara", "normal_ui_style") 1047 CalibDbV2_Wb_Awb_Ext_Para_V32_t autoExtPara; 1048 } CalibDbV2_Wb_Para_V32_t; 1049 1050 RKAIQ_END_DECLARE 1051 1052 #endif 1053