文档
注册
评分
提单
论坛
小AI

acl.himpi.venc_create_chn

c函数原型

hi_s32 hi_mpi_venc_create_chn(hi_venc_chn chn, const hi_venc_chn_attr *attr);

Python函数

ret = acl.himpi.venc_create_chn(chn, attr)

函数功能

创建编码通道。

昇腾310 AI处理器,当前版本不支持该接口。

昇腾910 AI处理器,当前版本不支持该接口。

输入说明

  • chn:编码通道号。

    编码通道号的取值范围:[0, 256),通道总数最多256。

  • attr:编码通道属性字典。

返回值说明

ret:int,错误码。

注意事项

约束说明

  • 单个Device上的通道号不能超出最大的通道号范围。
  • 编码通道属性由三部分组成,编码器属性、码率控制器属性和帧结构类型属性,帧结构类型属性简称GOP(Group of Pictures )类型属性。
  • 编码器属性最大宽高,通道宽高必须满足如下约束:

    max_pic_width∈[MIN_WIDTH, MAX_WIDTH]

    max_pic_height∈[MIN_HEIGHT, MAX_HEIGHT]

    pic_width∈[MIN_WIDTH, MAX_WIDTH]

    pic_height∈[MIN_HEIGHT, MAX_HEIGHT]

    VENC的最大宽高,通道宽高必须是MIN_ALIGN的整数倍,JPEGE的最大宽度,通道宽度必须是MIN_ALIGN的整数倍。

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

    编码器支持通道宽高见表1

  • 编码器属性必须设置编码码流buffer深度、获取码流方式、编码profile等,表2详细描述了各种协议的各项属性的特性。
  • 推荐的编码宽高为:3840x2160(4k)、1920x1080(1080P)、1280x720(720P)。
  • 编码器属性中除通道宽高(pic_width和pic_height)外都是静态属性,一旦创建编码通道成功,静态属性不支持被修改,除非该通道被销毁,重新创建。
  • H.264/H.265编码帧存由YHeaderSize、CHeaderSize、YSize、CSize、PmeSize、PmeInfoSize和TmvSize共同构成,编码器默认根据最大宽高计算帧存进行内存分配,在设置通道宽高时需保证根据通道宽高计算的每一部分帧存大小都不能大于最大宽高计算的帧存大小。
  • JPEG通道宽高的设置要满足:pic_width*pic_height<= max_pic_width*max_pic_height。
  • 码率控制器属性首先需要配置RC(Rate Control)模式,JPEG不需要配置码率控制器属性,其它协议类型通道(H.264/H.265)都必须配置。码率控制器属性RC模式必须与编码器属性协议类型匹配。
  • 两种编码协议(H.264/H.265),码率控制有以下模式:CBR(Constant Bit Rate)、VBR(Variable Bit Rate)、AVBR(Adaptive Variable Bit Rate)、QVBR(Quality Variable Bit Rate)、CVBR(Constrained Variable Bit Rate)、QPMAP(Quantization Parameter Map) 和 FIXQP(Fix Quantization Parameter),当前支持CBR、VBR、AVBR、QVBR、CVBR模式。并且对于不同协议,相同 RC 模式的属性变量基本一致。表3介绍了几种RC模式的公共的属性。
  • CBR除了上述的属性之外,还需要设置平均比特率。平均比特率的单位是kbps。平均比特率的设置与编码通道宽高以及图像帧率都有关系。典型的平均比特率的设置如下表所示。注意,表4中的平均比特率的设置是在通道编码帧率为满帧率(30fps)时的设置。当用户设置编码输出帧率不为满帧率时,可以对下表中的码率按用户设置帧率与满帧率(30fps)的比例进行换算。
  • VBR除了上述属性之外,还需要设置MaxBitRate,表示编码通道在码率统计时间内允许的最大码率。
  • H.264e编码通道profile为Baseline 时,协议不支持编码B帧。

参考资源

接口调用流程,参见JPEGE图片编码VENC视频编码

其他参考信息

表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

表2 编码器属性的约束

编码协议

编码方式

码流 buffer 深度

获取码流模式

编码 profile

H.264

Frame

  • 当 mini_buf_mode=0时,Buffer≥ max_pic_width x max_pic_height x 3/4;
  • 当 mini_buf_mode=1

    时,Buffer≥32*1024 byte;

Frame/Slice

Baseline

Mainprofile

Highprofile

JPEG

Frame

  • mini_buf_mode=0 时,如果原图格式为YUV420,Buffer最小值为原图宽16对齐 * 原图高16对齐 * 3/2 ;如果原图格式为YUV422 Packed,Buffer最小值为原图宽16对齐 * 原图高16对齐 * 2
  • mini_buf_mode=1 时,Buffer≥32*1024 byte;

Frame/Ecs

Baseline

H.265

Frame

  • mini_buf_mode=0时,Buffer≥ max_pic_width * max_pic_height x 3/4;
  • mini_buf_mode=1时,Buffer≥32*1024 byte

Frame/Slice

Main profile

Main 10 profile(暂不支持)

  • mini_buf_mode=0时,Buffer≥ max_pic_width *max_pic_height * (3/4)*(5/4);
  • mini_buf_mode=1

    时,Buffer≥32*1024 byte

Frame/Slice

Main 10 profile(暂不支持)

表3 码率控制器属性的约束

RC 模式

GOP

StatTime(s)

FrmRate(src_frame_rate/dst_frame_rate)

CBR

≥1

≥1

src_frame_rate ≥ dst_frame_rate

VBR

≥1

≥1

src_frame_rate ≥ dst_frame_rate

AVBR

≥1

≥1

src_frame_rate ≥ dst_frame_rate

FIXQP

≥1

≥1

src_frame_rate ≥ dst_frame_rate

QPMAP

≥1

≥1

src_frame_rate ≥ dst_frame_rate

表4 典型平均比特率配置

图像宽高/码率等级

1080p(1920x1080)

4K(3840x2160)

低码率

<2Mbps

<8Mbps

中码率

2Mbps~8Mbps

8Mbps~30Mbps

高码率

>8Mbps

>30Mbps

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

当前产品无相关内容

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