跳到主要内容

hi_isp_sensor_register

hi_isp_sns_regs_info

说明

定义sensor的寄存器信息。

定义

typedef struct {
hi_isp_sns_type sns_type;
hi_u32 reg_num;
hi_u8 cfg2_valid_delay_max;
hi_u32 exp_distance[HI_ISP_WDR_MAX_FRAME_NUM - 1]
hi_isp_sns_commbus com_bus;
union {
hi_isp_i2c_data i2c_data[HI_ISP_MAX_SNS_REGS];
hi_isp_ssp_data ssp_data[HI_ISP_MAX_SNS_REGS];
};
struct {
hi_bool update;
hi_u8 delay_frame_num;
hi_u32 slave_vs_time;
hi_u32 slave_bind_dev;
} slv_sync;
hi_bool config;
} hi_isp_sns_regs_info;

成员

成员名称

描述

sns_type

Sensor与ISP的通信接口类型。

reg_num

曝光结果写到sensor时需要配置的寄存器个数,不支持动态修改。

cfg2_valid_delay_max

所有Sensor寄存器从配置到生效延迟的帧数的最大值,单位为帧,用于保证sensor寄存器和ISP寄存器的同步。一般情况下,cmos sensor的曝光时间寄存器的延迟最大,为1~2帧,因此配置一般为1或2。

exp_distance

Sensor在wdr模式下曝光长帧与中帧的行差,中帧与短帧的行差,短帧与短短帧的行差。预留属性,暂不支持。

com_bus

与Sensor绑定的设备号信息

i2c_data

I2C数据参数。

ssp_data

SSP数据参数。

update

数据是否会配置sensor寄存器。

HI_TRUE:数据会配置sensor寄存器;

HI_FALSE:数据不会配置sensor寄存器。

delay_frame_num

sensor寄存器延迟配置的帧数。此变量的目的是保证曝光时间和增益同时生效。

slave_vs_time

XVS信号周期,单位:sensor输入时钟周期。

slave_bind_dev

Slave设备号与vi_pipe绑定关系。

config

Sensor寄存器数据配置完成标志。

  • TD_TRUE:完成配置。
  • TD_FALSE:还未配置。

注意事项

相关数据类型及接口

hi_isp_sensor_exp_func

父主题: ISP系统控制及3A算法注册

hi_isp_sensor_exp_func

说明

定义sensor回调函数结构体。

定义

typedef struct {
hi_void (*pfn_cmos_sensor_init)(hi_vi_pipe vi_pipe);
hi_void (*pfn_cmos_sensor_exit)(hi_vi_pipe vi_pipe);
hi_void (*pfn_cmos_sensor_global_init)(hi_vi_pipe vi_pipe);
hi_s32 (*pfn_cmos_set_image_mode)(hi_vi_pipe vi_pipe, hi_isp_cmos_sensor_image_mode *sensor_image_mode);
hi_s32 (*pfn_cmos_set_wdr_mode)(hi_vi_pipe vi_pipe, hi_u8 mode);
hi_s32 (*pfn_cmos_get_isp_default)(hi_vi_pipe vi_pipe, hi_isp_cmos_default *def);
hi_s32 (*pfn_cmos_get_isp_black_level)(hi_vi_pipe vi_pipe, hi_isp_cmos_black_level *black_level);
hi_s32 (*pfn_cmos_get_sns_reg_info)(hi_vi_pipe vi_pipe, hi_isp_sns_regs_info *sns_regs_info);
hi_void (*pfn_cmos_set_pixel_detect)(hi_vi_pipe vi_pipe, hi_bool enable);
hi_void (*pfn_cmos_notify_event)(hi_vi_pipe vi_pipe, hi_u32 event_id, hi_void *value);
} hi_isp_sensor_exp_func;

成员

