You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

126 lines
4.8 KiB

#ifndef _RK_AIQ_ISP39_MODULES_H_
#define _RK_AIQ_ISP39_MODULES_H_
#include "rk_aiq_isp32_modules.h"
#include "common/rk-isp39-config.h"
#include "common/rk-isp33-config.h"
#include "rk_aiq_module_btnr_common.h"
#include "rk_aiq_module_common.h"
#include "blc_algo/aiq_blcLoader.h"
#include "include/algos/awb/rk_aiq_types_awb_algo.h"
#if ISP_HW_V39
typedef enum LutBufferState_e {
kInitial = 0,
kWait2Chip = 1,
kChipInUse = 2,
} LutBufferState;
typedef struct LutBufferConfig_s {
bool IsBigMode;
uint32_t Width;
uint32_t Height;
uint32_t LutHCount;
uint32_t LutVCount;
uint16_t ScaleFactor;
uint16_t PsfCfgCount;
} LutBufferConfig;
typedef struct LutBuffer_s {
LutBufferState State;
LutBufferConfig Config;
int Fd;
int Size;
void* Addr;
} LutBuffer;
typedef struct isp_drv_share_mem_ops_s isp_drv_share_mem_ops_t;
typedef struct LutBufferManager_s {
const isp_drv_share_mem_ops_t* mem_ops_;
void* mem_ctx_;
LutBufferConfig config_;
} LutBufferManager;
typedef struct {
char iqpath[255];
uint16_t rawWidth;
uint16_t rawHeight;
isp_drv_share_mem_ops_t* mem_ops;
bool is_multi_sensor;
bool is_multi_isp;
uint8_t multi_isp_extended_pixel;
int isp_unite_mode;
LutBufferManager* lut_manger_;
LutBuffer* current_lut_[2];
uint16_t current_lut_size;
float hdr_ratio;
} cac_cvt_info_t;
void LutBufferManagerDeinit(cac_cvt_info_t *cacInfo, LutBufferManager* man);
#endif
typedef struct {
int ds_fd;
int iir_fd;
int gain_fd;
int ds_size;
void* ds_address;
void* tnr_ds_buf;
struct blcLibrary lib_Blc_;
bool init_success;
rk_autoblc_param_t blc1_param;
unsigned int bayertnr_itransf_tbl[4096];
int blc_adjust[66];
float cur_adjust[2];
int autoblc_count;
float sigma_ratio;
float blc_adjust_tbl[26];
int pre_adjust[2];
uint16_t pre_ob_offset;
} blc_cvt_info_t;
RKAIQ_BEGIN_DECLARE
void rk_aiq_btnr40_params_cvt(void* attr, isp_params_t* isp_params, common_cvt_info_t *cvtinfo, btnr_cvt_info_t *pBtnrInfo);
void rk_aiq_sharp34_params_cvt(void* attr, isp_params_t* isp_params, common_cvt_info_t *cvtinfo);
void rk_aiq_ynr34_params_cvt(void* attr, isp_params_t* isp_params, common_cvt_info_t *cvtinfo);
void rk_aiq_cnr34_params_cvt(void* attr, isp_params_t* isp_params, common_cvt_info_t *cvtinfo);
void rk_aiq_drc40_params_cvt(void* attr, isp_params_t* isp_params, common_cvt_info_t *cvtinfo, bool drc_en);
void rk_aiq_blc30_params_cvt(void* attr, isp_params_t* isp_params, common_cvt_info_t* cvtinfo,
blc_cvt_info_t* pBlcInfo, rk_aiq_wb_gain_v32_t* awb_gain_final);
void rk_aiq_dpcc21_params_cvt(void* attr, isp_params_t* isp_params);
void rk_aiq_gamma21_params_cvt(void* attr, isp_params_t* isp_params);
void rk_aiq_gic21_params_cvt(void* attr, struct isp39_gic_cfg* gic_cfg);
void rk_aiq_dehaze23_params_cvt(void* attr, isp_params_t* isp_params, common_cvt_info_t *cvtinfo);
void rk_aiq_histeq23_params_cvt(void* attr, isp_params_t* isp_params, common_cvt_info_t *cvtinfo);
void rk_aiq_dehazeHisteq23_sigma_params_cvt(isp_params_t* isp_params,
common_cvt_info_t* cvtinfo);
void rk_aiq_yme10_params_cvt(void* attr, isp_params_t* isp_params, common_cvt_info_t* cvtinfo);
#if ISP_HW_V39
void rk_aiq_cac21_params_cvt(void* attr, isp_params_t* isp_params,
isp_params_t* isp_cfg_right, cac_cvt_info_t *cacInfo, common_cvt_info_t* cvtinfo);
#endif
void rk_aiq_ldch22_params_cvt(const common_cvt_info_t* cvtinfo, void* attr,
isp_params_t* isp_params, isp_params_t* isp_cfg_right,
bool is_multi_isp);
void rk_aiq_ldcv22_params_cvt(const common_cvt_info_t* cvtinfo, void* attr,
isp_params_t* isp_params, isp_params_t* isp_cfg_right,
bool is_multi_isp);
void rk_aiq_csm21_params_cvt(void* attr, isp_params_t* isp_params);
void rk_aiq_dm23_params_cvt(void* attr, isp_params_t* isp_params, common_cvt_info_t *cvtinfo);
void rk_aiq_merge22_params_cvt(void* attr, isp_params_t* isp_params, common_cvt_info_t* cvtinfo);
void rk_aiq_lsc21_params_cvt(void* attr, isp_params_t* isp_params, common_cvt_info_t *cvtinfo);
void rk_aiq_ae25_stats_cfg_cvt(void* meas, isp_params_t* isp_params);
void rk_aiq_rgbir10_params_cvt(void* attr, isp_params_t* isp_params);
void rk_aiq_cgc10_params_cvt(void* attr, isp_params_t* isp_params);
void rk_aiq_cp10_params_cvt(void* attr, isp_params_t* isp_params);
void rk_aiq_gain20_params_cvt(void* attr, isp_params_t* isp_params, common_cvt_info_t* cvtinfo);
void rk_aiq_lut3d20_params_cvt(void* attr, isp_params_t* isp_params);
void rk_aiq_ccm22_params_cvt(void* attr, isp_params_t* isp_params, common_cvt_info_t *cvtinfo);
RKAIQ_END_DECLARE
#endif