hi_mpi_isp_get_pub_attr
hi_mpi_isp_set_pub_attr
函数功能
设置ISP公共属性,例如裁剪分辨率、帧率等。
函数原型
hi_s32 hi_mpi_isp_set_pub_attr(hi_vi_pipe vi_pipe, const hi_isp_pub_attr *pub_attr)
约束说明
-
调用本接口前,必须先调用hi_mpi_isp_mem_init接口初始化ISP内部资源。
-
ISP支持运行过程中动态裁剪图像的起始位置。
-
调用本接口后ISP内的处理流程:
ISP firmware判断图像WDR模式、分辨率、帧率是否变化,若都不变则直接返回;否则,ISP firmware会调用通过hi_mpi_isp_sensor_reg_callback接口注册的回调函数pfn_cmos_set_wdr_mode、pfn_cmos_set_image_mode改变Sensor模式;
- 若sensor模式不改变(回调函数返回值-2),判断ISP的裁剪宽高是否变化,若有变化,ISP firmware切换分辨率,并调用通过hi_mpi_isp_sensor_reg_callback接口注册的回调函数pfn_cmos_sensor_init重新配置sensor;若无变化,就不变。
- 若sensor模式改变(回调函数返回值为0),则ISP firmware会调用通过hi_mpi_isp_sensor_reg_callback接口注册的回调函数pfn_cmos_sensor_init重新配置Sensor;
-
用户可以修改回调函数pfn_cmos_set_image_mode的实现来调整sensor模式切换的顺序。如只提供了5M30fps和1080P60fps初始化序列的Sensor,若要运行1080P30fps,可以从5M30fps裁剪得到,也可以从1080P60fps降帧得到, 修改pfn_cmos_set_image_mode函数实现即可。
-
切换线性模式和帧WDR模式时,同样会判断pfn_cmos_set_image_mode的返回值, 因此线性模式和帧WDR模式应该采用不同的 image_mode,才能保证切换成功。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| vi_pipe | 输入 | VI PIPE号。 取值范围:[0, 4)。 |
| pub_attr | 输入 | ISP公共属性。 |
返回值说明
- 0:成功
- 非0:失败,参见ISP返回码。
参考资源
接口调用流程,参见视频数据获取功能。
父主题: ISP系统控制及3A算法注册
hi_mpi_isp_get_pub_attr
函数功能
获取ISP公共属性。
函数原型
hi_s32 hi_mpi_isp_get_pub_attr(hi_vi_pipe vi_pipe, hi_isp_pub_attr *pub_attr)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| vi_pipe | 输入 | VI PIPE号。 取值范围:[0, 4)。 |
| pub_attr | 输出 | ISP公共属性。 |
返回值说明
- 0:成功
- 非0:失败,参见ISP返回码。
父主题: ISP系统控制及3A算法注册
hi_mpi_isp_init
函数功能
初始化ISP firmware。
函数原型
hi_s32 hi_mpi_isp_init(hi_vi_pipe vi_pipe)
约束说明
- 调用本接口前,必须先调用hi_mpi_isp_set_pub_attr接口设置图像公共属性。
- 为确保前一次进程退出前资源已完全清理,推荐先调用hi_mpi_isp_exit接口,再调用本接口初始化ISP firmware。
- 不支持多进程,必须要与hi_mpi_isp_sensor_reg_callback、hi_mpi_isp_run、hi_mpi_isp_exit、hi_mpi_ae_register、 hi_mpi_awb_register接口在同一个进程调用。
- 不支持重复调用本接口。
- 不支持相同vi_pipe时,多线程执行ISP创建和销毁(即多线程同时调用hi_mpi_isp_sensor_reg_callback、hi_mpi_isp_run、hi_mpi_isp_exit、hi_mpi_ae_register、 hi_mpi_awb_register接口)。
- ISP初始化后,需要一帧时间给硬件读取算法系数表。所以调用本接口后一 帧时间内,不能调用hi_mpi_vi_stop_pipe接口停止VI PIPE。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| vi_pipe | 输入 | VI PIPE号。 取值范围:[0, 4)。 |
返回值说明
- 0:成功
- 非0:失败,参见ISP返回码。
参考资源
接口调用流程,参见视频数据获取功能。
父主题: ISP系统控制及3A算法注册
hi_mpi_isp_run
函数功能
运行ISP firmware。
函数原型
hi_s32 hi_mpi_isp_run(hi_vi_pipe vi_pipe)
约束说明
- 调用本接口前,必须先调用hi_mpi_isp_init接口初始化ISP firmware。
- 不支持多进程,必须要与hi_mpi_isp_sensor_reg_callback、hi_mpi_isp_init、hi_mpi_isp_exit、hi_mpi_ae_register、 hi_mpi_awb_register接口在同一个进程调用。
- 该接口是阻塞接口,建议用户采用单独的线程调用本接口。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| vi_pipe | 输入 | PIPE号。 取值范围:[0, 4)。 |
返回值说明
- 0:成功
- 非0:失败,参见ISP返回码。
参考资源
接口调用流程,参见视频数据获取功能。
父主题: ISP系统控制及3A算法注册
hi_mpi_isp_exit
函数功能
退出ISP firmware。
函数原型
hi_s32 hi_mpi_isp_exit(hi_vi_pipe vi_pipe)
约束说明
- 调用hi_mpi_isp_run之后,再调用本接口退出ISP firmware。
- 不支持多进程,必须要与hi_mpi_isp_sensor_reg_callback、hi_mpi_isp_init、hi_mpi_isp_run、hi_mpi_ae_register、 hi_mpi_awb_register接口在同一个进程调用。
- 支持重复调用本接口。
- 不支持相同vi_pipe时,多线程执行ISP创建和销毁(即多线程同时调用hi_mpi_isp_sensor_reg_callback、hi_mpi_isp_run、hi_mpi_isp_exit、hi_mpi_ae_register、 hi_mpi_awb_register接口)。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| vi_pipe | 输入 | PIPE号。 取值范围:[0, 4)。 |
返回值说明
- 0:成功
- 非0:失败,参见ISP返回码。
参考资源
接口调用流程,参见视频数据获取功能。
父主题: ISP系统控制及3A算法注册
hi_mpi_isp_set_sns_slave_attr
函数功能
设置从模式Sensor行场同步信号。
从模式sensor需要其提供行同步信号XHS和场同步信号XVS,在这两个信号的控制下进行曝光与数据读出,这个接口主要配置同步信号发生模块,使其输出sensor要求的行场时序。此接口一般在sensor库里调用。
函数原型
hi_s32 hi_mpi_isp_set_sns_slave_attr(hi_slave_dev slave_dev, const hi_isp_slave_sns_sync* sns_sync)
约束说明
从信号有两组绑定关系,首先pipe 和vsync之间有绑定关系,其次vsync内部还可选择不同的信号源slave,即不同pipe可以选择不同的从信号设备vsync,不同的从信号设备vsync又可以选择不同的信号源slave。
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| slave_dev | 输入 | 从信号设备号。 |
| sns_sync | 输入 | 同步信号配置。 |
返回值说明
- 0:成功
- 非0:失败,参见ISP返回码。
父主题: ISP系统控制及3A算法注册
hi_mpi_isp_get_sns_slave_attr
函数功能
获取从模式sensor行场同步信号。
函数原型
hi_s32 hi_mpi_isp_get_sns_slave_attr(hi_slave_dev slave_dev, hi_isp_slave_sns_sync *sns_sync)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| slave_dev | 输入 | 从信号设备号。 |
| sns_sync | 输出 | 同步信号配置。 |
返回值说明
- 0:成功
- 非0:失败,参见ISP返回码。
父主题: ISP系统控制及3A算法注册
在线提单