1 /* 2 * rk_aiq_a3dlut_algo_prvt.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_A3DLUT_ALGO_PRVT_H_ 21 #define _RK_AIQ_A3DLUT_ALGO_PRVT_H_ 22 23 #include "RkAiqCalibDbTypes.h" 24 #include "a3dlut/rk_aiq_types_a3dlut_algo_int.h" 25 #include "xcam_log.h" 26 #include "xcam_common.h" 27 #include "RkAiqCalibDbTypesV2.h" 28 #include "common/list.h" 29 30 31 32 RKAIQ_BEGIN_DECLARE 33 34 #define RKAIQ_A3DLUT_ILLU_VOTE 0 35 36 typedef struct lut3d_3ares_info_s{ 37 float sensorGain; 38 bool gain_stable; 39 } lut3d_3ares_info_t; 40 41 typedef struct alut3d_rest_info_s { 42 float alpha; 43 #if RKAIQ_A3DLUT_ILLU_VOTE 44 struct list_head dominateIdxList;//to record domain lutIdx 45 #endif 46 int dominateIdx; 47 const CalibDbV2_Lut3D_LutPara_t *pLutProfile; 48 lut3d_3ares_info_t res3a_info; 49 int lutSum_last[3]; 50 int lutSum[3]; 51 } alut3d_rest_info_t; 52 53 typedef struct idx_node_s { 54 list_head p_next; /**< for adding to a list */ 55 unsigned int value; 56 } idx_node_t; 57 58 typedef struct alut3d_context_s { 59 const CalibDb_Lut3d_t *calib_lut3d; 60 const CalibDbV2_Lut3D_Para_V2_t *calibV2_lut3d; 61 rk_aiq_lut3d_cfg_t lut3d_hw_conf; 62 rk_aiq_lut3d_hw_tbl_t lut0; 63 // info 64 alut3d_rest_info_t restinfo; 65 alut3d_sw_info_t swinfo; 66 //ctrl & api 67 rk_aiq_lut3d_attrib_t mCurAtt; 68 //rk_aiq_lut3d_attrib_t mNewAtt; 69 bool updateAtt; 70 bool update; 71 bool calib_update; 72 int prepare_type; 73 } alut3d_context_t ; 74 75 typedef alut3d_context_t* alut3d_handle_t ; 76 77 typedef struct _RkAiqAlgoContext { 78 alut3d_handle_t a3dlut_para; 79 } RkAiqAlgoContext; 80 81 82 RKAIQ_END_DECLARE 83 84 #endif 85 86