VdecConfig
MemoryData
功能
内存管理结构体。
结构定义
struct MemoryData {
enum MemoryType {
MEMORY_HOST = 0,
MEMORY_DEVICE,
MEMORY_DVPP,
MEMORY_HOST_MALLOC,
MEMORY_HOST_NEW,
};
MemoryData() = default;
MemoryData(size_t size, MemoryType type = MEMORY_HOST, int32_t deviceId = 0)
: size(size), deviceId(deviceId), type(type) {}
MemoryData(void* ptrData, size_t size, MemoryType type = MEMORY_HOST, int32_t deviceId = 0)
: ptrData(ptrData), size(size), deviceId(deviceId), type(type) {}
void* ptrData;
size_t size;
int32_t deviceId;
MemoryType type;
APP_ERROR (*free)(void*) = nullptr;
};
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| ptrData | 输出 | 存放数据的内存地址。 |
| size | 输入 | 内存大小,单位为Byte。 size值应与实际内存大小一致,否则可能导致出现coredump情况。 |
| deviceId | 输入 | 设备编号。 |
| type | 输入 | 申请的内存类型: - “MEMORY_HOST”对应Host侧。 - “MEMORY_DEVICE”对应Device侧。 - “MEMORY_DVPP”对应DVPP侧。 - “MEMORY_HOST_MALLOC”对应malloc申请内存。 - “MEMORY_HOST_NEW”对应new申请内存。 |
| free | 输出 | ptrData指针释放函数。 |
| MemoryData(size_t size, MemoryType type = MEMORY_HOST, size_t deviceId = 0) | - | 定义结构体的形式一。 |
| MemoryData(void* ptrData, size_t size, MemoryType type = MEMORY_HOST, size_t deviceId = 0) | - | 定义结构体的形式二。 |
父主题: 通用数据结构
DetectBox
功能
定义获取推理结果使用的结构体。
结构定义
struct DetectBox {
float prob;
int classID;
float x;
float y;
float width;
float height;
std::string className;
void *maskPtr;
};
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| prob | 输出 | 类别的置信度。 |
| classID | 输出 | 类别的编号。 |
| x | 输出 | 目标的横坐标。 |
| y | 输出 | 目标的纵坐标。 |
| width | 输出 | 目标的宽度,从横坐标x处开始计算。 |
| height | 输出 | 目标的高度,从纵坐标y处开始计算。 |
| className | 输出 | 类别名。 |
| maskPtr | 输出 | 实例分割需要使用的掩码。 |
父主题: 通用数据结构
VdecConfig
功能
定义视频流解码使用的结构体。
结构定义
struct VdecConfig {
uint32_t width = 0;
uint32_t height = 0;
MxbaseStreamFormat inputVideoFormat = MXBASE_STREAM_FORMAT_H264_MAIN_LEVEL;
MxbasePixelFormat outputImageFormat = MXBASE_PIXEL_FORMAT_YUV_SEMIPLANAR_420;
uint32_t channelId = 0;
uint32_t deviceId = 0;
pthread_t threadId = 0;
DecodeCallBackFunction callbackFunc = nullptr;
uint32_t outMode = 0;
uint32_t videoChannel = 0;
uint32_t skipInterval = 0;
uint32_t cscMatrix = 0;
void* userData = nullptr;
};
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| width | 输入 | 图像的宽度。 |
| height | 输入 | 图像的高度。 |
| inputVideoFormat | 输入 | 输入图像的格式。 |
| outputImageFormat | 输入 | 输出图像的格式。 |
| channelId | 输入 | 解码的通道编号。 |
| deviceId | 输入 | 设备编号。 |
| threadId | 输入 | 回调线程编号。 |
| callbackFunc | 输入 | 回调函数。 结构为: cpp<br>APP_ERROR (*DecodeCallBackFunction)(std::shared_ptr<void> buffer, DvppDataInfo& dvppDataInfo, void* userData)<br>- buffer:解码后输出的数据。 - dvppDataInfo:解码后输出的数据信息。 - userData:用户定义获取数据指针。 |
| outMode | 输入 | 选择出帧模式。默认值为0,可取值为0或1。 - “0”:由于解码过程中存在缓存帧,无法实时输出,因此VDEC需要在收到码流中的多帧数据后,才开始输出解码结果。 - “1”:快速出帧模式,VDEC获取码流中的一帧数据后,就开始实时输出解码结果,只支持简单参考关系的H.264/H.265标准码流(无长期参考帧,无B帧)。 |
| videoChannel | 输入 | 预留参数。 |
| skipInterval | 输入 | 跳帧参数。 |
| cscMatrix | 输入 | 色域转换选项。 - HI_CSC_MATRIX_BT601_WIDE = 0,基于BT601 wide标准的色域转换矩阵,各参数值参考如下。 text<br> # YUV转RGB:<br> # | R | | 1.000 0.000 1.402 | | Y - 0 |<br> # | G | = | 1.000 -0.344 -0.714 | * | U - 128 | <br> # | B | | 1.000 1.772 0.000 | | V - 128 |<br> # RGB转YUV:<br> # | Y | |-0.5 | | 0.299 0.587 0.114 | | R | <br> # | U | = |127.5 | + | -0.168 -0.331 0.500 | * | G | <br> # | V | |127.5 | | 0.500 -0.419 -0.081 | | B | <br> - HI_CSC_MATRIX_BT601_NARROW =1,基于BT601 narrow标准的色域转换矩阵,各参数值参考如下。 text<br> # YUV转RGB:<br> # | R | | 1.16438 0.00000 1.59602 | | Y - 16 |<br> # | G | = | 1.16438 -0.39176 -0.81297 | * | U - 128 | <br> # | B | | 1.16438 2.01723 0.00000 | | V - 128 |<br> # RGB转YUV:<br> # | Y | |16 | | 0.25679 0.51564 0.10014 | | R | <br> # | U | = |128| + | -0.14491 -0.29099 0.43922 | * | G | <br> # | V | |128| | 0.42941 -0.36779 -0.07143 | | B | <br> - HI_CSC_MATRIX_BT709_WIDE =2,基于BT709 wide标准的色域转换矩阵,各参数值参考如下。 text<br> # YUV转RGB:<br> # | R | | 1.00000 0.00000 1.57480 | | Y - 0 |<br> # | G | = | 1.00000 -0.18732 -0.46812 | * | U - 128 | <br> # | B | | 1.00000 1.85560 0.00000 | | V - 128 |<br> # RGB转YUV:<br> # | Y | |0 | | 0.21260 0.71520 0.07220 | | R | <br> # | U | = |128| + | -0.11457 -0.38543 0.50000 | * | G | <br> # | V | |128| | 0.50000 -0.45415 -0.04585 | | B | <br> - HI_CSC_MATRIX_BT709_NARROW =3,基于BT709 narrow标准的色域转换矩阵,各参数值参考如下。 text<br> # YUV转RGB:<br> # | R | | 1.16438 0.00000 1.79274 | | Y - 16 |<br> # | G | = | 1.16438 -0.21325 -0.53291 | * | U - 128 | <br> # | B | | 1.16438 2.11240 0.00000 | | V - 128 |<br> # RGB转YUV:<br> # | Y | |16 | | 0.18259 0.62825 0.06342 | | R | <br> # | U | = |128| + | -0.09840 -0.33857 0.43922 | * | G | <br> # | V | |128| | 0.42941 -0.39894 -0.04027 | | B | <br> - HI_CSC_MATRIX_BT2020_WIDE =4,基于BT2020 wide标准的色域转换矩阵,各参数值参考如下。 text<br> # YUV转RGB:<br> # | R | | 1.00000 0.00000 1.47460 | | Y - 0 |<br> # | G | = | 1.00000 -0.16455 -0.57135 | * | U - 128 | <br> # | B | | 1.00000 1.88140 0.00000 | | V - 128 |<br> # RGB转YUV:<br> # | Y | |0 | | 0.26270 0.67800 0.05930 | | R | <br> # | U | = |128| + | -0.13963 -0.36037 0.50000 | * | G | <br> # | V | |128| | 0.50000 -0.45979 -0.04021 | | B | <br> - HI_CSC_MATRIX_BT2020_NARROW =5,基于BT2020 narrow标准的色域转换矩阵,各参数值参考如下。 text<br> # YUV转RGB:<br> # | R | | 1.16438 0.00000 1.67868 | | Y - 16 |<br> # | G | = | 1.16438 -0.18733 -0.65042 | * | U - 128 | <br> # | B | | 1.16438 2.14177 0.00000 | | V - 128 |<br> # RGB转YUV:<br> # | Y | |16 | | 0.22564 0.59558 0.05209 | | R | <br> # | U | = |128| + | -0.11992 -0.31656 0.43922 | * | G | <br> # | V | |128| | 0.42941 -0.40389 -0.03533 | | B | <br> |
| userData | 输入 | 用户自定义数据。 |
父主题: 通用数据结构
PostImageInfo
功能
定义后处理图片信息使用的结构体。
结构定义
struct PostImageInfo {
uint32_t widthOriginal = 0;
uint32_t heightOriginal = 0;
uint32_t widthResize = 0;
uint32_t heightResize = 0;
float x0 = 0;
float y0 = 0;
float x1 = 0;
float y1 = 0;
};
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| widthOriginal | 输入 | 原始图片宽度。 |
| heightOriginal | 输入 | 原始图片高度。 |
| widthResize | 输入 | 缩放后图片宽度。 |
| heightResize | 输入 | 缩放后图片高度。 |
| x0 | 输入 | 左上角横坐标。 |
| y0 | 输入 | 左上角纵坐标。 |
| x1 | 输入 | 右下角横坐标。 |
| y1 | 输入 | 右下角纵坐标。 |
父主题: 通用数据结构
KeyPointInfo
功能
面部关键点(左/右眼、鼻尖、左/右嘴角)坐标信息。
结构定义
struct KeyPointInfo {
float kPBefore[LANDMARK_LEN];
};
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| kPBefore | 输入 | 关键点坐标数组。 |
父主题: 通用数据结构
在线提单