4.4. 数据类型

视频输入相关数据类型定义如下,处理器差异的部分参见 各处理器支持能力


4.4.1. VI_MAX_DEV_NUM

【说明】

定义 VI 设备的最大个数。

【定义】

#define VI_MAX_DEV_NUM 3

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.2. VI_MAX_PHY_PIPE_NUM

【说明】

定义 VI 物理 PIPE 的最大个数。

【定义】

#define VI_MAX_PHY_PIPE_NUM 5

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.3. VI_MAX_VIR_PIPE_NUM

【说明】

定义 VI 虚拟 PIPE 的最大个数。

【定义】

#define VI_MAX_VIR_PIPE_NUM 0

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.4. VI_MAX_PIPE_NUM

【说明】

定义 VI PIPE 的最大个数。

【定义】

#define VI_MAX_PIPE_NUM (VI_MAX_PHY_PIPE_NUM + VI_MAX_VIR_PIPE_NUM)

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.5. VI_MAX_PHY_CHN_NUM

【说明】

定义 VI 物理通道的最大个数。

【定义】

#define VI_MAX_PHY_CHN_NUM 3

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.6. VI_MAX_CHN_NUM

【说明】

定义 VI 物理信道和扩展信道的总个数。

【定义】

#define VI_MAX_CHN_NUM (VI_MAX_PHY_CHN_NUM + VI_MAX_EXT_CHN_NUM)

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.7. VI_DEV_MIN_WIDTH

【说明】

VI 设备捕获图像的最小宽度。

【定义】

#define VI_DEV_MIN_WIDTH 120

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.8. VI_DEV_MIN_HEIGHT

【说明】

VI 设备捕获图像的最小高度。

【定义】

#define VI_DEV_MIN_HEIGHT 120

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.9. VI_DEV_MAX_WIDTH

【说明】

VI 设备捕获图像的最大宽度。

【定义】

#define VI_DEV_MIN_WIDTH 4608

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.10. VI_DEV_MAX_HEIGHT

【说明】

VI 设备捕获图像的最大高度。

【定义】

#define VI_DEV_MAX_HEIGHT 4608

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.11. VI_PIPE_OFFLINE_MIN_WIDTH

【说明】

VI PIPE 离线处理图像的最小宽度。

【定义】

#define VI_PIPE_OFFLINE_MIN_WIDTH 120

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.12. VI_PIPE_OFFLINE_MIN_HEIGHT

【说明】

VI PIPE 离线处理图像的最小高度。

【定义】

#define VI_PIPE_OFFLINE_MIN_HEIGHT 120

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.13. VI_PIPE_OFFLINE_MAX_WIDTH

【说明】

VI PIPE 离线处理图像的最大宽度。

【定义】

#define VI_PIPE_OFFLINE_MAX_WIDTH 2880

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.14. VI_PIPE_OFFLINE_MAX_HEIGHT

【说明】

VI PIPE 离线处理图像的最大高度。

【定义】

#define VI_PIPE_OFFLINE_MAX_HEIGHT 1944

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.15. VI_PIPE_ONLINE_MIN_WIDTH

【说明】

VI PIPE 在线处理图像的最小宽度。

【定义】

#define VI_PIPE_ONLINE_MIN_WIDTH 120

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.16. VI_PIPE_ONLINE_MIN_HEIGHT

【说明】

VI PIPE 在线处理图像的最小高度。

【定义】

#define VI_PIPE_ONLINE_MIN_HEIGHT 120

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.17. VI_PIPE_ONLINE_MAX_WIDTH

【说明】

VI PIPE 在线处理图像的最大宽度。

【定义】

#define VI_PIPE_ONLINE_MAX_WIDTH 2880

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.18. VI_PIPE_ONLINE_MAX_HEIGHT

【说明】

VI PIPE 在线处理图像的最大高度。

【定义】

#define VI_PIPE_ONLINE_MAX_HEIGHT 1944

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.19. VI_PIPE0_MAX_WIDTH

【说明】

VI PIPE0 处理图像的最大宽度。

【定义】

#define VI_PIPE0_MAX_WIDTH 2880

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.20. VI_PIPE0_MAX_HEIGHT

【说明】

VI PIPE0 处理图像的最大高度。

【定义】

#define VI_PIPE0_MAX_HEIGHT 1944

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.21. VI_PIPE1_MAX_WIDTH

【说明】

VI PIPE1 处理图像的最大宽度。

【定义】

#define VI_PIPE1_MAX_WIDTH 2880

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.22. VI_PIPE1_MAX_HEIGHT

