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
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
|
|
|