ISP API 开发指南
Revision History
Revision | Date | Author | Description |
---|---|---|---|
1.0 | 2024-8-29 | lizhirong | Initial draft |
SDK API 接口说明
ISP API
本节介绍 ISP 模块 API 使用方法,描述的 API 都是 ISP SDK 面向应用的,分为系统控制 API、图像效果设置 API 和 tuning 相关的 API,详细解释了相关的参数数据结构、错误码和返回值。主要面向 ISP 效果相关的 tuning 和算法工程师,以及图像相关相关的 setting 功能开发的应用工程师。
系统控制 API
系统控制 API 如下:
- ASR_ISP_Construct:构造 ISP pipeline 上下文环境接口。
- ASR_ISP_Destruct:析构 ISP pipeline 上下文环境接口。
- ASR_ISP_GetFwFrameInfoSize():获取 ISP firmware frameinfo 结构体大小接口。
- ASR_ISP_RegSensorCallBack:向 ISP pipeline 注册 sensor 回调函数接口。
- ASR_ISP_UnRegSensorCallBack:从 ISP pipeline 注销 sensor 回调函数接口。
- ASR_ISP_RegAfMotorCallBack:向 ISP pipeline 注册 sensor 马达回调函数接口。
- ASR_ISP_EnableOfflineMode:使能 ISP pipeline 的 Offline 模式接口。
- ASR_ISP_SetPubAttr:设置 ISP pipeline 公共属性接口。
- ASR_ISP_SetTuningParams:设置 ISP pipeline tuning 相关参数接口。
- ASR_ISP_SetChHwPipeID:设置 ISP pipeline channel 工作的真实硬件 pipe ID 接口。
- ASR_ISP_Init:初始化 ISP pipeline。
- ASR_ISP_DeInit:撤销 ISP pipeline 的初始化。
- ASR_ISP_EnablePDAF:使能 ISP pipeline 的 PDAF。
- ASR_ISP_SetFps:设置该 pipeline 上 sensor/ISP 工作的帧率。
- ASR_ISP_SetFrameinfoCallback:设置 ISP pipeline frameinfo 的回调。
- ASR_ISP_QueueFrameinfoBuffer:设置 ISP pipeline frameinfo buffer 的入队列。
- ASR_ISP_FlushFrameinfoBuffer:清除 ISP pipeline 上的 frameinfo buffer。
- ASR_ISP_Streamon:streamon ISP pipeline。
- ASR_ISP_Streamoff:streamoff ISP pipeline。
- ASR_ISP_TriggerRawCapture:触发 ISP pipeline 进行 Raw 拍照流程。
- ASR_ISP_ReInitPreviewChannel:重新初始化预览 channel。
- ASR_ISP_NotifyOnceHDRRawCapture:通知 ISP pipeline 进入一次 HDR Raw 拍照流程。
- ASR_ISP_UpdateNoneZslStreamAeParams:更新 sensor 相关 AE 的参数。
ASR_ISP_Construct
【描述】
构造 ISP pipeline 上下文环境。
【语法】
int ASR_ISP_Construct(uint32_t pipelineID);
【参数】
参数名称 | 描述 | 输入/输出 |
---|---|---|
pipelineID | ISP pipeline 的 ID | 输入 |
【返回值】
参数名称 | 描述 |
---|---|
0 | 成功 |
非 0 | 失败,值为错误码 |
【需求】
- 头文件:spm_cam_isp.h
- 库文 件:libisp.so
【注意】
- 如 2.2.1 所述,输入参数 pipelineID 描述的是个虚拟的 pipeline,对应的是 ISPfirmware,一个 pipelineID 对应一个 firmware。
ASR_ISP_Destruct
【描述】
析构 ISP pipeline 上下文环境。
【语法】
int ASR_ISP_Destruct (uint32_t pipelineID);
【参数】
参数名称 | 描述 | 输入/输出 |
---|---|---|
pipelineID | ISP pipeline 的 ID | 输入 |
【返回值】
参数名称 | 描述 |
---|---|
0 | 成功 |
非 0 | 失败,值为错误码 |
【需求】
- 头文件:spm_cam_isp.h
- 库文件:libisp.so
ASR_ISP_GetFwFrameInfoSize
【描述】
获取 ISP Firmware frameinfo 结构体的大小。
【语法】
int ASR_ISP_GetFwFrameInfoSize ();
【参数】
无。
【返回值】
参数名称 | 描述 |
---|---|
>0 | 结构体大小 |
<0 | 失败,值为错误码 |
【需求】
- 头文件:spm_cam_isp.h
- 库文件:libisp.so
ASR_ISP_RegSensorCallBack
【描述】
向 ISP pipeline 注册 sensor 的回调函数。
【语法】
IntASR_ISP_RegSensorCallBack(uint32_tpipelineID,ISP_SENSOR_ATTR_S *pstSensorInfo, ISP_SENSOR_REGISTER_S *pstRegister);
【参数】
参数名称 | 描述 | 输入/输出 |
---|---|---|
pipelineID | ISP pipeline 的 ID | 输入 |
pstSensorInfo | 注册 sensor 的属性 | 输入 |
pstRegister | 注册 sensor 的回调函数结构体指针 | 输入 |
【返回值】
参数名称 | 描述 |
---|---|
0 | 成功 |
非 0 | 失败,值为错误码 |
【需求】
- 头文件:spm_cam_isp.h、spm_isp_sensor_comm.h
- 库文件:libisp.so、libcam_sensors.so
ASR_ISP_UnRegSensorCallBack
【描述】
向 ISP pipeline 注销 sensor 的回调函数。
【语法】
IntASR_ISP_UnRegSensorCallBack(uint32_tpipelineID,ISP_SENSOR_ATTR_S *pstSensorInfo);
【参数】
参数名称 | 描述 | 输入/输出 |
---|---|---|
pipelineID | ISP pipeline 的 ID | 输入 |
pstSensorInfo | 注册 sensor 的属性 | 输入 |
【返回值】
参数名称 | 描述 |
---|---|
0 | 成功 |
非 0 | 失败,值为错误码 |
【需求】
- 头文件:spm_cam_isp.h、spm_isp_sensor_comm.h
- 库文件:libisp.so
ASR_ISP_RegAfMotorCallBack
【描述】
向 ISP pipeline 注册 sensor 马达的回调函数。
【语法】
IntASR_ISP_RegAfMotorCallBack(uint32_tpipelineID,ISP_AF_MOTOR_REGISTER_S *pstAfRegister);
【参数】
参数名称 | 描述 | 输入/输出 |
---|---|---|
pipelineID | ISP pipeline 的 ID | 输入 |
pstAfRegister | 注册 sensor 马达的回调函数结构体指针 | 输入 |
【返回值】
参数名称 | 描述 |
---|---|
0 | 成功 |
非 0 | 失败,值为错误码 |
【需求】
- 头文件:spm_cam_isp.h、spm_isp_sensor_comm.h
- 库文件:libisp.so
ASR_ISP_EnableOfflineMode
【描述】
操作 ISP pipeline offline 模式接口,使能 offline 模式指 ISP 的输入 stream 来自 DDR 而非 sensor, 由 VI 模块从 DDR 读取数据。
【语法】
IntASR_ISP_EnableOfflineMode(uint32_tpipelineID,uint32_tenable,const ISP_OFFLINE_ATTR_S *pstOfflineAttr);
【参数】
参数名称 | 描述 | 输入/输出 |
---|---|---|
pipelineID | ISP pipeline 的 ID | 输入 |
enable | 使能/关闭 offline 模式 | 输入 |
pstOfflineAttr | 指向 Offline 模式属性结构体得指针 | 输入 |
【返回值】
参数名称 | 描述 |
---|---|
0 | 成功 |
非 0 | 失败,值为错误码 |
【需求】
- 头文件:spm_cam_isp.h、spm_isp_comm.h
- 库文件:libisp.so
【注意】
- 使能 offline 模式时,sensor 以及马达的 callback 不需要注册,即使注册了,ISP 也不会使用。
- 特殊的拍照场景中 offline pipeline 的处理不需要使用该函数。
ASR_ISP_SetPubAttr
【描述】
设置 ISP pipeline 上 channel 的公共属性。
【语法】
int ASR_ISP_SetPubAttr(uint32_t pipelineID, uint32_t channelID, const ISP_PUB_ATTR_S
*pstPubAttr);
【参数】
参数名称 | 描述 | 输入/输出 |
---|---|---|
pipelineID | ISP pipeline ID 号 | 输入 |
channelID | ISP pipeline channel 的 ID | 输入 |
pstPubAttr | ISP pipeline 的公共属性结构体指针 | 输入 |
【返回值】
参数名称 | 描述 |
---|---|
0 | 成功 |
非 0 | 失败,值为错误码 |
【需求】
- 头文件:spm_cam_isp.h、spm_isp_comm.h
- 库文件:libisp.so