【说明】

VI PIPE1 处理图像的最大高度。

【定义】

#define VI_PIPE1_MAX_HEIGHT 1944

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.23. VI_PIPE2_MAX_WIDTH

【说明】

VI PIPE2 处理图像的最大宽度。

【定义】

#define VI_PIPE2_MAX_WIDTH 2880

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.24. VI_PIPE2_MAX_HEIGHT

【说明】

VI PIPE2 处理图像的最大高度。

【定义】

#define VI_PIPE2_MAX_HEIGHT 1944

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.25. VI_PIPE3_MAX_WIDTH

【说明】

VI PIPE3 处理图像的最大宽度。

【定义】

#define VI_PIPE3_MAX_WIDTH 2880

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.26. VI_PIPE3_MAX_HEIGHT

【说明】

VI PIPE3 处理图像的最大高度。

【定义】

#define VI_PIPE3_MAX_HEIGHT 1944

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.27. VI_PIPE4_MAX_WIDTH

【说明】

VI PIPE4 处理图像的最大宽度。

【定义】

#define VI_PIPE4_MAX_WIDTH 1920

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.28. VI_PIPE4_MAX_HEIGHT

【说明】

VI PIPE4 处理图像的最大高度。

【定义】

#define VI_PIPE4_MAX_HEIGHT 1080

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.29. VI_DATA_TYPE_E

【说明】

VI 输入数据类型枚举。

【定义】

typedef enum _VI_DATA_TYPE_E {
   VI_DATA_TYPE_YUV = 0,
   VI_DATA_TYPE_RGB,
   VI_DATA_TYPE_BUTT
} VI_DATA_TYPE_E;

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.30. VI_DEV_ATTR_S

【说明】

定义VI设备的属性。

【定义】

typedef struct _VI_DEV_ATTR_S {
   VI_INTF_MODE_E enIntfMode;
   VI_WORK_MODE_E enWorkMode;
   VI_SCAN_MODE_E enScanMode;
   CVI_S32 as32AdChnId[VI_MAX_ADCHN_NUM];
   VI_YUV_DATA_SEQ_E enDataSeq;
   VI_SYNC_CFG_S stSynCfg;
   VI_DATA_TYPE_E enInputDataType;
   SIZE_S stSize;
   VI_WDR_ATTR_S stWDRAttr;
   BAYER_FORMAT_E enBayerFormat;
   CVI_U32 fbmEnable;
   CVI_U32 chn_num;
   CVI_U32 snrFps;
   CVI_U64 phy_addr;
   CVI_U32 phy_size;
   CVI_BOOL enVcWdrMode;
} VI_DEV_ATTR_S;

【成员】

成员名称

描述

enIntfMode

Sensor接口模式。

enWorkMode

1、2、4 路复合工作模式。

enScanMode

输入扫描模式 (逐行、隔行)。

as32AdChnId[VI_MAX_ADCHN_NUM]

取值范围[-1,3],推荐统一设置为默认值-1,此参数无意义。

enDataSeq

输入数据顺序 (仅支持 yuv格式)。

stSynCfg

同步时序配置,BT.601模式时必须配置,其它模式时无效。

enInputDataType

输入数据类型,Sensor输入一般为 RGB,AD 输入一般为 YUV。

stSize

VI 设备可设置要捕获图像的高宽,捕获图像的最小宽高与最大宽高:

宽度:[VI_DEV_MIN_WIDTH,VI_DEV_MAX_WIDTH]。

高度:[VI_DEV_MIN_HEIGHT,VI_DEV_MAX_HEIGHT]。

stWDRAttr

WDR 属性。

enBayerFormat

设备的bayer format,当inputDataType为RGB必须设置此属性。

fbmEnable

仅ALIOS/DUAL OS支持, frame buffer mode: 1, slice buffer mode: 0.

chn_num

设备的通道数。

snrFps

设备的初始帧率。

phy_addr

仅ALIOS/DUAL OS支持, 若不为0, VI使用用户分配的物理地址,使用前需保证物理地址的合法性.

phy_size

仅ALIOS/DUAL OS支持, 所使用物理地址内存大小.

enVcWdrMode

仅ALIOS/DUAL OS支持, Sensor使用VC WDR mode: 1, 其他: 0.

【注意事项】

  • stSize 中 u32Width 必须等于实际输入图像的宽度,u32Height 必须等于实际输入图像的高度,否则会导致没有图像输出。

【相关数据类型及接口】

无。


4.4.31. VI_DEV_BIND_PIPE_S

