函数:dvpp_jpeg_decode_async
C函数原型 |
aclError acldvppJpegDecodeAsync(acldvppChannelDesc *channelDesc, const void *data, uint32_t size, acldvppPicDesc *outputDesc, aclrtStream stream) |
---|---|
Python函数 |
ret = acl.media.dvpp_jpeg_decode_async(dvpp_channel_desc, data, size, output_dvpp_pic_desc, stream) |
函数功能 |
解码.jpg、.jpeg、.JPG、.JPEG图片,异步接口。 |
输入说明 |
dvpp_channel_desc:int,指定通道描述信息的指针地址,与调用acl.media.dvpp_create_channel接口创建通道时指定的dvpp_channel_desc保持一致。 data:int,输入图片的内存地址的指针地址。 size:int,输入图片的实际数据大小,单位Byte。
output_dvpp_pic_desc:int,输出图片信息的指针地址。
作为输出时,用户可以从内存地址中获取解码后的输出图片数据、可以调用acl.media.dvpp_get_pic_desc系列接口获取输出图片的宽/高。
说明:
Atlas 推理系列产品上,如果解码后的输出图片数据需要在后续操作(例如,使用VPC实现抠图、缩放等功能)中使用,建议在解码后调用acl.media.dvpp_get_pic_desc获取输出图片的宽/高,因为解码过程中可能会对输出图片的宽高执行对齐操作。 例如,jpeg(444) 源码的图片解码成YUV420SP格式的输出图片时,当jpeg(444) 源码图片的宽/高为奇数时,解码出来的YUV420SP格式的输出图片的宽/高理论上应该为奇数,但是YUV420SP格式本身要求图片的宽/高都为偶数,这时JPEGD会对奇数宽/高做向下2对齐的操作。 Atlas 200I/500 A2推理产品上,如果解码后的输出图片数据需要在后续操作(例如,使用VPC实现抠图、缩放等功能)中使用,建议在解码后调用acl.media.dvpp_get_pic_desc获取输出图片的宽/高,因为解码过程中可能会对输出图片的宽高执行对齐操作。 例如,jpeg(444) 源码的图片解码成YUV420SP格式的输出图片时,当jpeg(444) 源码图片的宽/高为奇数时,解码出来的YUV420SP格式的输出图片的宽/高理论上应该为奇数,但是YUV420SP格式本身要求图片的宽/高都为偶数,这时JPEGD会对奇数宽/高做向下2对齐的操作。 Atlas A2训练系列产品/Atlas 800I A2推理产品上,如果解码后的输出图片数据需要在后续操作(例如,使用VPC实现抠图、缩放等功能)中使用,建议在解码后调用acl.media.dvpp_get_pic_desc获取输出图片的宽/高,因为解码过程中可能会对输出图片的宽高执行对齐操作。 例如,jpeg(444) 源码的图片解码成YUV420SP格式的输出图片时,当jpeg(444) 源码图片的宽/高为奇数时,解码出来的YUV420SP格式的输出图片的宽/高理论上应该为奇数,但是YUV420SP格式本身要求图片的宽/高都为偶数,这时JPEGD会对奇数宽/高做向下2对齐的操作。 stream:int,指定Stream对象。 |
返回值说明 |
ret:int,错误码。
|
约束说明 |
本接口是异步接口,调用接口成功仅表示任务下发成功,不表示任务执行成功。调用该接口后,需调用同步等待接口(例如,acl.rt.synchronize_stream)确保任务已执行完成。 |
参考资源 |