跳到主要内容

acldvppPngDecodeAsync

acldvppJpegPredictEncSize

函数功能

根据输入图片描述信息、图片编码配置数据预估图片编码后所需的输出内存的大小。

函数原型

aclError acldvppJpegPredictEncSize(const acldvppPicDesc *inputDesc, const acldvppJpegeConfig *config, uint32_t *size)

参数说明

参数名输入/输出说明
inputDesc输入输入图片描述信息的指针。 调用acldvppCreatePicDesc接口创建图片描述信息,调用acldvppSetPicDesc系列接口设置图片描述参数(例如,图片格式、宽、高等)。
config输入图片编码配置数据的指针。 调用acldvppCreateJpegeConfig接口创建图片编码配置数据。
size输出预估JPEG图片编码后所需输出内存大小的指针,单位为Byte。 预估的输出内存会大于实际输出内存,实际输出内存需从acldvppJpegEncodeAsync接口的输出参数size获取。

返回值说明

返回0表示成功,返回其它值表示失败。

参考资源

接口调用流程及示例,参见JPEGE图片编码

父主题: JPEGE功能

功能及约束说明

功能说明

PNGD(PNG Decoder)功能:实现PNG格式图片的解码。

**PNGD在解码图片时,支持按源图片格式解码。**在调用PNGD解码接口时,直接将输出图片格式配置为PIXEL_FORMAT_UNKNOWN,输出格式默认按源图片格式输出。

源图片格式解码是指解码前后图片的编码格式保持一致,例如解码前输入图片格式为RGB,解码后输出图片格式为RGB888。

图片分辨率约束

  • 输入图片分辨率:

    最大分辨率4096*4096,最小分辨率32*32。

  • 输出图片分辨率

    PNGD只对图片解码,不会改变图片分辨率,因此输出与输入的图片分辨率保持一致。

图片格式、宽高对齐、内存约束

实现图片解码功能时,需调用acldvppMalloc接口申请Device上的输入、输出内存,调用acldvppFree接口释放输入、输出内存,这部分内存的生命周期由用户自行管理。

  • 输入内存的大小就是指实际的输入图片所占用的大小。
  • 输出内存的大小可调用acldvppPngPredictDecSize接口预估。

:::note 说明 输出图片格式的定义请参见acldvppPixelFormat,宽stride、高stride等概念请参见基本概念。 :::

表1 图片格式、宽高对齐、内存大小约束

输入图片格式

输出图片格式

输出图片宽、高对齐要求

输出图片宽stride、高stride、内存大小要求

RGB

RGB888

无对齐要求

宽stride为宽128对齐后再乘以3的值。

高stride为高16对齐后的值。

输出内存的大小可调用acldvppPngPredictDecSize接口预估。

GRAY

RGB888

无对齐要求

宽stride为宽128对齐后再乘以3的值。

高stride为高16对齐后的值。

输出内存的大小可调用acldvppPngPredictDecSize接口预估。

RGBA

RGB888

无对齐要求

宽stride为宽128对齐后再乘以3的值。

高stride为高16对齐后的值。

输出内存的大小可调用acldvppPngPredictDecSize接口预估。

RGBA8888 8bit

无对齐要求

宽stride为宽128对齐后再乘以4的值。

高stride为高16对齐后的值。

输出内存的大小可调用acldvppPngPredictDecSize接口预估。

AGRAY

RGB888

无对齐要求

宽stride为宽128对齐后再乘以3的值。

高stride为高16对齐后的值。

输出内存的大小可调用acldvppPngPredictDecSize接口预估。

RGBA8888 8bit

无对齐要求

宽stride为宽128对齐后再乘以4的值。

高stride为高16对齐后的值。

输出内存的大小可调用acldvppPngPredictDecSize接口预估。

父主题: PNGD功能

性能指标说明

性能指标说明(Atlas 200/500 A2推理产品)

以下性能数据,是基于一个stream上下发10个异步媒体数据处理任务后,执行一次aclrtSynchronizeStream接口。

1080p指分辨率为1920*1080的图片;4K指分辨率为3840*2160的图片。单个Device的基本场景性能指标参考如下(1路对应一个通道,一个通道对应一个线程):

场景举例总帧率
1080p*n路(1≤n≤5)n*4fps
1080p*n路(n≥ 6)24fps
4k*n路(1≤n≤5)n*1fps
4k*n路(n≥ 6)6fps

父主题: PNGD功能

acldvppPngDecodeAsync

函数功能

解码png图片,异步接口。

功能输入图片格式输出图片格式
调用本接口时将输出图片格式设置为PIXEL_FORMAT_UNKNOWN 表示不指定输出图片格式,输出图片格式与输入图片格式一致RGB/GRAYRGB
调用本接口时将输出图片格式设置为PIXEL_FORMAT_UNKNOWN 表示不指定输出图片格式,输出图片格式与输入图片格式一致RGBA/AGRAYRGBA
调用本接口时将输出图片格式设置为PIXEL_FORMAT_RGB_888,表示指定输出图片格式,将输入图片格式转换为输出图片格式RGB/RGBA/GRAY/AGRAYRGB

函数原型

aclError acldvppPngDecodeAsync(acldvppChannelDesc *channelDesc,

const void *data,

uint32_t size,

acldvppPicDesc *outputDesc,

aclrtStream stream)

参数说明