【说明】

定义 VI DEV 与 PIPE 的绑定关系。

【定义】

typedef struct _VI_DEV_BIND_PIPE_S {
   CVI_U32 u32Num; /* RW;Range [1,VI_MAX_PIPE_NUM] */
   VI_PIPE PipeId[VI_MAX_PIPE_NUM]; /* RW;Array of pipe ID */
} VI_DEV_BIND_PIPE_S;

【成员】

成员名称

描述

U32Num

该 VI Dev 所绑定的 PIPE数目,取值范围[1, VI_MAX_PIPE_NUM]。

PipeId

该 VI Dev 绑定的 PIPE 号。

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.32. VI_PIPE_ATTR_S

【说明】

定义 VI PIPE 属性。

【定义】

typedef struct _VI_PIPE_ATTR_S {
   VI_PIPE_BYPASS_MODE_E enPipeBypassMode;
   CVI_BOOL bYuvSkip; /* RW;YUV skip enable */
   CVI_BOOL bIspBypass; /* RW;ISP bypass enable */
   CVI_U32 u32MaxW; /* RW;Range[VI_PIPE_MIN_WIDTH,VI_PIPE_MAX_WIDTH];Maximum width */
   CVI_U32 u32MaxH; /* RW;Range[VI_PIPE_MIN_HEIGHT,VI_PIPE_MAX_HEIGHT];Maximum height */
   PIXEL_FORMAT_E enPixFmt; /* RW;Pixel format */
   COMPRESS_MODE_E enCompressMode; /* RW;Compress mode.*/
   DATA_BITWIDTH_E enBitWidth; /* RW;Bit width*/
   CVI_BOOL bNrEn; /* RW;3DNR enable */
   CVI_BOOL bSharpenEn; /* RW;Sharpen enable*/
   FRAME_RATE_CTRL_S stFrameRate; /* RW;Frame rate */
   CVI_BOOL bDiscardProPic;
   CVI_BOOL bYuvBypassPath;
} VI_PIPE_ATTR_S;

【成员】

成员名称

描述

enPipeBypassMode

VI PIPE 的 Bypass 模式。

bYuvSkip

是否关闭下采样和 CSC。

CVI_FALSE:yuv skip 不使能。

CVI_TRUE:yuv skip 使能。

bIspBypass

ISP 是否 bypass。

CVI_FALSE:ISP 正常运行。

CVI_TRUE:ISP bypass,不运行 ISP。

u32MaxW

输入图像宽度。静态属性,创建 PIPE时设定,不可更改。

在线模式 下取值范围:[VI_PIPE_ONLINE_MIN_WIDTH,VI_PIPE_ONLINE_MAX_WIDTH]。

离线模式 下取值范围:[VI_PIPE_OFFLINE_MIN_WIDTH,VI_PIPE_OFFLINE_MAX_WIDTH]。

u32MaxH

输入图像高度。

在线模式下取值范围:[VI_PIPE_ONLINE_MIN_HEIGHT,VI_PIPE_ONLINE_MAX_HEIGHT]。

离线模式下取值范围:[VI_PIPE_OFFLINE_MIN_HEIGHT,VI_PIPE_OFFLINE_MAX_HEIGHT]。

enPixFmt

像素格式。

enCompressMode

数据压缩格式。

enBitWidth

输入图像的 bit 位宽。创建 PIPE时设定,不可更改,仅当像素格式 enPixFmt为 YUV 像素格式时有效。

bNrEn

NR 使能开关。

CVI_FALSE:不使能。

CVI_TRUE:使能。

bSharpenEn

Sharpen 使能开关。

stFrameRate

帧率控制。

bDiscardProPic

是否丢弃长曝光的帧。

bYuvBypassPath

是否YUV直通模式。

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.33. VI_DUMP_TYPE_E

【说明】

枚举 dump 类型。

【定义】

typedef enum _VI_DUMP_TYPE_E {
   VI_DUMP_TYPE_RAW = 0,
   VI_DUMP_TYPE_YUV = 1,
   VI_DUMP_TYPE_IR = 2,
   VI_DUMP_TYPE_BUTT
} VI_DUMP_TYPE_E;

【成员】

成员名称

描述

VI_DUMP_TYPE_RAW

Dump RAW 数据。

VI_DUMP_TYPE_YUV

Dump YUV 数据。

VI_DUMP_TYPE_IR

Dump IR 分量数据。

【注意事项】

  • 不支持Dump IR数据

  • Dump YUV请使用CVI_VI_GetChnFrame

【相关数据类型及接口】