成员名称描述
pfn_cmos_sensor_init初始化sensor的回调函数指针。
pfn_cmos_sensor_exitsensor的回调退出函数指针。
pfn_cmos_sensor_global_init初始化全局变量的回调函数指针。
pfn_cmos_set_image_mode设置分辨率和帧率切换的回调函数指针。 返回值0表示sensor模式发生改变,ISP会调用pfn_cmos_sensor_init 重新配置sensor; 返回值-2表示sensor模式没有变化,ISP不会重新配置sensor。
pfn_cmos_set_wdr_mode设置wdr模式的回调函数指针。
pfn_cmos_get_isp_default获取ISP基础算法的初始值的回调函数指针。
pfn_cmos_get_isp_black_level获取sensor的黑电平值的回调函数指针,支持根据sensor增益动态调整黑电平值。若此处动态调整黑电平值,则外部只能通过接口hi_mpi_isp_set_black_level_attr的手动模式设置黑电平。
pfn_cmos_get_sns_reg_info获取sensor寄存器信息的回调函数指针,用于实现内核态配置AE信息。
pfn_cmos_set_pixel_detect设置坏点校正开关的回调函数指针。
pfn_cmos_notify_event通知模组驱动特殊事件,如休眠后唤醒事件,便于模组做部分逻辑处理。
- event_id:必须为0,只支持1个事件,即休眠唤醒事件。
- value:必须为null,预留字段。

注意事项

  • pfn_cmos_sensor_init, pfn_cmos_get_isp_default, pfn_cmos_get_isp_black_level, pfn_cmos_set_pixel_detect 和 pfn_cmos_get_sns_reg_info 必须赋值,其他回调函数指针如果不需要赋值,应置为 NULL。例如有的 sensor 不支持切换分辨率, 那么 pfn_cmos_set_image_mode 需要置为 NULL。
  • 不支持切换AWB增益配置位置。

父主题: ISP系统控制及3A算法注册

hi_isp_sensor_register

说明

定义sensor注册结构体。

定义

typedef struct {
hi_isp_sensor_exp_func sns_exp;
} hi_isp_sensor_register;

成员

成员名称描述
sns_expSensor注册的回调函数结构体。

父主题: ISP系统控制及3A算法注册

hi_isp_bayer_format

说明

定义输入Bayer图像数据格式。

定义

typedef enum {
HI_ISP_BAYER_RGGB = 0,
HI_ISP_BAYER_GRBG = 1,
HI_ISP_BAYER_GBRG = 2,
HI_ISP_BAYER_BGGR = 3,
HI_ISP_BAYER_BUTT
} hi_isp_bayer_format;

成员

成员名称描述
HI_ISP_BAYER_RGGBRGGB排列方式。
HI_ISP_BAYER_GRBGGRGB排列方式。
HI_ISP_BAYER_GBRGGBRG排列方式。
HI_ISP_BAYER_BGGRBGGR排列方式。

父主题: ISP系统控制及3A算法注册

hi_isp_pub_attr

说明

定义 ISP 公共属性。

定义

typedef struct {
hi_rect wnd_rect;
hi_size sns_size;
hi_float frame_rate;
hi_isp_bayer_format bayer_format;
hi_wdr_mode wdr_mode;
hi_u8 sns_mode;
} hi_isp_pub_attr;

成员

成员名称描述
wnd_rect裁剪窗口起始位置和图像宽高,必须设置为与vi pipe属性中的size保持一致,且不能比所绑定的dev属性中的宽高大,如果配置不符,会导致出图异常。
- wnd_rect中设置的水平方向起始位置与图像宽度之和应小于sensor输出的图像宽度。
- wnd_rect中设置的垂直方向起始位置与图像高度之和应小于sensor输出的图像高度,由于无法检测sensor实际输出的宽高,当不满足该条件时会返回不报错。
sns_sizeSensor输出的图像宽高。 宽或高的取值范围:[120, 16384]。 设置sns_size时,需与对应的sensor采集属性值保持一致。
frame_rate输入图像帧率,取值范围为(0.00, 65535.00]。
bayer_formatBayer数据格式。
wdr_modeWDR模式选择。
sns_mode用于进行Sensor初始化序列的选择,在分辨率和帧率相同时,配置不同的sns_mode对应不同的初始化序列;其他情况,sns_mode默认配置为0,可通过sns_size和frame_rate进行初始化序列的选择。

父主题: ISP系统控制及3A算法注册

在线提单