Skip to main content

hi_mpi_venc_set_ref_param

hi_mpi_venc_get_jpege_predicted_size

函数功能

预估JPEGE编码一帧图片所需的输出缓冲区大小。

函数原型

hi_s32 hi_mpi_venc_get_jpege_predicted_size(const hi_video_frame_info* frame, const hi_venc_jpeg_param* jpeg_param, hi_u32 *size)

参数说明

参数名输入/输出说明
frame输入原始图像信息的指针。
jpeg_param输入JPEG协议编码通道的高级参数集合的指针,预留参数。
size输出输出缓冲区大小的指针,单位为Byte。

返回值说明

父主题: VENC视频编码功能/JPEGE图片编码功能

hi_mpi_venc_set_roi_attr

函数功能

设置H.264/H.265通道的ROI属性,用户可以通过配置ROI区域,对该区域的图像Qp进行限制,从而实现图像中该区域的Qp与其他图像区域的差异化。关于ROI编码功能的详细说明请参见ROI编码功能说明

约束说明

  • 本接口用于设置H.264/H.265通道的ROI属性。

  • 本接口在编码通道创建之后,编码通道销毁之前设置。此接口在编码过程中被调用时,等到下一个帧时生效。

  • 建议用户在创建通道之后,启动编码之前调用此接口,减少在编码过程中调用的次数。

  • 建议用户在调用此接口之前先调用hi_mpi_venc_get_roi_attr接口,获取当前通道的ROI配置,然后再进行设置。

  • 设置该接口后,如果当前帧判断编码为pskip 帧,以pskip帧效果优先。

  • 设置该接口后,可能会出现感兴趣区域QP值不全为设置值的现象;这是因为在编码过程中,有些编码块的残差会为0,没有数据需要被量化,QP值不生效所致,属于正常现象,不影响编码效果。

函数原型

hi_s32 hi_mpi_venc_set_roi_attr(hi_venc_chn chn, const hi_venc_roi_attr *roi_attr)

参数说明

参数名输入/输出说明
chn输入编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。
roi_attr输入ROI 区域参数指针。

返回值说明

ROI编码功能说明

ROI(Region Of Interest)编码:对感兴趣区域编码。

用户可以通过配置ROI区域,对该区域的图像Qp进行限制,从而实现图像中该区域的Qp与其它图像区域的差异化。系统现仅支持对H.264/H.265通道进行ROI设置。系统提供了8个感兴趣区域,可供用户同时使用。

8个区域可以互相叠加,且叠加时的优先级按照0~7的索引号依次提高,这里,叠加优先级是指发生叠加时,图像区域的最终Qp值的判定,最终的区域Qp值按照优先级最高的区域设定。ROI区域可配置绝对Qp和相对Qp两种模式。

  • 绝对Qp:ROI区域的Qp为用户设定的Qp 值。
  • 相对Qp:ROI区域的Qp为码率控制产生的Qp与用户设定的Qp偏移值的和。

以下图为例,假如图像Qp为25,即图像中所有宏块Qp值为25。Roi区域0设置为绝对Qp模式,Qp值为10,索引为0;Roi区域1设置为相对Qp模式,Qp为-10,索引为1。区域0的index小于区域1的index,所以在发生互相重叠的图像区域按高优先级的区域(区域1)Qp设置。区域0除了发生重叠的部分的Qp值等于10。区域1 的Qp值为25-10=15。

父主题: VENC视频编码功能/JPEGE图片编码功能

hi_mpi_venc_get_roi_attr

函数功能

获取H.264/H.265通道的ROI配置属性。关于ROI编码功能的详细说明请参见ROI编码功能说明

约束说明

  • 本接口用于获取H.264/H.265协议编码通道的指定索引号的ROI配置。

  • 本接口在编码通道创建之后,编码通道销毁之前调用。

  • 建议用户在创建通道之后,启动编码之前调用此接口,减少在编码过程中调用的次数。

函数原型

hi_s32 hi_mpi_venc_get_roi_attr(hi_venc_chn chn, hi_u32 idx, hi_venc_roi_attr *roi_attr)

参数说明

参数名输入/输出说明
chn输入编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。
idx输入H.264/H.265协议编码通道ROI区域索引。
roi_attr输出ROI区域参数指针。

