xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/algos/a3dlut/rk_aiq_types_a3dlut_algo_prvt.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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