总体功能及约束说明

多版本接口差异

本手册中媒体数据处理V1版本与媒体数据处理V2版本的接口都是描述处理媒体数据的接口,用于实现视频编解码、图像编解码、图像处理等功能,但两套接口不能混用。
  • V2版本的功能比V1版本更多,如下:
    • JPEGE:V2版本接口支持高级的参数配置,如huffman表配置。
    • VENC:V2版本接口支持更加细化的码控参数配置和效果调优,如I/P帧QP、宏块码控等。
    • VDEC:V2版本接口支持更细化的内存控制,如设置输入码流缓存。
  • 建议使用V2版本中的接口,保证后续版本接口功能以及业务的连续演进。
  • V1版本中的接口是为了兼容旧版本,保证使用该部分接口的用户能继续使用,后续版本不再演进。

图像/视频/音频数据处理的典型功能介绍

图1 图像/视频数据处理

各功能的介绍如下表所示,昇腾AI处理器对这些功能的支持度请参见功能支持度说明(AIPP当前各版本均支持)。

功能

子功能模块

描述

获取视频数据

ISP(Image Signal Processing)系统控制

系统控制部分用于注册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)输出给外围视频设备。

VO可配合TDE(Two Dimensional Engine)模块、HIFB(Hisilicon Framebuffer)模块,利用硬件分别进行图形绘制、叠加图形层管理。

HDMI(High Definition Multimedia Interfac)

HDMI是全数字化影像和声音发送接口,可以发送未压缩的音频及视频信号。

TDE(Two Dimensional Engine)

TDE是图形二维加速引擎,它利用硬件为 OSD(On Screen Display)和 GUI(Graphics User Interface)提供快速的图形绘制功能,主要有快速拷贝、快速色彩填充、模式填充(当前仅支持Alpha Blending操作)。

HIFB(Hisilicon Framebuffer)

HIFB用于管理叠加图形层,它不仅提供Linux Framebuffer的基本功能,还在Linux Framebuffer的基础上增加图层显示起始位置修改、层间Alpha等扩展功能。

区域管理

Region

叠加在视频上的OSD (On Screen Display)和遮挡在视频上的色块统称为区域。区域管理模块,用于统一管理这些区域资源,用于在视频上显示一些特定信息(如通道号、时间戳等)、或在视频中填充色块用于遮挡,当前该功能需配合VPSS一起使用。

图像/视频数据处理

VPSS(Video Process Sub-System)

VPSS模块支持对输入图像进行统一预处理,如去噪、去隔行、裁剪等,然后再对各通道分别进行处理,如缩放、加边框等。

AIPP(Artificial Intelligence Pre-Processing)

AIPP人工智能预处理,在AI Core上完成数据预处理,主要功能包括改变图像尺寸(抠图、填充等)、色域转换(转换图像格式)、减均值/乘系数(改变图像像素)等。

AIPP区分为静态AIPP和动态AIPP。您只能选择静态AIPP或动态AIPP中的一种来处理图片,不能同时配置静态AIPP和动态AIPP两种方式。
  • 静态AIPP:模型转换时设置AIPP模式为静态,同时设置AIPP参数,模型生成后,AIPP参数值被保存在离线模型(*.om)中,每次模型推理过程采用固定的AIPP预处理参数(无法修改)。

    如果使用静态AIPP方式,多Batch情况下共用同一份AIPP参数,AIPP参数值在使用ATC工具进行模型转换时设置,ATC工具的详细说明请ATC工具使用指南

  • 动态AIPP:模型转换时仅设置AIPP模式为动态,每次模型推理前,根据需求,在执行模型前设置动态AIPP参数值,然后在模型执行时可使用不同的AIPP参数。

    如果使用动态AIPP方式,多Batch可使用不同的AIPP参数,各Batch所使用的AIPP参数值通过AscendCL提供的接口来设置,请参见模型动态AIPP推理中的介绍。

DVPP(Digital Vision Pre-Processing)

DVPP是昇腾AI处理器内置的图像处理单元,通过AscendCL媒体数据处理接口提供强大的媒体处理硬加速能力,主要功能包括以下功能:

  • VPC(Vision Preprocessing Core):处理YUV、RGB等格式的图片,包括缩放、抠图、图像金字塔、色域转换等。
  • JPEGD(JPEG Decoder):JPEG压缩格式-->YUV格式的图片解码。
  • JPEGE(JPEG Encoder):YUV格式-->JPEG压缩格式的图片编码。
  • VDEC(Video Decoder):H264/H265格式-->YUV/RGB格式的视频码流解码。
  • VENC(Video Encoder):YUV420SP格式-->H264/H265格式的视频码流编码。
  • PNGD(PNG Decoder):PNG格式-->RGB格式的图片解码。
说明:

AIPP、DVPP可以分开独立使用,也可以组合使用。组合使用场景下,一般先使用DVPP对图片/视频进行解码、抠图、缩放等基本处理,但由于DVPP硬件上的约束,DVPP处理后的图片格式、分辨率有可能不满足模型的要求,因此还需要再经过AIPP进一步做色域转换、抠图、填充等处理。

例如,在Atlas 200/300/500 推理产品上,由于DVPP视频解码仅支持输出YUV格式的图片,如果模型需要RGB格式的图片,则需要再经过AIPP做色域转换的处理。

音频数据获取和输出

AI(Audio Input)

AI模块捕获音频数据 。

AO(Audio Output)

通过ADEC模块解码后的音频数据,AO模块支持播放音频。

音频数据编解码

AENC(Audio Encoder)

通过AI模块获取的音频数据,AENC模块支持对其进行编码,输出音频码流。

ADEC(Audio Decoder)

ADEC支持解码G.711a协议的音频码流,再通过AO模块播放音频。

功能支持度说明

昇腾AI处理器对媒体数据处理V2版本各功能的支持度如下表所示。

昇腾AI处理器

VPC

JPEGD

JPEGE

PNGD

VDEC

VENC

Atlas 推理系列产品

Atlas A2训练系列产品

x

整体约束说明

使用本章中介绍的接口,有以下注意点: