hi_isp_bayer_format
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_exit | sensor的回调退出函数指针。 |
| 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_exp | Sensor注册的回调函数结构体。 |
父主题: 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_RGGB | RGGB排列方式。 |
| HI_ISP_BAYER_GRBG | GRGB排列方式。 |
| HI_ISP_BAYER_GBRG | GBRG排列方式。 |
| HI_ISP_BAYER_BGGR | BGGR排列方式。 |
父主题: 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_size | Sensor输出的图像宽高。 宽或高的取值范围:[120, 16384]。 设置sns_size时,需与对应的sensor采集属性值保持一致。 |
| frame_rate | 输入图像帧率,取值范围为(0.00, 65535.00]。 |
| bayer_format | Bayer数据格式。 |
| wdr_mode | WDR模式选择。 |
| sns_mode | 用于进行Sensor初始化序列的选择,在分辨率和帧率相同时,配置不同的sns_mode对应不同的初始化序列;其他情况,sns_mode默认配置为0,可通过sns_size和frame_rate进行初始化序列的选择。 |
父主题: ISP系统控制及3A算法注册
hi_isp_frame_info
说明
定义 ISP 实时信息。
定义
typedef struct {
hi_u32 iso;
hi_u32 exposure_time;
hi_u32 isp_dgain;
hi_u32 again;
hi_u32 dgain;
hi_u32 ratio[3];
hi_u32 isp_nr_strength;
hi_u32 f_number;
hi_u32 sensor_id;
hi_u32 sensor_mode;
hi_u32 hmax_times;
hi_u32 vmax;
hi_u32 vc_num;
hi_u64 fsync_timestamp;
hi_u64 fs_timestamp;
hi_u64 fe_timestamp;
hi_u64 pe_timestamp;
hi_s64 motion_filter[9];
hi_u32 reserved[10];
} hi_isp_frame_info;
成员
| 成员名称 | 描述 |
|---|---|
| iso | 当前sensor模拟增益*sensor数字增益*ISP数字增益*100。仅作PQ调测参考使用。 |
| exposure_time | 曝光时间,单位是微秒(us)。仅作PQ调测参考使用。 |
| isp_dgain | ISP数字增益。仅作PQ调测参考使用。 |
| again | Sensor的模拟增益。仅作PQ调测参考使用。 |
| dgain | Sensor的数字增益。仅作PQ调测参考使用。 |
| ratio | 多帧合成WDR相邻2帧默认曝光比。仅作PQ调测参考使用。 |
| isp_nr_strength | ISP的NR强度。当前未支持,默认值为0。 |
| f_number | 当前使用的镜头的F值。仅作PQ调测参考使用。 |
| sensor_id | 当前使用的sensorID。仅作PQ调测参考使用。 |
| sensor_mode | 当前使用的sensor序列模式。仅作PQ调测参考使用。 |
| hmax_times | 当前使用的sensor对应读出一行的时间,单位是纳秒(ns)。仅作PQ调测参考使用。 |
| vmax | sensor每帧实际生效的总行数,单位是行。仅作PQ调测参考使用。 |
| vc_num | 当前未支持,默认值为0。当前未支持,默认值为0。 |
| fsync_timestamp | 发出fsync曝光同步信号的时间。 |
| fs_timestamp | 收到sensor模组FrameStart信号的时间,仅做参考,会受CPU负载以及调度而存在误差。 |
| fe_timestamp | 收到sensor模组FrameEnd信号的时间,仅做参考,会受CPU负载以及调度而存在误差。 |
| pe_timestamp | ISP处理完成后输出图像的时间,仅做维测参考使用。 |
| motion_filter | 数字防抖的3*3仿射变换矩阵,15bit 小数精度。该值无需用户设置,是开启数字防抖后自动生成的值。 用户不能直接使用该矩阵作为仿射变化矩阵,完成以下步骤后可得到仿射变换矩阵: (1)转换为浮点类型做归一化处理 (2)求m1的逆矩阵,最终得到m2矩阵,m2矩阵可与图像直接进行运算 (3)m2矩阵与输入图像进行相乘可得到校正后的图像 |
| reserved | 预留字段,默认输出为0。 |
父主题: ISP系统控制及3A算法注册
hi_slave_dev
说明
定义从信号设备号。
定义
typedef hi_s32 hi_slave_dev;
父主题: ISP系统控制及3A算法注册
在线提单