hi_mpi_venc_set_intra_refresh
hi_mpi_venc_set_cu_pred
函数功能
本接口用于调节通道CU/MB的模式选择的倾向性,支持调节帧间预测(Inter)和帧内预测(Intra)的倾向性配置以及编码块大小的倾向性配置。
编码协议以像素块作为基本处理单元,H.265/H.264中分别称为CU(Coding Unit)/MB(MacroBlock)。本接口中的CU模式指Inter/Intra预测模式中对不同尺寸像素块的选择。
约束说明
-
仅H.265/H.264编码通道支持。
-
建议用户在创建通道之后,启动编码之前调用本接口,减少编码过程中调用本接口的次数。若在编码过程中调用本接口,则下一帧编码时配置生效。
-
建议用户在调用此接口之前先调用hi_mpi_venc_get_cu_pred接口,获取CU模式选择的倾向性配置,然后再进行设置。
-
注意某些场景下特定模式不使能(例如,H.264中最大MB尺寸为16*16,且baseline和main profile下inter16_cost不使能,high profile下inter8_cost不使能),即使用户设置了这些特定模式的倾向性参数也不生效。
函数原型
hi_s32 hi_mpi_venc_set_cu_pred(****hi_venc_chn chn, const hi_venc_cu_prediction *cu_pred)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| chn | 输入 | 编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。 |
| cu_pred | 输入 | CU模式选择的倾向性参数。 该结构体内包含以下参数: - pred_mode:倾向性选择模式,支持auto和manual两种模式。auto模式下由驱动内部完成倾向性配置,即用户的配置参数不生效;manual模式允许用户根据实际场景完成自定义的倾向性配置。 - intra32_cost/intra16_cost/intra8_cost/intra4_cost/inter64_cost/inter32_cost/inter16_cost/inter8_cost分别设置各自模式的倾向性大小。默认每个cost值为8,即不做倾向性配置。每个模式的cost设置越大意味着选择该模式的倾向性越小。 |
返回值说明
- 0:成功
- 非0:失败,参见VENC视频编码/JPEGE图片编码返回码
hi_mpi_venc_get_cu_pred
函数功能
获取通道CU/MB的模式选择的倾向性设置。
约束说明
-
本接口用于获取CU模式选择的倾向性配置。
-
本接口在编码通道创建之后,编码通道销毁之前调用。
-
仅H.265/H.264编码通道支持。
函数原型
hi_s32 hi_mpi_venc_get_cu_pred(****hi_venc_chn chn, hi_venc_cu_prediction *cu_pred)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| chn | 输入 | 编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。 |
| cu_pred | 输出 | CU模式选择的倾向性参数。 |
返回值说明
- 0:成功
- 非0:失败,参见VENC视频编码/JPEGE图片编码返回码
hi_mpi_venc_set_intra_refresh
函数功能
设置P帧刷新Islice的参数。
约束说明
-
仅支持H.265/H.264、GOP模式为HI_VENC_GOP_MODE_NORMAL_P的编码通道。
-
调用hi_mpi_venc_set_ref_param接口设置高级跳帧参考后需要重新进行设置,不支持高级跳帧参考pred_en为0。
-
建议在创建通道后、启动编码前先调用hi_mpi_venc_get_intra_refresh接口获取P帧刷Islice的设置参数后,再调用本接口设置P帧刷Islice的参数。
-
调用本接口使能P帧刷Islice时,会生成一个I帧,且需等下一个GOP的IDR帧才能生效;关闭P帧刷Islice参数时会立即生效。
函数原型
hi_s32 hi_mpi_venc_set_intra_refresh(****hi_venc_chn chn, const hi_venc_intra_refresh *intra_refresh);
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| chn | 输入 | 编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。 |
| intra_refresh | 输入 | 刷Islice的参数。 |
返回值说明
- 0:成功
- 非0:失败,参见VENC视频编码/JPEGE图片编码返回码
hi_mpi_venc_get_intra_refresh
函数功能
获取P帧刷新Islice的设置参数。
约束说明
- 本接口必须在编码通道创建之后,编码通道销毁之前调用。
- 切换GOP模式时,获取的属性是已设置的最新的属性。
函数原型
hi_s32 hi_mpi_venc_get_intra_refresh(****hi_venc_chn chn, hi_venc_intra_refresh *intra_refresh)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| chn | 输入 | 编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。 |
| intra_refresh | 输出 | 刷Islice的参数。 |
返回值说明
- 0:成功
- 非0:失败,参见VENC视频编码/JPEGE图片编码返回码
hi_mpi_venc_set_chn_attr
函数功能
本接口用于设置编码通道的属性。
约束说明
-
仅H.265/H.264编码通道支持。
-
建议用户在调用此接口之前先调用hi_mpi_venc_get_chn_attr接口,获取当前通道属性,然后再进行设置。
-
编码通道属性包括了编码器属性、帧结构GOP属性和码率控制器RC属性三部分。编码通道属性分为动态属性和静态属性两种。其中,静态属性的属性值在通道创建时配置,在通道创建之后不能被修改;动态属性的属性值在通道创建时配置,有部分参数不支持修改,支持修改的参数在通道销毁之前可以被修改。如果设置静态属性或者不支持修改的参数,则返回失败。静态属性、属性是否支持修改、属性取值范围具体请参见hi_venc_chn_attr。
-
设置编码通道属性,未修改gop_mode 时,则通道属性立即生效;修改 gop_mode时,则通道属性延时生效,最大延时生效时间如下表所示**(当前不支持HI_VENC_GOP_MODE_LOW_DELAY_B模式)**:
gop_mode修改前 gop_mode修改后 最大延时(以编码帧的个数为单位) HI_VENC_GOP_MODE_LOW_DELAY_B 非HI_VENC_GOP_MODE_LOW_DELAY_B 1+b_frame_num 非HI_VENC_GOP_MODE_LOW_DELAY_B 任意不同于改变前的gop_mode 1 -
修改gop_mode时,通道的P帧刷Islice、跳帧参考的属性( H.264/H.265 )、pic_order_cnt_type( H.264 )会恢复默认值,如需继续使用需要重新配置。
-
如果修改GOP、RC属性中的一种,RC模块会重新初始化,所有RC高级参数都恢复到默认值。如果客户程序中有对RC高级参数的调整,需要重新设置。 RC高级参数请参考hi_mpi_venc_set_rc_param等。
-
如果同时修改gop_mode和rc_mode时,由于存在延迟生效(延时参见上表),为了防止调用hi_mpi_venc_get_rc_param获取的RC参数值不准确,建议等待延迟参数生效后再执行相应操作。
函数原型
hi_s32 hi_mpi_venc_set_chn_attr(hi_venc_chn chn, const hi_venc_chn_attr *chn_attr)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| chn | 输入 | 编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。 |
| chn_attr | 输入 | 编码通道属性的指针。 |
返回值说明
- 0:成功
- 非0:失败,参见VENC视频编码/JPEGE图片编码返回码
hi_mpi_venc_get_chn_attr
函数功能
获取编码通道当前的属性。
约束说明
- 本接口在编码通道创建之后、编码通道销毁之前调用。
- 仅H.265/H.264编码通道支持。
函数原型
hi_s32 hi_mpi_venc_get_chn_attr(****hi_venc_chn chn, hi_venc_chn_attr *chn_attr)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| chn | 输入 | 编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。 |
| chn_attr | 输出 | 编码通道属性的指针。 |
返回值说明
- 0:成功
- 非0:失败,参见VENC视频编码/JPEGE图片编码返回码
在线提单