无。


4.4.34. VI_DUMP_ATTR_S

【说明】

定义 PIPE dump 属性。

【定义】

typedef struct _VI_DUMP_ATTR_S {
   CVI_BOOL bEnable; /* RW;Whether dump is enable */
   CVI_U32 u32Depth; /* RW;Range [0,8];Depth */
   VI_DUMP_TYPE_E enDumpType;
} VI_DUMP_ATTR_S;

【成员】

成员名称

描述

bEnable

是否使能 dump。

u32Depth

Dump 数据的队列深度。取值范围:[0, 8]。

enDumpType

Dump 数据类型。

【注意事项】

无。

【相关数据类型及接口】


4.4.35. VI_CHN_ATTR_S

【说明】

定义 VI 通道属性。

【定义】

typedef struct _VI_CHN_ATTR_S {
   SIZE_S stSize; /* RW;Channel out put size */
   PIXEL_FORMAT_E enPixelFormat; /* RW;Pixel format */
   DYNAMIC_RANGE_E enDynamicRange; /* RW;Dynamic Range */
   VIDEO_FORMAT_E enVideoFormat; /* RW;Video format */
   COMPRESS_MODE_E enCompressMode; /* RW;256B Segment compress or no compress. */
   CVI_BOOL bMirror; /* RW;Mirror enable */
   CVI_BOOL bFlip; /* RW;Flip enable */
   CVI_U32 u32Depth; /* RW;Range [0,8];Depth */
   FRAME_RATE_CTRL_S stFrameRate; /* RW;Frame rate */
   CVI_BOOL bLVDSflow;
   CVI_U8   u8TotalChnNum;
} VI_CHN_ATTR_S;

【成员】

成员名称

描述

stSize

目标图像大小。

目标图像的最小宽高与最大宽高:

在线模式下高度 [VI_PHYCHN_ONLINE_MIN_HEIGHT,VI_PHYCHN_ONLINE_MAX_HEIGHT]。

离线模式下高度 [VI_PHYCHN_OFFLINE_MIN_HEIGHT,VI_PHYCHN_OFFLINE_MAX_HEIGHT]。

在线模式下宽度 [VI_PHYCHN_ONLINE_MIN_WIDTH, VI_PHYCHN_ONLINE_MAX_WIDTH]。

离线模式下宽度 [VI_PHYCHN_OFFLINE_MIN_WIDTH,VI_PHYCHN_OFFLINE_MAX_WIDTH]。

enPixelFormat

目标图像像素格式。

enDynamicRange

目标图像动态范围。

enVideoFormat

目标图像视频数据格式。

enCompressMode

目标图像压缩格式。

bMirror

Mirror 使能开关。

CVI_FALSE:不使能。

CVI_TRUE:使能。

bFlip

Flip 使能开关。

CVI_FALSE:不使能。

CVI_TRUE:使能。

u32Depth

用户获取图像的队列深度。

stFrameRate

帧率控制。源帧率取值范围:(0, 240],以及-1。目标帧率取值范围:[-1, 240]。当源帧率为-1时,目标帧率必须为-1(不进行帧率控制),其他情况下,目标帧率不能大于源帧率。

bLVDSflow

是否LVDS模式。

u8TotalChnNum

通道总数量。

【注意事项】

  • 目前VI不支持帧率控制

【相关数据类型及接口】


4.4.36. VI_CROP_INFO_S

【说明】

定义 VI CROP 信息结构体。

【定义】

typedef struct _VI_CROP_INFO_S {
   CVI_BOOL bEnable; /* RW;CROP enable*/
   VI_CROP_COORDINATE_E enCropCoordinate; /* RW;Coordinate mode of the crop start point*/
   RECT_S stCropRect; /* RW;CROP rectangular*/
} VI_CROP_INFO_S;

【成员】

成员名称

描述

bEnable

CROP 使能开关。

enCropCoordinate

CROP 起点坐标模式。

stCropRect

CROP 的矩形区域。

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.37. VI_DEV_TIMING_ATTR_S

【说明】

用户自定义时序属性。

【定义】

typedef struct _VI_DEV_TIMING_ATTR_S {
   CVI_BOOL bEnable; /* RW;Whether enable VI generate timing */
   CVI_S32 s32FrmRate; /* RW;Generate timing Frame rate*/
} VI_DEV_TIMING_ATTR_S;

【成员】

成员名称

描述

bEnable

用户自定义时序使能开关。

s32FrmRate

用户自定义时序的帧率。

