1 /* 2 * aec_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_AEC_HEAD_H__ 21 #define __CALIBDBV2_AEC_HEAD_H__ 22 23 #include "rk_aiq_comm.h" 24 25 RKAIQ_BEGIN_DECLARE 26 27 // #define M4_STRUCT_DESC(ALIAS, SIZE, UI_MODULE) 28 // #define M4_NUMBER_DESC(ALIAS, TYPE, SIZE, RANGE, DEFAULT) 29 // #define M4_STRING_DESC(ALIAS, SIZE, RANGE, DEFAULT) 30 // #define M4_ENUM_DESC(ALIAS, ENUM, DEFAULT) 31 32 #define AECV2_PIRIS_STEP_TABLE_MAX (1024) 33 #define AECV2_MAX_GRIDWEIGHT_NUM (225) 34 #define AECV2_MAX_HDRFRAME_NUM (3) 35 #define AECV2_HDCIRIS_DOT_MAX_NUM (256) 36 37 /*****************************************************************************/ 38 /** 39 * @brief ISP2.0 AEC enum Params 40 */ 41 /*****************************************************************************/ 42 typedef enum _CalibDb_HdrAeRatioTypeV2_e { 43 AECV2_HDR_RATIOTYPE_MODE_AUTO, 44 AECV2_HDR_RATIOTYPE_MODE_FIX, 45 } CalibDb_HdrAeRatioTypeV2_t; 46 47 typedef enum _CalibDb_AeStrategyModeV2_e { 48 AECV2_STRATEGY_MODE_LOWLIGHT, 49 AECV2_STRATEGY_MODE_HIGHLIGHT, 50 } CalibDb_AeStrategyModeV2_t; 51 52 typedef enum _CalibDb_AeHdrLongFrmModeV2_e { 53 AECV2_HDR_LONGFRMMODE_DISABLE = 0, 54 AECV2_HDR_LONGFRMMODE_AUTO = 1, 55 AECV2_HDR_LONGFRMMODE_ENABLE = 2, 56 } CalibDb_AeHdrLongFrmModeV2_t; 57 58 typedef enum _CalibDb_AecMeasAreaModeV2_e { 59 AECV2_MEASURE_AREA_AUTO = 0, 60 AECV2_MEASURE_AREA_UP, 61 AECV2_MEASURE_AREA_BOTTOM, 62 AECV2_MEASURE_AREA_LEFT, 63 AECV2_MEASURE_AREA_RIGHT, 64 AECV2_MEASURE_AREA_CENTER, 65 } CalibDb_AecMeasAreaModeV2_t; 66 67 typedef enum _CalibDb_FlickerFreqV2_e { 68 AECV2_FLICKER_FREQUENCY_OFF = 0, 69 AECV2_FLICKER_FREQUENCY_50HZ = 1, 70 AECV2_FLICKER_FREQUENCY_60HZ = 2, 71 AECV2_FLICKER_FREQUENCY_AUTO = 3, 72 } CalibDb_FlickerFreqV2_t; 73 74 typedef enum _CalibDb_AntiFlickerModeV2_e { 75 AECV2_ANTIFLICKER_AUTO_MODE, 76 AECV2_ANTIFLICKER_NORMAL_MODE, 77 } CalibDb_AntiFlickerModeV2_t; 78 79 typedef enum _CalibDb_IrisTypeV2_e { 80 IRISV2_DC_TYPE = 0, 81 IRISV2_P_TYPE = 1, 82 IRISV2_HDC_TYPE = 2, 83 } CalibDb_IrisTypeV2_t; 84 85 typedef enum _CalibDb_DelayTypeV2_e { 86 DELAY_TYPE_FRAME = 0, 87 DELAY_TYPE_TIME = 1, 88 } CalibDb_DelayTypeV2_t; 89 90 typedef enum _CalibDb_CamYRangeModeV2_e { 91 CAM_YRANGEV2_MODE_INVALID = 0, /**< invalid y range mode */ 92 CAM_YRANGEV2_MODE_FULL, /**< Y = 0.299 * R + 0.587 * G + 0.114 * B,full range BT601*/ 93 CAM_YRANGEV2_MODE_LIMITED, /**< Y = 16 + 0.25R + 0.5G + 0.1094B,limited range*/ 94 CAM_YRANGEV2_MODE_MAX, 95 } CalibDb_CamYRangeModeV2_t; 96 97 typedef enum _CalibDb_CamRawStatsModeV2_e { 98 CAM_RAWSTATSV2_MODE_INVALID = 0, /**< lower border (only for an internal evaluation) */ 99 CAM_RAWSTATSV2_MODE_R, /**< R channel */ 100 CAM_RAWSTATSV2_MODE_G, /**< G channel */ 101 CAM_RAWSTATSV2_MODE_B, /**< B channel */ 102 CAM_RAWSTATSV2_MODE_Y, /**< luminance channel */ 103 CAM_RAWSTATSV2_MODE_MAX, /**< upper border (only for an internal evaluation) */ 104 } CalibDb_CamRawStatsModeV2_t; 105 106 typedef enum _CalibDb_CamHistStatsModeV2_e { 107 CAM_HISTV2_MODE_INVALID = 0, /**< lower border (only for an internal evaluation) */ 108 CAM_HISTV2_MODE_RGB_COMBINED = 1, /**< RGB combined histogram, only available for SiHist */ 109 CAM_HISTV2_MODE_R = 2, /**< R histogram */ 110 CAM_HISTV2_MODE_G = 3, /**< G histogram */ 111 CAM_HISTV2_MODE_B = 4, /**< B histogram */ 112 CAM_HISTV2_MODE_Y = 5, /**< Y luminance histogram */ 113 CAM_HISTV2_MODE_MAX, /**< upper border (only for an internal evaluation) */ 114 } CalibDb_CamHistStatsModeV2_t; 115 116 /*****************************************************************************/ 117 /** 118 * @brief ISP2.0 AEC algo CommonCtrl Config Params 119 */ 120 /*****************************************************************************/ 121 typedef struct CalibDb_AeDelayFrmNumV2_s { 122 // M4_ENUM_DESC("DelayType", "CalibDb_DelayTypeV2_t","DELAY_TYPE_FRAME") 123 CalibDb_DelayTypeV2_t DelayType; 124 125 // M4_NUMBER_DESC("BlackDelay", "u8", M4_RANGE(0,255), "0", M4_DIGIT(0),M4_HIDE(0)) 126 uint8_t BlackDelay; 127 128 // M4_NUMBER_DESC("WhiteDelay", "u8", M4_RANGE(0,255), "0", M4_DIGIT(0),M4_HIDE(0)) 129 uint8_t WhiteDelay; 130 131 } CalibDb_AeDelayFrmNumV2_t; 132 133 typedef struct CalibDb_AeDyDamp_s { 134 // M4_BOOL_DESC("DyDampEn", "1") 135 bool DyDampEn; 136 137 // M4_ENUM_DESC("SlowOPType", "RKAiqOPMode_t","RK_AIQ_OP_MODE_AUTO") 138 RKAiqOPMode_t SlowOPType; 139 140 // M4_NUMBER_DESC("SlowRange", "f32", M4_RANGE(0,100), "15", M4_DIGIT(2),M4_HIDE(0)) 141 float SlowRange; 142 143 // M4_NUMBER_DESC("SlowDamp", "f32", M4_RANGE(0,1), "0.95", M4_DIGIT(2),M4_HIDE(0)) 144 float SlowDamp; 145 146 } CalibDb_AeDyDamp_t; 147 148 149 typedef struct CalibDb_AeSpeedV2_s { 150 // M4_BOOL_DESC("SmoothEn", "1") 151 bool SmoothEn; 152 153 // M4_NUMBER_DESC("DampOver", "f32", M4_RANGE(0,1.00), "0.15", M4_DIGIT(2),M4_HIDE(0)) 154 float DampOver; 155 156 // M4_NUMBER_DESC("DampUnder", "f32", M4_RANGE(0,1.00), "0.45", M4_DIGIT(2),M4_HIDE(0)) 157 float DampUnder; 158 159 // M4_NUMBER_DESC("DampDark2Bright", "f32", M4_RANGE(0,1.00), "0.15", M4_DIGIT(2),M4_HIDE(0)) 160 float DampDark2Bright; 161 162 // M4_NUMBER_DESC("DampBright2Dark", "f32", M4_RANGE(0,1.00), "0.45", M4_DIGIT(2),M4_HIDE(0)) 163 float DampBright2Dark; 164 165 // M4_STRUCT_DESC("DyDamp", "normal_ui_style") 166 CalibDb_AeDyDamp_t DyDamp; 167 } CalibDb_AeSpeedV2_t; 168 169 typedef struct CalibDb_AeFrmRateAttrV2_s { 170 // M4_BOOL_DESC("isFpsFix", "1") 171 bool isFpsFix; 172 173 // M4_NUMBER_DESC("FpsValue", "f32", M4_RANGE(0,1024), "0", M4_DIGIT(1),M4_HIDE(0)) 174 float FpsValue; 175 176 } CalibDb_AeFrmRateAttrV2_t; 177 178 typedef struct CalibDb_AntiFlickerAttrV2_s { 179 // M4_BOOL_DESC("enable", "1") 180 bool enable; 181 182 // M4_ENUM_DESC("Frequency", "CalibDb_FlickerFreqV2_t","AECV2_FLICKER_FREQUENCY_50HZ") 183 CalibDb_FlickerFreqV2_t Frequency; 184 185 // M4_ENUM_DESC("Mode", "CalibDb_AntiFlickerModeV2_t","AECV2_ANTIFLICKER_AUTO_MODE") 186 CalibDb_AntiFlickerModeV2_t Mode; 187 } CalibDb_AntiFlickerAttrV2_t; 188 189 //manual exposure 190 typedef struct CalibDb_LinMeAttrV2_s { 191 // M4_BOOL_DESC("ManualTimeEn", "1") 192 bool ManualTimeEn; 193 194 // M4_BOOL_DESC("ManualGainEn", "1") 195 bool ManualGainEn; 196 197 // M4_BOOL_DESC("ManualIspDgainEn", "1") 198 bool ManualIspDgainEn; 199 200 // M4_NUMBER_DESC("TimeValue", "f32", M4_RANGE(0,1), "0.003", M4_DIGIT(6),M4_HIDE(0)) 201 float TimeValue; //unit: s = 10^6 us 202 203 // M4_NUMBER_DESC("GainValue", "f32", M4_RANGE(1,4096), "1", M4_DIGIT(3),M4_HIDE(0)) 204 float GainValue; 205 206 // M4_NUMBER_DESC("IspDGainValue", "f32", M4_RANGE(1,4096), "1", M4_DIGIT(3),M4_HIDE(0)) 207 float IspDGainValue; 208 } CalibDb_LinMeAttrV2_t; 209 210 typedef struct CalibDb_HdrMeAttrV2_s { 211 // M4_BOOL_DESC("ManualTimeEn", "1") 212 bool ManualTimeEn; 213 214 // M4_BOOL_DESC("ManualGainEn", "1") 215 bool ManualGainEn; 216 217 // M4_BOOL_DESC("ManualIspDgainEn", "1") 218 bool ManualIspDgainEn; 219 220 // M4_ARRAY_DESC("TimeValue", "f32", M4_SIZE(1,3), M4_RANGE(0,1), "0.003", M4_DIGIT(6), M4_DYNAMIC(0)) 221 float TimeValue[AECV2_MAX_HDRFRAME_NUM]; 222 223 // M4_ARRAY_DESC("GainValue", "f32", M4_SIZE(1,3), M4_RANGE(1,4096), "1.0", M4_DIGIT(3), M4_DYNAMIC(0)) 224 float GainValue[AECV2_MAX_HDRFRAME_NUM]; 225 226 // M4_ARRAY_DESC("IspDGainValue", "f32", M4_SIZE(1,3), M4_RANGE(1,4096), "1.0", M4_DIGIT(3), M4_DYNAMIC(0)) 227 float IspDGainValue[AECV2_MAX_HDRFRAME_NUM]; 228 } CalibDb_HdrMeAttrV2_t; 229 230 typedef struct CalibDb_MeAttrV2_s { 231 // M4_STRUCT_DESC("LinearAE", "normal_ui_style") 232 CalibDb_LinMeAttrV2_t LinearAE; 233 234 // M4_STRUCT_DESC("HdrAE", "normal_ui_style") 235 CalibDb_HdrMeAttrV2_t HdrAE; 236 } CalibDb_MeAttrV2_t; 237 238 //win_scale = [h_off, v_off, h_size, v_size], range=[0,1] 239 typedef struct CalibDb_Aec_WinScale_s { 240 // M4_NUMBER_DESC("h_offs", "f32", M4_RANGE(0,1), "0", M4_DIGIT(2),M4_HIDE(0)) 241 float h_offs; 242 243 // M4_NUMBER_DESC("v_offs", "f32", M4_RANGE(0,1), "0", M4_DIGIT(2),M4_HIDE(0)) 244 float v_offs; 245 246 // M4_NUMBER_DESC("h_size", "f32", M4_RANGE(0,1), "1", M4_DIGIT(2),M4_HIDE(0)) 247 float h_size; 248 249 // M4_NUMBER_DESC("v_size", "f32", M4_RANGE(0,1), "1", M4_DIGIT(2),M4_HIDE(0)) 250 float v_size; 251 } CalibDb_Aec_WinScale_t; 252 253 typedef struct CalibDb_Aec_WinScaleV2_t { 254 255 // M4_STRUCT_DESC("InRawWinScale", "normal_ui_style") 256 CalibDb_Aec_WinScale_t InRawWinScale; 257 258 // M4_STRUCT_DESC("TmoRawWinScale", "normal_ui_style") 259 CalibDb_Aec_WinScale_t TmoRawWinScale; 260 261 // M4_STRUCT_DESC("YuvWinScale", "normal_ui_style") 262 CalibDb_Aec_WinScale_t YuvWinScale; 263 } CalibDb_Aec_WinScaleV2_t; 264 265 typedef struct CalibDb_AeEnvLvCalibV2_s { 266 // M4_BOOL_DESC("Enable", "0") 267 bool Enable; 268 269 // M4_NUMBER_DESC("CalibFNumber", "f32", M4_RANGE(0,256), "1.6", M4_DIGIT(2),M4_HIDE(0)) 270 float CalibFNumber; 271 272 // M4_ARRAY_DESC("CurveCoeff", "f32", M4_SIZE(1,2), M4_RANGE(-1024,1024), "1.0", M4_DIGIT(5), M4_DYNAMIC(0)) 273 float CurveCoeff[2];//y=ax+b, Coeff=[a,b] 274 } CalibDb_AeEnvLvCalibV2_t; 275 276 typedef struct CalibDb_AecCommon_AttrV2_s { 277 // M4_BOOL_DESC("Enable", "1") 278 bool Enable; 279 280 // M4_NUMBER_DESC("AecRunInterval", "u8", M4_RANGE(0,255), "0", M4_DIGIT(0),M4_HIDE(0)) 281 uint8_t AecRunInterval; 282 283 // M4_ENUM_DESC("AecOpType", "RKAiqOPMode_t","RK_AIQ_OP_MODE_AUTO") 284 RKAiqOPMode_t AecOpType; 285 286 // M4_ENUM_DESC("HistStatsMode", "CalibDb_CamHistStatsModeV2_t","CAM_HISTV2_MODE_G") 287 CalibDb_CamHistStatsModeV2_t HistStatsMode; 288 289 // M4_ENUM_DESC("RawStatsMode", "CalibDb_CamRawStatsModeV2_t","CAM_RAWSTATSV2_MODE_G") 290 CalibDb_CamRawStatsModeV2_t RawStatsMode; 291 292 // M4_ENUM_DESC("YRangeMode", "CalibDb_CamYRangeModeV2_t","CAM_YRANGEV2_MODE_FULL") 293 CalibDb_CamYRangeModeV2_t YRangeMode; 294 295 // M4_ARRAY_DESC("AecGridWeight", "u8", M4_SIZE(15,15), M4_RANGE(0,32), "1", M4_DIGIT(0), M4_DYNAMIC(0)) 296 uint8_t AecGridWeight[AECV2_MAX_GRIDWEIGHT_NUM]; 297 298 // M4_STRUCT_DESC("AecManualCtrl", "normal_ui_style") 299 CalibDb_MeAttrV2_t AecManualCtrl; 300 301 // M4_STRUCT_DESC("AecSpeed", "normal_ui_style") 302 CalibDb_AeSpeedV2_t AecSpeed; 303 304 // M4_STRUCT_DESC("AecDelay", "normal_ui_style") 305 CalibDb_AeDelayFrmNumV2_t AecDelay; 306 307 // M4_STRUCT_DESC("AecFrameRateMode", "normal_ui_style") 308 CalibDb_AeFrmRateAttrV2_t AecFrameRateMode; 309 310 // M4_STRUCT_DESC("AecAntiFlicker", "normal_ui_style") 311 CalibDb_AntiFlickerAttrV2_t AecAntiFlicker; 312 313 // M4_STRUCT_DESC("AecEnvLvCalib", "normal_ui_style") 314 CalibDb_AeEnvLvCalibV2_t AecEnvLvCalib; 315 316 // M4_STRUCT_DESC("AecWinScale", "normal_ui_style") 317 CalibDb_Aec_WinScaleV2_t AecWinScale; 318 } CalibDb_AecCommon_AttrV2_t; 319 320 /*****************************************************************************/ 321 /** 322 * @brief ISP2.0 AEC algo LinAE Config Params 323 */ 324 /*****************************************************************************/ 325 typedef struct CalibDb_LinExpInitExpV2_s { 326 // M4_NUMBER_DESC("InitTimeValue", "f32", M4_RANGE(0,1), "0.003", M4_DIGIT(6),M4_HIDE(0)) 327 float InitTimeValue; 328 329 // M4_NUMBER_DESC("InitGainValue", "f32", M4_RANGE(1,4096), "1", M4_DIGIT(3),M4_HIDE(0)) 330 float InitGainValue; 331 332 // M4_NUMBER_DESC("InitIspDGainValue", "f32", M4_RANGE(1,4096), "1", M4_DIGIT(3),M4_HIDE(0)) 333 float InitIspDGainValue; 334 335 // M4_NUMBER_DESC("InitPIrisGainValue", "s32", M4_RANGE(1,4096), "1024", M4_DIGIT(0),M4_HIDE(0)) 336 int InitPIrisGainValue; 337 338 // M4_NUMBER_DESC("InitDCIrisDutyValue", "s32", M4_RANGE(0,100), "100", M4_DIGIT(0),M4_HIDE(0)) 339 int InitDCIrisDutyValue; 340 341 // M4_NUMBER_DESC("InitHDCIrisTargetValue", "s32", M4_RANGE(0,1023), "1023", M4_DIGIT(0),M4_HIDE(0)) 342 int InitHDCIrisTargetValue; 343 } CalibDb_LinExpInitExpV2_t; 344 345 typedef struct CalibDb_LinAeRoute_AttrV2_s { 346 // M4_ARRAY_DESC("TimeDot", "f32", M4_SIZE(1,6), M4_RANGE(0,1), "0", M4_DIGIT(6), M4_DYNAMIC(1)) 347 float* TimeDot; 348 int TimeDot_len; 349 // M4_ARRAY_DESC("GainDot", "f32", M4_SIZE(1,6), M4_RANGE(1,4096), "1", M4_DIGIT(3), M4_DYNAMIC(1)) 350 float* GainDot; 351 int GainDot_len; 352 // M4_ARRAY_DESC("IspDGainDot", "f32", M4_SIZE(1,6), M4_RANGE(1,4096), "1", M4_DIGIT(3), M4_DYNAMIC(1)) 353 float* IspDGainDot; 354 int IspDGainDot_len; 355 // M4_ARRAY_DESC("PIrisDot", "s32", M4_SIZE(1,6), M4_RANGE(1,4096), "1024", M4_DIGIT(0), M4_DYNAMIC(1)) 356 int* PIrisDot; 357 int PIrisDot_len; 358 } CalibDb_LinAeRoute_AttrV2_t; 359 360 typedef struct CalibDb_AecDynamicSetpointV2_s { 361 // M4_ARRAY_DESC("ExpLevel", "f32", M4_SIZE(1,6), M4_RANGE(0,4096), "0", M4_DIGIT(5), M4_DYNAMIC(1)) 362 float* ExpLevel; 363 int ExpLevel_len; 364 // M4_ARRAY_DESC("DySetpoint", "f32", M4_SIZE(1,6), M4_RANGE(0,255), "40", M4_DIGIT(2), M4_DYNAMIC(1)) 365 float* DySetpoint; 366 int DySetpoint_len; 367 } CalibDb_AecDynamicSetpointV2_t; 368 369 typedef struct CalibDb_BacklitSetPointV2_s { 370 // M4_ARRAY_DESC("ExpLevel", "f32", M4_SIZE(1,6), M4_RANGE(0,4096), "0", M4_DIGIT(5), M4_DYNAMIC(1)) 371 float* ExpLevel; 372 int ExpLevel_len; 373 // M4_ARRAY_DESC("NonOEPdfTh", "f32", M4_SIZE(1,6), M4_RANGE(0,1), "0.4", M4_DIGIT(2), M4_DYNAMIC(1)) 374 float* NonOEPdfTh; 375 int NonOEPdfTh_len; 376 // M4_ARRAY_DESC("LowLightPdfTh", "f32", M4_SIZE(1,6), M4_RANGE(0,1), "0.2", M4_DIGIT(2), M4_DYNAMIC(1)) 377 float* LowLightPdfTh; 378 int LowLightPdfTh_len; 379 // M4_ARRAY_DESC("TargetLLLuma", "f32", M4_SIZE(1,6), M4_RANGE(0,255), "20", M4_DIGIT(2), M4_DYNAMIC(1)) 380 float* TargetLLLuma; 381 int TargetLLLuma_len; 382 } CalibDb_BacklitSetPointV2_t; 383 384 typedef struct CalibDb_AecBacklightV2_s { 385 // M4_BOOL_DESC("Enable", "0") 386 bool Enable; 387 388 // M4_NUMBER_DESC("StrBias", "f32", M4_RANGE(-500,500), "0", M4_DIGIT(2),M4_HIDE(1)) 389 float StrBias;//uint: % 390 391 // M4_ENUM_DESC("MeasArea", "CalibDb_AecMeasAreaModeV2_t","AECV2_MEASURE_AREA_AUTO") 392 CalibDb_AecMeasAreaModeV2_t MeasArea; 393 394 // M4_NUMBER_DESC("OEROILowTh", "f32", M4_RANGE(0,255), "150", M4_DIGIT(2),M4_HIDE(0)) 395 float OEROILowTh; 396 397 // M4_NUMBER_DESC("LumaDistTh", "f32", M4_RANGE(0,100), "10", M4_DIGIT(2),M4_HIDE(0)) 398 float LumaDistTh;//uint: % 399 400 // M4_NUMBER_DESC("LvLowTh", "f32", M4_RANGE(0,100), "0.3125", M4_DIGIT(4),M4_HIDE(0)) 401 float LvLowTh; 402 403 // M4_NUMBER_DESC("LvHighTh", "f32", M4_RANGE(0,100), "7.5", M4_DIGIT(4),M4_HIDE(0)) 404 float LvHighTh; 405 406 // M4_ARRAY_TABLE_DESC("BacklitSetPoint", "array_table_ui", M4_INDEX_DEFAULT) 407 CalibDb_BacklitSetPointV2_t BacklitSetPoint; 408 } CalibDb_AecBacklightV2_t; 409 410 typedef struct CalibDb_OverExpSetPointV2_s { 411 // M4_ARRAY_DESC("OEpdf", "f32", M4_SIZE(1,6), M4_RANGE(0,1), "0", M4_DIGIT(2), M4_DYNAMIC(1)) 412 float* OEpdf; 413 int OEpdf_len; 414 // M4_ARRAY_DESC("LowLightWeight", "f32", M4_SIZE(1,6), M4_RANGE(0,20), "1", M4_DIGIT(2), M4_DYNAMIC(1)) 415 float* LowLightWeight; 416 int LowLightWeight_len; 417 // M4_ARRAY_DESC("HighLightWeight", "f32", M4_SIZE(1,6), M4_RANGE(0,20), "2", M4_DIGIT(2), M4_DYNAMIC(1)) 418 float* HighLightWeight; 419 int HighLightWeight_len; 420 } CalibDb_OverExpSetPointV2_t; 421 422 typedef struct CalibDb_AecOverExpCtrlV2_s { 423 // M4_BOOL_DESC("Enable", "0") 424 bool Enable; 425 426 // M4_NUMBER_DESC("StrBias", "f32", M4_RANGE(-500,500), "0", M4_DIGIT(2),M4_HIDE(1)) 427 float StrBias; //uint: % 428 429 // M4_NUMBER_DESC("MaxWeight", "f32", M4_RANGE(0,20), "8", M4_DIGIT(2),M4_HIDE(0)) 430 float MaxWeight; 431 432 // M4_NUMBER_DESC("HighLightTh", "f32", M4_RANGE(0,255), "150", M4_DIGIT(2),M4_HIDE(0)) 433 float HighLightTh; 434 435 // M4_NUMBER_DESC("LowLightTh", "f32", M4_RANGE(0,255), "30", M4_DIGIT(2),M4_HIDE(0)) 436 float LowLightTh; 437 438 // M4_ARRAY_TABLE_DESC("OverExpSetPoint", "array_table_ui", M4_INDEX_DEFAULT) 439 CalibDb_OverExpSetPointV2_t OverExpSetPoint; 440 } CalibDb_AecOverExpCtrlV2_t; 441 442 typedef struct CalibDb_LinearAE_AttrV2_s { 443 // M4_BOOL_DESC("RawStatsEn", "1") 444 bool RawStatsEn; 445 446 // M4_NUMBER_DESC("ToleranceIn", "f32", M4_RANGE(0,100), "10", M4_DIGIT(2),M4_HIDE(0)) 447 float ToleranceIn;//uint: % 448 449 // M4_NUMBER_DESC("ToleranceOut", "f32", M4_RANGE(0,100), "15", M4_DIGIT(2),M4_HIDE(0)) 450 float ToleranceOut;//uint: % 451 452 // M4_NUMBER_DESC("Evbias", "f32", M4_RANGE(-500,500), "0", M4_DIGIT(2),M4_HIDE(1)) 453 float Evbias; //uint: % 454 455 // M4_ENUM_DESC("StrategyMode", "CalibDb_AeStrategyModeV2_t","AECV2_STRATEGY_MODE_LOWLIGHT") 456 CalibDb_AeStrategyModeV2_t StrategyMode; 457 458 // M4_STRUCT_DESC("InitExp", "normal_ui_style") 459 CalibDb_LinExpInitExpV2_t InitExp; 460 461 // M4_ARRAY_TABLE_DESC("Route", "array_table_ui", M4_INDEX_DEFAULT) 462 CalibDb_LinAeRoute_AttrV2_t Route; 463 464 // M4_ARRAY_TABLE_DESC("DySetpoint", "array_table_ui", M4_INDEX_DEFAULT) 465 CalibDb_AecDynamicSetpointV2_t DySetpoint; 466 467 // M4_STRUCT_DESC("BackLightCtrl", "normal_ui_style") 468 CalibDb_AecBacklightV2_t BackLightCtrl; 469 470 // M4_STRUCT_DESC("OverExpCtrl", "normal_ui_style") 471 CalibDb_AecOverExpCtrlV2_t OverExpCtrl; 472 } CalibDb_LinearAE_AttrV2_t; 473 474 /*****************************************************************************/ 475 /** 476 * @brief ISP2.0 AEC algo HdrAE Config Params 477 */ 478 /*****************************************************************************/ 479 typedef struct CalibDb_HdrExpInitExpV2_s { 480 // M4_ARRAY_DESC("InitTimeValue", "f32", M4_SIZE(1,3), M4_RANGE(0,1), "0.01", M4_DIGIT(6), M4_DYNAMIC(0)) 481 float InitTimeValue[AECV2_MAX_HDRFRAME_NUM]; 482 483 // M4_ARRAY_DESC("InitGainValue", "f32", M4_SIZE(1,3), M4_RANGE(1,4096), "1.0", M4_DIGIT(3), M4_DYNAMIC(0)) 484 float InitGainValue[AECV2_MAX_HDRFRAME_NUM]; 485 486 // M4_ARRAY_DESC("InitIspDGainValue", "f32", M4_SIZE(1,3), M4_RANGE(1,4096), "1.0", M4_DIGIT(3), M4_DYNAMIC(0)) 487 float InitIspDGainValue[AECV2_MAX_HDRFRAME_NUM]; 488 489 // M4_NUMBER_DESC("InitPIrisGainValue", "s32", M4_RANGE(1,4096), "1024", M4_DIGIT(0),M4_HIDE(0)) 490 int InitPIrisGainValue; 491 492 // M4_NUMBER_DESC("InitDCIrisDutyValue", "s32", M4_RANGE(0,100), "100", M4_DIGIT(0),M4_HIDE(0)) 493 int InitDCIrisDutyValue; 494 495 // M4_NUMBER_DESC("InitHDCIrisTargetValue", "s32", M4_RANGE(0,1023), "1023", M4_DIGIT(0),M4_HIDE(0)) 496 int InitHDCIrisTargetValue; 497 } CalibDb_HdrExpInitExpV2_t; 498 499 typedef struct CalibDb_ExpRatioV2_s { 500 // M4_ARRAY_DESC("RatioExpDot", "f32", M4_SIZE(1,6), M4_RANGE(0,1), "0", M4_DIGIT(4), M4_DYNAMIC(1)) 501 float* RatioExpDot; 502 int RatioExpDot_len; 503 // M4_ARRAY_DESC("M2SRatioFix", "f32", M4_SIZE(1,6), M4_RANGE(1,256), "8", M4_DIGIT(2), M4_DYNAMIC(1)) 504 float* M2SRatioFix; 505 int M2SRatioFix_len; 506 // M4_ARRAY_DESC("L2MRatioFix", "f32", M4_SIZE(1,6), M4_RANGE(1,256), "8", M4_DIGIT(2), M4_DYNAMIC(1)) 507 float* L2MRatioFix; 508 int L2MRatioFix_len; 509 // M4_ARRAY_DESC("M2SRatioMax", "f32", M4_SIZE(1,6), M4_RANGE(1,256), "64", M4_DIGIT(2), M4_DYNAMIC(1)) 510 float* M2SRatioMax; 511 int M2SRatioMax_len; 512 // M4_ARRAY_DESC("L2MRatioMax", "f32", M4_SIZE(1,6), M4_RANGE(1,256), "64", M4_DIGIT(2), M4_DYNAMIC(1)) 513 float* L2MRatioMax; 514 int L2MRatioMax_len; 515 } CalibDb_ExpRatioV2_t; 516 517 typedef struct CalibDb_ExpRatioCtrlV2_s { 518 // M4_ENUM_DESC("ExpRatioType", "CalibDb_HdrAeRatioTypeV2_t","AECV2_HDR_RATIOTYPE_MODE_AUTO") 519 CalibDb_HdrAeRatioTypeV2_t ExpRatioType; 520 521 // M4_ARRAY_TABLE_DESC("ExpRatio", "array_table_ui", M4_INDEX_DEFAULT) 522 CalibDb_ExpRatioV2_t ExpRatio; 523 } CalibDb_ExpRatioCtrlV2_t; 524 525 typedef struct CalibDb_HdrAeRoute_AttrV2_s { 526 // M4_ARRAY_DESC("Frm0TimeDot", "f32", M4_SIZE(1,6), M4_RANGE(0,1), "0", M4_DIGIT(6), M4_DYNAMIC(1)) 527 float* Frm0TimeDot; 528 int Frm0TimeDot_len; 529 // M4_ARRAY_DESC("Frm0GainDot", "f32", M4_SIZE(1,6), M4_RANGE(1,4096), "1", M4_DIGIT(3), M4_DYNAMIC(1)) 530 float* Frm0GainDot; 531 int Frm0GainDot_len; 532 // M4_ARRAY_DESC("Frm0IspDGainDot", "f32", M4_SIZE(1,6), M4_RANGE(1,4096), "1", M4_DIGIT(3), M4_DYNAMIC(1)) 533 float* Frm0IspDGainDot; 534 int Frm0IspDGainDot_len; 535 // M4_ARRAY_DESC("Frm1TimeDot", "f32", M4_SIZE(1,6), M4_RANGE(0,1), "0", M4_DIGIT(6), M4_DYNAMIC(1)) 536 float* Frm1TimeDot; 537 int Frm1TimeDot_len; 538 // M4_ARRAY_DESC("Frm1GainDot", "f32", M4_SIZE(1,6), M4_RANGE(1,4096), "1", M4_DIGIT(3), M4_DYNAMIC(1)) 539 float* Frm1GainDot; 540 int Frm1GainDot_len; 541 // M4_ARRAY_DESC("Frm1IspDGainDot", "f32", M4_SIZE(1,6), M4_RANGE(1,4096), "1", M4_DIGIT(3), M4_DYNAMIC(1)) 542 float* Frm1IspDGainDot; 543 int Frm1IspDGainDot_len; 544 // M4_ARRAY_DESC("Frm2TimeDot", "f32", M4_SIZE(1,6), M4_RANGE(0,1), "0", M4_DIGIT(6), M4_DYNAMIC(1)) 545 float* Frm2TimeDot; 546 int Frm2TimeDot_len; 547 // M4_ARRAY_DESC("Frm2GainDot", "f32", M4_SIZE(1,6), M4_RANGE(1,4096), "1", M4_DIGIT(3), M4_DYNAMIC(1)) 548 float* Frm2GainDot; 549 int Frm2GainDot_len; 550 // M4_ARRAY_DESC("Frm2IspDGainDot", "f32", M4_SIZE(1,6), M4_RANGE(1,4096), "1", M4_DIGIT(3), M4_DYNAMIC(1)) 551 float* Frm2IspDGainDot; 552 int Frm2IspDGainDot_len; 553 // M4_ARRAY_DESC("PIrisDot", "s32", M4_SIZE(1,6), M4_RANGE(1,4096), "1024", M4_DIGIT(0), M4_DYNAMIC(1)) 554 int* PIrisDot; 555 int PIrisDot_len; 556 } CalibDb_HdrAeRoute_AttrV2_t; 557 558 typedef struct CalibDb_LfrmSetPointV2_s 559 { 560 // M4_ARRAY_DESC("LExpLevel", "f32", M4_SIZE(1,6), M4_RANGE(0,4096), "0", M4_DIGIT(5), M4_DYNAMIC(1)) 561 float* LExpLevel; 562 int LExpLevel_len; 563 // M4_ARRAY_DESC("NonOEPdfTh", "f32", M4_SIZE(1,6), M4_RANGE(0,1), "0.4", M4_DIGIT(2), M4_DYNAMIC(1)) 564 float* NonOEPdfTh; 565 int NonOEPdfTh_len; 566 // M4_ARRAY_DESC("LowLightPdfTh", "f32", M4_SIZE(1,6), M4_RANGE(0,1), "0.2", M4_DIGIT(2), M4_DYNAMIC(1)) 567 float* LowLightPdfTh; 568 int LowLightPdfTh_len; 569 // M4_ARRAY_DESC("LSetPoint", "f32", M4_SIZE(1,6), M4_RANGE(0,255), "40", M4_DIGIT(2), M4_DYNAMIC(1)) 570 float* LSetPoint; 571 int LSetPoint_len; 572 // M4_ARRAY_DESC("TargetLLLuma", "f32", M4_SIZE(1,6), M4_RANGE(0,255), "20", M4_DIGIT(2), M4_DYNAMIC(1)) 573 float* TargetLLLuma; 574 int TargetLLLuma_len; 575 } CalibDb_LfrmSetPointV2_t; 576 577 typedef struct CalibDb_LfrmCtrlV2_s 578 { 579 // M4_NUMBER_DESC("OEROILowTh", "f32", M4_RANGE(0,255), "150", M4_DIGIT(2),M4_HIDE(0)) 580 float OEROILowTh; 581 582 // M4_NUMBER_DESC("LvLowTh", "f32", M4_RANGE(0,100), "0.3125", M4_DIGIT(4),M4_HIDE(0)) 583 float LvLowTh; 584 585 // M4_NUMBER_DESC("LvHighTh", "f32", M4_RANGE(0,100), "7.5", M4_DIGIT(4),M4_HIDE(0)) 586 float LvHighTh; 587 588 // M4_ARRAY_TABLE_DESC("LfrmSetPoint", "array_table_ui", M4_INDEX_DEFAULT) 589 CalibDb_LfrmSetPointV2_t LfrmSetPoint; 590 } CalibDb_LfrmCtrlV2_t; 591 592 typedef struct CalibDb_MfrmCtrlV2_s 593 { 594 // M4_ARRAY_DESC("MExpLevel", "f32", M4_SIZE(1,6), M4_RANGE(0,4096), "0", M4_DIGIT(5), M4_DYNAMIC(1)) 595 float* MExpLevel; 596 int MExpLevel_len; 597 // M4_ARRAY_DESC("MSetPoint", "f32", M4_SIZE(1,6), M4_RANGE(0,255), "40", M4_DIGIT(2), M4_DYNAMIC(1)) 598 float* MSetPoint; 599 int MSetPoint_len; 600 } CalibDb_MfrmCtrlV2_t; 601 602 typedef struct CalibDb_SfrmSetPointV2_s 603 { 604 // M4_ARRAY_DESC("SExpLevel", "f32", M4_SIZE(1,6), M4_RANGE(0,4096), "0", M4_DIGIT(6), M4_DYNAMIC(1)) 605 float* SExpLevel; 606 int SExpLevel_len; 607 // M4_ARRAY_DESC("SSetPoint", "f32", M4_SIZE(1,6), M4_RANGE(0,255), "20", M4_DIGIT(2), M4_DYNAMIC(1)) 608 float* SSetPoint; 609 int SSetPoint_len; 610 // M4_ARRAY_DESC("TargetHLLuma", "f32", M4_SIZE(1,6), M4_RANGE(0,255), "150", M4_DIGIT(2), M4_DYNAMIC(1)) 611 float* TargetHLLuma; 612 int TargetHLLuma_len; 613 } CalibDb_SfrmSetPointV2_t; 614 615 typedef struct CalibDb_SfrmCtrlV2_s 616 { 617 // M4_BOOL_DESC("HLROIExpandEn", "0") 618 bool HLROIExpandEn; 619 620 // M4_NUMBER_DESC("HLLumaTolerance", "f32", M4_RANGE(0,100), "12", M4_DIGIT(2),M4_HIDE(0)) 621 float HLLumaTolerance;//unit:% 622 623 // M4_ARRAY_TABLE_DESC("SfrmSetPoint", "array_table_ui", M4_INDEX_DEFAULT) 624 CalibDb_SfrmSetPointV2_t SfrmSetPoint; 625 } CalibDb_SfrmCtrlV2_t; 626 627 typedef struct CalibDb_LongFrmCtrlV2_s { 628 // M4_ENUM_DESC("mode", "CalibDb_AeHdrLongFrmModeV2_t","AECV2_HDR_LONGFRMMODE_DISABLE") 629 CalibDb_AeHdrLongFrmModeV2_t mode; 630 631 // M4_NUMBER_DESC("SfrmMinLine", "u16", M4_RANGE(0,1024), "2", M4_DIGIT(0),M4_HIDE(0)) 632 uint16_t SfrmMinLine;//uint:line 633 634 // M4_NUMBER_DESC("LfrmModeExpTh", "f32", M4_RANGE(0,100), "0.62", M4_DIGIT(4),M4_HIDE(0)) 635 float LfrmModeExpTh; 636 } CalibDb_LongFrmCtrlV2_t; 637 638 typedef struct CalibDb_HdrAE_AttrV2_s { 639 // M4_NUMBER_DESC("ToleranceIn", "f32", M4_RANGE(0,100), "10", M4_DIGIT(2),M4_HIDE(0)) 640 float ToleranceIn;//unit:% 641 642 // M4_NUMBER_DESC("ToleranceOut", "f32", M4_RANGE(0,100), "15", M4_DIGIT(2),M4_HIDE(0)) 643 float ToleranceOut;//unit:% 644 645 // M4_NUMBER_DESC("Evbias", "f32", M4_RANGE(-500,500), "0", M4_DIGIT(0),M4_HIDE(1)) 646 float Evbias; 647 648 // M4_ENUM_DESC("StrategyMode", "CalibDb_AeStrategyModeV2_t","AECV2_STRATEGY_MODE_LOWLIGHT") 649 CalibDb_AeStrategyModeV2_t StrategyMode; 650 651 // M4_NUMBER_DESC("LumaDistTh", "f32", M4_RANGE(0,100), "10", M4_DIGIT(2),M4_HIDE(0)) 652 float LumaDistTh; //used for area-growing,unit:% 653 654 // M4_STRUCT_DESC("InitExp", "normal_ui_style") 655 CalibDb_HdrExpInitExpV2_t InitExp; 656 657 // M4_ARRAY_TABLE_DESC("Route", "array_table_ui", M4_INDEX_DEFAULT) 658 CalibDb_HdrAeRoute_AttrV2_t Route; 659 660 // M4_STRUCT_DESC("ExpRatioCtrl", "normal_ui_style") 661 CalibDb_ExpRatioCtrlV2_t ExpRatioCtrl; 662 663 // M4_STRUCT_DESC("LongFrmMode", "normal_ui_style") 664 CalibDb_LongFrmCtrlV2_t LongFrmMode; 665 666 // M4_STRUCT_DESC("LframeCtrl", "normal_ui_style") 667 CalibDb_LfrmCtrlV2_t LframeCtrl; 668 669 // M4_ARRAY_TABLE_DESC("MframeCtrl", "array_table_ui", M4_INDEX_DEFAULT) 670 CalibDb_MfrmCtrlV2_t MframeCtrl; 671 672 // M4_STRUCT_DESC("SframeCtrl", "normal_ui_style") 673 CalibDb_SfrmCtrlV2_t SframeCtrl; 674 } CalibDb_HdrAE_AttrV2_t; 675 676 /*****************************************************************************/ 677 /** 678 * @brief ISP2.0 AEC algo SyncTest Config Params 679 */ 680 /*****************************************************************************/ 681 typedef struct CalibDb_LinAlterExpV2_s { 682 // M4_NUMBER_DESC("TimeValue", "f32", M4_RANGE(0,1), "0.01", M4_DIGIT(6),M4_HIDE(0)) 683 float TimeValue; 684 685 // M4_NUMBER_DESC("GainValue", "f32", M4_RANGE(1,4096), "1", M4_DIGIT(3),M4_HIDE(0)) 686 float GainValue; 687 688 // M4_NUMBER_DESC("IspDGainValue", "f32", M4_RANGE(1,4096), "1", M4_DIGIT(3),M4_HIDE(0)) 689 float IspDGainValue; 690 691 // M4_NUMBER_DESC("PIrisGainValue", "s32", M4_RANGE(1,4096), "1024", M4_DIGIT(0),M4_HIDE(0)) 692 int PIrisGainValue; 693 694 // M4_NUMBER_DESC("DcgMode", "s32", M4_RANGE(-1,1), "0", M4_DIGIT(0),M4_HIDE(0)) 695 int DcgMode; 696 } CalibDb_LinAlterExpV2_t; 697 698 typedef struct CalibDb_HdrAlterExpV2_s { 699 // M4_ARRAY_DESC("TimeValue", "f32", M4_SIZE(1,3), M4_RANGE(0,1), "0.01", M4_DIGIT(6), M4_DYNAMIC(0)) 700 float TimeValue[AECV2_MAX_HDRFRAME_NUM]; 701 702 // M4_ARRAY_DESC("GainValue", "f32", M4_SIZE(1,3), M4_RANGE(1,4096), "1.0", M4_DIGIT(3), M4_DYNAMIC(0)) 703 float GainValue[AECV2_MAX_HDRFRAME_NUM]; 704 705 // M4_ARRAY_DESC("IspDGainValue", "f32", M4_SIZE(1,3), M4_RANGE(1,4096), "1.0", M4_DIGIT(3), M4_DYNAMIC(0)) 706 float IspDGainValue[AECV2_MAX_HDRFRAME_NUM]; 707 708 // M4_NUMBER_DESC("PIrisGainValues", "s32", M4_RANGE(1,4096), "1024", M4_DIGIT(0),M4_HIDE(0)) 709 int PIrisGainValue; 710 711 // M4_ARRAY_DESC("DcgMode", "s32", M4_SIZE(1,3), M4_RANGE(-1,1), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 712 int DcgMode[AECV2_MAX_HDRFRAME_NUM]; 713 } CalibDb_HdrAlterExpV2_t; 714 715 typedef struct CalibDb_AlterExpV2_s { 716 // M4_STRUCT_LIST_DESC("LinearAE", M4_SIZE_DYNAMIC,"normal_ui_style") 717 CalibDb_LinAlterExpV2_t* LinearAE; 718 int LinearAE_len; 719 720 // M4_STRUCT_LIST_DESC("HdrAE", M4_SIZE_DYNAMIC,"normal_ui_style") 721 CalibDb_HdrAlterExpV2_t* HdrAE; 722 int HdrAE_len; 723 } CalibDb_AlterExpV2_t; 724 725 typedef struct CalibDb_AeSyncTestV2_s { 726 // M4_BOOL_DESC("Enable", "0") 727 bool Enable; 728 729 // M4_NUMBER_DESC("IntervalFrm", "s32", M4_RANGE(0,1024), "5", M4_DIGIT(0),M4_HIDE(0)) 730 int IntervalFrm; 731 732 // M4_STRUCT_DESC("AlterExp", "normal_ui_style") 733 CalibDb_AlterExpV2_t AlterExp; 734 } CalibDb_AeSyncTestV2_t; 735 736 /*****************************************************************************/ 737 /** 738 * @brief ISP2.0 AEC algo IrisCtrl Config Params 739 */ 740 /*****************************************************************************/ 741 typedef struct CalibDb_MIris_AttrV2_s { 742 // M4_NUMBER_DESC("PIrisGainValue", "s32", M4_RANGE(1,4096), "1024", M4_DIGIT(0),M4_HIDE(0)) 743 int PIrisGainValue; 744 745 // M4_NUMBER_DESC("DCIrisHoldValue", "s32", M4_RANGE(0,100), "50", M4_DIGIT(0),M4_HIDE(0)) 746 int DCIrisHoldValue; 747 748 // M4_NUMBER_DESC("HDCIrisTargetValue", "s32", M4_RANGE(0,1023), "1023", M4_DIGIT(0),M4_HIDE(0)) 749 int HDCIrisTargetValue; 750 } CalibDb_MIris_AttrV2_t; 751 752 typedef struct CalibDb_PIris_AttrV2_s { 753 // M4_NUMBER_DESC("TotalStep", "u16", M4_RANGE(0,1024), "81", M4_DIGIT(0),M4_HIDE(0)) 754 uint16_t TotalStep; 755 756 // M4_NUMBER_DESC("EffcStep", "u16", M4_RANGE(0,1024), "64", M4_DIGIT(0),M4_HIDE(0)) 757 uint16_t EffcStep; 758 759 // M4_BOOL_DESC("ZeroIsMax", "1") 760 bool ZeroIsMax; 761 762 // M4_ARRAY_DESC("StepTable", "u16", M4_SIZE(1,1024), M4_RANGE(1,4096), "1024", M4_DIGIT(0), M4_DYNAMIC(0)) 763 uint16_t StepTable[AECV2_PIRIS_STEP_TABLE_MAX]; 764 } CalibDb_PIris_AttrV2_t; 765 766 typedef struct CalibDb_DCIris_AttrV2_s { 767 // M4_NUMBER_DESC("Kp", "f32", M4_RANGE(0,10), "1", M4_DIGIT(2),M4_HIDE(0)) 768 float Kp; 769 // M4_NUMBER_DESC("Ki", "f32", M4_RANGE(0,10), "0.2", M4_DIGIT(2),M4_HIDE(0)) 770 float Ki; 771 // M4_NUMBER_DESC("Kd", "f32", M4_RANGE(0,10), "0.5", M4_DIGIT(2),M4_HIDE(0)) 772 float Kd; 773 // M4_NUMBER_DESC("MinPwmDuty", "s32", M4_RANGE(0,100), "0", M4_DIGIT(0),M4_HIDE(0)) 774 int MinPwmDuty; 775 // M4_NUMBER_DESC("MaxPwmDuty", "s32", M4_RANGE(0,100), "100", M4_DIGIT(0),M4_HIDE(0)) 776 int MaxPwmDuty; 777 // M4_NUMBER_DESC("OpenPwmDuty", "s32", M4_RANGE(0,100), "50", M4_DIGIT(0),M4_HIDE(0)) 778 int OpenPwmDuty; 779 // M4_NUMBER_DESC("ClosePwmDuty", "s32", M4_RANGE(0,100), "60", M4_DIGIT(0),M4_HIDE(0)) 780 int ClosePwmDuty; 781 } CalibDb_DCIris_AttrV2_t; 782 783 typedef struct CalibDb_HDCIris_AttrV2_s { 784 // M4_NUMBER_DESC("DampOver", "f32", M4_RANGE(0,1), "0.15", M4_DIGIT(2),M4_HIDE(0)) 785 float DampOver; 786 787 // M4_NUMBER_DESC("DampUnder", "f32", M4_RANGE(0,1), "0.45", M4_DIGIT(2),M4_HIDE(0)) 788 float DampUnder; 789 790 // M4_BOOL_DESC("ZeroIsMax", "0") 791 bool ZeroIsMax; 792 793 // M4_NUMBER_DESC("MinTarget", "s32", M4_RANGE(0,1023), "0", M4_DIGIT(0),M4_HIDE(0)) 794 int MinTarget; 795 796 // M4_NUMBER_DESC("MaxTarget", "s32", M4_RANGE(0,1023), "1023", M4_DIGIT(0),M4_HIDE(0)) 797 int MaxTarget; 798 799 // M4_ARRAY_DESC("ZoomTargetDot", "s32", M4_SIZE(1,256), M4_RANGE(0,1023), "1023", M4_DIGIT(0), M4_DYNAMIC(1),M4_HIDE(0)) 800 int ZoomTargetDot[AECV2_HDCIRIS_DOT_MAX_NUM]; 801 802 // M4_ARRAY_DESC("ZoomDot", "s32", M4_SIZE(1,256), M4_RANGE(-32768,32767), "0", M4_DIGIT(0), M4_DYNAMIC(1),M4_HIDE(0)) 803 int ZoomDot[AECV2_HDCIRIS_DOT_MAX_NUM]; 804 805 // M4_ARRAY_DESC("TargetDot", "s32", M4_SIZE(1,256), M4_RANGE(0,1023), "1023", M4_DIGIT(0), M4_DYNAMIC(1),M4_HIDE(0)) 806 int IrisTargetDot[AECV2_HDCIRIS_DOT_MAX_NUM]; 807 808 // M4_ARRAY_DESC("GainDot", "s32", M4_SIZE(1,256), M4_RANGE(1,512), "512", M4_DIGIT(0), M4_DYNAMIC(1),M4_HIDE(0)) 809 int GainDot[AECV2_HDCIRIS_DOT_MAX_NUM]; 810 811 // M4_NUMBER_DESC("ZoomTargetDot_len", "s32", M4_RANGE(1,256), "12", M4_DIGIT(0),M4_HIDE(0)) 812 int ZoomTargetDot_len; 813 814 // M4_NUMBER_DESC("IrisTargetDot_len", "s32", M4_RANGE(1,256), "12", M4_DIGIT(0),M4_HIDE(0)) 815 int IrisTargetDot_len; 816 } CalibDb_HDCIris_AttrV2_t; 817 818 typedef struct CalibDb_AecIrisCtrlV2_s { 819 // M4_BOOL_DESC("Enable", "0") 820 bool Enable; 821 822 // M4_ENUM_DESC("IrisType", "CalibDb_IrisTypeV2_t","IRISV2_DC_TYPE") 823 CalibDb_IrisTypeV2_t IrisType; 824 825 // M4_BOOL_DESC("ManualEn", "0") 826 bool ManualEn; 827 828 // M4_STRUCT_DESC("ManualAttr", "normal_ui_style") 829 CalibDb_MIris_AttrV2_t ManualAttr; 830 831 // M4_STRUCT_DESC("InitAttr", "normal_ui_style") 832 CalibDb_MIris_AttrV2_t InitAttr; 833 834 // M4_STRUCT_DESC("PIrisAttr", "normal_ui_style") 835 CalibDb_PIris_AttrV2_t PIrisAttr; 836 837 // M4_STRUCT_DESC("DCIrisAttr", "normal_ui_style") 838 CalibDb_DCIris_AttrV2_t DCIrisAttr; 839 840 // M4_STRUCT_DESC("HDCIrisAttr", "normal_ui_style") 841 CalibDb_HDCIris_AttrV2_t HDCIrisAttr; 842 } CalibDb_AecIrisCtrlV2_t; 843 844 /*****************************************************************************/ 845 /** 846 * @brief Global AEC tuning structure of isp2.0 847 */ 848 /*****************************************************************************/ 849 typedef struct CalibDb_Aec_ParaV2_s { 850 // M4_STRUCT_DESC("CommCtrl", "normal_ui_style") 851 CalibDb_AecCommon_AttrV2_t CommCtrl; 852 853 // M4_STRUCT_DESC("LinearAeCtrl", "normal_ui_style") 854 CalibDb_LinearAE_AttrV2_t LinearAeCtrl; 855 856 // M4_STRUCT_DESC("HdrAeCtrl", "normal_ui_style") 857 CalibDb_HdrAE_AttrV2_t HdrAeCtrl; 858 859 // M4_STRUCT_DESC("IrisCtrl", "normal_ui_style") 860 CalibDb_AecIrisCtrlV2_t IrisCtrl; 861 862 // M4_STRUCT_DESC("SyncTest", "normal_ui_style") 863 CalibDb_AeSyncTestV2_t SyncTest; //special module for debug 864 } CalibDb_Aec_ParaV2_t; 865 866 RKAIQ_END_DECLARE 867 868 #endif 869