6.4. 数据类型¶
VPSS 模块相关数据类型定义如下:
VPSS_MAX_GRP_NUM:定义 VPSS GROUP 的最大个数。
VPSS_MAX_CHN_NUM:定义 VPSS 通道的最大个数。
VPSS_MAX_PHY_CHN_NUM:定义 VPSS 物理通道的最大个数。
VPSS_MIN_IMAGE_WIDTH:定义 VPSS 图像的的最小宽度。
VPSS_MIN_IMAGE_HEIGHT:定义 VPSS 图像的的最小高度。
VPSS_MAX_IMAGE_WIDTH:定义 VPSS 图像的的最大宽度。
VPSS_MAX_IMAGE_HEIGHT:定义 VPSS 图像的的最大高度
VPSS_MAX_ZOOMIN:定义VPSS物理通道最大放大倍数。
VPSS_MAX_ZOOMOUT:定义 VPSS 物理通道的最大缩小倍数。
VPSS_GRP:定义 VPSS组号。
VPSS_CHN:定义 VPSS 通道号。
VPSS_CROP_COORDINATE_E:定义 CROP起点坐标模式。
VPSS_CROP_INFO_S:定义 CROP功能所需信息。
VPSS_GRP_ATTR_S:定义 VPSS GROUP属性。
VPSS_CHN_ATTR_S:定义 VPSS 物理通道属性。
VPSS_MOD_PARAM_S:通过接口设置模块参数。
VPSS_CHN_BUF_WRAP_S: 定义VPSS Buffer卷绕属性。
6.4.1. VPSS_MAX_GRP_NUM¶
【说明】
定义 VPSS GROUP 的最大个数
【定义】
#define VPSS_MAX_GRP_NUM 16
【注意事项】
无
【相关数据类型及接口】
无
6.4.2. VPSS_MAX_CHN_NUM¶
【说明】
定义 VPSS 通道的最大个数
【定义】
#define VPSS_MAX_CHN_NUM VPSS_MAX_PHY_CHN_NUM
【注意事项】
VPSS 最大信道数为物理信道数
【相关数据类型及接口】
无
6.4.3. VPSS_MAX_PHY_CHN_NUM¶
【说明】
定义 VPSS 物理通道的最大个数
【定义】
cv181x
#define VPSS_MAX_PHY_CHN_NUM 4
cv180x
#define VPSS_MAX_PHY_CHN_NUM 3
【注意事项】
无
【相关数据类型及接口】
无
6.4.4. VPSS_MIN_IMAGE_WIDTH¶
【说明】
定义 VPSS 图像的最小宽度
【定义】
#define VPSS_MIN_IMAGE_WIDTH 32
【注意事项】
无
【相关数据类型及接口】
无
6.4.5. VPSS_MIN_IMAGE_HEIGHT¶
【说明】
定义 VPSS 图像的最小高度
【定义】
#define VPSS_MIN_IMAGE_HEIGHT 32
【注意事项】
无
【相关数据类型及接口】
无
6.4.6. VPSS_MAX_IMAGE_WIDTH¶
【说明】
定义 VPSS 图像的最大宽度
【定义】
#define VPSS_MAX_IMAGE_WIDTH 2880
【注意事项】
无
【相关数据类型及接口】
无
6.4.7. VPSS_MAX_IMAGE_HEIGHT¶
【说明】
定义 VPSS 图像的最大高度
【定义】
#define VPSS_MAX_IMAGE_HEIGHT 2880
【注意事项】
无
【相关数据类型及接口】
无
6.4.8. VPSS_MAX_ZOOMIN¶
【说明】
定义VPSS物理通道最大放大倍数
【定义】
#define VPSS_MAX_ZOOMIN 32
【注意事项】
无
【相关数据类型及接口】
无
6.4.9. VPSS_MAX_ZOOMOUT¶
【说明】
定义 VPSS 物理通道的最大缩小倍数
【定义】
#define VPSS_MAX_ZOOMOUT 32
【注意事项】
无
【相关数据类型及接口】
无
6.4.10. VPSS_GRP¶
【说明】
定义 VPSS 组号。
【定义】
typedef CVI_U32 VPSS_GRP;
【注意事项】
无
【相关数据类型及接口】
无
6.4.11. VPSS_CHN¶
【说明】
定义 VPSS 组的管道号。
【定义】
typedef CVI_U32 VPSS_CHN;
【注意事项】
无
【相关数据类型及接口】
无
6.4.12. VPSS_ROUNDING_E¶
【说明】
定义 Normalize时rounding的模式。
【定义】
typedef enum _VPSS_ROUNDING_E {
VPSS_ROUNDING_TO_EVEN = 0,
VPSS_ROUNDING_AWAY_FROM_ZERO,
VPSS_ROUNDING_TRUNCATE,
VPSS_ROUNDING_MAX,
} VPSS_ROUNDING_E;
【成员】
成员名称 |
描述 |
---|---|
VPSS_ROUNDING_TO_EVEN |
四舍五入,参考下表。 |
VPSS_ROUNDING_AWAY_FROM_ZERO |
四舍五入,参考下表。 |
VPSS_ROUNDING_TRUNCATE |
无条件舍去,参考下表。 |
【注意事项】
TO_EVEN |
AWAY_FROM_ZERO |
TRUNCATE |
|
---|---|---|---|
+1.8 |
+2 |
+2 |
+1 |
+1.5 |
|||
+1.2 |
+1 |
+1 |
|
+0.8 |
0 |
||
+0.5 |
0 |
||
+0.2 |
0 |
||
−0.2 |
|||
−0.5 |
−1 |
||
−0.8 |
−1 |
||
−1.2 |
−1 |
||
−1.5 |
−2 |
−2 |
|
−1.8 |
【相关数据类型及接口】
无
6.4.13. VPSS_CROP_COORDINATE_E¶
【说明】
定义 CROP 起点坐标的模式。
【定义】
typedef enum _VPSS_CROP_COORDINATE_E
{
VPSS_CROP_RATIO_COOR = 0,
VPSS_CROP_ABS_COOR
} VPSS_CROP_COORDINATE_E;
【成员】
成员名称 |
描述 |
---|---|
VPSS_CROP_RATIO_COOR |
相对坐标。 |
VPSS_CROP_ABS_COOR |
绝对坐标。 |
【注意事项】
VPSS_CROP_RATIO_COOR 当前版本暂不支持。
【相关数据类型及接口】
6.4.14. VPSS_NORMALIZE_S¶
【说明】
定义 Normalize功能所需信息。
【定义】
typedef struct _VPSS_NORMALIZE_S {
CVI_BOOL bEnable;
CVI_FLOAT factor[3];
CVI_FLOAT mean[3];
VPSS_ROUNDING_E rounding;
} VPSS_NORMALIZE_S;
【成员】
成员名称 |
描述 |
---|---|
bEnable |
Normalize使能开关。 |
factor |
正规化因子。1/8192 ~ 8191/8192 or 1/4096 ~ 8191/4096 |
mean |
正规化方均根差。 0 ~ 255 |
rounding |
对小数部分的处理方式。 |
【注意事项】
启用Normalize后的Output为int8, -128 ~ 127
Normalize等效OpenCV中的convertTo()
cv::convertTo(image, CV_8S, factor, -mean);
- 根据VPSS CHN的format排列,结果会有所差异。若是PIXEL_FORMAT_RGB_888_PLANAR/PIXEL_FORMAT_RGB_888运作方式如下:(Pixel Value R) * factor[0] – mean[0]在接着做rounding。(Pixel Value G) * factor[1] – mean[1]在接着做rounding。(Pixel Value B) * factor[2] – mean[2]在接着做rounding。若是PIXEL_FORMAT_BGR_888运作方式如下:(Pixel Value B) * factor[0] – mean[0]在接着做rounding。(Pixel Value G) * factor[1] – mean[1]在接着做rounding。(Pixel Value R) * factor[2] – mean[2]在接着做rounding。
【相关数据类型及接口】
6.4.15. VPSS_CROP_INFO_S¶
【说明】
定义 CROP 功能所需信息。
【定义】
typedef struct _VPSS_CROP_INFO_S {
CVI_BOOL bEnable;
VPSS_CROP_COORDINATE_E enCropCoordinate;
RECT_S stCropRect;
} VPSS_CROP_INFO_S;
【成员】
成员名称 |
描述 |
---|---|
bEnable |
CROP 使能开关。 |
enCropCoordinate |
CROP 起始点坐标模式。 |
stCropRect |
CROP 的矩形区域。 |
【注意事项】
无
【相关数据类型及接口】
6.4.16. VPSS_GRP_ATTR_S¶
【说明】
定义 VPSS GROUP 属性。
【定义】
typedef struct _VPSS_GRP_ATTR_S {
CVI_U32 u32MaxW;
CVI_U32 u32MaxH;
PIXEL_FORMAT_E enPixelFormat;
FRAME_RATE_CTRL_S stFrameRate;
CVI_U8 u8VpssDev;
} VPSS_GRP_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
u32MaxW |
输入图像宽度。 |
u32MaxH |
输入图像高度。 |
enPixelFormat |
输入图像像素格式。 |
stFrameRate |
组帧率。 |
u8VpssDev |
可指定此VPSS组要使用哪个硬件工作。 |
【注意事项】
u8VpssDev 需在CVI_SYS_SetVPSSMode()设定为VPSS_MODE_DUAL或VPSS_MODE_RGNEX后,设定0/1才指定不同硬件。
【相关数据类型及接口】
PIXEL_FORMAT_E
6.4.17. VPSS_CHN_ATTR_S¶
【说明】
定义 VPSS 物理通道属性。
【定义】
typedef struct _VPSS_CHN_ATTR_S {
CVI_U32 u32Width;
CVI_U32 u32Height;
VIDEO_FORMAT_E enVideoFormat;
PIXEL_FORMAT_E enPixelFormat;
FRAME_RATE_CTRL_S stFrameRate;
CVI_BOOL bMirror;
CVI_BOOL bFlip;
CVI_U32 u32Depth;
ASPECT_RATIO_S stAspectRatio;
VPSS_NORMALIZE_S stNormalize;
} VPSS_CHN_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
u32Width |
目标图像宽度 |
u32Height |
目标图像高度 |
enVideoFormat |
目标图像视频格式。 |
enPixelFormat |
目标图像像素格式。 |
stFrameRate |
帧率控制信息,当且仅当s32DstFrameRate小于s32SrcFrameRate时按比例控制帧率。 例如,若s32SrcFrameRate为60,s32DstFrameRate为30,则每隔一帧丢一帧。 |
bMirror |
水平镜像使能。 |
bFlip |
垂直翻转使能。 |
u32Depth |
用户获取通道图像的队列长度。 静态属性。 |
stAspectRatio |
幅形比参数。 |
stNormalize |
Normalize以便加速后续TPU的运作。 |
【注意事项】
无
【相关数据类型及接口】
6.4.18. VPSS_MOD_PARAM_S¶
【说明】
通过接口设置模块参数。
【定义】
typedef struct _VPSS_PARAM_MOD_S {
CVI_U32 u32VpssVbSource;
CVI_U32 u32VpssSplitNodeNum;
} VPSS_MOD_PARAM_S;
【成员】
成员名称 |
描述 |
---|---|
u32VpssVbSource |
视频区块池类型。 |
u32VpssSplitNodeNum |
分块节点数量。 |
【注意事项】
该结构体属性目前版本暂未使用
【相关数据类型及接口】
6.4.19. PROC_AMP_E¶
【说明】
定义 VPSS PROCAMP 类别。
【定义】
typedef enum _PROC_AMP_E {
PROC_AMP_BRIGHTNESS = 0,
PROC_AMP_CONTRAST,
PROC_AMP_SATURATION,
PROC_AMP_HUE,
PROC_AMP_MAX,
} PROC_AMP_E;
【成员】
成员名称 |
描述 |
---|---|
PROC_AMP_BRIGHTNESS |
亮度值。 |
PROC_AMP_CONTRAST |
对比值。 |
PROC_AMP_SATURATION |
色调值。 |
PROC_AMP_HUE |
饱和度值。 |
【注意事项】
【相关数据类型及接口】
6.4.20. PROC_AMP_CTRL_S¶
【说明】
定义 VPSS PROCAMP 属性。
【定义】
typedef struct _PROC_AMP_CTRL_S {
CVI_S32 minimum;
CVI_S32 maximum;
CVI_S32 step;
CVI_S32 default_value;
} PROC_AMP_CTRL_S;
【成员】
成员名称 |
描述 |
---|---|
minimum |
此颜色控制功能的最小值。 |
maximum |
此颜色控制功能的最大值。 |
step |
此颜色控制功能的有效调整值。 |
default_value |
此颜色控制功能的默认值。 |
【注意事项】
建议在开始对VPSS ProcAmp操作之前,先获取此些属性,以免操作失败。
【相关数据类型及接口】
6.4.21. VPSS_LDC_ATTR_S¶
【说明】
定义VPSS镜头畸变矫正结构体
【定义】
typedef struct _VPSS_LDC_ATTR_S {
CVI_BOOL bEnable;
LDC_ATTR_S stAttr;
} VPSS_LDC_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
bEnable |
LDC使能。 |
stAttr |
LDC设定属性。 |
【注意事项】
无
【相关数据类型及接口】
LDC_ATTR_S
6.4.22. VPSS_CHN_BUF_WRAP_S¶
【说明】
定义VPSS Buffer卷绕属性
【定义】
typedef struct _VPSS_CHN_BUF_WRAP_S {
CVI_BOOL bEnable;
CVI_U32 u32BufLine; // 64, 128
CVI_U32 u32WrapBufferSize;
} VPSS_CHN_BUF_WRAP_S;
【成员】
成员名称 |
描述 |
---|---|
bEnable |
VPSS 通道Buffer卷绕开关。 |
u32BufLine |
卷绕Buffer行高。 |
u32WrapBufferSize |
卷绕Buffer大小。 |
【注意事项】
u32BufLine需小于输出图像高度。
u32BufLine只有64 / 128 两种大小。
使能卷绕时,u32WrapBufferSize必须大于0,其计算可参考代码函数CVI_VPSS_GetWrapBufferSize。
【相关数据类型及接口】