下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

JPEGE功能及约束说明

Atlas 200/300/500 推理产品上,不支持本章中的JPEGE功能。

Atlas 训练系列产品上,不支持本章中的JPEGE功能。

功能说明

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

图片分辨率约束

  • 输入图片分辨率:

    型号

    分辨率范围

    Atlas 推理系列产品

    Atlas A2训练系列产品/Atlas 800I A2推理产品

    最大分辨率:8192*8192,最小分辨率:32*32。

    Atlas 200/500 A2推理产品

    最大分辨率:16384*16384,最小分辨率:32*32。

  • 输出图片分辨率

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

内存申请/释放接口说明

输入内存的大小就是指实际的输入码流所占用的大小,输出内存的大小参见表1中的计算公式。

型号

输入内存申请/释放接口

输出内存申请/释放接口

Atlas 推理系列产品

JPEGE图片编码功能时,调用hi_mpi_dvpp_malloc\hi_mpi_dvpp_free接口申请\释放Device上的输入内存,这部分内存的生命周期由用户自行管理。

支持以下两种方式:
  • 不需要用户管理、由DVPP内部管理输出内存时,调用hi_mpi_venc_send_frame接口发送原始图像进行图像编码。

    在调用hi_mpi_venc_create_chn接口创建通道时,必须正确设置hi_venc_chn_attr.venc_attr.buf_size参数值(参数描述请参见hi_venc_attr)。

    该方式下,相比由用户管理内存,输出结果数据的JPEG头中不存在COM注释字段,数据长度会短一点,但需要用户从DVPP返回的内存中拷贝输出结果数据到指定内存。

  • 由用户自行管理输出内存、管理内存的生命周期,调用hi_mpi_venc_send_jpege_frame接口发送原始图像进行图像编码。

    在调用hi_mpi_venc_create_chn接口创建通道时,需将hi_venc_chn_attr.venc_attr.buf_size参数值设置为0(参数描述请参见hi_venc_attr),然后调用hi_mpi_venc_get_jpege_predicted_size接口预估输出内存大小,调用hi_mpi_dvpp_malloc\hi_mpi_dvpp_free接口申请\释放输出内存。

    该方式下,直接在调用hi_mpi_venc_send_jpege_frame接口时,设置输出内存地址,输出结果数据直接存放到用户设置的内存中,相比由系统管理内存的方式,用户可减少一次“从DVPP返回的内存中拷贝输出结果数据到指定内存”的操作,但输出结果数据的JPEG头中可能会存在COM注释字段(字段长度范围4~19Byte),数据长度会长一点。

Atlas A2训练系列产品/Atlas 800I A2推理产品

Atlas 200/500 A2推理产品

JPEGE图片编码功能时,支持以下两种内存申请接口:

  • 调用aclrtMalloc\aclrtFree接口申请\释放Device上的输入内存,这部分内存的生命周期由用户自行管理。申请内存时,建议申请ACL_MEM_MALLOC_HUGE_FIRST类型的内存,优先申请大页内存,大页性能更优。
  • 调用hi_mpi_dvpp_malloc\hi_mpi_dvpp_free接口申请\释放Device上的输入内存,这部分内存的生命周期由用户自行管理。

注意:调用hi_mpi_dvpp_malloc接口申请的内存为媒体数据处理的专用内存,但专用内存的地址空间有限,若关注内存规划或内存资源有限时,建议调用aclrtMalloc接口申请内存。

支持以下两种方式:
  • 不需要用户管理、由DVPP内部管理输出内存时,调用hi_mpi_venc_send_frame接口发送原始图像进行图像编码。

    在调用hi_mpi_venc_create_chn接口创建通道时,必须正确设置hi_venc_chn_attr.venc_attr.buf_size参数值(参数描述请参见hi_venc_attr)。

    该方式下,相比由用户管理内存,输出结果数据的JPEG头中不存在COM注释字段,数据长度会短一点,但需要用户从DVPP返回的内存中拷贝输出结果数据到指定内存。

  • 由用户自行管理输出内存、管理内存的生命周期,调用hi_mpi_venc_send_jpege_frame接口发送原始图像进行图像编码。

    在调用hi_mpi_venc_create_chn接口创建通道时,需将hi_venc_chn_attr.venc_attr.buf_size参数值设置为0(参数描述请参见hi_venc_attr),然后调用hi_mpi_venc_get_jpege_predicted_size接口预估输出内存大小,调用hi_mpi_dvpp_malloc\hi_mpi_dvpp_free接口申请\释放输出内存(也支持调用aclrtMalloc\aclrtFree接口申请\释放Device上的输出内存)。

    该方式下,直接在调用hi_mpi_venc_send_jpege_frame接口时,设置输出内存地址,输出结果数据直接存放到用户设置的内存中,相比由系统管理内存的方式,用户可减少一次“从DVPP返回的内存中拷贝输出结果数据到指定内存”的操作,但输出结果数据的JPEG头中可能会存在COM注释字段(字段长度范围4~19Byte),数据长度会长一点。

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

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

输入图片格式

输入图片宽、高对齐要求

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

输出图片格式

YUV420SP NV12 8bit

宽2对齐

高2对齐

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

高stride无需设置。

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

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

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

YUV420SP NV21 8bit

YUV422Packed YUYV 8bit

宽2对齐

高无对齐要求

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

高stride无需设置。

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

YUV422Packed UYVY 8bit

YUV422Packed YVYU 8bit

YUV422Packed VYUY 8bit

输入图片格式的定义请参见hi_pixel_format,宽stride、高stride等概念请参见基本概念

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词