函数:vdec_get_channel_desc_bit_depth
函数:vdec_get_channel_desc_ref_frame_num
| C函数原型 | uint32_t aclvdecGetChannelDescRefFrameNum(const aclvdecChannelDesc *channelDesc) |
|---|---|
| Python函数 | ref_frame_num = acl.media.vdec_get_channel_desc_ref_frame_num(vdec_channel_desc) |
| 函数功能 | 获取视频解码处理通道描述信息的属性:参考帧数量。 |
| 输入说明 | vdec_channel_desc:int,vdec通道描述地址对象, 表示视频数据解码处理通道的描述信息。 |
| 返回值说明 | ref_frame_num:int,参考帧数量,取值范围[0, 16]。 |
父主题: VDEC功能
函数:vdec_get_channel_desc_out_mode
| C函数原型 | uint32_t aclvdecGetChannelDescOutMode(const aclvdecChannelDesc *channelDesc) |
|---|---|
| Python函数 | out_mode = acl.media.vdec_get_channel_desc_out_mode(vdec_channel_desc) |
| 函数功能 | 获取视频解码处理通道的描述信息:是否实时出帧。 |
| 输入说明 | vdec_channel_desc:int,vdec通道描述地址对象, 表示视频数据解码处理通道的描述信息。 |
| 返回值说明 | out_mode:int,设置是否实时出帧(即发送一帧解码一帧,无需依赖后续帧的传入)。 取值范围如下: - 0:默认出帧模式,由于解码过程中存在缓存帧,无法实时输出,因此VDEC需要在收到码流中的多帧数据后,才开始输出解码结果。 - 1:快速出帧模式,VDEC获取码流中的一帧数据后,就开始实时输出解码结果。只支持简单参考关系的H264/H265标准码流(无长期参考帧,无B帧)。 |
父主题: VDEC功能
函数:vdec_get_channel_desc_bit_depth
| C函数原型 | uint32_t aclvdecGetChannelDescBitDepth(const aclvdecChannelDesc *channelDesc) |
|---|---|
| Python函数 | desc_bit_depth = acl.media.vdec_get_channel_desc_bit_depth(vdec_channel_desc) |
| 函数功能 | 获取视频解码处理通道的描述信息。 |
| 输入说明 | vdec_channel_desc:int,表示视频解码数据处理通道的描述信息。 |
| 返回值说明 | desc_bit_depth:int,视频位宽。 取值范围如下: - 0:8-bit - 1: 10-bit |
父主题: VDEC功能
功能及约束说明
功能说明
VENC(Video Encoder)将YUV420SP NV12/NV21-8bit图片数据编码成H264/H265格式的视频码流。
不支持单进程多线程场景。
分辨率约束
-
输入图片分辨率:
昇腾AI处理器 分辨率范围 Atlas 200/500 A2推理产品 最大分辨率8192*8192,最小分辨率114*114。 -
输出码流分辨率
VENC只对图片编码,不会改变图片分辨率,因此输出与输入的图片分辨率保持一致。
码流/图片格式、宽高对齐、内存约束
实现VENC视频编码功能时:
-
输入内存
需调用acl.media.dvpp_malloc接口申请Device上的输入内存,调用acl.media.dvpp_free接口释放输入内存,这部分内存的生命周期由用户自行管理。内存大小参见下表中的计算公式。
-
输出内存
不需要用户管理输出内存,由系统管理内存。
:::note 说明 输入图片格式的定义请参见acldvppPixelFormat,宽stride、高stride等概念请参见基本概念。 :::
表1 图片格式、宽高对齐、内存大小约束
输入图片格式 | 输入图片宽、高对齐要求 | 输入图片宽stride、高stride、内存大小要求 | 输出码流格式 |
|---|---|---|---|
YUV420SP NV12 8bit | 宽2对齐 高2对齐 | 宽stride为宽16对齐后的值。 高stride无需设置。 内存大小(单位Byte)= 宽stride * 高stride * 3/2 | |
YUV420SP NV21 8bit |
父主题: VENC功能
性能指标说明
性能指标说明
单个Device的基本场景性能指标参考如下(1路对应一个通道,一个通道对应一个线程):
720p指分辨率为1280*720的图片;1080p指分辨率为1920*1080的图片;4K指分辨率为3840*2160的图片。
| 场景举例 | 总帧率 |
|---|---|
| 720p*n路(1≤n≤3) | n*400fps |
| 720p*n路(n>3) | 1200fps |
| 1080p*n路(1≤n≤3) | n*200fps |
| 1080p*n路(n>3) | 600fps |
| 4k*n路(1≤n≤3) | n*50fps |
| 4k*n路(n>3) | 150fps |
注:其它分辨率可以等量估算。
父主题: VENC功能
函数:venc_send_frame
| C函数原型 | aclError aclvencSendFrame(aclvencChannelDesc *channelDesc, acldvppPicDesc *input, void *reserve, aclvencFrameConfig *config, void *userdata) |
|---|---|
| Python函数 | ret = acl.media.venc_send_frame(venc_channel_desc, input, reserve, config, userdata) |
| 函数功能 | 将待编码的图片传到编码器进行编码。异步接口。 |
| 输入说明 | venc_channel_desc:int,指定通道描述。 与调用acl.media.venc_create_channel接口创建通道时指定的channelDesc保持一致。 在通道描述信息中指定视频编码的回调函数。 input:int,输入图片描述信息,输入内存用户需提前申请。 - 调用acl.media.dvpp_create_pic_desc接口创建图片描述信息,调用acl.media.dvpp_set_pic_desc系列接口设置图片描述参数(例如,图片格式、宽、高等)。 输入图片格式以通道描述信息中设置的格式为准,调用acl.media.dvpp_set_pic_desc_format接口设置输入图片格式无效。 - 输入图片的分辨率、格式的要求,请参见功能及约束说明。 reserve:int,预留参数,暂不使用,设值为0。 config:int,单帧配置数据。 userdata:Python对象,用户自定义数据。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | - 发送数据前必须保证通道已经被创建,否则返回错误。 - 不能发送eos为0的空码流包(码流长度为0或码流地址为空)。 - 结束视频编码时可以发送eos为1的空图片,表示当前编码结束。 |
父主题: VENC功能
在线提单