下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

总体说明

多版本接口差异

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

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

昇腾CANN提供了下表中的两种处理图像/视频数据的方式,本章主要介绍基于DVPP的图像/视频数据处理。

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

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

处理方式

描述

AIPP(Artificial Intelligence Pre-Processing)

AIPP(Artificial Intelligence Pre-Processing)人工智能预处理,在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(Digital Vision Pre-Processing)是昇腾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 推理产品Atlas 训练系列产品上,由于DVPP视频解码仅支持输出YUV格式的图片,如果模型需要RGB格式的图片,则需要再经过AIPP做色域转换的处理。

功能支持度说明

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

昇腾AI处理器

VPC

JPEGD

JPEGE

PNGD

VDEC

VENC

Atlas 推理系列产品

整体约束说明

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

  • 关于内存申请/释放:
    1. 实现媒体数据处理的VPC、JPEGD、JPEGE等功能前,若需要申请内存存放输入或输出数据,需调用hi_mpi_dvpp_malloc申请内存、调用hi_mpi_dvpp_free接口释放内存。如果多个功能串联使用的场景,需要复用同一段内存,则按最大内存要求来申请内存。
    2. 调用1申请出来的内存可以满足媒体数据处理的要求,也可以在其它任务中使用,例如,从性能角度,为了减少拷贝,媒体数据处理的输出作为模型推理的输入,实现内存复用。
    3. 但由于媒体数据处理访问的地址空间有限,为确保媒体数据处理时内存足够,除媒体数据处理功能外的其它功能(例如,模型加载),建议调用内存管理章节下的aclrtMalloc接口、或aclrtMallocHost接口、或aclrtMallocCached接口申请内存。

      媒体数据处理功能在每个进程内,可访问的地址空间最大为16GB。

  • 关于通道的要求:

    实现媒体数据处理的各功能前,必须调用接口创建对应功能的通道,请分别参见VPC功能VDEC功能/JPEGD功能VENC功能/JPEGE功能PNGD功能章节下的通道创建与销毁接口,查看接口说明以及通道数的最大限制。

    通道的创建与销毁会涉及资源的申请与释放,反复创建与销毁通道会影响业务性能,因此建议根据实际场景管理通道,例如,如果有持续VPC图片处理,则创建VPC的通道后,等到所有VPC功能调用完成后,再销毁该VPC通道。

    通道数量多,会影响Device的CPU占用率和内存占用,通道数量建议参考各功能章节下的性能指标的路数。

  • 本章节描述结构体、枚举值等,预留的字段需要手动设置为0,避免后续版本的兼容性问题。

    结构体或枚举值中的预留字段,其名称中包含*_BUTT字符串的,例如HI_COMPRESS_MODE_BUTT。

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

当前产品无相关内容

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