跳到主要内容

hi_venc_intra_refresh

hi_venc_vui_bitstream_restric

说明

定义H.264/H.265协议编码通道Vui中Bitstream_Restriction信息的结构体。预留结构体,暂不支持用户配置。

定义

typedef struct {
hi_u8 bitstream_restriction_flag;
} hi_venc_vui_bitstream_restric;

成员

成员名称描述
bitstream_restriction_flag具体含义请参见H.265协议,系统默认值为0。

父主题: VENC视频/JPEGE图像编码

hi_venc_cu_prediction

说明

定义CU模式选择的倾向性配置结构体。

定义

typedef struct {
hi_op_mode pred_mode;
hi_u32 intra32_cost;
hi_u32 intra16_cost;
hi_u32 intra8_cost;
hi_u32 intra4_cost;
hi_u32 inter64_cost;
hi_u32 inter32_cost;
hi_u32 inter16_cost;
hi_u32 inter8_cost;
} hi_venc_cu_prediction;

成员

成员名称描述
pred_mode倾向性选择模式,支持自动模式、手动模式两种。
intra32_costIntra32倾向性调节,对应帧内预测32*32像素块尺寸模式,该值增大表示选择该模式的倾向性越小。 取值范围:[0, 15]。 默认值:8。 H.264该值无效。
intra16_costIntra16倾向性调节,对应帧内预测16*16像素块尺寸模式,该值增大表示选择该模式的倾向性越小。 取值范围:[0, 15]。 默认值:8。
intra8_costIntra8倾向性调节,对应帧内预测8*8像素块尺寸模式,该值增大表示选择该模式的倾向性越小。 取值范围:[0, 15]。 默认值:8。
intra4_costIntra4倾向性调节,对应帧内预测4*4像素块尺寸模式,该值增大表示选择该模式的倾向性越小。 取值范围:[0, 15]。 默认值:8。
inter64_costInter64倾向性调节,对应帧间预测64*64像素块尺寸模式,该值增大表示选择该模式的倾向性越小。 取值范围:[0, 15]。 默认值:8。 H.264该值无效。
inter32_costInter32倾向性调节,对应帧间预测32*32像素块尺寸模式,该值增大表示选择该模式的倾向性越小。 取值范围:[0, 15]。 默认值:8。 H.264该值无效。
inter16_costInter16倾向性调节,对应帧间预测16*16像素块尺寸模式,该值增大表示选择该模式的倾向性越小。 取值范围:[0, 15]。 默认值:8。
inter8_costInter8倾向性调节,对应帧间预测8*8像素块尺寸模式,该值增大表示选择该模式的倾向性越小。 取值范围:[0, 15]。 默认值:8。

父主题: VENC视频/JPEGE图像编码

hi_venc_intra_refresh

说明

P帧刷Islice控制参数。

定义

typedef struct {
hi_bool refresh_enable;
hi_venc_intra_refresh_mode intra_refresh_mode;
hi_u32 refresh_num;
hi_u32 req_i_qp;
} hi_venc_intra_refresh;

成员

成员名称描述
refresh_enable是否使能刷Islice功能。
- 0:不使能,默认值;
- 1:使能 。
intra_refresh_modeI宏块刷新模式,分为按行刷新和按列刷新。默认按行刷新。
refresh_num每次I宏块刷新行数或者列数,可以通过这个变量控制刷新的速度及码流的平稳程度。刷新行数或者列数越多,刷新的速度越快,但是码流平稳度越差;刷新的行数或者列数越少,刷新的速度越慢,但是码流平稳度越好。 需保证设置的refresh_num可以在一个GOP内完成Islice刷新,注意高级跳帧参考时只会在base层中的P帧(可被base层中其他帧的参考)进行刷新。refresh_num需满足表1中的计算公式。
req_i_qpI帧QP值。 hi_mpi_venc_set_intra_refresh接口与hi_mpi_venc_request_idr接口配合使用时,该值用于控制插入的IDR帧的质量,该值越小,质量越好,插入的IDR帧大小越大。 取值范围:[0, 51] ,默认值51。

参考信息

表1 refresh_num参数值计算公式

-

计算公式

备注

H.264,refresh_num默认值为:

(pic_height +lcu_size-1)>>6

  • 行:refresh_num*(max_refresh_frame_in_gop - 1) >= (pic_height + lcu_size - 1) /lcu_size
  • 列:refresh_num*(max_refresh_frame_in_gop - 1) >= (pic_width + lcu_size - 1) /lcu_size

计算公式中的/表示向下取整。

  • GOP内P帧刷Islice最大帧数max_refresh_frame_in_gop参数值取值说明:
    • 无高级跳帧参考时:max_refresh_frame_in_gop = gop;
    • 有高级跳帧参考时:max_refresh_frame_in_gop = (gop + (base*(enhance+1) -1))/(base*(enhance+1))。
  • 编码单元尺寸lcu_size参数值取值说明:
    • H.264时,该参数值固定为16;
    • H265时:
      • Atlas 200/500 A2推理产品,该参数值固定为32

H.265,refresh_num默认值为: ((pic_height + lcu_size - 1)/lcu_size) >> 2

父主题: VENC视频/JPEGE图像编码

hi_venc_intra_refresh_mode

说明

P帧刷Islice模式定义。

定义

typedef enum{
INTRA_REFRESH_ROW = 0, /* 按行刷新 */
INTRA_REFRESH_COLUMN, /* 按列刷新 */
INTRA_REFRESH_BUTT
} hi_venc_intra_refresh_mode;

父主题: VENC视频/JPEGE图像编码

hi_pngd_chn

说明

描述PNG图片解码通道。

定义

typedef hi_s32 hi_pngd_chn;

父主题: PNGD图像解码

在线提单