跳到主要内容

acldvppJpegPredictEncSize

功能及约束说明

功能说明

JPEGE(JPEG Encoder)将YUV格式图片编码成JPEG压缩格式的图片文件,例如*.jpg。

图片分辨率约束

  • 输入图片分辨率:

    版本分辨率范围
    Atlas 200/500 A2推理产品最大分辨率:16384*16384,最小分辨率:32*32。
  • 输出图片分辨率

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

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

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

  • 输入内存的大小请参见下表中的计算公式。
  • 输出内存的大小就是指实际的编码后图片所占用的大小,可调用acldvppJpegPredictEncSize接口预估输出内存大小。

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

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

输入图片格式

输入图片宽、高对齐要求

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

输出图片格式

YUV420SP NV12 8bit

宽2对齐

高2对齐

宽stride为宽16对齐后的值,兼容对齐到16的倍数如128(按128对齐时,性能更优)。

高stride支持以下两种配置:

  • 配置为与输入图片的高度相同的数值;
  • 或配置为输入图片的高度向上对齐到16的数值(最小为32)。

    该方式的使用场景举例:JPEGD的输出图片直接作为JPEGE的输入(JPEGD输出图片高度是向上对齐到16的)。

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

JPEG压缩格式的图片文件,例如*.jpg。

只支持huffman编码,不支持算术编码,不支持渐进编码。

YUV420SP NV21 8bit

YUV422Packed YUYV 8bit

宽2对齐

高无对齐要求

宽stride为宽的两倍再16对齐后的值。

高stride支持以下两种配置:

  • 配置为与输入图片的高度相同的数值;
  • 或配置为输入图片的高度向上对齐到16的数值(最小为32)。

    该方式的使用场景举例:JPEGD的输出图片直接作为JPEGE的输入(JPEGD输出图片高度是向上对齐到16的)。

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

YUV422Packed UYVY 8bit

YUV422Packed YVYU 8bit

YUV422Packed VYUY 8bit

父主题: JPEGE功能

性能指标说明

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

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

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

场景举例(输入图片格式:YUV420 8bit)总帧率
1080p*n路256fps
4k*n路64fps

父主题: JPEGE功能

acldvppJpegEncodeAsync

函数功能

将YUV格式图片编码成.jpg图片,异步接口。

函数原型

aclError acldvppJpegEncodeAsync(****acldvppChannelDesc *channelDesc,

acldvppPicDesc *inputDesc,

const void *data,

uint32_t *size,

acldvppJpegeConfig *config,

aclrtStream stream);

参数说明

参数名输入/输出说明
channelDesc输入通道描述信息的指针。 与调用acldvppCreateChannel接口创建通道时指定的channelDesc保持一致。
inputDesc输入输入图片描述信息的指针。
- 调用acldvppCreatePicDesc接口创建图片描述信息。
- 调用acldvppSetPicDesc系列接口设置图片描述参数(例如,图片格式、宽、高等)。 输入图片分辨率(≤通道的最大宽度*高度)、图像格式的要求,请参见功能及约束说明
data输出输出内存地址的指针,存放编码后的数据。
size输入&输出输出内存大小的指针,单位Byte。 size作为输入参数时,可提前调用acldvppJpegPredictEncSize接口预估输出内存大小。 size作为输出参数时,表示实际输出内存大小,可能与调用acldvppJpegPredictEncSize接口预估的内存大小存在差异,如果用户需要取用编码后的数据,请使用实际输出内存大小。
config输入图片编码配置数据的指针。 调用acldvppCreateJpegeConfig接口创建图片编码配置数据,调用acldvppSetJpegeConfigLevel接口设置编码配置数据。
stream输入指定Stream。

返回值说明

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

参考资源

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

父主题: JPEGE功能

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功能

在线提单