VPI - 视觉编程接口

3.2 版本

PixelType.h 文件参考

定义用于处理像素类型的类型和函数。 更多...

#include "DataLayout.h"
#include "detail/FormatUtils.h"
+ 包含依赖关系图,针对 PixelType.h
+ 此图显示哪些文件直接或间接包含了此文件

前往此文件的源代码。

#define VPI_PIXEL_TYPE_DEFAULT   ((VPIPixelType)0)
 用于指示像素类型必须从图像格式推断。
 
#define VPI_PIXEL_TYPE_INVALID   VPI_PIXEL_TYPE_DEFAULT
 指示格式转换错误。
 
#define VPI_PIXEL_TYPE_U8   VPI_DETAIL_MAKE_PIX_TYPE(PL, UNSIGNED, X8)
 一个通道的无符号 8 位值。
 
#define VPI_PIXEL_TYPE_2U8   VPI_DETAIL_MAKE_PIX_TYPE(PL, UNSIGNED, X8_Y8)
 两个交错通道的无符号 8 位值。
 
#define VPI_PIXEL_TYPE_3U8   VPI_DETAIL_MAKE_PIX_TYPE(PL, UNSIGNED, X8_Y8_Z8)
 三个交错通道的无符号 8 位值。
 
#define VPI_PIXEL_TYPE_4U8   VPI_DETAIL_MAKE_PIX_TYPE(PL, UNSIGNED, X8_Y8_Z8_W8)
 四个交错通道的无符号 8 位值。
 
#define VPI_PIXEL_TYPE_S8   VPI_DETAIL_MAKE_PIX_TYPE(PL, SIGNED, X8)
 一个通道的有符号 8 位值。
 
#define VPI_PIXEL_TYPE_2S8   VPI_DETAIL_MAKE_PIX_TYPE(PL, SIGNED, X8_Y8)
 两个交错通道的有符号 8 位值。
 
#define VPI_PIXEL_TYPE_3S8   VPI_DETAIL_MAKE_PIX_TYPE(PL, SIGNED, X8_Y8_Z8)
 三个交错通道的有符号 8 位值。
 
#define VPI_PIXEL_TYPE_4S8   VPI_DETAIL_MAKE_PIX_TYPE(PL, SIGNED, X8_Y8_Z8_W8)
 四个交错通道的有符号 8 位值。
 
#define VPI_PIXEL_TYPE_U16   VPI_DETAIL_MAKE_PIX_TYPE(PL, UNSIGNED, X16)
 一个通道的无符号 16 位值。
 
#define VPI_PIXEL_TYPE_2U16   VPI_DETAIL_MAKE_PIX_TYPE(PL, UNSIGNED, X16_Y16)
 两个交错通道的无符号 16 位值。
 
#define VPI_PIXEL_TYPE_3U16   VPI_DETAIL_MAKE_PIX_TYPE(PL, UNSIGNED, X16_Y16_Z16)
 三个交错通道的无符号 16 位值。
 
#define VPI_PIXEL_TYPE_4U16   VPI_DETAIL_MAKE_PIX_TYPE(PL, UNSIGNED, X16_Y16_Z16_W16)
 四个交错通道的无符号 16 位值。
 
#define VPI_PIXEL_TYPE_S16   VPI_DETAIL_MAKE_PIX_TYPE(PL, SIGNED, X16)
 一个通道的有符号 16 位值。
 
#define VPI_PIXEL_TYPE_2S16   VPI_DETAIL_MAKE_PIX_TYPE(PL, SIGNED, X16_Y16)
 两个交错通道的有符号 16 位值。
 
#define VPI_PIXEL_TYPE_3S16   VPI_DETAIL_MAKE_PIX_TYPE(PL, SIGNED, X16_Y16_Z16)
 三个交错通道的有符号 16 位值。
 
#define VPI_PIXEL_TYPE_4S16   VPI_DETAIL_MAKE_PIX_TYPE(PL, SIGNED, X16_Y16_Z16_W16)
 四个交错通道的有符号 16 位值。
 
#define VPI_PIXEL_TYPE_U32   VPI_DETAIL_MAKE_PIX_TYPE(PL, UNSIGNED, X32)
 一个通道的无符号 32 位值。
 
#define VPI_PIXEL_TYPE_2U32   VPI_DETAIL_MAKE_PIX_TYPE(PL, UNSIGNED, X32_Y32)
 两个交错通道的无符号 32 位值。
 
