xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/hwi/simulator/isp20_hw_simulator.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  *  Copyright (c) 2019 Rockchip Corporation
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  */
17 
18 #ifndef _ISP20_HW_SIMULATOR_H_
19 #define _ISP20_HW_SIMULATOR_H_
20 
21 #include "awb/rk_aiq_types_awb_algo_int.h"
22 #include "ae/rk_aiq_types_ae_algo.h"
23 #include "af/rk_aiq_af_hw_v200.h"
24 #include "adehaze/rk_aiq_types_adehaze_algo_prvt.h"
25 #include "anr/rk_aiq_types_anr_algo_int.h"
26 #include "asharp/rk_aiq_types_asharp_algo_int.h"
27 #include "adebayer/rk_aiq_types_algo_adebayer.h"
28 #include "atmo/rk_aiq_types_atmo_algo_int.h"
29 #include "atmo/rk_aiq_types_atmo_algo.h"
30 #include "amerge/rk_aiq_types_amerge_algo_int.h"
31 #include "amerge/rk_aiq_types_amerge_algo.h"
32 #include "agamma/rk_aiq_types_agamma_algo_prvt.h"
33 #include "aorb/rk_aiq_orb_hw.h"
34 #include "adpcc/rk_aiq_types_adpcc_algo_int.h"
35 #include "ablc/rk_aiq_types_ablc_algo_int.h"
36 #include "alsc/rk_aiq_types_alsc_algo.h"
37 #include "accm/rk_aiq_types_accm_algo.h"
38 #include "agic/rk_aiq_types_algo_agic.h"
39 #include "rk_aiq_luma.h"
40 #include "a3dlut/rk_aiq_types_a3dlut_algo_int.h"
41 typedef struct rk_sim_isp_v200_luma_s {
42     //luma
43     bool valid_luma;
44     isp_luma_stat_t image_luma_result;
45 } rk_sim_isp_v200_luma_t;
46 
47 typedef struct rk_sim_isp_v200_stats_s {
48     //awb
49     bool valid_awb;
50     rk_aiq_awb_stat_res_v200_t awb;
51     rk_aiq_awb_stat_res_v201_t awb_v201;
52     //ae
53     bool valid_ae;
54     RKAiqAecStats_t ae;
55     //af
56     bool valid_af;
57     rawaf_isp_af_stat_t af;
58     //anr html params
59     int iso;
60     //orb
61     bool valid_orb;
62     sim_orb_stat_t orb;
63     //atmo
64     unsigned short  rawWidth;               // rawͼ¿í
65     unsigned short  rawHeight;
66     bool valid_atmo;
67     rkisp_atmo_stats_t atmo;
68 } rk_sim_isp_v200_stats_t;
69 
70 typedef struct rk_sim_isp_v200_params_s {
71     float awb_smooth_factor;
72     rk_aiq_wb_gain_t awb_gain_algo;
73     rk_aiq_awb_stat_cfg_v200_t awb_hw0_para;
74     rk_aiq_awb_stat_cfg_v201_t awb_hw1_para;
75     //ae
76     RkAiqAecHwConfig_t ae_hw_config;
77     //anr
78     ANRProcResult_t rkaiq_anr_proc_res;
79     AsharpProcResult_t rkaiq_asharp_proc_res;
80     //adhaz
81     rk_aiq_dehaze_cfg_t adhaz_config;
82     //agamma
83     AgammaProcRes_t agamma_config;
84     //amerge
85     RkAiqAmergeProcResult_t amerge_proc_res;
86     //atmo
87     RkAiqAtmoProcResult_t atmo_proc_res;
88     //adpcc
89     AdpccProcResult_t   dpcc;
90     //adebayer
91     AdebayerConfig_t adebayer_config;
92     //ablc
93     AblcProc_t blc;
94     //agic
95     AgicConfig_t agic_config;
96     rk_aiq_lsc_cfg_t lscHwConf;
97     rk_aiq_ccm_cfg_t ccmHwConf;
98 
99     rk_aiq_lut3d_cfg_t lut3d_hw_conf;
100     unsigned short  rawWidth;               // rawͼ¿í
101     unsigned short  rawHeight;
102 } rk_sim_isp_v200_params_t;
103 
104 #endif
105 
106