1 /* 2 * Copyright (c) 2019-2022 Rockchip Eletronics Co., Ltd. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 #ifndef _RK_AIQ_ALGO_TYPES_H_ 17 #define _RK_AIQ_ALGO_TYPES_H_ 18 19 #include "a3dlut/rk_aiq_types_a3dlut_algo_int.h" 20 #include "abayer2dnr2/rk_aiq_types_abayer2dnr_algo_int_v2.h" 21 #include "abayer2dnrV23/rk_aiq_types_abayer2dnr_algo_int_v23.h" 22 #include "abayertnr2/rk_aiq_types_abayertnr_algo_int_v2.h" 23 #include "abayertnrV23/rk_aiq_types_abayertnr_algo_int_v23.h" 24 #include "ablc/rk_aiq_types_ablc_algo_int.h" 25 #include "ablcV32/rk_aiq_types_ablc_algo_int_v32.h" 26 #include "accm/rk_aiq_types_accm_algo_int.h" 27 #include "acnr/rk_aiq_types_acnr_algo_int_v1.h" 28 #include "acnr2/rk_aiq_types_acnr_algo_int_v2.h" 29 #include "acnrV30/rk_aiq_types_acnr_algo_int_v30.h" 30 #include "acp/rk_aiq_types_acp_algo_int.h" 31 #include "adebayer/rk_aiq_types_adebayer_algo_int.h" 32 #include "adegamma/rk_aiq_types_adegamma_algo_int.h" 33 #include "adehaze/rk_aiq_types_adehaze_algo_int.h" 34 #include "adpcc/rk_aiq_types_adpcc_algo_int.h" 35 #include "adrc/rk_aiq_types_adrc_algo_int.h" 36 #include "ae/rk_aiq_types_ae_algo_int.h" 37 #include "af/rk_aiq_types_af_algo_int.h" 38 #include "afec/rk_aiq_types_afec_algo_int.h" 39 #include "again/rk_aiq_types_again_algo_int.h" 40 #include "again2/rk_aiq_types_again_algo_int_v2.h" 41 #include "agamma/rk_aiq_types_agamma_algo_int.h" 42 #include "aie/rk_aiq_types_aie_algo_int.h" 43 #include "aldch/rk_aiq_types_aldch_algo_int.h" 44 #include "alsc/rk_aiq_types_alsc_algo_int.h" 45 #include "amd/rk_aiq_types_algo_amd_int.h" 46 #include "amerge/rk_aiq_types_amerge_algo_int.h" 47 #include "amfnr/rk_aiq_types_amfnr_algo_int_v1.h" 48 #include "anr/rk_aiq_types_anr_algo_int.h" 49 #include "aorb/rk_aiq_types_orb_algo.h" 50 #include "arawnr/rk_aiq_types_abayernr_algo_int_v1.h" 51 #include "arawnr2/rk_aiq_types_abayernr_algo_int_v2.h" 52 #include "asharp/rk_aiq_types_asharp_algo_int.h" 53 #include "asharp3/rk_aiq_types_asharp_algo_int_v3.h" 54 #include "asharp4/rk_aiq_types_asharp_algo_int_v4.h" 55 #include "asharpV33/rk_aiq_types_asharp_algo_int_v33.h" 56 #include "atmo/rk_aiq_types_atmo_algo_int.h" 57 #include "auvnr/rk_aiq_types_auvnr_algo_int_v1.h" 58 #include "awb/rk_aiq_types_awb_algo_int.h" 59 #include "aynr/rk_aiq_types_aynr_algo_int_v1.h" 60 #include "aynr2/rk_aiq_types_aynr_algo_int_v2.h" 61 #include "aynr3/rk_aiq_types_aynr_algo_int_v3.h" 62 #include "aynrV22/rk_aiq_types_aynr_algo_int_v22.h" 63 #include "afd/rk_aiq_types_afd_algo_int.h" 64 #include "eis_head.h" 65 #include "orb_head.h" 66 #include "rk_aiq_algo_des.h" 67 #include "rk_aiq_types.h" 68 69 // forward declare 70 typedef struct isp_drv_share_mem_ops_s isp_drv_share_mem_ops_t; 71 72 typedef struct _RkAiqResComb { 73 XCamVideoBuffer* ae_pre_res; 74 XCamVideoBuffer* ae_proc_res; 75 XCamVideoBuffer* awb_proc_res; 76 AblcProc_t* ablc_proc_res; 77 AblcProc_V32_t* ablcV32_proc_res; 78 bool bayernr3d_en; 79 Aynr_ProcResult_V3_t* aynrV3_proc_res; 80 Aynr_ProcResult_V22_t* aynrV22_proc_res; 81 } RkAiqResComb; 82 83 // Ae 84 typedef struct _RkAiqAlgoConfigAe { 85 RkAiqAlgoCom com; 86 /*params related to Hardware setting*/ 87 RkAiqAecHwConfig_t HwCtrl; 88 /*params related to driver setting*/ 89 int RawWidth; 90 int RawHeight; 91 rk_aiq_sensor_nr_switch_t nr_switch; 92 float LinePeriodsPerField; 93 float PixelClockFreqMHZ; 94 float PixelPeriodsPerLine; 95 } RkAiqAlgoConfigAe; 96 97 typedef struct _RkAiqAlgoPreAe { 98 RkAiqAlgoCom com; 99 RKAiqAecStats_t* aecStatsBuf; 100 bool af_prior; 101 } RkAiqAlgoPreAe; 102 103 typedef struct _RkAiqAlgoPreResAe { 104 RkAiqAlgoResCom res_com; 105 AecPreResult_t ae_pre_res_rk; 106 } RkAiqAlgoPreResAe; 107 108 typedef struct _RkAiqAlgoProcAe { 109 RkAiqAlgoCom com; 110 RKAiqAecStats_t* aecStatsBuf; 111 } RkAiqAlgoProcAe; 112 113 typedef struct _RkAiqAlgoProcResAe { 114 RkAiqAlgoResCom res_com; 115 rk_aiq_exposure_params_t* new_ae_exp; 116 rk_aiq_isp_aec_meas_t* ae_meas; 117 rk_aiq_isp_hist_meas_t* hist_meas; 118 RKAiqExpI2cParam_t* exp_i2c_params; 119 AecProcResult_t* ae_proc_res_rk; 120 } RkAiqAlgoProcResAe; 121 122 typedef struct _RkAiqAlgoPostAe { 123 RkAiqAlgoCom com; 124 } RkAiqAlgoPostAe; 125 126 typedef struct _RkAiqAlgoPostResAe { 127 RkAiqAlgoResCom res_com; 128 AecPostResult_t ae_post_res_rk; 129 } RkAiqAlgoPostResAe; 130 131 typedef struct RkAiqAlgoProcResAeShared_s { 132 bool IsConverged; 133 bool IsEnvChanged; 134 bool IsAutoAfd; 135 bool LongFrmMode; 136 } RkAiqAlgoProcResAeShared_t; 137 138 // afd 139 typedef struct _RkAiqAlgoConfigAfd { 140 RkAiqAlgoCom com; 141 int RawWidth; 142 int RawHeight; 143 /*params related to driver setting*/ 144 float LinePeriodsPerField; 145 float PixelClockFreqMHZ; 146 float PixelPeriodsPerLine; 147 } RkAiqAlgoConfigAfd; 148 149 typedef struct _RkAiqAlgoPreAfd { 150 RkAiqAlgoCom com; 151 int thumbW; 152 int thumbH; 153 XCamVideoBuffer* thumbStatsS; 154 XCamVideoBuffer* thumbStatsL; 155 RkAiqAlgoProcResAeShared_t* aeProcRes; 156 } RkAiqAlgoPreAfd; 157 158 typedef struct _RkAiqAlgoPreResAfd { 159 RkAiqAlgoResCom res_com; 160 } RkAiqAlgoPreResAfd; 161 162 typedef struct _RkAiqAlgoProcAfd { 163 RkAiqAlgoCom com; 164 int hdr_mode; 165 } RkAiqAlgoProcAfd; 166 167 typedef struct _RkAiqAlgoProcResAfd { 168 RkAiqAlgoResCom res_com; 169 AfdProcResult_t afdRes; 170 } RkAiqAlgoProcResAfd; 171 172 //Awb 173 typedef struct _RkAiqAlgoConfigAwb { 174 RkAiqAlgoCom com; 175 int rawBit; 176 isp_drv_share_mem_ops_t *mem_ops_ptr; 177 } RkAiqAlgoConfigAwb; 178 179 typedef struct _RkAiqAlgoProcAwb { 180 RkAiqAlgoCom com; 181 union { 182 rk_aiq_awb_stat_res_v200_t* awb_statsBuf; 183 rk_aiq_awb_stat_res_v201_t* awb_statsBuf_v201; 184 rk_aiq_isp_awb_stats_v3x_t* awb_statsBuf_v3x; 185 rk_aiq_isp_awb_stats_v32_t* awb_statsBuf_v32; 186 }; 187 rk_aiq_isp_blc_t* blc_cfg_effect; 188 AblcProc_t* ablcProcRes; 189 AblcProc_V32_t* ablcProcResV32; 190 bool ablcProcResVaid; 191 struct rkmodule_awb_inf *awb_otp; 192 RKAiqAecStats_t* aecStatsBuf; 193 } RkAiqAlgoProcAwb; 194 195 typedef struct RkAiqAlgoProcResAwbShared_s { 196 rk_aiq_wb_gain_t awb_gain_algo; 197 float awb_smooth_factor; 198 float varianceLuma; 199 bool awbConverged; 200 } RkAiqAlgoProcResAwbShared_t; 201 202 typedef struct _RkAiqAlgoProcResAwb { 203 RkAiqAlgoResCom res_com; 204 bool awb_cfg_update; 205 union { 206 rk_aiq_awb_stat_cfg_v200_t* awb_hw0_para; 207 rk_aiq_awb_stat_cfg_v201_t* awb_hw1_para; 208 rk_aiq_awb_stat_cfg_v32_t* awb_hw32_para; 209 }; 210 bool awb_gain_update; 211 #if RKAIQ_HAVE_AWB_V32 212 rk_aiq_wb_gain_v32_t* awb_gain_algo; 213 #else 214 rk_aiq_wb_gain_t* awb_gain_algo; 215 #endif 216 color_tempture_info_t cctGloabl; 217 color_tempture_info_t cctFirst[4]; 218 float awb_smooth_factor; 219 float varianceLuma; 220 bool awbConverged; 221 222 uint32_t id; 223 } RkAiqAlgoProcResAwb; 224 225 // af 226 typedef struct _RkAiqAlgoConfigAf { 227 RkAiqAlgoCom com; 228 unsigned char af_mode; 229 unsigned short win_h_offs; 230 unsigned short win_v_offs; 231 unsigned short win_h_size; 232 unsigned short win_v_size; 233 rk_aiq_lens_descriptor lens_des; 234 struct rkmodule_af_inf *otp_af; 235 struct rkmodule_pdaf_inf *otp_pdaf; 236 } RkAiqAlgoConfigAf; 237 238 typedef struct _RkAiqAlgoPreAf { 239 RkAiqAlgoCom com; 240 XCamVideoBuffer* xcam_af_stats; 241 RKAiqAecStats_t* xcam_aec_stats; 242 } RkAiqAlgoPreAf; 243 244 typedef struct _RkAiqAlgoPreResAf { 245 RkAiqAlgoResCom res_com; 246 af_preprocess_result_t af_pre_result; 247 } RkAiqAlgoPreResAf; 248 249 typedef struct _RkAiqAlgoProcAf { 250 RkAiqAlgoCom com; 251 union { 252 rk_aiq_isp_af_stats_t* xcam_af_stats; 253 rk_aiq_isp_af_stats_v3x_t* xcam_af_stats_v3x; 254 }; 255 RKAiqAecExpInfo_t* aecExpInfo; 256 RKAiqAecStats_t* xcam_aec_stats; 257 rk_aiq_isp_pdaf_stats_t* xcam_pdaf_stats; 258 bool ae_stable; 259 } RkAiqAlgoProcAf; 260 261 typedef struct _RkAiqAlgoProcResAf { 262 RkAiqAlgoResCom res_com; 263 bool af_cfg_update; 264 bool af_focus_update; 265 bool lockae; 266 bool lockae_en; 267 union { 268 rk_aiq_isp_af_meas_t* af_isp_param; 269 rk_aiq_isp_af_meas_v3x_t* af_isp_param_v3x; 270 rk_aiq_isp_af_v31_t* af_isp_param_v31; 271 rk_aiq_isp_af_v32_t* af_isp_param_v32; 272 }; 273 rk_aiq_af_focus_pos_meas_t* af_focus_param; 274 uint32_t id; 275 } RkAiqAlgoProcResAf; 276 277 // anr 278 typedef struct _RkAiqAlgoConfigAnr { 279 RkAiqAlgoCom com; 280 ANRConfig_t stANRConfig; 281 } RkAiqAlgoConfigAnr ; 282 283 typedef struct _RkAiqAlgoPreAnr { 284 RkAiqAlgoCom com; 285 ANRConfig_t stANRConfig; 286 } RkAiqAlgoPreAnr; 287 288 typedef struct _RkAiqAlgoPreResAnr { 289 RkAiqAlgoResCom res_com; 290 } RkAiqAlgoPreResAnr; 291 292 typedef struct _RkAiqAlgoProcAnr { 293 RkAiqAlgoCom com; 294 int iso; 295 int hdr_mode; 296 } RkAiqAlgoProcAnr; 297 298 typedef struct _RkAiqAlgoProcResAnr { 299 RkAiqAlgoResCom res_com; 300 ANRProcResult_t stAnrProcResult; 301 } RkAiqAlgoProcResAnr; 302 303 typedef struct _RkAiqAlgoPostAnr { 304 RkAiqAlgoCom com; 305 } RkAiqAlgoPostAnr; 306 307 typedef struct _RkAiqAlgoPostResAnr { 308 RkAiqAlgoResCom res_com; 309 } RkAiqAlgoPostResAnr; 310 311 // asharp 312 typedef struct _RkAiqAlgoConfigAsharp { 313 RkAiqAlgoCom com; 314 AsharpConfig_t stAsharpConfig; 315 } RkAiqAlgoConfigAsharp ; 316 317 typedef struct _RkAiqAlgoPreAsharp { 318 RkAiqAlgoCom com; 319 } RkAiqAlgoPreAsharp; 320 321 typedef struct _RkAiqAlgoPreResAsharp { 322 RkAiqAlgoResCom res_com; 323 } RkAiqAlgoPreResAsharp; 324 325 typedef struct _RkAiqAlgoProcAsharp { 326 RkAiqAlgoCom com; 327 int iso; 328 int hdr_mode; 329 } RkAiqAlgoProcAsharp; 330 331 typedef struct _RkAiqAlgoProcResAsharp { 332 RkAiqAlgoResCom res_com; 333 AsharpProcResult_t stAsharpProcResult; 334 } RkAiqAlgoProcResAsharp; 335 336 typedef struct _RkAiqAlgoPostAsharp { 337 RkAiqAlgoCom com; 338 } RkAiqAlgoPostAsharp; 339 340 typedef struct _RkAiqAlgoPostResAsharp { 341 RkAiqAlgoResCom res_com; 342 } RkAiqAlgoPostResAsharp; 343 344 //sharp v3 345 typedef struct _RkAiqAlgoConfigAsharpV3 { 346 RkAiqAlgoCom com; 347 Asharp_Config_V3_t stAsharpConfig; 348 } RkAiqAlgoConfigAsharpV3; 349 350 typedef struct _RkAiqAlgoPreAsharpV3 { 351 RkAiqAlgoCom com; 352 Asharp_Config_V3_t stAsharpConfig; 353 } RkAiqAlgoPreAsharpV3; 354 355 typedef struct _RkAiqAlgoPreResAsharpV3 { 356 RkAiqAlgoResCom res_com; 357 } RkAiqAlgoPreResAsharpV3; 358 359 typedef struct _RkAiqAlgoProcAsharpV3 { 360 RkAiqAlgoCom com; 361 int iso; 362 int hdr_mode; 363 } RkAiqAlgoProcAsharpV3; 364 365 typedef struct _RkAiqAlgoProcResAsharpV3 { 366 RkAiqAlgoResCom res_com; 367 Asharp_ProcResult_V3_t stAsharpProcResult; 368 } RkAiqAlgoProcResAsharpV3; 369 370 typedef struct _RkAiqAlgoPostAsharpV3 { 371 RkAiqAlgoCom com; 372 } RkAiqAlgoPostAsharpV3; 373 374 typedef struct _RkAiqAlgoPostResAsharpV3 { 375 RkAiqAlgoResCom res_com; 376 } RkAiqAlgoPostResAsharpV3; 377 378 //sharp v4 379 typedef struct _RkAiqAlgoConfigAsharpV4 { 380 RkAiqAlgoCom com; 381 Asharp_Config_V4_t stAsharpConfig; 382 } RkAiqAlgoConfigAsharpV4; 383 384 typedef struct _RkAiqAlgoPreAsharpV4 { 385 RkAiqAlgoCom com; 386 Asharp_Config_V4_t stAsharpConfig; 387 } RkAiqAlgoPreAsharpV4; 388 389 typedef struct _RkAiqAlgoPreResAsharpV4 { 390 RkAiqAlgoResCom res_com; 391 } RkAiqAlgoPreResAsharpV4; 392 393 typedef struct _RkAiqAlgoProcAsharpV4 { 394 RkAiqAlgoCom com; 395 int iso; 396 int hdr_mode; 397 } RkAiqAlgoProcAsharpV4; 398 399 typedef struct _RkAiqAlgoProcResAsharpV4 { 400 RkAiqAlgoResCom res_com; 401 Asharp_ProcResult_V4_t stAsharpProcResult; 402 } RkAiqAlgoProcResAsharpV4; 403 404 typedef struct _RkAiqAlgoPostAsharpV4 { 405 RkAiqAlgoCom com; 406 } RkAiqAlgoPostAsharpV4; 407 408 typedef struct _RkAiqAlgoPostResAsharpV4 { 409 RkAiqAlgoResCom res_com; 410 } RkAiqAlgoPostResAsharpV4; 411 412 // sharp V33 413 typedef struct _RkAiqAlgoConfigAsharpV33 { 414 RkAiqAlgoCom com; 415 Asharp_Config_V33_t stAsharpConfig; 416 } RkAiqAlgoConfigAsharpV33; 417 418 typedef struct _RkAiqAlgoProcAsharpV33 { 419 RkAiqAlgoCom com; 420 int iso; 421 int hdr_mode; 422 AblcProc_V32_t* stAblcV32_proc_res; 423 } RkAiqAlgoProcAsharpV33; 424 425 typedef struct _RkAiqAlgoProcResAsharpV33 { 426 RkAiqAlgoResCom res_com; 427 Asharp_ProcResult_V33_t stAsharpProcResult; 428 } RkAiqAlgoProcResAsharpV33; 429 430 // asd 431 typedef struct _RkAiqAlgoConfigAsd { 432 RkAiqAlgoCom com; 433 } RkAiqAlgoConfigAsd ; 434 435 typedef struct _RkAiqAlgoPreAsd { 436 RkAiqAlgoCom com; 437 asd_preprocess_in_t pre_params; 438 } RkAiqAlgoPreAsd; 439 440 typedef struct _RkAiqAlgoPreResAsd { 441 RkAiqAlgoResCom res_com; 442 asd_preprocess_result_t asd_result; 443 } RkAiqAlgoPreResAsd; 444 445 typedef struct _RkAiqAlgoProcAsd { 446 RkAiqAlgoCom com; 447 } RkAiqAlgoProcAsd; 448 449 typedef struct _RkAiqAlgoProcResAsd { 450 RkAiqAlgoResCom res_com; 451 } RkAiqAlgoProcResAsd; 452 453 // amerge 454 typedef struct _RkAiqAlgoConfigAmerge { 455 RkAiqAlgoCom com; 456 int working_mode; 457 unsigned short rawWidth; // raw图宽 458 unsigned short rawHeight; 459 } RkAiqAlgoConfigAmerge; 460 461 typedef struct _RkAiqAlgoProcAmerge { 462 RkAiqAlgoCom com; 463 bool LongFrmMode; 464 } RkAiqAlgoProcAmerge; 465 466 typedef struct _RkAiqAlgoProcResAmerge { 467 RkAiqAlgoResCom res_com; 468 RkAiqAmergeProcResult_t* AmergeProcRes; 469 } RkAiqAlgoProcResAmerge; 470 471 // atmo 472 typedef struct _RkAiqAlgoConfigAtmo { 473 RkAiqAlgoCom com; 474 AtmoConfig_t* atmoCfg; 475 int working_mode; 476 unsigned short rawWidth; // raw图宽 477 unsigned short rawHeight; 478 } RkAiqAlgoConfigAtmo; 479 480 typedef struct _RkAiqAlgoPreAtmo { 481 RkAiqAlgoCom com; 482 } RkAiqAlgoPreAtmo; 483 484 typedef struct _RkAiqAlgoPreResAtmo { 485 RkAiqAlgoResCom res_com; 486 } RkAiqAlgoPreResAtmo; 487 488 typedef struct _RkAiqAlgoProcAtmo { 489 RkAiqAlgoCom com; 490 rkisp_atmo_stats_t ispAtmoStats; 491 uint32_t width; 492 uint32_t height; 493 } RkAiqAlgoProcAtmo; 494 495 typedef struct _RkAiqAlgoProcResAtmo { 496 RkAiqAlgoResCom res_com; 497 RkAiqAtmoProcResult_t AtmoProcRes; 498 } RkAiqAlgoProcResAtmo; 499 500 typedef struct _RkAiqAlgoPostAtmo { 501 RkAiqAlgoCom com; 502 } RkAiqAlgoPostAtmo; 503 504 typedef struct _RkAiqAlgoPostResAtmo { 505 RkAiqAlgoResCom res_com; 506 } RkAiqAlgoPostResAtmo; 507 508 // acp 509 typedef struct _RkAiqAlgoConfigAcp { 510 RkAiqAlgoCom com; 511 } RkAiqAlgoConfigAcp; 512 513 typedef struct _RkAiqAlgoProcAcp { 514 RkAiqAlgoCom com; 515 } RkAiqAlgoProcAcp; 516 517 typedef struct _RkAiqAlgoProcResAcp { 518 RkAiqAlgoResCom res_com; 519 rk_aiq_acp_params_t* acp_res; 520 } RkAiqAlgoProcResAcp; 521 522 //adehaze 523 typedef struct _RkAiqAlgoConfigAdhaz { 524 RkAiqAlgoCom com; 525 #ifdef RKAIQ_ENABLE_PARSER_V1 526 const CamCalibDbContext_t *calib; 527 #endif 528 int working_mode; 529 bool is_multi_isp_mode; 530 } RkAiqAlgoConfigAdhaz; 531 532 typedef struct _RkAiqAlgoProcAdhaz { 533 RkAiqAlgoCom com; 534 union { 535 dehaze_stats_v10_t* dehaze_stats_v10; 536 dehaze_stats_v11_t* dehaze_stats_v11; 537 dehaze_stats_v11_duo_t* dehaze_stats_v11_duo; 538 dehaze_stats_v12_t* dehaze_stats_v12; 539 }; 540 bool stats_true; 541 #ifdef RKAIQ_ENABLE_PARSER_V1 542 const CamCalibDbContext_t *pCalibDehaze; 543 #endif 544 #if RKAIQ_HAVE_DEHAZE_V11_DUO 545 float sigma_v3[YNR_V3_ISO_CURVE_POINT_NUM]; 546 #endif 547 #if RKAIQ_HAVE_DEHAZE_V12 548 AdehazeOBResV12_t OBResV12; 549 float sigma_v22[YNR_V22_ISO_CURVE_POINT_NUM]; 550 #endif 551 } RkAiqAlgoProcAdhaz; 552 553 typedef struct _RkAiqAlgoProcResAdhaz { 554 RkAiqAlgoResCom res_com; 555 RkAiqAdehazeProcResult_t* AdehzeProcRes; 556 } RkAiqAlgoProcResAdhaz; 557 558 // a3dlut 559 typedef struct _RkAiqAlgoConfigA3dlut { 560 RkAiqAlgoCom com; 561 } RkAiqAlgoConfigA3dlut; 562 563 typedef struct _RkAiqAlgoProcA3dlut { 564 RkAiqAlgoCom com; 565 float sensorGain; 566 float awbGain[2]; 567 float awbIIRDampCoef; 568 bool awbConverged; 569 } RkAiqAlgoProcA3dlut; 570 571 typedef struct _RkAiqAlgoProcResA3dlut { 572 RkAiqAlgoResCom res_com; 573 rk_aiq_lut3d_cfg_t* lut3d_hw_conf; 574 } RkAiqAlgoProcResA3dlut; 575 576 // ablc 577 typedef struct _RkAiqAlgoConfigAblc { 578 RkAiqAlgoCom com; 579 } RkAiqAlgoConfigAblc; 580 581 typedef struct _RkAiqAlgoPreAblc { 582 RkAiqAlgoCom com; 583 } RkAiqAlgoPreAblc; 584 585 typedef struct _RkAiqAlgoPreResAblc { 586 RkAiqAlgoResCom res_com; 587 } RkAiqAlgoPreResAblc; 588 589 typedef struct _RkAiqAlgoProcAblc { 590 RkAiqAlgoCom com; 591 int iso; 592 int hdr_mode; 593 } RkAiqAlgoProcAblc; 594 595 typedef struct _RkAiqAlgoProcResAblc { 596 RkAiqAlgoResCom res_com; 597 AblcProc_t* ablc_proc_res; 598 } RkAiqAlgoProcResAblc; 599 600 typedef struct _RkAiqAlgoPostAblc { 601 RkAiqAlgoCom com; 602 } RkAiqAlgoPostAblc; 603 604 typedef struct _RkAiqAlgoPostResAblc { 605 RkAiqAlgoResCom res_com; 606 } RkAiqAlgoPostResAblc; 607 608 // ablcV32 609 typedef struct _RkAiqAlgoConfigAblcV32 { 610 RkAiqAlgoCom com; 611 } RkAiqAlgoConfigAblcV32; 612 613 typedef struct _RkAiqAlgoProcAblcV32 { 614 RkAiqAlgoCom com; 615 int iso; 616 int hdr_mode; 617 } RkAiqAlgoProcAblcV32; 618 619 typedef struct _RkAiqAlgoProcResAblcV32 { 620 RkAiqAlgoResCom res_com; 621 AblcProc_V32_t* ablcV32_proc_res; 622 } RkAiqAlgoProcResAblcV32; 623 624 // accm 625 typedef struct _RkAiqAlgoConfigAccm { 626 RkAiqAlgoCom com; 627 } RkAiqAlgoConfigAccm; 628 629 typedef struct _RkAiqAlgoProcAccm { 630 RkAiqAlgoCom com; 631 accm_sw_info_t accm_sw_info; 632 } RkAiqAlgoProcAccm; 633 634 typedef struct _RkAiqAlgoProcResAccm { 635 RkAiqAlgoResCom res_com; 636 union { 637 rk_aiq_ccm_cfg_t* accm_hw_conf; 638 rk_aiq_ccm_cfg_v2_t* accm_hw_conf_v2; 639 }; 640 } RkAiqAlgoProcResAccm; 641 642 // cgc 643 typedef struct _RkAiqAlgoConfigAcgc { 644 RkAiqAlgoCom com; 645 } RkAiqAlgoConfigAcgc; 646 647 typedef struct _RkAiqAlgoProcAcgc { 648 RkAiqAlgoCom com; 649 } RkAiqAlgoProcAcgc; 650 651 typedef struct _RkAiqAlgoProcResAcgc { 652 RkAiqAlgoResCom res_com; 653 rk_aiq_acgc_params_t* acgc_res; 654 } RkAiqAlgoProcResAcgc; 655 656 // adebayer 657 typedef struct _RkAiqAlgoConfigAdebayer { 658 RkAiqAlgoCom com; 659 } RkAiqAlgoConfigAdebayer; 660 661 typedef struct _RkAiqAlgoProcAdebayer { 662 RkAiqAlgoCom com; 663 int hdr_mode; 664 } RkAiqAlgoProcAdebayer; 665 666 typedef struct _RkAiqAlgoProcResAdebayer { 667 RkAiqAlgoResCom res_com; 668 union { 669 AdebayerProcResultV1_t debayerResV1; 670 AdebayerProcResultV2_t debayerResV2; 671 }; 672 } RkAiqAlgoProcResAdebayer; 673 674 // adpcc 675 typedef struct _RkAiqAlgoConfigAdpcc { 676 RkAiqAlgoCom com; 677 AdpccConfig_t stAdpccConfig; 678 } RkAiqAlgoConfigAdpcc; 679 680 typedef struct _RkAiqAlgoProcAdpcc { 681 RkAiqAlgoCom com; 682 int iso; 683 int hdr_mode; 684 } RkAiqAlgoProcAdpcc; 685 686 typedef struct _RkAiqAlgoProcResAdpcc { 687 RkAiqAlgoResCom res_com; 688 //Sensor_dpcc_res_t SenDpccRes; 689 AdpccProcResult_t* stAdpccProcResult; 690 } RkAiqAlgoProcResAdpcc; 691 692 // afec 693 typedef struct _RkAiqAlgoConfigAfec { 694 RkAiqAlgoCom com; 695 CalibDb_FEC_t afec_calib_cfg; 696 const char* resource_path; 697 isp_drv_share_mem_ops_t *mem_ops_ptr; 698 } RkAiqAlgoConfigAfec; 699 700 typedef struct _RkAiqAlgoProcAfec { 701 RkAiqAlgoCom com; 702 } RkAiqAlgoProcAfec; 703 704 typedef struct _RkAiqAlgoProcResAfec { 705 RkAiqAlgoResCom res_com; 706 fec_preprocess_result_t* afec_result; 707 } RkAiqAlgoProcResAfec; 708 709 // agamma 710 typedef struct _RkAiqAlgoConfigAgamma { 711 RkAiqAlgoCom com; 712 #ifdef RKAIQ_ENABLE_PARSER_V1 713 const CamCalibDbContext_t *calib; 714 #endif 715 } RkAiqAlgoConfigAgamma; 716 717 typedef struct _RkAiqAlgoProcAgamma { 718 RkAiqAlgoCom com; 719 #ifdef RKAIQ_ENABLE_PARSER_V1 720 const CamCalibDbContext_t *calib; 721 #endif 722 } RkAiqAlgoProcAgamma; 723 724 typedef struct _RkAiqAlgoProcResAgamma { 725 RkAiqAlgoResCom res_com; 726 AgammaProcRes_t* GammaProcRes; 727 } RkAiqAlgoProcResAgamma; 728 729 // adegamma 730 typedef struct _RkAiqAlgoConfigAdegamma { 731 RkAiqAlgoCom com; 732 #ifdef RKAIQ_ENABLE_PARSER_V1 733 const CamCalibDbContext_t *calib; 734 #endif 735 } RkAiqAlgoConfigAdegamma; 736 737 typedef struct _RkAiqAlgoProcAdegamma { 738 RkAiqAlgoCom com; 739 #ifdef RKAIQ_ENABLE_PARSER_V1 740 const CamCalibDbContext_t *calib; 741 #endif 742 } RkAiqAlgoProcAdegamma; 743 744 typedef struct _RkAiqAlgoProcResAdegamma { 745 RkAiqAlgoResCom res_com; 746 AdegammaProcRes_t* adegamma_proc_res; 747 } RkAiqAlgoProcResAdegamma; 748 749 // agic 750 typedef struct _RkAiqAlgoConfigAgic { 751 RkAiqAlgoCom com; 752 } RkAiqAlgoConfigAgic; 753 754 typedef struct _RkAiqAlgoProcAgic { 755 RkAiqAlgoCom com; 756 int hdr_mode; 757 uint8_t raw_bits; 758 uint32_t iso; 759 } RkAiqAlgoProcAgic; 760 761 typedef struct _RkAiqAlgoProcResAgic { 762 RkAiqAlgoResCom res_com; 763 AgicProcResult_t* gicRes; 764 } RkAiqAlgoProcResAgic; 765 766 // aie 767 typedef struct _RkAiqAlgoConfigAie { 768 RkAiqAlgoCom com; 769 } RkAiqAlgoConfigAie; 770 771 typedef struct _RkAiqAlgoProcAie { 772 RkAiqAlgoCom com; 773 } RkAiqAlgoProcAie; 774 775 typedef struct _RkAiqAlgoProcResAie { 776 RkAiqAlgoResCom res_com; 777 rk_aiq_isp_ie_t* ieRes; 778 } RkAiqAlgoProcResAie; 779 780 // aldch 781 typedef struct _RkAiqAlgoConfigAldch { 782 RkAiqAlgoCom com; 783 CalibDb_LDCH_t aldch_calib_cfg; 784 const char* resource_path; 785 isp_drv_share_mem_ops_t *mem_ops_ptr; 786 } RkAiqAlgoConfigAldch; 787 788 typedef struct _RkAiqAlgoProcAldch { 789 RkAiqAlgoCom com; 790 } RkAiqAlgoProcAldch; 791 792 typedef struct _RkAiqAlgoProcResAldch { 793 RkAiqAlgoResCom res_com; 794 ldch_process_result_t* ldch_result; 795 } RkAiqAlgoProcResAldch; 796 797 typedef struct _RkAiqAlgoProcResAldchV21 { 798 RkAiqAlgoResCom res_com; 799 ldch_v21_process_result_t* ldch_result; 800 } RkAiqAlgoProcResAldchV21; 801 802 // alsc 803 typedef struct _RkAiqAlgoConfigAlsc { 804 RkAiqAlgoCom com; 805 alsc_sw_info_t alsc_sw_info; 806 } RkAiqAlgoConfigAlsc; 807 808 typedef struct _RkAiqAlgoProcAlsc { 809 RkAiqAlgoCom com; 810 alsc_sw_info_t alsc_sw_info; 811 XCamVideoBuffer* tx; 812 } RkAiqAlgoProcAlsc; 813 814 typedef struct _RkAiqAlgoProcResAlsc { 815 RkAiqAlgoResCom res_com; 816 rk_aiq_lsc_cfg_t* alsc_hw_conf; 817 } RkAiqAlgoProcResAlsc; 818 819 // aorb 820 typedef struct _RkAiqAlgoConfigAorb { 821 RkAiqAlgoCom com; 822 CalibDbV2_Orb_t orb_calib_cfg; 823 } RkAiqAlgoConfigAorb; 824 825 typedef struct _RkAiqAlgoPreAorb { 826 RkAiqAlgoCom com; 827 } RkAiqAlgoPreAorb; 828 829 typedef struct _RkAiqAlgoPreResAorb { 830 RkAiqAlgoResCom res_com; 831 } RkAiqAlgoPreResAorb; 832 833 typedef struct _RkAiqAlgoProcAorb { 834 RkAiqAlgoCom com; 835 XCamVideoBuffer* orb_stats_buf; 836 } RkAiqAlgoProcAorb; 837 838 typedef struct _RkAiqAlgoProcResAorb { 839 RkAiqAlgoResCom res_com; 840 rk_aiq_orb_algo_meas_t aorb_meas; 841 rk_aiq_isp_orb_meas_t aorb_isp_meas; 842 orb_preprocess_result_t orb_pre_result; 843 } RkAiqAlgoProcResAorb; 844 845 typedef struct _RkAiqAlgoPostAorb { 846 RkAiqAlgoCom com; 847 } RkAiqAlgoPostAorb; 848 849 typedef struct _RkAiqAlgoPostResAorb { 850 RkAiqAlgoResCom res_com; 851 } RkAiqAlgoPostResAorb; 852 853 // acsm 854 typedef struct _RkAiqAlgoConfigAcsm { 855 RkAiqAlgoCom com; 856 } RkAiqAlgoConfigAcsm; 857 858 typedef struct _RkAiqAlgoProcAcsm { 859 RkAiqAlgoCom com; 860 } RkAiqAlgoProcAcsm; 861 862 typedef struct _RkAiqAlgoProcResAcsm { 863 RkAiqAlgoResCom res_com; 864 rk_aiq_acsm_params_t* acsm_res; 865 } RkAiqAlgoProcResAcsm; 866 867 // awdr 868 typedef struct _RkAiqAlgoConfigAwdr { 869 RkAiqAlgoCom com; 870 } RkAiqAlgoConfigAwdr; 871 872 typedef struct _RkAiqAlgoProcAwdr { 873 RkAiqAlgoCom com; 874 } RkAiqAlgoProcAwdr; 875 876 typedef struct _RkAiqAlgoProcResAwdr { 877 RkAiqAlgoResCom res_com; 878 } RkAiqAlgoProcResAwdr; 879 880 // rawnr v1 881 typedef struct _RkAiqAlgoConfigArawnr { 882 RkAiqAlgoCom com; 883 Abayernr_Config_V1_t stArawnrConfig; 884 } RkAiqAlgoConfigArawnr; 885 886 typedef struct _RkAiqAlgoPreArawnr { 887 RkAiqAlgoCom com; 888 Abayernr_Config_V1_t stArawnrConfig; 889 } RkAiqAlgoPreArawnr; 890 891 typedef struct _RkAiqAlgoPreResArawnr { 892 RkAiqAlgoResCom res_com; 893 } RkAiqAlgoPreResArawnr; 894 895 typedef struct _RkAiqAlgoProcArawnr { 896 RkAiqAlgoCom com; 897 int iso; 898 int hdr_mode; 899 } RkAiqAlgoProcArawnr; 900 901 typedef struct _RkAiqAlgoProcResArawnr { 902 RkAiqAlgoResCom res_com; 903 Abayernr_ProcResult_V1_t stArawnrProcResult; 904 } RkAiqAlgoProcResArawnr; 905 906 typedef struct _RkAiqAlgoPostArawnr { 907 RkAiqAlgoCom com; 908 } RkAiqAlgoPostArawnr; 909 910 typedef struct _RkAiqAlgoPostResArawnr { 911 RkAiqAlgoResCom res_com; 912 } RkAiqAlgoPostResArawnr; 913 914 // arawnr v2 915 typedef struct _RkAiqAlgoConfigArawnrV2 { 916 RkAiqAlgoCom com; 917 Abayernr_Config_V2_t stArawnrConfig; 918 } RkAiqAlgoConfigArawnrV2; 919 920 typedef struct _RkAiqAlgoPreArawnrV2 { 921 RkAiqAlgoCom com; 922 Abayernr_Config_V2_t stArawnrConfig; 923 } RkAiqAlgoPreArawnrV2; 924 925 typedef struct _RkAiqAlgoPreResArawnrV2 { 926 RkAiqAlgoResCom res_com; 927 } RkAiqAlgoPreResArawnrV2; 928 929 typedef struct _RkAiqAlgoProcArawnrV2 { 930 RkAiqAlgoCom com; 931 int iso; 932 int hdr_mode; 933 } RkAiqAlgoProcArawnrV2; 934 935 typedef struct _RkAiqAlgoProcResArawnrV2 { 936 RkAiqAlgoResCom res_com; 937 Abayernr_ProcResult_V2_t stArawnrProcResult; 938 } RkAiqAlgoProcResArawnrV2; 939 940 typedef struct _RkAiqAlgoPostArawnrV2 { 941 RkAiqAlgoCom com; 942 } RkAiqAlgoPostArawnrV2; 943 944 typedef struct _RkAiqAlgoPostResArawnrV2 { 945 RkAiqAlgoResCom res_com; 946 } RkAiqAlgoPostResArawnrV2; 947 948 // amfnr 949 typedef struct _RkAiqAlgoConfigAmfnr { 950 RkAiqAlgoCom com; 951 Amfnr_Config_V1_t stAmfnrConfig; 952 } RkAiqAlgoConfigAmfnr; 953 954 typedef struct _RkAiqAlgoPreAmfnr { 955 RkAiqAlgoCom com; 956 Amfnr_Config_V1_t stAmfnrConfig; 957 } RkAiqAlgoPreAmfnr; 958 959 typedef struct _RkAiqAlgoPreResAmfnr { 960 RkAiqAlgoResCom res_com; 961 } RkAiqAlgoPreResAmfnr; 962 963 typedef struct _RkAiqAlgoProcAmfnr { 964 RkAiqAlgoCom com; 965 int iso; 966 int hdr_mode; 967 } RkAiqAlgoProcAmfnr; 968 969 typedef struct _RkAiqAlgoProcResAmfnr { 970 RkAiqAlgoResCom res_com; 971 Amfnr_ProcResult_V1_t stAmfnrProcResult; 972 } RkAiqAlgoProcResAmfnr; 973 974 typedef struct _RkAiqAlgoPostAmfnr { 975 RkAiqAlgoCom com; 976 } RkAiqAlgoPostAmfnr; 977 978 typedef struct _RkAiqAlgoPostResAmfnr { 979 RkAiqAlgoResCom res_com; 980 } RkAiqAlgoPostResAmfnr; 981 982 //abayernr v2 983 typedef struct _RkAiqAlgoConfigAbayer2dnrV2 { 984 RkAiqAlgoCom com; 985 Abayer2dnr_Config_V2_t stArawnrConfig; 986 } RkAiqAlgoConfigAbayer2dnrV2; 987 988 typedef struct _RkAiqAlgoPreAbayer2dnrV2 { 989 RkAiqAlgoCom com; 990 Abayer2dnr_Config_V2_t stArawnrConfig; 991 } RkAiqAlgoPreAbayer2dnrV2; 992 993 typedef struct _RkAiqAlgoPreResAbayer2dnrV2 { 994 RkAiqAlgoResCom res_com; 995 } RkAiqAlgoPreResAbayer2dnrV2; 996 997 typedef struct _RkAiqAlgoProcAbayer2dnrV2 { 998 RkAiqAlgoCom com; 999 int iso; 1000 int hdr_mode; 1001 } RkAiqAlgoProcAbayer2dnrV2; 1002 1003 typedef struct _RkAiqAlgoProcResAbayer2dnrV2 { 1004 RkAiqAlgoResCom res_com; 1005 Abayer2dnr_ProcResult_V2_t stArawnrProcResult; 1006 } RkAiqAlgoProcResAbayer2dnrV2; 1007 1008 typedef struct _RkAiqAlgoPostAbayer2dnrV2 { 1009 RkAiqAlgoCom com; 1010 } RkAiqAlgoPostAbayer2dnrV2; 1011 1012 typedef struct _RkAiqAlgoPostResAbayer2dnrV2 { 1013 RkAiqAlgoResCom res_com; 1014 } RkAiqAlgoPostResAbayer2dnrV2; 1015 1016 //bayertnr v2 1017 typedef struct _RkAiqAlgoConfigAbayertnrV2 { 1018 RkAiqAlgoCom com; 1019 Abayertnr_Config_V2_t stAbayertnrConfig; 1020 } RkAiqAlgoConfigAbayertnrV2; 1021 1022 typedef struct _RkAiqAlgoPreAbayertnrV2 { 1023 RkAiqAlgoCom com; 1024 Abayertnr_Config_V2_t stAbayertnrConfig; 1025 } RkAiqAlgoPreAbayertnrV2; 1026 1027 typedef struct _RkAiqAlgoPreResAbayertnrV2 { 1028 RkAiqAlgoResCom res_com; 1029 } RkAiqAlgoPreResAbayertnrV2; 1030 1031 typedef struct _RkAiqAlgoProcAbayertnrV2 { 1032 RkAiqAlgoCom com; 1033 int iso; 1034 int hdr_mode; 1035 } RkAiqAlgoProcAbayertnrV2; 1036 1037 typedef struct _RkAiqAlgoProcResAbayertnrV2 { 1038 RkAiqAlgoResCom res_com; 1039 Abayertnr_ProcResult_V2_t stAbayertnrProcResult; 1040 } RkAiqAlgoProcResAbayertnrV2; 1041 1042 typedef struct _RkAiqAlgoPostAbayertnrV2 { 1043 RkAiqAlgoCom com; 1044 } RkAiqAlgoPostAbayertnrV2; 1045 1046 typedef struct _RkAiqAlgoPostResAbayertnrV2 { 1047 RkAiqAlgoResCom res_com; 1048 } RkAiqAlgoPostResAbayertnrV2; 1049 1050 //ynr v1 1051 typedef struct _RkAiqAlgoConfigAynr { 1052 RkAiqAlgoCom com; 1053 Aynr_Config_V1_t stAynrConfig; 1054 } RkAiqAlgoConfigAynr; 1055 1056 typedef struct _RkAiqAlgoPreAynr { 1057 RkAiqAlgoCom com; 1058 Aynr_Config_V1_t stAynrConfig; 1059 } RkAiqAlgoPreAynr; 1060 1061 typedef struct _RkAiqAlgoPreResAynr { 1062 RkAiqAlgoResCom res_com; 1063 } RkAiqAlgoPreResAynr; 1064 1065 typedef struct _RkAiqAlgoProcAynr { 1066 RkAiqAlgoCom com; 1067 int iso; 1068 int hdr_mode; 1069 } RkAiqAlgoProcAynr; 1070 1071 typedef struct _RkAiqAlgoProcResAynr { 1072 RkAiqAlgoResCom res_com; 1073 Aynr_ProcResult_V1_t stAynrProcResult; 1074 } RkAiqAlgoProcResAynr; 1075 1076 typedef struct _RkAiqAlgoPostAynr { 1077 RkAiqAlgoCom com; 1078 } RkAiqAlgoPostAynr; 1079 1080 typedef struct _RkAiqAlgoPostResAynr { 1081 RkAiqAlgoResCom res_com; 1082 } RkAiqAlgoPostResAynr; 1083 1084 //ynr v2 1085 typedef struct _RkAiqAlgoConfigAynrV2 { 1086 RkAiqAlgoCom com; 1087 Aynr_Config_V2_t stAynrConfig; 1088 } RkAiqAlgoConfigAynrV2; 1089 1090 typedef struct _RkAiqAlgoPreAynrV2 { 1091 RkAiqAlgoCom com; 1092 Aynr_Config_V2_t stAynrConfig; 1093 } RkAiqAlgoPreAynrV2; 1094 1095 typedef struct _RkAiqAlgoPreResAynrV2 { 1096 RkAiqAlgoResCom res_com; 1097 } RkAiqAlgoPreResAynrV2; 1098 1099 typedef struct _RkAiqAlgoProcAynrV2 { 1100 RkAiqAlgoCom com; 1101 int iso; 1102 int hdr_mode; 1103 } RkAiqAlgoProcAynrV2; 1104 1105 typedef struct _RkAiqAlgoProcResAynrV2 { 1106 RkAiqAlgoResCom res_com; 1107 Aynr_ProcResult_V2_t stAynrProcResult; 1108 } RkAiqAlgoProcResAynrV2; 1109 1110 typedef struct _RkAiqAlgoPostAynrV2 { 1111 RkAiqAlgoCom com; 1112 } RkAiqAlgoPostAynrV2; 1113 1114 typedef struct _RkAiqAlgoPostResAynrV2 { 1115 RkAiqAlgoResCom res_com; 1116 } RkAiqAlgoPostResAynrV2; 1117 1118 //ynr v3 1119 typedef struct _RkAiqAlgoConfigAynrV3 { 1120 RkAiqAlgoCom com; 1121 Aynr_Config_V3_t stAynrConfig; 1122 } RkAiqAlgoConfigAynrV3; 1123 1124 typedef struct _RkAiqAlgoPreAynrV3 { 1125 RkAiqAlgoCom com; 1126 Aynr_Config_V2_t stAynrConfig; 1127 } RkAiqAlgoPreAynrV3; 1128 1129 typedef struct _RkAiqAlgoPreResAynrV3 { 1130 RkAiqAlgoResCom res_com; 1131 } RkAiqAlgoPreResAynrV3; 1132 1133 typedef struct _RkAiqAlgoProcAynrV3 { 1134 RkAiqAlgoCom com; 1135 int iso; 1136 int hdr_mode; 1137 } RkAiqAlgoProcAynrV3; 1138 1139 typedef struct _RkAiqAlgoProcResAynrV3 { 1140 RkAiqAlgoResCom res_com; 1141 Aynr_ProcResult_V3_t stAynrProcResult; 1142 } RkAiqAlgoProcResAynrV3; 1143 1144 typedef struct _RkAiqAlgoPostAynrV3 { 1145 RkAiqAlgoCom com; 1146 } RkAiqAlgoPostAynrV3; 1147 1148 typedef struct _RkAiqAlgoPostResAynrV3 { 1149 RkAiqAlgoResCom res_com; 1150 } RkAiqAlgoPostResAynrV3; 1151 1152 // acnr 1153 typedef struct _RkAiqAlgoConfigAcnr { 1154 RkAiqAlgoCom com; 1155 Auvnr_Config_V1_t stAuvnrConfig; 1156 } RkAiqAlgoConfigAcnr; 1157 1158 typedef struct _RkAiqAlgoPreAcnr { 1159 RkAiqAlgoCom com; 1160 Auvnr_Config_V1_t stAuvnrConfig; 1161 } RkAiqAlgoPreAcnr; 1162 1163 typedef struct _RkAiqAlgoPreResAcnr { 1164 RkAiqAlgoResCom res_com; 1165 } RkAiqAlgoPreResAcnr; 1166 1167 typedef struct _RkAiqAlgoProcAcnr { 1168 RkAiqAlgoCom com; 1169 int iso; 1170 int hdr_mode; 1171 } RkAiqAlgoProcAcnr; 1172 1173 typedef struct _RkAiqAlgoProcResAcnr { 1174 RkAiqAlgoResCom res_com; 1175 Auvnr_ProcResult_V1_t stAuvnrProcResult; 1176 } RkAiqAlgoProcResAcnr; 1177 1178 typedef struct _RkAiqAlgoPostAcnr { 1179 RkAiqAlgoCom com; 1180 } RkAiqAlgoPostAcnr; 1181 1182 typedef struct _RkAiqAlgoPostResAcnr { 1183 RkAiqAlgoResCom res_com; 1184 } RkAiqAlgoPostResAcnr; 1185 1186 //cnr v1 1187 typedef struct _RkAiqAlgoConfigAcnrV1 { 1188 RkAiqAlgoCom com; 1189 Acnr_Config_V1_t stAcnrConfig; 1190 } RkAiqAlgoConfigAcnrV1; 1191 1192 typedef struct _RkAiqAlgoPreAcnrV1 { 1193 RkAiqAlgoCom com; 1194 Acnr_Config_V1_t stAcnrConfig; 1195 } RkAiqAlgoPreAcnrV1; 1196 1197 typedef struct _RkAiqAlgoPreResAcnrV1 { 1198 RkAiqAlgoResCom res_com; 1199 } RkAiqAlgoPreResAcnrV1; 1200 1201 typedef struct _RkAiqAlgoProcAcnrV1 { 1202 RkAiqAlgoCom com; 1203 int iso; 1204 int hdr_mode; 1205 } RkAiqAlgoProcAcnrV1; 1206 1207 typedef struct _RkAiqAlgoProcResAcnrV1 { 1208 RkAiqAlgoResCom res_com; 1209 Acnr_ProcResult_V1_t stAcnrProcResult; 1210 } RkAiqAlgoProcResAcnrV1; 1211 1212 typedef struct _RkAiqAlgoPostAcnrV1 { 1213 RkAiqAlgoCom com; 1214 } RkAiqAlgoPostAcnrV1; 1215 1216 typedef struct _RkAiqAlgoPostResAcnrV1 { 1217 RkAiqAlgoResCom res_com; 1218 } RkAiqAlgoPostResAcnrV1; 1219 1220 // acnrV2 1221 typedef struct _RkAiqAlgoConfigAcnrV2 { 1222 RkAiqAlgoCom com; 1223 Acnr_Config_V2_t stAcnrConfig; 1224 } RkAiqAlgoConfigAcnrV2; 1225 1226 typedef struct _RkAiqAlgoPreAcnrV2 { 1227 RkAiqAlgoCom com; 1228 Acnr_Config_V2_t stAcnrConfig; 1229 } RkAiqAlgoPreAcnrV2; 1230 1231 typedef struct _RkAiqAlgoPreResAcnrV2 { 1232 RkAiqAlgoResCom res_com; 1233 } RkAiqAlgoPreResAcnrV2; 1234 1235 typedef struct _RkAiqAlgoProcAcnrV2 { 1236 RkAiqAlgoCom com; 1237 int iso; 1238 int hdr_mode; 1239 } RkAiqAlgoProcAcnrV2; 1240 1241 typedef struct _RkAiqAlgoProcResAcnrV2 { 1242 RkAiqAlgoResCom res_com; 1243 Acnr_ProcResult_V2_t stAcnrProcResult; 1244 } RkAiqAlgoProcResAcnrV2; 1245 1246 typedef struct _RkAiqAlgoPostAcnrV2 { 1247 RkAiqAlgoCom com; 1248 } RkAiqAlgoPostAcnrV2; 1249 1250 typedef struct _RkAiqAlgoPostResAcnrV2 { 1251 RkAiqAlgoResCom res_com; 1252 } RkAiqAlgoPostResAcnrV2; 1253 1254 // adrc 1255 typedef struct _RkAiqAlgoConfigAdrc { 1256 RkAiqAlgoCom com; 1257 int working_mode; 1258 unsigned short rawWidth; // raw图宽 1259 unsigned short rawHeight; 1260 } RkAiqAlgoConfigAdrc; 1261 1262 typedef struct _RkAiqAlgoProcAdrc { 1263 RkAiqAlgoCom com; 1264 #if RKAIQ_HAVE_DRC_V12 || RKAIQ_HAVE_DRC_V12_LITE 1265 adrc_blcRes_V32_t ablcV32_proc_res; 1266 #endif 1267 bool LongFrmMode; 1268 } RkAiqAlgoProcAdrc; 1269 1270 typedef struct _RkAiqAlgoProcResAdrc { 1271 RkAiqAlgoResCom res_com; 1272 RkAiqAdrcProcResult_t* AdrcProcRes; 1273 } RkAiqAlgoProcResAdrc; 1274 1275 // aeis 1276 typedef struct _RkAiqAlgoConfigAeis { 1277 RkAiqAlgoCom com; 1278 const rk_aiq_mems_sensor_intf_t *mems_sensor_intf; 1279 CalibDbV2_Eis_t calib; 1280 isp_drv_share_mem_ops_t *mem_ops; 1281 } RkAiqAlgoConfigAeis; 1282 1283 typedef struct _RkAiqAlgoProcAeis { 1284 RkAiqAlgoCom com; 1285 int64_t sof; 1286 double rolling_shutter_skew; 1287 float integration_time; 1288 int analog_gain; 1289 uint32_t frame_width; 1290 uint32_t frame_height; 1291 XCamVideoBuffer* orb_stats_buf; 1292 XCamVideoBuffer* nr_img_buf; 1293 } RkAiqAlgoProcAeis; 1294 1295 typedef struct _RkAiqAlgoProcResAeis { 1296 RkAiqAlgoResCom res_com; 1297 bool fec_en; 1298 uint32_t frame_id; 1299 int fd; 1300 int mesh_size; 1301 int mesh_density; 1302 int img_buf_index; 1303 unsigned int img_size; 1304 } RkAiqAlgoProcResAeis; 1305 1306 // amd 1307 typedef struct _RkAiqAlgoConfigAmd { 1308 RkAiqAlgoCom com; 1309 int spWidth; 1310 int spHeight; 1311 int spAlignedW; 1312 int spAlignedH; 1313 } RkAiqAlgoConfigAmd; 1314 1315 typedef struct _RkAiqAlgoProcAmd { 1316 RkAiqAlgoCom com; 1317 int iso; 1318 int hdr_mode; 1319 rk_aiq_amd_algo_stat_t stats; 1320 } RkAiqAlgoProcAmd; 1321 1322 typedef struct _RkAiqAlgoProcResAmd { 1323 RkAiqAlgoResCom res_com; 1324 rk_aiq_amd_params_t amd_proc_res; 1325 } RkAiqAlgoProcResAmd; 1326 1327 // again 1328 typedef struct _RkAiqAlgoConfigAgain { 1329 RkAiqAlgoCom com; 1330 Again_Config_V1_t stAgainConfig; 1331 } RkAiqAlgoConfigAgain; 1332 1333 typedef struct _RkAiqAlgoPreAgain { 1334 RkAiqAlgoCom com; 1335 Again_Config_V1_t stAgainConfig; 1336 } RkAiqAlgoPreAgain; 1337 1338 typedef struct _RkAiqAlgoPreResAgain { 1339 RkAiqAlgoResCom res_com; 1340 } RkAiqAlgoPreResAgain; 1341 1342 typedef struct _RkAiqAlgoProcAgain { 1343 RkAiqAlgoCom com; 1344 int iso; 1345 int hdr_mode; 1346 } RkAiqAlgoProcAgain; 1347 1348 typedef struct _RkAiqAlgoProcResAgain { 1349 RkAiqAlgoResCom res_com; 1350 Again_ProcResult_V1_t stAgainProcResult; 1351 } RkAiqAlgoProcResAgain; 1352 1353 typedef struct _RkAiqAlgoPostAgain { 1354 RkAiqAlgoCom com; 1355 } RkAiqAlgoPostAgain; 1356 1357 typedef struct _RkAiqAlgoPostResAgain { 1358 RkAiqAlgoResCom res_com; 1359 } RkAiqAlgoPostResAgain; 1360 1361 //again v2 1362 typedef struct _RkAiqAlgoConfigAgainV2 { 1363 RkAiqAlgoCom com; 1364 Again_Config_V2_t stAgainConfig; 1365 } RkAiqAlgoConfigAgainV2; 1366 1367 typedef struct _RkAiqAlgoProcAgainV2 { 1368 RkAiqAlgoCom com; 1369 int iso; 1370 int hdr_mode; 1371 } RkAiqAlgoProcAgainV2; 1372 1373 typedef struct _RkAiqAlgoProcResAgainV2 { 1374 RkAiqAlgoResCom res_com; 1375 Again_ProcResult_V2_t stAgainProcResult; 1376 } RkAiqAlgoProcResAgainV2; 1377 1378 // acac 1379 typedef struct _RkAiqAlgoConfigAcac { 1380 RkAiqAlgoCom com; 1381 isp_drv_share_mem_ops_t* mem_ops; 1382 uint32_t width; 1383 uint32_t height; 1384 bool is_multi_sensor; 1385 bool is_multi_isp; 1386 uint8_t multi_isp_extended_pixel; 1387 char iqpath[255]; 1388 } RkAiqAlgoConfigAcac; 1389 1390 typedef struct _RkAiqAlgoProcAcac { 1391 RkAiqAlgoCom com; 1392 int iso; 1393 int hdr_mode; 1394 float hdr_ratio; 1395 uint8_t raw_bits; 1396 } RkAiqAlgoProcAcac; 1397 1398 typedef struct _RkAiqAlgoProcResAcac { 1399 RkAiqAlgoResCom res_com; 1400 bool enable; 1401 #if (RKAIQ_HAVE_CAC_V03 || RKAIQ_HAVE_CAC_V10) && defined(ISP_HW_V30) 1402 rkaiq_cac_v10_hw_param_t* config; 1403 #elif RKAIQ_HAVE_CAC_V11 1404 rkaiq_cac_v11_hw_param_t* config; 1405 #endif 1406 } RkAiqAlgoProcResAcac; 1407 1408 //bayer2dnrv23 1409 typedef struct _RkAiqAlgoConfigAbayer2dnrV23 { 1410 RkAiqAlgoCom com; 1411 Abayer2dnr_Config_V23_t stArawnrConfig; 1412 } RkAiqAlgoConfigAbayer2dnrV23; 1413 1414 typedef struct _RkAiqAlgoProcAbayer2dnrV23 { 1415 RkAiqAlgoCom com; 1416 int iso; 1417 int hdr_mode; 1418 AblcProc_V32_t* stAblcV32_proc_res; 1419 int bayertnr_en; 1420 } RkAiqAlgoProcAbayer2dnrV23; 1421 1422 typedef struct _RkAiqAlgoProcResAbayer2dnrV23 { 1423 RkAiqAlgoResCom res_com; 1424 Abayer2dnr_ProcResult_V23_t stArawnrProcResult; 1425 } RkAiqAlgoProcResAbayer2dnrV23; 1426 1427 //bayertnr v23 1428 typedef struct _RkAiqAlgoConfigAbayertnrV23 { 1429 RkAiqAlgoCom com; 1430 Abayertnr_Config_V23_t stAbayertnrConfig; 1431 } RkAiqAlgoConfigAbayertnrV23; 1432 1433 typedef struct _RkAiqAlgoProcAbayertnrV23 { 1434 RkAiqAlgoCom com; 1435 int iso; 1436 int hdr_mode; 1437 AblcProc_V32_t* stAblcV32_proc_res; 1438 } RkAiqAlgoProcAbayertnrV23; 1439 1440 typedef struct _RkAiqAlgoProcResAbayertnrV23 { 1441 RkAiqAlgoResCom res_com; 1442 Abayertnr_ProcResult_V23_t stAbayertnrProcResult; 1443 } RkAiqAlgoProcResAbayertnrV23; 1444 1445 //ynr v22 1446 typedef struct _RkAiqAlgoConfigAynrV22 { 1447 RkAiqAlgoCom com; 1448 Aynr_Config_V22_t stAynrConfig; 1449 } RkAiqAlgoConfigAynrV22; 1450 1451 typedef struct _RkAiqAlgoProcAynrV22 { 1452 RkAiqAlgoCom com; 1453 int iso; 1454 int hdr_mode; 1455 AblcProc_V32_t* stAblcV32_proc_res; 1456 } RkAiqAlgoProcAynrV22; 1457 1458 typedef struct _RkAiqAlgoProcResAynrV22 { 1459 RkAiqAlgoResCom res_com; 1460 Aynr_ProcResult_V22_t stAynrProcResult; 1461 } RkAiqAlgoProcResAynrV22; 1462 1463 //cnr v30 1464 typedef struct _RkAiqAlgoConfigAcnrV30 { 1465 RkAiqAlgoCom com; 1466 Acnr_Config_V30_t stAcnrConfig; 1467 } RkAiqAlgoConfigAcnrV30; 1468 1469 typedef struct _RkAiqAlgoProcAcnrV30 { 1470 RkAiqAlgoCom com; 1471 int iso; 1472 int hdr_mode; 1473 AblcProc_V32_t* stAblcV32_proc_res; 1474 } RkAiqAlgoProcAcnrV30; 1475 1476 typedef struct _RkAiqAlgoProcResAcnrV30 { 1477 RkAiqAlgoResCom res_com; 1478 Acnr_ProcResult_V30_t stAcnrProcResult; 1479 } RkAiqAlgoProcResAcnrV30; 1480 1481 #endif 1482