#define VPI_PIXEL_TYPE_3U32   VPI_DETAIL_MAKE_PIX_TYPE(PL, UNSIGNED, X32_Y32_Z32)
 三个交错通道的无符号 32 位值。
 
#define VPI_PIXEL_TYPE_4U32   VPI_DETAIL_MAKE_PIX_TYPE(PL, UNSIGNED, X32_Y32_Z32_W32)
 四个交错通道的无符号 32 位值。
 
#define VPI_PIXEL_TYPE_S32   VPI_DETAIL_MAKE_PIX_TYPE(PL, SIGNED, X32)
 一个通道的有符号 32 位值。
 
#define VPI_PIXEL_TYPE_2S32   VPI_DETAIL_MAKE_PIX_TYPE(PL, SIGNED, X32_Y32)
 两个交错通道的有符号 32 位值。
 
#define VPI_PIXEL_TYPE_3S32   VPI_DETAIL_MAKE_PIX_TYPE(PL, SIGNED, X32_Y32_Z32)
 三个交错通道的有符号 32 位值。
 
#define VPI_PIXEL_TYPE_4S32   VPI_DETAIL_MAKE_PIX_TYPE(PL, SIGNED, X32_Y32_Z32_W32)
 四个交错通道的有符号 32 位值。
 
#define VPI_PIXEL_TYPE_F32   VPI_DETAIL_MAKE_PIX_TYPE(PL, FLOAT, X32)
 一个通道的 32 位 IEEE 754 浮点值。
 
#define VPI_PIXEL_TYPE_2F32   VPI_DETAIL_MAKE_PIX_TYPE(PL, FLOAT, X32_Y32)
 两个交错通道的 32 位 IEEE 754 浮点值。
 
#define VPI_PIXEL_TYPE_3F32   VPI_DETAIL_MAKE_PIX_TYPE(PL, FLOAT, X32_Y32_Z32)
 三个交错通道的 32 位 IEEE 754 浮点值。
 
#define VPI_PIXEL_TYPE_4F32   VPI_DETAIL_MAKE_PIX_TYPE(PL, FLOAT, X32_Y32_Z32_W32)
 四个交错通道的 32 位 IEEE 754 浮点值。
 
#define VPI_PIXEL_TYPE_U64   VPI_DETAIL_MAKE_PIX_TYPE(PL, UNSIGNED, X64)
 一个通道的无符号 64 位值。
 
#define VPI_PIXEL_TYPE_2U64   VPI_DETAIL_MAKE_PIX_TYPE(PL, UNSIGNED, X64_Y64)
 两个交错通道的无符号 64 位值。
 
#define VPI_PIXEL_TYPE_3U64   VPI_DETAIL_MAKE_PIX_TYPE(PL, UNSIGNED, X64_Y64_Z64)
 三个交错通道的无符号 64 位值。
 
#define VPI_PIXEL_TYPE_4U64   VPI_DETAIL_MAKE_PIX_TYPE(PL, UNSIGNED, X64_Y64_Z64_W64)
 四个交错通道的无符号 64 位值。
 
#define VPI_PIXEL_TYPE_S64   VPI_DETAIL_MAKE_PIX_TYPE(PL, SIGNED, X64)
 一个通道的有符号 64 位值。
 
#define VPI_PIXEL_TYPE_2S64   VPI_DETAIL_MAKE_PIX_TYPE(PL, SIGNED, X64_Y64)
 两个交错通道的有符号 64 位值。
 
#define VPI_PIXEL_TYPE_3S64   VPI_DETAIL_MAKE_PIX_TYPE(PL, SIGNED, X64_Y64_Z64)
 三个交错通道的有符号 64 位值。
 
#define VPI_PIXEL_TYPE_4S64   VPI_DETAIL_MAKE_PIX_TYPE(PL, SIGNED, X64_Y64_Z64_W64)
 四个交错通道的有符号 64 位值。
 
#define VPI_PIXEL_TYPE_F64   VPI_DETAIL_MAKE_PIX_TYPE(PL, FLOAT, X64)
 一个通道的 64 位 IEEE 754 浮点值。
 
#define VPI_PIXEL_TYPE_2F64   VPI_DETAIL_MAKE_PIX_TYPE(PL, FLOAT, X64_Y64)
 两个交错通道的 64 位 IEEE 754 浮点值。
 
