总体说明
多版本接口差异
- V2版本的功能比V1版本更多,如下:
- JPEGE:V2版本接口支持高级的参数配置,如huffman表配置。
- VENC:V2版本接口支持更加细化的码控参数配置和效果调优,如I/P帧QP、宏块码控等。
- VDEC:V2版本接口支持更细化的内存控制,如设置输入码流缓存。
- 视频数据获取功能(ISP系统控制&MIPI命令字&VI功能):仅V2版本接口支持。
- VPSS视频处理:仅V2版本接口支持。
- 建议使用V2版本中的接口,保证后续版本接口功能以及业务的连续演进。
- V1版本中的接口是为了兼容旧版本,保证使用该部分接口的用户能继续使用,后续版本不再演进。
图像/视频/音频数据处理的典型功能介绍
- |
处理方式 |
描述 |
---|---|---|
获取视频数据 |
ISP系统控制 |
系统控制部分用于注册3A算法、注册Sensor驱动、初始化ISP firmware、运行ISP firmware、退出ISP firmware、配置ISP属性等功能。 |
MIPI Rx ioctl命令字 |
MIPI Rx是一个支持多种差分视频输入接口的采集单元,通过combo-PHY接收MIPI/LVDS/sub-LVDS/HiSPi接口的数据,通过不同的功能模式配置,MIPI Rx可以支持多种速度和分辨率的数据传输需求,支持多种外部输入设备。 |
|
VI(Vedio Input) |
VI模块捕获视频图像,可对其做裁剪、防抖、颜色优化、亮度优化、噪声去除等处理,并输出YUV或RAW格式的图像数据。 |
|
展示视频数据 |
VO(Vedio Output) |
VO模块接收VPSS处理后的输出图像,可进行播放控制等处理,最后按用户配置的输出协议输出给外围视频设备。 |
HDMI(High Definition Multimedia Interfac) |
HDMI是全数字化影像和声音发送接口,可以发送未压缩的音频及视频信号。 |
|
图像/视频数据处理 |
VPSS(Video Process Sub-System) |
VPSS模块支持对输入图像进行统一预处理,如去噪、去隔行、裁剪等,然后再对各通道分别进行处理,如缩放、加边框等。 |
AIPP(Artificial Intelligence Pre-Processing) |
AIPP(Artificial Intelligence Pre-Processing)人工智能预处理,在AI Core上完成数据预处理,主要功能包括改变图像尺寸(抠图、填充等)、色域转换(转换图像格式)、减均值/乘系数(改变图像像素)等。
AIPP区分为静态AIPP和动态AIPP。您只能选择静态AIPP或动态AIPP方式来处理图片,不能同时配置静态AIPP和动态AIPP两种方式。
|
|
DVPP(Digital Vision Pre-Processing) |
DVPP(Digital Vision Pre-Processing)是昇腾AI处理器内置的图像处理单元,通过AscendCL媒体数据处理接口提供强大的媒体处理硬加速能力,主要功能包括以下功能:
说明:
AIPP、DVPP可以分开独立使用,也可以组合使用。组合使用场景下,一般先使用DVPP对图片/视频进行解码、抠图、缩放等基本处理,但由于DVPP硬件上的约束,DVPP处理后的图片格式、分辨率有可能不满足模型的要求,因此还需要再经过AIPP进一步做色域转换、抠图、填充等处理。 |
|
音频数据获取和输出 |
AI(Audio Input) |
AI模块捕获音频数据 。 |
AO(Audio Output) |
通过ADEC模块解码后的音频数据,AO模块支持播放其音频。 |
功能支持度说明
昇腾AI处理器对媒体数据处理V2版本各功能的支持度如下表所示。
昇腾AI处理器 |
VPC |
JPEGD |
JPEGE |
PNGD |
VDEC |
VENC |
视频数据 |
VPSS视频处理 |
音频功能(录音/播音/音量调节) |
视频数据展示 |
---|---|---|---|---|---|---|---|---|---|---|
Atlas 200/500 A2推理产品 |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
整体约束说明
使用本章中介绍的接口,有以下注意点:
- 关于内存申请/释放:
- 实现媒体数据处理的VPC、JPEGD、JPEGE等功能前,若需要申请内存存放输入或输出数据,需调用hi_mpi_dvpp_malloc申请内存、调用hi_mpi_dvpp_free接口释放内存。如果多个功能串联使用的场景,需要复用同一段内存,则按最大内存要求来申请内存。
- 调用1申请出来的内存可以满足媒体数据处理的要求,也可以在其它任务中使用,例如,从性能角度,为了减少拷贝,媒体数据处理的输出作为模型推理的输入,实现内存复用。
- 但由于媒体数据处理访问的地址空间有限,为确保媒体数据处理时内存足够,除媒体数据处理功能外的其它功能(例如,模型加载),建议调用内存管理章节下的aclrtMalloc接口、或aclrtMallocHost接口、或aclrtMallocCached接口申请内存。
- 关于通道的要求:
实现媒体数据处理的各功能前,必须调用接口创建对应功能的通道,请分别参见VPC功能、VDEC功能/JPEGD功能、VENC功能/JPEGE功能、PNGD功能章节下的通道创建与销毁接口,查看接口说明以及通道数的最大限制。
通道的创建与销毁会涉及资源的申请与释放,反复创建与销毁通道会影响业务性能,因此建议根据实际场景管理通道,例如,如果有持续VPC图片处理,则创建VPC的通道后,等到所有VPC功能调用完成后,再销毁该VPC通道。
通道数量多,会影响Device的CPU占用率和内存占用,通道数量建议参考各功能章节下的性能指标的路数。
- 本章节描述结构体、枚举值等,预留的字段需要手动设置为0,避免后续版本的兼容性问题。