InitVpcChannel
~ImageProcessor
函数功能
ImageProcessor类的默认析构函数。
函数原型
~ImageProcessor()
父主题: ImageProcessor
InitJpegEncodeChannel
函数功能
初始化JPEGE图像通道,用于JPEG编码。
函数原型
APP_ERROR InitJpegEncodeChannel(const JpegEncodeChnConfig& config = JPEG_ENCODE_CHN_CONFIG);
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| config | 输入 | 通道配置参数,取值范围为[32, 8192], 默认值为“JPEG_ENCODE_CHN_CONFIG”,(即图像最大宽高为8192 * 8192)。该配置无效。 当前仅支持配置图片编码的通道宽高(maxPicWidth、maxPicHeight),内部自动16对齐,当高小于宽时,高自动向上对齐到宽的长度,请根据实际编码场景图片预留适当的宽高。 对应数据结构参见如下。 text<br>struct JpegEncodeChnConfig {<br>uint32_t maxPicWidth = MAX_HIMPI_VENC_PIC_WIDTH;<br>uint32_t maxPicHeight = MAX_HIMPI_VENC_PIC_HEIGHT;<br>};<br> |
返回参数说明
| 数据结构 | 说明 |
|---|---|
| APP_ERROR | 程序执行返回的错误码,请参考APP_ERROR说明。 |
父主题: ImageProcessor
InitJpegDecodeChannel
函数功能
初始化JPEGD图像通道,用于JPEG解码。
函数原型
APP_ERROR InitJpegDecodeChannel(const JpegDecodeChnConfig& config = JPEG_DECODE_CHN_CONFIG);
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| config | 输入 | 通道配置参数,默认值为“JPEG_DECODE_CHN_CONFIG”。 对应数据结构参见如下(当前预留)。 text<br>struct JpegDecodeChnConfig {};<br> |
返回参数说明
| 数据结构 | 说明 |
|---|---|
| APP_ERROR | 程序执行返回的错误码,请参考APP_ERROR说明。 |
父主题: ImageProcessor
InitVpcChannel
函数功能
初始化VPC图像通道,用于图像处理功能(抠图、缩放、补边、抠图缩放、抠图贴图、色域转换)。
函数原型
APP_ERROR InitVpcChannel(const VpcChnConfig& config = VPC_CHN_CONFIG);
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| config | 输入 | 通道配置参数,默认值为“VPC_CHN_CONFIG”。 对应数据结构参见如下(当前预留)。 text<br>struct VpcChnConfig {};<br> |
返回参数说明
| 数据结构 | 说明 |
|---|---|
| APP_ERROR | 程序执行返回的错误码,请参考APP_ERROR说明。 |
父主题: ImageProcessor
InitPngDecodeChannel
函数功能
初始化PNGD图像通道,用于PNG图片解码。
函数原型
APP_ERROR InitPngDecodeChannel(const PngDecodeChnConfig& config = PNG_DECODE_CHN_CONFIG);
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| config | 输入 | 通道配置参数,默认值为“PNG_DECODE_CHN_CONFIG”。 对应数据结构参见如下(当前预留)。 text<br>struct PngDecodeChnConfig {}; <br> |
返回参数说明
| 数据结构 | 说明 |
|---|---|
| APP_ERROR | 程序执行返回的错误码,请参考APP_ERROR说明。 |
父主题: ImageProcessor
Decode
函数功能
ImageProcessor类的图片解码接口,使用该接口申请的Image内存无需用户管理,由内部管理释放。仅支持以Host侧申请的内存作为解码接口的输入。输入图片内存的数据类型目前支持JPEG和PNG两种格式。
- JPG/JPEG格式:
-
JPG/JPEG输入图片的最大分辨率:8192 * 8192,其中 RGB_888, BGR_888 格式只支持至 4096*4096。
-
JPG/JPEG输入图片的最小分辨率:32 * 32。
-
输出解码后的图片及“outputImage”的数据类型目前仅支持YUV_SP_420,YVU_SP_420两种图像格式。
-
输出图片的宽。
- Atlas 200I/500 A2 推理产品对齐到128(即宽度为128的倍数),在对齐操作前,接口会向下2对齐操作,例如:图片原图宽为1023 ,在进行Decode接口解码处理后,通过GetSize()获得的值为1024,通过GetOriginalSize()获得的值为1022。
-
输出图片的高:对齐到16(即高度为16的倍数),解码接口自动对齐。
对于Atlas 200I/500 A2 推理产品,在对齐操作前,接口会向下2对齐操作,例如:图片原图高为683,在进行Decode接口解码处理后,通过GetSize()获得的值为688,通过GetOriginalSize()获得的值为682。
:::note 说明 JPG/JPEG输入图片格式约束:
- 只支持Huffman编码,码流的subsample为444/422/420/400/440。
- 不支持算术编码。
- 不支持渐进JPEG格式。
- 不支持JPEG2000格式。 :::
-
- PNG格式:
- PNG输入图片的最大分辨率:4096 * 4096。
- PNG输入图片的最小分辨率:32 * 32。
- 输出图片的宽:对齐到128(即宽度为128的倍数),解码接口自动对齐。
- 输出图片的高:对齐到16(即高度为16的倍数),解码接口自动对齐。
函数原型
APP_ERROR Decode(const std::shared_ptr<uint8_t> dataPtr, const uint32_t dataSize,
Image& outputImage, const ImageFormat decodeFormat = ImageFormat::YUV_SP_420);
APP_ERROR Decode(const std::string inputPath, Image& outputImage,
const ImageFormat decodeFormat = ImageFormat::YUV_SP_420);
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| dataPtr | 输入 | 输入待解码图片数据的内存地址。解码前图像数据内存地址需要用户进行管理。 |
| dataSize | 输入 | 输入待解码图片数据的内存大小。需要与“dataPtr”的实际内存大小相符。 - 用户提供的“dataSize”无法完整读取图片文件头信息,则会返回异常。 - 用户提供的“dataSize”大于文件头信息并且小于实际内存大小,则会根据“dataSize”进行部分解码。 - 用户提供的“dataSize”大于实际内存大小,则以图片文件结束符为准。 |
| decodeFormat | 输入 | 输入解码后图片的格式。 - JPG/JPEG图片“decodeFormat”默认参数为“YUV_SP_420”,可自行设置该参数。 - 对于PNG图片,“decodeFormat”仅在输入图片通道是RGB/GRAY格式时,配置BGR_888会生效;其余情况设置该参数无效,将按PNG源格式进行解码,例如: - PNG图片通道为RGB/GRAY格式,则解码输出图片格式为RGB_888。 - PNG图片通道为RGBA/AGRAY格式,则解码输出图片格式为RGBA_8888。 |
| inputPath | 输入 | 输入待解码的图片路径。 |
| outputImage | 输出 | 输出解码后的Image类。 图片宽高和对齐后的宽高会自动合入进“outputImage”内。 |
返回参数说明
| 数据结构 | 说明 |
|---|---|
| APP_ERROR | 程序执行返回的错误码,请参考APP_ERROR说明。 |
父主题: ImageProcessor
Encode
函数功能
ImageProcessor类的图片编码接口,使用该接口申请的Image内存无需用户管理,由内部管理释放。
- 输入图像的最大分辨率:8192 * 8192。
- 输入图像的最小分辨率:32 * 32。
- 输入图像的真实宽、高均为偶数,若为奇数,则自动向上取偶数,编码出的图片自动补边1像素。
- 输入图像的宽:对于YUV420SP或RGB数据,对齐到16。
- 输入图像的高:与输入图片的高度相同的数值,或为输入图片的高度向上对齐到16的数值(最小为32)。
- 输入图像格式:
- Atlas 200I/500 A2 推理产品支持YUV_SP_420、YVU_SP_420(nv12、nv21)。
- 输出图片格式:jpeg压缩格式的图片文件,例如*.jpg。
函数原型
APP_ERROR Encode(const Image& inputImage, const std::string savePath, const uint32_t encodeLevel = 100);
APP_ERROR Encode(const Image& inputImage, std::shared_ptr<uint8_t>& outDataPtr, uint32_t& outDataSize, const uint32_t encodeLevel = 100);
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| inputImage | 输入 | 输入编码前的Image类。Decode接口和其他VPC接口获取的Image类可以直接作为输入。 若是用户自定义构造的Image类,则需要设置图像宽高。 |
| encodeLevel | 输入 | 默认为“100”,输入编码的级别[0, 100]。 |
| savePath | 输入 | 输入编码后保存的图片路径,文件后缀名限制为jpg。 |
| outDataPtr | 输出 | 输出编码后的图片内存数据地址。 |
| outDataSize | 输出 | 输出编码后的图片内存数据大小。 |
返回参数说明
| 数据结构 | 说明 |
|---|---|
| APP_ERROR | 程序执行返回的错误码,请参考APP_ERROR说明。 |
父主题: ImageProcessor
在线提单