1 #ifndef _RK_AIQ_UAPI_AE_INT_TYPES_V2_H_ 2 #define _RK_AIQ_UAPI_AE_INT_TYPES_V2_H_ 3 #include "rk_aiq_algo_des.h" 4 #include "rk_aiq_types_ae_algo_int.h" 5 6 /*************************** ATTENTION: ************************************/ 7 /* 8 * There are two sets of api-strcut defined, isp2.0/isp2.1 respectively. 9 * AE-API Needs to be compatible with isp2.0 & isp2.1 struct 10 */ 11 /*****************************************************************************/ 12 13 /*****************************************************************************/ 14 /** 15 * @brief ISP2.1 AEC API ExpSwAttr_t Params 16 */ 17 /*****************************************************************************/ 18 typedef CalibDb_AeSpeedV2_t Uapi_AeSpeedV2_t; 19 20 typedef Aec_AeRange_t Uapi_AeRangeV2_t; 21 22 typedef Aec_LinAeRange_t Uapi_LinAeRangeV2_t; 23 24 typedef Aec_HdrAeRange_t Uapi_HdrAeRangeV2_t; 25 26 typedef CalibDb_AeFrmRateAttrV2_t Uapi_AeFpsAttrV2_t; 27 28 typedef CalibDb_AntiFlickerAttrV2_t Uapi_AntiFlickerV2_t; 29 30 typedef CalibDb_DelayTypeV2_t Uapi_DelayTypeV2_t; 31 32 typedef struct Uapi_AeAttrV2_s { 33 34 Uapi_AeSpeedV2_t stAeSpeed; 35 //DelayFrmNum 36 Uapi_DelayTypeV2_t DelayType; 37 uint8_t BlackDelay; 38 uint8_t WhiteDelay; 39 //Auto/Fixed fps 40 Uapi_AeFpsAttrV2_t stFrmRate; 41 Uapi_AntiFlickerV2_t stAntiFlicker; 42 //auto range 43 Aec_LinAeRange_t LinAeRange;//result LinAerange 44 Aec_HdrAeRange_t HdrAeRange;//result HdrAerange 45 } Uapi_AeAttrV2_t; 46 47 //manual exposure 48 typedef struct Uapi_LinMeAttrV2_s { 49 // M4_BOOL_DESC("ManualTimeEn", "1") 50 bool ManualTimeEn; 51 52 // M4_BOOL_DESC("ManualGainEn", "1") 53 bool ManualGainEn; 54 55 // M4_BOOL_DESC("ManualIspDgainEn", "1") 56 bool ManualIspDgainEn; 57 58 // M4_NUMBER_DESC("TimeValue", "f32", M4_RANGE(0,1), "0.003", M4_DIGIT(6),M4_HIDE(0)) 59 float TimeValue; //unit: s = 10^6 us 60 61 // M4_NUMBER_DESC("GainValue", "f32", M4_RANGE(1,4096), "1", M4_DIGIT(3),M4_HIDE(0)) 62 float GainValue; 63 64 // M4_NUMBER_DESC("IspDGainValue", "f32", M4_RANGE(1,4096), "1", M4_DIGIT(3),M4_HIDE(0)) 65 float IspDGainValue; 66 } Uapi_LinMeAttrV2_t; 67 68 typedef struct Uapi_HdrMeAttrV2_s { 69 // M4_BOOL_DESC("ManualTimeEn", "1") 70 bool ManualTimeEn; 71 72 // M4_BOOL_DESC("ManualGainEn", "1") 73 bool ManualGainEn; 74 75 // M4_BOOL_DESC("ManualIspDgainEn", "1") 76 bool ManualIspDgainEn; 77 78 // M4_ARRAY_DESC("TimeValue", "f32", M4_SIZE(1,3), M4_RANGE(0,1), "0.003", M4_DIGIT(6), M4_DYNAMIC(0)) 79 float TimeValue[MAX_HDR_FRAMENUM]; 80 81 // M4_ARRAY_DESC("GainValue", "f32", M4_SIZE(1,3), M4_RANGE(1,4096), "1.0", M4_DIGIT(3), M4_DYNAMIC(0)) 82 float GainValue[MAX_HDR_FRAMENUM]; 83 84 // M4_ARRAY_DESC("IspDGainValue", "f32", M4_SIZE(1,3), M4_RANGE(1,4096), "1.0", M4_DIGIT(3), M4_DYNAMIC(0)) 85 float IspDGainValue[MAX_HDR_FRAMENUM]; 86 } Uapi_HdrMeAttrV2_t; 87 88 typedef struct Uapi_MeAttrV2_s { 89 // M4_STRUCT_DESC("LinearAE", "normal_ui_style") 90 Uapi_LinMeAttrV2_t LinearAE; 91 92 // M4_STRUCT_DESC("HdrAE", "normal_ui_style") 93 Uapi_HdrMeAttrV2_t HdrAE; 94 } Uapi_MeAttrV2_t; 95 96 typedef Aec_uapi_advanced_attr_t Uapi_ExpSwAttr_AdvancedV2_t; 97 98 typedef struct Uapi_ExpSwAttrV2_s { 99 rk_aiq_uapi_sync_t sync; 100 uint8_t Enable; 101 CalibDb_CamRawStatsModeV2_t RawStatsMode; 102 CalibDb_CamHistStatsModeV2_t HistStatsMode; 103 CalibDb_CamYRangeModeV2_t YRangeMode; 104 uint8_t AecRunInterval; 105 106 // M4_ENUM_DESC("OPMode", "RKAiqOPMode_t","RK_AIQ_OP_MODE_AUTO") 107 RKAiqOPMode_t AecOpType; 108 Cam15x15UCharMatrix_t GridWeights; 109 Uapi_AeAttrV2_t stAuto; 110 111 // M4_STRUCT_DESC("ManualCtrl", "normal_ui_style") 112 Uapi_MeAttrV2_t stManual; 113 114 Uapi_ExpSwAttr_AdvancedV2_t stAdvanced; 115 } Uapi_ExpSwAttrV2_t; 116 117 /*****************************************************************************/ 118 /** 119 * @brief ISP2.1 AEC API LinAeRouteAttr/HdrAeRouteAttr Params 120 */ 121 /*****************************************************************************/ 122 typedef struct Uapi_LinAeRouteAttr_s { 123 rk_aiq_uapi_sync_t sync; 124 CalibDb_LinAeRoute_AttrV2_t Params; 125 } Uapi_LinAeRouteAttr_t; 126 127 typedef struct Uapi_HdrAeRouteAttr_s { 128 rk_aiq_uapi_sync_t sync; 129 CalibDb_HdrAeRoute_AttrV2_t Params; 130 } Uapi_HdrAeRouteAttr_t; 131 132 /*****************************************************************************/ 133 /** 134 * @brief ISP2.1 AEC API IrisAttr Params 135 */ 136 /*****************************************************************************/ 137 typedef struct Uapi_IrisAttrV2_s { 138 rk_aiq_uapi_sync_t sync; 139 CalibDb_AecIrisCtrlV2_t Params; 140 } Uapi_IrisAttrV2_t; 141 142 /*****************************************************************************/ 143 /** 144 * @brief ISP2.1 AEC API AecSyncTest Params 145 */ 146 /*****************************************************************************/ 147 typedef struct Uapi_AecSyncTest_s { 148 rk_aiq_uapi_sync_t sync; 149 CalibDb_AeSyncTestV2_t Params; 150 } Uapi_AecSyncTest_t; 151 152 /*****************************************************************************/ 153 /** 154 * @brief ISP2.1 AEC API LinExpAttr/HdrExpAttr Params 155 */ 156 /*****************************************************************************/ 157 typedef struct Uapi_LinExpAttrV2_s { 158 rk_aiq_uapi_sync_t sync; 159 CalibDb_LinearAE_AttrV2_t Params; 160 } Uapi_LinExpAttrV2_t; 161 162 typedef struct Uapi_HdrExpAttrV2_s { 163 rk_aiq_uapi_sync_t sync; 164 CalibDb_HdrAE_AttrV2_t Params; 165 } Uapi_HdrExpAttrV2_t; 166 167 /*****************************************************************************/ 168 /** 169 * @brief ISP2.0/2.1 AEC API ExpHwAttr Params 170 */ 171 /*****************************************************************************/ 172 typedef struct Uapi_ExpWin_s { 173 rk_aiq_uapi_sync_t sync; 174 window_t Params; 175 } Uapi_ExpWin_t; 176 177 /*****************************************************************************/ 178 /** 179 * @brief ISP2.0/2.1 AEC API ExpQueryInfo Params 180 */ 181 /*****************************************************************************/ 182 183 typedef struct Uapi_LinAeInfo_s { 184 // M4_NUMBER_DESC("LumaDeviation", "f32", M4_RANGE(-256,256), "0.0", M4_DIGIT(3),M4_HIDE(1)) 185 float LumaDeviation; 186 187 // M4_NUMBER_DESC("MeanLuma", "f32", M4_RANGE(0,256), "0.0", M4_DIGIT(2)) 188 float MeanLuma; 189 190 // M4_STRUCT_DESC("LinAeRange", "normal_ui_style") 191 Aec_LinAeRange_t LinAeRange; 192 193 // M4_STRUCT_DESC("LinearExp", "normal_ui_style") 194 RkAiqExpRealParam_t LinearExp; 195 196 } Uapi_LinAeInfo_t; 197 198 typedef struct Uapi_HdrAeInfo_s { 199 // M4_ARRAY_DESC("HdrLumaDeviation", "f32", M4_SIZE(1,3), M4_RANGE(-256,256), "0.0", M4_DIGIT(3), M4_DYNAMIC(0), M4_HIDE(1)) 200 float HdrLumaDeviation[3]; 201 202 // M4_NUMBER_DESC("Frm0Luma", "f32", M4_RANGE(0,256), "0.0", M4_DIGIT(2)) 203 float Frm0Luma; 204 205 // M4_NUMBER_DESC("Frm1Luma", "f32", M4_RANGE(0,256), "0.0", M4_DIGIT(2)) 206 float Frm1Luma; 207 208 // M4_NUMBER_DESC("Frm2Luma", "f32", M4_RANGE(0,256), "0.0", M4_DIGIT(2)) 209 float Frm2Luma; 210 211 // M4_STRUCT_DESC("HdrAeRange", "normal_ui_style") 212 Aec_HdrAeRange_t HdrAeRange; 213 214 // M4_STRUCT_DESC("HdrExp", "normal_ui_style") 215 RkAiqExpRealParam_t HdrExp[3]; 216 217 } Uapi_HdrAeInfo_t; 218 219 220 typedef struct Uapi_ExpQueryInfo_s { 221 // M4_BOOL_DESC("IsConverged", "0",M4_HIDE(1)) 222 bool IsConverged; 223 // M4_BOOL_DESC("EnvChange", "0",M4_HIDE(1)) 224 bool EnvChange; 225 // M4_BOOL_DESC("IsExpMax", "0",M4_HIDE(1)) 226 bool IsExpMax; 227 228 // M4_STRUCT_DESC("LinAeInfo", "normal_ui_style") 229 Uapi_LinAeInfo_t LinAeInfo; 230 231 // M4_STRUCT_DESC("HdrAeInfo", "normal_ui_style") 232 Uapi_HdrAeInfo_t HdrAeInfo; 233 234 // M4_NUMBER_DESC("LinePeriodsPerField", "f32", M4_RANGE(0,65535), "0", M4_DIGIT(2),M4_HIDE(1)) 235 float LinePeriodsPerField; 236 237 // M4_NUMBER_DESC("PixelPeriodsPerLine", "f32", M4_RANGE(0,65535), "0", M4_DIGIT(2),M4_HIDE(1)) 238 float PixelPeriodsPerLine; 239 240 // M4_NUMBER_DESC("PixelClockFreqMHZ", "f32", M4_RANGE(0,4096), "0", M4_DIGIT(2),M4_HIDE(1)) 241 float PixelClockFreqMHZ; 242 243 // M4_NUMBER_DESC("GlobalEnvLv", "f32", M4_RANGE(0,65535), "0", M4_DIGIT(2),M4_HIDE(1)) 244 float GlobalEnvLv; 245 246 // M4_NUMBER_DESC("OverExpROIPdf", "f32", M4_RANGE(0,1), "0", M4_DIGIT(2),M4_HIDE(1)) 247 float OverExpROIPdf; 248 249 // M4_NUMBER_DESC("HighLightROIPdf", "f32", M4_RANGE(0,1), "0", M4_DIGIT(2),M4_HIDE(1)) 250 float HighLightROIPdf; 251 252 // M4_NUMBER_DESC("LowLightROIPdf", "f32", M4_RANGE(0,1), "0", M4_DIGIT(2),M4_HIDE(1)) 253 float LowLightROIPdf; 254 255 // M4_NUMBER_DESC("Fps", "f32", M4_RANGE(0,4096), "0", M4_DIGIT(2)) 256 float Fps; 257 258 } Uapi_ExpQueryInfo_t; 259 260 261 #endif 262