---
title: 功能及约束说明
description: "JPEGE（JPEG Encoder）将YUV格式图片编码成JPEG压缩格式的图片文件，例如*.jpg。"
url: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/latest/Application%20Development%20Guide/aadgp/aclpythondevg_01_0316.html
sourcePath: /source/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application Development Guide/aadgp/aclpythondevg_01_0316.html
indexId: 6d7918881fe14e196801fe46c5bb7f153ba3e6be063d6e31c8b7f23b9d8957e5108
---
# 功能及约束说明

#### 功能说明

JPEGE（JPEG Encoder）将YUV格式图片编码成JPEG压缩格式的图片文件，例如*.jpg。


#### 图片分辨率约束

- 输入图片分辨率：| 昇腾AI处理器 | 分辨率范围 |
| --- | --- |
| Atlas 200/500 A2推理产品 | 最大分辨率：16384\*16384，最小分辨率：32\*32。 |


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


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

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

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

输入图片格式的定义请参见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 | 宽2对齐 高2对齐 | 宽stride为宽16对齐后的值，兼容对齐到16的倍数如128（按128对齐时，性能更优）。 高stride支持以下两种配置： 配置为与输入图片的高度相同的数值； 或配置为输入图片的高度向上对齐到16的数值（最小为32）。 该方式的使用场景举例：JPEGD的输出图片直接作为JPEGE的输入（JPEGD输出图片高度是向上对齐到16的）。 内存大小（单位Byte）= 宽stride \* 高stride \* 3/2 | JPEG压缩格式的图片文件，例如\*.jpg。 只支持huffman编码，不支持算术编码，不支持渐进编码。 |
| YUV422Packed YUYV 8bit | 宽2对齐 高无对齐要求 | 宽stride为宽的两倍再16对齐后的值。 高stride支持以下两种配置： 配置为与输入图片的高度相同的数值； 或配置为输入图片的高度向上对齐到16的数值（最小为32）。 该方式的使用场景举例：JPEGD的输出图片直接作为JPEGE的输入（JPEGD输出图片高度是向上对齐到16的）。 内存大小（单位Byte）= 宽stride \* 高stride | JPEG压缩格式的图片文件，例如\*.jpg。 只支持huffman编码，不支持算术编码，不支持渐进编码。 |
| YUV422Packed UYVY 8bit | 宽2对齐 高无对齐要求 | 宽stride为宽的两倍再16对齐后的值。 高stride支持以下两种配置： 配置为与输入图片的高度相同的数值； 或配置为输入图片的高度向上对齐到16的数值（最小为32）。 该方式的使用场景举例：JPEGD的输出图片直接作为JPEGE的输入（JPEGD输出图片高度是向上对齐到16的）。 内存大小（单位Byte）= 宽stride \* 高stride | JPEG压缩格式的图片文件，例如\*.jpg。 只支持huffman编码，不支持算术编码，不支持渐进编码。 |
| YUV422Packed YVYU 8bit | 宽2对齐 高无对齐要求 | 宽stride为宽的两倍再16对齐后的值。 高stride支持以下两种配置： 配置为与输入图片的高度相同的数值； 或配置为输入图片的高度向上对齐到16的数值（最小为32）。 该方式的使用场景举例：JPEGD的输出图片直接作为JPEGE的输入（JPEGD输出图片高度是向上对齐到16的）。 内存大小（单位Byte）= 宽stride \* 高stride | JPEG压缩格式的图片文件，例如\*.jpg。 只支持huffman编码，不支持算术编码，不支持渐进编码。 |
| YUV422Packed VYUY 8bit | 宽2对齐 高无对齐要求 | 宽stride为宽的两倍再16对齐后的值。 高stride支持以下两种配置： 配置为与输入图片的高度相同的数值； 或配置为输入图片的高度向上对齐到16的数值（最小为32）。 该方式的使用场景举例：JPEGD的输出图片直接作为JPEGE的输入（JPEGD输出图片高度是向上对齐到16的）。 内存大小（单位Byte）= 宽stride \* 高stride | JPEG压缩格式的图片文件，例如\*.jpg。 只支持huffman编码，不支持算术编码，不支持渐进编码。 |
