3. 系统控制

3.1. 功能概述

系统控制部分包含了 ISP 公共属性配置,初始化 ISP Firmware、 运行 ISP firmware、 退出 ISP firmware, 设置 ISP 各模块等功能。

3.2. API 参考

本文档中接口,如无特殊说明,不支持多进程。

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 侧暂不支持。

_images/系统控制004.png

图 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 侧暂不支持。

_images/image21.png

图 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 侧暂不支持。

_images/image31.png

图 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 侧暂不支持。

_images/image31.png

图 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

设备的红外切换状态,为只读。

【注意事项】

无。

【相关数据类型及接口】

无。