VPI - Vision Programming Interface

3.2 版本

缩放

更改输入图像的尺寸,同时拉伸/挤压图像。 更多...

函数

VPIStatus vpiSubmitRescale (VPIStream stream, uint64_t backend, VPIImage input, VPIImage output, VPIInterpolationType interpolationType, VPIBorderExtension border, uint64_t flags)
 更改 2D 图像的尺寸和比例。 更多...
 

详细描述

更改输入图像的尺寸,同时拉伸/挤压图像。

有关更多详细信息和使用示例,请参阅 Rescale

函数文档

◆ vpiSubmitRescale()

VPIStatus vpiSubmitRescale ( VPIStream  stream,
uint64_t  backend,
VPIImage  input,
VPIImage  output,
VPIInterpolationType  interpolationType,
VPIBorderExtension  border,
uint64_t  flags 
)

#include <vpi/algo/Rescale.h>

更改 2D 图像的尺寸和比例。

参数
[in]stream操作将被排队到此流中。
  • 不得为 NULL。
  • 流必须已启用将执行该算法的后端。
[in]backend将执行该算法的 VPI 后端。
[in]input要缩放的输入图像。
[out]output具有所需结果尺寸的输出图像。
  • 不得为 NULL。
  • 图像必须已启用将执行该算法的后端。
  • 尺寸必须 >= 1x1。在 VIC 上,有效范围为 >= 16x16 且 <= 16384x16384。
  • 在 VIC 上,当使用色度二次采样的 YUV 格式(4:2:0、4:2:2 或 4:2:2R)时,图像尺寸必须为偶数。
  • 在 VIC 上,缩放因子(输出/输入)必须介于 1/16.0f 和 16.0f 之间。
  • 在 VIC 上,输入和输出格式可以不同。接受的格式与 input 相同,但需满足以下约束条件
    • 不允许位深度转换,即 Y8 到 Y16、Y16 到 NV12 等。
    • 不允许从/到 Y16_ER 的转换,除非仅更改布局。示例:允许 Y16_ER_BL 到 Y16_ER,但不允许 Y16_ER_BL 到 Y16 或 Y16_BL。
  • 在其他后端,输入和输出格式必须相同。
[in]interpolationType要使用的插值方法。
[in]border当对图像边界外的像素进行采样时要使用的边界扩展。
[in]flags控制标志。
  • 有效值是以下一个或多个标志的组合
    • 0:默认值,所有其他标志的否定。
    • VPI_PRECISE:精确但可能较慢的实现。
返回值
VPI_ERROR_INVALID_ARGUMENTstream 为 NULL。
VPI_ERROR_INVALID_ARGUMENTinputoutput 为 NULL。
VPI_ERROR_INVALID_ARGUMENTinputoutput 尺寸超出有效范围。
VPI_ERROR_INVALID_ARGUMENTflags 具有一些不支持的标志。
VPI_ERROR_INVALID_ARGUMENT不支持 border
VPI_ERROR_INVALID_ARGUMENT不支持 interpolationType
VPI_ERROR_INVALID_ARGUMENTbackend 无效或未知。
VPI_ERROR_INVALID_ARGUMENTinputoutput 格式不兼容。
VPI_ERROR_INVALID_IMAGE_FORMAT不支持 inputoutput 格式。
VPI_ERROR_NOT_IMPLEMENTED给定后端不支持缩放算法。
VPI_ERROR_INVALID_OPERATION后端硬件不可用。
VPI_ERROR_INVALID_OPERATION所需的后端未在 streaminputoutput 中启用。
VPI_SUCCESS操作执行成功。