3. 编码器输入讯息¶
3.1. ROI接口定义¶
3.1.1. CVI_VENC_SetRoiAttr¶
【描述】
设置H.264/H.265通道的ROI属性。
【语法】
CVI_S32 CVI_VENC_SetRoiAttr(VENC_CHN VeChn, const VENC_ROI_ATTR_S *pstRoiAttr)【参数】
参数名称
描述
输入/输出
VeChn
VENC Channel号
输入
pstRoiAttr
ROI区域参数
输入
【返回值】
返回值
描述
CVI_SUCCESS
成功
非0
失败,其值为错误码
【需求】
头文件:cvi_comm_venc.h、cvi_venc.h
库文件:libvenc.a
【注意】
u32Index:支持每个通道可设置8个ROI区域,按照0~7索引号对ROI区域进行管理,u32Index表示用户设置的ROI的索引号。重复区域按照0~7的ROI索引号依次提高优先级。
bEnable:指定当前的ROI区域是否使能。
bAbsQp:指定当前的ROI区域使用绝对QP或是相对QP模式。
s32Qp:当bAbsQp为CVI_TRUE时,s32Qp为对ROI区域设定的Qp值,当bAbsQp为CVI_FALSE时,s32Qp表示对ROI区域内部码率控制之Qp加上设定的Qp偏移值。
stRect:指定当前的ROI区域的位置坐标和区域的大小。ROI区域必须在图像范围内。
系统默认没有ROI区域使能,用户必须在编码通道创建之后,编码通道销毁之前设置调用此接口启动ROI。此接口在编码过程中被调用时,等到下一个帧时生效。
建议用户在创建通道之后,启动编码之前调用此接口,减少在编码过程中调用的次数。建议用户在调用此接口之前,先调用CVI_VENC_GetRoiAttr接口,获取当前信道的ROI配置后再进行设置。
设置该接口后,如果当前帧判断编码为pskip帧,以pskip帧效果优先。
当码率控制模式不为FixedQP模式时,ROI区域可配置。
H.264当ROI始能时,宏块级码率控制失效。
绝对Qp模式因为码率控制调适宏块QP,实际编码QP与设置之QP可能会有些差异。
【举例】
无
3.1.2. CVI_VENC_GetRoiAttr¶
【描述】
获取H.264/H.265通道的ROI属性。
【语法】
CVI_S32 CVI_VENC_GetRoiAttr(VENC_CHN VeChn, CVI_U32 u32Index, VENC_ROI_ATTR_S *pstRoiAttr);【参数】
参数名称
描述
输入/输出
VeChn
VENC Channel号
输入
u32Index
道ROI区域索引
输入
pstRoiAttr
ROI区域参数
输入
【返回值】
返回值
描述
CVI_SUCCESS
成功
非0
失败,其值为错误码
【需求】
头文件:cvi_comm_venc.h、cvi_venc.h
库文件:libvenc.a
【注意】
依照u32Index索引获取该ROI区域配置
用户必须在编码通道创建之后,编码通道销毁之前设置调用此接口
建议用户在调用CVI_VENC_SetRoiAttr接口之前,先调用此接口,获取当前信道的ROI配置后再进行设置
【举例】
无
3.2. 码率控制接口¶
typedef enum _VENC_RC_MODE_E {
VENC_RC_MODE_H264CBR = 1,
VENC_RC_MODE_H264VBR,
VENC_RC_MODE_H264AVBR,
VENC_RC_MODE_H264QVBR,
VENC_RC_MODE_H264FIXQP,
VENC_RC_MODE_H264QPMAP,
VENC_RC_MODE_MJPEGCBR,
VENC_RC_MODE_MJPEGVBR,
VENC_RC_MODE_MJPEGFIXQP,
VENC_RC_MODE_H265CBR,
VENC_RC_MODE_H265VBR,
VENC_RC_MODE_H265AVBR,
VENC_RC_MODE_H265QVBR,
VENC_RC_MODE_H265FIXQP,
VENC_RC_MODE_H265QPMAP,
VENC_RC_MODE_BUTT,
} VENC_RC_MODE_E;
typedef struct _VENC_RC_ATTR_S {
VENC_RC_MODE_E enRcMode; /* RW; the type of rc*/
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; ///< The Attribute of FixedQp Mode
VENC_H265_QPMAP_S stH265QpMap;
};
} VENC_RC_ATTR_S;