将图像内容转换为所需的格式,并可选择像素值缩放和偏移。更多...
数据结构 | |
struct | VPIConvertImageFormatParams |
用于自定义图像格式转换的参数。更多... | |
枚举 | |
enum | VPIConversionPolicy |
图像类型之间转换时使用的策略。更多... | |
函数 | |
VPIStatus | vpiInitConvertImageFormatParams (VPIConvertImageFormatParams *params) |
使用默认值初始化 VPIConvertImageFormatParams。更多... | |
VPIStatus | vpiSubmitConvertImageFormat (VPIStream stream, uint64_t backend, VPIImage input, VPIImage output, const VPIConvertImageFormatParams *params) |
将图像内容转换为所需的格式,并可选择缩放和偏移。更多... | |
VPIStatus | vpiSubmitConvertImageFormatPyramid (VPIStream stream, uint64_t backend, VPIPyramid input, VPIPyramid output, const VPIConvertImageFormatParams *params) |
将金字塔内容转换为所需的格式,并可选择缩放和偏移。更多... | |
将图像内容转换为所需的格式,并可选择像素值缩放和偏移。
有关更多详细信息和使用示例,请参阅 转换图像格式。
struct VPIConvertImageFormatParams |
用于自定义图像格式转换的参数。
这些参数用于自定义转换的执行方式。请务必在更新其属性之前调用 vpiInitConvertImageFormatParams 以初始化此结构。这保证了未来版本中添加的新属性将被分配合适的默认值。
定义于文件 ConvertImageFormat.h 的第 85 行。
数据字段 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
VPIConversionPolicy | policy | 要使用的转换策略。
| ||||||||||||||||
float | scale | 缩放因子。 传递 1 表示不缩放。
| ||||||||||||||||
float | offset | 偏移因子。 传递 0 表示不偏移。
| ||||||||||||||||
uint64_t | flags | 控制标志。
| ||||||||||||||||
VPIInterpolationType | chromaUpFilter | 用于色度上采样的插值。
| ||||||||||||||||
VPIInterpolationType | chromaDownFilter | 用于色度下采样的插值。
|
enum VPIConversionPolicy |
#include <vpi/Types.h>
图像类型之间转换时使用的策略。
枚举器 | |
---|---|
VPI_CONVERSION_CLAMP | 将输入值限制在输出类型范围内。 溢出和下溢分别映射到输出类型的最大值和最小值。当输出类型为浮点型时,钳位行为类似于类型转换。 |
VPI_CONVERSION_CAST | 将输入值强制转换为输出类型。 溢出和下溢按照 C 规范处理,包括未定义行为的情况。 |
VPI_CONVERSION_INVALID | 无效的转换。 |
VPIStatus vpiInitConvertImageFormatParams | ( | VPIConvertImageFormatParams * | params | ) |
#include <vpi/algo/ConvertImageFormat.h>
使用默认值初始化 VPIConvertImageFormatParams。
以下参数被设置
[out] | params | 要填充的结构的指针。不得为 NULL。 |
VPI_ERROR_INVALID_ARGUMENT | params 为 NULL。 |
VPI_SUCCESS | 操作成功执行。 |
VPIStatus vpiSubmitConvertImageFormat | ( | VPIStream | stream, |
uint64_t | backend, | ||
VPIImage | input, | ||
VPIImage | output, | ||
const VPIConvertImageFormatParams * | params | ||
) |
#include <vpi/algo/ConvertImageFormat.h>
将图像内容转换为所需的格式,并可选择缩放和偏移。
输入和输出格式从作为参数传递的相应图像推断得出。当缩放和偏移是分数时,输入在转换发生之前被转换为 32 位浮点数。关联输入和输出像素的公式是
\[ out(x,y) = clamp_{[\mathsf{min_{out}},\mathsf{max_{out}}]}(in(x,y)*\alpha + \beta) \]
其中
浮点到整数的转换返回最接近的整数,将中间情况四舍五入到远离零的方向。
支持的格式转换。
CPU 和 CUDA | VIC |
---|---|
VPI_IMAGE_FORMAT_2F32 | VPI_IMAGE_FORMAT_Y16 |
VPI_IMAGE_FORMAT_Y16_BL | |
VPI_IMAGE_FORMAT_Y16_BL16 |
VIC |
---|
VPI_IMAGE_FORMAT_Y16_ER |
VPI_IMAGE_FORMAT_Y16_ER_BL |
VPI_IMAGE_FORMAT_Y16_ER_BL16 |
VIC |
---|
VPI_IMAGE_FORMAT_2S16 |
VPI_IMAGE_FORMAT_2S16_BL |
VPI_IMAGE_FORMAT_2S16_BL16 |
扩展范围或工作室范围的格式与非彩色格式(即 U8、F32、S16 等)之间的转换将保持范围不变,但 VPIConvertImageFormatParams::policy 中指定的钳位或强制转换除外。
[in] | stream | 操作将排队到其中的流句柄。
|
[in] | backend | 将执行该算法的后端。 |
[in] | input | 要转换的输入图像。
|
[out] | output | 结果将写入到的输出图像,具有所需的格式。
|
[in] | params | 用于微调转换的参数。传递 NULL 以使用 vpiInitConvertImageFormatParams 给出的默认值。 |
VPI_ERROR_INVALID_ARGUMENT | stream 为 NULL。 |
VPI_ERROR_INVALID_ARGUMENT | input 或 output 为 NULL。 |
VPI_ERROR_INVALID_ARGUMENT | params 中的无效标志。 |
VPI_ERROR_INVALID_ARGUMENT | params 中的无效转换类型。 |
VPI_ERROR_INVALID_ARGUMENT | input 和 output 图像尺寸不匹配。 |
VPI_ERROR_INVALID_ARGUMENT | output 格式不能用于给定的图像尺寸。 |
VPI_ERROR_INVALID_IMAGE_FORMAT | 不支持格式转换。 |
VPI_ERROR_NOT_IMPLEMENTED | 给定后端不支持转换图像格式算法。 |
VPI_ERROR_INVALID_OPERATION | 硬件后端不可用。 |
VPI_ERROR_INVALID_OPERATION | 所需的后端未在 stream 、input 或 output 中启用。 |
VPI_SUCCESS | 操作成功执行。 |
VPIStatus vpiSubmitConvertImageFormatPyramid | ( | VPIStream | stream, |
uint64_t | backend, | ||
VPIPyramid | input, | ||
VPIPyramid | output, | ||
const VPIConvertImageFormatParams * | params | ||
) |
#include <vpi/algo/ConvertImageFormat.h>
将金字塔内容转换为所需的格式,并可选择缩放和偏移。
输入和输出格式从作为参数传递的相应金字塔推断得出。当缩放和偏移是分数时,输入在转换发生之前被转换为 32 位浮点数。关联输入和输出像素的公式是
\[ out(x,y) = clamp_{[\mathsf{min_{out}},\mathsf{max_{out}}]}(in(x,y)*\alpha + \beta) \]
其中
浮点到整数的转换返回最接近的整数,将中间情况四舍五入到远离零的方向。
支持的格式转换。
CPU 和 CUDA | VIC |
---|---|
VPI_IMAGE_FORMAT_2F32 | VPI_IMAGE_FORMAT_Y16 |
VPI_IMAGE_FORMAT_Y16_BL | |
VPI_IMAGE_FORMAT_Y16_BL16 |
VIC |
---|
VPI_IMAGE_FORMAT_Y16_ER |
VPI_IMAGE_FORMAT_Y16_ER_BL |
VPI_IMAGE_FORMAT_Y16_ER_BL16 |
VIC |
---|
VPI_IMAGE_FORMAT_S16 |
VPI_IMAGE_FORMAT_S16_BL |
VPI_IMAGE_FORMAT_S16_BL16 |
扩展范围或工作室范围的格式与非彩色格式(即 U8、F32、S16 等)之间的转换将保持范围不变,但 VPIConvertImageFormatParams::policy 中指定的钳位或强制转换除外。
[in] | stream | 操作将排队到其中的流句柄。
|
[in] | backend | 将执行该算法的后端。 |
[in] | input | 要转换的输入金字塔。
|
[out] | output | 结果将写入到的输出金字塔,具有所需的格式。
|
[in] | params | 用于微调转换的参数。传递 NULL 以使用 vpiInitConvertImageFormatParams 给出的默认值。 |
VPI_ERROR_INVALID_ARGUMENT | stream 为 NULL。 |
VPI_ERROR_INVALID_ARGUMENT | input 或 output 为 NULL。 |
VPI_ERROR_INVALID_ARGUMENT | params 中的无效标志。 |
VPI_ERROR_INVALID_ARGUMENT | params 中的无效转换类型。 |
VPI_ERROR_INVALID_ARGUMENT | input 和 output 金字塔尺寸或级别数量不匹配。 |
VPI_ERROR_INVALID_ARGUMENT | output 格式不能用于给定的金字塔尺寸。 |
VPI_ERROR_INVALID_IMAGE_FORMAT | 不支持格式转换。 |
VPI_ERROR_NOT_IMPLEMENTED | 给定后端不支持转换图像格式算法。 |
VPI_ERROR_INVALID_OPERATION | 硬件后端不可用。 |
VPI_ERROR_INVALID_OPERATION | 所需的后端未在 stream 、input 或 output 中启用。 |
VPI_SUCCESS | 操作成功执行。 |