JPEGE Functions and Restrictions
The
Description
JPEG Encoder (JPEGE) encodes YUV images into JPEG images, for example, .jpg images.
Resolution Restrictions
- Input image resolution:
Model
Resolution Range
Atlas A3 training products /Atlas A3 inference products Atlas A2 training products /Atlas A2 inference products Atlas inference products 32 x 32 to 8192 x 8192
Atlas 200I/500 A2 inference products 32 x 32 to 16384 x 16384
- Output image resolution:
JPEGE encodes images without changing the image resolution. Therefore, the output image resolution is the same as the input image resolution.
APIs for Buffer Allocation and Freeing
The size of the input buffer refers to the actual size occupied by the input stream. For details about the size of the output buffer, see the formula in Table 1.
Model |
APIs for Input Buffer Allocation and Freeing |
APIs for Output Buffer Allocation and Freeing |
|---|---|---|
During JPEGE image encoding, call hi_mpi_dvpp_malloc to allocate the input buffer on the device, and hi_mpi_dvpp_free to free. The buffer lifetime is managed by the user. |
The following two methods are supported:
|
|
During JPEGE image encoding, the following two types of buffer allocation/freeing APIs are supported:
Note: hi_mpi_dvpp_malloc allocates a dedicated buffer for processing media data. However, the address space of the dedicated buffer is limited. If buffer resources are limited, aclrtMalloc is recommended for allocating buffer. |
The following two methods are supported:
|
Restrictions on Image Formats, Width and Height Alignment, and Buffers
For details about the definition of the input image format, see hi_pixel_format. For details about the concepts such as width stride and height stride, see Terminology.
Input Image Format |
Input Width and Height Alignment |
Input Width Stride, Height Stride, and Buffer Size |
Output Image Format |
|---|---|---|---|
YUV420SP NV12 8-bit |
Width: Must be a multiple of 2. Height: Must be a multiple of 2. |
Width stride: Round up the width to the nearest multiple of 16 or any multiple of 16, for example, 128 (which offers better performance). The height stride does not need to be configured. Buffer size (in bytes) = Width stride x Height x 3/2 |
Output format: JPEG, for example, *.jpg Only Huffman coding is supported. Arithmetic coding and progressive coding are not supported. |
YUV420SP NV21 8-bit |
|||
YUV422 Packed YUYV 8-bit |
Width: Must be a multiple of 2. Height: No alignment requirements. |
Width stride: Double the width and then round up the result to the nearest multiple of 16. The height stride does not need to be configured. Buffer size (in bytes) = Width stride x Height |
|
YUV422 Packed UYVY 8-bit |
|||
YUV422 Packed YVYU 8-bit |
|||
YUV422 Packed VYUY 8-bit |