#define VPI_PIXEL_TYPE_3F64   VPI_DETAIL_MAKE_PIX_TYPE(PL, FLOAT, X64_Y64_Z64)
 三个交错通道的 64 位 IEEE 754 浮点值。
 
#define VPI_PIXEL_TYPE_4F64   VPI_DETAIL_MAKE_PIX_TYPE(PL, FLOAT, X64_Y64_Z64_W64)
 四个交错通道的 64 位 IEEE 754 浮点值。
 
#define VPI_MAKE_PIXEL_TYPE_ABBREV(memLayout, dataType, packing)
 使用缩写参数创建用户自定义像素类型常量。 更多...
 
#define VPI_MAKE_PIXEL_TYPE(memLayout, dataType, packing)
 创建用户自定义像素类型常量。 更多...
 
typedef uint64_t VPIPixelType
 预定义的像素类型。 更多...
 
VPIPixelType vpiMakePixelType (VPIMemLayout memLayout, VPIDataType dataType, VPIPacking packing)
 创建用户自定义像素类型。 更多...
 
VPIPacking vpiPixelTypeGetPacking (VPIPixelType type)
 获取像素类型的 packing。 更多...
 
int vpiPixelTypeGetBitsPerPixel (VPIPixelType type)
 获取像素类型的每像素位数。 更多...
 
void vpiPixelTypeGetBitsPerChannel (VPIPixelType type, int32_t *bits)
 获取像素类型的每通道位数。 更多...
 
VPIDataType vpiPixelTypeGetDataType (VPIPixelType type)
 获取像素类型的数据类型。 更多...
 
VPIMemLayout vpiPixelTypeGetMemLayout (VPIPixelType type)
 获取像素类型的内存布局。 更多...
 
VPIPixelType vpiPixelTypeSetMemLayout (VPIPixelType type, VPIMemLayout layout)
 设置像素类型的内存布局。 更多...
 
int vpiPixelTypeGetChannelCount (VPIPixelType type)
 获取像素类型的通道数。 更多...
 
const char * vpiPixelTypeGetName (VPIPixelType type)
 返回像素类型的字符串表示形式。 更多...
 
VPIPixelType vpiPixelTypeGetChannelType (VPIPixelType type, int channel)
 获取给定通道索引的像素类型。 更多...
 

详细描述

定义用于处理像素类型的类型和函数。

文件 PixelType.h 中的定义。

宏定义文档

◆ VPI_MAKE_PIXEL_TYPE_ABBREV

#define VPI_MAKE_PIXEL_TYPE_ABBREV (   memLayout,
  dataType,
  packing 
)

使用缩写参数创建用户自定义像素类型常量。

此宏允许传递缩写的格式参数(不带参数类型前缀)。 例如,创建块线性格式的两个交错的 32 位浮点通道

VPIPixelType type = VPI_MAKE_PIXEL_TYPE_ABBREV(BL, FLOAT, X32_Y32);
#define VPI_MAKE_PIXEL_TYPE_ABBREV(memLayout, dataType, packing)
使用缩写参数创建用户自定义像素类型常量。
uint64_t VPIPixelType
预定义的像素类型。
参数
[in]memLayout要使用的 VPIMemLayout,不带 VPI_MEM_LAYOUT_ 前缀。
[in]dataType要使用的 VPIDataType,不带 VPI_DATA_TYPE_ 前缀。
[in]packing使用的格式 packing,也定义了通道数,不带 VPI_PACKING_ 前缀。
返回值
用户自定义像素类型。

定义于文件 194 行,文件 PixelType.h

◆ VPI_MAKE_PIXEL_TYPE

#define VPI_MAKE_PIXEL_TYPE (   memLayout,
  dataType,
  packing 
)

创建用户自定义像素类型常量。

例如,创建块线性格式的两个交错的 32 位浮点通道

#define VPI_MAKE_PIXEL_TYPE(memLayout, dataType, packing)
创建用户自定义像素类型常量。
@ VPI_PACKING_X32_Y32
两个 32 位通道,在两个 32 位字中。
@ VPI_MEM_LAYOUT_BL
@ VPI_DATA_TYPE_FLOAT
通道是浮点数值。
参数
[in]memLayout要使用的 VPIMemLayout
[in]dataType要使用的 VPIDataType
[in]packing使用的格式 packing,也定义了通道数。
返回值
用户自定义像素类型。

