JPEGE功能
功能及约束说明
功能及约束说明
JPEGE(JPEG encoder)将YUV格式图片编码成JPEG压缩格式的图片文件,例如*.jpg。
- JPEGE输入的约束:
- 输入图片分辨率
最大分辨率:8192 * 8192,最小分辨率:32 * 32。
- 输入图片格式:
- YUV422 Packed(yuyv,yvyu,uyvy,vyuy)
- YUV420SP(NV12,NV21)
- 输入内存:
- 输入内存首地址要求128对齐。调用acldvppMalloc接口/acldvppFree接口申请或释放内存。
- 输入内存大小与图片数据的格式相关,计算公式如下:
YUV422packed:widthStride*heightStride
YUV420SP:widthStride*heightStride*3/2
- 输入图片的宽stride、高stride对齐要求:
- 输入图片的widthStride(即对齐后的宽度),对齐到16,兼容对齐到16的倍数如128。对于YUV422packed数据,widthStride应该为输入图片宽度的两倍对齐到16。
- 输入图片的heightStride,取值:配置为与输入图片的高度相同的数值;或配置为输入图片的高度向上对齐到16的数值(最小为32)。其中后一种取值的使用场景举例:JPEGD的输出图片直接作为JPEGE的输入(JPEGD输出图片高度是向上对齐到16的)。
- 输入图片分辨率
- JPEGE输出的约束:
- 输出图片格式:
- JPEG压缩格式的图片文件,例如*.jpg。
- 只支持huffman编码,不支持算术编码,不支持渐进编码。
- 输出内存:
- 输出内存的大小就是指实际的编码后图片所占用的大小。可调用acldvppJpegPredictEncSize接口预估输出内存大小。
- 输出内存首地址要求128对齐。调用acldvppMalloc接口/acldvppFree接口申请或释放内存。
- 输出图片格式:
性能指标说明(昇腾310 AI处理器)
1080p指分辨率为1920*1080的图片;4K指分辨率为3840*2160的图片。单个Device的基本场景性能指标参考如下:
场景举例 |
总帧率 |
---|---|
1080p * n路(n≥1) |
64fps |
4k * n路(n≥1) |
16fps |
性能指标说明(昇腾910 AI处理器)
1080p指分辨率为1920*1080的图片;4K指分辨率为3840*2160的图片。单个Device的基本场景性能指标参考如下:
场景举例(输入图片格式:YUV420 8bit) |
总帧率 |
---|---|
1080p * n路(1≤n≤8) |
n*128fps |
1080p * n路(n>8) |
1024fps |
4k * n路(1≤n≤8) |
n*32fps |
4k * n路(n>8) |
256fps |
acldvppJpegEncodeAsync
函数功能
将YUV格式图片编码成.jpg图片,异步接口。
函数原型
aclError acldvppJpegEncodeAsync(acldvppChannelDesc *channelDesc,
acldvppPicDesc *inputDesc,
const void *data,
uint32_t *size,
acldvppJpegeConfig *config,
aclrtStream stream);
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
channelDesc |
输入 |
指定通道描述信息,与调用acldvppCreateChannel接口创建通道时指定的channelDesc保持一致。 |
inputDesc |
输入 |
输入图片描述信息。
|
data |
输出 |
输出内存地址,存放编码后的数据。 |
size |
输入&输出 |
输出内存大小,单位Byte。 size作为输入参数时,可提前调用acldvppJpegPredictEncSize接口预估输出内存大小。 size作为输出参数时,表示实际输出内存大小,可能与调用acldvppJpegPredictEncSize接口预估的内存大小存在差异,如果用户需要取用编码后的数据,请使用实际输出内存大小。 |
config |
输入 |
表示图片编码配置数据。 调用acldvppCreateJpegeConfig接口创建图片编码配置数据,调用acldvppSetJpegeConfigLevel接口设置编码配置数据。 |
stream |
输入 |
指定Stream。 |
返回值说明
返回0表示任务下发成功,返回非0表示任务下发失败。
acldvppJpegPredictEncSize
函数功能
根据输入图片描述信息、图片编码配置数据预估图片编码后所需的输出内存的大小。
函数原型
aclError acldvppJpegPredictEncSize(const acldvppPicDesc *inputDesc, const acldvppJpegeConfig *config, uint32_t *size)
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
inputDesc |
输入 |
输入图片描述信息。 调用acldvppCreatePicDesc接口创建图片描述信息,调用acldvppSetPicDesc系列接口设置图片描述参数(例如,图片格式、宽、高等)。 |
config |
输入 |
图片编码配置数据。 调用acldvppCreateJpegeConfig接口创建图片编码配置数据。 |
size |
输出 |
预估JPEG图片编码后所需的输出内存的大小,单位为Byte。 预估的输出内存会大于实际输出内存,实际输出内存需从acldvppJpegEncodeAsync接口的输出参数size获取。 |
返回值说明
返回0表示成功,返回其它值表示失败。