---
title: hi_mpi_venc_set_ref_param
description: "设置H.264/H.265编码通道高级跳帧参考参数，用于改变帧间参考关系。关于高级跳帧模式的详细说明请参见高级跳帧模式说明。"
url: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/latest/Application%20Development%20Guide/aadgc/aclcppdevg_03_1070.html
sourcePath: /source/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application Development Guide/aadgc/aclcppdevg_03_1070.html
indexId: 1be78e27465954d62a3a8f47944eed5b7cac9a4a886437e0e84f2b3592796442105
---
# hi_mpi_venc_set_ref_param

#### 函数功能

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


#### 约束说明

- 创建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 。

#### 函数原型

hi_s32 hi_mpi_venc_set_ref_param(hi_venc_chn chn, const hi_venc_ref_param *ref_param)


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| chn | 输入 | 编码通道号。 Atlas 200/500 A2推理产品，编码通道号的取值范围：[0, 128)，JPEGE功能和VENC功能共用通道，且通道总数最多128。 |
| ref\_param | 输入 | H.264/H.265编码通道高级跳帧参考参数指针。 |


#### 返回值说明

- 0：成功
- 非0：失败，参见  VENC视频编码/JPEGE图片编码返回码


#### 高级跳帧模式说明

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