4. 智能编码设置¶
智能编码技术是一种基于AI的视频压缩优化方案,其核心在于实现对关键目标的精准保护与码率的高效控制。该技术通过人工智能算法智能识别场景中的关键目标, 并借助图像信号处理(ISP)技术实时分析物体运动状态及场景复杂度。基于这些分析数据,编码器可动态调整码率控制等关键参数,从而在保证重点区域画质的同时, 显著降低整体码率,实现存储资源的高效利用。
4.1. 智能编码接口定义¶
4.1.1. CVI_VENC_EnableSvc¶
【描述】
是否开启H.264/H.265智能编码。
【语法】
CVI_S32 CVI_VENC_EnableSvc(VENC_CHN VeChn, CVI_BOOL enable)【参数】
参数名称
描述
输入/输出
VeChn
VENC 通道号
输入
enable
是否开启
输入
【返回值】
返回值
描述
CVI_SUCCESS
成功
非0
失败,其值为错误码
【需求】
头文件:cvi_comm_venc.h、cvi_venc.h
库文件:libvenc.a
4.1.2. CVI_VENC_SetSvcParam¶
【描述】
设置H.264/H.265智能编码属性。
【语法】
CVI_S32 CVI_VENC_SetSvcParam(VENC_CHN VeChn, const VENC_SVC_PARAM_S *pstSvcParam)【参数】
参数名称
描述
输入/输出
VeChn
VENC 通道号
输入
pstSvcParam
智能编码参数
输入
【返回值】
返回值
描述
CVI_SUCCESS
成功
非0
失败,其值为错误码
【需求】
头文件:cvi_comm_venc.h、cvi_venc.h
库文件:libvenc.a
【注意】
fg_protect_en:是否启用前景增强功能。
开启:1 禁用:0
fg_dealt_qp:当前帧级qp和运动qp的差值。
只有正值,值越大区域保护越明显,建议值:4,取值范围[0-8]
complex_scene_detect_en:是否开启场景复杂度检测。
开启:1 禁用:0
complex_scene_low_th:被认为是简单场景的最大阈值。
范围[0, 512],默认值256,根据直方图离散度统计,小于该值将被认为是简单场景,推荐值:150
complex_scene_height_th:被认为是复杂场景的最小阈值。
范围[0, 512],默认值318,根据直方图离散度统计,大于该值将被认为是复杂场景,推荐值:318
middle_min_percent:普通场景静态时的最小码率比例。
范围[0,100],默认值:50
complex_min_percent:复杂场景静态时最小码率比例。
范围[0,100],默认值:80
smart_ai_en:是否开启ai map。
开启:1 禁用:0,开启后需要配置ai生成roimap使用才能生效
【举例】
无
4.1.3. CVI_VENC_GetSvcParam¶
【描述】
获取H.264/H.265通道的智能编码属性。
【语法】
CVI_S32 CVI_VENC_GetSvcParam(VENC_CHN VeChn, VENC_SVC_PARAM_S *pstSvcParam)【参数】
参数名称
描述
输入/输出
VeChn
VENC Channel号
输入
pstSvcParam
智能编码参数
输入
【返回值】
返回值
描述
CVI_SUCCESS
成功
非0
失败,其值为错误码
【需求】
头文件:cvi_comm_venc.h、cvi_venc.h
库文件:libvenc.a
【注意】
用户必须在编码通道创建之后,编码通道销毁之前设置调用此接口
建议用户在调用CVI_VENC_SetSvcParam接口之前,先调用此接口,获取当前通道的参数配置后再进行设置
【举例】
无