3. 系统控制¶
3.1. 功能概述¶
系统控制部分包含了 ISP 公共属性配置,初始化 ISP Firmware、 运行 ISP firmware、 退出 ISP firmware, 设置 ISP 各模块等功能。
3.2. API 参考¶
本文档中接口,如无特殊说明,不支持多进程。
CVI_ISP_MemInit : 初始化 ISP 外部寄存器。
CVI_ISP_Init : 初始化 ISP firmware。
CVI_ISP_Run : 运行 ISP firmware。
CVI_ISP_RunOnce : 运行 ISP firmware 一次。
CVI_ISP_Exit : 退出 ISP firmware。
CVI_ISP_SetPubAttr : 设置 ISP 公共属性。
CVI_ISP_GetPubAttr : 获取 ISP 公共属性。
CVI_ISP_SetFMWState : 设置 ISP firmware 状态。
CVI_ISP_GetFMWState : 获取 ISP firmware 状态。
CVI_ISP_SetModuleControl : 设定 ISP 功能模块的控制。
CVI_ISP_GetModuleControl : 获取 ISP 功能模块的控制。
CVI_ISP_GetVDTimeOut : 获取 ISP 中断信息。
CVI_ISP_SensorRegCallBack : ISP 提供的 sensor 注册的回调接口。
CVI_ISP_SensorUnRegCallBack : ISP 提供的 sensor 反注册的回调接口。
CVI_ISP_AELibRegCallBack : ISP 提供的 AE 库注册的回调接口。
CVI_ISP_AELibUnRegCallBack : ISP 提供的 AE 库反注册的回调接口。
CVI_ISP_AWBLibRegCallBack : ISP 提供的 AWB 库注册的回调接口。
CVI_ISP_AWBLibUnRegCallBack : ISP 提供的 AWB 库反注册的回调接口。
CVI_ISP_SetBindAttr : 设置 ISP 库与 3A 库、 sensor 的绑定关系。
CVI_ISP_GetBindAttr : 获取 ISP 库与 3A 库、 sensor 的绑定关系。
CVI_ISP_SetCtrlParam : 设置 ISP 的控制参数。
CVI_ISP_GetCtrlParam : 获取 ISP 的控制参数。
CVI_ISP_SetModParam : 设置 ISP 模块参数。
CVI_ISP_GetModParam : 获取 ISP 模块参数。
CVI_BIN_SetBinName : 设置PQBIN存放的路径和文件名
CVI_BIN_GetBinName : 获取PQBIN存放的路径和文件名
CVI_BIN_GetBinExtraAttr : 获取bin头数据信息。
CVI_BIN_GetBinTotalLen : 获取bin数据的总长度。
CVI_BIN_ExportBinData : 将参数存入PQBin档。
CVI_BIN_ImportBinData : 从PQBin中解析所有模块的数据。
CVI_BIN_SaveParamToBin : 将参数存入PQBin档。
CVI_BIN_LoadParamFromBin : 从PQBin中解析所有模块的数据。
CVI_ISP_IrAutoRunOnce : 运行红外自动切换功能。
CVI_ISP_SetSmartInfo: 设置智能识别区域信息。
CVI_ISP_GetSmartInfo: 获取智能识别区域信息。
3.2.1. CVI_ISP_MemInit¶
【描述】
初始化 ISP 外部寄存器。
【语法】
CVI_S32 CVI_ISP_MemInit(VI_PIPE ViPipe);
【参数】
参数名称 |
描述 |
---|---|
ViPipe |
ViPipe 号 |
[返回值]
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.so
【注意】
此接口在双系统 SDK 的 linux 侧暂不支持。
【举例】
无。
【相关主题】
3.2.2. CVI_ISP_Init¶
【描述】
初始化 ISP firmware。
【语法】
CVI_S32 CVI_ISP_Init(VI_PIPE ViPipe);
【参数】
参数名称 |
描述 |
---|---|
ViPipe |
ViPipe 号 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
无。
【举例】
无。
【相关主题】
3.2.3. CVI_ISP_Run¶
【描述】
运行 ISP firmware。
【语法】
CVI_S32 CVI_ISP_Run(VI_PIPE ViPipe);
【参数】
参数名称 |
描述 |
---|---|
ViPipe |
ViPipe 号 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
此接口在双系统 SDK 的 linux 侧暂不支持。
【举例】
无。
【相关主题】
无。
3.2.4. CVI_ISP_RunOnce¶
【描述】
运行 ISP firmware 一次。
【语法】
CVI_S32 CVI_ISP_RunOnce(VI_PIPE ViPipe);
【参数】
参数名称 |
描述 |
---|---|
ViPipe |
ViPipe 号 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
此接口在双系统 SDK 的 linux 侧暂不支持。
【举例】
无。
【相关主题】
无。
3.2.5. CVI_ISP_Exit¶
【描述】
退出 ISP firmware。
【语法】
CVI_S32 CVI_ISP_Exit(VI_PIPE ViPipe);
【参数】
参数名称 |
描述 |
---|---|
ViPipe |
ViPipe 号 |
返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
无。
【举例】
无。
【相关主题】
3.2.6. CVI_ISP_SetPubAttr¶
【描述】
设置 ISP 公共属性。
【语法】
CVI_S32 CVI_ISP_SetPubAttr(VI_PIPE ViPipe, const ISP_PUB_ATTR_S *pstPubAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
ViPipe 号 |
输入 |
pstPubAttr |
ISP 公共属性。 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
无。
【举例】
无。
【相关主题】
3.2.7. CVI_ISP_GetPubAttr¶
【描述】
获取 ISP 公共属性。
【语法】
CVI_S32 CVI_ISP_GetPubAttr(VI_PIPE ViPipe, ISP_PUB_ATTR_S *pstPubAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
ViPipe 号 |
输入 |
pstPubAttr |
ISP 公共属性。 |
输出 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
无。
【举例】
无。
【相关主题】
3.2.8. CVI_ISP_SetFMWState¶
【描述】
设置 ISP firmware 状态。
【语法】
CVI_S32 CVI_ISP_SetFMWState(VI_PIPE ViPipe, const ISP_FMW_STATE_E enState);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
ViPipe 号 |
输入 |
enState |
ISP firmware 状态。 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败, 请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
无。
【举例】
无。
【相关主题】
3.2.9. CVI_ISP_GetFMWState¶
【描述】
获取 ISP firmware 状态。
【语法】
CVI_S32 CVI_ISP_GetFMWState(VI_PIPE ViPipe, ISP_FMW_STATE_E *penState);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
ViPipe 号 |
输入 |
enState |
ISP firmware 状态。 |
输出 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
无。
【举例】
无。
【相关主题】
3.2.10. CVI_ISP_SetModuleControl¶
【描述】
设定 ISP 功能模块的控制。
【语法】
CVI_S32 CVI_ISP_SetModuleControl(VI_PIPE ViPipe, const ISP_MODULE_CTRL_U *punModCtrl);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
ViPipe 号 |
输入 |
punModCtrl |
ISP 功能模块的控制 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
此接口在双系统 SDK 的 linux 侧暂不支持。
【举例】
无。
【相关主题】
3.2.11. CVI_ISP_GetModuleControl¶
【描述】
获取 ISP 功能模块的控制。
【语法】
CVI_S32 CVI_ISP_GetModuleControl(VI_PIPE ViPipe, ISP_MODULE_CTRL_U *punModCtrl);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
ViPipe 号 |
输入 |
punModCtrl |
ISP 功能模块的控制。 |
输出 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
此接口在双系统 SDK 的 linux 侧暂不支持。
【举例】
无。
【相关主题】
3.2.12. CVI_ISP_GetVDTimeOut¶
【描述】
获取 ISP 中断信息。
【语法】
CVI_S32 CVI_ISP_GetVDTimeOut(VI_PIPE ViPipe, ISP_VD_TYPE_E_ enIspVDType, CVI_U32 u32MilliSec);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
ViPipe 号 |
输入 |
enIspVDType |
场同步信号。 |
输入/输出 |
u32MilliSec |
超时时间,单位 ms。 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
无。
【举例】
无。
【相关主题】
无。
3.2.13. CVI_ISP_SensorRegCallBack¶
【描述】
ISP 提供的 sensor 注册的回调接口。
【语法】
CVI_S32 CVI_ISP_SensorRegCallBack(VI_PIPE ViPipe, ISP_SNS_ATTR_INFO_S *pstSnsAttrInfo, ISP_SENSOR_REGISTER_S *pstRegister);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
ViPipe 号 |
输入 |
pstSnsAttrInfo |
向 ISP 注册的 Sensor 的属性 |
输入/输出 |
pstRegister |
Sensor 注册结构体指针 |
输入/输出 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
此接口在双系统 SDK 的 linux 侧暂不支持。

图 3.1 图2-1 ISP 库与 sensor 库间的接口¶
【举例】
无。
【相关主题】
3.2.14. CVI_ISP_SensorUnRegCallBack¶
【描述】
ISP 提供的 sensor 反注册的回调接口。
【语法】
CVI_S32 CVI_ISP_SensorUnRegCallBack(VI_PIPE ViPipe, SENSOR_ID SensorId);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
ViPipe 号 |
输入 |
SensorId |
向 ISP 注册的 Sensor 的 Id。 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
此接口在双系统 SDK 的 linux 侧暂不支持。
【举例】
无。
【相关主题】
3.2.15. CVI_ISP_AELibRegCallBack¶
【描述】
ISP 提供的 AE 库注册的回调接口。
【语法】
CVI_S32 CVI_ISP_AELibRegCallBack(VI_PIPE ViPipe, ALG_LIB_S *pstAeLib, ISP_AE_REGISTER_S *pstRegister);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
ViPipe 号 |
输入 |
pstAeLib |
AE 库结构体指针 |
输入 |
pstRegister |
AE 库注册结构体指针 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
此接口在双系统 SDK 的 linux 侧暂不支持。

图 3.2 图2-2 ISP 库与 AE 库间的接口¶
【举例】
无。
【相关主题】
3.2.16. CVI_ISP_AELibUnRegCallBack¶
【描述】
ISP 提供的 AE 库反注册的回调接口。
【语法】
CVI_S32 CVI_ISP_AELibUnRegCallBack(VI_PIPE ViPipe, ALG_LIB_S *pstAeLib);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
ViPipe 号 |
输入 |
pstAeLib |
AE 库结构体指针 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
此接口在双系统 SDK 的 linux 侧暂不支持。
【举例】
无。
【相关主题】
3.2.17. CVI_ISP_AWBLibRegCallBack¶
【描述】
ISP 提供的 AWB 库注册的回调接口。
【语法】
CVI_S32 CVI_ISP_AWBLibRegCallBack(VI_PIPE ViPipe, ALG_LIB_S *pstAwbLib, ISP_AWB_REGISTER_S *pstRegister);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
ViPipe 号 |
输入 |
pstAwbLib |
AWB 库结构体指针 |
输入 |
pstRegister |
AWB 库注册结构体指针 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
此接口在双系统 SDK 的 linux 侧暂不支持。

图 3.3 图2-3 ISP 库与 AWB 库间的接口¶
【举例】
无。
【相关主题】
3.2.18. CVI_ISP_AWBLibUnRegCallBack¶
【描述】
ISP 提供的 AWB 库反注册的回调接口。
【语法】
CVI_S32 CVI_ISP_AWBLibUnRegCallBack(VI_PIPE ViPipe, ALG_LIB_S *pstAwbLib);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
ViPipe 号 |
输入 |
pstAwbLib |
AWB 库结构体指针 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
此接口在双系统 SDK 的 linux 侧暂不支持。

图 3.4 图2-3 ISP 库与 AWB 库间的接口¶
【举例】
无。
【相关主题】
3.2.19. CVI_ISP_SetBindAttr¶
【描述】
设置 ISP 库与 3A 库、 sensor 的绑定关系。
【语法】
CVI_S32 CVI_ISP_SetBindAttr(VI_PIPE ViPipe, const ISP_BIND_ATTR_S *pstBindAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
ViPipe 号 |
输入 |
pstBindAttr |
绑定结构体指针 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
此接口在双系统 SDK 的 linux 侧暂不支持。
【举例】
无。
【相关主题】
3.2.20. CVI_ISP_GetBindAttr¶
【描述】
获取 ISP 库与 3A 库、 sensor 的绑定关系。
【语法】
CVI_S32 CVI_ISP_GetBindAttr(VI_PIPE ViPipe, ISP_BIND_ATTR_S *pstBindAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
ViPipe 号 |
输入 |
pstBindAttr |
绑定结构体指针 |
输出 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
此接口不支持多进程操作。
此接口在双系统 SDK 的 linux 侧暂不支持。
【举例】
无。
【相关主题】
3.2.21. CVI_ISP_SetCtrlParam¶
【描述】
设置 ISP 控制参数。
【语法】
CVI_S32 CVI_ISP_SetCtrlParam(VI_PIPE ViPipe, const ISP_CTRL_PARAM_S *pstIspCtrlParam);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
ViPipe 号 |
输入 |
pstIspCtrlParam |
ISP 控制参数结构体指针 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
无。
【举例】
无。
【相关主题】
3.2.22. CVI_ISP_GetCtrlParam¶
【描述】
获取 ISP 控制参数。
【语法】
CVI_S32 CVI_ISP_GetCtrlParam(VI_PIPE ViPipe, ISP_CTRL_PARAM_S *pstIspCtrlParam);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
ViPipe 号 |
输入 |
pstIspCtrlParam |
ISP 控制参数结构体指针。 |
输出 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
无。
【举例】
无。
【相关主题】
3.2.23. CVI_ISP_SetModParam¶
【描述】
设置 ISP 模块参数。
【语法】
CVI_S32 CVI_ISP_SetModParam(const ISP_MOD_PARAM_S *pstModParam);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
pstIspModParam |
ISP 模块参数结构体指针 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
无。
【举例】
无。
【相关主题】
3.2.24. CVI_ISP_GetModParam¶
【描述】
获取 ISP 模块参数。
【语法】
CVI_S32 CVI_ISP_GetModParam( ISP_MOD_PARAM_S *pstModParam);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
pstIspCtrlParam |
ISP 模块参数结构体指针 |
输出 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_isp.h
库文件:libisp.a
【注意】
无。
【举例】
无。
【相关主题】
3.2.25. CVI_BIN_SetBinName¶
【说明】
详情请参见文档《 图像质量调试工具使用指南 》的3.1.2章节。
3.2.26. CVI_BIN_GetBinName¶
【说明】
详情请参见文档《 图像质量调试工具使用指南 》 的3.1.2章节。
3.2.27. CVI_BIN_GetBinExtraAttr¶
【说明】
详情请参见文档《 图像质量调试工具使用指南 》 的3.1.2章节。
3.2.28. CVI_BIN_GetBinTotalLen¶
【说明】
详情请参见文档《 图像质量调试工具使用指南 》 的3.1.2章节。
3.2.29. CVI_BIN_ExportBinData¶
【说明】
详情请参见文档《 图像质量调试工具使用指南 》 的3.1.2章节。
3.2.30. CVI_BIN_ImportBinData¶
【说明】
详情请参见文档《 图像质量调试工具使用指南 》 的3.1.2章节。
3.2.31. CVI_BIN_SaveParamToBin¶
【说明】
详情请参见文档《 图像质量调试工具使用指南 》 的3.1.2章节。
3.2.32. CVI_BIN_LoadParamFromBin¶
【说明】
详情请参见文档《 图像质量调试工具使用指南 》 的3.1.2章节。
3.2.33. CVI_ISP_IrAutoRunOnce¶
【描述】
运行红外自动切换功能。
【语法】
CVI_S32 CVI_ISP_IrAutoRunOnce(ISP_DEV IspDev, ISP_IR_AUTO_ATTR_S *pstIrAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
IspDev |
ISP 设备号 |
输入 |
pstIrAttr |
红外自动切换属性 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_comm_isp.h, cvi_isp.h
库文件:libisp.so
【注意】
无。
【举例】
ISP_DEV IspDev = 0;
ISP_IR_AUTO_ATTR_S stIrAttr;
stIrAttr.bEnable = 1;
stIrAttr.u32Normal2IrIsoThr = 3200;
stIrAttr.u32Ir2NormalIsoThr = 100;
stIrAttr.u32RGMin = 256;
stIrAttr.u32RGMax = 512;
stIrAttr.u32BGMin = 256;
stIrAttr.u32BGMax = 512;
CVI_ISP_IrAutoRunOnce(IspDev, &stIrAttr);
【相关主题】
无。
3.2.34. CVI_ISP_SetSmartInfo¶
【描述】
设置Deep Learning辨识出的(人脸、人形、物品)坐标给 AE 进行测光。
【语法】
CVI_S32 CVI_ISP_SetSmartInfo(VI_PIPE ViPipe, const ISP_SMART_INFO_S *pstSmartInfo, CVI_U8 TimeOut);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
ISP 设备号 |
输入 |
pstSmartInfo |
AE Deep Learning识别坐标信息结构指针 |
输入 |
TimeOut |
识别坐标信息未更新帧数,超过后恢复正常AE模式 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_ae.h
库文件:libae.a
【注意】
无。
【举例】
//设定人脸在 raw domain坐标位置 (X, Y , W, H) =(0, 0, 100, 100)
//及 frame 的宽/高 1920/1080信息給 AE
//4帧未更新识别结果后恢复正常AE
VI_PIPE ViPipe = 0;
ISP_SMART_INFO_S stSmartInfo;
CVI_ISP_GetSmartInfo(ViPipe, &stSmartInfo);
stSmartInfo.stROI[0].bEnable = 1;
stSmartInfo.stROI[0].bAvailable = 1;
stSmartInfo.stROI[0].u8Num = 1;
stSmartInfo.stROI[0].u16PosX[0] = 0;
stSmartInfo.stROI[0].u16PosY[0] = 0;
stSmartInfo.stROI[0].u16Width[0] = 100;
stSmartInfo.stROI[0].u16Height[0] = 100;
stSmartInfo.stROI[0].u16FrameWidth = 1920;
stSmartInfo.stROI[0].u16FrameHeight = 1080;
CVI_ISP_SetSmartInfo(ViPipe, &stSmartInfo, 4);
【相关主题】
3.2.35. CVI_ISP_GetSmartInfo¶
【描述】
获取Deep Learning辨识出的(人脸、人形、物品)坐标。
【语法】
CVI_S32 CVI_ISP_GetSmartInfo(VI_PIPE ViPipe, ISP_SMART_INFO_S *pstSmartInfo);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
ViPipe |
ISP 设备号 |
输入 |
pstSmartInfo |
AE Deep Learning识别坐标信息结构指针 |
输出 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码。 |
【需求】
头文件:cvi_ae.h
库文件:libae.a
【注意】
无。
【举例】
无。
【相关主题】
3.3. 数据类型¶
本文档中变量,如未明确指定取值范围,则默认是数据类型对应的取值范围。例如CVI_U8 数据类型的变量取值范围为[0, 255]。本文档中变量,如未明确指定数据精度,则默认是 1。
3.3.1. RECT_S¶
【说明】
定义裁剪窗口起始位置和图像宽高
【定义】
typedef struct _RECT_S {
CVI_S32 s32X;
CVI_S32 s32Y;
CVI_U32 u32Width;
CVI_U32 u32Height;
} RECT_S;
【成员】
成员名称 |
描述 |
---|---|
s32X |
水平方向起始位置 |
s32Y |
垂直方向起始位置 |
u32Width |
图像宽度 |
u32Height |
图像高度 |
【注意事项】
无。
【相关数据类型及接口】
无。
3.3.2. SIZE_S¶
【说明】
定义 sensor 输出的宽高。
【定义】
typedef struct _SIZE_S {
CVI_U32 u32Width;
CVI_U32 u32Height;
} SIZE_S;
【成员】
成员名称 |
描述 |
---|---|
u32Width |
Sensor 输出宽度 |
u32Height |
Sensor 输出高度 |
【注意事项】
无。
【相关数据类型及接口】
无。
3.3.3. ISP_BAYER_FORMAT_E¶
【说明】
定义了输入ISP图像的拜尔阵列的格式类型
【定义】
typedef enum _ISP_BAYER_FORMAT_E {
BAYER_BGGR,
BAYER_GBRG,
BAYER_GRBG,
BAYER_RGGB,
//for RGBIR sensor
BAYER_GRGBI = 8,
BAYER_RGBGI,
BAYER_GBGRI,
BAYER_BGRGI,
BAYER_IGRGB,
BAYER_IRGBG,
BAYER_IBGRG,
BAYER_IGBGR,
BAYER_BUTT
} ISP_BAYER_FORMAT_E;
【成员】
成员名称 |
描述 |
---|---|
BAYER_XX |
各种bayer阵列的格式类型,名称标示了pixel以何种方式排列 |
【注意事项】
无。
【相关数据类型及接口】
无。
3.3.4. WDR_MODE_E¶
【说明】
定义了输入ISP运行时sensor的运行方式,
【定义】
typedef enum _WDR_MODE_E {
WDR_MODE_NONE = 0,
WDR_MODE_BUILT_IN,
WDR_MODE_QUDRA,
WDR_MODE_2To1_LINE,
WDR_MODE_2To1_FRAME,
WDR_MODE_2To1_FRAME_FULL_RATE,
WDR_MODE_3To1_LINE,
WDR_MODE_3To1_FRAME,
WDR_MODE_3To1_FRAME_FULL_RATE,
WDR_MODE_4To1_LINE,
WDR_MODE_4To1_FRAME,
WDR_MODE_4To1_FRAME_FULL_RATE,
WDR_MODE_MAX,
} WDR_MODE_E;
【成员】
成员名称 |
描述 |
---|---|
WDR_MODE_NONE |
线性模式。 |
WDR_MODE_BUILT_IN |
Sensor 合成 WDR 模式。 |
WDR_MODE_QUDRA |
Qudra 模式 |
WDR_MODE_2To1_LINE |
2 帧合成行 WDR 模式。 |
WDR_MODE_2To1_FRAME |
2 帧合成帧 WDR 模式。 |
WDR_MODE_2To1_FRAME_FULL_RATE |
2 帧合成帧 WDR 全帧率模式。 |
WDR_MODE_3To1_LINE |
3 帧合成行 WDR 模式。 |
WDR_MODE_3To1_FRAME |
3 帧合成帧 WDR 模式。 |
WDR_MODE_3To1_FRAME_FULL_RATE |
3 帧合成帧 WDR 全帧率模式。 |
WDR_MODE_4To1_LINE |
4 帧合成行 WDR 模式。 |
WDR_MODE_4To1_FRAME |
4 帧合成帧 WDR 模式。 |
WDR_MODE_4To1_FRAME_FULL_RATE |
4 帧合成帧 WDR 全帧率模式。 |
【注意事项】
无。
【相关数据类型及接口】
无。
3.3.5. ISP_PUB_ATTR_S¶
【说明】
定义ISP 公共属性
【定义】
typedef struct _ISP_PUB_ATTR_S {
RECT_S stWndRect;
SIZE_S stSnsSize;
CVI_FLOAT f32FrameRate;
ISP_BAYER_FORMAT_E enBayer;
WDR_MODE_E enWDRMode;
CVI_U8 u8SnsMode;
} ISP_PUB_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
stWndRect |
ISP输出的rect |
stSnsSize |
Sensor的image size |
f32FrameRate |
Sensor的帧率 |
enBayer |
Sensor的Bayer格式 |
enWDRMode |
宽动态模式 |
u8SnsMode |
用于进行 Sensor初始化序列的选择,在分辨率和帧率相同时,配置不同的 u8SnsMode对应不同的初始化序列; 其他情况,u8SnsMode 默认配置为0, 可通过 stSnsSize 和 f32FrameRate 进行初始化序列的选择。 |
【注意事项】
无。
【相关数据类型及接口】
3.3.6. ISP_FMW_STATE_E¶
【说明】
定义 ISP firmware 状态。
【定义】
typedef enum _ISP_FMW_STATE_E {
ISP_FMW_STATE_RUN,
ISP_FMW_STATE_FREEZE,
ISP_FMW_STATE_BUTT
} ISP_FMW_STATE_E;
【成员】
成员名称 |
描述 |
---|---|
ISP_FMW_STATE_RUN |
Firmware正常运行状态 |
ISP_FMW_STATE_FREEZE |
Firmware 冻结状态 |
【注意事项】
无。
【相关数据类型及接口】
3.3.7. ISP_MODULE_CTRL_U¶
【说明】
定义 ISP 功能模块的控制。
【定义】
typedef union _ISP_MODULE_CTRL_U {
CVI_U64 u64Key;
struct {
CVI_U64 bitBypassBlc : 1; /* RW;[0] */
CVI_U64 bitBypassRlsc : 1; /* RW;[1] */
CVI_U64 bitBypassFpn : 1; /* RW;[2] */
CVI_U64 bitBypassDpc : 1; /* RW;[3] */
CVI_U64 bitBypassCrosstalk : 1; /* RW;[4] */
CVI_U64 bitBypassWBGain : 1; /* RW;[5] */
CVI_U64 bitBypassDis : 1; /* RW;[6] */
CVI_U64 bitBypassBnr : 1; /* RW;[7] */
CVI_U64 bitBypassDemosaic : 1; /* RW;[8] */
CVI_U64 bitBypassRbgcac : 1; /* RW;[9] */
CVI_U64 bitBypassMlsc : 1; /* RW;[10] */
CVI_U64 bitBypassCcm : 1; /* RW;[11] */
CVI_U64 bitBypassFusion : 1; /* RW;[12] */
CVI_U64 bitBypassDrc : 1; /* RW;[13] */
CVI_U64 bitBypassGamma : 1; /* RW;[14] */
CVI_U64 bitBypassDehaze : 1; /* RW;[15] */
CVI_U64 bitBypassClut : 1; /* RW;[16] */
CVI_U64 bitBypassCsc : 1; /* RW;[17] */
CVI_U64 bitBypassDci : 1; /* RW;[18] */
CVI_U64 bitBypassCa : 1; /* RW;[19] */
CVI_U64 bitBypassPreyee : 1; /* RW;[20] */
CVI_U64 bitBypassMotion : 1; /* RW;[21] */
CVI_U64 bitBypass3dnr : 1; /* RW;[22] */
CVI_U64 bitBypassYnr : 1; /* RW;[23] */
CVI_U64 bitBypassCnr : 1; /* RW;[24] */
CVI_U64 bitBypassCac : 1; /*RW:[25]*/
CVI_U64 bitBypassCa2 : 1; /*RW:[26]*/
CVI_U64 bitBypassYee : 1; /*RW:[27]*/
CVI_U64 bitBypassYcontrast : 1; /*RW:[28]*/
CVI_U64 bitBypassMono : 1; /*RW:[29]*/
CVI_U64 bitRsv : 34; /* H ; [30:63] */
};
} ISP_MODULE_CTRL_U;
【成员】
成员名称 |
描述 |
---|---|
u64Key |
结构体枚举的整形值 |
bitBypassXXX |
各module功能控制bit |
【注意事项】
无。
【相关数据类型及接口】
3.3.8. ISP_VD_TYPE_E¶
【说明】
定义与ISP的同步讯号
【定义】
typedef enum _ISP_VD_TYPE_E {
ISP_VD_FE_START = 0,
ISP_VD_FE_END,
ISP_VD_BE_END,
ISP_VD_MAX
} ISP_VD_TYPE_E;
【成员】
成员名称 |
描述 |
---|---|
ISP_VD_FE_START |
FE 帧的起始讯号 |
ISP_VD_FE_END |
FE 帧的结束讯号 |
ISP_VD_BE_END |
BE 帧的结束讯号 |
【注意事项】
无。
【相关数据类型及接口】
3.3.9. ISP_SNS_ATTR_INFO_S¶
【说明】
定义 ISP sensor 属性。
【定义】
typedef struct _ISP_SNS_ATTR_INFO_S {
CVI_U32 eSensorId;
} ISP_SNS_ATTR_INFO_S;
【成员】
成员名称 |
描述 |
---|---|
eSensorId |
Sensor ID 号。 |
【注意事项】
无。
【相关数据类型及接口】
3.3.10. ALG_LIB_S¶
【说明】
所用库的信息。
【定义】
typedef struct _ALG_LIB_S {
CVI_S32 s32Id;
CVI_CHAR acLibName[ALG_LIB_NAME_SIZE_MAX];
} ALG_LIB_S;
【成员】
成员名称 |
描述 |
---|---|
s32Id |
算法库实例的 Id。 |
acLibName |
标识算法库名称的字符数组。 |
【注意事项】
无。
【相关数据类型及接口】
3.3.11. ISP_AE_REGISTER_S¶
【说明】
ISP 提供的 AE 库注册的回调接口。
【定义】
typedef struct _ISP_AE_REGISTER_S {
ISP_AE_EXP_FUNC_S stAeExpFunc;
} ISP_AE_REGISTER_S;
【成员】
成员名称 |
描述 |
---|---|
stAeExpFunc |
AE 注册的回调函数结构体。 |
【注意事项】
无。
【相关数据类型及接口】
3.3.12. ISP_AE_EXP_FUNC_S¶
【说明】
定义 AE 回调函数结构体。
【定义】
typedef struct _ISP_AE_EXP_FUNC_S {
CVI_S32 (*pfn_ae_init)(VI_PIPE ViPipe, const ISP_AE_PARAM_S *pstAeParam);
CVI_S32 (*pfn_ae_run)(VI_PIPE ViPipe, const ISP_AE_INFO_S *pstAeInfo, ISP_AE_RESULT_S *pstAeResult, CVI_S32 s32Rsv);
CVI_S32 (*pfn_ae_ctrl)(VI_PIPE ViPipe, CVI_U32 u32Cmd, void *pValue);
CVI_S32 (*pfn_ae_exit)(VI_PIPE ViPipe);
} ISP_AE_EXP_FUNC_S;
【成员】
成员名称 |
描述 |
---|---|
pfn_ae_init |
初始化 AE 的回调函数指针。 |
pfn_ae_run |
运行 AE 的回调函数指针。 |
pfn_ae_ctrl |
控制 AE 内部状态的回调函数指针。 |
pfn_ae_exit |
销毁 AE 的回调函数指针。 |
【注意事项】
调用 CVI_ISP_Init 时将调用pfn_ae_init回调函数,以初始化AE算法库。
调用 CVI_ISP_Run 时将调用pfn_ae_run回调函数,以运行AE算法库,计算得到sensor的曝光时间和增益、ISP 的数字增益。
调用 CVI_ISP_Exit 时将调用pfn_ae_exit回调函数,以销毁AE算法库。
【相关数据类型及接口】
3.3.13. ISP_AE_PARAM_S¶
【说明】
定义 ISP 提供给AE 的初始化参数结构体。
【定义】
typedef struct _ISP_AE_PARAM_S{
SENSOR_ID SensorId;
CVI_U8 u8WDRMode;
CVI_U8 u8HDRMode;
CVI_U16 u16BlackLevel;
CVI_FLOAT f32Fps;
ISP_BAYER_FORMAT_E enBayer;
ISP_STITCH_ATTR_S stStitchAttr;
CVI_S32 s32Rsv;
ISP_3AWIN_CONFIG_S aeLEWinConfig[AE_MAX_NUM];
ISP_3AWIN_CONFIG_S aeSEWinConfig;
} ISP_AE_PARAM_S;
【成员】
成员名称 |
描述 |
---|---|
SensorId |
所注册 Sensor 的id。 |
u8WDRMode |
宽动态模式,ISP向AE提供宽动态模式信息。 |
u8HDRMode |
HDR模式,ISP 向AE 提供HDR模式信息。 |
u16BlackLevel |
黑电平值,12bit精度,ISP 向AE 提供黑电平信息。 |
f32Fps |
帧率,ISP 向AE提供帧率信息。 |
enBayer |
Sensor Bayer Pat tern,包括RGGB、GRBG、GBRG、BGGR四种格式。 |
stStitchAttr |
拼接模式,ISP向AE提供拼接模式信息。 |
aeLEWinConfig |
ISP 向AE 提供WDR长侦的 window 配置信息。 |
aeSEWinConfig |
ISP 向AE 提供WDR短侦的 window 配置信息。 |
【注意事项】
无。
【相关数据类型及接口】
无。
3.3.14. ISP_SMART_INFO_S¶
【说明】
定义ISP 提供给AE的统计信息结构体。
【定义】
typedef struct _ISP_SMART_INFO_S
{
ISP_SMART_ROI_S stROI[SMART_CLASS_MAX];
} ISP_SMART_INFO_S;
【成员】
成员名称 |
描述 |
---|---|
stROI |
人脸识别或人形检测区域信息 |
【注意事项】
当前仅支持人脸模型与人形模型检测结果,stROI下标为0时为人脸检测结果,下标为1时为人形检测结果
AE 会根据提供的人脸在 raw 的位置来找出人脸位置的 AE window , 并使用此 AE window 的亮度来执行 face AE 的测光策略
【相关数据类型及接口】
无。
3.3.15. ISP_AE_INFO_S¶
【说明】
定义ISP提供给AE 的统计信息结构体。
【定义】
typedef struct _ISP_AE_INFO_S {
CVI_U32 u32FrameCnt;
ISP_SMART_ROI_S stSmartInfo;
ISP_FE_AE_STAT_1_S *pstFEAeStat1[AE_MAX_NUM];
ISP_FE_AE_STAT_2_S *pstFEAeStat2[AE_MAX_NUM];
ISP_FE_AE_STAT_3_S *pstFEAeStat3[AE_MAX_NUM];
ISP_FE_AE_STITCH_STAT_3_S *pstFEAeStiStat;
ISP_BE_AE_STAT_1_S *pstBEAeStat1;
ISP_BE_AE_STAT_2_S *pstBEAeStat2;
ISP_BE_AE_STAT_3_S *pstBEAeStat3;
ISP_BE_AE_STITCH_STAT_3_S *pstBEAeStiStat;
ISP_3AWIN_CONFIG_S aeLEWinConfig[AE_MAX_NUM];
ISP_3AWIN_CONFIG_S aeSEWinConfig;
} ISP_AE_INFO_S;
【成员】
成员名称 |
子成员名称 |
描述 |
---|---|---|
u32FrameCnt |
帧的累加计数 |
|
stSmartInfo |
请参考ISP_SMART_INFO_S 接口说明 |
|
pstFEAeStat1 |
u32PixelCount |
统计的像素点总个数。 |
u32PixelWeight |
统计的带权重像素点总个数。 |
|
au3 2HistogramMemArray |
256段直方图的统计信息数组 |
|
pstFEAeStat2 |
u16GlobalAvgR |
全局R 分量平均值 |
u16GlobalAvgGr |
全局Gr分量平均值 |
|
u16GlobalAvgGb |
全局Gb分量平均值 |
|
u16GlobalAvgB |
全局B 分量平均值 |
|
pstFEAeStat3 |
au16ZoneAvg |
分区间R、Gr、Gb、B分量平均值 |
pstFEAeStiStat |
au16ZoneAvg |
拼接模式下拼接后分区间R、Gr、Gb、B分量平均值 |
pstBEAeStat1 |
bStable |
目前不使用 |
pstBEAeStat2 |
bStable |
目前不使用 |
pstBEAeStat3 |
bStable |
目前不使用 |
pstBEAeStiStat |
bStable |
目前不使用 |
aeLEWinConfig |
winWidth |
AE window 寛 |
winHeight |
AE window 高 |
|
winXOffset |
AE window 起始位置水平方向偏移值 |
|
winYOffset |
AE window 起始位置垂直方向偏移值 |
|
winXNum |
AE 水平 方向 window 数 |
|
winYNum |
AE 垂直 方向 window 数 |
【注意事项】
无。
【相关数据类型及接口】
无。
3.3.16. ISP_AE_RESULT_S¶
【说明】
定义AE 库返回给ISP 的配置寄存器结构体。
【定义】
typedef struct _ISP_AE_STAT_RESULT_S {
CVI_U32 u32IntTime[VI_MAX_PIPE_NUM];
CVI_U32 u32IspDgain;
CVI_U32 u32Again;
CVI_U32 u32Dgain;
CVI_U32 u32Iso;
CVI_U8 u8AERunInterval;
CVI_BOOL bPirisValid;
CVI_S32 s32PirisPos;
CVI_U32 u32PirisGain;
ISP_FSWDR_MODE_E enFSWDRMode;
CVI_U32 au32WDRGain[4];
CVI_U32 u32HmaxTimes;
ISP_AE_STAT_ATTR_S stStatAttr;
ISP_DCF_UPDATE_INFO_S stUpdateInfo;
CVI_U32 u32ExpRatio;
CVI_S16 s16CurrentLV;
CVI_U32 u32AvgLuma;
CVI_U8 u8MeterFramePeriod;
CVI_BOOL bStable;
CVI_FLOAT fBvStep;
CVI_U32 u32BlcIso;
CVI_U32 u32IspDgainSF;
CVI_U32 u32AgainSF;
CVI_U32 u32DgainSF;
CVI_U32 u32IsoSF;
CVI_U32 u32BlcIsoSF;
CVI_FLOAT fEvRatio[2];
} ISP_AE_RESULT_S;
【成员】
成员名称 |
描述 |
---|---|
u32IntTime |
曝光时间 |
u32IspDgain |
ISP 数字增益, 10 bit 精度 |
u32Again |
Sensor 模拟增益, 10 bit 精度 |
u32Dgain |
Sensor 数字增益, 10 bit 精度 |
u32Iso |
AE 总增益值 , 2 倍时为100 * 2 =200 |
u8AERunInterval |
AE算法运行的间隔 |
bPirisValid |
Piris是否有效的标志 |
s32PirisPos |
Piris 步进电机的位置,取值范围与具体Piris 镜头相关 |
u32PirisGain |
Piris 光圈等效增 益,取值范围与具体Piris镜头相关 |
enFSWDRMode |
WDR 合成模式。 0 表示普通多帧合成WDR模式; 1 表示长帧模式; 2 表示自动长帧模式。 |
au32WDRGain |
兼容参数, 目前不使用 |
u32HmaxTimes |
Se nsor对应读出一行的时间,单位:ns |
stStatAttr |
兼容参数, 目前不使用 |
stUpdateInfo |
用于传递AE 相关DCF信息 |
u32ExpRatio |
WDR 模式时, 长/短侦的曝光比值, 64 为 1倍 |
s16CurrentLV |
AE 目前估算的环境亮度,数值越大表示环境越亮 |
u32AvgLuma |
目前画面的亮度 |
u8MeterFramePeriod |
AE 的曝光生效周期 |
bStable |
当前 AE 收敛状态是否稳定 |
fBvStep |
目前画面的亮度距离目标亮度的步幅 |
u32BlcIso |
长曝对应 BLC参考的总增益值,此增益仅包含sensor 的仿真/数字增益, 不包含ISP数字增益 |
u32IspDgainSF |
WDR 模式, 短侦ISP 数字增益, 10 bit 精度 |
u32AgainSF |
WDR 模式, 短侦Sensor 模拟增益, 10 bit 精度 |
u32DgainSF |
WDR 模式, 短侦Sensor 数字增益, 10 bit 精度 |
u32IsoSF |
WDR 模式, AE 总增益值 |
u32BlcIsoSF |
短曝 BLC 参考的总增益值,此增益仅包含sensor 的仿真/数字增益, 不包含ISP数字增益 |
fEvRatio |
AE 当前侦与前一侦的曝光差异比率 |
【注意事项】
无。
【相关数据类型及接口】
无。
3.3.17. ISP_SENSOR_EXP_FUNC_S¶
【说明】
定义 sensor 回调函数结构体。
【定义】
typedef struct _ISP_SENSOR_EXP_FUNC_S {
CVI_VOID (*pfn_cmos_sensor_init)(VI_PIPE ViPipe);
CVI_VOID (*pfn_cmos_sensor_exit)(VI_PIPE ViPipe);
CVI_VOID (*pfn_cmos_sensor_global_init)(VI_PIPE ViPipe);
CVI_S32 (*pfn_cmos_set_image_mode)(VI_PIPE ViPipe, ISP_CMOS_SENSOR_IMAGE_MODE_S *pstSensorImageMode);
CVI_S32 (*pfn_cmos_set_wdr_mode)(VI_PIPE ViPipe, CVI_U8 u8Mode);
/* the algs get data which is associated with sensor, except 3a */
CVI_S32 (*pfn_cmos_get_isp_default)(VI_PIPE ViPipe, ISP_CMOS_DEFAULT_S *pstDef);
CVI_S32 (*pfn_cmos_get_isp_black_level)(VI_PIPE ViPipe, ISP_CMOS_BLACK_LEVEL_S *pstBlackLevel);
CVI_S32 (*pfn_cmos_get_sns_reg_info)(VI_PIPE ViPipe, ISP_SNS_SYNC_INFO_S *pstSnsRegsInfo);
/* the function of sensor set pixel detect */
//CVI_VOID (*pfn_cmos_set_pixel_detect)(VI_PIPE ViPipe, bool bEnable);
} ISP_SENSOR_EXP_FUNC_S;
【成员】
成员名称 |
描述 |
---|---|
pfn_cmos_sensor_init |
初始化 sensor的回调函数指针。 |
pfn_cmos_sensor_exit |
sensor 的回调退出函数指针。 |
pfn_cmos_sensor_global_init |
初始化全局变量 的回调函数指针。 |
pfn_cmos_set_image_mode |
设置分辨率和帧率切换的回调函数指针。 |
pfn_cmos_set_wdr_mode |
设置 wdr模式的回调函数指针。 |
pfn_cmos_get_isp_default |
获取 ISP 基础算法的初始值的回调函数指针。 |
pfn_cmos_get_isp_black_level |
获取 sensor 的 黑电平值的回调函数指针,支持根据sensor 增益动态调整黑电平值 |
pfn_cmos_get_sns_reg_info |
获取 sensor 寄存器信息的回调函数指针,用于实现内核态配置 AE 信息 |
pfn_cmos_set_pixel_detect |
设置坏点校正开关的回调函数指针 |
【注意事项】
无。
【相关数据类型及接口】
无。
3.3.18. ISP_SENSOR_REGISTER_S¶
【说明】
ISP 提供的 sensor 注册的回调接口。
【定义】
typedef struct bmISP_SENSOR_REGISTER_S {
ISP_SENSOR_EXP_FUNC_S stSnsExp;
} ISP_SENSOR_REGISTER_S;
【成员】
成员名称 |
描述 |
---|---|
stSnsExp |
Sensor 注册的回调函数结构体。 |
【注意事项】
无。
【相关数据类型及接口】
3.3.19. ISP_AWB_EXP_FUNC_S¶
【说明】
定义 AWB 回调函数结构体。
【定义】
typedef struct _ISP_AWB_EXP_FUNC_S {
CVI_S32 (*pfn_awb_init)(VI_PIPE ViPipe, const ISP_AWB_PARAM_S *pstAwbParam);
CVI_S32 (*pfn_awb_run)(VI_PIPE ViPipe, const ISP_AWB_INFO_S *pstAwbInfo, ISP_AWB_RESULT_S *pstAwbResult,CVI_S32 s32Rsv);
CVI_S32 (*pfn_awb_ctrl)(VI_PIPE ViPipe, CVI_U32 u32Cmd, CVI_VOID * pValue);
CVI_S32 (*pfn_awb_exit)(VI_PIPE ViPipe);
} ISP_AWB_EXP_FUNC_S;
【成员】
成员名称 |
描述 |
---|---|
pfn_awb_init |
初始化 AWB 的回调函数指针 |
pfn_awb_run |
运行 AWB 的回调函数指针。 |
pfn_awb_ctrl |
控制 AWB 内部状态的回调函数指针。 |
pfn_awb_exit |
销毁 AWB 的回调函数指针 |
【注意事项】
无。
【相关数据类型及接口】
无。
3.3.20. ISP_AWB_REGISTER_S¶
【说明】
定义 AWB 注册结构体。
【定义】
typedef struct _ISP_AWB_REGISTER_S {
ISP_AWB_EXP_FUNC_S stAwbExpFunc;
} ISP_AWB_REGISTER_S;
【成员】
成员名称 |
描述 |
---|---|
stAwbExpFunc |
AWB注册回调函数的结构体 |
【注意事项】
无。
【相关数据类型及接口】
无。
3.3.21. ISP_AWB_PARAM_S¶
【说明】
定义ISP给AWB初始化参数结构
【定义】
typedef struct _ISP_AWB_PARAM_S {
SENSOR_ID SensorId;
CVI_U8 u8WDRMode;
CVI_U8 u8AWBZoneRow;
CVI_U8 u8AWBZoneCol;
CVI_U8 u8AWBZoneBin;
ISP_STITCH_ATTR_S stStitchAttr;
CVI_U16 u16AWBWidth;
CVI_U16 u16AWBHeight;
CVI_S8 s8Rsv;
} ISP_AWB_PARAM_S;
【成员】
成员名称 |
描述 |
---|---|
SensorId |
向ISP注册的Sensor ID |
u8WDRMode |
宽动态模式 |
u8AWBZoneRow |
AWB统计行数 |
u8AWBZoneCol |
AWB统计列数 |
u8AWBZoneBin |
AWB统计亮度数 |
stStitchAttr |
拼接讯息结构体 |
u16AWBWidth |
AWB算法的图像宽度 |
u16AWBHeight |
AWB算法的图像高度 |
s8Rsv |
保留参数 |
【注意事项】
无。
【相关数据类型及接口】
无。
3.3.22. ISP_AWB_STAT_1_S¶
【说明】
定义AWB统计值讯息结构体
【定义】
typedef struct _ISP_AWB_STAT_1_S {
CVI_U16 u16MeteringAwbAvgR;
CVI_U16 u16MeteringAwbAvgG;
CVI_U16 u16MeteringAwbAvgB;
CVI_U16 u16MeteringAwbCountAll;
} ISP_AWB_STAT_1_S;
【成员】
成员名称 |
描述 |
---|---|
u16MeteringAwbAvgR |
Bayer 域全局统计中白点的R分量 |
u16MeteringAwbAvgG |
Bayer 域全局统计中白点的G分量 |
u16MeteringAwbAvgB |
Bayer 域全局统计中白点的B 分量 |
u16MeteringAwbCountAll |
Bayer 域全局统计中白点的个数 |
【注意事项】
无。
【相关数据类型及接口】
无。
3.3.23. ISP_AWB_STAT_RESULT_S¶
【说明】
定义AWB统计值讯息结构体
【定义】
typedef struct _ISP_AWB_STAT_RESULT_S {
CVI_U16 *pau16ZoneAvgR;
CVI_U16 *pau16ZoneAvgG;
CVI_U16 *pau16ZoneAvgB;
CVI_U16 *pau16ZoneCount;
} ISP_AWB_STAT_RESULT_S;
【成员】
成员名称 |
描述 |
---|---|
pau16ZoneAvgR |
Bayer域分区统计值中白点R分量数组的起始位置 |
pau16ZoneAvgG |
Bayer域分区统计值中白点G分量数组的起始位置 |
pau16ZoneAvgB |
Bayer域分区统计值中白点B分量数组的起始位置 |
pau16ZoneCount |
Bayer域分 区统计值中白点个数数组的起始位置 |
【注意事项】
无。
【相关数据类型及接口】
无。
3.3.24. ISP_AWB_INFO_S¶
【说明】
定义ISP提供给AWB统计值讯息的结构体
【定义】
typedef struct _ISP_AWB_INFO_S {
CVI_U32 u32FrameCnt;
ISP_SMART_ROI_S stSmartInfo;
ISP_AWB_STAT_1_S * pstAwbStat1[ISP_CHANNEL_MAX_NUM];
ISP_AWB_STAT_RESULT_S stAwbStat2[ISP_CHANNEL_MAX_NUM];
CVI_U8 u8AwbGainSwitch;
CVI_U32 au32WDRWBGain[ISP_BAYER_CHN_NUM];
CVI_U32 u32IsoNum;
CVI_S16 s16LVx100;
CVI_FLOAT fBVstep;
}ISP_AWB_INFO_S;
【成员】
成员名称 |
描述 |
---|---|
u32FrameCnt |
帧的累加计数 |
stSmartInfo |
特殊区域的信息(给车牌或是人脸使用),请参考ISP_SMART_INFO_S 接口说明 |
pstAwbStat1 |
AWB统计讯息1 |
stAwbStat2 |
AWB统计讯息2 |
u8AwbGainSwitch |
保留,无作用 |
au32WDRWBGain |
保留,无作用 |
u32IsoNum |
当前画面的ISO增益 |
s16LVx100 |
当前画面的亮度值x100 |
fBVstep |
当前画面AE收敛的差值 |
【注意事项】
无。
【相关数据类型及接口】
无。
3.3.25. ISP_SMART_ROI_S¶
【说明】
定义ISP提供给 AE 人脸识别或人形识别区域统计信息的结构体
【定义】
typedef struct _ISP_SMART_ROI_S {
CVI_BOOL bEnable;
CVI_BOOL bAvailable;
CVI_U8 u8Luma;
CVI_U8 u8Num;
CVI_U16 u16PosX[SMART_MAX_NUM];
CVI_U16 u16PosY[SMART_MAX_NUM];
CVI_U16 u16Width[SMART_MAX_NUM];
CVI_U16 u16Height[SMART_MAX_NUM];
CVI_U16 u16FrameWidth;
CVI_U16 u16FrameHeight;
} ISP_SMART_ROI_S;
【宏】
# define SMART_MAX_NUM (3)
【成员】
成员名称 |
描述 |
---|---|
bEnable |
模型是否使能 |
bAvailable |
模型是否有可用的检测结果 |
u8Luma |
兼容参数,目前不使用 |
u16PosX[SMART_MAX_NUM] |
检测出的人脸位置对应在 raw 上的 X 坐标 |
u16PosY[SMART_MAX_NUM] |
检测出的人脸位置对应在 raw 上的 Y 坐标 |
u16Width[SMART_MAX_NUM] |
检测出的人脸位置对应在 raw 上的 宽 |
u16Height[SMART_MAX_NUM] |
检测出的人脸位置对应在 raw 上的 高 |
u16FrameWidth |
Raw 的 frame 宽 |
u16FrameHeight |
Raw 的 frame 高 |
【注意事项】
当前仅支持人脸模型与人形模型检测结果,stROI下标为0时为人脸检测结果,下标为1时为人形检测结果
AE 会根据提供的人脸在 raw 的位置来找出人脸位置的 AE window , 并使用此 AE window 的亮度来执行 face AE 的测光策略
【相关数据类型及接口】
无。
3.3.26. ISP_AWB_RAW_STAT_ATTR_S¶
【说明】
定义AWB lib返回给ISP的配置缓存器结构体
【定义】
typedef struct _ISP_AWB_RAW_STAT_ATTR_S {
CVI_BOOL bStatCfgUpdate;
CVI_U16 u16MeteringWhiteLevelAwb;
CVI_U16 u16MeteringBlackLevelAwb;
CVI_U16 u16MeteringCrRefMaxAwb;
CVI_U16 u16MeteringCbRefMaxAwb;
CVI_U16 u16MeteringCrRefMinAwb;
CVI_U16 u16MeteringCbRefMinAwb;
} ISP_AWB_RAW_STAT_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
bStatCfgUpdate |
保留,无作用 |
u16MeteringWhiteLevelAwb |
保留,无作用 |
u16MeteringBlackLevelAwb |
保留,无作用 |
u16MeteringCrRefMaxAwb |
保留,无作用 |
u16MeteringCbRefMaxAwb |
保留,无作用 |
u16MeteringCrRefMinAwb |
保留,无作用 |
u16MeteringCbRefMinAwb |
保留,无作用 |
【注意事项】
无。
【相关数据类型及接口】
无。
3.3.27. ISP_AWB_RESULT_S¶
【说明】
定义AWB lib返回给 ISP 配置缓存器的结构体
【定义】
typedef struct _ISP_AWB_RESULT_S {
CVI_U32 au32WhiteBalanceGain[ISP_BAYER_CHN_NUM];
CVI_U16 au16ColorMatrix[CCM_MATRIX_SIZE];
CVI_U32 u32ColorTemp;
CVI_U8 u8Saturation[4];
ISP_AWB_RAW_STAT_ATTR_S stRawStatAttr;
CVI_BOOL bStable;
} ISP_AWB_RESULT_S;
【成员】
成员名称 |
描述 |
---|---|
au32WhiteBalanceGain |
AWB lib 算出来的R,Gr,Gb,B颜色通道的增益 |
au16ColorMatrix |
保留,无作用 |
u32ColorTemp |
现在AWB估算出的色温 |
u8Saturation |
当前饱和度 |
stRawStatAttr |
保留,无作用 |
bStable |
是否收敛 |
【注意事项】
无。
【相关数据类型及接口】
无。
3.3.28. ISP_BIND_ATTR_S¶
【说明】
定义ISP库与Sensor、3A库之间绑定关系的结构体。
【定义】
typedef struct _ISP_BIND_ATTR_S {
CVI_S32 sensorId;
ALG_LIB_S stAeLib;
ALG_LIB_S stAfLib;
ALG_LIB_S stAwbLib;
} ISP_BIND_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
SensorId |
注册Sensor 的 Id。 |
stAeLib |
AE 库结构体。 |
stAwbLib |
AF 库结构体。 |
stAfLib |
AWB 库结构体。 |
【注意事项】
无。
【相关数据类型及接口】
3.3.29. ISP_CTRL_PARAM_S¶
【说明】
定义 ISP 控制参数结构体。
【定义】
typedef struct _ISP_CTRL_PARAM_S {
CVI_U32 u32AEStatIntvl;
CVI_U32 u32AWBStatIntvl;
CVI_U32 u32AFStatIntvl;
CVI_U32 u32ProcParam;
CVI_U32 u32ProcLevel;
CVI_U32 u32UpdatePos;
CVI_U32 u32IntTimeOut;
CVI_U32 u32PwmNumber;
CVI_U32 u32PortIntDelay;
} ISP_CTRL_PARAM_S;
【成员】
成员名称 |
描述 |
---|---|
u32AEStatIntvl |
ISP 3A AE统计信息更新频率,单位为帧 取值范围:(0,0xffffffff] |
u32AWBStatIntvl |
ISP 3A AWB统计信息更新频率,单位为帧 取值范围:(0,0xffffffff] |
u32AFStatIntvl |
ISP 3A AF统计信息更新频率,单位为帧 取值范围:(0,0xffffffff] |
u32ProcParam |
ISP 收集信息的 收集频率,单位为帧,默认值为30,这个值越高,ISP的RISC-V占用率就越低 取值范围:(0,0xffffffff] |
u32ProcLevel |
I SP的proc打印Level,Level为0,proc功能关闭,level为1,精简信息,level为2,较多信息,level为3,非常多信息(会把3A统计值也打印出来) |
u32UpdatePos |
目前cvitek仅支持在帧开始配置sensor寄存器,默认值为0 |
u32IntTimeOut |
表示中断超时的时间(ms)。目前cvitek没有使用 |
u32PwmNumber |
表示 PWM 号。目前cvitek没有使用 |
u32PortIntDelay |
表示 Port 中断延时时间 |
【注意事项】
无。
【相关数据类型及接口】
3.3.30. ISP_MOD_PARAM_S¶
【说明】
定义 ISP 模块参数结构体。
【定义】
typedef struct _ISP_MOD_PARAM_S {
CVI_U32 u32IntBotHalf;
} ISP_MOD_PARAM_S;
【成员】
成员名称 |
描述 |
---|---|
u32IntBotHalf |
表示 ISP 中断处理是否采用下半部机制,默认值为0,目前cvitek仅支持(读统计信息和配置sensor 和 ISP同 步寄存器)在中断服务程序中完成; |
【注意事项】
无。
【相关数据类型及接口】
3.3.31. ISP_IR_AUTO_ATTR_S¶
【说明】
定义红外自动切换属性。
【定义】
typedef struct _ISP_IR_AUTO_ATTR_S
{
CVI_BOOL bEnable;
CVI_U32 u32Normal2IrIsoThr;
CVI_U32 u32Ir2NormalIsoThr;
CVI_U32 u32RGMax;
CVI_U32 u32RGMin;
CVI_U32 u32BGMax;
CVI_U32 u32BGMin;
ISP_IR_STATUS_E enIrStatus;
ISP_IR_SWITCH_STATUS_E enIrSwitch;
} ISP_IR_AUTO_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
bEnable |
红外自动切换使能。 CVI_FALSE:关闭 CVI_TRUE:使能。 |
u32Normal2IrIsoThr |
从普通状态切换到红外状态的ISO阈值。当实际生效的ISO大于此 阈值时,系统需要切换到红外状态。 取值范围:[0, 0xFFFFFFFF]。 |
u32Ir2NormalIsoThr |
从红外状态切换到普通状态的ISO阈值。当实际生效的ISO小于此 阈值时,系统需要切换到普通状态。 取值范围:[0, 0xFFFFFFFF]。 |
u32RGMax |
红外状态下的R/G最大值。实际图像的R/G大于此参数时,系统需要切换到普通状态。4.8格式。 取值范围:[0, 0xFFF]。 |
u32RGMin |
红外状态下的R/G最小值。实际图像的R/G小于此参数时,系统需要切换到普通状态。4.8格式。 取值范围:[0, u32RGMax]。 |
u32BGMax |
红外状态下的B/G最大值。实际图像的B/G大于此参数时,系统需 要切换到 普通状态。4.8格式。 取值范围:[0,0xFFF]。 |
u32BGMin |
红外状态下的B/G最小值。实 际图像的B/G小于此参数时,系统需 要切换到普通状态。4.8格式。 取值范围:[0, u32BGMax]。 |
enIrStatus |
设备当前的红外状态。应配置 为设备实际的红外状态,需要用户保 证状态的正确性。 |
enIrSwitch |
设备的红外切换状态,为只读。 |
【注意事项】
无。
【相关数据类型及接口】
无。