hbVPJPEGDecode

int32_t hbVPCreateJPEGDecContext(hbVPJPEGContext *context, uint32_t outBufCount, uint8_t imageFormat);

创建解码器上下文API,创建前需要提前将context初始化为nullptr。

  • 参数
    • [out] context 解码器上下文指针。
    • [in] outBufCount JPU内部输出缓冲区个数。取值范围[1, 31],默认5。
    • [in] imageFormat 输出图像的格式。
  • 返回值
    • 返回 0 则表示API成功执行,否则执行失败。
  • 接口限制说明
    • imageFormat 支持 HB_VP_IMAGE_FORMAT_NV12HB_VP_IMAGE_FORMAT_YUV420HB_VP_IMAGE_FORMAT_YUV444HB_VP_IMAGE_FORMAT_YUV444_P 格式。
    • 由于硬件限制,解码器内部以 16x16 为单元做解码处理,因此解码后的分辨率变化为16x16对齐后的分辨率。
    • JPU最高支持创建64路编码或解码的上下文。
    • 仅支持8bit解码。
int32_t hbVPReleaseJPEGDecContext(hbVPJPEGContext context);

释放解码器上下文API。

  • 参数
    • [in] context 解码器上下文指针。
  • 返回值
    • 返回 0 则表示API成功执行,否则执行失败。
int32_t hbVPJPEGDecode(hbUCPTaskHandle_t *taskHandle, hbVPArray const *srcBuf, hbVPJPEGContext context);

调用JPEG解码API。

  • 参数
    • [out] taskHandle 任务句柄,负责算子与UCP架构的交互。
    • [in] srcBuf 存放JPEG数据的内存地址指针。
    • [in] context 解码器上下文指针。
  • 返回值
    • 返回 0 则表示API成功执行,否则执行失败。
  • 接口限制说明
    • JPEG解码时,若解码格式为 HB_VP_IMAGE_FORMAT_YUV444,要求输入的JPEG数据的格式为 HB_VP_IMAGE_FORMAT_YUV444 或者 HB_VP_IMAGE_FORMAT_YUV444
    • 仅支持异步方式创建任务。
int32_t hbVPGetJPEGDecOutputBuffer(hbUCPTaskHandle_t taskHandle, hbVPImage *dstImg);

调用JPEG编码API。

  • 参数
    • [in] taskHandle 任务句柄,负责算子与UCP架构的交互。
    • [out] dstImg 存放解码图像的内存地址指针。
  • 返回值
    • 返回 0 则表示API成功执行,否则执行失败。
  • 接口限制说明
    • 图像缓冲区 dstImg 由JPU内部申请。
    • 当任务成功完成后,输出缓冲区中的数据有效;在任务释放阶段,输出缓冲区将被释放。