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配置后再进行设置
【举例】
无