1 /* 2 * sensorinfo_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_SENSOR_INFO_HEADER_H__ 21 #define __CALIBDBV2_SENSOR_INFO_HEADER_H__ 22 23 // #define M4_STRUCT_DESC(ALIAS, SIZE, UI_MODULE) 24 // #define M4_NUMBER_DESC(ALIAS, TYPE, SIZE, RANGE, DEFAULT) 25 // #define M4_STRING_DESC(ALIAS, SIZE, RANGE, DEFAULT) 26 // #define M4_ENUM_DESC(ALIAS, ENUM, DEFAULT) 27 28 #include "rk_aiq_comm.h" 29 30 RKAIQ_BEGIN_DECLARE 31 32 /*****************************************************************************/ 33 /** 34 * @brief ISP2.0 SensorInfo enum Params 35 */ 36 /*****************************************************************************/ 37 typedef enum _CalibDb_ExpGainModeV2_e { 38 EXPGAIN_MODE_LINEAR = 0, 39 EXPGAIN_MODE_NONLINEAR_DB = 1, 40 EXPGAIN_MODE_MAX = 2 41 } CalibDb_ExpGainModeV2_t; 42 43 typedef enum _CalibDb_HdrFrmNumV2_e { 44 HDR_TWO_FRAME = 0, 45 HDR_THREE_FRAME = 1, 46 } CalibDb_HdrFrmNumV2_t; 47 48 /*****************************************************************************/ 49 /** 50 * @brief ISP2.0 SensorInfo config Params 51 */ 52 /*****************************************************************************/ 53 typedef struct CalibDb_AecGainRangeV2_s { 54 // M4_ENUM_DESC("GainMode", "CalibDb_ExpGainModeV2_t","EXPGAIN_MODE_LINEAR") 55 CalibDb_ExpGainModeV2_t GainMode; 56 57 // M4_ARRAY_DESC("GainRange", "f32", M4_SIZE(1,7), M4_RANGE(-65535,65535), "0", M4_DIGIT(4), M4_DYNAMIC(2)) 58 float* GainRange;//contains 7 params per line 59 int GainRange_len; 60 } CalibDb_AecGainRangeV2_t; 61 62 typedef struct CalibDb_CISNormalTimeSetV2_s { 63 // M4_NUMBER_DESC("TimeRegMin", "u16", M4_RANGE(1,100), "1", M4_DIGIT(0),M4_HIDE(0)) 64 uint16_t CISTimeRegMin; 65 66 // M4_STRUCT_DESC("TimeRegMaxFac", "normal_ui_style") 67 Cam2x1FloatMatrix_t CISLinTimeRegMaxFac; 68 69 // M4_STRUCT_DESC("TimeRegOdevity", "normal_ui_style") 70 Cam2x1FloatMatrix_t CISTimeRegOdevity; 71 } CalibDb_CISNormalTimeSetV2_t; 72 73 typedef struct CalibDb_CISHdrTimeSetV2_s { 74 // M4_ENUM_DESC("name", "CalibDb_HdrFrmNumV2_t","HDR_TWO_FRAME") 75 CalibDb_HdrFrmNumV2_t name; 76 77 // M4_BOOL_DESC("CISTimeRegUnEqualEn", "0") 78 bool CISTimeRegUnEqualEn; 79 80 // M4_NUMBER_DESC("CISTimeRegMin", "u16", M4_RANGE(1,100), "1", M4_DIGIT(0),M4_HIDE(0)) 81 uint16_t CISTimeRegMin; 82 83 // M4_STRUCT_DESC("CISHdrTimeRegSumFac", "normal_ui_style") 84 Cam2x1FloatMatrix_t CISHdrTimeRegSumFac; 85 86 // M4_STRUCT_DESC("CISTimeRegMax", "normal_ui_style") 87 Cam1x3ShortMatrix_t CISTimeRegMax; //specially for Hdr that has limit on sframe/mframe, requiring max time line.value 0: no limit 88 89 // M4_STRUCT_DESC("CISTimeRegOdevity", "normal_ui_style") 90 Cam2x1FloatMatrix_t CISTimeRegOdevity; 91 } CalibDb_CISHdrTimeSetV2_t; 92 93 typedef struct CalibDb_CISTimeSet_CombV2_s { 94 // M4_STRUCT_DESC("Linear", "normal_ui_style") 95 CalibDb_CISNormalTimeSetV2_t Linear; 96 97 // M4_STRUCT_LIST_DESC("Hdr", M4_SIZE(1,2),"normal_ui_style") 98 CalibDb_CISHdrTimeSetV2_t Hdr[2]; 99 } CalibDb_CISTimeSet_CombV2_t; 100 101 typedef struct CalibDb_AeRangeV2_s { 102 // M4_NUMBER_DESC("Min", "f32", M4_RANGE(0,65535), "0", M4_DIGIT(3),M4_HIDE(0)) 103 float Min; 104 105 // M4_NUMBER_DESC("Max", "f32", M4_RANGE(0,65535), "0", M4_DIGIT(3),M4_HIDE(0)) 106 float Max; 107 } CalibDb_AeRangeV2_t; 108 109 typedef struct CalibDb_CISGainSetV2_s { 110 // M4_STRUCT_DESC("CISAgainRange", "normal_ui_style") 111 CalibDb_AeRangeV2_t CISAgainRange; //sensor Again or LCG range 112 113 // M4_STRUCT_DESC("CISExtraAgainRange", "normal_ui_style") 114 CalibDb_AeRangeV2_t CISExtraAgainRange; //add for HDR-DCG MODE, HCG range 115 116 // M4_STRUCT_DESC("CISDgainRange", "normal_ui_style") 117 CalibDb_AeRangeV2_t CISDgainRange; //sensor Dgain 118 119 // M4_STRUCT_DESC("CISIspDgainRange", "normal_ui_style") 120 CalibDb_AeRangeV2_t CISIspDgainRange; //Isp Dgain 121 122 // M4_BOOL_DESC("CISHdrGainIndSetEn", "1") 123 bool CISHdrGainIndSetEn; //bit 0:use the same value; bit 1: support use different gain value 124 } CalibDb_CISGainSetV2_t; 125 126 typedef struct CalibDb_CISHdrSetV2_s { 127 // M4_BOOL_DESC("hdr_en", "0") 128 bool hdr_en; 129 130 // M4_ENUM_DESC("hdr_mode", "rk_aiq_isp_hdr_mode_t","RK_AIQ_ISP_HDR_MODE_2_LINE_HDR") 131 rk_aiq_isp_hdr_mode_t hdr_mode; 132 133 // M4_ENUM_DESC("line_mode", "rk_aiq_sensor_hdr_line_mode_t","RKAIQ_SENSOR_HDR_MODE_STAGGER") 134 rk_aiq_sensor_hdr_line_mode_t line_mode; 135 } CalibDb_CISHdrSetV2_t; 136 137 typedef struct CalibDb_Dcg_ParamsV2_s { 138 // M4_BOOL_DESC("support_en", "0") 139 bool support_en; 140 141 // M4_ENUM_DESC("dcg_optype", "RKAiqOPMode_t","RK_AIQ_OP_MODE_AUTO") 142 RKAiqOPMode_t dcg_optype; 143 144 // M4_STRUCT_DESC("dcg_mode", "normal_ui_style") 145 Cam1x3IntMatrix_t dcg_mode; 146 147 // M4_NUMBER_DESC("dcg_ratio", "f32", M4_RANGE(1,100), "1", M4_DIGIT(2),M4_HIDE(0)) 148 float dcg_ratio; 149 150 // M4_BOOL_DESC("sync_switch", "1") 151 bool sync_switch; 152 153 // M4_NUMBER_DESC("lcg2hcg_gain_th", "f32", M4_RANGE(1,4096), "32", M4_DIGIT(2),M4_HIDE(0)) 154 float lcg2hcg_gain_th; 155 156 // M4_NUMBER_DESC("hcg2lcg_gain_th", "f32", M4_RANGE(1,4096), "16", M4_DIGIT(2),M4_HIDE(0)) 157 float hcg2lcg_gain_th; 158 } CalibDb_Dcg_ParamsV2_t; 159 160 typedef struct CalibDb_DcgSetV2_s { 161 // M4_STRUCT_DESC("Linear", "normal_ui_style") 162 CalibDb_Dcg_ParamsV2_t Linear; 163 164 // M4_STRUCT_DESC("Hdr", "normal_ui_style") 165 CalibDb_Dcg_ParamsV2_t Hdr; 166 } CalibDb_DcgSetV2_t; 167 168 typedef struct CalibDb_ExpUpdateV2_s { 169 // M4_NUMBER_DESC("time_update", "s32", M4_RANGE(0,10), "2", M4_DIGIT(0),M4_HIDE(0)) 170 int time_update; 171 172 // M4_NUMBER_DESC("gain_update", "s32", M4_RANGE(0,10), "2", M4_DIGIT(0),M4_HIDE(0)) 173 int gain_update; 174 175 // M4_NUMBER_DESC("dcg_update", "s32", M4_RANGE(0,10), "2", M4_DIGIT(0),M4_HIDE(0)) 176 int dcg_update; 177 } CalibDb_ExpUpdateV2_t; 178 179 typedef struct CalibDb_ExpUpdate_CombV2_s { 180 // M4_STRUCT_DESC("Linear", "normal_ui_style") 181 CalibDb_ExpUpdateV2_t Linear; 182 183 // M4_STRUCT_DESC("Hdr", "normal_ui_style") 184 CalibDb_ExpUpdateV2_t Hdr; 185 } CalibDb_ExpUpdate_CombV2_t; 186 187 typedef struct CalibDb_ResInfoV2_s { 188 // M4_NUMBER_DESC("width", "u16", M4_RANGE(0,65535), "0", M4_DIGIT(0),M4_HIDE(0)) 189 uint16_t width; 190 // M4_NUMBER_DESC("height", "u16", M4_RANGE(0,65535), "0", M4_DIGIT(0),M4_HIDE(0)) 191 uint16_t height; 192 } CalibDb_ResInfoV2_t; 193 194 195 typedef struct CalibDb_Sensor_ParaV2_s { 196 // M4_STRUCT_DESC("Resolution", "normal_ui_style") 197 CalibDb_ResInfoV2_t resolution; 198 199 // M4_STRUCT_DESC("Gain2Reg", "normal_ui_style") 200 CalibDb_AecGainRangeV2_t Gain2Reg; 201 202 // M4_STRUCT_DESC("Time2Reg", "normal_ui_style") 203 Cam1x4FloatMatrix_t Time2Reg; 204 205 // M4_STRUCT_DESC("CISGainSet", "normal_ui_style") 206 CalibDb_CISGainSetV2_t CISGainSet; 207 208 // M4_STRUCT_DESC("CISTimeSet", "normal_ui_style") 209 CalibDb_CISTimeSet_CombV2_t CISTimeSet; 210 211 // M4_STRUCT_DESC("CISHdrSet", "normal_ui_style") 212 CalibDb_CISHdrSetV2_t CISHdrSet; 213 214 // M4_STRUCT_DESC("CISDcgSet", "normal_ui_style") 215 CalibDb_DcgSetV2_t CISDcgSet; 216 217 // M4_STRUCT_DESC("CISExpUpdate", "normal_ui_style") 218 CalibDb_ExpUpdate_CombV2_t CISExpUpdate; 219 220 // M4_NUMBER_DESC("CISMinFps", "f32", M4_RANGE(1,100), "10", M4_DIGIT(2),M4_HIDE(0)) 221 float CISMinFps; 222 223 // M4_NUMBER_DESC("CISFlip", "u8", M4_RANGE(0,3), "0", M4_DIGIT(0),M4_HIDE(0)) 224 uint8_t CISFlip; // bit 0 : mirror, bit 1 : flip , range[0,3] 225 } CalibDb_Sensor_ParaV2_t; 226 227 RKAIQ_END_DECLARE 228 229 #endif 230