7.4. 数据类型¶
相关数据类型、数据结构定义如下:
VENC_MAX_CHN_NUM :定义最大通道数。
VENC_MAX_ROI_NUM :定义最大感兴趣区域个数。
MAX_TILE_NUM :定义最大TILE个数。
VENC_ALIGN_W :定义VENC宽度对齐。
VENC_ALIGN_H :定义VENC高度对齐。
RC_TEXTURE_THR_SIZE :定义纹理级码控的阈值个数。
VENC_CHN_PARAM_S :定义VENC通道参数结构体。
VENC_PACK_S :定义帧码流包结构体。
VENC_STREAM_S :定义帧码流类型结构体。
VENC_ATTR_S :定义编码器属性结构体。
VENC_GOP_ATTR_S :定义 Gop Mode 类型的结构体。
VENC_GOP_NORMALP_S:定义NormalP结构体
VENC_GOP_SMARTP_S:定义smartP结构体
VENC_CHN_ATTR_S :定义编码通道属性结构体。
VENC_RECV_PIC_PARAM_S :定义编码通道连续接收并编码的帧数结构体。
VENC_CHN_STATUS_S :定义编码通道的状态结构体。
VENC_JPEG_PARAM_S :定义 JPEG 编码参数集合。
VENC_RC_ATTR_S :定义编码通道码率控制器属性。
VENC_H264_CBR_S :定义 H.264 编码通道 CBR 属性结构。
VENC_H264_VBR_S :定义 H.264 编码通道 VBR 属性结构。
VENC_H264_QVBR_S: 定义 H.264 编码通道 QVBR 属性结构。
VENC_H264_FIXQP_S :定义 H.264 编码通道 FIXQP 属性结构。
VENC_H264_QPMAP_S :定义 H.264 编码通道 QPMAP 属性结构。
VENC_MJPEG_FIXQP_S :定义 MJPEG 编码通道 FIXQP 属性结构。
VENC_MJPEG_CBR_S :定义 MJPEG 编码通道 CBR 属性结构。
VENC_MJPEG_VBR_S :定义 MJPEG 编码通道 VBR 属性结构。
VENC_H265_CBR_S :定义 H.265 编码通道 CBR 属性结构。
VENC_H265_VBR_S :定义 H.265 编码通道 VBR 属性结构。
VENC_H265_AVBR_S :定义 H.265 编码通道 AVBR 属性结构。
VENC_H265_QVBR_S: 定义 H.265 编码通道 QVBR 属性结构。
VENC_H265_FIXQP_S :定义 H.265 编码通道 FIXQP 属性结构。
VENC_H265_QPMAP_S :定义 H.265 编码通道 QPMAP 属性结构。
VENC_RC_PARAM_S :定义编码通道的码率控制高级参数。
VENC_PARAM_H264_CBR_S:定义H.264 CBR高级参数
VENC_PARAM_H264_VBR_S:定义H.264 VBR 高级参数
VENC_PARAM_H264_AVBR_S:定义H.264 AVBR 高级参数
VENC_PARAM_H265_CBR_S: 定义H.265 CBR 高级参数
VENC_PARAM_H265_VBR_S: 定义H.265 VBR 高级参数
VENC_PARAM_H265_AVBR_S:定义H.265 AVBR高级参数
VENC_CHN_POOL_S :定义编码通道绑定的 VB 池结构体。
VENC_H264_ENTROPY_S :定义H.264熵编码结构体
VENC_CU_PREDICTION_S: 定义CU 预测结构体
H264E_ENTROPY: 定义H.264熵编码模式
H264E_PROFILE: 定义H.264 编码时的PROFILE LEVEL
PRORES_FRAMERATE: 定义 PRORES 帧率
PRORES_ASPECT_RATIO: 定义 PRORES 宽高比
VENC_ATTR_PRORES_S: 定义 PRORES 编码属性
VENC_H264_VUI_S: 定义H.264 VUI 参数
VENC_H265_VUI_S: 定义H.265 VUI 参数
VENC_FRAME_TYPE_E: VENC 帧类型
USER_FRAME_INFO_S: 定义USER FRAME信息
VENC_FRAME_PARAM_S: 定义编码帧参数
VENC_RC_QPMAP_MODE_E: 定义码控QP模式
7.4.1. VENC_MAX_CHN_NUM¶
【说明】
定义编码最大信道个数。
【定义】
#define VENC_MAX_CHN_NUM 16
【成员】
无。
【注意事项】
由于最大通道个数涉及到内存的分配、目前不开放扩充。
【相关数据类型及接口】
无。
7.4.2. VENC_MAX_ROI_NUM¶
【说明】
定义最大感兴趣区域个数。
【定义】
#define VENC_MAX_ROI_NUM 8
【成员】
无。
【注意事项】
无。
【相关数据类型及接口】
无。
7.4.3. MAX_TILE_NUM¶
【说明】
定义最大TILE个数。
【定义】
#define MAX_TILE_NUM 1
【成员】
无。
【注意事项】
无。
【相关数据类型及接口】
无。
7.4.4. VENC_ALIGN_W¶
【说明】
定义VENC宽度对齐。
【定义】
#define VENC_ALIGN_W 32
【成员】
无。
【注意事项】
无。
【相关数据类型及接口】
无。
7.4.5. VENC_ALIGN_H¶
【说明】
定义VENC高度对齐。
【定义】
#define VENC_ALIGN_H 16
【成员】
无。
【注意事项】
无。
【相关数据类型及接口】
无。
7.4.6. RC_TEXTURE_THR_SIZE¶
【说明】
定义纹理级码控的阈值个数。
【定义】
#define RC_TEXTURE_THR_SIZE 1
【成员】
无。
【注意事项】
无。
【相关数据类型及接口】
无。
7.4.7. VENC_CHN_PARAM_S¶
【说明】
定义 Venc 通道参数结构体。
【定义】
typedef struct _VENC_CHN_PARAM_S {
CVI_BOOL bColor2Grey;
CVI_U32 u32Priority
CVI_U32 u32MaxStrmCnt;
CVI_U32 u32PollWakeUpFrmCnt;
VENC_CROP_INFO_S stCropCfg;
VENC_FRAME_RATE_S stFrameRate;
} VENC_CHN_PARAM_S;
【成员】
成员名称 |
描述 |
---|---|
bColor2Grey |
预留,暂未使用 |
u32Priority |
预留,暂未使用 |
u32MaxStrmCnt |
预留,暂未使用 |
u32PollWakeUpFrmCnt |
预留,暂未使用 |
stCropCfg |
通道截取(Crop)参数 |
stFrameRate |
通道帧率控制参数 |
【注意事项】
无。
【相关数据类型及接口】
7.4.8. VENC_PACK_S¶
【说明】
定义帧码流包结构体。
【定义】
typedef struct _VENC_PACK_S {
CVI_U64 u64PhyAddr;
CVI_U8 ATTRIBUTE *pu8Addr;
CVI_U32 ATTRIBUTE u32Len;
CVI_U64 u64PTS;
CVI_BOOL bFrameEnd;
VENC_DATA_TYPE_U DataType;
CVI_U32 u32Offset;
CVI_U32 u32DataNum;
VENC_PACK_INFO_S stPackInfo[8];
} VENC_PACK_S;
【成员】
成员名称 |
描述 |
---|---|
u64PhyAddr |
码流包首地址。 |
pu8Addr |
码流包首虚拟地址。 |
u32Len |
码流包长度。 |
DataType |
码流类型,支持 H.264/JPEG/ H.265 协议类型的数据包。 |
bFrameEnd |
帧结束标识。 CVI_TRUE:该码流包是该帧的最后一个包。 CVI_FALSE:该码流包不是该帧的最后一个包。 |
u32Offset |
码流包中有效数据与码流包首地址 pu8Addr 的偏移。 |
u64PTS |
时间戳。单位:us。 |
u32DataNum |
当前码流包(当前包的类型由 DataType 指定)数据中包含 其他类型码流包的个数。 |
stPackInfo[8] |
当前码流包数据中包含其他类型码流包数据信息。 |
【注意事项】
无。
【相关数据类型及接口】
7.4.9. VENC_STREAM_S¶
【说明】
定义帧码流类型结构体。
【定义】
typedef struct _VENC_STREAM_S {
VENC_PACK_S ATTRIBUTE *pstPack;
CVI_U32 ATTRIBUTE u32PackCount;
CVI_U32 u32Seq;
union {
VENC_STREAM_INFO_H264_S stH264Info;
VENC_STREAM_INFO_JPEG_S stJpegInfo;
VENC_STREAM_INFO_H265_S stH265Info;
VENC_STREAM_INFO_PRORES_S stProresInfo;
};
union {
VENC_STREAM_ADVANCE_INFO_H264_S stAdvanceH264Info;
VENC_STREAM_ADVANCE_INFO_JPEG_S stAdvanceJpegInfo;
VENC_STREAM_ADVANCE_INFO_H265_S stAdvanceH265Info;
VENC_STREAM_ADVANCE_INFO_PRORES_S stAdvanceProresInfo;
};
} VENC_STREAM_S;
【成员】
成员名称 |
描述 |
---|---|
pstPack |
帧码流包结构。 |
u32PackCount |
一帧码流的所有包的个数。 |
u32Seq |
码流序列号。 |
stH264Info/stJpegInfo/stH265Info/stProresInfo |
码流信息。 |
stAdvanceH264Info/stAdvanceJpegInfo/stAdvanceH265Info/stAdvanceProresInfo |
码流进阶信息。 |
【注意事项】
无。
【相关数据类型及接口】
7.4.10. VENC_GOP_ATTR_S¶
【说明】
定义编码器 GOP 属性结构体。
【定义】
typedef struct _VENC_GOP_ATTR_S {
VENC_GOP_MODE_E enGopMode;
union {
VENC_GOP_NORMALP_S stNormalP;
VENC_GOP_DUALP_S stDualP;
VENC_GOP_SMARTP_S stSmartP;
VENC_GOP_ADVSMARTP_S stAdvSmartP;
VENC_GOP_BIPREDB_S stBipredB;
};
} VENC_GOP_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
enGopMode |
编码 GOP 类型。 |
stNormalP |
编码单参考帧 P 帧 GOP 属性结构体。 |
stDualP |
预留,暂未使用 |
stSmartP |
编码智能 P 帧 GOP 属性结构体。 |
stAdvSmartP |
预留,暂未使用 |
stBipredB |
预留,暂未使用 |
【注意事项】
无。
【相关数据类型及接口】
7.4.11. VENC_GOP_NORMALP_S¶
【说明】
定义编码器NormalP GOP属性结构体。
【定义】
typedef struct _VENC_GOP_NORMALP_S {
CVI_S32 s32IPQpDelta;
} VENC_GOP_NORMALP_S;
【成员】
成员名称 |
描述 |
---|---|
s32IPQpDelta |
I帧和P帧的QP差值 |
【注意事项】
无。
【相关数据类型及接口】
7.4.12. VENC_GOP_SMARTP_S¶
【说明】
定义编码器SmartP GOP属性结构体。
【定义】
typedef struct _VENC_GOP_SMARTP_S {
CVI_U32 u32BgInterval;
CVI_S32 s32BgQpDelta;
CVI_S32 s32ViQpDelta;
} VENC_GOP_SMARTP_S;
【成员】
成员名称 |
描述 |
---|---|
u32BgInterval |
IDR帧的间隔 |
s32BgQpDelta |
IDR帧和P帧的QP差值 |
s32ViQpDelta |
Vi帧和P帧的QP差值 |
【注意事项】
无。
【相关数据类型及接口】
7.4.13. VENC_RECV_PIC_PARAM_S¶
【说明】
定义编码通道连续接收并编码的帧数结构体。
【定义】
typedef struct _VENC_RECV_PIC_PARAM_S {
CVI_S32 s32RecvPicNum;
} VENC_RECV_PIC_PARAM_S;
【成员】
成员名称 |
描述 |
---|---|
s32RecvPicNum |
编码通道连续接收并编码的帧数。 范围:[-1,0)∪(0 ∞] |
【注意事项】
无。
【相关数据类型及接口】
7.4.14. VENC_CHN_ATTR_S¶
【说明】
定义 VENC_CHN_ATTR_S 属性。
【定义】
typedef struct _VENC_CHN_ATTR_S {
VENC_ATTR_S stVencAttr;
VENC_RC_ATTR_S stRcAttr;
VENC_GOP_ATTR_S stGopAttr;
} VENC_CHN_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
stVencAttr |
venc属性。 |
stRcAtt |
码率控制器属性。 |
stGopAttr |
Gop Mode 类型的结构体。请参考上述 typedef struct _VENC_GOP_ATTR_S |
【注意事项】
无。
【相关数据类型及接口】
7.4.15. VENC_ATTR_S¶
【说明】
定义 VENC_ATTR_S 属性。
【定义】
typedef struct _VENC_ATTR_S {
PAYLOAD_TYPE_E enType;
CVI_U32 u32MaxPicWidth;
CVI_U32 u32MaxPicHeight;
CVI_U32 u32BufSize;
CVI_U32 u32Profile;
CVI_BOOL bByFrame;
CVI_U32 u32PicWidth;
CVI_U32 u32PicHeight;
CVI_BOOL bSingleCore;
CVI_BOOL bEsBufQueueEn;
CVI_BOOL bIsoSendFrmEn;
union {
VENC_ATTR_H264_S stAttrH264e;
VENC_ATTR_H265_S stAttrH265e;
VENC_ATTR_JPEG_S stAttrJpege;
VENC_ATTR_PRORES_S stAttrProres;
};
} VENC_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
enType |
payload类型 |
u32MaxPicWidth |
影像最大编码宽度 |
u32MaxPicHeight |
影像最大编码高度 |
u32BufSize |
Encoded bitstream buffer大小 |
u32Profile |
编码的等级 |
bByFrame |
Encoded bitstream收集方式
CVI_TRUE: 以帧为主
CVI_FALSE: 以封包为主
|
u32PicWidth |
编码影像宽度 |
u32PicHeight |
编码影像高度 |
bSingleCore |
只使用H264/H265 |
bEsBufQueueEn |
使用 es buffer queue |
bIsoSendFrmEn |
去除SendFrame/GetStream必须配对使用的限制 |
stAttrH264e / stAttrH265e /stAttrJpege / stAttrProres |
Encoder 属性 |
【注意事项】
打开bIsoSendFrmEn的同时应该打开bEsBufQueueEn,否则会有花屏现象
双系统bIsoSendFrmEn必须关闭,双系统默认去除了SendFrame/GetStream必须配对使用的限制
【相关数据类型及接口】
无。
7.4.16. VENC_ATTR_H264_S¶
【说明】
定义 H264编码属性。
【定义】
typedef struct _VENC_ATTR_H264_S {
CVI_BOOL bRcnRefShareBuf;
CVI_BOOL bSingleLumaBuf;
} VENC_ATTR_H264_S;
【成员】
成员名称 |
描述 |
---|---|
bRcnRefShareBuf |
预留 |
bSingleLumaBuf |
一个编码通道的FrameBuffer使用一个Luma Buffer |
【注意事项】
无。
【相关数据类型及接口】
无。
7.4.17. VENC_ATTR_H265_S¶
【说明】
定义 H265编码属性。
【定义】
typedef struct _VENC_ATTR_H265_S {
CVI_BOOL bRcnRefShareBuf;
} VENC_ATTR_H265_S;
【成员】
成员名称 |
描述 |
---|---|
bRcnRefShareBuf |
预留 |
【注意事项】
无。
【相关数据类型及接口】
无。
7.4.18. VENC_STREAM_INFO_S¶
【说明】
定义VENC_STREAM_INFO_S属性。
【定义】
typedef struct _ VENC_STREAM_INFO_S {
H265E_REF_TYPE_E enRefType;
CVI_U32 u32PicBytesNum;
CVI_U32 u32PicCnt;
CVI_U32 u32StartQp;
CVI_U32 u32MeanQp;
CVI_BOOL bPSkip;
CVI_U32 u32ResidualBitNum;
CVI_U32 u32HeadBitNum;
CVI_U32 u32MadiVal;
CVI_U32 u32MadpVal;
CVI_U32 u32MseSum;
CVI_U32 u32MseLcuCnt;
double dPSNRVal;
} VENC_STREAM_INFO_S;
【成员】
成员名称 |
描述 |
---|---|
u32MeanQp |
目前Frame的平均QP |
【注意事项】
无。
【相关数据类型及接口】
无。
7.4.19. VENC_CHN_STATUS_S¶
【说明】
定义VENC_CHN_STATUS_S属性。
【定义】
typedef struct _VENC_CHN_STATUS_S {
CVI_U32 u32LeftPics;
CVI_U32 u32LeftStreamBytes;
CVI_U32 u32LeftStreamFrames;
CVI_U32 u32CurPacks;
CVI_U32 u32LeftRecvPics;
CVI_U32 u32LeftEncPics;
CVI_BOOL bJpegSnapEnd;
VENC_STREAM_INFO_S stVencStrmInfo;
} VENC_CHN_STATUS_S;
【成员】
成员名称 |
描述 |
---|---|
u32LeftPics |
预留 |
u32LeftStreamBytes |
预留 |
u32LeftStreamFrames |
VENC剩余待接收的帧数 |
u32CurPacks |
目前Frame中的Packet数 |
u32LeftRecvPics |
预留 |
u32LeftEncPics |
预留 |
bJpegSnapEnd |
预留 |
stVencStrmInfo |
预留 |
【注意事项】
无。
【相关数据类型及接口】
7.4.20. VENC_JPEG_PARAM_S¶
【说明】
定义 JPEG 协议编码通道高级参数结构体。
【定义】
typedef struct _VENC_JPEG_PARAM_S {
CVI_U32 u32Qfactor;
CVI_U8 u8YQt[64];
CVI_U8 u8CbQt[64];
CVI_U8 u8CrQt[64];
CVI_U32 U32MCUPerECS;
} VENC_JPEG_PARAM_S;
【成员】
成员名称 |
描述 |
---|---|
u32Qfactor |
具体含义请参见RFC2435协议,系统默认为 0。 |
u8YQt |
Y 量化表。(未实现) |
u8CbQt |
Cb 量化表。(未实现) |
u8CrQt |
Cr 量化表。(未实现) |
u32MCUPerECS |
每个 ECS 中包含多少个 MCU,系统默认为 0,表示不 划分 Ecs。(未实现) |
【注意事项】
无。
【相关数据类型及接口】
7.4.21. VENC_RC_ATTR_S¶
【说明】
定义编码通道码率控制器属性。
【定义】
typedef struct _VENC_RC_ATTR_S {
VENC_RC_MODE_E enRcMode;
union {
VENC_H264_CBR_S stH264Cbr;
VENC_H264_VBR_S stH264Vbr;
VENC_H264_AVBR_S stH264AVbr;
VENC_H264_QVBR_S stH264QVbr;
VENC_H264_FIXQP_S stH264FixQp;
VENC_H264_QPMAP_S stH264QpMap;
VENC_MJPEG_CBR_S stMjpegCbr;
VENC_MJPEG_VBR_S stMjpegVbr;
VENC_MJPEG_FIXQP_S stMjpegFixQp;
VENC_H265_CBR_S stH265Cbr;
VENC_H265_VBR_S stH265Vbr;
VENC_H265_AVBR_S stH265AVbr;
VENC_H265_QVBR_S stH265QVbr;
VENC_H265_FIXQP_S stH265FixQp;
VENC_H265_QPMAP_S stH265QpMap;
};
} VENC_RC_ATTR_S;
【成员】
成员名称 |
描述 |
---|---|
enRcMode |
RC 模式。 |
stH264Cbr |
H.264 协议编码信道 Cbr 模式属性。 |
stH264Vbr |
H.264 协议编码信道 Vbr 模式属性。 |
stH264AVbr |
H.264 协议编码信道 AVbr 模式属性。 |
stH264QVbr |
H.264 协议编码信道 QVbr 模式属性。 |
stH264CVbr |
H.264 协议编码信道 CVbr 模式属性。 |
stH264FixQp |
H.264 协议编码信道 Fixqp 模式属性。 |
stH264QpMap |
H.264 协议编码信道 QPMAP 模式属性。 |
stMjpegeFixQp |
Mjpeg 协议编码信道 Fixqp 模式属性。 |
stMjpegeCbr |
Mjpeg 协议编码信道 cbr 模式属性。 |
stMjpegeVbr |
Mjpeg 协议编码信道 vbr 模式属性 |
stH265Cbr |
H.265 协议编码信道 Cbr 模式属性。 |
stH265Vbr |
H.265 协议编码信道 Vbr 模式属性。 |
stH265AVbr |
H.265 协议编码信道 AVbr 模式属性。 |
stH265QVbr |
H.265 协议编码信道 QVbr 模式属性。 |
stH265CVbr |
H.265 协议编码信道 CVbr 模式属性。 |
stH265FixQp |
H.265 协议编码信道 Fixqp 模式属性。 |
stH265QpMap |
H.265 协议编码信道 QPMAP 模式属性。 |
【注意事项】
无。
【相关数据类型及接口】
7.4.22. VENC_H264_CBR_S¶
【说明】
定义 H.264 编码通道 CBR 属性结构。
【定义】
typedef struct _VENC_H264_CBR_S {
CVI_U32 u32Gop;
CVI_U32 u32StatTime;
CVI_U32 u32SrcFrameRate
CVI_FR32 fr32DstFrameRate;
CVI_U32 u32BitRate;
CVI_BOOL bVariFpsEn;
} VENC_H264_CBR_S;
【成员】
成员名称 |
描述 |
---|---|
u32Gop |
H.264 gop 值。 范围:[1, 65536]。 |
u32StatTime |
CBR 码率统计时间,以秒为单位。 范围:[1, 60]。 |
u32SrcFrameRate |
输入帧率,以 fps 为单位。 |
fr32DstFrameRate |
编码器输出帧率,以 fps 为单位。 |
u32BitRate |
平均 bitrate,以 kbps 为单位。 |
bVariFpsEn |
开启Variable FPS。开启此功能后,会同时开闭Frame rate conversion功能。 |
【注意事项】
无。
【相关数据类型及接口】
7.4.23. VENC_H264_VBR_S¶
【说明】
定义 H.264 编码通道 VBR 属性结构。
【定义】
typedef struct _VENC_H264_VBR_S {
CVI_U32 u32Gop;
CVI_U32 u32StatTime;
CVI_U32 u32SrcFrameRate;
CVI_FR32 fr32DstFrameRate;
CVI_U32 u32MaxBitRate;
CVI_BOOL bVariFpsEn;
} VENC_H264_VBR_S;
【成员】
成员名称 |
描述 |
---|---|
u32Gop |
H.264 gop 值。 范围:[1, 65536]。 |
u32StatTime |
VBR 码率统计时间,以秒为单位。。 范围:[1, 60]。 |
u32SrcFrameRate |
输入帧率,以 fps 为单位。 |
fr32DstFrameRate |
编码器输出帧率,以 fps 为单位。 |
u32MaxBitRate |
编码器输出最大码率,以 kbps 为单位。 |
bVariFpsEn |
开启Variable FPS。开启此功能后,会同时开闭Frame rate conversion功能。 |
【注意事项】
无。
【相关数据类型及接口】
7.4.24. VENC_H264_AVBR_S¶
【说明】
定义 H.264 编码通道 AVBR 属性结构。
【定义】
typedef struct _VENC_H264_AVBR_S {
CVI_U32 u32Gop;
CVI_U32 u32StatTime;
CVI_U32 u32SrcFrameRate;
CVI_FR32 fr32DstFrameRate;
CVI_U32 u32MaxBitRate;
CVI_BOOL bVariFpsEn;
} VENC_H264_AVBR_S;
【成员】
成员名称 |
描述 |
---|---|
u32Gop |
H.264 gop 值。 |
u32StatTime |
AVBR 码率统计时间,以秒为单位。 |
u32SrcFrameRate |
VI 输入帧率,以 fps 为单位。 |
fr32DstFrameRate |
编码器输出帧率,以 fps 为单位。 |
u32MaxBitRate |
编码器输出最大码率,以 kbps 为单位。 |
bVariFpsEn |
开启Variable FPS。开启此功能后,会同时开闭Frame rate conversion功能。 |
【注意事项】
无。
【相关数据类型及接口】
7.4.25. VENC_H264_FIXQP_S¶
【说明】
定义 H.264 编码通道 Fixqp 属性结构。
【定义】
typedef struct _VENC_H264_FIXQP_S {
CVI_U32 u32Gop;
CVI_U32 u32SrcFrameRate;
CVI_FR32 fr32DstFrameRate
CVI_U32 u32IQp;
CVI_U32 u32PQp;
CVI_U32 u32BQp;
CVI_BOOL bVariFpsEn;
} VENC_H264_FIXQP_S;
【成员】
成员名称 |
描述 |
---|---|
u32Gop |
H.264 gop 值。 范围:[1, 65536]。 |
u32IQp |
I 帧所有宏块 Qp 值。 |
u32SrcFrameRate |
输入帧率,以 fps 为单位。 |
fr32DstFrameRate |
编码器输出帧率,以 fps 为单位。 |
u32PQp |
P 帧所有宏块 Qp 值。 |
u32BQp |
B 帧所有宏块 Qp 值。 |
bVariFpsEn |
开启Variable FPS。开启此功能后,会同时开闭Frame rate conversion功能。 |
【注意事项】
无。
【相关数据类型及接口】
7.4.26. VENC_H264_QPMAP_S¶
【说明】
定义 H.264 编码通道 QPMAP 属性结构。
【定义】
typedef struct _VENC_H264_QPMAP_S {
CVI_U32 u32Gop;
CVI_U32 u32StatTime;
CVI_U32 u32SrcFrameRate;
CVI_FR32 fr32DstFrameRate;
CVI_BOOL bVariFpsEn;
} VENC_H264_QPMAP_S;
【成员】
成员名称 |
描述 |
---|---|
u32Gop |
H.264 gop 值。 范围:[1, 65536]。 |
u32StatTime |
QPMAP 码率统计时间,以秒为单位。 |
u32SrcFrameRate |
输入帧率,以 fps 为单位。 |
fr32DstFrameRate |
编码器输出帧率,以 fps 为单位。 |
bVariFpsEn |
开启Variable FPS。开启此功能后,会同时开闭Frame rate conversion功能。 |
【注意事项】
无。
【相关数据类型及接口】
7.4.27. VENC_MJPEG_FIXQP_S¶
【说明】
定义 MJPEG 编码通道 Fixqp 属性结构。
【定义】
typedef struct _VENC_MJPEG_FIXQP_S {
CVI_U32 u32SrcFrameRate
CVI_FR32 fr32DstFrameRate;
CVI_U32 u32Qfactor;
CVI_BOOL bVariFpsEn;
} VENC_MJPEG_FIXQP_S;
【成员】
成员名称 |
描述 |
---|---|
u32SrcFrameRate |
VI 输入帧率,以 fps 为单位。 |
fr32DstFrameRate |
编码器输出帧率,以 fps 为单位。 |
u32Qfactor |
MJPEG 编码的 Qfactor。 |
bVariFpsEn |
开启Variable FPS。开启此功能后,会同时开闭Frame rate conversion功能。 |
【注意事项】
无。
【相关数据类型及接口】
7.4.28. VENC_MJPEG_CBR_S¶
【说明】
定义 MJPEG 编码通道 CBR 属性结构。
【定义】
typedef struct _VENC_MJPEG_CBR_S {
CVI_U32 u32StatTime;
CVI_U32 u32SrcFrameRate;
CVI_FR32 fr32DstFrameRate;
CVI_U32 u32BitRate;
CVI_BOOL bVariFpsEn;
} VENC_MJPEG_CBR_S;
【成员】
成员名称 |
描述 |
---|---|
u32StatTime |
CBR 码率统计时间,以秒为单位。 |
u32SrcFrameRate |
编码器输入帧率,以 fps 为单位。 |
fr32DstFrameRate |
编码器输出帧率,以 fps 为单位。 |
u32BitRate |
平均 bitrate,以 kbps 为单位。 |
bVariFpsEn |
开启Variable FPS。开启此功能后,会同时开闭Frame rate conversion功能。 |
【注意事项】
无。
【相关数据类型及接口】
7.4.29. VENC_H265_CBR_S¶
【说明】
定义 H.265 编码通道 CBR 属性结构。
【定义】
typedef struct _VENC_H264_CBR_S {
CVI_U32 u32Gop;
CVI_U32 u32StatTime
CVI_U32 u32SrcFrameRate;
CVI_FR32 fr32DstFrameRate;
CVI_U32 u32BitRate;
CVI_BOOL bVariFpsEn;
} VENC_H264_CBR_S;
typedef struct _VENC_H264_CBR_S VENC_H265_CBR_S;
【成员】
成员名称 |
描述 |
---|---|
u32Gop |
H.265 gop 值。 |
u32StatTime |
CBR 码率统计时间,以秒为单位。 |
u32SrcFrameRate |
VI 输入帧率,以 fps 为单位。 |
fr32DstFrameRate |
编码器输出帧率,以 fps 为单位。 |
u32BitRate |
平均 bitrate,以 kbps 为单位。 |
bVariFpsEn |
开启Variable FPS。开启此功能后,会同时开闭Frame rate conversion功能。 |
【注意事项】
无。
【相关数据类型及接口】
7.4.30. VENC_H265_VBR_S¶
【说明】
定义 H.265 编码通道 VBR 属性结构。
【定义】
typedef struct _VENC_H264_VBR_S {
CVI_U32 u32Gop;
CVI_U32 u32StatTime;
CVI_U32 u32SrcFrameRate;
CVI_FR32 fr32DstFrameRate;
CVI_U32 u32MaxBitRate;
CVI_BOOL bVariFpsEn;
} VENC_H264_VBR_S;
typedef struct _VENC_H264_VBR_S VENC_H265_VBR_S;
【成员】
成员名称 |
描述 |
---|---|
u32Gop |
H.265 gop 值。 |
u32StatTime |
CBR 码率统计时间,以秒为单位。 |
u32SrcFrameRate |
VI 输入帧率,以 fps 为单位。 |
fr32DstFrameRate |
编码器输出帧率,以 fps 为单位。 |
u32MaxBitRate |
编码器输出最大码率,以 kbps 为单位。 |
bVariFpsEn |
开启Variable FPS。开启此功能后,会同时开闭Frame rate conversion功能。 |
【注意事项】
无。
【相关数据类型及接口】
7.4.31. VENC_H265_AVBR_S¶
【说明】
定义 H.265 编码通道 AVBR 属性结构。
【定义】
typedef struct _VENC_H264_AVBR_S {
CVI_U32 u32Gop;
CVI_U32 u32StatTime;
CVI_U32 u32SrcFrameRate;
CVI_FR32 fr32DstFrameRate;
CVI_U32 u32MaxBitRate;
CVI_BOOL bVariFpsEn;
} VENC_H264_AVBR_S;
typedef struct _VENC_H264_AVBR_S VENC_H265_AVBR_S;
【成员】
成员名称 |
描述 |
---|---|
u32Gop |
H.265 gop 值。 |
u32StatTime |
AVBR 码率统计时间,以秒为单位。 |
u32SrcFrameRate |
VI 输入帧率,以 fps 为单位。 |
fr32DstFrameRate |
编码器输出帧率,以 fps 为单位。 |
u32MaxBitRate |
编码器输出最大码率,以 kbps 为单位。 |
bVariFpsEn |
开启Variable FPS。开启此功能后,会同时开闭Frame rate conversion功能。 |
【注意事项】
无。
【相关数据类型及接口】
7.4.32. VENC_H265_FIXQP_S¶
【说明】
定义 H.265 编码通道 Fixqp 属性结构。
【定义】
typedef struct _VENC_H264_FIXQP_S {
CVI_U32 u32Gop;
CVI_U32 u32SrcFrameRate;
CVI_FR32 fr32DstFrameRate;
CVI_U32 u32IQp;
CVI_U32 u32PQp;
CVI_U32 u32BQp;
CVI_BOOL bVariFpsEn;
} VENC_H264_FIXQP_S;
typedef struct _VENC_H264_FIXQP_S VENC_H265_FIXQP_S;
【成员】
成员名称 |
描述 |
---|---|
u32Gop |
H.265 gop 值。 |
u32SrcFrameRate |
VI 输入帧率,以 fps 为单位。 |
fr32DstFrameRate |
编码器输出帧率,以 fps 为单位。 |
u32IQp |
I 帧所有宏块 Qp 值。 |
u32PQp |
P 帧所有宏块 Qp 值。 |
u32BQp |
预留。 |
bVariFpsEn |
开启Variable FPS。开启此功能后,会同时开闭Frame rate conversion功能。 |
【注意事项】
无。
【相关数据类型及接口】
7.4.33. VENC_H265_QPMAP_S¶
【说明】
定义 H.265 编码通道 QPMAP 属性结构。
【定义】
typedef struct _VENC_H265_QPMAP_S {
CVI_U32 u32Gop;
CVI_U32 u32StatTime;
CVI_U32 u32SrcFrameRate;
CVI_FR32 fr32DstFrameRate;
VENC_RC_QPMAP_MODE_E enQpMapMode;
CVI_BOOL bVariFpsEn;
} VENC_H265_QPMAP_S;
【成员】
成员名称 |
描述 |
---|---|
u32Gop |
H.265 gop 值。 |
u32StatTime |
QPMAP 码率统计时间,以秒为单位。 |
u32SrcFrameRate |
VI 输入帧率,以 fps 为单位。 |
fr32DstFrameRate |
编码器输出帧率,以 fps 为单位。 |
enQpMapMode |
CU32 或 CU64 的 QP 值的取值方式。 |
bVariFpsEn |
开启Variable FPS。开启此功能后,会同时开闭Frame rate conversion功能。 |
【注意事项】
无。
【相关数据类型及接口】
7.4.34. VENC_RC_PARAM_S¶
【说明】
定义编码通道的码率控制高级参数。码率控制主参数结构。
【定义】
typedef struct _VENC_RC_PARAM_S {
CVI_U32 u32ThrdI[RC_TEXTURE_THR_SIZE];
CVI_U32 u32ThrdP[RC_TEXTURE_THR_SIZE];
CVI_U32 u32ThrdB[RC_TEXTURE_THR_SIZE];
CVI_U32 u32DirectionThrd;
CVI_S32 s32FirstFrameStartQp;
CVI_S32 s32InitialDelay;
CVI_U32 u32ThrdLv;
CVI_BOOL bBgEnhanceEn;
CVI_S32 s32BgDeltaQp;
union {
VENC_PARAM_H264_CBR_S stParamH264Cbr;
VENC_PARAM_H264_VBR_S stParamH264Vbr;
VENC_PARAM_H264_AVBR_S stParamH264AVbr;
VENC_PARAM_H264_QVBR_S stParamH264QVbr;
VENC_PARAM_H265_CBR_S stParamH265Cbr;
VENC_PARAM_H265_VBR_S stParamH265Vbr;
VENC_PARAM_H265_AVBR_S stParamH265AVbr;
VENC_PARAM_H265_QVBR_S stParamH265QVbr;
VENC_PARAM_MJPEG_CBR_S stParamMjpegCbr;
VENC_PARAM_MJPEG_VBR_S stParamMjpegVbr;
};
} VENC_RC_PARAM_S;
【成员】
成员名称 |
描述 |
---|---|
u32ThrdI |
预留 |
u32ThrdP |
预留 |
u32ThrdB |
预留 |
u32DirectionThrd |
预留 |
u32RowQpDelta |
在宏块级码率控制时,每一行宏块的起始 Qp 相对于帧起始 Qp 的波动幅度值。 |
s32FirstFrameStartQp |
设置第一帧的起始 Qp 值, CBR / VBR / AVBR 有效 |
stSceneChangeDetect |
预留 |
s32InitialDelay |
影响帧编码的码率控制 |
u32ThrdLv |
宏块级码率控制的mad门限 |
bBgEnhanceEn |
预留 |
s32BgDeltaQp |
smartP模式下,IDR帧与P帧的QP差值 |
stParamH264Cbr |
H.264 通道 CBR(Constant Bit Rate)码率控制模 式高级参数。 |
stParamH264Vbr |
H.264 通道 VBR(Variable Bit Rate)码率控制模 式高级参数。 |
stParamH264AVbr |
H.264 通道 AVBR(Adaptive Variable Bit Rate) 码率控制模式高级参数。 |
stParamH264QVbr |
预留 |
stParamH264CVbr |
预留 |
stParamMjpegCbr |
MJPEG 信道 CBR(Constant Bit Rate)码率控制 模式高级参数。 |
stParamMjpegVbr |
预留 |
stParamH265Cbr |
H.265 通道 CBR(Constant Bit Rate)码率控制模 式高级参数。 |
stParamH265Vbr |
H.265 通道 VBR(Variable Bit Rate)码率控制模 式高级参数。 |
stParamH265AVbr |
H.265 通道 AVBR(Adaptive Variable Bit Rate) 码率控制模式高级参数。 |
stParamH265QVbr |
预留 |
stParamH265CVbr |
预留 |
【注意事项】
无。
【相关数据类型及接口】
7.4.35. VENC_PARAM_H264_CBR_S¶
【说明】
定义H264 CBR高级参数。
【定义】
typedef struct _VENC_PARAM_H264_CBR_S {
CVI_U32 u32MinIprop;
CVI_U32 u32MaxIprop;
CVI_U32 u32MaxQp;
CVI_U32 u32MinQp;
CVI_U32 u32MaxIQp;
CVI_U32 u32MinIQp;
CVI_S32 s32MaxReEncodeTimes;
CVI_BOOL bQpMapEn;
} VENC_PARAM_H264_CBR_S;
【成员】
成员名称 |
描述 |
---|---|
u32MinIprop |
最小IP比 |
u32MaxIprop |
最大IP比 |
u32MaxQp |
最大QP |
u32MinQp |
最小QP |
u32MaxIQp |
I帧最大QP |
u32MinIQp |
I帧最小QP |
s32MaxReEncodeTimes |
预留 |
CVI_BOOL bQpMapEn |
预留 |
【注意事项】
无。
【相关数据类型及接口】
7.4.36. VENC_PARAM_H264_VBR_S¶
【说明】
定义H264 VBR高级参数。
【定义】
typedef struct _VENC_PARAM_H264_VBR_S {
CVI_S32 s32ChangePos;
CVI_U32 u32MinIprop;
CVI_U32 u32MaxIprop;
CVI_S32 s32MaxReEncodeTimes;
CVI_BOOL bQpMapEn;
CVI_U32 u32MaxQp;
CVI_U32 u32MinQp;
CVI_U32 u32MaxIQp;
CVI_U32 u32MinIQp;
} VENC_PARAM_H264_VBR_S;
【成员】
成员名称 |
描述 |
---|---|
s32ChangePos |
码率调节阈值 |
u32MinIprop |
预留 |
u32MaxIprop |
最大IP比 |
s32MaxReEncodeTimes |
预留 |
CVI_BOOL bQpMapEn |
预留 |
u32MaxQp |
最大QP |
u32MinQp |
最小QP |
u32MaxIQp |
I帧最大QP |
u32MinIQp |
I帧最小QP |
【注意事项】
无。
【相关数据类型及接口】
7.4.37. VENC_PARAM_H264_AVBR_S¶
【说明】
定义H264 AVBR高级参数。
【定义】
typedef struct _VENC_PARAM_H264_AVBR_S {
CVI_S32 s32ChangePos;
CVI_U32 u32MinIprop;
CVI_U32 u32MaxIprop;
CVI_S32 s32MaxReEncodeTimes;
CVI_BOOL bQpMapEn;
CVI_S32 s32MinStillPercent;
CVI_U32 u32MaxStillQP;
CVI_U32 u32MinStillPSNR;
CVI_U32 u32MaxQp;
CVI_U32 u32MinQp;
CVI_U32 u32MaxIQp;
CVI_U32 u32MinIQp;
CVI_U32 u32MinQpDelta;
CVI_U32 u32MotionSensitivity;
CVI_S32 s32AvbrFrmLostOpen;
CVI_S32 s32AvbrFrmGap;
CVI_S32 s32AvbrPureStillThr;
} VENC_PARAM_H264_AVBR_S;
【成员】
成员名称 |
描述 |
---|---|
s32ChangePos |
码率调节阈值 |
u32MinIprop |
预留 |
u32MaxIprop |
最大IP比 |
s32MaxReEncodeTimes |
预留 |
CVI_BOOL bQpMapEn |
预留 |
s32MinStillPercent |
静态场景最小码率百分比 |
u32MaxStillQP |
静态场景最大QP |
u32MinStillPSNR |
预留 |
u32MaxQp |
最大QP |
u32MinQp |
最小QP |
u32MaxIQp |
I帧最大QP |
u32MinIQp |
I帧最小QP |
u32MinQpDelta |
帧级最小QP和宏块级最小QP差值 |
u32MotionSensitivity |
运动灵敏度 |
s32AvbrFrmLostOpen |
丢帧使能 |
s32AvbrFrmGap |
最大丢帧次数 |
s32AvbrPureStillThr |
静止门限值 |
【注意事项】
无。
【相关数据类型及接口】
7.4.38. VENC_PARAM_H265_CBR_S¶
【说明】
定义H265 CBR高级参数。
【定义】
typedef struct _VENC_PARAM_H265_CBR_S {
CVI_U32 u32MinIprop;
CVI_U32 u32MaxIprop;
CVI_U32 u32MaxQp;
CVI_U32 u32MinQp;
CVI_U32 u32MaxIQp;
CVI_U32 u32MinIQp;
CVI_S32 s32MaxReEncodeTimes;
CVI_BOOL bQpMapEn;
VENC_RC_QPMAP_MODE_E enQpMapMode;
} VENC_PARAM_H265_CBR_S;
【成员】
成员名称 |
描述 |
---|---|
u32MinIprop |
预留 |
u32MaxIprop |
预留 |
u32MaxQp |
最大QP |
u32MinQp |
最小QP |
u32MaxIQp |
I帧最大QP |
u32MinIQp |
I帧最小QP |
s32MaxReEncodeTimes |
预留 |
bQpMapEn |
是否开启QPMAP功能 |
enQpMapMode |
QpMap的模式 |
【注意事项】
无。
【相关数据类型及接口】
7.4.39. VENC_PARAM_H265_VBR_S¶
【说明】
定义H265 VBR高级参数。
【定义】
typedef struct _VENC_PARAM_H265_VBR_S {
CVI_S32 s32ChangePos;
CVI_U32 u32MinIprop;
CVI_U32 u32MaxIprop;
CVI_S32 s32MaxReEncodeTimes;
CVI_U32 u32MaxQp;
CVI_U32 u32MinQp;
CVI_U32 u32MaxIQp;
CVI_U32 u32MinIQp;
CVI_BOOL bQpMapEn;
VENC_RC_QPMAP_MODE_E enQpMapMode;
} VENC_PARAM_H265_VBR_S;
【成员】
成员名称 |
描述 |
---|---|
s32ChangePos |
码率调节阈值 |
u32MinIprop |
预留 |
u32MaxIprop |
预留 |
s32MaxReEncodeTimes |
预留 |
u32MaxQp |
最大QP |
u32MinQp |
最小QP |
u32MaxIQp |
I帧最大QP |
u32MinIQp |
I帧最小QP |
CVI_BOOL bQpMapEn |
预留 |
enQpMapMode |
预留 |
【注意事项】
无。
【相关数据类型及接口】
7.4.40. VENC_PARAM_H265_AVBR_S¶
【说明】
定义H265 AVBR高级参数。
【定义】
typedef struct _VENC_PARAM_H265_AVBR_S {
CVI_S32 s32ChangePos;
CVI_U32 u32MinIprop;
CVI_U32 u32MaxIprop;
CVI_S32 s32MaxReEncodeTimes;
CVI_S32 s32MinStillPercent;
CVI_U32 u32MaxStillQP;
CVI_U32 u32MinStillPSNR;
CVI_U32 u32MaxQp;
CVI_U32 u32MinQp;
CVI_U32 u32MaxIQp;
CVI_U32 u32MinIQp;
CVI_U32 u32MinQpDelta;
CVI_U32 u32MotionSensitivity;
CVI_S32 s32AvbrFrmLostOpen;
CVI_S32 s32AvbrFrmGap;
CVI_S32 s32AvbrPureStillThr;
CVI_BOOL bQpMapEn;
VENC_RC_QPMAP_MODE_E enQpMapMode;
} VENC_PARAM_H265_AVBR_S;
【成员】
成员名称 |
描述 |
---|---|
s32ChangePos |
码率调节阈值 |
u32MinIprop |
预留 |
u32MaxIprop |
预留 |
s32MaxReEncodeTimes |
预留 |
s32MinStillPercent |
静态场景最小码率百分比 |
u32MaxStillQP |
静态场景最大QP |
u32MinStillPSNR |
预留 |
u32MaxQp |
最大QP |
u32MinQp |
最小QP |
u32MaxIQp |
I帧最大QP |
u32MinIQp |
I帧最小QP |
u32MinQpDelta |
帧级最小QP和宏块级最小QP差值 |
u32MotionSensitivity |
运动灵敏度 |
s32AvbrFrmLostOpen |
丢帧使能 |
s32AvbrFrmGap |
最大丢帧次数 |
s32AvbrPureStillThr |
静止门限值 |
bQpMapEn |
预留 |
enQpMapMode |
预留 |
【注意事项】
无。
【相关数据类型及接口】
7.4.41. VENC_PARAM_MOD_S¶
【说明】
编码相关模块参数。
【定义】
typedef struct _VENC_MODPARAM_S {
VENC_MODTYPE_E enVencModType;
union {
VENC_MOD_VENC_S stVencModParam;
VENC_MOD_H264E_S stH264eModParam;
VENC_MOD_H265E_S stH265eModParam;
VENC_MOD_JPEGE_S stJpegeModParam;
VENC_MOD_RC_S stRcModParam;
};
} VENC_PARAM_MOD_S;
【成员】
成员名称 |
描述 |
---|---|
enVencModType |
模块参数的类型 |
stVencModParam /stH264eModParam /stH265eModParam /stJpegeModParam /stRcModParam |
Venc / H264e / H265e / Jpege / Rc 模块参数结构。 |
【注意事项】
无。
【相关数据类型及接口】
7.4.42. VENC_MOD_H264E_S¶
【说明】
H264编码相关模块参数。
【定义】
typedef struct _VENC_MOD_H264E_S {
CVI_U32 u32OneStreamBuffer;
CVI_U32 u32H264eMiniBufMode;
CVI_U32 u32H264ePowerSaveEn;
VB_SOURCE_E enH264eVBSource;
CVI_BOOL bQpHstgrmEn;
CVI_U32 u32UserDataMaxLen;
CVI_BOOL bSingleEsBuf;
CVI_U32 u32SingleEsBufSize;
} VENC_MOD_H264E_S;
【成员】
成员名称 |
描述 |
---|---|
u32OneStreamBuffer |
预留 |
u32H264eMiniBufMode |
预留 |
u32H264ePowerSaveEn |
预留 |
enH264eVBSource |
VB模式 |
bQpHstgrmEn |
预留 |
u32UserDataMaxLen |
用户数据最大长度 |
bSingleEsBuf |
多个通道使用一个streamBuffer |
u32SingleEsBufSize |
streamBuffer的大小 |
【注意事项】
无。
【相关数据类型及接口】
7.4.43. VENC_MOD_H265E_S¶
【说明】
H265编码相关模块参数。
【定义】
typedef struct _VENC_MOD_H265E_S {
CVI_U32 u32OneStreamBuffer;
CVI_U32 u32H265eMiniBufMode;
CVI_U32 u32H265ePowerSaveEn;
VB_SOURCE_E enH265eVBSource;
CVI_BOOL bQpHstgrmEn;
CVI_U32 u32UserDataMaxLen;
CVI_BOOL bSingleEsBuf;
CVI_U32 u32SingleEsBufSize;
H265E_REFRESH_TYPE_E enRefreshType;
} VENC_MOD_H265E_S;
【成员】
成员名称 |
描述 |
---|---|
u32OneStreamBuffer |
预留 |
u32H265eMiniBufMode |
预留 |
u32H265ePowerSaveEn |
预留 |
enH265eVBSource |
VB模式 |
bQpHstgrmEn |
预留 |
u32UserDataMaxLen |
用户数据最大长度 |
bSingleEsBuf |
多个通道使用一个stream Buffer |
u32SingleEsBufSize |
streamBuffer的大小 |
enRefreshType |
刷新类型 |
【注意事项】
无。
【相关数据类型及接口】
7.4.44. VENC_MOD_JPEGE_S¶
【说明】
JPEG编码相关模块参数。
【定义】
typedef struct _VENC_MOD_JPEGE_S {
CVI_U32 u32OneStreamBuffer;
CVI_U32 u32JpegeMiniBufMode;
CVI_U32 u32JpegClearStreamBuf;
CVI_BOOL bSingleEsBuf;
CVI_U32 u32SingleEsBufSize;
JPEGE_FORMAT_E enJpegeFormat;
JPEGE_MARKER_TYPE_E JpegMarkerOrder[JPEG_MARKER_ORDER_CNT];
} VENC_MOD_JPEGE_S;
【成员】
成员名称 |
描述 |
---|---|
u32OneStreamBuffer |
预留 |
u32JpegeMiniBufMode |
预留 |
u32JpegClearStreamBuf |
预留 |
bSingleEsBuf |
多个通道使用一个stream Buffer |
u32SingleEsBufSize |
streamBuffer的大小 |
enJpegeFormat |
JPEG Header编码方式 |
JpegMarkerOrder |
Header编码mark顺序 |
【注意事项】
无。
【相关数据类型及接口】
7.4.45. VENC_CHN_POOL_S¶
【说明】
定义编码通道绑定的 VB 池结构体。
【定义】
typedef struct _VENC_CHN_POOL_S {
VB_POOL hPicVbPool;
VB_POOL hPicInfoVbPool;
} VENC_CHN_POOL_S;
【成员】
成员名称 |
描述 |
---|---|
hPicVbPool |
用于存储 Picture 的 VB 池 Poold |
hPicInfoVbPool |
用于存储 Picture 信息的 VB 池PoolId。 |
【注意事项】
无。
【相关数据类型及接口】
7.4.46. VENC_FRAMELOST_S¶
【说明】
定义编码丢帧结构体。
【定义】
typedef struct _VENC_FRAMELOST_S {
CVI_BOOL bFrmLostOpen;
CVI_U32 u32FrmLostBpsThr;
VENC_FRAMELOST_MODE_E enFrmLostMode;
CVI_U32 u32EncFrmGaps;
} VENC_FRAMELOST_S;
【成员】
成员名称 |
描述 |
---|---|
bFrmLostOpen |
丢帧策略使能 |
u32FrmLostBpsThr |
丢帧bitrate门限值 |
enFrmLostMode |
丢帧模式 |
u32EncFrmGaps |
允许最大连续丢帧数量 |
【注意事项】
无。
【相关数据类型及接口】
7.4.47. VENC_H264_ENTROPY_S¶
【说明】
定义H264熵编码结构体
【定义】
typedef struct _VENC_H264_ENTROPY_S {
CVI_U32 u32EntropyEncModeI;
CVI_U32 u32EntropyEncModeP;
CVI_U32 u32EntropyEncModeB;
CVI_U32 cabac_init_idc;
} VENC_H264_ENTROPY_S;
【成员】
成员名称 |
描述 |
---|---|
u32EntropyEncModeI |
I帧熵编码模式 0:cavlc, 1:cabac |
u32EntropyEncModeP |
P帧熵编码模式0:cavlc, 1:cabac |
u32EntropyEncModeB |
预留,暂未使用 |
cabac_init_idc |
参看H264协议 |
【注意事项】
无。
【相关数据类型及接口】
7.4.48. VENC_CU_PREDICTION_S¶
【说明】
定义CU 预测属性结构体
【定义】
typedef struct _VENC_CU_PREDICTION_S {
OPERATION_MODE_E enPredMode;
CVI_U32 u32IntraCost;
CVI_U32 u32Intra32Cost;
CVI_U32 u32Intra16Cost;
CVI_U32 u32Intra8Cost;
CVI_U32 u32Intra4Cost;
CVI_U32 u32Inter64Cost;
CVI_U32 u32Inter32Cost;
CVI_U32 u32Inter16Cost;
CVI_U32 u32Inter8Cost;
} VENC_CU_PREDICTION_S;
【成员】
成员名称 |
描述 |
---|---|
enPredMode |
预留,暂未使用 |
u32IntraCost |
默认为0,用于降低Intra Block出现的概率 |
u32Intra32Cost |
预留,暂未使用 |
u32Intra16Cost |
预留,暂未使用 |
u32Intra8Cost |
预留,暂未使用 |
u32Intra4Cost |
预留,暂未使用 |
u32Inter64Cost |
预留,暂未使用 |
u32Inter32Cost |
预留,暂未使用 |
u32Inter16Cost |
预留,暂未使用 |
u32Inter8Cost |
预留,暂未使用 |
【注意事项】
无。
【相关数据类型及接口】
7.4.49. VENC_H264_TRANS_S¶
【说明】
定义 H.264协议编码通道变换量化的结构体
【定义】
typedef struct _VENC_H264_TRANS_S {
CVI_U32 u32IntraTransMode;
CVI_U32 u32InterTransMode;
CVI_BOOL bScalingListValid;
CVI_U8 InterScalingList8X8[64];
CVI_U8 IntraScalingList8X8[64];
CVI_S32 chroma_qp_index_offset;
} VENC_H264_TRANS_S;
【成员】
成员名称 |
描述 |
---|---|
u32IntraTransMode |
预留,暂未使用 |
u32InterTransMode |
预留,暂未使用 |
bScalingListValid |
预留,暂未使用 |
InterScalingList8X8[64] |
预留,暂未使用 |
IntraScalingList8X8[64] |
预留,暂未使用 |
chroma_qp_index_offset |
具体含义请参见 H.264 协议。
系统默认值为 0。
取值范围:[-12, 12]
|
【注意事项】
无。
【相关数据类型及接口】
7.4.50. VENC_H265_TRANS_S¶
【说明】
定义 H.265协议编码通道变换量化的结构体
【定义】
typedef struct _VENC_H265_TRANS_S {
CVI_S32 cb_qp_offset;
CVI_S32 cr_qp_offset;
CVI_BOOL bScalingListEnabled;
CVI_BOOL bScalingListTu4Valid;
CVI_U8 InterScalingList4X4[2][16];
CVI_U8 IntraScalingList4X4[2][16];
CVI_BOOL bScalingListTu8Valid;
CVI_U8 InterScalingList8X8[2][64];
CVI_U8 IntraScalingList8X8[2][64];
CVI_BOOL bScalingListTu16Valid;
CVI_U8 InterScalingList16X16[2][64];
CVI_U8 IntraScalingList16X16[2][64];
CVI_BOOL bScalingListTU32Valid;
CVI_U8 InterScalingList32X32[64];
CVI_U8 IntraScalingList32X32[64];
} VENC_H265_TRANS_S;
【成员】
成员名称 |
描述 |
---|---|
cb_qp_offset |
具体含义请参见 H.265协议。
系统默认值为 0。
取值范围:[-12, 12]
|
cr_qp_offset |
具体含义请参见 H.265协议。
系统默认值为 0。
取值范围:[-12, 12]
|
bScalingListEnabled |
预留,暂未使用 |
bScalingListTu4Valid |
预留,暂未使用 |
InterScalingList4X4[2][16] |
预留,暂未使用 |
IntraScalingList4X4[2][16] |
预留,暂未使用 |
bScalingListTu8Valid |
预留,暂未使用 |
InterScalingList8X8[2][64] |
预留,暂未使用 |
IntraScalingList8X8[2][64] |
预留,暂未使用 |
bScalingListTu16Valid |
预留,暂未使用 |
InterScalingList16X16[2][64] |
预留,暂未使用 |
IntraScalingList16X16[2][64] |
预留,暂未使用 |
bScalingListTu32Valid |
预留,暂未使用 |
InterScalingList32X32[64] |
预留,暂未使用 |
IntraScalingList32X32[64] |
预留,暂未使用 |
【注意事项】
无。
【相关数据类型及接口】
7.4.51. H264E_ENTROPY¶
【说明】
定义 h264 熵编码模式
【定义】
/* the entropy mode of H264E */
typedef enum _H264E_ENTROPY {
H264E_ENTROPY_CAVLC = 0, /* entropy mode: CAVLC */
H264E_ENTROPY_CABAC, /* entropy mode: CABAC */
} H264E_ENTROPY;
【成员】
成员名称 |
描述 |
---|---|
H264E_ENTROPY_CAVLC |
熵编码模式 CAVLC |
H264E_ENTROPY_CABAC |
熵编码模式 CABAC |
【注意事项】
无。
7.4.52. H264E_PROFILE¶
【说明】
定义 h264 编码时的 profile level
【定义】
/* the profile of H264E */
typedef enum _H264E_PROFILE {
H264E_PROFILE_BASELINE = 0,
H264E_PROFILE_MAIN,
H264E_PROFILE_HIGH,
H264E_PROFILE_BUTT
} H264E_PROFILE;
【成员】
成员名称 |
描述 |
---|---|
H264E_PROFILE_BASELINE |
Baseline Profile: only support I/P slice and CAVLC |
H264E_PROFILE_MAIN |
Main profile: support I/P/B slice, CAVLC and CABAC |
H264E_PROFILE_HIGH |
High profile: support more prediction mode and yuv format |
【注意事项】
无。
7.4.53. PRORES_FRAMERATE¶
【说明】
定义 PRORES 帧率
【定义】
/*the frame rate of PRORES*/
typedef enum _PRORES_FRAMERATE {
PRORES_FR_UNKNOWN = 0,
PRORES_FR_23_976, /* frame rate: 23.976 */
PRORES_FR_24, /* frame rate: 24 */
PRORES_FR_25, /* frame rate: 25 */
PRORES_FR_29_97, /* frame rate: 29.97 */
PRORES_FR_30, /* frame rate: 30 */
PRORES_FR_50, /* frame rate: 50 */
PRORES_FR_59_94, /* frame rate: 59.94 */
PRORES_FR_60, /* frame rate: 60 */
PRORES_FR_100, /* frame rate: 100 */
PRORES_FR_119_88, /* frame rate: 119.88 */
PRORES_FR_120, /* frame rate: 120 */
PRORES_FR_BUTT
} PRORES_FRAMERATE;
【成员】
成员名称 |
描述 |
---|---|
PRORES_FR_UNKNOWN |
未知帧率 |
PRORES_FR_23_976 |
frame rate: 23.976 |
PRORES_FR_24 |
frame rate: 24 |
PRORES_FR_25 |
frame rate: 25 |
PRORES_FR_29_97 |
frame rate: 29.97 |
PRORES_FR_30 |
frame rate: 30 |
PRORES_FR_50 |
frame rate: 50 |
PRORES_FR_59_94 |
frame rate: 59.94 |
PRORES_FR_60 |
frame rate: 60 |
PRORES_FR_100 |
frame rate: 100 |
PRORES_FR_119_88 |
frame rate: 119.88 |
PRORES_FR_120 |
frame rate: 120 |
【注意事项】
无。
7.4.54. PRORES_ASPECT_RATIO¶
【说明】
定义 PRORES 宽高比
【定义】
/*the aspect ratio of PRORES*/
typedef enum _PRORES_ASPECT_RATIO {
PRORES_ASPECT_RATIO_UNKNOWN = 0,
PRORES_ASPECT_RATIO_SQUARE, /* aspect ratio: 1:1 */
PRORES_ASPECT_RATIO_4_3, /* aspect ratio: 4:3 */
PRORES_ASPECT_RATIO_16_9, /* aspect ratio: 16:9 */
PRORES_ASPECT_RATIO_BUTT
} PRORES_ASPECT_RATIO;
【成员】
成员名称 |
描述 |
---|---|
PRORES_ASPECT_RATIO_UNKNOWN |
未知宽高比 |
PRORES_ASPECT_RATIO_SQUARE |
aspect ratio: 1:1 |
PRORES_ASPECT_RATIO_4_3 |
aspect ratio: 4:3 |
PRORES_ASPECT_RATIO_16_9 |
aspect ratio: 16:9 |
【注意事项】
无。
7.4.55. VENC_ATTR_PRORES_S¶
【说明】
定义 PRORES 编码属性
【定义】
/*the attribute of PRORES*/
typedef struct _VENC_ATTR_PRORES_S {
char cIdentifier[4]; /* name */
PRORES_FRAMERATE enFrameRateCode; /* frame rate */
PRORES_ASPECT_RATIO enAspectRatio; /* aspect ratio */
} VENC_ATTR_PRORES_S;
【成员】
成员名称 |
描述 |
---|---|
cIdentifier |
存放名称的数组 |
enFrameRateCode |
帧率取值 |
enAspectRatio |
宽高比取值 |
【注意事项】
无。
7.4.56. VENC_H264_VUI_S¶
【说明】
定义 h264 vui 参数
【定义】
/* the param of the h264e vui */
typedef struct _VENC_H264_VUI_S {
VENC_VUI_ASPECT_RATIO_S stVuiAspectRatio;
VENC_VUI_H264_TIME_INFO_S stVuiTimeInfo;
VENC_VUI_VIDEO_SIGNAL_S stVuiVideoSignal;
VENC_VUI_BITSTREAM_RESTRIC_S stVuiBitstreamRestric;
} VENC_H264_VUI_S;
【成员】
成员名称 |
描述 |
---|---|
stVuiAspectRatio |
vui 宽高比参数 |
stVuiTimeInfo |
h264 编码 vui timing info 参数 |
stVuiVideoSignal |
vui video signal 参数 |
stVuiBitstreamRestric |
vui video bitstream_restriction_flag 参数 |
【注意事项】
无。
7.4.57. VENC_H265_VUI_S¶
【说明】
定义 h265 vui 参数
【定义】
/* the param of the h265e vui */
typedef struct _VENC_H265_VUI_S {
VENC_VUI_ASPECT_RATIO_S stVuiAspectRatio;
VENC_VUI_H265_TIME_INFO_S stVuiTimeInfo;
VENC_VUI_VIDEO_SIGNAL_S stVuiVideoSignal;
VENC_VUI_BITSTREAM_RESTRIC_S stVuiBitstreamRestric;
} VENC_H265_VUI_S;
【成员】
成员名称 |
描述 |
---|---|
stVuiAspectRatio |
vui 宽高比参数 |
stVuiTimeInfo |
h264 编码 vui timing info 参数 |
stVuiVideoSignal |
vui video signal 参数 |
stVuiBitstreamRestric |
vui video bitstream_restriction_flag 参数 |
【注意事项】
无。
7.4.58. VENC_FRAME_TYPE_E¶
【说明】
venc 帧类型
【定义】
typedef enum _VENC_FRAME_TYPE_E {
VENC_FRAME_TYPE_NONE = 1,
VENC_FRAME_TYPE_IDR, /* frame type: IDR */
VENC_FRAME_TYPE_BUTT
} VENC_FRAME_TYPE_E;
【成员】
成员名称 |
描述 |
---|---|
VENC_FRAME_TYPE_NONE |
非 I 帧 |
VENC_FRAME_TYPE_IDR |
IDR 帧 |
【注意事项】
无。
7.4.59. USER_FRAME_INFO_S¶
【说明】
定义 user frame 信息
【定义】
/* the information of the user frame*/
typedef struct _USER_FRAME_INFO_S {
VIDEO_FRAME_INFO_S stUserFrame; /* the information of video frame */
USER_RC_INFO_S stUserRcInfo; /* the information of the user rc*/
} USER_FRAME_INFO_S;
【成员】
成员名称 |
描述 |
---|---|
stUserFrame |
视频帧信息 |
stUserRcInfo |
用户码率控制信息 |
【注意事项】
无。
7.4.60. VENC_FRAME_PARAM_S¶
【说明】
定义编码帧参数
【定义】
typedef struct _VENC_FRAME_PARAM_S {
CVI_U32 u32FrameQp; /* frame qp */
CVI_U32 u32FrameBits; /* frame bits */
} VENC_FRAME_PARAM_S;
【成员】
成员名称 |
描述 |
---|---|
u32FrameQp |
frame qp 值 |
u32FrameBits |
frame bits 值 |
【注意事项】
无。
7.4.61. VENC_RC_QPMAP_MODE_E¶
【说明】
定义码控 qp 模式
【定义】
/* qpmap mode*/
typedef enum _VENC_RC_QPMAP_MODE_E {
VENC_RC_QPMAP_MODE_MEANQP = 0, /* mean qp */
VENC_RC_QPMAP_MODE_MINQP, /* minimum qp */
VENC_RC_QPMAP_MODE_MAXQP, /* maximum qp */
VENC_RC_QPMAP_MODE_BUTT,
} VENC_RC_QPMAP_MODE_E;
【成员】
成员名称 |
描述 |
---|---|
VENC_RC_QPMAP_MODE_MEANQP |
平均 qp |
VENC_RC_QPMAP_MODE_MINQP |
最小 qp |
VENC_RC_QPMAP_MODE_MAXQP |
最大 qp |
【注意事项】
无。