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)高级跳帧参考示意图
