文档
注册

hi_venc_attr

说明

定义编码器属性结构体。

定义

typedef struct {
    hi_payload_type type;
    hi_u32 max_pic_width;
    hi_u32 max_pic_height;
    hi_u32 buf_size;
    hi_u32 profile;
    hi_bool is_by_frame;
    hi_u32 pic_width;
    hi_u32 pic_height;
    union {
        hi_venc_h264_attr h264_attr; 
        hi_venc_h265_attr h265_attr; 
        hi_venc_jpeg_attr jpeg_attr; 
        hi_venc_prores_attr prores_attr; 
    };
}hi_venc_attr;

成员

成员名称

描述

type

编码协议类型。

max_pic_width

编码图像最大宽度,静态属性,必须是2的整数倍。

取值范围:[MIN_WIDTH, MAX_WIDTH],以像素为单位。MIN_WIDTH、MAX_WIDTH,分别表示编码通道支持的最小宽度、最大宽度,参见表1

max_pic_height

除jpeg协议外,编码图像最大高度,静态属性,必须是2的整数倍。

取值范围:[MIN_HEIGHT, MAX_HEIGHT],以像素为单位。MIN_HEIGHT、MAX_HEIGHT分别表示编码通道支持的最小高度、最大高度,参见表1

buf_size

码流buffer大小,单位为Byte,静态属性。
  • 调用hi_mpi_venc_send_jpege_frame接口发送原始图像进行图像编码时,在创建通道时,buf_size参数值必须设置为0。
  • 调用hi_mpi_venc_send_frame接口发送原始图像进行视频或图像编码时,在创建通道时,buf_size参数值必须设置为64的整数倍,取值范围:[Min, Max],以Byte为单位。

    (1)视频编码场景下,Min当前表示32*1024,Max当前表示1*1024*1024*1024。

    用户可以在创建通道时,合理设置每个通道的buf_size,以节省内存使用开销,推荐将buf_size设置为:原图宽*原图高*3/2后再64对齐,但buf_size依然需要在[Min, Max]范围内。

    视频编码场景下,若buf_size设置的不合理,可能出现以下异常情况:

    - 反复重编,进而导致编码时延变长、性能下降、图像质量下降;

    - 编码失败,获取不到编码结果。

    (2)图像编码场景下,如果原图格式为YUV420,Min值为原图宽16对齐*原图高16对齐*3/2 ;如果原图格式为YUV422 Packed,Min值为原图宽16对齐*原图高16对齐*2。Max当前表示1*1024*1024*1024。

    用户可以在创建通道时根据业务场景中图片的实际最大分辨率,合理设置每个通道的buf_size,以节省内存使用开销,推荐将buf_size设置为:原图宽*原图高*倍数,倍数推荐为5。

    例如:用户图片的分辨率有720p(1280*720)、1080p(1080*1920)、4K(3840*2160)大小的图片,需要的buf_size应按照4k配置:3840*2160*5。

    图片编码场景下,buf_size最小值为320*240*5 ,防止小分辨率场景下,buffer容易被占满,影响编码功能执行,例如:用户图片的最大分辨率为128*128,推荐用户将buf_size设置为320*240*5。

profile

编码的等级,数字越大编码质量越好,静态属性。

  • H.264 取值范围:[0, 3]。
    • 0:Baseline。当取值为该值时,不支持编码B帧。
    • 1:Main Profile。
    • 2:High Profile。
  • H.265 取值范围:[0,1]。
    • 0:Main Profile。
    • 1:Main 10 Profile,预留值,暂不支持。
  • Jpeg 取值范围:0(表示Baseline)。

is_by_frame

帧/包模式获取码流,静态属性。

  • HI_TRUE:按帧获取。
  • HI_FALSE:按包获取。

pic_width

编码通道宽度,必须是MIN_ALIGN的整数倍。通道创建后,不支持修改。

取值范围:[MIN_WIDTH, MAX_WIDTH],以像素为单位。MIN_WIDTH、MAX_WIDTH、MIN_ALIGN分别表示编码通道支持的最小宽度、最大宽度、最小对齐单元(像素),参见表1

JPEG通道宽高的设置要满足:pic_width*pic_height<= max_pic_width*max_pic_height。

pic_height

除jpeg协议外,编码通道高度,必须是MIN_ALIGN的整数倍。通道创建后,不支持修改。

取值范围:[MIN_HEIGHT, MAX_HEIGHT],以像素为单位。MIN_HEIGHT、MAX_HEIGHT、MIN_ALIGN分别表示编码通道支持的最小高度、最大高度、最小对齐单元(像素),参见表1

JPEG通道宽高的设置要满足:pic_width*pic_height<= max_pic_width*max_pic_height。

h264_attr

编码协议的属性。

Atlas 推理系列产品(Ascend 310P处理器),预留参数,暂不支持。

Atlas A2训练系列产品/Atlas 800I A2推理产品,预留参数,暂不支持。

h265_attr

编码协议的属性。

Atlas 推理系列产品(Ascend 310P处理器),预留参数,暂不支持。

Atlas A2训练系列产品/Atlas 800I A2推理产品,预留参数,暂不支持。

jpeg_attr

编码协议的属性。

预留参数,暂不支持。

prores_attr

编码协议的属性。

预留参数,暂不支持。

参考信息

MIN_WIDTH、MAX_WIDTH、MIN_HEIGHT、MAX_HEIGHT、MIN_ALIGN分别表示编码通道支持的最小宽度、最大宽度、最小高度、最大高度、最小对齐单元(像素)。

表1 编码通道宽高

W/H (pixel)

H.264

H.265

JPEG

MIN_WIDTH

128

128

32

MAX_WIDTH

4096

4096

8192

MIN_HEIGHT

128

128

32

MAX_HEIGHT

4096

4096

8192

MIN_ALIGN

2

2

2

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词