6.4. 数据类型

VPSS 模块相关数据类型定义如下:

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 当前版本暂不支持。

【相关数据类型及接口】

VPSS_CROP_INFO_S

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

对小数部分的处理方式。

【注意事项】

  1. 启用Normalize后的Output为int8, -128 ~ 127

  2. Normalize等效OpenCV中的convertTo()

cv::convertTo(image, CV_8S, factor, -mean);

  1. 根据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才指定不同硬件。

【相关数据类型及接口】

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。

【相关数据类型及接口】