xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/hwi/isp32/Isp32Params.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Copyright (c) 2021-2022 Rockchip Eletronics Co., Ltd.
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * Licensed under the Apache License, Version 2.0 (the "License");
5*4882a593Smuzhiyun  * you may not use this file except in compliance with the License.
6*4882a593Smuzhiyun  * You may obtain a copy of the License at
7*4882a593Smuzhiyun  *
8*4882a593Smuzhiyun  *      http://www.apache.org/licenses/LICENSE-2.0
9*4882a593Smuzhiyun  *
10*4882a593Smuzhiyun  * Unless required by applicable law or agreed to in writing, software
11*4882a593Smuzhiyun  * distributed under the License is distributed on an "AS IS" BASIS,
12*4882a593Smuzhiyun  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*4882a593Smuzhiyun  * See the License for the specific language governing permissions and
14*4882a593Smuzhiyun  * limitations under the License.
15*4882a593Smuzhiyun  */
16*4882a593Smuzhiyun #ifndef _CAM_HW_ISP32_PARAMS_H_
17*4882a593Smuzhiyun #define _CAM_HW_ISP32_PARAMS_H_
18*4882a593Smuzhiyun 
19*4882a593Smuzhiyun #include "isp3x/Isp3xParams.h"
20*4882a593Smuzhiyun #include "isp32/Isp32Params.h"
21*4882a593Smuzhiyun #include "rk_aiq_pool.h"
22*4882a593Smuzhiyun #include "rkisp32-config.h"
23*4882a593Smuzhiyun 
24*4882a593Smuzhiyun namespace RkCam {
25*4882a593Smuzhiyun 
26*4882a593Smuzhiyun class Isp32Params : virtual public Isp3xParams {
27*4882a593Smuzhiyun public:
Isp32Params()28*4882a593Smuzhiyun     explicit Isp32Params() : Isp3xParams() {};
~Isp32Params()29*4882a593Smuzhiyun     virtual ~Isp32Params() {};
30*4882a593Smuzhiyun 
31*4882a593Smuzhiyun protected:
32*4882a593Smuzhiyun     virtual bool convert3aResultsToIspCfg(SmartPtr<cam3aResult>& result, void* isp_cfg_p, bool is_multi_isp) override;
33*4882a593Smuzhiyun 
34*4882a593Smuzhiyun private:
35*4882a593Smuzhiyun     XCAM_DEAD_COPY(Isp32Params);
36*4882a593Smuzhiyun 
37*4882a593Smuzhiyun 
38*4882a593Smuzhiyun #if RKAIQ_HAVE_BAYER2DNR_V23
39*4882a593Smuzhiyun     void convertAiqRawnrToIsp32Params(struct isp32_isp_params_cfg& isp_cfg,
40*4882a593Smuzhiyun                                       rk_aiq_isp_baynr_v32_t& rawnr);
41*4882a593Smuzhiyun #endif
42*4882a593Smuzhiyun #if (RKAIQ_HAVE_BAYERTNR_V23 || RKAIQ_HAVE_BAYERTNR_V23_LITE)
43*4882a593Smuzhiyun     void convertAiqTnrToIsp32Params(struct isp32_isp_params_cfg& isp_cfg,
44*4882a593Smuzhiyun                                     rk_aiq_isp_tnr_v32_t& tnr);
45*4882a593Smuzhiyun #endif
46*4882a593Smuzhiyun #if RKAIQ_HAVE_YNR_V22
47*4882a593Smuzhiyun     void convertAiqYnrToIsp32Params(struct isp32_isp_params_cfg& isp_cfg,
48*4882a593Smuzhiyun                                     rk_aiq_isp_ynr_v32_t& ynr);
49*4882a593Smuzhiyun #endif
50*4882a593Smuzhiyun #if (RKAIQ_HAVE_CNR_V30 || RKAIQ_HAVE_CNR_V30_LITE)
51*4882a593Smuzhiyun     void convertAiqUvnrToIsp32Params(struct isp32_isp_params_cfg& isp_cfg,
52*4882a593Smuzhiyun                                      rk_aiq_isp_cnr_v32_t& uvnr);
53*4882a593Smuzhiyun #endif
54*4882a593Smuzhiyun     void convertAiqAwbGainToIsp32Params(struct isp32_isp_params_cfg& isp_cfg,
55*4882a593Smuzhiyun                                         const rk_aiq_wb_gain_v32_t& awb_gain,  bool awb_gain_update);
56*4882a593Smuzhiyun #if RKAIQ_HAVE_AWB_V32
57*4882a593Smuzhiyun     void convertAiqAwbToIsp32Params(struct isp32_isp_params_cfg& isp_cfg,
58*4882a593Smuzhiyun                                     const rk_aiq_isp_awb_meas_cfg_v32_t& awb_meas,
59*4882a593Smuzhiyun                                     bool awb_cfg_udpate);
60*4882a593Smuzhiyun #endif
61*4882a593Smuzhiyun #if (RKAIQ_HAVE_SHARP_V33 || RKAIQ_HAVE_SHARP_V33_LITE)
62*4882a593Smuzhiyun     void convertAiqSharpenToIsp32Params(struct isp32_isp_params_cfg& isp_cfg,
63*4882a593Smuzhiyun                                         rk_aiq_isp_sharp_v32_t& sharp);
64*4882a593Smuzhiyun #endif
65*4882a593Smuzhiyun     void convertAiqBlcToIsp32Params(struct isp32_isp_params_cfg& isp_cfg,
66*4882a593Smuzhiyun                                     rk_aiq_isp_blc_v32_t& blc);
67*4882a593Smuzhiyun 
68*4882a593Smuzhiyun #if RKAIQ_HAVE_AF_V31 || RKAIQ_ONLY_AF_STATS_V31
69*4882a593Smuzhiyun     void convertAiqAfToIsp32Params(struct isp32_isp_params_cfg& isp_cfg,
70*4882a593Smuzhiyun                                    const rk_aiq_isp_af_v31_t& af_data, bool af_cfg_udpate);
71*4882a593Smuzhiyun #endif
72*4882a593Smuzhiyun #if RKAIQ_HAVE_AF_V32_LITE || RKAIQ_ONLY_AF_STATS_V32_LITE
73*4882a593Smuzhiyun     void convertAiqAfLiteToIsp32Params(struct isp32_isp_params_cfg& isp_cfg,
74*4882a593Smuzhiyun                                    const rk_aiq_isp_af_v32_t& af_data, bool af_cfg_udpate);
75*4882a593Smuzhiyun #endif
76*4882a593Smuzhiyun #if RKAIQ_HAVE_CAC_V11
77*4882a593Smuzhiyun     void convertAiqCacToIsp32Params(struct isp32_isp_params_cfg& isp_cfg,
78*4882a593Smuzhiyun                                     const rk_aiq_isp_cac_v32_t& cac_cfg);
79*4882a593Smuzhiyun #endif
80*4882a593Smuzhiyun #if RKAIQ_HAVE_DEBAYER_V2 || RKAIQ_HAVE_DEBAYER_V2_LITE
81*4882a593Smuzhiyun     void convertAiqAdebayerToIsp32Params(struct isp32_isp_params_cfg& isp_cfg,
82*4882a593Smuzhiyun                                          rk_aiq_isp_debayer_v32_t & debayer);
83*4882a593Smuzhiyun #endif
84*4882a593Smuzhiyun #if RKAIQ_HAVE_DEHAZE_V12
85*4882a593Smuzhiyun     void convertAiqAdehazeToIsp32Params(struct isp32_isp_params_cfg& isp_cfg,
86*4882a593Smuzhiyun                                         const rk_aiq_isp_dehaze_v32_t& dhaze);
87*4882a593Smuzhiyun #endif
88*4882a593Smuzhiyun #if RKAIQ_HAVE_DRC_V12 || RKAIQ_HAVE_DRC_V12_LITE
89*4882a593Smuzhiyun     void convertAiqDrcToIsp32Params(struct isp32_isp_params_cfg& isp_cfg,
90*4882a593Smuzhiyun                                     rk_aiq_isp_drc_v32_t& adrc_data);
91*4882a593Smuzhiyun #endif
92*4882a593Smuzhiyun #if RKAIQ_HAVE_MERGE_V12
93*4882a593Smuzhiyun     void convertAiqMergeToIsp32Params(struct isp32_isp_params_cfg& isp_cfg,
94*4882a593Smuzhiyun                                       const rk_aiq_isp_merge_v32_t& amerge_data);
95*4882a593Smuzhiyun #endif
96*4882a593Smuzhiyun #if RKAIQ_HAVE_CCM_V2
97*4882a593Smuzhiyun     void convertAiqCcmToIsp32Params(struct isp32_isp_params_cfg& isp_cfg,
98*4882a593Smuzhiyun                                     const rk_aiq_ccm_cfg_v2_t& ccm);
99*4882a593Smuzhiyun #endif
100*4882a593Smuzhiyun     void convertAiqAldchToIsp32Params(struct isp32_isp_params_cfg& isp_cfg,
101*4882a593Smuzhiyun                                       const rk_aiq_isp_ldch_v21_t& ldch_cfg);
102*4882a593Smuzhiyun     void convertAiqExpIspDgainToIsp32Params(struct isp32_isp_params_cfg& isp_cfg, RKAiqAecExpInfo_t ae_exp);
103*4882a593Smuzhiyun };
104*4882a593Smuzhiyun 
105*4882a593Smuzhiyun }  // namespace RkCam
106*4882a593Smuzhiyun #endif
107