Initial commit: TXW82x FPV v2.7.0.7-42229 SDK + project sources
This commit is contained in:
493
sdk/include/hal/isp.h
Normal file
493
sdk/include/hal/isp.h
Normal file
@@ -0,0 +1,493 @@
|
||||
#ifndef _HAL_ISP_H_
|
||||
#define _HAL_ISP_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#include "hal/isp_param.h"
|
||||
#include "lib/video/isp/isp_ircut.h"
|
||||
|
||||
#define EVENT_ISP_CALC (BIT(0))
|
||||
#define EVENT_ISP_IMG_OPT (BIT(1))
|
||||
#define EVENT_ISP_FPS_OPT (BIT(2))
|
||||
|
||||
enum sensor_type {
|
||||
SENSOR_TYPE_MASTER = 0,
|
||||
SENSOR_TYPE_SLAVE0,
|
||||
SENSOR_TYPE_SLAVE1,
|
||||
};
|
||||
|
||||
enum isp_input_dat_src{
|
||||
ISP_INPUT_DAT_SRC_DVP = 0,
|
||||
ISP_INPUT_DAT_SRC_DVP1,
|
||||
ISP_INPUT_DAT_SRC_MIPI0,
|
||||
ISP_INPUT_DAT_SRC_MIPI1,
|
||||
ISP_INPUT_DAT_SRC_ORG_DMA,
|
||||
ISP_INPUT_DAT_SRC_GEN422,
|
||||
ISP_INPUT_DAT_SRC_PARA,
|
||||
ISP_INPUT_DAT_SRC_RESERVED,
|
||||
};
|
||||
|
||||
enum isp_yuv_range {
|
||||
ISP_YUV_RANGE_NARROW = 0,
|
||||
ISP_YUV_RANGE_FULL,
|
||||
};
|
||||
|
||||
enum isp_yuv_gamut {
|
||||
ISP_YUV_GAMUT_BT601,
|
||||
ISP_YUV_GAMUT_BT709,
|
||||
};
|
||||
|
||||
enum isp_input_dat_format{
|
||||
ISP_INPUT_DAT_FORMAT_RAW08,
|
||||
ISP_INPUT_DAT_FORMAT_RAW10,
|
||||
ISP_INPUT_DAT_FORMAT_RAW12,
|
||||
ISP_INPUT_DAT_FORMAT_YUV422,
|
||||
};
|
||||
|
||||
enum isp_bayer_format{
|
||||
ISP_BAYER_FORMAT_RGGB,
|
||||
ISP_BAYER_FORMAT_GRBG,
|
||||
ISP_BAYER_FORMAT_GBRG,
|
||||
ISP_BAYER_FORMAT_BGGR,
|
||||
};
|
||||
|
||||
enum isp_ycrcb_gamut_type{
|
||||
ISP_YCRCB_GAMUT_TYPE_BT601,
|
||||
ISP_YCRCB_GAMUT_TYPE_BT709,
|
||||
};
|
||||
|
||||
enum isp_ycrcb_range{
|
||||
ISP_YCRCB_RANGE_NARROW,
|
||||
ISP_YCRCB_RANGE_FULL,
|
||||
};
|
||||
|
||||
enum isp_detect_frame_interval{
|
||||
ISP_DETECT_FRAME_INR_00,
|
||||
ISP_DETECT_FRAME_INR_01,
|
||||
ISP_DETECT_FRAME_INR_02,
|
||||
ISP_DETECT_FRAME_INR_03,
|
||||
ISP_DETECT_FRAME_INR_04,
|
||||
ISP_DETECT_FRAME_INR_05,
|
||||
ISP_DETECT_FRAME_INR_06,
|
||||
ISP_DETECT_FRAME_INR_07,
|
||||
ISP_DETECT_FRAME_INR_08,
|
||||
ISP_DETECT_FRAME_INR_09,
|
||||
ISP_DETECT_FRAME_INR_10,
|
||||
ISP_DETECT_FRAME_INR_11,
|
||||
ISP_DETECT_FRAME_INR_12,
|
||||
ISP_DETECT_FRAME_INR_13,
|
||||
ISP_DETECT_FRAME_INR_14,
|
||||
ISP_DETECT_FRAME_INR_15,
|
||||
ISP_DETECT_FRAME_INR_16,
|
||||
ISP_DETECT_FRAME_INR_17,
|
||||
ISP_DETECT_FRAME_INR_18,
|
||||
ISP_DETECT_FRAME_INR_19,
|
||||
ISP_DETECT_FRAME_INR_20,
|
||||
ISP_DETECT_FRAME_INR_21,
|
||||
ISP_DETECT_FRAME_INR_22,
|
||||
ISP_DETECT_FRAME_INR_23,
|
||||
ISP_DETECT_FRAME_INR_24,
|
||||
ISP_DETECT_FRAME_INR_25,
|
||||
ISP_DETECT_FRAME_INR_26,
|
||||
ISP_DETECT_FRAME_INR_27,
|
||||
ISP_DETECT_FRAME_INR_28,
|
||||
ISP_DETECT_FRAME_INR_29,
|
||||
ISP_DETECT_FRAME_INR_30,
|
||||
ISP_DETECT_FRAME_INR_31,
|
||||
};
|
||||
|
||||
enum isp_irq_flag {
|
||||
ISP_IRQ_FLAG_INTF_SLOW = 0,
|
||||
ISP_IRQ_FLAG_FRM_FAST,
|
||||
ISP_IRQ_FLAG_DAT_OF,
|
||||
ISP_IRQ_FLAG_FRM_END,
|
||||
ISP_IRQ_FLAG_AWB_DONE,
|
||||
ISP_IRQ_FLAG_AE_DONE,
|
||||
ISP_IRQ_FLAG_MD_DONE,
|
||||
ISP_IRQ_FLAG_DMA_DONE,
|
||||
ISP_IRQ_FLAG_AF_DONE,
|
||||
ISP_IRQ_FLAG_DPC_ERR,
|
||||
ISP_IRQ_FLAG_IIC_CFG,
|
||||
ISP_IRQ_FLAG_TOTAL_NUM,
|
||||
};
|
||||
|
||||
enum isp_clk_divide{
|
||||
ISP_CLK_DIVIDE_1 = 0,
|
||||
ISP_CLK_DIVIDE_2,
|
||||
ISP_CLK_DIVIDE_3,
|
||||
ISP_CLK_DIVIDE_4,
|
||||
ISP_CLK_DIVIDE_5,
|
||||
ISP_CLK_DIVIDE_6,
|
||||
ISP_CLK_DIVIDE_7,
|
||||
};
|
||||
|
||||
enum isp_input_fifo{
|
||||
ISP_INPUT_FIFO_FULL,
|
||||
ISP_INPUT_FIFO_HALF,
|
||||
ISP_INPUT_FIFO_QUARTER,
|
||||
ISP_INPUT_FIFO_EIGHTHS,
|
||||
};
|
||||
|
||||
enum isp_filter_mode {
|
||||
ISP_FILTER_MODE_NORMAL,
|
||||
ISP_FILTER_MODE_BLACK_WHITE,
|
||||
ISP_FILTER_MODE_BINARYZATION,
|
||||
ISP_FILTER_MODE_RETRO,
|
||||
};
|
||||
|
||||
enum isp_ioctl_cmd {
|
||||
ISP_IOCTL_CMD_GET_STA,
|
||||
ISP_IOCTL_CMD_GET_VERSION,
|
||||
ISP_IOCTL_CMD_DUMP_PARAM,
|
||||
ISP_IOCTL_CMD_PROGRAM_PARAM,
|
||||
ISP_IOCTL_CMD_INIT_SENSOR_PARAM,
|
||||
ISP_IOCTL_CMD_SENSOR_INIT,
|
||||
ISP_IOCTL_CMD_CLK_DIVIDE,
|
||||
ISP_IOCTL_CMD_FIFO_TYPE,
|
||||
ISP_IOCTL_CMD_CROP_INPUT,
|
||||
ISP_IOCTL_CMD_CROP_OUTPUT,
|
||||
ISP_IOCTL_CMD_Y_GAMMA_ADDR,
|
||||
ISP_IOCTL_CMD_RGB_GAMMA_ADDR,
|
||||
ISP_IOCTL_CMD_SENSOR_IIC_DEVID,
|
||||
ISP_IOCTL_CMD_SENSOR_IIC_OPTCMD,
|
||||
ISP_IOCTL_CMD_SLAVE_INDEX,
|
||||
ISP_IOCTL_CMD_BLACK_WHITE_MODE,
|
||||
ISP_IOCTL_CMD_IMG_MIRROR,
|
||||
ISP_IOCTL_CMD_IMG_REVERSE,
|
||||
ISP_IOCTL_CMD_GET_IMG,
|
||||
ISP_IOCTL_CMD_FILTER_MODE,
|
||||
ISP_IOCTL_CMD_AWB_MANNUL_MODE_MAP,
|
||||
ISP_IOCTL_CMD_AWB_MANNUL_MODE_TYPE,
|
||||
ISP_IOCTL_CMD_AWB_CONTROL_STEP,
|
||||
ISP_IOCTL_CMD_AWB_CONTROL_THR,
|
||||
ISP_IOCTL_CMD_AWB_AUTO_CTRL,
|
||||
ISP_IOCTL_CMD_AWB_FINE_CONSTRAINT_CTRL,
|
||||
ISP_IOCTL_CMD_AWB_COARSE_CONSTRAINT_CTRL,
|
||||
ISP_IOCTL_CMD_AWB_MEAS_MODE,
|
||||
ISP_IOCTL_CMD_AWB_WP_EXPECT,
|
||||
ISP_IOCTL_CMD_AWB_WP_RANGE_CONSTRAINT,
|
||||
ISP_IOCTL_CMD_AWB_WP_RANGE_CONSTRAINTF,
|
||||
ISP_IOCTL_CMD_AWB_WP_RANGE_CONSTRAINT_RESTRAIN,
|
||||
ISP_IOCTL_CMD_AWB_RGB_CONSTRAINT,
|
||||
ISP_IOCTL_CMD_AWB_WP_NUM_RESTRAIN,
|
||||
ISP_IOCTL_CMD_AWB_GAIN_TYPE,
|
||||
ISP_IOCTL_CMD_AWB_GAIN_CONSTRAINT,
|
||||
ISP_IOCTL_CMD_AWB_GAIN_COARSE_CONSTRAINT,
|
||||
ISP_IOCTL_CMD_AWB_GAIN_FINE_CONSTRAINT,
|
||||
ISP_IOCTL_CMD_AWB_CROP_RANGE,
|
||||
ISP_IOCTL_CMD_AE_BV,
|
||||
ISP_IOCTL_CMD_AE_MANUAL_PARAM,
|
||||
ISP_IOCTL_CMD_AE_ROW_TIME_US,
|
||||
ISP_IOCTL_CMD_AE_ANALOG_GAIN,
|
||||
ISP_IOCTL_CMD_AE_EXPOSURE_LINE,
|
||||
ISP_IOCTL_CMD_AE_CONFIG_INTERVAL,
|
||||
ISP_IOCTL_CMD_AE_DAY_NIGHT_BV,
|
||||
ISP_IOCTL_CMD_AE_SCENE_LUT,
|
||||
ISP_IOCTL_CMD_AE_LOWLIGHT_PARAM,
|
||||
ISP_IOCTL_CMD_AE_FRAME_MAX,
|
||||
ISP_IOCTL_CMD_AE_LOCK_PARAM,
|
||||
ISP_IOCTL_CMD_AE_REDUCE_FPS,
|
||||
ISP_IOCTL_CMD_LOWLIGHT_LSB_GAIN_EN,
|
||||
ISP_IOCTL_CMD_LOWLIGHT_LSB_GAIN_4HI_FPS,
|
||||
ISP_IOCTL_CMD_LOWLIGHT_LSB_GAIN_4LO_FPS,
|
||||
ISP_IOCTL_CMD_HIST_HS_BIN_THR,
|
||||
ISP_IOCTL_CMD_AE_LUMA_TARGET,
|
||||
ISP_IOCTL_CMD_AE_LUMA_WEIGHT,
|
||||
ISP_IOCTL_CMD_AE_ABL_LUMA_MAX,
|
||||
ISP_IOCTL_CMD_AE_POS_THR,
|
||||
ISP_IOCTL_CMD_AE_HIST_THR,
|
||||
ISP_IOCTL_CMD_AE_AOE_EXPO_GAIN,
|
||||
ISP_IOCTL_CMD_AE_ABL_LOCK_THR,
|
||||
ISP_IOCTL_CMD_AE_BRIGHT_DARK_PIXEL_RATIO,
|
||||
ISP_IOCTL_CMD_AE_ABL_DARK_BRIGHT_POS_THR,
|
||||
ISP_IOCTL_CMD_AE_AOE_DARK_BRIGHT_POS_THR,
|
||||
ISP_IOCTL_CMD_AE_ABL_GAIN_MODE,
|
||||
ISP_IOCTL_CMD_AE_ABL_EXPO_LINE_RATIO,
|
||||
ISP_IOCTL_CMD_AE_ABL_EXPO_GAIN_THR,
|
||||
ISP_IOCTL_CMD_AE_ABL_BV_THR,
|
||||
ISP_IOCTL_CMD_AE_AOE_BV_THR,
|
||||
ISP_IOCTL_CMD_AE_HIST_PIXEL_THR,
|
||||
ISP_IOCTL_CMD_AE_STG_PARAM,
|
||||
ISP_IOCTL_CMD_AE_EV_OFFSET_LUT,
|
||||
ISP_IOCTL_CMD_AE_EV_OFFSET_TYPE,
|
||||
ISP_IOCTL_CMD_AE_CROP_RANGE,
|
||||
ISP_IOCTL_CMD_HIST_CROP_RANGE,
|
||||
ISP_IOCTL_CMD_CCM_ARRAY,
|
||||
ISP_IOCTL_CMD_BLC_PARAM,
|
||||
ISP_IOCTL_CMD_MD_WINDOW_PARAM,
|
||||
ISP_IOCTL_CMD_MD_DETECT_PARAM,
|
||||
ISP_IOCTL_CMD_CSC_PARAM,
|
||||
ISP_IOCTL_CMD_DPC_PARAM,
|
||||
ISP_IOCTL_CMD_CE_YUV_RANGE,
|
||||
ISP_IOCTL_CMD_CE_LUMA,
|
||||
ISP_IOCTL_CMD_CE_SATURATION,
|
||||
ISP_IOCTL_CMD_CE_CONTRAST,
|
||||
ISP_IOCTL_CMD_CE_HUE,
|
||||
ISP_IOCTL_CMD_CE_OFFSET_PARAM,
|
||||
ISP_IOCTL_CMD_CE_ADJ_BY_BV_PARAM,
|
||||
ISP_IOCTL_CMD_SHARP_PARAM,
|
||||
ISP_IOCTL_CMD_RAWNR_MAP,
|
||||
ISP_IOCTL_CMD_YUVNR_MAP,
|
||||
ISP_IOCTL_CMD_CSUPP_MAP,
|
||||
ISP_IOCTL_CMD_Y_GAMMA_TUNNING,
|
||||
ISP_IOCTL_CMD_RGB_GAMMA_TUNNING,
|
||||
ISP_IOCTL_CMD_LSC_TUNNING,
|
||||
ISP_IOCTL_CMD_GET_Y_GAMMA,
|
||||
ISP_IOCTL_CMD_GET_RGB_GAMMA,
|
||||
ISP_IOCTL_CMD_GET_LSC,
|
||||
ISP_IOCTL_CMD_GIC_PARAM,
|
||||
ISP_IOCTL_CMD_LUMA_CA_PARAM,
|
||||
ISP_IOCTL_CMD_3DNR_ENABLE,
|
||||
ISP_IOCTL_CMD_LHS_MAP,
|
||||
ISP_IOCTL_CMD_GET_SENSOR_RAW,
|
||||
ISP_IOCTL_CMD_DUMP_SRAM_PARAM,
|
||||
ISP_IOCTL_CMD_DUMP_REG_PARAM,
|
||||
ISP_IOCTL_CMD_CONFIG_SRAM_PARAM,
|
||||
ISP_IOCTL_CMD_FUNC_ENABLE,
|
||||
ISP_IOCTL_CMD_WDR_EN,
|
||||
ISP_IOCTL_CMD_WDR_NOISE_FLOOR,
|
||||
ISP_IOCTL_CMD_WDR_TUNNING,
|
||||
ISP_IOCTL_CMD_YUV_RANGE,
|
||||
ISP_IOCTL_CMD_CE_ADJ_BY_BV,
|
||||
ISP_IOCTL_CMD_GAMMA_BY_BV_PARAM,
|
||||
ISP_IOCTL_CMD_GAMMA_BY_BV_ENABLE,
|
||||
ISP_IOCTL_CMD_FPS_OPT,
|
||||
ISP_IOCTL_CMD_GET_AWB_YCBCR,
|
||||
ISP_IOCTL_CMD_GET_AWB_GAIN,
|
||||
ISP_IOCTL_CMD_GET_AE_EXPOSURE_LINE,
|
||||
ISP_IOCTL_CMD_GET_AE_EXPOSURE_GAIN,
|
||||
ISP_IOCTL_CMD_GET_AE_TARGET,
|
||||
ISP_IOCTL_CMD_GET_AE_LUMA_AVG,
|
||||
ISP_IOCTL_CMD_GET_SENSOR_YGAMMA,
|
||||
ISP_IOCTL_CMD_DYN_YGAMMA_OPT,
|
||||
ISP_IOCTL_CMD_SENSOR_DEINIT,
|
||||
ISP_IOCTL_CMD_GET_AWB_RGB,
|
||||
ISP_IOCTL_CMD_GET_ISP_IRCUT_STAT,
|
||||
};
|
||||
|
||||
enum isp_module_clk {
|
||||
ISP_MODULE_CLK_320M = 1,
|
||||
ISP_MODULE_CLK_240M,
|
||||
ISP_MODULE_CLK_160M,
|
||||
ISP_MODULE_CLK_120M,
|
||||
ISP_MODULE_CLK_080M,
|
||||
ISP_MODULE_CLK_060M,
|
||||
};
|
||||
|
||||
enum isp_ioctl_ret_type {
|
||||
RET_TYPE_SUCC,
|
||||
RET_TYPE_INVALID_VALUE,//invalid_value,
|
||||
RET_TYPE_
|
||||
};
|
||||
|
||||
enum isp_ev_offset {
|
||||
ISP_EV_OFFSET_SUB_6,
|
||||
ISP_EV_OFFSET_SUB_5,
|
||||
ISP_EV_OFFSET_SUB_4,
|
||||
ISP_EV_OFFSET_SUB_3,
|
||||
ISP_EV_OFFSET_SUB_2,
|
||||
ISP_EV_OFFSET_SUB_1,
|
||||
ISP_EV_OFFSET_ADD_0,
|
||||
ISP_EV_OFFSET_ADD_1,
|
||||
ISP_EV_OFFSET_ADD_2,
|
||||
ISP_EV_OFFSET_ADD_3,
|
||||
ISP_EV_OFFSET_ADD_4,
|
||||
ISP_EV_OFFSET_ADD_5,
|
||||
ISP_EV_OFFSET_ADD_6,
|
||||
};
|
||||
|
||||
enum isp_awb_mode {
|
||||
ISP_AWB_MODE_AUTO,
|
||||
ISP_AWB_MODE_OVERCAST_SKY,
|
||||
ISP_AWB_MODE_CLOUDY_SKY,
|
||||
ISP_AWB_MODE_SUNNY_SKY,
|
||||
};
|
||||
|
||||
struct isp_awb_mode_param {
|
||||
uint16 awb_mode;
|
||||
uint16 awb_gain_r, awb_gain_gr, awb_gain_gb, awb_gain_b;
|
||||
};
|
||||
|
||||
struct isp_exposure_opt {
|
||||
scatter_data data;
|
||||
uint32 analog_gain : 16,
|
||||
cmd_len : 8,
|
||||
devid_id : 8;
|
||||
uint32 slave_id : 16,
|
||||
reverse_en : 4,
|
||||
mirror_en : 4,
|
||||
img_operation : 8;
|
||||
uint32 exposure_line;
|
||||
uint8 chg_fps_flag;
|
||||
uint16 frame_length;
|
||||
int32 config_flag;
|
||||
};
|
||||
|
||||
struct isp_sensor_opt
|
||||
{
|
||||
scatter_data data;
|
||||
uint32 devid_id : 8,
|
||||
slave_id : 8,
|
||||
reverse_en : 4,
|
||||
mirror_en : 4,
|
||||
cmd_len : 8;
|
||||
uint32 curr_length ;
|
||||
uint32 total_length;
|
||||
};
|
||||
|
||||
|
||||
/* User interrupt handle */
|
||||
typedef void (*isp_irq_hdl)(uint32 irq, uint32 irq_data, uint32 param1, uint32 param2);
|
||||
typedef void (*isp_ae_func)(struct isp_exposure_opt *param);
|
||||
typedef void (*sensor_img_opt)(struct isp_sensor_opt *p_opt);
|
||||
typedef void (*sensor_fps_opt)(struct isp_sensor_opt *p_opt);
|
||||
|
||||
/* ISP api for user */
|
||||
struct isp_device {
|
||||
struct dev_obj dev;
|
||||
};
|
||||
|
||||
struct isp_hal_ops{
|
||||
struct devobj_ops ops;
|
||||
int32(*open)(struct isp_device *isp, enum isp_module_clk clk_type, enum isp_input_fifo fifo_type);
|
||||
int32(*close)(struct isp_device *isp);
|
||||
int32(*ioctl)(struct isp_device *isp, uint32 cmd, uint32 param1, uint32 param2);
|
||||
int32(*request_irq)(struct isp_device *isp, uint32 irq_flag, isp_irq_hdl irqhdl, uint32 irq_data);
|
||||
int32(*release_irq)(struct isp_device *isp, uint32 irq_flag);
|
||||
int32(*calculate)(struct isp_device *isp, struct isp_exposure_opt **cfg);
|
||||
};
|
||||
|
||||
|
||||
int32 isp_open(struct isp_device *isp, enum isp_module_clk clk_type, enum isp_input_fifo fifo_type);
|
||||
int32 isp_close(struct isp_device *isp);
|
||||
int32 isp_ioctl(struct isp_device *isp, uint32 cmd, uint32 param1, uint32 param2);
|
||||
int32 isp_calculate(struct isp_device *isp, struct isp_exposure_opt **p_cfg);
|
||||
int32 isp_request_irq(struct isp_device *isp, uint32 irq_flag, isp_irq_hdl irqhdl, uint32 irq_data);
|
||||
int32 isp_release_irq(struct isp_device *isp, uint32 irq_flag);
|
||||
int32 isp_get_status(struct isp_device *isp);
|
||||
int32 isp_y_gamma_init(struct isp_device *isp, uint32 y_gamma_addr);
|
||||
int32 isp_rgb_gamma_init(struct isp_device *isp, uint32 rgb_gamma_addr);
|
||||
int32 isp_clk_divide_init(struct isp_device *isp, uint32 clk_type);
|
||||
int32 isp_fifo_init(struct isp_device *isp, uint32 fifo_type);
|
||||
int32 isp_sensor_init(struct isp_device *isp, enum sensor_type type, enum isp_input_dat_src sensor_src, uint32 sensor_config);
|
||||
int32 isp_crop_input_size(struct isp_device *isp, uint32 start_v, uint32 start_h, uint32 end_v, uint32 end_h, enum sensor_type type);
|
||||
int32 isp_crop_output_size(struct isp_device *isp, uint32 start_v, uint32 start_h, uint32 end_v, uint32 end_h, enum sensor_type type);
|
||||
int32 isp_sensor_iic_devid_init(struct isp_device *isp, uint32 devid_id, enum sensor_type type);
|
||||
int32 isp_sensor_iic_cmd_init(struct isp_device *isp, uint32 cmd_id, enum sensor_type type);
|
||||
int32 isp_sensor_slave_index(struct isp_device *isp);
|
||||
int32 isp_black_white_enable(struct isp_device *isp, uint32 enable, enum sensor_type type);
|
||||
int32 isp_mirror_enable(struct isp_device *isp, uint32 enable, enum sensor_type type);
|
||||
int32 isp_reverse_enable(struct isp_device *isp, uint32 enable, enum sensor_type type);
|
||||
int32 isp_luma_ca_init(struct isp_device *isp, uint32 *addr, uint32 strength_value, enum sensor_type type);
|
||||
|
||||
int32 isp_awb_mannul_mode_map(struct isp_device *isp, uint32 map_addr);
|
||||
int32 isp_awb_mannul_mode_type(struct isp_device *isp, enum isp_awb_mode mannul_type, enum sensor_type type);
|
||||
int32 isp_awb_gain_type(struct isp_device *isp, uint32 gain_type, enum sensor_type type);
|
||||
int32 isp_awb_control_step_config(struct isp_device *isp, uint16 coarse, uint16 fine, enum sensor_type type);
|
||||
int32 isp_awb_control_thr_config(struct isp_device *isp, uint16 coarse_thr, uint16 hi_thr, uint16 lo_thr, uint16 rgb_thr, uint16 yuv_thr, enum sensor_type type);
|
||||
int32 isp_awb_wp_expect_val(struct isp_device *isp, uint32 cb_target, uint32 cr_target, enum sensor_type type);
|
||||
int32 isp_awb_rgb_constraint(struct isp_device *isp, uint32 r_max, uint32 g_max, uint32 b_max, enum sensor_type type);
|
||||
int32 isp_awb_cbcr_constraint(struct isp_device *isp, uint32 cb_min, uint32 cr_min, uint32 sum_val, enum sensor_type type);
|
||||
int32 isp_awb_cbcr_constraintf(struct isp_device *isp, uint32 cb_min, uint32 cr_min, uint32 sum_val, enum sensor_type type);
|
||||
int32 isp_awb_cbcr_constraint_restrain(struct isp_device *isp, uint32 param, enum sensor_type type);
|
||||
int32 isp_awb_wp_constraint(struct isp_device *isp, uint32 wp_min, uint32 wp_max, enum sensor_type type);
|
||||
int32 isp_awb_measure_mode_config(struct isp_device *isp, uint32 mode, enum sensor_type type);
|
||||
int32 isp_awb_auto_config(struct isp_device *isp, uint32 enable, uint32 *gain_buf, enum sensor_type type);
|
||||
int32 isp_awb_fine_constraint_enable(struct isp_device *isp, uint32 enable, enum sensor_type type);
|
||||
int32 isp_awb_coarse_constraint_enable(struct isp_device *isp, uint32 enable, enum sensor_type type);
|
||||
int32 isp_awb_gain_constraint(struct isp_device *isp, uint32 addr, enum sensor_type type);
|
||||
int32 isp_awb_gain_coarse_constraint(struct isp_device *isp, uint32 addr, enum sensor_type type);
|
||||
int32 isp_awb_gain_fine_constraint(struct isp_device *isp, uint32 addr, enum sensor_type type);
|
||||
int32 isp_awb_crop_range(struct isp_device *isp, uint32 start_v, uint32 start_h, uint32 end_v, uint32 end_h, enum sensor_type type);
|
||||
int32 isp_get_awb_ycbcr(struct isp_device *isp, uint32 *arr_ycbcr, enum sensor_type type);
|
||||
int32 isp_get_awb_rb_gain(struct isp_device *isp, uint32 *arr_rbgain, enum sensor_type type);
|
||||
int32 isp_get_awb_rgb(struct isp_device *isp, uint32 *arr_rgb, enum sensor_type type);
|
||||
|
||||
int32 isp_get_isp_ircut_statistics(struct isp_device *isp, ISP_IRCUT_STAT *isp_stat, enum sensor_type type);
|
||||
|
||||
int32 isp_get_current_bv(struct isp_device *isp, uint32 *bv, enum sensor_type type);
|
||||
int32 isp_get_ae_exp_line(struct isp_device *isp, uint32 *line, enum sensor_type type);
|
||||
int32 isp_get_ae_exp_gain(struct isp_device *isp, uint32 *gain, enum sensor_type type);
|
||||
int32 isp_get_ae_target(struct isp_device *isp, uint32 *target, enum sensor_type type);
|
||||
int32 isp_get_ae_luma_avg(struct isp_device *isp, uint32 *luma_avg, enum sensor_type type);
|
||||
|
||||
int32 isp_ae_manul_config(struct isp_device *isp, uint32 target, uint32 analog_gain, uint32 expo_line, enum sensor_type type);
|
||||
int32 isp_ae_row_time(struct isp_device *isp, uint32 row_us, enum sensor_type type);
|
||||
int32 isp_ae_analog_gain(struct isp_device *isp, uint32 max_gain, uint32 min_gain, enum sensor_type type);
|
||||
int32 isp_ae_exposure_line(struct isp_device *isp, uint32 max_line, uint32 min_line, uint32 def_line, enum sensor_type type);
|
||||
int32 isp_ae_interval_config(struct isp_device *isp, uint32 cnt, enum sensor_type type);
|
||||
int32 isp_ae_day_night_bv(struct isp_device *isp, uint32 day_bv, uint32 night_bv, enum sensor_type type);
|
||||
int32 isp_ae_scene_lut(struct isp_device *isp, uint32 addr, enum sensor_type type);
|
||||
int32 isp_ae_lowlight_param(struct isp_device *isp, uint32 addr, enum sensor_type type);
|
||||
int32 isp_ae_frame_max(struct isp_device *isp, uint32 frame_max, uint32 vb, enum sensor_type type);
|
||||
int32 isp_ae_lock_param(struct isp_device *isp, uint32 cnt, uint32 diff, uint32 alpha, enum sensor_type type);
|
||||
int32 isp_ae_reduce_fps(struct isp_device *isp, uint32 enable, enum sensor_type type);
|
||||
int32 isp_ae_lowlight_gain_enable(struct isp_device *isp, uint32 enable, enum sensor_type type);
|
||||
int32 isp_ae_lowlight_gain_high_gain(struct isp_device *isp, uint32 gain, enum sensor_type type);
|
||||
int32 isp_ae_lowlight_gain_low_gain(struct isp_device *isp, uint32 gain, enum sensor_type type);
|
||||
int32 isp_ae_hist_hs_bin_thr(struct isp_device *isp, uint32 hs_bin_thr, enum sensor_type type);
|
||||
|
||||
int32 isp_ae_luma_target_config(struct isp_device *isp, uint32 luma_target, enum sensor_type type);
|
||||
int32 isp_ae_luma_weight_config(struct isp_device *isp, uint32 luma_weight_sum, uint32 *luma_weight, enum sensor_type type);
|
||||
int32 isp_ae_abl_luma_max(struct isp_device *isp, uint32 max, enum sensor_type type);
|
||||
int32 isp_ae_pos_thr(struct isp_device *isp, uint32 dark_thr, enum sensor_type type);
|
||||
int32 isp_ae_hist_thr(struct isp_device *isp, uint32 val1, uint32 val2, enum sensor_type type);
|
||||
int32 isp_ae_aoe_gain(struct isp_device *isp, uint32 val1, uint32 val2, enum sensor_type type);
|
||||
int32 isp_ae_abl_lock(struct isp_device *isp, uint32 diff_ratio, uint32 dark_pos_thr, uint32 bright_pos_thr, enum sensor_type type);
|
||||
int32 isp_ae_brihgt_dark_pixel_ratio(struct isp_device *isp, uint32 bright_low, uint32 bright_high, uint32 dark_low, uint32 dark_high, enum sensor_type type);
|
||||
int32 isp_ae_abl_dark_bright_pos_ratio(struct isp_device *isp, uint32 dark_low, uint32 dark_high, uint32 bright_thr, enum sensor_type type);
|
||||
int32 isp_ae_aoe_dark_bright_pos_ratio(struct isp_device *isp, uint32 dark_thr, uint32 bright_thr, enum sensor_type type);
|
||||
int32 isp_ae_abl_gain_type(struct isp_device *isp, uint32 abl_gain_type, enum sensor_type type);
|
||||
int32 isp_ae_abl_expo_gain_set(struct isp_device *isp, uint32 low, uint32 high, enum sensor_type type);
|
||||
int32 isp_ae_abl_expo_line_ratio(struct isp_device *isp, uint32 low, uint32 high, enum sensor_type type);
|
||||
int32 isp_ae_abl_bv_thr(struct isp_device *isp, uint32 low, uint32 high, enum sensor_type type);
|
||||
int32 isp_ae_aoe_bv_thr(struct isp_device *isp, uint32 low, uint32 high, enum sensor_type type);
|
||||
int32 isp_ae_hist_pixel_thr(struct isp_device *isp, uint32 upper, uint32 upper_hs, uint32 lower, enum sensor_type type);
|
||||
int32 isp_ae_stg_param(struct isp_device *isp, uint32 stg_mode, uint32 ratio_slope, uint32 max_offset, enum sensor_type type);
|
||||
int32 isp_ae_ev_offset_lut(struct isp_device *isp, uint32 lut_addr);
|
||||
int32 isp_ae_ev_offset_type(struct isp_device *isp, enum isp_ev_offset offset_type, enum sensor_type type);
|
||||
int32 isp_ae_crop_range(struct isp_device *isp, uint32 data, enum sensor_type type);
|
||||
int32 isp_hist_crop_range(struct isp_device *isp, uint32 data, enum sensor_type type);
|
||||
|
||||
int32 isp_ccm_config(struct isp_device *isp, uint32 *ccm_array, enum sensor_type type);
|
||||
int32 isp_blc_config(struct isp_device *isp, uint32 *blc_array, enum sensor_type type);
|
||||
int32 isp_md_window_config(struct isp_device *isp, uint32 win_start_h, uint32 win_start_v, uint32 win_end_h, uint32 win_end_v, enum sensor_type type);
|
||||
int32 isp_md_param_config(struct isp_device *isp, uint32 frame_val, uint32 block_val, uint32 frame_cnt, enum sensor_type type);
|
||||
int32 isp_csc_config(struct isp_device *isp, uint32 *config_addr, enum sensor_type type);
|
||||
int32 isp_dpc_config(struct isp_device *isp, uint32 *config_addr, enum sensor_type type);
|
||||
int32 isp_ce_yuv_range(struct isp_device *isp, uint32 range, enum sensor_type type);
|
||||
int32 isp_ce_luma_config(struct isp_device *isp, uint32 luma_val, enum sensor_type type);
|
||||
int32 isp_ce_saturation_config(struct isp_device *isp, uint32 luma_val, enum sensor_type type);
|
||||
int32 isp_ce_contrast_config(struct isp_device *isp, uint32 contrast, enum sensor_type type);
|
||||
int32 isp_ce_hue_config(struct isp_device *isp, uint32 hue, enum sensor_type type);
|
||||
int32 isp_ce_offset_config(struct isp_device *isp, uint32 addr, enum sensor_type type);
|
||||
int32 isp_ce_adj_by_bv_param(struct isp_device *isp, uint32 addr, enum sensor_type type);
|
||||
int32 isp_sharp_param(struct isp_device *isp, uint32 addr, enum sensor_type type);
|
||||
int32 isp_rawnr_map(struct isp_device *isp, uint32 map_num, uint32 map_start, uint32 map_data_addr, enum sensor_type type);
|
||||
int32 isp_yuvnr_map(struct isp_device *isp, uint32 map_num, uint32 map_start, uint32 map_data_addr, enum sensor_type type);
|
||||
int32 isp_csupp_map(struct isp_device *isp, uint32 map_num, uint32 map_start, uint32 map_data_addr, enum sensor_type type);
|
||||
int32 isp_y_gamma_tunning(struct isp_device *isp, uint32 addr, enum sensor_type type);
|
||||
int32 isp_rgb_gamma_tunning(struct isp_device *isp, uint32 addr, enum sensor_type type);
|
||||
int32 isp_lsc_tunning(struct isp_device *isp, uint32 addr, enum sensor_type type);
|
||||
int32 isp_3dnr_enable(struct isp_device *isp, uint32 enable, enum sensor_type type);
|
||||
int32 isp_gic_init(struct isp_device *isp, uint32 param_addr, enum sensor_type type);
|
||||
int32 isp_lhs_map(struct isp_device *isp, uint32 map_num, uint32 map_start, uint32 map_data_addr, enum sensor_type type);
|
||||
int32 isp_sensor_param_config(struct isp_device *isp, uint32 addr);
|
||||
int32 isp_sensor_sram_param_config(struct isp_device *isp, uint32 channel, uint32 addr);
|
||||
int32 isp_sensor_func_enable(struct isp_device *isp, uint32 channel, uint32 data);
|
||||
int32 isp_wdr_en_config(struct isp_device *isp, uint32 wdr_en, enum sensor_type type);
|
||||
int32 isp_wdr_noise_floor_config(struct isp_device *isp, uint32 cfg_noise_floor, uint32 cfg_noise_floor_out, enum sensor_type type);
|
||||
int32 isp_wdr_tunning(struct isp_device *isp, uint32 addr, enum sensor_type type);
|
||||
int32 isp_yuv_range(struct isp_device *isp, enum isp_yuv_range range_type);
|
||||
int32 isp_ce_adj_by_bv_enable(struct isp_device *isp, uint32 enable, enum sensor_type type);
|
||||
int32 isp_gamma_by_bv_enable(struct isp_device *isp, uint32 enable, enum sensor_type type);
|
||||
int32 isp_gamma_by_bv_param(struct isp_device *isp, uint32 data, enum sensor_type type);
|
||||
int32 isp_dyn_gamma_param(struct isp_device *isp, uint32 dyn_gamma_en, uint32 ygamma_opt, enum sensor_type type);
|
||||
int32 isp_sensor_fps_opt(struct isp_device *isp, float fps, enum sensor_type type);
|
||||
int32 isp_sensor_deinit(struct isp_device *isp, enum sensor_type type);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user