Skip to main content

功能及约束说明

acldvppJpegGetImageInfo

函数功能

从存放JPEG图片数据的内存中读取JPEG图片的宽、高、颜色通道个数。

该接口会检查图片格式是否支持解码,如果遇到不支持的码流则该接口会返回ACL_ERROR_UNSUPPORTED_JPEG错误码,该错误码的详细描述请参见aclError

函数原型

aclError acldvppJpegGetImageInfo(const void *data,

uint32_t size,

uint32_t *width,

uint32_t *height,

int32_t *components)

参数说明

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

返回值说明

返回0表示获取信息成功,返回非0表示获取信息失败。

父主题: JPEGD功能

acldvppJpegGetImageInfoV2

函数功能

从存放JPEG图片数据的内存中读取JPEG图片的宽、高、颜色通道个数、JPEG原图编码格式。

该接口会检查图片格式是否支持解码,如果遇到不支持的码流则该接口会返回ACL_ERROR_UNSUPPORTED_JPEG错误码,该错误码的详细描述请参见aclError

函数原型

aclError acldvppJpegGetImageInfoV2(const void *data,

uint32_t size,

uint32_t *width,

uint32_t *height,

int32_t *components**,**

acldvppJpegFormat *format**)**

参数说明

参数名输入/输出说明
data输入存放JPEG图片数据的内存地址指针。
size输入内存大小,单位为Byte。
width输出图片宽的指针。
height输出图片高的指针。
components输出颜色通道个数的指针。
format输出JPEG原图编码格式的指针。

返回值说明

返回0表示获取信息成功,返回非0表示获取信息失败。

父主题: JPEGD功能

acldvppJpegPredictDecSize

函数功能

根据存放JPEG图片数据的内存预估JPEG图片解码后所需的输出内存的大小。

函数原型

aclError acldvppJpegPredictDecSize(const void *data,

uint32_t dataSize,

acldvppPixelFormat outputPixelFormat,

uint32_t *decSize)

参数说明

参数名输入/输出说明
data输入存放JPEG图片数据的内存地址指针。
size输入内存大小,单位为Byte。
outputPixelFormat输入解码后的输出图片的格式。
decSize输出预估JPEG图片解码后所需输出内存大小的指针,单位为Byte。

返回值说明

返回0表示获取信息成功,返回非0表示获取信息失败。

参考资源

接口调用流程及示例,参见JPEGD图像解码

父主题: JPEGD功能

功能及约束说明

功能说明

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

在线提单