hbVPISP

typedef struct {
  int8_t bufNum;
  int8_t bufCached;
  uint64_t backend;
  int32_t width;
  int32_t height;
} hbVPISPCtxParam;

ISP配置参数结构体。

  • 成员

    成员名称描述
    bufNumISP 底层分配输出buffer个数,最少支持2个,最多支持9个。
    bufCached是否使用cached buffer,0:不激活cache,1:激活cache
    backend选择执行ISP任务的后端
    width输入图像的宽度
    height输入图像的高度
注解

在使用ISP时,输入图像的width要满足[480, 4096]的限制,height要满足[240, 2160]的限制, 提交ISP任务时指定的执行backend需要与配置参数中的backend参数保持一致。

int32_t hbVPCreateISPContext(hbVPISPContext *context,
                             hbVPISPCtxParam const *ispCtxParam);

创建ISP上下文API,创建前需要提前将context初始化为nullptr,每一个backend最多支持创建8路context。

  • 参数
    • [out] context ISP上下文。
    • [in] ispCtxParam 输入ISP配置结构体。
  • 返回值
    • 返回 0 则表示API成功执行,否则执行失败。
int32_t hbVPISP(hbUCPTaskHandle_t *taskHandle, hbVPImage const *srcImg,
                hbVPISPContext context);

调用ISP。

  • 参数
    • [out] taskHandle 任务句柄,负责算子与UCP架构的交互。
    • [in] srcImg ISP的输入图像。
    • [in] context ISP上下文。
  • 返回值
    • 返回 0 则表示API成功执行,否则执行失败。
  • 接口限制说明
    • 执行ISP时,要求输入图像的Image Format为 HB_VP_IMAGE_FORMAT_Y,Image Type为 HB_VP_IMAGE_TYPE_U12C1
    • 仅支持异步方式创建任务。
int32_t hbVPGetISPOutputBuffer(hbVPImage *outImg, hbUCPTaskHandle_t taskHandle);

获取ISP输出buffer。

  • 参数
    • [out] outImg ISP的输出图像,格式为nv12。
    • [in] taskHandle 任务句柄,负责算子与UCP架构的交互。
  • 返回值
    • 返回 0 则表示API成功执行,否则执行失败。
  • 接口限制说明
    • 图像缓冲区 dstImg 由ISP内部申请。
    • 当任务成功完成后,输出缓冲区中的数据有效;在任务释放阶段,输出缓冲区将被释放。
int32_t hbVPReleaseISPContext(hbVPISPContext context);

释放ISP上下文API。

  • 参数
    • [in] context ISP上下文。
  • 返回值
    • 返回 0 则表示API成功执行,否则执行失败。