1 /* 2 * af_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_AF_HEADER_H__ 21 #define __CALIBDBV2_AF_HEADER_H__ 22 23 #include "rk_aiq_comm.h" 24 25 RKAIQ_BEGIN_DECLARE 26 27 #define CALIBDBV2_MAX_ISO_LEVEL 13 28 #define CALIBDBV2_ZOOM_FOCUS_POSITION_NUM 32 29 #define CALIBDBV2_ZOOM_FOCUS_ZOOM_MOVE_TBL_SIZE 32 30 #define CALIBDBV2_AF_CORRECT_SEARCHTBL_MAX 100 31 32 typedef enum CalibDbV2_Af_SearchDir_s { 33 CalibDbV2_AF_POSITIVE_SEARCH = 0, 34 CalibDbV2_AF_NEGATIVE_SEARCH = 1, 35 CalibDbV2_AF_ADAPTIVE_SEARCH = 2 36 } CalibDbV2_Af_SearchDir_t; 37 38 typedef enum CalibDbV2_Af_SS_s { 39 CalibDbV2_AFSS_INVALID = 0, 40 CalibDbV2_AFSS_FULLRANGE = 1, /**< scan the full focus range to find the point of best focus */ 41 CalibDbV2_AFSS_HILLCLIMBING = 2, /**< use hillclimbing search */ 42 CalibDbV2_AFSS_ADAPTIVE_RANGE = 3, /**< similar to full range search, but with multiple subsequent scans 43 with decreasing range and step size will be performed. */ 44 CalibDbV2_AFSS_MUTIWINDOW = 4, /**< search by muti-window statistics */ 45 CalibDbV2_AFSS_MAX 46 } CalibDbV2_Af_SS_t; 47 48 typedef enum CalibDbV2_AF_MODE_s 49 { 50 CalibDbV2_AFMODE_NOT_SET = -1, 51 CalibDbV2_AFMODE_AUTO, 52 CalibDbV2_AFMODE_MACRO, 53 CalibDbV2_AFMODE_INFINITY, 54 CalibDbV2_AFMODE_FIXED, 55 CalibDbV2_AFMODE_EDOF, 56 CalibDbV2_AFMODE_CONT_VIDEO, 57 CalibDbV2_AFMODE_CONT_PICTURE, 58 CalibDbV2_AFMODE_ZOOM_ONESHOT, 59 } CalibDbV2_AF_MODE_t; 60 61 typedef enum CalibDbV2_PDAF_DATA_DIR_s { 62 CalibDbV2_PDAF_DIR_INVAL = 0, 63 CalibDbV2_PDAF_DIR_LEFT = 1, 64 CalibDbV2_PDAF_DIR_RIGHT = 2, 65 CalibDbV2_PDAF_DIR_TOP = 3, 66 CalibDbV2_PDAF_DIR_DOWN = 4 67 } CalibDbV2_PDAF_DATA_DIR_t; 68 69 typedef struct CalibDbV2_Af_ContrastZoom_s { 70 // M4_ARRAY_DESC("QuickFoundThersZoomIdx", "u16", M4_SIZE(1,32), M4_RANGE(0,65535), "0", M4_DIGIT(0), M4_DYNAMIC(1)) 71 unsigned short *QuickFoundThersZoomIdx; 72 int QuickFoundThersZoomIdx_len; 73 // M4_ARRAY_DESC("QuickFoundThers", "f32", M4_SIZE(1,32), M4_RANGE(0,1), "0.2", M4_DIGIT(3), M4_DYNAMIC(1)) 74 float *QuickFoundThers; 75 int QuickFoundThers_len; 76 // M4_ARRAY_DESC("SearchStepZoomIdx", "u16", M4_SIZE(1,32), M4_RANGE(0,65535), "0", M4_DIGIT(0), M4_DYNAMIC(1)) 77 unsigned short *SearchStepZoomIdx; 78 int SearchStepZoomIdx_len; 79 // M4_ARRAY_DESC("SearchStep", "u16", M4_SIZE(1,32), M4_RANGE(0,65535), "16", M4_DIGIT(0), M4_DYNAMIC(1)) 80 unsigned short *SearchStep; 81 int SearchStep_len; 82 // M4_ARRAY_DESC("StopStepZoomIdx", "u16", M4_SIZE(1,32), M4_RANGE(0,65535), "0", M4_DIGIT(0), M4_DYNAMIC(1)) 83 unsigned short *StopStepZoomIdx; 84 int StopStepZoomIdx_len; 85 // M4_ARRAY_DESC("StopStep", "u16", M4_SIZE(1,32), M4_RANGE(0,65535), "4", M4_DIGIT(0), M4_DYNAMIC(1)) 86 unsigned short *StopStep; 87 int StopStep_len; 88 // M4_NUMBER_DESC("SkipHighPassZoomIdx", "u16", M4_RANGE(0, 65535), "10000", M4_DIGIT(0)) 89 unsigned short SkipHighPassZoomIdx; 90 // M4_NUMBER_DESC("SkipHighPassGain", "f32", M4_RANGE(0, 1000), "1000", M4_DIGIT(3)) 91 float SkipHighPassGain; 92 // M4_NUMBER_DESC("SwitchDirZoomIdx", "u16", M4_RANGE(0, 65535), "0", M4_DIGIT(0)) 93 unsigned short SwitchDirZoomIdx; 94 95 // M4_NUMBER_DESC("Spotlight HighlightRatio", "f32", M4_RANGE(0, 1), "0.014", M4_DIGIT(3)) 96 float SpotlightHighlightRatio; 97 // M4_ARRAY_DESC("Spotlight LumaRatio", "f32", M4_SIZE(1,3), M4_RANGE(0,1), "[0.3, 0.5, 0.8]", M4_DIGIT(3), M4_DYNAMIC(0)) 98 float SpotlightLumaRatio[3]; 99 // M4_ARRAY_DESC("Spotlight BlkCnt", "f32", M4_SIZE(1,3), M4_RANGE(0,1), "[0.2, 0.5, 0.25]", M4_DIGIT(3), M4_DYNAMIC(0)) 100 float SpotlightBlkCnt[3]; 101 } CalibDbV2_Af_ContrastZoom_t; 102 103 typedef struct CalibDbV2_Af_Contrast_s { 104 // M4_BOOL_DESC("enable", "1") 105 bool enable; 106 // M4_ENUM_DESC("SearchStrategy", "CalibDbV2_Af_SS_t", "CalibDbV2_AFSS_ADAPTIVE_RANGE") 107 CalibDbV2_Af_SS_t Afss; /**< enumeration type for search strategy */ 108 // M4_ENUM_DESC("FullDir", "CalibDbV2_Af_SearchDir_t", "CalibDbV2_AF_ADAPTIVE_SEARCH") 109 CalibDbV2_Af_SearchDir_t FullDir; 110 // M4_ARRAY_DESC("FullRangeTbl", "s16", M4_SIZE(1,3), M4_RANGE(-1023,1023), "[0,1,64]", M4_DIGIT(0), M4_DYNAMIC(0)) 111 short FullRangeTbl[3]; 112 // M4_ENUM_DESC("AdaptiveDir", "CalibDbV2_Af_SearchDir_t", "CalibDbV2_AF_ADAPTIVE_SEARCH") 113 CalibDbV2_Af_SearchDir_t AdaptiveDir; 114 // M4_ARRAY_DESC("AdaptRangeTbl", "u16", M4_SIZE(1,65), M4_RANGE(0,1023), "[0,8,16,24,32,40,48,56,64]", M4_DIGIT(0), M4_DYNAMIC(1)) 115 unsigned short *AdaptRangeTbl; /**< adaptive range search table*/ 116 int AdaptRangeTbl_len; 117 // M4_ARRAY_DESC("FineSearchStep", "u16", M4_SIZE(1,65), M4_RANGE(0,1023), "[4,4,4,4,4,4,4,4,4]", M4_DIGIT(0), M4_DYNAMIC(1)) 118 unsigned short *FineSearchStep; 119 int FineSearchStep_len; 120 // M4_NUMBER_DESC("SkipCurveFitGain", "f32", M4_RANGE(0, 1000), "0", M4_DIGIT(3)) 121 float SkipCurveFitGain; 122 // M4_ARRAY_DESC("TrigThers", "f32", M4_SIZE(1,32), M4_RANGE(0,1), "0.075", M4_DIGIT(3), M4_DYNAMIC(1)) 123 float *TrigThers; /**< AF trigger threshold */ 124 int TrigThers_len; 125 // M4_ARRAY_DESC("TrigThersFv", "f32", M4_SIZE(1,32), M4_RANGE(0,100000000000), "0", M4_DIGIT(0), M4_DYNAMIC(1)) 126 float *TrigThersFv; /**< AF trigger threshold */ 127 int TrigThersFv_len; 128 // M4_NUMBER_DESC("LumaTrigThers", "f32", M4_RANGE(0,1), "1", M4_DIGIT(3),M4_HIDE(0)) 129 float LumaTrigThers; 130 // M4_NUMBER_DESC("ExpTrigThers", "f32", M4_RANGE(0,1), "1", M4_DIGIT(3),M4_HIDE(0)) 131 float ExpTrigThers; 132 // M4_NUMBER_DESC("ChangedFrames", "u16", M4_RANGE(0,1000), "10", M4_DIGIT(0),M4_HIDE(0)) 133 unsigned short ChangedFrames; 134 135 // M4_NUMBER_DESC("StableThers", "f32", M4_RANGE(0,1), "0.02", M4_DIGIT(3),M4_HIDE(0)) 136 float StableThers; /**< AF stable threshold */ 137 // M4_NUMBER_DESC("StableFrames", "u16", M4_RANGE(0,65535), "3", M4_DIGIT(0),M4_HIDE(0)) 138 unsigned short StableFrames; /**< AF stable status must hold frames */ 139 // M4_NUMBER_DESC("StableTime", "u16", M4_RANGE(0,65535), "200", M4_DIGIT(3),M4_HIDE(0)) 140 unsigned short StableTime; /**< AF stable status must hold time */ 141 142 // M4_NUMBER_DESC("SceneDiffEnable", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0),M4_HIDE(0)) 143 unsigned char SceneDiffEnable; 144 // M4_NUMBER_DESC("SceneDiffThers", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0)) 145 float SceneDiffThers; 146 // M4_NUMBER_DESC("SceneDiffBlkThers", "u16", M4_RANGE(0,225), "0", M4_DIGIT(0),M4_HIDE(0)) 147 unsigned short SceneDiffBlkThers; 148 // M4_NUMBER_DESC("CenterSceneDiffThers", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0)) 149 float CenterSceneDiffThers; 150 151 // M4_NUMBER_DESC("ValidMaxMinRatio", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0)) 152 float ValidMaxMinRatio; 153 // M4_NUMBER_DESC("ValidValueThers", "f32", M4_RANGE(0,1000000), "0", M4_DIGIT(0),M4_HIDE(0)) 154 float ValidValueThers; 155 156 // M4_NUMBER_DESC("OutFocusValue", "f32", M4_RANGE(0,1000000), "50", M4_DIGIT(3),M4_HIDE(0)) 157 float OutFocusValue; /**< out of focus vlaue*/ 158 // M4_NUMBER_DESC("OutFocusPos", "u16", M4_RANGE(0,65), "32", M4_DIGIT(0),M4_HIDE(0)) 159 unsigned short OutFocusPos; /**< out of focus position*/ 160 161 // M4_NUMBER_DESC("LowLumaValue", "f32", M4_RANGE(0,4095), "0", M4_DIGIT(3),M4_HIDE(0)) 162 float LowLumaValue; /**< low luma thr vlaue*/ 163 // M4_NUMBER_DESC("LowLumaPos", "u16", M4_RANGE(0,1023), "64", M4_DIGIT(0),M4_HIDE(0)) 164 unsigned short LowLumaPos; /**< low luma focus position*/ 165 166 // M4_NUMBER_DESC("WeightEnable", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0),M4_HIDE(0)) 167 unsigned char WeightEnable; 168 // M4_ARRAY_DESC("Weight", "u16", M4_SIZE(15,15), M4_RANGE(0,65535), "0", M4_DIGIT(0), M4_DYNAMIC(0)) 169 unsigned short Weight[225]; /**< weight */ 170 171 // M4_NUMBER_DESC("SearchPauseLumaEnable", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0),M4_HIDE(0)) 172 unsigned char SearchPauseLumaEnable; 173 // M4_NUMBER_DESC("SearchPauseLumaThers", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0)) 174 float SearchPauseLumaThers; 175 // M4_NUMBER_DESC("StableFrames", "u16", M4_RANGE(0,65535), "0", M4_DIGIT(3),M4_HIDE(0)) 176 unsigned short SearchLumaStableFrames; 177 // M4_NUMBER_DESC("SearchLumaStableThers", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0)) 178 float SearchLumaStableThers; 179 180 // M4_NUMBER_DESC("Stage1QuickFoundThers", "f32", M4_RANGE(0,1), "0.01", M4_DIGIT(3),M4_HIDE(0)) 181 float Stage1QuickFoundThers; 182 // M4_NUMBER_DESC("Stage2QuickFoundThers", "f32", M4_RANGE(0,1), "0.2", M4_DIGIT(3),M4_HIDE(0)) 183 float Stage2QuickFoundThers; 184 185 // M4_NUMBER_DESC("FlatValue", "f32", M4_RANGE(0,65535), "0", M4_DIGIT(3),M4_HIDE(0)) 186 float FlatValue; 187 188 // M4_NUMBER_DESC("PointLightLumaTh", "u16", M4_RANGE(0,65535), "4095", M4_DIGIT(0),M4_HIDE(0)) 189 unsigned short PointLightLumaTh; /**< point light luma threshold */ 190 // M4_NUMBER_DESC("PointLightCntTh", "u16", M4_RANGE(0,65535), "225", M4_DIGIT(0),M4_HIDE(0)) 191 unsigned short PointLightCntTh; /**< point light count threshold */ 192 193 // M4_STRUCT_DESC("ZoomConfig", "normal_ui_style") 194 CalibDbV2_Af_ContrastZoom_t ZoomCfg; 195 } CalibDbV2_Af_Contrast_t; 196 197 typedef struct CalibDbV2_Af_Laser_s { 198 // M4_BOOL_DESC("enable", "0") 199 bool enable; 200 // M4_ARRAY_DESC("vcmDot", "f32", M4_SIZE(1,7), M4_RANGE(0,64), "[0, 16, 32, 40, 48, 56, 64]", M4_DIGIT(0), M4_DYNAMIC(0)) 201 float vcmDot[7]; 202 // M4_ARRAY_DESC("distanceDot", "f32", M4_SIZE(1,7), M4_RANGE(0,65535), "[0.2, 0.24, 0.34, 0.4, 0.66, 1, 3]", M4_DIGIT(4), M4_DYNAMIC(0)) 203 float distanceDot[7]; 204 } CalibDbV2_Af_Laser_t; 205 206 typedef struct CalibDbV2_Af_Pdaf_fineSearch_s { 207 // M4_NUMBER_DESC("confidence", "f32", M4_RANGE(0,1), "0.5", M4_DIGIT(3),M4_HIDE(0)) 208 float confidence; 209 // M4_NUMBER_DESC("range", "s32", M4_RANGE(0,1023), "0", M4_DIGIT(0)) 210 int range; 211 // M4_NUMBER_DESC("stepPos", "s32", M4_RANGE(1,1023), "1", M4_DIGIT(0)) 212 int stepPos; 213 } CalibDbV2_Af_Pdaf_fineSearch_t; 214 215 typedef struct CalibDbV2_Af_PdafIsoPara_s { 216 // M4_NUMBER_DESC("iso", "u32", M4_RANGE(0, 1000000), "50", M4_DIGIT(0)) 217 int iso; 218 // M4_NUMBER_DESC("pdConfdRatio0", "f32", M4_RANGE(0,1), "1", M4_DIGIT(3),M4_HIDE(0)) 219 float pdConfdRatio0; 220 // M4_NUMBER_DESC("pdConfdRatio1", "f32", M4_RANGE(0,1), "1", M4_DIGIT(3),M4_HIDE(0)) 221 float pdConfdRatio1; 222 // M4_NUMBER_DESC("pdConfdRatio2", "f32", M4_RANGE(0,1), "1", M4_DIGIT(3),M4_HIDE(0)) 223 float pdConfdRatio2; 224 // M4_NUMBER_DESC("pdConfdRatio3", "f32", M4_RANGE(0,1), "1", M4_DIGIT(3),M4_HIDE(0)) 225 float pdConfdRatio3; 226 // M4_NUMBER_DESC("pdConfdRhresh", "f32", M4_RANGE(0,1), "0.4", M4_DIGIT(3),M4_HIDE(0)) 227 float pdConfdThresh; 228 // M4_NUMBER_DESC("convergedInfPdThresh", "u16", M4_RANGE(0,1023), "12", M4_DIGIT(0),M4_HIDE(0)) 229 unsigned short convergedInfPdThresh; 230 // M4_NUMBER_DESC("convergedMacPdThresh", "u16", M4_RANGE(0,1023), "12", M4_DIGIT(0),M4_HIDE(0)) 231 unsigned short convergedMacPdThresh; 232 // M4_NUMBER_DESC("defocusInfPdThresh", "u16", M4_RANGE(0,1023), "12", M4_DIGIT(0),M4_HIDE(0)) 233 unsigned short defocusInfPdThresh; 234 // M4_NUMBER_DESC("defocusMacPdThresh", "u16", M4_RANGE(0,1023), "12", M4_DIGIT(0),M4_HIDE(0)) 235 unsigned short defocusMacPdThresh; 236 // M4_NUMBER_DESC("stablePdRatio", "f32", M4_RANGE(0,255), "0.125", M4_DIGIT(3),M4_HIDE(0)) 237 float stablePdRatio; 238 // M4_NUMBER_DESC("stablePdOffset", "u16", M4_RANGE(0,1023), "8", M4_DIGIT(3),M4_HIDE(0)) 239 unsigned short stablePdOffset; 240 // M4_NUMBER_DESC("stableCntRatio", "f32", M4_RANGE(0,1023), "1.5", M4_DIGIT(3),M4_HIDE(0)) 241 float stableCntRatio; 242 // M4_NUMBER_DESC("noconfCntThresh", "u16", M4_RANGE(0,255), "4", M4_DIGIT(0),M4_HIDE(0)) 243 unsigned short noconfCntThresh; 244 // M4_NUMBER_DESC("roiBlkCntW", "u8", M4_RANGE(1, 10), "3", M4_DIGIT(0)) 245 unsigned char roiBlkCntW; 246 // M4_NUMBER_DESC("roiBlkCntH", "u8", M4_RANGE(1, 10), "3", M4_DIGIT(0)) 247 unsigned char roiBlkCntH; 248 // M4_STRUCT_LIST_DESC("fineSearchTbl", M4_SIZE(1,10), "normal_ui_style") 249 CalibDbV2_Af_Pdaf_fineSearch_t* fineSearchTbl; 250 int fineSearchTbl_len; 251 } CalibDbV2_Af_PdafIsoPara_t; 252 253 typedef struct CalibDbV2_Af_PdafCalibInf_s { 254 // M4_NUMBER_DESC("pdGainMapW", "u16", M4_RANGE(1,1000), "32", M4_DIGIT(0),M4_HIDE(0)) 255 unsigned short pdGainMapW; 256 // M4_NUMBER_DESC("pdGainMapH", "u16", M4_RANGE(1,1000), "32", M4_DIGIT(0),M4_HIDE(0)) 257 unsigned short pdGainMapH; 258 // M4_NUMBER_DESC("pdDccMapW", "u16", M4_RANGE(1,1000), "32", M4_DIGIT(0),M4_HIDE(0)) 259 unsigned short pdDccMapW; 260 // M4_NUMBER_DESC("pdDccMapH", "u16", M4_RANGE(1,1000), "32", M4_DIGIT(0),M4_HIDE(0)) 261 unsigned short pdDccMapH; 262 } CalibDbV2_Af_PdafCalibInf_t; 263 264 typedef struct CalibDbV2_Af_PdafResolution_s { 265 // M4_NUMBER_DESC("imageWidth", "u16", M4_RANGE(0, 65535), "508", M4_DIGIT(0)) 266 unsigned short imageWidth; 267 // M4_NUMBER_DESC("imageHeight", "u16", M4_RANGE(0, 65535), "760", M4_DIGIT(0)) 268 unsigned short imageHeight; 269 // M4_NUMBER_DESC("pdOutWidth", "u16", M4_RANGE(0, 65535), "508", M4_DIGIT(0)) 270 unsigned short pdOutWidth; 271 // M4_NUMBER_DESC("pdOutHeight", "u16", M4_RANGE(0, 65535), "760", M4_DIGIT(0)) 272 unsigned short pdOutHeight; 273 // M4_NUMBER_DESC("pdCropX", "u16", M4_RANGE(0, 65535), "508", M4_DIGIT(0)) 274 unsigned short pdCropX; 275 // M4_NUMBER_DESC("pdCropY", "u16", M4_RANGE(0, 65535), "760", M4_DIGIT(0)) 276 unsigned short pdCropY; 277 // M4_NUMBER_DESC("pdBaseWidth", "u16", M4_RANGE(0, 65535), "508", M4_DIGIT(0)) 278 unsigned short pdBaseWidth; 279 // M4_NUMBER_DESC("pdBaseHeight", "u16", M4_RANGE(0, 65535), "760", M4_DIGIT(0)) 280 unsigned short pdBaseHeight; 281 } CalibDbV2_Af_PdafResolution_t; 282 283 typedef struct CalibDbV2_Af_Pdaf_s { 284 // M4_BOOL_DESC("enable", "0") 285 bool enable; 286 // M4_NUMBER_DESC("pdVsCdDebug", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0)) 287 unsigned char pdVsCdDebug; 288 // M4_NUMBER_DESC("pdDumpDebug", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0)) 289 unsigned char pdDumpDebug; 290 // M4_NUMBER_DESC("pdDumpMaxFrm", "u16", M4_RANGE(1,10000), "300", M4_DIGIT(0),M4_HIDE(0)) 291 unsigned short pdDumpMaxFrm; 292 // M4_NUMBER_DESC("pdDataBit", "u16", M4_RANGE(1,16), "10", M4_DIGIT(0),M4_HIDE(0)) 293 unsigned short pdDataBit; 294 // M4_NUMBER_DESC("pdBlkLevel", "u16", M4_RANGE(1,1023), "64", M4_DIGIT(0),M4_HIDE(0)) 295 unsigned short pdBlkLevel; 296 // M4_NUMBER_DESC("pdSearchRadius", "u16", M4_RANGE(0,32), "3", M4_DIGIT(0),M4_HIDE(0)) 297 unsigned short pdSearchRadius; 298 // M4_NUMBER_DESC("pdMirrorInCalib", "u8", M4_RANGE(0, 3), "1", M4_DIGIT(0)) 299 unsigned char pdMirrorInCalib; 300 // M4_NUMBER_DESC("pdChangeLeftRight", "u8", M4_RANGE(0, 1), "1", M4_DIGIT(0)) 301 unsigned char pdChangeLeftRight; 302 // M4_NUMBER_DESC("pdVsImgoutMirror", "u8", M4_RANGE(0, 3), "0", M4_DIGIT(0)) 303 unsigned char pdVsImgoutMirror; 304 // M4_NUMBER_DESC("pdLRInDiffLine", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0)) 305 unsigned char pdLRInDiffLine; 306 // M4_NUMBER_DESC("pdWidth", "u16", M4_RANGE(0, 65535), "508", M4_DIGIT(0)) 307 unsigned short pdWidth; 308 // M4_NUMBER_DESC("pdHeight", "u16", M4_RANGE(0, 65535), "760", M4_DIGIT(0)) 309 unsigned short pdHeight; 310 // M4_NUMBER_DESC("pdMaxWidth", "u16", M4_RANGE(0, 65535), "508", M4_DIGIT(0)) 311 unsigned short pdMaxWidth; 312 // M4_NUMBER_DESC("pdMaxHeight", "u16", M4_RANGE(0, 65535), "760", M4_DIGIT(0)) 313 unsigned short pdMaxHeight; 314 // M4_NUMBER_DESC("pdVerBinning", "u8", M4_RANGE(0, 255), "0", M4_DIGIT(0)) 315 unsigned char pdVerBinning; 316 // M4_NUMBER_DESC("pdFrmInValid", "u8", M4_RANGE(0, 4), "1", M4_DIGIT(0)) 317 unsigned char pdFrmInValid; 318 // M4_NUMBER_DESC("pdDgainValid", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0)) 319 unsigned char pdDgainValid; 320 // M4_NUMBER_DESC("pdGainMapNormEn", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0)) 321 unsigned char pdGainMapNormEn; 322 // M4_NUMBER_DESC("pdConfdMode", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0)) 323 unsigned char pdConfdMode; 324 // M4_NUMBER_DESC("pdNoiseSn", "f32", M4_RANGE(0,100), "0.207", M4_DIGIT(3),M4_HIDE(0)) 325 float pdNoiseSn; 326 // M4_ARRAY_DESC("pdNoiseRn", "f32", M4_SIZE(1,2), M4_RANGE(0,100), "[0.14, 2.8]", M4_DIGIT(3), M4_DYNAMIC(0)) 327 float pdNoiseRn[2]; 328 // M4_NUMBER_DESC("pdNoisePn", "f32", M4_RANGE(0,100), "0.25", M4_DIGIT(3),M4_HIDE(0)) 329 float pdNoisePn; 330 // M4_NUMBER_DESC("pdSatValRatio", "f32", M4_RANGE(0,1), "0.92", M4_DIGIT(3),M4_HIDE(0)) 331 float pdSatValRatio; 332 // M4_NUMBER_DESC("pdSatCntRatio", "f32", M4_RANGE(0,1), "0.06", M4_DIGIT(3),M4_HIDE(0)) 333 float pdSatCntRatio; 334 // M4_NUMBER_DESC("pdDiscardRegionEn", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0)) 335 unsigned char pdDiscardRegionEn; 336 // M4_NUMBER_DESC("pdLessTextureRatio", "f32", M4_RANGE(0,5), "0.25", M4_DIGIT(3),M4_HIDE(0)) 337 float pdLessTextureRatio; 338 // M4_NUMBER_DESC("pdTargetOffset", "s16", M4_RANGE(-4096,4096), "0", M4_DIGIT(0),M4_HIDE(0)) 339 short pdTargetOffset; 340 // M4_STRUCT_DESC("pdCalibInf", "normal_ui_style") 341 CalibDbV2_Af_PdafCalibInf_t pdCalibInf; 342 // M4_NUMBER_DESC("pdConfdMwinFactor", "u16", M4_RANGE(0,225), "3", M4_DIGIT(0),M4_HIDE(0)) 343 unsigned short pdConfdMwinFactor; 344 // M4_NUMBER_DESC("pdCenterMinFv", "u32", M4_RANGE(0,100000), "0", M4_DIGIT(0),M4_HIDE(0)) 345 unsigned int pdCenterMinFv; 346 // M4_NUMBER_DESC("pdCenterMinRatio", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3),M4_HIDE(0)) 347 float pdCenterMinRatio; 348 // M4_NUMBER_DESC("pdHighlightRatio", "f32", M4_RANGE(0,1), "0.1", M4_DIGIT(3),M4_HIDE(0)) 349 float pdHighlightRatio; 350 // M4_ARRAY_DESC("pdStepRatio", "f32", M4_SIZE(1,7), M4_RANGE(0,1), "[1.0, 1.0, 1.0, 0.9, 0.8, 0.7, 0.7]", M4_DIGIT(3), M4_DYNAMIC(0)) 351 float pdStepRatio[7]; 352 // M4_ARRAY_DESC("pdStepDefocus", "u16", M4_SIZE(1,7), M4_RANGE(0,1023), "[32, 64, 96, 128, 160, 192, 224]", M4_DIGIT(0), M4_DYNAMIC(0)) 353 unsigned short pdStepDefocus[7]; 354 // M4_STRUCT_LIST_DESC("pdIsoPara", M4_SIZE(1,16), "normal_ui_style") 355 CalibDbV2_Af_PdafIsoPara_t* pdIsoPara; 356 int pdIsoPara_len; 357 CalibDbV2_Af_PdafResolution_t* pdResoInf; 358 int pdResoInf_len; 359 } CalibDbV2_Af_Pdaf_t; 360 361 typedef struct CalibDbV2_Af_VcmCfg_s { 362 // M4_NUMBER_DESC("max logical pos", "u32", M4_RANGE(0,4095), "64", M4_DIGIT(0)) 363 unsigned int max_logical_pos; 364 // M4_NUMBER_DESC("start current", "s32", M4_RANGE(-1, 2048), "-1", M4_DIGIT(0)) 365 int start_current; 366 // M4_NUMBER_DESC("rated current", "s32", M4_RANGE(-1, 2048), "-1", M4_DIGIT(0)) 367 int rated_current; 368 // M4_NUMBER_DESC("step mode", "s32", M4_RANGE(-1, 1000), "-1", M4_DIGIT(0)) 369 int step_mode; 370 // M4_NUMBER_DESC("extra delay", "s32", M4_RANGE(-10000,10000), "0", M4_DIGIT(0)) 371 int extra_delay; 372 // M4_NUMBER_DESC("posture diff", "f32", M4_RANGE(0,1), "0", M4_DIGIT(3)) 373 float posture_diff; 374 } CalibDbV2_Af_VcmCfg_t; 375 376 typedef struct CalibDbV2_Af_MeasIsoCfg_s { 377 // M4_NUMBER_DESC("iso", "u32", M4_RANGE(0, 1000000), "0", M4_DIGIT(0)) 378 int iso; 379 // M4_NUMBER_DESC("afmThres", "u16", M4_RANGE(0, 255), "4", M4_DIGIT(0)) 380 unsigned short afmThres; 381 // M4_ARRAY_MARK_DESC("Gamma_curve", "u16", M4_SIZE(1,17), M4_RANGE(0, 1023), "[0,45,108,179,245,344,409,459,500,567,622,676,759,833,896,962,1023]", M4_DIGIT(0), M4_DYNAMIC(0), "curve_table") 382 unsigned short gammaY[17]; 383 // M4_ARRAY_DESC("gaussWeight", "u8", M4_SIZE(1,3), M4_RANGE(0,128), "[32,16,8]", M4_DIGIT(0), M4_DYNAMIC(0)) 384 unsigned char gaussWeight[3]; 385 } CalibDbV2_Af_MeasIsoCfg_t; 386 387 typedef struct CalibDbV2_Af_DefCode_s { 388 // M4_NUMBER_DESC("code", "u8", M4_RANGE(0, 64), "32", M4_DIGIT(0)) 389 unsigned char code; 390 } CalibDbV2_Af_DefCode_t; 391 392 typedef struct CalibDbV2_Af_FocusCode_s { 393 // M4_NUMBER_DESC("focus position", "f32", M4_RANGE(0, 1000000), "0", M4_DIGIT(3), M4_HIDE(1)) 394 float pos; 395 // M4_ARRAY_DESC("focus code", "s16", M4_SIZE(1,5000), M4_RANGE(-32768,32767), "0", M4_DIGIT(0), M4_DYNAMIC(1), M4_HIDE(1)) 396 short *code; 397 int code_len; 398 } CalibDbV2_Af_FocusCode_t; 399 400 typedef struct CalibDbV2_Af_ZoomFocusTbl_s { 401 // M4_NUMBER_DESC("widemod deviate", "u32", M4_RANGE(0, 1000), "0", M4_DIGIT(0)) 402 int widemod_deviate; 403 // M4_NUMBER_DESC("telemod deviate", "u32", M4_RANGE(0, 1000), "0", M4_DIGIT(0)) 404 int telemod_deviate; 405 // M4_NUMBER_DESC("focus backward value", "u32", M4_RANGE(0, 1000), "0", M4_DIGIT(0)) 406 int focus_backval; 407 // M4_ARRAY_DESC("zoom move dot", "u32", M4_SIZE(1,32), M4_RANGE(0,1000000), "0", M4_DIGIT(0), M4_DYNAMIC(1)) 408 int *zoom_move_dot; 409 int zoom_move_dot_len; 410 // M4_ARRAY_DESC("zoom move step", "u32", M4_SIZE(1,32), M4_RANGE(0,1000000), "16", M4_DIGIT(0), M4_DYNAMIC(1)) 411 int *zoom_move_step; 412 int zoom_move_step_len; 413 // M4_ARRAY_DESC("focal length", "f32", M4_SIZE(1,5000), M4_RANGE(0,10000), "0", M4_DIGIT(3), M4_DYNAMIC(1), M4_HIDE(1)) 414 float *focal_length; 415 int focal_length_len; 416 // M4_ARRAY_DESC("zoom code", "s16", M4_SIZE(1,5000), M4_RANGE(-32768,32767), "0", M4_DIGIT(0), M4_DYNAMIC(1), M4_HIDE(1)) 417 short *zoomcode; 418 int zoomcode_len; 419 // M4_STRUCT_LIST_DESC("focus code", M4_SIZE_DYNAMIC, "normal_ui_style", "0", M4_HIDE(1)) 420 CalibDbV2_Af_FocusCode_t *focuscode; 421 int focuscode_len; 422 423 // M4_ARRAY_DESC("zoom search table", "s32", M4_SIZE(1,32), M4_RANGE(-32768,32767), "0", M4_DIGIT(0), M4_DYNAMIC(1)) 424 int *ZoomSearchTbl; 425 // M4_NUMBER_DESC("zoom search table number", "u32", M4_RANGE(0, 100), "0", M4_DIGIT(0)) 426 int ZoomSearchTbl_len; 427 // M4_NUMBER_DESC("zoom search reference curve", "u32", M4_RANGE(0, 32), "0", M4_DIGIT(0)) 428 int ZoomSearchRefCurveIdx; 429 // M4_NUMBER_DESC("zoom search margin", "u32", M4_RANGE(0, 100000), "50", M4_DIGIT(0)) 430 int FocusSearchMargin; 431 // M4_ARRAY_DESC("zoom search plus range", "u32", M4_SIZE(1,32), M4_RANGE(0,32767), "0", M4_DIGIT(0), M4_DYNAMIC(1)) 432 int *FocusSearchPlusRange; 433 int FocusSearchPlusRange_len; 434 // M4_NUMBER_DESC("focus stage1 step", "u32", M4_RANGE(0, 100), "0", M4_DIGIT(0)) 435 int FocusStage1Step; 436 // M4_NUMBER_DESC("quickFndRate", "f32", M4_RANGE(0,1), "0.2", M4_DIGIT(3),M4_HIDE(0)) 437 float QuickFndRate; 438 // M4_NUMBER_DESC("quickFndMinFv", "f32", M4_RANGE(0,2147483647), "1000", M4_DIGIT(0),M4_HIDE(0)) 439 float QuickFndMinFv; 440 // M4_NUMBER_DESC("search zoom range", "u32", M4_RANGE(0, 100000), "100", M4_DIGIT(0)) 441 int searchZoomRange; 442 // M4_NUMBER_DESC("search focus range", "u32", M4_RANGE(0, 100000), "100", M4_DIGIT(0)) 443 int searchFocusRange; 444 // M4_NUMBER_DESC("search emax", "f32", M4_RANGE(0,100000), "100", M4_DIGIT(3),M4_HIDE(0)) 445 float searchEmax; 446 // M4_NUMBER_DESC("search eavg", "f32", M4_RANGE(0,100000), "100", M4_DIGIT(3),M4_HIDE(0)) 447 float searchEavg; 448 449 // M4_NUMBER_DESC("IsZoomFocusRec", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0)) 450 unsigned char IsZoomFocusRec; 451 // M4_STRING_DESC("ZoomInfoDir", M4_SIZE(1,1), M4_RANGE(0, 64), "/data/", M4_DYNAMIC(0)) 452 char *ZoomInfoDir; 453 // M4_NUMBER_DESC("zoom init Index", "u32", M4_RANGE(0, 100000), "0", M4_DIGIT(0)) 454 int ZoomInitIndex; 455 } CalibDbV2_Af_ZoomFocusTbl_t; 456 457 typedef struct CalibDb_Af_LdgParam_s { 458 // M4_NUMBER_DESC("enable", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0)) 459 unsigned char enable; 460 // M4_NUMBER_DESC("ldg xl", "u32", M4_RANGE(0, 255), "10", M4_DIGIT(0)) 461 int ldg_xl; 462 // M4_NUMBER_DESC("ldg yl", "u32", M4_RANGE(0, 255), "28", M4_DIGIT(0)) 463 int ldg_yl; 464 // M4_NUMBER_DESC("ldg kl", "u32", M4_RANGE(0, 2147483647), "1286", M4_DIGIT(0)) 465 int ldg_kl; 466 // M4_NUMBER_DESC("ldg xh", "u32", M4_RANGE(0, 255), "118", M4_DIGIT(0)) 467 int ldg_xh; 468 // M4_NUMBER_DESC("ldg yh", "u32", M4_RANGE(0, 255), "8", M4_DIGIT(0)) 469 int ldg_yh; 470 // M4_NUMBER_DESC("ldg kh", "u32", M4_RANGE(0, 2147483647), "1340", M4_DIGIT(0)) 471 int ldg_kh; 472 } CalibDbV2_Af_LdgParam_t; 473 474 typedef struct CalibDb_Af_HighLightParam_s { 475 // M4_NUMBER_DESC("ther0", "u32", M4_RANGE(0, 255), "245", M4_DIGIT(0)) 476 int ther0; 477 // M4_NUMBER_DESC("ther1", "u32", M4_RANGE(0, 255), "200", M4_DIGIT(0)) 478 int ther1; 479 } CalibDbV2_Af_HighLightParam_t; 480 481 typedef struct CalibDbV2_AF_Tuning_Para_s { 482 // M4_ENUM_DESC("mode", "CalibDbV2_AF_MODE_t", "CalibDbV2_AFMODE_CONT_PICTURE") 483 CalibDbV2_AF_MODE_t af_mode; 484 // M4_NUMBER_DESC("win_h_offs", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 485 unsigned short win_h_offs; 486 // M4_NUMBER_DESC("win_v_offs", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 487 unsigned short win_v_offs; 488 // M4_NUMBER_DESC("win_h_size", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 489 unsigned short win_h_size; 490 // M4_NUMBER_DESC("win_v_size", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 491 unsigned short win_v_size; 492 // M4_NUMBER_DESC("win_h_offs in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 493 unsigned short video_win_h_offs; 494 // M4_NUMBER_DESC("win_v_offs in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 495 unsigned short video_win_v_offs; 496 // M4_NUMBER_DESC("win_h_size in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 497 unsigned short video_win_h_size; 498 // M4_NUMBER_DESC("win_v_size in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 499 unsigned short video_win_v_size; 500 // M4_STRUCT_DESC("fixed mode", "normal_ui_style") 501 CalibDbV2_Af_DefCode_t fixed_mode; 502 // M4_STRUCT_DESC("macro mode", "normal_ui_style") 503 CalibDbV2_Af_DefCode_t macro_mode; 504 // M4_STRUCT_DESC("infinity mode", "normal_ui_style") 505 CalibDbV2_Af_DefCode_t infinity_mode; 506 // M4_STRUCT_DESC("ldg param", "normal_ui_style") 507 CalibDbV2_Af_LdgParam_t ldg_param; 508 // M4_STRUCT_DESC("high light", "normal_ui_style") 509 CalibDbV2_Af_HighLightParam_t highlight; 510 // M4_STRUCT_DESC("contrast af", "normal_ui_style") 511 CalibDbV2_Af_Contrast_t contrast_af; 512 // M4_STRUCT_DESC("video contrast af", "normal_ui_style") 513 CalibDbV2_Af_Contrast_t video_contrast_af; 514 // M4_STRUCT_DESC("laser af", "normal_ui_style") 515 CalibDbV2_Af_Laser_t laser_af; 516 // M4_STRUCT_DESC("vcmcfg", "normal_ui_style") 517 CalibDbV2_Af_VcmCfg_t vcmcfg; 518 // M4_STRUCT_DESC("zoomfocus_tbl", "normal_ui_style") 519 CalibDbV2_Af_ZoomFocusTbl_t zoomfocus_tbl; 520 // M4_STRUCT_LIST_DESC("meas iso config", M4_SIZE(1,13), "normal_ui_style") 521 CalibDbV2_Af_MeasIsoCfg_t measiso_cfg[CALIBDBV2_MAX_ISO_LEVEL]; 522 } CalibDbV2_AF_Tuning_Para_t; 523 524 typedef struct { 525 // M4_STRUCT_DESC("TuningPara", "normal_ui_style") 526 CalibDbV2_AF_Tuning_Para_t TuningPara; 527 } CalibDbV2_AF_t; 528 529 typedef struct CalibDbV2_AfV30_MeasCfg_s { 530 // M4_NUMBER_DESC("table index", "u32", M4_RANGE(0, 1000000), "0", M4_DIGIT(0)) 531 unsigned int tbl_idx; 532 // M4_NUMBER_DESC("afmThres", "u16", M4_RANGE(0, 255), "4", M4_DIGIT(0)) 533 unsigned short afmThres; 534 // M4_ARRAY_MARK_DESC("Gamma Curve", "u16", M4_SIZE(1,17), M4_RANGE(0, 1023), "[0,45,108,179,245,344,409,459,500,567,622,676,759,833,896,962,1023]", M4_DIGIT(0), M4_DYNAMIC(0), "curve_table") 535 unsigned short gammaY[17]; 536 // M4_NUMBER_DESC("v1fv reliable", "f32", M4_RANGE(0, 1), "0.2", M4_DIGIT(3)) 537 float v1fv_reliable; 538 // M4_NUMBER_DESC("v2fv reliable", "f32", M4_RANGE(0, 1), "0.2", M4_DIGIT(3)) 539 float v2fv_reliable; 540 // M4_NUMBER_DESC("v1 fir sel", "u8", M4_RANGE(0, 1), "1", M4_DIGIT(0)) 541 unsigned char v1_fir_sel; 542 // M4_ARRAY_DESC("v1 band", "f32", M4_SIZE(1,2), M4_RANGE(0, 1), "[0.04, 0.14]", M4_DIGIT(3), M4_DYNAMIC(0)) 543 float v1_band[2]; 544 // M4_ARRAY_DESC("vertical first iir filter", "s16", M4_SIZE(1,9), M4_RANGE(-2047,2047), "[0, 483, 0, 0, 27, 0, 0, 28, 0]", M4_DIGIT(0), M4_DYNAMIC(0)) 545 short v1_iir_coe[9]; 546 // M4_ARRAY_DESC("vertical first fir filter", "s16", M4_SIZE(1,3), M4_RANGE(-2047,2047), "[-1212, 0, 1212]", M4_DIGIT(0), M4_DYNAMIC(0)) 547 short v1_fir_coe[3]; 548 // M4_ARRAY_DESC("v2 band", "f32", M4_SIZE(1,2), M4_RANGE(0, 1), "[0.04, 0.14]", M4_DIGIT(3), M4_DYNAMIC(0)) 549 float v2_band[2]; 550 // M4_ARRAY_DESC("vertical second iir filter", "s16", M4_SIZE(1,3), M4_RANGE(-2047,2047), "[483, 27, 28]", M4_DIGIT(0), M4_DYNAMIC(0)) 551 short v2_iir_coe[3]; 552 // M4_ARRAY_DESC("vertical second fir filter", "s16", M4_SIZE(1,3), M4_RANGE(-2047,2047), "[-1212, 0, 1212]", M4_DIGIT(0), M4_DYNAMIC(0)) 553 short v2_fir_coe[3]; 554 // M4_ARRAY_DESC("h1 band", "f32", M4_SIZE(1,2), M4_RANGE(0, 1), "[0.04, 0.14]", M4_DIGIT(3), M4_DYNAMIC(0)) 555 float h1_band[2]; 556 // M4_ARRAY_DESC("horizontal first iir1 filter", "s16", M4_SIZE(1,6), M4_RANGE(-2047,2047), "[512, 553, -271, 471, 0, -471]", M4_DIGIT(0), M4_DYNAMIC(0)) 557 short h1_iir1_coe[6]; 558 // M4_ARRAY_DESC("horizontal first iir2 filter", "s16", M4_SIZE(1,6), M4_RANGE(-2047,2047), "[97, 875, -400, 199, 0, -199]", M4_DIGIT(0), M4_DYNAMIC(0)) 559 short h1_iir2_coe[6]; 560 // M4_ARRAY_DESC("h2 band", "f32", M4_SIZE(1,2), M4_RANGE(0, 1), "[0.04, 0.14]", M4_DIGIT(3), M4_DYNAMIC(0)) 561 float h2_band[2]; 562 // M4_ARRAY_DESC("horizontal second iir1 filter", "s16", M4_SIZE(1,6), M4_RANGE(-2047,2047), "[512, 553, -271, 471, 0, -471]", M4_DIGIT(0), M4_DYNAMIC(0)) 563 short h2_iir1_coe[6]; 564 // M4_ARRAY_DESC("horizontal second iir2 filter", "s16", M4_SIZE(1,6), M4_RANGE(-2047,2047), "[97, 875, -400, 199, 0, -199]", M4_DIGIT(0), M4_DYNAMIC(0)) 565 short h2_iir2_coe[6]; 566 // M4_NUMBER_DESC("ldg enable", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0)) 567 unsigned char ldg_en; 568 // M4_NUMBER_DESC("vertical minluma thresh", "u8", M4_RANGE(0, 255), "64", M4_DIGIT(0)) 569 unsigned char ve_ldg_lumth_l; 570 // M4_NUMBER_DESC("vertical gain for minluma", "u8", M4_RANGE(0, 255), "28", M4_DIGIT(0)) 571 unsigned char ve_ldg_gain_l; 572 // M4_NUMBER_DESC("vertical slope low", "u16", M4_RANGE(0, 8191), "1286", M4_DIGIT(0)) 573 unsigned short ve_ldg_gslp_l; 574 // M4_NUMBER_DESC("vertical maxluma thresh", "u8", M4_RANGE(0, 255), "185", M4_DIGIT(0)) 575 unsigned char ve_ldg_lumth_h; 576 // M4_NUMBER_DESC("vertical gain for maxluma", "u8", M4_RANGE(0, 255), "8", M4_DIGIT(0)) 577 unsigned char ve_ldg_gain_h; 578 // M4_NUMBER_DESC("vertical slope high", "u16", M4_RANGE(0, 8191), "1400", M4_DIGIT(0)) 579 unsigned short ve_ldg_gslp_h; 580 // M4_NUMBER_DESC("horizontal minluma thresh", "u8", M4_RANGE(0, 255), "64", M4_DIGIT(0)) 581 unsigned char ho_ldg_lumth_l; 582 // M4_NUMBER_DESC("horizontal gain for minluma", "u8", M4_RANGE(0, 255), "28", M4_DIGIT(0)) 583 unsigned char ho_ldg_gain_l; 584 // M4_NUMBER_DESC("horizontal slope low", "u16", M4_RANGE(0, 8191), "1286", M4_DIGIT(0)) 585 unsigned short ho_ldg_gslp_l; 586 // M4_NUMBER_DESC("horizontal maxluma thresh", "u8", M4_RANGE(0, 255), "185", M4_DIGIT(0)) 587 unsigned char ho_ldg_lumth_h; 588 // M4_NUMBER_DESC("horizontal gain for maxluma", "u8", M4_RANGE(0, 255), "8", M4_DIGIT(0)) 589 unsigned char ho_ldg_gain_h; 590 // M4_NUMBER_DESC("horizontal slope high", "u16", M4_RANGE(0, 8191), "1400", M4_DIGIT(0)) 591 unsigned short ho_ldg_gslp_h; 592 // M4_NUMBER_DESC("vertical fv thresh", "u16", M4_RANGE(0, 4095), "4", M4_DIGIT(0)) 593 unsigned short v_fv_thresh; 594 // M4_NUMBER_DESC("horizontal fv thresh", "u16", M4_RANGE(0, 4095), "4", M4_DIGIT(0)) 595 unsigned short h_fv_thresh; 596 // M4_NUMBER_DESC("highlight thresh", "u16", M4_RANGE(0, 4095), "912", M4_DIGIT(0)) 597 unsigned short highlit_thresh; 598 // M4_NUMBER_DESC("vertical fv ratio", "f32", M4_RANGE(0, 1), "0.5", M4_DIGIT(3)) 599 float v_fv_ratio; 600 } CalibDbV2_AfV30_MeasCfg_t; 601 602 typedef struct CalibDbV2_AfV30_IsoMeasCfg_s { 603 // M4_NUMBER_MARK_DESC("iso", "f32", M4_RANGE(50, 204800), "50", M4_DIGIT(0), "index2", "0", M4_DYNAMIC(1)) 604 float iso; 605 // M4_NUMBER_DESC("meas table index", "u32", M4_RANGE(0, 100), "0", M4_DIGIT(0)) 606 int idx; 607 // M4_NUMBER_DESC("spotlight scene meas table index", "u32", M4_RANGE(0, 100), "0", M4_DIGIT(0)) 608 int spotlt_scene_idx; 609 } CalibDbV2_AfV30_IsoMeasCfg_t; 610 611 typedef struct CalibDbV2_AfV30_ZoomMeas_s { 612 // M4_NUMBER_MARK_DESC("zoom index", "u32", M4_RANGE(0, 100000), "0", M4_DIGIT(0), "index1", "0", M4_DYNAMIC(1)) 613 int zoom_idx; 614 // M4_STRUCT_LIST_DESC("meas iso config", M4_SIZE_DYNAMIC, "double_index_list") 615 CalibDbV2_AfV30_IsoMeasCfg_t *measiso; 616 int measiso_len; 617 } CalibDbV2_AfV30_ZoomMeas_t; 618 619 typedef struct CalibDbV2_AFV30_Tuning_Para_s { 620 // M4_ENUM_DESC("mode", "CalibDbV2_AF_MODE_t", "CalibDbV2_AFMODE_CONT_PICTURE") 621 CalibDbV2_AF_MODE_t af_mode; 622 // M4_NUMBER_DESC("win_h_offs", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 623 unsigned short win_h_offs; 624 // M4_NUMBER_DESC("win_v_offs", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 625 unsigned short win_v_offs; 626 // M4_NUMBER_DESC("win_h_size", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 627 unsigned short win_h_size; 628 // M4_NUMBER_DESC("win_v_size", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 629 unsigned short win_v_size; 630 // M4_NUMBER_DESC("win_h_offs in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 631 unsigned short video_win_h_offs; 632 // M4_NUMBER_DESC("win_v_offs in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 633 unsigned short video_win_v_offs; 634 // M4_NUMBER_DESC("win_h_size in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 635 unsigned short video_win_h_size; 636 // M4_NUMBER_DESC("win_v_size in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 637 unsigned short video_win_v_size; 638 // M4_STRUCT_DESC("fixed mode", "normal_ui_style") 639 CalibDbV2_Af_DefCode_t fixed_mode; 640 // M4_STRUCT_DESC("macro mode", "normal_ui_style") 641 CalibDbV2_Af_DefCode_t macro_mode; 642 // M4_STRUCT_DESC("infinity mode", "normal_ui_style") 643 CalibDbV2_Af_DefCode_t infinity_mode; 644 // M4_STRUCT_DESC("contrast af", "normal_ui_style") 645 CalibDbV2_Af_Contrast_t contrast_af; 646 // M4_STRUCT_DESC("video contrast af", "normal_ui_style") 647 CalibDbV2_Af_Contrast_t video_contrast_af; 648 // M4_STRUCT_DESC("laser af", "normal_ui_style") 649 CalibDbV2_Af_Laser_t laser_af; 650 // M4_STRUCT_DESC("pdaf", "normal_ui_style") 651 CalibDbV2_Af_Pdaf_t pdaf; 652 // M4_STRUCT_DESC("vcmcfg", "normal_ui_style") 653 CalibDbV2_Af_VcmCfg_t vcmcfg; 654 // M4_STRUCT_DESC("zoomfocus_tbl", "normal_ui_style") 655 CalibDbV2_Af_ZoomFocusTbl_t zoomfocus_tbl; 656 // M4_STRUCT_LIST_DESC("zoom meas", M4_SIZE_DYNAMIC, "double_index_list") 657 CalibDbV2_AfV30_ZoomMeas_t *zoom_meas; 658 int zoom_meas_len; 659 // M4_STRUCT_LIST_DESC("meas config table", M4_SIZE_DYNAMIC, "normal_ui_style") 660 CalibDbV2_AfV30_MeasCfg_t *meascfg_tbl; 661 int meascfg_tbl_len; 662 } CalibDbV2_AFV30_Tuning_Para_t; 663 664 typedef struct { 665 // M4_STRUCT_DESC("TuningPara", "normal_ui_style") 666 CalibDbV2_AFV30_Tuning_Para_t TuningPara; 667 } CalibDbV2_AFV30_t; 668 669 typedef enum CalibDbV2_AF_DNSCL_MODE_s { 670 CalibDbV2_AF_DNSCL_0 = 0, 671 CalibDbV2_AF_DNSCL_1 = 1, 672 CalibDbV2_AF_DNSCL_2 = 2 673 } CalibDbV2_AF_DNSCL_MODE_t; 674 675 typedef struct CalibDbV2_AfV31_MeasCfg_s { 676 // M4_NUMBER_DESC("table index", "u32", M4_RANGE(0, 1000000), "0", M4_DIGIT(0)) 677 unsigned int tbl_idx; 678 // M4_BOOL_DESC("from awb", "0") 679 bool from_awb; 680 // M4_BOOL_DESC("from ynr", "0") 681 bool from_ynr; 682 // M4_NUMBER_DESC("afmThres", "u16", M4_RANGE(0, 255), "4", M4_DIGIT(0)) 683 unsigned short afmThres; 684 // M4_ARRAY_MARK_DESC("Gamma Curve", "u16", M4_SIZE(1,17), M4_RANGE(0, 1023), "[0,45,108,179,245,344,409,459,500,567,622,676,759,833,896,962,1023]", M4_DIGIT(0), M4_DYNAMIC(0), "curve_table") 685 unsigned short gammaY[17]; 686 // M4_ARRAY_DESC("gaus coe", "s16", M4_SIZE(3,3), M4_RANGE(-128, 127), "[0,64,0,0,64,0,0,0,0]", M4_DIGIT(0), M4_DYNAMIC(0)) 687 short gaus_coe[9]; 688 // M4_ENUM_DESC("downscale mode", "CalibDbV2_AF_DNSCL_MODE_t", "CalibDbV2_AF_DNSCL_1") 689 CalibDbV2_AF_DNSCL_MODE_t dnscl_mode; 690 // M4_NUMBER_DESC("v1fv reliable", "f32", M4_RANGE(0, 1), "0.5", M4_DIGIT(3)) 691 float v1fv_reliable; 692 // M4_NUMBER_DESC("v2fv reliable", "f32", M4_RANGE(0, 1), "0.5", M4_DIGIT(3)) 693 float v2fv_reliable; 694 // M4_NUMBER_DESC("v1 fir sel", "u8", M4_RANGE(0, 1), "1", M4_DIGIT(0)) 695 unsigned char v1_fir_sel; 696 // M4_ARRAY_DESC("v1 band", "f32", M4_SIZE(1,2), M4_RANGE(0, 1), "[0.042,0.140]", M4_DIGIT(3), M4_DYNAMIC(0)) 697 float v1_band[2]; 698 // M4_ARRAY_DESC("vertical first iir filter", "s16", M4_SIZE(1,3), M4_RANGE(-255,255), "[-265, 686, 512]", M4_DIGIT(0), M4_DYNAMIC(0)) 699 short v1_iir_coe[3]; 700 // M4_ARRAY_DESC("vertical first fir filter", "s16", M4_SIZE(1,3), M4_RANGE(-2047,2047), "[-124, 0, 124]", M4_DIGIT(0), M4_DYNAMIC(0)) 701 short v1_fir_coe[3]; 702 // M4_ARRAY_DESC("v2 band", "f32", M4_SIZE(1,2), M4_RANGE(0, 1), "[0.055, 0.125]", M4_DIGIT(3), M4_DYNAMIC(0)) 703 float v2_band[2]; 704 // M4_ARRAY_DESC("vertical second iir filter", "s16", M4_SIZE(1,3), M4_RANGE(-2047,2047), "[-325, 724, 512]", M4_DIGIT(0), M4_DYNAMIC(0)) 705 short v2_iir_coe[3]; 706 // M4_ARRAY_DESC("vertical second fir filter", "s16", M4_SIZE(1,3), M4_RANGE(-2047,2047), "[-94, 0, 94]", M4_DIGIT(0), M4_DYNAMIC(0)) 707 short v2_fir_coe[3]; 708 // M4_ARRAY_DESC("h1 band", "f32", M4_SIZE(1,2), M4_RANGE(0, 1), "[0.042, 0.14]", M4_DIGIT(3), M4_DYNAMIC(0)) 709 float h1_band[2]; 710 // M4_ARRAY_DESC("horizontal first iir1 filter", "s16", M4_SIZE(1,6), M4_RANGE(-2047,2047), "[512, 557, -276, 460, 0, -460]", M4_DIGIT(0), M4_DYNAMIC(0)) 711 short h1_iir1_coe[6]; 712 // M4_ARRAY_DESC("horizontal first iir2 filter", "s16", M4_SIZE(1,6), M4_RANGE(-2047,2047), "[100, 870, -399, 191, 0, -191]", M4_DIGIT(0), M4_DYNAMIC(0)) 713 short h1_iir2_coe[6]; 714 // M4_ARRAY_DESC("h2 band", "f32", M4_SIZE(1,2), M4_RANGE(0, 1), "[0.055, 0.125]", M4_DIGIT(3), M4_DYNAMIC(0)) 715 float h2_band[2]; 716 // M4_ARRAY_DESC("horizontal second iir1 filter", "s16", M4_SIZE(1,6), M4_RANGE(-2047,2047), "[415, 648, -344, 403, 0, -403]", M4_DIGIT(0), M4_DYNAMIC(0)) 717 short h2_iir1_coe[6]; 718 // M4_ARRAY_DESC("horizontal second iir2 filter", "s16", M4_SIZE(1,6), M4_RANGE(-2047,2047), "[96, 854, -409, 156, 0, -156]", M4_DIGIT(0), M4_DYNAMIC(0)) 719 short h2_iir2_coe[6]; 720 // M4_NUMBER_DESC("ldg enable", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0)) 721 unsigned char ldg_en; 722 // M4_NUMBER_DESC("vertical minluma thresh", "u8", M4_RANGE(0, 255), "64", M4_DIGIT(0)) 723 unsigned char ve_ldg_lumth_l; 724 // M4_NUMBER_DESC("vertical gain for minluma", "u8", M4_RANGE(0, 255), "28", M4_DIGIT(0)) 725 unsigned char ve_ldg_gain_l; 726 // M4_NUMBER_DESC("vertical slope low", "u16", M4_RANGE(0, 8191), "1286", M4_DIGIT(0)) 727 unsigned short ve_ldg_gslp_l; 728 // M4_NUMBER_DESC("vertical maxluma thresh", "u8", M4_RANGE(0, 255), "185", M4_DIGIT(0)) 729 unsigned char ve_ldg_lumth_h; 730 // M4_NUMBER_DESC("vertical gain for maxluma", "u8", M4_RANGE(0, 255), "8", M4_DIGIT(0)) 731 unsigned char ve_ldg_gain_h; 732 // M4_NUMBER_DESC("vertical slope high", "u16", M4_RANGE(0, 8191), "1400", M4_DIGIT(0)) 733 unsigned short ve_ldg_gslp_h; 734 // M4_NUMBER_DESC("horizontal minluma thresh", "u8", M4_RANGE(0, 255), "64", M4_DIGIT(0)) 735 unsigned char ho_ldg_lumth_l; 736 // M4_NUMBER_DESC("horizontal gain for minluma", "u8", M4_RANGE(0, 255), "28", M4_DIGIT(0)) 737 unsigned char ho_ldg_gain_l; 738 // M4_NUMBER_DESC("horizontal slope low", "u16", M4_RANGE(0, 8191), "1286", M4_DIGIT(0)) 739 unsigned short ho_ldg_gslp_l; 740 // M4_NUMBER_DESC("horizontal maxluma thresh", "u8", M4_RANGE(0, 255), "185", M4_DIGIT(0)) 741 unsigned char ho_ldg_lumth_h; 742 // M4_NUMBER_DESC("horizontal gain for maxluma", "u8", M4_RANGE(0, 255), "8", M4_DIGIT(0)) 743 unsigned char ho_ldg_gain_h; 744 // M4_NUMBER_DESC("horizontal slope high", "u16", M4_RANGE(0, 8191), "1400", M4_DIGIT(0)) 745 unsigned short ho_ldg_gslp_h; 746 // M4_NUMBER_DESC("vertical fv thresh", "u16", M4_RANGE(0, 4095), "4", M4_DIGIT(0)) 747 unsigned short v_fv_thresh; 748 // M4_NUMBER_DESC("horizontal fv thresh", "u16", M4_RANGE(0, 4095), "4", M4_DIGIT(0)) 749 unsigned short h_fv_thresh; 750 // M4_NUMBER_DESC("highlight thresh", "u16", M4_RANGE(0, 1023), "912", M4_DIGIT(0)) 751 unsigned short highlit_thresh; 752 // M4_NUMBER_DESC("vertical fv ratio", "f32", M4_RANGE(0, 1), "0.5", M4_DIGIT(3)) 753 float v_fv_ratio; 754 } CalibDbV2_AfV31_MeasCfg_t; 755 756 typedef struct CalibDbV2_AFV31_Tuning_Para_s { 757 // M4_ENUM_DESC("mode", "CalibDbV2_AF_MODE_t", "CalibDbV2_AFMODE_CONT_PICTURE") 758 CalibDbV2_AF_MODE_t af_mode; 759 // M4_NUMBER_DESC("win_h_offs", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 760 unsigned short win_h_offs; 761 // M4_NUMBER_DESC("win_v_offs", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 762 unsigned short win_v_offs; 763 // M4_NUMBER_DESC("win_h_size", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 764 unsigned short win_h_size; 765 // M4_NUMBER_DESC("win_v_size", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 766 unsigned short win_v_size; 767 // M4_NUMBER_DESC("win_h_offs in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 768 unsigned short video_win_h_offs; 769 // M4_NUMBER_DESC("win_v_offs in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 770 unsigned short video_win_v_offs; 771 // M4_NUMBER_DESC("win_h_size in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 772 unsigned short video_win_h_size; 773 // M4_NUMBER_DESC("win_v_size in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 774 unsigned short video_win_v_size; 775 // M4_STRUCT_DESC("fixed mode", "normal_ui_style") 776 CalibDbV2_Af_DefCode_t fixed_mode; 777 // M4_STRUCT_DESC("macro mode", "normal_ui_style") 778 CalibDbV2_Af_DefCode_t macro_mode; 779 // M4_STRUCT_DESC("infinity mode", "normal_ui_style") 780 CalibDbV2_Af_DefCode_t infinity_mode; 781 // M4_STRUCT_DESC("contrast af", "normal_ui_style") 782 CalibDbV2_Af_Contrast_t contrast_af; 783 // M4_STRUCT_DESC("video contrast af", "normal_ui_style") 784 CalibDbV2_Af_Contrast_t video_contrast_af; 785 // M4_STRUCT_DESC("laser af", "normal_ui_style") 786 CalibDbV2_Af_Laser_t laser_af; 787 // M4_STRUCT_DESC("vcmcfg", "normal_ui_style") 788 CalibDbV2_Af_VcmCfg_t vcmcfg; 789 // M4_STRUCT_DESC("zoomfocus_tbl", "normal_ui_style") 790 CalibDbV2_Af_ZoomFocusTbl_t zoomfocus_tbl; 791 // M4_STRUCT_LIST_DESC("zoom meas", M4_SIZE_DYNAMIC, "double_index_list") 792 CalibDbV2_AfV30_ZoomMeas_t *zoom_meas; 793 int zoom_meas_len; 794 // M4_STRUCT_LIST_DESC("meas config table", M4_SIZE_DYNAMIC, "normal_ui_style") 795 CalibDbV2_AfV31_MeasCfg_t *meascfg_tbl; 796 int meascfg_tbl_len; 797 } CalibDbV2_AFV31_Tuning_Para_t; 798 799 typedef struct { 800 // M4_STRUCT_DESC("TuningPara", "normal_ui_style") 801 CalibDbV2_AFV31_Tuning_Para_t TuningPara; 802 } CalibDbV2_AFV31_t; 803 804 typedef struct CalibDbV2_AfV32_MeasCfg_s { 805 // M4_NUMBER_DESC("table index", "u32", M4_RANGE(0, 1000000), "0", M4_DIGIT(0)) 806 unsigned int tbl_idx; 807 // M4_BOOL_DESC("from awb", "0") 808 bool from_awb; 809 // M4_BOOL_DESC("from ynr", "0") 810 bool from_ynr; 811 // M4_BOOL_DESC("from bnr", "0") 812 bool from_bnr; 813 // M4_BOOL_DESC("bls en", "0") 814 bool bls_en; 815 // M4_BOOL_DESC("avg ds en", "0") 816 bool avg_ds_en; 817 // M4_BOOL_DESC("v1 max mode", "0") 818 bool v1_maxmode; 819 // M4_BOOL_DESC("v2 max mode", "0") 820 bool v2_maxmode; 821 // M4_BOOL_DESC("h1 max mode", "0") 822 bool h1_maxmode; 823 // M4_BOOL_DESC("h2 max mode", "0") 824 bool h2_maxmode; 825 // M4_BOOL_DESC("hiir left border mode", "0") 826 bool hiir_left_border_mode; 827 // M4_NUMBER_DESC("bnr in shift", "u8", M4_RANGE(0, 15), "0", M4_DIGIT(0)) 828 unsigned char bnr_in_shift; 829 // M4_NUMBER_DESC("bls offset", "s16", M4_RANGE(-256, 255), "0", M4_DIGIT(0)) 830 short bls_offset; 831 // M4_NUMBER_DESC("avg ds mode", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0)) 832 unsigned char avg_ds_mode; 833 // M4_NUMBER_DESC("afmThres", "u16", M4_RANGE(0, 255), "4", M4_DIGIT(0)) 834 unsigned short afmThres; 835 // M4_ARRAY_MARK_DESC("Gamma Curve", "u16", M4_SIZE(1,17), M4_RANGE(0, 1023), "[0,45,108,179,245,344,409,459,500,567,622,676,759,833,896,962,1023]", M4_DIGIT(0), M4_DYNAMIC(0), "curve_table") 836 unsigned short gammaY[17]; 837 // M4_ARRAY_DESC("gaus coe", "s16", M4_SIZE(3,3), M4_RANGE(-128, 127), "[0,64,0,0,64,0,0,0,0]", M4_DIGIT(0), M4_DYNAMIC(0)) 838 short gaus_coe[9]; 839 // M4_ENUM_DESC("downscale mode", "CalibDbV2_AF_DNSCL_MODE_t", "CalibDbV2_AF_DNSCL_1") 840 CalibDbV2_AF_DNSCL_MODE_t dnscl_mode; 841 // M4_NUMBER_DESC("v1fv reliable", "f32", M4_RANGE(0, 1), "0.5", M4_DIGIT(3)) 842 float v1fv_reliable; 843 // M4_NUMBER_DESC("v2fv reliable", "f32", M4_RANGE(0, 1), "0.5", M4_DIGIT(3)) 844 float v2fv_reliable; 845 // M4_NUMBER_DESC("v1 fir sel", "u8", M4_RANGE(0, 1), "1", M4_DIGIT(0)) 846 unsigned char v1_fir_sel; 847 // M4_ARRAY_DESC("v1 band", "f32", M4_SIZE(1,2), M4_RANGE(0, 1), "[0.042,0.140]", M4_DIGIT(3), M4_DYNAMIC(0)) 848 float v1_band[2]; 849 // M4_ARRAY_DESC("vertical first iir filter", "s16", M4_SIZE(1,3), M4_RANGE(-255,255), "[-265, 686, 512]", M4_DIGIT(0), M4_DYNAMIC(0)) 850 short v1_iir_coe[3]; 851 // M4_ARRAY_DESC("vertical first fir filter", "s16", M4_SIZE(1,3), M4_RANGE(-2047,2047), "[-124, 0, 124]", M4_DIGIT(0), M4_DYNAMIC(0)) 852 short v1_fir_coe[3]; 853 // M4_ARRAY_DESC("v2 band", "f32", M4_SIZE(1,2), M4_RANGE(0, 1), "[0.055, 0.125]", M4_DIGIT(3), M4_DYNAMIC(0)) 854 float v2_band[2]; 855 // M4_ARRAY_DESC("vertical second iir filter", "s16", M4_SIZE(1,3), M4_RANGE(-2047,2047), "[-325, 724, 512]", M4_DIGIT(0), M4_DYNAMIC(0)) 856 short v2_iir_coe[3]; 857 // M4_ARRAY_DESC("vertical second fir filter", "s16", M4_SIZE(1,3), M4_RANGE(-2047,2047), "[-94, 0, 94]", M4_DIGIT(0), M4_DYNAMIC(0)) 858 short v2_fir_coe[3]; 859 // M4_ARRAY_DESC("h1 band", "f32", M4_SIZE(1,2), M4_RANGE(0, 1), "[0.042, 0.14]", M4_DIGIT(3), M4_DYNAMIC(0)) 860 float h1_band[2]; 861 // M4_ARRAY_DESC("horizontal first iir1 filter", "s16", M4_SIZE(1,6), M4_RANGE(-2047,2047), "[512, 557, -276, 460, 0, -460]", M4_DIGIT(0), M4_DYNAMIC(0)) 862 short h1_iir1_coe[6]; 863 // M4_ARRAY_DESC("horizontal first iir2 filter", "s16", M4_SIZE(1,6), M4_RANGE(-2047,2047), "[512, 870, -399, 37, 0, -37]", M4_DIGIT(0), M4_DYNAMIC(0)) 864 short h1_iir2_coe[6]; 865 // M4_ARRAY_DESC("h2 band", "f32", M4_SIZE(1,2), M4_RANGE(0, 1), "[0.055, 0.125]", M4_DIGIT(3), M4_DYNAMIC(0)) 866 float h2_band[2]; 867 // M4_ARRAY_DESC("horizontal second iir1 filter", "s16", M4_SIZE(1,6), M4_RANGE(-2047,2047), "[512, 648, -344, 327, 0, -327]", M4_DIGIT(0), M4_DYNAMIC(0)) 868 short h2_iir1_coe[6]; 869 // M4_ARRAY_DESC("horizontal second iir2 filter", "s16", M4_SIZE(1,6), M4_RANGE(-2047,2047), "[512, 854, -409, 29, 0, -29]", M4_DIGIT(0), M4_DYNAMIC(0)) 870 short h2_iir2_coe[6]; 871 // M4_NUMBER_DESC("ldg enable", "u8", M4_RANGE(0, 1), "0", M4_DIGIT(0)) 872 unsigned char ldg_en; 873 // M4_NUMBER_DESC("vertical minluma thresh", "u8", M4_RANGE(0, 255), "64", M4_DIGIT(0)) 874 unsigned char ve_ldg_lumth_l; 875 // M4_NUMBER_DESC("vertical gain for minluma", "u8", M4_RANGE(0, 255), "28", M4_DIGIT(0)) 876 unsigned char ve_ldg_gain_l; 877 // M4_NUMBER_DESC("vertical slope low", "u16", M4_RANGE(0, 8191), "1286", M4_DIGIT(0)) 878 unsigned short ve_ldg_gslp_l; 879 // M4_NUMBER_DESC("vertical maxluma thresh", "u8", M4_RANGE(0, 255), "185", M4_DIGIT(0)) 880 unsigned char ve_ldg_lumth_h; 881 // M4_NUMBER_DESC("vertical gain for maxluma", "u8", M4_RANGE(0, 255), "8", M4_DIGIT(0)) 882 unsigned char ve_ldg_gain_h; 883 // M4_NUMBER_DESC("vertical slope high", "u16", M4_RANGE(0, 8191), "1400", M4_DIGIT(0)) 884 unsigned short ve_ldg_gslp_h; 885 // M4_NUMBER_DESC("horizontal minluma thresh", "u8", M4_RANGE(0, 255), "64", M4_DIGIT(0)) 886 unsigned char ho_ldg_lumth_l; 887 // M4_NUMBER_DESC("horizontal gain for minluma", "u8", M4_RANGE(0, 255), "28", M4_DIGIT(0)) 888 unsigned char ho_ldg_gain_l; 889 // M4_NUMBER_DESC("horizontal slope low", "u16", M4_RANGE(0, 8191), "1286", M4_DIGIT(0)) 890 unsigned short ho_ldg_gslp_l; 891 // M4_NUMBER_DESC("horizontal maxluma thresh", "u8", M4_RANGE(0, 255), "185", M4_DIGIT(0)) 892 unsigned char ho_ldg_lumth_h; 893 // M4_NUMBER_DESC("horizontal gain for maxluma", "u8", M4_RANGE(0, 255), "8", M4_DIGIT(0)) 894 unsigned char ho_ldg_gain_h; 895 // M4_NUMBER_DESC("horizontal slope high", "u16", M4_RANGE(0, 8191), "1400", M4_DIGIT(0)) 896 unsigned short ho_ldg_gslp_h; 897 // M4_NUMBER_DESC("horizontal dilate num", "u8", M4_RANGE(0, 7), "0", M4_DIGIT(0)) 898 unsigned char hldg_dilate_num; 899 // M4_NUMBER_DESC("vertical fv thresh", "u16", M4_RANGE(0, 4095), "4", M4_DIGIT(0)) 900 unsigned short v_fv_thresh; 901 // M4_NUMBER_DESC("vertical fv limit", "u16", M4_RANGE(0, 1023), "1023", M4_DIGIT(0)) 902 unsigned short v_fv_limit; 903 // M4_NUMBER_DESC("vertical fv slope", "u16", M4_RANGE(0, 511), "256", M4_DIGIT(0)) 904 unsigned short v_fv_slope; 905 // M4_NUMBER_DESC("horizontal fv thresh", "u16", M4_RANGE(0, 4095), "4", M4_DIGIT(0)) 906 unsigned short h_fv_thresh; 907 // M4_NUMBER_DESC("horizontal fv limit", "u16", M4_RANGE(0, 1023), "1023", M4_DIGIT(0)) 908 unsigned short h_fv_limit; 909 // M4_NUMBER_DESC("horizontal fv slope", "u16", M4_RANGE(0, 511), "256", M4_DIGIT(0)) 910 unsigned short h_fv_slope; 911 // M4_NUMBER_DESC("highlight thresh", "u16", M4_RANGE(0, 1023), "912", M4_DIGIT(0)) 912 unsigned short highlit_thresh; 913 // M4_NUMBER_DESC("vertical fv ratio", "f32", M4_RANGE(0, 1), "0.5", M4_DIGIT(3)) 914 float v_fv_ratio; 915 } CalibDbV2_AfV32_MeasCfg_t; 916 917 typedef struct CalibDbV2_AFV32_Tuning_Para_s { 918 // M4_ENUM_DESC("mode", "CalibDbV2_AF_MODE_t", "CalibDbV2_AFMODE_CONT_PICTURE") 919 CalibDbV2_AF_MODE_t af_mode; 920 // M4_NUMBER_DESC("win_h_offs", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 921 unsigned short win_h_offs; 922 // M4_NUMBER_DESC("win_v_offs", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 923 unsigned short win_v_offs; 924 // M4_NUMBER_DESC("win_h_size", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 925 unsigned short win_h_size; 926 // M4_NUMBER_DESC("win_v_size", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 927 unsigned short win_v_size; 928 // M4_NUMBER_DESC("win_h_offs in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 929 unsigned short video_win_h_offs; 930 // M4_NUMBER_DESC("win_v_offs in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 931 unsigned short video_win_v_offs; 932 // M4_NUMBER_DESC("win_h_size in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 933 unsigned short video_win_h_size; 934 // M4_NUMBER_DESC("win_v_size in video", "u16", M4_RANGE(0,2000), "0", M4_DIGIT(0),M4_HIDE(0)) 935 unsigned short video_win_v_size; 936 // M4_STRUCT_DESC("fixed mode", "normal_ui_style") 937 CalibDbV2_Af_DefCode_t fixed_mode; 938 // M4_STRUCT_DESC("macro mode", "normal_ui_style") 939 CalibDbV2_Af_DefCode_t macro_mode; 940 // M4_STRUCT_DESC("infinity mode", "normal_ui_style") 941 CalibDbV2_Af_DefCode_t infinity_mode; 942 // M4_STRUCT_DESC("contrast af", "normal_ui_style") 943 CalibDbV2_Af_Contrast_t contrast_af; 944 // M4_STRUCT_DESC("video contrast af", "normal_ui_style") 945 CalibDbV2_Af_Contrast_t video_contrast_af; 946 // M4_STRUCT_DESC("laser af", "normal_ui_style") 947 CalibDbV2_Af_Laser_t laser_af; 948 // M4_STRUCT_DESC("vcmcfg", "normal_ui_style") 949 CalibDbV2_Af_VcmCfg_t vcmcfg; 950 // M4_STRUCT_DESC("zoomfocus_tbl", "normal_ui_style") 951 CalibDbV2_Af_ZoomFocusTbl_t zoomfocus_tbl; 952 // M4_STRUCT_LIST_DESC("zoom meas", M4_SIZE_DYNAMIC, "double_index_list") 953 CalibDbV2_AfV30_ZoomMeas_t *zoom_meas; 954 int zoom_meas_len; 955 // M4_STRUCT_LIST_DESC("meas config table", M4_SIZE_DYNAMIC, "normal_ui_style") 956 CalibDbV2_AfV32_MeasCfg_t *meascfg_tbl; 957 int meascfg_tbl_len; 958 } CalibDbV2_AFV32_Tuning_Para_t; 959 960 typedef struct { 961 // M4_STRUCT_DESC("TuningPara", "normal_ui_style") 962 CalibDbV2_AFV32_Tuning_Para_t TuningPara; 963 } CalibDbV2_AFV32_t; 964 965 RKAIQ_END_DECLARE 966 967 #endif 968