参数名输入/输出说明
channelDesc输入通道描述信息的指针。 与调用acldvppCreateChannel接口创建通道时指定的channelDesc保持一致。
data输入输入图片内存地址的指针。
size输入输入图片的实际数据大小,单位Byte。
outputDesc输入&输出输出图片信息的指针。 outputDesc参数作为输入时,需要用户调用如下接口:
- 调用acldvppCreatePicDesc接口创建图片描述信息。
- 调用acldvppSetPicDesc系列接口设置输出图片的内存地址、内存大小、格式。
- 输出图片的内存大小可提前调用acldvppPngPredictDecSize接口获取。
- png原图信息(例如宽、高)可通过acldvppPngGetImageInfo接口获取。
- 输出图片格式、内存等要求,请参见功能及约束说明
outputDesc参数作为输出时,用户可以从内存地址中获取解码后的输出图片数据。
stream输入指定Stream。

返回值说明

返回0表示任务下发成功,返回非0表示任务下发失败。

参考资源

接口调用流程及示例,参见PNGD图片解码

父主题: PNGD功能

acldvppPngGetImageInfo

函数功能

从存放png图片数据的内存中读取png图片的宽、高。

函数原型

aclError acldvppPngGetImageInfo(const void *data,

uint32_t dataSize,

uint32_t *width,

uint32_t *height,

int32_t *components)

参数说明

参数名输入/输出说明
data输入存放png图片数据内存地址的指针。
dataSize输入内存大小,单位为Byte。
width输出图片宽的指针。
height输出图片高的指针。
components输出颜色通道个数的指针。

返回值说明

返回0表示成功,返回其它值表示失败。

父主题: PNGD功能

acldvppPngPredictDecSize

函数功能

根据存放png图片数据的内存计算出png图片解码后所需的输出内存的大小。

函数原型

aclError acldvppPngPredictDecSize(const void *data,

uint32_t dataSize,

acldvppPixelFormat outputPixelFormat,

uint32_t *decSize)

参数说明

参数名输入/输出说明
data输入存放png图片数据内存地址的指针。
size输入内存大小,单位为Byte。
outputPixelFormat输入解码后的输出图片的格式,支持设置如下格式:
- PIXEL_FORMAT_UNKNOWN:按占用内存大小最大的PNG解码输出格式计算内存大小。
- PIXEL_FORMAT_RGB_888
- PIXEL_FORMAT_RGBA_8888
decSize输出png图片解码后所需输出内存大小的指针,单位为Byte。

返回值说明

返回0表示成功,返回其它值表示失败。

参考资源

接口调用流程及示例,参见PNGD图片解码

父主题: PNGD功能

功能及约束说明

功能说明

VDEC(Video Decoder)实现视频的解码,VDEC内部经过VPC处理后,输出指定格式的图片,参见码流/图片格式、宽高对齐、内存约束

分辨率约束

  • 输入码流分辨率:

    版本分辨率范围
    Atlas 200/500 A2推理产品对于H264输入码流,最大分辨率8192*8192,最小分辨率128*128。 对于H265输入码流,最大分辨率5400*8192,最小分辨率128*128。
  • 输出图片分辨率:

    版本分辨率范围
    Atlas 200/500 A2推理产品输出图片最大分辨率8192*8192;当输入码流宽度小于或等于4096时,输出图片最小分辨率为10*6,当输入码流宽度大于4096时,输出图片最小分辨率为128*128。

码流/图片格式、宽高对齐、内存约束

实现VDEC视频解码功能时,输入或输出内存的生命周期由用户自行管理:

  • 输入内存

    调用acldvppMalloc/acldvppFree接口申请/释放内存、或调用aclrtMalloc/aclrtFree接口申请/释放内存,内存大小就是指实际的输入码流所占用的大小。

    调用acldvppMalloc接口申请的内存为媒体数据处理的专用内存,但专用内存的地址空间有限,若关注内存规划或内存资源有限时,使用VDEC视频解码功能时,建议调用aclrtMalloc接口申请内存。

  • 输出内存

    需调用acldvppMalloc接口申请Device上的输出内存,调用acldvppFree接口释放输出内存,内存大小请参见下表中的计算公式。

:::note 说明 输出图片格式的定义请参见acldvppPixelFormat,宽stride、高stride等概念请参见基本概念。 :::

VDEC视频解码时,输入码流支持如下格式:

  • H264 bp/mp/hp level5.1 YUV420编码的码流,当前只支持annex-B的裸码流。
  • H265 8/10bit level5.1 YUV420编码的码流,当前只支持annex-B的裸码流。

VDEC视频解码时,输出图片格式、宽高对齐要求等如下表所示:

表1 码流/图片格式、宽高对齐、内存大小约束

版本

输出图片格式

输出图片宽、高对齐要求

输出图片宽stride、高stride、内存大小要求

Atlas 200/500 A2推理产品

通用格式,各版本都支持

YUV420SP NV12 8bit

宽2对齐

高2对齐

宽stride无对齐要求,与宽相同即可,最小10,最大24576。

高stride无对齐要求,与高相同即可,最小6,最大24576。

内存大小(单位Byte)≥ 宽stride * 高stride * 3/2

YUV420SP NV21 8bit

该部分格式仅以下版本支持:

Atlas 200/500 A2推理产品

RGB888

无对齐要求

宽stride为宽乘以3的值,最小30,最大24576。

高stride无对齐要求,最小6,最大24576。

内存大小(单位Byte)≥ 宽stride * 高stride

BGR888

其它约束

  • VDEC只支持按帧输入码流进行解码。
  • 若码流中有坏帧、缺帧等情况,解码器VDEC可能会丢帧。
  • 通过隔行扫描方式编码出来的码流,VDEC仅支持解码H264 8bit编码的码流。

父主题: VDEC功能

在线提单