下载
中文
注册

venc_set_ref_param

c函数原型

hi_s32 hi_mpi_venc_set_ref_param(hi_venc_chn chn, const hi_venc_ref_param *ref_param)

Python函数

ret = acl.himpi.venc_set_ref_param(chn, ref_param)

函数功能

设置H.264/H.265编码通道高级跳帧参考参数,用于改变帧间参考关系。关于高级跳帧模式的详细说明请参见高级跳帧模式说明

Atlas 200/300/500 推理产品,不支持该接口。

Atlas 训练系列产品,不支持该接口。

Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。

输入说明

chn:int,编码通道号。
  • Atlas 推理系列产品,编码通道号的取值范围:[0, 256),JPEGE功能和VENC功能共用通道,且通道总数最多256。
  • Atlas 200I/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。

ref_param:dict,H.264/H.265编码通道高级跳帧参考参数字典。参见hi_venc_ref_param

返回值说明

ret:int,错误码。

约束说明

  • 创建H.264/H.265协议编码通道时,默认跳帧参考模式是1倍跳帧参考模式。如果用户需要修改编码通道的跳帧参考,建议在创建通道之后,启动编码之前调用此接口,减少在编码过程中调用的次数。
  • 本接口在编码过程中被调用时,等到下一个I帧时生效。
  • 如果用户设置1倍跳帧参考模式,对应的配置为:pred_en = HI_TRUE, enhance = 0 ,base = 1;如果设置2倍跳帧参考模式,对应的配置为: pred_en = HI_TRUE,enhance = 1, base = 1;如果设置 4 倍跳帧参考模式,对应的配置为: pred_en = HI_TRUE, enhance = 1, base = 2。
  • 如果用户设置通道的Gop Mode“HI_VENC_GOP_MODE_DUAL_P”时,“sp_interval”只支持设置为sp_interval =(enhance + 1 ) * base,其中,当“sp_interval”不为0时,“pred _en”只支持设置为“HI_TRUE”
  • 如果用户设置通道的Gop Mode“HI_VENC_GOP_MODE_SMART_P”时,“pred_en”只支持设置为“HI_TRUE”
  • 如果用户设置通道的Gop Mode“HI_VENC_GOP_MODE_BIPREDB”时,“enhance”必须等于“b_frame_num”

高级跳帧模式说明

高级跳帧参考模式涉及3 个参数:base、enhance 和pred_en,其含义请参考hi_venc_ref_param。高级跳帧参考模式示意图如下图所示。

  • 注意:dual_p 模式且sp_interval不等于0下配置高级跳帧参考需要满足如下条件:base *(enhance+1)= sp_interval,例如:4 倍高级跳帧参考(base=2,enhance=1),那么dual_p 的sp_interval =2*(1+1)=4。
  • normal_p高级跳帧参考示意图

  • smart_p高级跳帧参考示意图

  • adv_smart_p高级跳帧参考示意图

  • dual_p (sp_interval!=0)高级跳帧参考示意图

  • dual_p (sp_interval=0)高级跳帧参考示意图