1 /* 2 *rk_aiq_types_alsc_algo_int.h 3 * 4 * Copyright (c) 2019 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 _RK_AIQ_TYPE_ASHARP_ALGO_INT_H_ 21 #define _RK_AIQ_TYPE_ASHARP_ALGO_INT_H_ 22 #include "rk_aiq_comm.h" 23 #include "RkAiqCalibDbTypes.h" 24 #include "asharp/rk_aiq_types_asharp_algo.h" 25 #include "sharp_head_v1.h" 26 #include "edgefilter_head_v1.h" 27 28 RKAIQ_BEGIN_DECLARE 29 30 #define SHARP_MAX_STRENGTH_PERCENT (100.0) 31 32 #define MAX_ISO_STEP CALIBDB_NR_SHARP_MAX_ISO_LEVEL 33 //sharp 34 #define IDX_SIGN 0 35 #define IDX_INTE 1 36 #define IDX_DECI 2 37 #define IDX_NUM 3 38 39 #define RK_EDGEFILTER_LUMA_POINT_NUM 8 40 #define RK_SHARPEN_HW_PARAMS_NUM 28 41 #define RK_SHARPFILTER_LUMA_POINT_NUM 8 42 #define RK_SHARPEN_HW_SHARP_PAR_NUM (23) 43 #define ISP_PP_SHARP_BLK_WIDTH 32 44 #define ISP_PP_SHARP_BLK_HEIGHT 128 45 46 #define RKSHAPRENHW_GAU_DIAM 3 47 #define RKSHAPRENHW_PBF_DIAM 3 48 #define RKSHAPRENHW_MRF_DIAM 5 49 #define RKSHAPRENHW_MBF_DIAM_X 17 50 #define RKSHAPRENHW_MBF_DIAM_Y 13 51 #define RKSHAPRENHW_HRF_DIAM 5 52 #define RKSHAPRENHW_HBF_DIAM 3 53 #define RKSHAPRENHW_AVG_DIAM 3 54 55 #define RKSHAPRENHW_V2_GAU_DIAM 3 56 #define RKSHAPRENHW_V2_PBF_DIAM 3 57 #define RKSHAPRENHW_V2_HRF_DIAM 5 58 #define RKSHAPRENHW_V2_HBF_DIAM_X 9 59 #define RKSHAPRENHW_V2_HBF_DIAM_Y 9 60 #define RKSHAPRENHW_V2_AVG_DIAM 3 61 62 #define RKSHAPRENHW_V3_RF_DIAM 5 63 #define RKSHAPRENHW_V3_AVG_DIAM 5 64 65 66 //edgefilter 67 #define RK_EDGEFILTER_LUMA_POINT_NUM 8 68 #define RK_EDGEFILTER_PARAMS_NUM 15//21 69 #define RKEDGEFILTER_LUMA_GAU_DIAM 3 70 #define RKEDGEFILTER_DIR_SMTH_DIAM 5 71 #define RKEDGEFILTER_GAUS_DIAM 5 72 #define RKEDGEFILTER_SHRP_DIAM 3 73 #define RKEDGEFILTER_DOG_DIAM 5 74 75 76 typedef struct RKAsharp_Sharp_HW_Params_s 77 { 78 #ifndef RK_SIMULATOR_HW 79 float iso[MAX_ISO_STEP]; 80 #endif 81 float lratio [MAX_ISO_STEP]; 82 float hratio [MAX_ISO_STEP]; 83 float M_ratio [MAX_ISO_STEP]; 84 float H_ratio [MAX_ISO_STEP]; 85 short luma_point [RK_SHARPFILTER_LUMA_POINT_NUM]; 86 float luma_sigma [MAX_ISO_STEP][RK_SHARPFILTER_LUMA_POINT_NUM]; 87 float pbf_gain [MAX_ISO_STEP]; 88 float pbf_add [MAX_ISO_STEP]; 89 float pbf_ratio [MAX_ISO_STEP]; 90 short lum_clp_m [MAX_ISO_STEP][RK_SHARPFILTER_LUMA_POINT_NUM]; 91 float lum_min_m [MAX_ISO_STEP][RK_SHARPFILTER_LUMA_POINT_NUM]; 92 float mbf_gain [MAX_ISO_STEP]; 93 float mbf_add [MAX_ISO_STEP]; 94 short lum_clp_h [MAX_ISO_STEP][RK_SHARPFILTER_LUMA_POINT_NUM]; 95 float hbf_ratio [MAX_ISO_STEP]; 96 float hbf_gain [MAX_ISO_STEP]; 97 float hbf_add [MAX_ISO_STEP]; 98 short ehf_th [MAX_ISO_STEP]; 99 float pbf_coeff_percent[MAX_ISO_STEP]; 100 float rf_m_coeff_percent[MAX_ISO_STEP]; 101 float rf_h_coeff_percent[MAX_ISO_STEP]; 102 float hbf_coeff_percent[MAX_ISO_STEP]; 103 104 105 float gaus_luma_kernel [MAX_ISO_STEP][RKSHAPRENHW_PBF_DIAM * RKSHAPRENHW_PBF_DIAM]; 106 float kernel_pbf_l [MAX_ISO_STEP][RKSHAPRENHW_PBF_DIAM * RKSHAPRENHW_PBF_DIAM]; 107 float kernel_pbf_h [MAX_ISO_STEP][RKSHAPRENHW_PBF_DIAM * RKSHAPRENHW_PBF_DIAM]; 108 float h_rf_m_l [MAX_ISO_STEP][RKSHAPRENHW_MRF_DIAM * RKSHAPRENHW_MRF_DIAM]; 109 float h_rf_m_h [MAX_ISO_STEP][RKSHAPRENHW_MRF_DIAM * RKSHAPRENHW_MRF_DIAM]; 110 float kernel_mbf [MAX_ISO_STEP][RKSHAPRENHW_MBF_DIAM_Y * RKSHAPRENHW_MBF_DIAM_X]; 111 float h_rf_h_l [MAX_ISO_STEP][RKSHAPRENHW_HRF_DIAM * RKSHAPRENHW_HRF_DIAM]; 112 float h_rf_h_h [MAX_ISO_STEP][RKSHAPRENHW_HRF_DIAM * RKSHAPRENHW_HRF_DIAM]; 113 float kernel_hbf_l [MAX_ISO_STEP][RKSHAPRENHW_HBF_DIAM * RKSHAPRENHW_HBF_DIAM]; 114 float kernel_hbf_h [MAX_ISO_STEP][RKSHAPRENHW_HBF_DIAM * RKSHAPRENHW_HBF_DIAM]; 115 116 } RKAsharp_Sharp_HW_Params_t; 117 118 119 typedef struct RKAsharp_Sharp_HW_Params_Select_s 120 { 121 float lratio ; 122 float hratio ; 123 float M_ratio ; 124 float H_ratio ; 125 short luma_point [RK_SHARPFILTER_LUMA_POINT_NUM]; 126 float luma_sigma [RK_SHARPFILTER_LUMA_POINT_NUM]; 127 float pbf_gain ; 128 float pbf_add ; 129 float pbf_ratio; 130 short lum_clp_m [RK_SHARPFILTER_LUMA_POINT_NUM]; 131 float lum_min_m [RK_SHARPFILTER_LUMA_POINT_NUM]; 132 float mbf_gain ; 133 float mbf_add ; 134 short lum_clp_h [RK_SHARPFILTER_LUMA_POINT_NUM]; 135 float hbf_ratio ; 136 float hbf_gain ; 137 float hbf_add ; 138 short ehf_th ; 139 float gaus_luma_kernel [RKSHAPRENHW_GAU_DIAM * RKSHAPRENHW_GAU_DIAM]; 140 float kernel_pbf [RKSHAPRENHW_PBF_DIAM * RKSHAPRENHW_PBF_DIAM]; 141 float h_rf_m [RKSHAPRENHW_MRF_DIAM * RKSHAPRENHW_MRF_DIAM]; 142 float kernel_mbf [RKSHAPRENHW_MBF_DIAM_Y * RKSHAPRENHW_MBF_DIAM_X]; 143 float h_rf_h [RKSHAPRENHW_HRF_DIAM * RKSHAPRENHW_HRF_DIAM]; 144 float kernel_hbf [RKSHAPRENHW_HBF_DIAM * RKSHAPRENHW_HBF_DIAM]; 145 146 147 148 } RKAsharp_Sharp_HW_Params_Select_t; 149 150 typedef struct RKAsharp_Sharp_HW_V2_Params_s 151 { 152 short luma_point [RK_SHARPFILTER_LUMA_POINT_NUM]; 153 short luma_sigma [MAX_ISO_STEP][RK_SHARPFILTER_LUMA_POINT_NUM]; 154 float pbf_gain [MAX_ISO_STEP]; 155 float pbf_add [MAX_ISO_STEP]; 156 float pbf_ratio [MAX_ISO_STEP]; 157 float lratio [MAX_ISO_STEP]; 158 float hratio [MAX_ISO_STEP]; 159 float sharp_ratio [MAX_ISO_STEP]; 160 short lum_clip_h [MAX_ISO_STEP][RK_SHARPFILTER_LUMA_POINT_NUM]; 161 float hbf_gain [MAX_ISO_STEP]; 162 float hbf_add [MAX_ISO_STEP]; 163 float hbf_ratio [MAX_ISO_STEP]; 164 short ehf_th [MAX_ISO_STEP]; 165 166 short gaus_luma_kernel [MAX_ISO_STEP][RKSHAPRENHW_V2_PBF_DIAM * RKSHAPRENHW_V2_PBF_DIAM]; 167 short kernel_pre_bf [MAX_ISO_STEP][RKSHAPRENHW_V2_PBF_DIAM * RKSHAPRENHW_V2_PBF_DIAM]; 168 short kernel_range_filter [MAX_ISO_STEP][RKSHAPRENHW_V2_HRF_DIAM * RKSHAPRENHW_V2_HRF_DIAM]; 169 short kernel_hf_bf [MAX_ISO_STEP][RKSHAPRENHW_V2_HBF_DIAM_Y * RKSHAPRENHW_V2_HBF_DIAM_X]; 170 171 } RKAsharp_Sharp_HW_V2_Params_t; 172 173 typedef struct RKAsharp_Sharp_HW_V2_Params_Select_s 174 { 175 short luma_point [RK_SHARPFILTER_LUMA_POINT_NUM]; 176 short luma_sigma [RK_SHARPFILTER_LUMA_POINT_NUM]; 177 float pbf_gain ; 178 float pbf_add ; 179 float pbf_ratio ; 180 float lratio ; 181 float hratio ; 182 float sharp_ratio ; 183 short lum_clip_h [RK_SHARPFILTER_LUMA_POINT_NUM]; 184 float hbf_gain ; 185 float hbf_add ; 186 float hbf_ratio ; 187 short ehf_th ; 188 189 short gaus_luma_kernel [RKSHAPRENHW_V2_PBF_DIAM * RKSHAPRENHW_V2_PBF_DIAM]; 190 short kernel_pre_bf [RKSHAPRENHW_V2_PBF_DIAM * RKSHAPRENHW_V2_PBF_DIAM]; 191 short kernel_range_filter [RKSHAPRENHW_V2_HRF_DIAM * RKSHAPRENHW_V2_HRF_DIAM]; 192 short kernel_hf_bf [RKSHAPRENHW_V2_HBF_DIAM_Y * RKSHAPRENHW_V2_HBF_DIAM_X]; 193 194 } RKAsharp_Sharp_HW_V2_Params_Select_t; 195 196 typedef struct RKAsharp_Sharp_HW_V3_Params_s 197 { 198 short luma_point [RK_SHARPFILTER_LUMA_POINT_NUM]; 199 float lratio [MAX_ISO_STEP]; 200 float hratio [MAX_ISO_STEP]; 201 float sharp_ratio [MAX_ISO_STEP]; 202 short lum_clip_h [MAX_ISO_STEP][RK_SHARPFILTER_LUMA_POINT_NUM]; 203 short ehf_th [MAX_ISO_STEP]; 204 205 short kernel_range_filter [MAX_ISO_STEP][RKSHAPRENHW_V3_RF_DIAM * RKSHAPRENHW_V3_RF_DIAM]; 206 } RKAsharp_Sharp_HW_V3_Params_t; 207 208 typedef struct RKAsharp_Sharp_HW_V3_Params_Select_s 209 { 210 short luma_point [RK_SHARPFILTER_LUMA_POINT_NUM]; 211 float lratio ; 212 float hratio ; 213 float sharp_ratio ; 214 short lum_clip_h [RK_SHARPFILTER_LUMA_POINT_NUM]; 215 short ehf_th ; 216 217 short kernel_range_filter [RKSHAPRENHW_V3_RF_DIAM * RKSHAPRENHW_V3_RF_DIAM]; 218 } RKAsharp_Sharp_HW_V3_Params_Select_t; 219 220 221 typedef struct RKAsharp_Sharp_Params_s 222 { 223 RKAsharp_Sharp_HW_Params_t rk_sharpen_params_V1; 224 RKAsharp_Sharp_HW_V2_Params_t rk_sharpen_params_V2; 225 RKAsharp_Sharp_HW_V3_Params_t rk_sharpen_params_V3; 226 227 } RKAsharp_Sharp_Params_t; 228 229 typedef struct RKAsharp_Sharp_Params_Select_s 230 { 231 RKAsharp_Sharp_HW_Params_Select_t rk_sharpen_params_selected_V1; 232 RKAsharp_Sharp_HW_V2_Params_Select_t rk_sharpen_params_selected_V2; 233 RKAsharp_Sharp_HW_V3_Params_Select_t rk_sharpen_params_selected_V3; 234 235 } RKAsharp_Sharp_Params_Select_t; 236 237 238 typedef struct RKAsharp_EdgeFilter_Params_s 239 { 240 #ifndef RK_SIMULATOR_HW 241 float iso[MAX_ISO_STEP]; 242 #endif 243 244 short edge_thed [MAX_ISO_STEP]; 245 float dir_min [MAX_ISO_STEP]; 246 float smoth4 [MAX_ISO_STEP]; 247 short alpha_adp_en [MAX_ISO_STEP]; 248 float l_alpha [MAX_ISO_STEP]; 249 float g_alpha [MAX_ISO_STEP]; 250 short enhance_luma_point [RK_EDGEFILTER_LUMA_POINT_NUM]; 251 short edge_thed_1 [MAX_ISO_STEP][RK_EDGEFILTER_LUMA_POINT_NUM]; 252 float clamp_pos_gaus [MAX_ISO_STEP][RK_EDGEFILTER_LUMA_POINT_NUM]; 253 float clamp_neg_gaus [MAX_ISO_STEP][RK_EDGEFILTER_LUMA_POINT_NUM]; 254 short clamp_pos_dog [MAX_ISO_STEP][RK_EDGEFILTER_LUMA_POINT_NUM]; 255 short clamp_neg_dog [MAX_ISO_STEP][RK_EDGEFILTER_LUMA_POINT_NUM]; 256 float detail_alpha_gaus [MAX_ISO_STEP][RK_EDGEFILTER_LUMA_POINT_NUM]; 257 float detail_alpha_dog [MAX_ISO_STEP][RK_EDGEFILTER_LUMA_POINT_NUM]; 258 259 float gaus_luma_kernel [MAX_ISO_STEP][RKEDGEFILTER_LUMA_GAU_DIAM * RKEDGEFILTER_LUMA_GAU_DIAM]; 260 float h0_h_coef_5x5 [MAX_ISO_STEP][RKEDGEFILTER_DIR_SMTH_DIAM * RKEDGEFILTER_DIR_SMTH_DIAM]; 261 float h1_v_coef_5x5 [MAX_ISO_STEP][RKEDGEFILTER_DIR_SMTH_DIAM * RKEDGEFILTER_DIR_SMTH_DIAM]; 262 float h2_m_coef_5x5 [MAX_ISO_STEP][RKEDGEFILTER_DIR_SMTH_DIAM * RKEDGEFILTER_DIR_SMTH_DIAM]; 263 float h3_p_coef_5x5 [MAX_ISO_STEP][RKEDGEFILTER_DIR_SMTH_DIAM * RKEDGEFILTER_DIR_SMTH_DIAM]; 264 float h_coef_5x5 [MAX_ISO_STEP][RKEDGEFILTER_GAUS_DIAM * RKEDGEFILTER_GAUS_DIAM]; 265 float gf_coef_3x3 [MAX_ISO_STEP][RKEDGEFILTER_SHRP_DIAM * RKEDGEFILTER_SHRP_DIAM]; 266 float dog_kernel_l [MAX_ISO_STEP][RKEDGEFILTER_DOG_DIAM * RKEDGEFILTER_DOG_DIAM]; 267 float dog_kernel_h [MAX_ISO_STEP][RKEDGEFILTER_DOG_DIAM * RKEDGEFILTER_DOG_DIAM]; 268 float dog_kernel_percent [MAX_ISO_STEP]; 269 } RKAsharp_EdgeFilter_Params_t; 270 271 typedef struct RKAsharp_EdgeFilter_Params_Select_s 272 { 273 274 short edge_thed; 275 float dir_min; 276 float smoth4; 277 short alpha_adp_en; 278 float l_alpha; 279 float g_alpha; 280 short enhance_luma_point [RK_EDGEFILTER_LUMA_POINT_NUM]; 281 short edge_thed_1 [RK_EDGEFILTER_LUMA_POINT_NUM]; 282 float clamp_pos_gaus [RK_EDGEFILTER_LUMA_POINT_NUM]; 283 float clamp_neg_gaus [RK_EDGEFILTER_LUMA_POINT_NUM]; 284 short clamp_pos_dog [RK_EDGEFILTER_LUMA_POINT_NUM]; 285 short clamp_neg_dog [RK_EDGEFILTER_LUMA_POINT_NUM]; 286 float detail_alpha_gaus [RK_EDGEFILTER_LUMA_POINT_NUM]; 287 float detail_alpha_dog [RK_EDGEFILTER_LUMA_POINT_NUM]; 288 289 float gaus_luma_kernel [RKEDGEFILTER_LUMA_GAU_DIAM * RKEDGEFILTER_LUMA_GAU_DIAM]; 290 float h0_h_coef_5x5 [RKEDGEFILTER_DIR_SMTH_DIAM * RKEDGEFILTER_DIR_SMTH_DIAM]; 291 float h1_v_coef_5x5 [RKEDGEFILTER_DIR_SMTH_DIAM * RKEDGEFILTER_DIR_SMTH_DIAM]; 292 float h2_m_coef_5x5 [RKEDGEFILTER_DIR_SMTH_DIAM * RKEDGEFILTER_DIR_SMTH_DIAM]; 293 float h3_p_coef_5x5 [RKEDGEFILTER_DIR_SMTH_DIAM * RKEDGEFILTER_DIR_SMTH_DIAM]; 294 float h_coef_5x5 [RKEDGEFILTER_GAUS_DIAM * RKEDGEFILTER_GAUS_DIAM]; 295 float gf_coef_3x3 [RKEDGEFILTER_SHRP_DIAM * RKEDGEFILTER_SHRP_DIAM]; 296 float dog_kernel [RKEDGEFILTER_DOG_DIAM * RKEDGEFILTER_DOG_DIAM]; 297 298 } RKAsharp_EdgeFilter_Params_Select_t; 299 300 typedef enum AsharpResult_e { 301 ASHARP_RET_SUCCESS = 0, // this has to be 0, if clauses rely on it 302 ASHARP_RET_FAILURE = 1, // process failure 303 ASHARP_RET_INVALID_PARM = 2, // invalid parameter 304 ASHARP_RET_WRONG_CONFIG = 3, // feature not supported 305 ASHARP_RET_BUSY = 4, // there's already something going on... 306 ASHARP_RET_CANCELED = 5, // operation canceled 307 ASHARP_RET_OUTOFMEM = 6, // out of memory 308 ASHARP_RET_OUTOFRANGE = 7, // parameter/value out of range 309 ASHARP_RET_NULL_POINTER = 8, // the/one/all parameter(s) is a(are) NULL pointer(s) 310 ASHARP_RET_DIVISION_BY_ZERO = 9, // a divisor equals ZERO 311 ASHARP_RET_NO_INPUTIMAGE = 10 // no input image 312 } AsharpResult_t; 313 314 typedef enum AsharpState_e { 315 ASHARP_STATE_INVALID = 0, /**< initialization value */ 316 ASHARP_STATE_INITIALIZED = 1, /**< instance is created, but not initialized */ 317 ASHARP_STATE_STOPPED = 2, /**< instance is confiured (ready to start) or stopped */ 318 ASHARP_STATE_RUNNING = 3, /**< instance is running (processes frames) */ 319 ASHARP_STATE_LOCKED = 4, /**< instance is locked (for taking snapshots) */ 320 ASHARP_STATE_MAX /**< max */ 321 } AsharpState_t; 322 323 typedef enum AsharpOPMode_e { 324 ASHARP_OP_MODE_INVALID = 0, /**< initialization value */ 325 ASHARP_OP_MODE_AUTO = 1, /**< instance is created, but not initialized */ 326 ASHARP_OP_MODE_MANUAL = 2, /**< instance is confiured (ready to start) or stopped */ 327 ASHARP_OP_MODE_MAX /**< max */ 328 } AsharpOPMode_t; 329 330 typedef enum AsharpParamMode_e { 331 ASHARP_PARAM_MODE_INVALID = 0, /**< initialization value */ 332 ASHARP_PARAM_MODE_NORMAL = 1, /**< instance is created, but not initialized */ 333 ASHARP_PARAM_MODE_HDR = 2, /**< instance is confiured (ready to start) or stopped */ 334 ASHARP_PARAM_MODE_GRAY =3, /**< max */ 335 ASHARP_PARAM_MODE_MAX 336 } AsharpParamMode_t; 337 338 339 340 typedef struct Asharp_Manual_Attr_s 341 { 342 int sharpEn; 343 RKAsharp_Sharp_Params_Select_t stSharpParamSelect; 344 345 int edgeFltEn; 346 RKAsharp_EdgeFilter_Params_Select_t stEdgefilterParamSelect; 347 348 } Asharp_Manual_Attr_t; 349 350 typedef struct Asharp_Auto_Attr_s 351 { 352 //all ISO params and select param 353 //sharp 354 int sharpEn; 355 RKAsharp_Sharp_Params_t stSharpParam; 356 RKAsharp_Sharp_Params_Select_t stSharpParamSelect; 357 358 //edgefilter 359 int edgeFltEn; 360 RKAsharp_EdgeFilter_Params_t stEdgefilterParams; 361 RKAsharp_EdgeFilter_Params_Select_t stEdgefilterParamSelect; 362 } Asharp_Auto_Attr_t; 363 364 typedef struct AsharpProcResult_s { 365 int sharpEn; 366 int edgeFltEn; 367 368 //for sw simulator 369 RKAsharp_Sharp_Params_Select_t stSharpParamSelect; 370 RKAsharp_EdgeFilter_Params_Select_t stEdgefilterParamSelect; 371 372 //for fgpa 373 RKAsharp_Sharp_Fix_t stSharpFix; 374 RKAsharp_Edgefilter_Fix_t stEdgefltFix; 375 376 } AsharpProcResult_t; 377 378 typedef struct AsharpConfig_s { 379 380 AsharpState_t eState; 381 AsharpOPMode_t eMode; 382 383 } AsharpConfig_t; 384 385 typedef struct rk_aiq_sharp_attrib_s { 386 AsharpOPMode_t eMode; 387 Asharp_Auto_Attr_t stAuto; 388 Asharp_Manual_Attr_t stManual; 389 } rk_aiq_sharp_attrib_t; 390 391 typedef struct AsharpExpInfo_s { 392 int hdr_mode; 393 float arTime[3]; 394 float arAGain[3]; 395 float arDGain[3]; 396 int arIso[3]; 397 int arDcgMode[3]; 398 int cur_snr_mode; 399 int snr_mode; 400 401 float preTime[3]; 402 float preAGain[3]; 403 float preDGain[3]; 404 int preIso[3]; 405 int preDcgMode[3]; 406 int pre_snr_mode; 407 408 int mfnr_mode_3to1; 409 } AsharpExpInfo_t; 410 411 typedef enum rk_aiq_sharp_module_e{ 412 ASHARP_MODULE_SHARP = 0, /**< instance is created, but not initialized */ 413 ASHARP_MODULE_EDGEFILTER = 1, /**< instance is confiured (ready to start) or stopped */ 414 } rk_aiq_sharp_module_t; 415 416 417 typedef struct rk_aiq_sharp_IQpara_s{ 418 int module_bits; 419 420 CalibDb_Sharp_t stSharpPara; 421 CalibDb_EdgeFilter_t stEdgeFltPara; 422 }rk_aiq_sharp_IQpara_t; 423 424 425 typedef struct rk_aiq_sharp_JsonPara_s{ 426 int module_bits; 427 428 CalibDbV2_SharpV1_t sharp_v1; 429 CalibDbV2_Edgefilter_t edgefilter_v1; 430 }rk_aiq_sharp_JsonPara_t; 431 432 433 RKAIQ_END_DECLARE 434 435 #endif 436 437 438