【注意事项】

  • 当使能用户自定义时序后,若用户设置的帧率超过设备最大帧率时,系统自动以设备最大帧率为有效值。

【相关数据类型及接口】


4.4.38. VI_PIPE_STATUS_S

【说明】

定义 VI PIPE 的状态信息。

【定义】

typedef struct _VI_PIPE_STATUS_S {
   CVI_BOOL bEnable; /* RO;Whether this pipe is enabled */
   CVI_U32 u32IntCnt; /* RO;The video frame interrupt count */
   CVI_U32 u32FrameRate; /* RO;Current frame rate */
   CVI_U32 u32LostFrame; /* RO;Lost frame count */
   CVI_U32 u32VbFail; /* RO;Video buffer malloc failure */
   SIZE_S stSize; /* RO;Current pipe output size */
} VI_PIPE_STATUS_S;

【成员】

成员名称

描述

bEnable

当前 PIPE 是否使能。

u32IntCnt

中断计数。

u32FrameRate

VI PIPE 的实时帧率。

u32LostFrame

丢帧计数。

u32VbFail

VB 申请失败计数。

stSize

PIPE 当前图像大小。

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.39. VI_CHN_STATUS_S

【说明】

定义 VI 通道的状态信息。

【定义】

typedef struct _VI_CHN_STATUS_S {
   CVI_BOOL bEnable; /* RO;Whether this channel is enabled */
   CVI_U32 u32FrameRate; /* RO;current frame rate */
   CVI_U64 u64PrevTime; // latest time (us)
   CVI_U32 u32FrameNum;  //The number of Frame in one second
   CVI_U32 u32LostFrame; /* RO;Lost frame count */
   CVI_U32 u32VbFail; /* RO;Video buffer malloc failure */
   CVI_U32 u32IntCnt; /* RO;Receive frame int count */
   CVI_U32 u32RecvPic; /* RO;Receive frame count */
   CVI_U32 u32TotalMemByte; /* RO;VI buffer malloc failure */
   SIZE_S stSize; /* RO;chn output size */
} VI_CHN_STATUS_S;

【成员】

成员名称

描述

bEnable

当前 PIPE 是否使能。

u32FrameRate

Chn 的实时帧率。

u64PrevTime

记录前次时间,用于计算u32FrameNum。

u32FrameNum

一秒时间内的帧数。

u32LostFrame

丢帧计数。

u32VbFail

VB 申请失败计数。

u32IntCnt

Chn接收的帧数。

u32RecvPic

Chn接收的帧数。

u32TotalMemByte

暂无使用。

stSize

Chn 当前图像大小。

【注意事项】

无。

【相关数据类型及接口】

无。


4.4.40. VI_PIPE_FRAME_SOURCE_E

【说明】

定义 VI PIPE 数据的来源类型。

【定义】

typedef enum _VI_PIPE_FRAME_SOURCE_E
{
   VI_PIPE_FRAME_SOURCE_DEV = 0, /* RW;Source from dev */
   VI_PIPE_FRAME_SOURCE_USER_FE, /* RW;User send to FE */
   VI_PIPE_FRAME_SOURCE_USER_BE, /* RW;User send to BE */
   VI_PIPE_FRAME_SOURCE_BUTT
} VI_PIPE_FRAME_SOURCE_E;

【成员】

成员名称

描述

VI_PIPE_FRAME_SOURCE_DEV

数据来自设备。

VI_PIPE_FRAME_SOURCE_USER_FE

数据来自用户从 FE 送进来的数据。

VI_PIPE_FRAME_SOURCE_USER_BE

数据来自用户从 BE 送进来的数据。

【注意事项】

  • 不支持从 BE 进数据。

【相关数据类型及接口】


4.4.41. VI_LDC_ATTR_S

【说明】

定义VI镜头畸变矫正结构体

【定义】

typedef struct _VI_LDC_ATTR_S {
   CVI_BOOL bEnable;
   LDC_ATTR_S stAttr;
} VI_LDC_ATTR_S;

【成员】

成员名称

描述

bEnable

LDC使能

stAttr

LDC设定属性

【注意事项】

无。

【相关数据类型及接口】


4.4.42. ROTATION_E

【说明】

定义视频旋转角度。

【定义】

/*Angle of rotation*/
typedef enum _ROTATION_E {
    ROTATION_0 = 0,
    ROTATION_90,
    ROTATION_180,
    ROTATION_270,
    ROTATION_XY_FLIP,
    ROTATION_MAX
} ROTATION_E;

【成员】

各旋转角度

【注意事项】

【相关数据类型及接口】