定义于文件 213 行,文件 PixelType.h

函数文档

◆ vpiMakePixelType()

VPIPixelType vpiMakePixelType ( VPIMemLayout  memLayout,
VPIDataType  dataType,
VPIPacking  packing 
)

创建用户自定义像素类型。

当预定义的像素类型不足时,可以创建用户自定义格式。

参数
[in]memLayout要使用的 VPIMemLayout
[in]dataType要使用的 VPIDataType
[in]packing使用的格式 packing,也定义了通道数。
返回值
用户自定义像素类型。
返回值
VPI_PIXEL_TYPE_INVALID无效的 memLayout
VPI_PIXEL_TYPE_INVALID无效的 dataType
VPI_PIXEL_TYPE_INVALID无效的 packing

◆ vpiPixelTypeGetPacking()

VPIPacking vpiPixelTypeGetPacking ( VPIPixelType  type)

获取像素类型的 packing。

参数
[in]type要查询的像素类型。
返回值
格式的 packing。
返回值
VPI_PACKING_0type 无效。

◆ vpiPixelTypeGetBitsPerPixel()

int vpiPixelTypeGetBitsPerPixel ( VPIPixelType  type)

获取像素类型的每像素位数。

参数
[in]type要查询的像素类型。
返回值
每像素位数。
返回值
0type 无效。

◆ vpiPixelTypeGetBitsPerChannel()

void vpiPixelTypeGetBitsPerChannel ( VPIPixelType  type,
int32_t *  bits 
)

获取像素类型的每通道位数。

参数
[in]type要查询的像素类型。
[out]bits指向包含 4 个元素的 int32_t 数组的指针,输出将存储在此数组中。 如果为 NULL,则该函数不执行任何操作,即 bits 指向的缓冲区保持不变。

◆ vpiPixelTypeGetDataType()

VPIDataType vpiPixelTypeGetDataType ( VPIPixelType  type)

获取像素类型的数据类型。

参数
[in]type要查询的像素类型。
返回值
像素类型的数据类型。
返回值
VPI_DATA_TYPE_INVALIDtype 无效。

◆ vpiPixelTypeGetMemLayout()

VPIMemLayout vpiPixelTypeGetMemLayout ( VPIPixelType  type)

获取像素类型的内存布局。

参数
[in]type要查询的像素类型。
返回值
像素类型的内存布局。
返回值
VPI_MEM_LAYOUT_INVALIDtype 无效。

◆ vpiPixelTypeSetMemLayout()

VPIPixelType vpiPixelTypeSetMemLayout ( VPIPixelType  type,
VPIMemLayout  layout 
)

设置像素类型的内存布局。

参数
[in]type要设置内存布局的像素类型。
[in]layout要设置的内存布局。
返回值
具有请求的内存布局的像素类型。
返回值
VPI_PIXEL_TYPE_INVALIDtype 或 layout 无效。

◆ vpiPixelTypeGetChannelCount()

int vpiPixelTypeGetChannelCount ( VPIPixelType  type)

获取像素类型的通道数。

参数
[in]type要查询的像素类型。
返回值
像素类型的通道数。
返回值
0type 无效。

◆ vpiPixelTypeGetName()

const char* vpiPixelTypeGetName ( VPIPixelType  type)

返回像素类型的字符串表示形式。

参数
[in]type要返回的像素类型。
返回值
像素类型的字符串表示形式。 返回的字符串在同一调用线程下一次调用此函数之前有效。 返回的指针不得释放。

◆ vpiPixelTypeGetChannelType()

VPIPixelType vpiPixelTypeGetChannelType ( VPIPixelType  type,
int  channel 
)

获取给定通道索引的像素类型。

它返回一个单通道像素类型,该类型对应于输入像素类型的给定通道。

例如:VPI_PIXEL_TYPE_3U8 的通道 #2 是 VPI_PIXEL_TYPE_U8

参数
[in]type要查询的像素类型。
[in]channel要返回其像素类型的通道。
  • 必须介于 0 和 type 中最大通道数之间。
返回值
给定通道的像素类型。 内存布局和数据类型与 type 相同。
返回值
VPI_PIXEL_TYPE_INVALIDtype 无效。
VPI_PIXEL_TYPE_INVALIDchannel 超出有效范围。