PvaOperatorTypes.h#

Fully qualified name: public/src/operator/include/PvaOperatorTypes.h

File members: public/src/operator/include/PvaOperatorTypes.h

/*
 * SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
 * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
 *
 * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
 * property and proprietary rights in and to this material, related
 * documentation and any modifications thereto. Any use, reproduction,
 * disclosure or distribution of this material and related documentation
 * without an express license agreement from NVIDIA CORPORATION or
 * its affiliates is strictly prohibited.
 */

#ifndef PVA_OPERATOR_TYPES_H
#define PVA_OPERATOR_TYPES_H

#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef enum
{
    PVA_ERODE = 0,
    PVA_DILATE = 1,
} PVAMorphologyType;

typedef enum
{
    PVA_SPLIT_RGBA8_TO_U8 = 0,

    PVA_MERGE_U8_TO_RGBA8 = 1
} PVAMixChannelsCode;

typedef enum
{
    PVA_DIST_L1 = 0,
    PVA_DIST_L2,
    PVA_DIST_HAMMING
} PVADistanceType;

typedef enum
{
    PVA_INTERPOLATION_NN = 0,
    PVA_INTERPOLATION_LINEAR
} PVAInterpolationType;

typedef enum
{
    PVA_WARP_TRANSFORMATION_PERSPECTIVE = 0,
    PVA_WARP_TRANSFORMATION_AFFINE = 1,
} PVAWarpTransformationType;

#define PVA_MAX_BF_MATCHES_PER_DESCRIPTOR (3)

#define PVA_MAX_BF_DESCRIPTOR_COUNT (1024)

#define PVA_BRIEF_DESCRIPTOR_ARRAY_LENGTH (32)

typedef struct
{
    uint8_t data[PVA_BRIEF_DESCRIPTOR_ARRAY_LENGTH];
} PVABriefDescriptor;

typedef struct PVABFMatchesTypeRec
{
    int32_t refIndex[PVA_MAX_BF_MATCHES_PER_DESCRIPTOR];

    float distance[PVA_MAX_BF_MATCHES_PER_DESCRIPTOR];
} PVABFMatchesType;

typedef enum
{
    PVA_IMAGE_STAT_FLAG_PIXEL_COUNT = (1u << 0),
    PVA_IMAGE_STAT_FLAG_SUM = (1u << 1),
    PVA_IMAGE_STAT_FLAG_MEAN = ((1u << 2) | PVA_IMAGE_STAT_FLAG_SUM | PVA_IMAGE_STAT_FLAG_PIXEL_COUNT),
    PVA_IMAGE_STAT_FLAG_VARIANCE = ((1u << 3) | PVA_IMAGE_STAT_FLAG_MEAN),
    PVA_IMAGE_STAT_FLAG_COVARIANCE = ((1u << 4) | PVA_IMAGE_STAT_FLAG_VARIANCE)
} PVAImageStatFlag;

typedef struct
{
    int pixelCount;
    float sum[4];
    float mean[4];
    float covariance[4][4];
} PVAImageStatOutput;

typedef enum
{
    PVA_GMM_DATA_TYPE_FP32,
    PVA_GMM_DATA_TYPE_FP16
} PVAGMMDataType;

typedef enum
{
    PVA_BATCH_FFT_WINDOW_HANNING,
    PVA_BATCH_FFT_WINDOW_USER_DEFINED,
} PVABatchFFTWindowType;

typedef struct PVARangeFFTParamsRec
{
    PVABatchFFTWindowType windowType;
} PVARangeFFTParams;

typedef struct PVADopplerFFTParamsRec
{
    PVABatchFFTWindowType windowType;
    uint8_t transposeOutput;
} PVADopplerFFTParams;

typedef enum
{
    PVA_FLIP_HORIZONTAL = 0,
    PVA_FLIP_VERTICAL = 1,
    PVA_FLIP_BOTH = 2
} PVAFlipDirection;

typedef enum
{
    PVA_CFAR_CA = 0,
    PVA_CFAR_CA_OS = 1,
    PVA_CFAR_CA_GO = 2,
    PVA_CFAR_CA_SO = 3
} PVARadarCFARType;

#ifdef __cplusplus
}
#endif

#endif /* PVA_OPERATOR_TYPES_H */