hbVPPyrDown

typedef struct {
  int8_t levels;
  hbVPInterpolationType interpolation;
} hbVPPymParam;

Pym配置参数结构体。

  • 成员

    成员名称描述
    levels选择金字塔激活层数。
    interpolation选择金字塔的插值方式,支持 hbVPInterpolationType 中的GAUSSIAN和LINEAR类型。
int32_t hbVPPyrDown(hbUCPTaskHandle_t *taskHandle,
                    hbVPImage *dstImgs,
                    hbVPImage const *srcImg
                    hbVPPymParam const *pymCfg);
注解
  • 在使用双线性金字塔时,输入图像的尺寸需满足[64, 4096]的范围限制,每一层的输出图像的尺寸需要满足[32, 2048]的范围限制。

  • 在使用双线性金字塔处理10bit、12bit图像时,需注意任务仅支持运行在J6B的HB_UCP_PYRAMID_CORE_0上,其中10bit、12bit仅为y通道的像素宽度,uv通道仍为8bit。同时10bit、12bit的y数据需要以MSB的方式进行16bit存储,即一个像素占用两个字节空间。

  • 输入输出图像的stride要求向width方向进行16字节对齐,满足[ALIGNED_16(width) * bytes_per_pixel, 4096 * bytes_per_pixel]的范围限制,其中 bytes_per_pixel 为每个像素的字节数。具体的设置方式为stride = ALIGN_UP(width, 16u) * bytes_per_pixel。由于uv通道仅支持8bit计算,因此在计算uvStride时,上述限制条件和计算方式中的 bytes_per_pixel = 1

调用PyrDown API。

  • 参数
    • [out] taskHandle 任务句柄,负责算子与UCP架构的交互。
    • [out] dstImgs 输出图像数组,每一层的type和format与输入图像一致,每一层的width和height分别为上一层图像的一半。取整策略为:高斯金字塔为向上取整,双线性金字塔为向下取整。
    • [in] srcImg 输入图像,高斯金字塔type支持U8C1,format支持Y和nv12;双线性金字塔type支持U8C1和U16C1,format支持nv12、nv12_y10c8_msb和nv12_y12c8_msb。
    • [in] pymCfg 输入金字塔配置结构体,金字塔支持1到5层计算。特殊地,J6B平台上仅支持1到3层计算。
  • 返回值
    • 返回 0 则表示API成功执行,否则执行失败。