返回值说明

父主题: VENC视频编码功能/JPEGE图片编码功能

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编码通道高级跳帧参考参数指针。

返回值说明

高级跳帧模式说明

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

父主题: VENC视频编码功能/JPEGE图片编码功能

hi_mpi_venc_get_ref_param

函数功能

获取H.264/H.265编码通道高级跳帧参考参数。关于高级跳帧模式的详细说明请参见高级跳帧模式说明

约束说明

本接口在编码通道创建之后、编码通道销毁之前调用。

函数原型

hi_s32 hi_mpi_venc_get_ref_param(hi_venc_chn chn, hi_venc_ref_param *ref_param)

参数说明

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

返回值说明

父主题: VENC视频编码功能/JPEGE图片编码功能

hi_mpi_venc_set_h264_vui

函数功能

设置H.264协议编码通道的Vui参数。

Vui(Video usability information)参数主要包含解码图像的格式信息,比如采样横纵比、光电转换特性、颜色空间等。Vui参数在协议中属于可选参数,不影响视频编码过程,但会建议解码器/播放器做一些矫正处理。

约束说明

  • 本接口用于设置H.264协议编码通道的Vui配置。

  • 本接口在编码通道创建之后,编码通道销毁之前设置。此接口在编码过程中被调用时,等到下一个I帧时生效。

  • 建议用户在创建通道之后,启动编码之前调用此接口,减少在编码过程中调用的次数。

  • 用户应当仅在H.264协议编码通道中调用本接口。

  • 目前仅开放hi_venc_h264_vui中的hi_venc_vui_video_signal参数和hi_venc_vui_h264_time_info参数供用户配置,其它参数预留,均需配置为默认值,否则会导致编码失败。建议用户在调用此接口之前先调用hi_mpi_venc_get_h264_vui接口,获取当前编码通道的Vui默认配置,然后再进行设置,避免预留参数出错。

  • hi_venc_vui_h264_time_info参数包含时钟计数相关参数,默认情况下为不生效状态,用户想要控制显示帧率时需要主动配置相关参数。注意,显示帧率只影响播放器的播放速度,若用户想设置编码过程中的码控帧率需配置hi_mpi_venc_create_chn接口中的输入/输出帧率参数。

    建议用户将码控帧率与显示帧率设置一致,否则播放时的码率可能与用户设置的编码码率不同,播放时的码率会随着所设置的显示帧率而变化。

    如果用户需要调整播放速度,则建议在合理范围内调整显示帧率,一般正常视频播放速度为30fps,表示显示帧率为30fps,若将显示帧率调大,则播放速度加快,例如3倍速播放,则显示帧率设置为90fps;若将显示帧率调小,则播放速度减慢,例如0.5倍速播放,则显示帧率设置为15fps。

  • 由于Vui只是协议可选参数而非强制参数,调用本接口设置参数(如显示帧率、像素值域范围等)的最终效果取决于解码器/播放器行为,或者用户自定义的解码/播放行为。

函数原型

hi_s32 hi_mpi_venc_set_h264_vui(****hi_venc_chn chn, const hi_venc_h264_vui *h264_vui)

参数说明

参数名输入/输出说明
chn输入编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。
h264_vui输入H.264协议编码通道的Vui参数。

返回值说明

父主题: VENC视频编码功能/JPEGE图片编码功能

hi_mpi_venc_get_h264_vui

函数功能

获取H.264协议编码通道的Vui配置。

约束说明

  • 本接口用于获取H.264协议编码通道的Vui配置。

  • 本接口在编码通道创建之后,编码通道销毁之前调用。

  • 建议用户在创建通道之后,启动编码之前调用此接口,减少在编码过程中调用的次数。

  • 用户应当仅在H.264协议编码通道中调用本接口。

函数原型

hi_s32 hi_mpi_venc_get_h264_vui(****hi_venc_chn chn, hi_venc_h264_vui *h264_vui)

参数说明

参数名输入/输出说明
chn输入编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。
h264_vui输出H.264协议编码通道的Vui属性。

返回值说明

父主题: VENC视频编码功能/JPEGE图片编码功能

在线提单