diff --git a/dependency/nnsdk/include/nn_sdk.h b/dependency/nnsdk/include/nn_sdk.h deleted file mode 100755 index 0f350a3..0000000 --- a/dependency/nnsdk/include/nn_sdk.h +++ /dev/null @@ -1,1103 +0,0 @@ -/* - * Copyright (C) 2024–2025 Amlogic, Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _NN_SDK_H -#define _NN_SDK_H - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/*============================================================= - Macro Definitions -==============================================================*/ -#define AML_NN_SDK_VERSION "2.8.5" - -#define MAX_NAME_LENGTH 64 -#define INPUT_MAX_NUM 64 -#define OUTPUT_MAX_NUM 64 -#define INPUT_CHANNEL 3 -#define MAX_DETECT_NUM 230 -#define SUPPORT_NET_NUM 60 -#define ADDRESS_MAX_NUM 64 -#define MAX_TENSOR_NUM_DIMS 6 -#define INPUT_META_NUM 1 -#define DELEGATE_MAX_INPUT_NUM 128 -#define DELEGATE_MAX_OUTPUT_NUM 128 - -/*===================================================== -the common type for sdk api -======================================================*/ -typedef enum { - AML_IN_PICTURE = 0, - AML_IN_VIDEO = 1, - AML_IN_CAMERA = 2 -} amlnn_input_mode_t; - -typedef enum _amlnn_model_ { - CAFFE = 0, - TENSORFLOW, - TENSORFLOWLITE, - DARKNET, - ONNX, - KERAS, - PYTORCH, - ADLA_LOADABLE, - MEDEL_MAX -} amlnn_model_type; - -/*================================================================================= -load adla type -==================================================================================*/ -typedef enum _amlnn_nbg_type_ { - NN_NBG_FILE = 0, - NN_NBG_MEMORY = 1, - NN_RUNTIME_FILE = 2, - NN_RUNTIME_MEMORY = 3, - NN_ADLA_FILE = 4, - NN_ADLA_MEMORY = 5 -} amlnn_nbg_type; - -typedef enum _amlnn_input_ { - RGB24_RAW_DATA = 0, - TENSOR_RAW_DATA, - QTENSOR_RAW_DATA, - BINARY_RAW_DATA, - INPUT_DMA_DATA, - INPUT_DMA_SECURE_DATA, - NV12_RAW_DATA, - RAW_DATA_MAX -} amlnn_input_type; - -typedef enum _nn_buffer_format_e -{ - /*! \brief A float type of buffer data */ - NN_BUFFER_FORMAT_FP32 = 0, - /*! \brief A half float type of buffer data */ - NN_BUFFER_FORMAT_FP16 = 1, - /*! \brief A 8 bit unsigned integer type of buffer data */ - NN_BUFFER_FORMAT_UINT8 = 2, - /*! \brief A 8 bit signed integer type of buffer data */ - NN_BUFFER_FORMAT_INT8 = 3, - /*! \brief A 16 bit unsigned integer type of buffer data */ - NN_BUFFER_FORMAT_UINT16 = 4, - /*! \brief A 16 signed integer type of buffer data */ - NN_BUFFER_FORMAT_INT16 = 5, - /*! \brief A 32 signed integer type of buffer data */ - NN_BUFFER_FORMAT_INT32 = 8, - /*! \brief A 64 signed integer type of buffer data */ - NN_BUFFER_FORMAT_INT64 = 10, - /*! \brief A bool type of buffer data */ - NN_BUFFER_FORMAT_BOOL = 11, -} nn_buffer_format_e; - -typedef enum _nn_buffer_quantize_format_e -{ - /*! \brief Not quantized format */ - NN_BUFFER_QUANTIZE_NONE = 0, - /*! \brief The data is quantized with dynamic fixed point */ - NN_BUFFER_QUANTIZE_DYNAMIC_FIXED_POINT = 1, - /*! \brief The data is quantized with TF asymmetric format */ - NN_BUFFER_QUANTIZE_TF_ASYMM = 2 -} nn_buffer_quantize_format_e; - -typedef enum { - IMAGE_CLASSIFY = 0, - OBJECT_DETECT = 1, /// object_detection - FACE_DETECTION = 2, /// - FACE_LANDMARK_5 = 3, /// landmark 5 points - FACE_LANDMARK_68 = 4, ///< Face Landmark (68 KeyPoints) - FACE_RECOGNIZE = 5, ///< Face Recognition - FACE_COMPARISON = 6, ///< Face compare,whether same person - FACE_AGE = 7, ///< Face age - FACE_GENDER = 8, ///< Face gender - FACE_EMOTION = 9, ///< Face emotion - BODY_POSE = 10, ///< Body Pose - FINGER_POSE = 11, ///< Finger Landmark(21 KeyPoint) - HEAD_DETECTION = 12, ///< Head Detection - CARPLATE_DETECTION = 13, ///< Car Plate Detection - CARPLATE_RECOG = 14, ///< Car Plate Recognition - TEXT_DETECTION = 15, ///< text region detect - IMAGE_SR = 16, ///< image SR - IMAGE_SEGMENTATION = 17, ///< image segment, based on icnet - PERSON_DETECT = 18, ///< person detect - YOLOFACE_V2 = 19, - YOLO_V2 = 20, - YOLO_V3 = 21, - FACE_NET = 22, - FACE_RECOG_U = 23, - FACE_RFB_DETECTION = 24, - AML_PERSON_DETECT = 25, - AML_BODY_POSE = 26, - mobilenetv2 = 30, - centerface = 31, - ALPD = 32, - ALPR = 33, - face_blur_v2 = 34, - face_recog_small = 35, - face_reid_v2 = 36, - landmark2d_106 = 37, - new_car = 38, - old_person = 39, - CUSTOM_NETWORK = 99, ///< custom network, for user development - MODEL_MAX = 100 ///< max model number -} aml_module_t; - -typedef enum { - AML_OUTDATA_FLOAT32 = 0, - AML_OUTDATA_RAW = 1, - AML_OUTDATA_DMA = 2, - AML_OUTDATA_DMA_SECURE = 3 -} aml_output_format_t; - -typedef enum { - AML_NO_PERF = 0, - AML_PERF_INFERENCE = 1, - AML_PERF_OUTPUT_GET = 2, - AML_PERF_OUTPUT_SET = 3, - AML_PERF_RESET_TRANSFORMER = 4, - AML_PERF_BREAK_TRANSFORMER = 5 -} aml_perf_mode_t; - -typedef enum { - AML_PROFILE_NONE = 0, - AML_PROFILE_PERFORMANCE = 1, - AML_PROFILE_BANDWIDTH = 2, - AML_PROFILE_MEMORY = 3, - AML_PERLAYER_RUNTIME = 4, - AML_PERLAYER_BANDWIDTH = 5, - AML_PERLAYER_OUTPUT = 6, - AML_PERLAYER_INPUT = 7 -} aml_profile_type_t; - -typedef enum { - AML_PERFORMANCE_MODE = 1, - AML_POWER_SAVE_MODE = 2, - AML_MINIMUM_POWER_MODE = 3 -} aml_policy_type_t; - -typedef enum { - AML_IO_VIRTUAL = 0, - AML_IO_PHYS = 1, - AML_IO_VIRTUAL_SECURE = 2, - AML_IO_PHYS_SECURE = 3 -} aml_io_format_t; - -typedef enum { - AML_OUTPUT_ORDER_DEFAULT = 0, //output format: nhwc for adla, nchw for galcore - AML_OUTPUT_ORDER_NHWC = 1, //output format: nhwc - AML_OUTPUT_ORDER_NCHW = 2, //output format: nchw -} aml_output_order_t; - -typedef struct __aml_kvcache_dynamic_val_t -{ - int32_t current_mask; -} aml_kvcache_dynamic_val_t; - -typedef struct __kvCacheDynamicInfo_t -{ - bool update_kvcache_info_flag; - aml_kvcache_dynamic_val_t kvcache_dynamic_val; -} kvCacheDynamicInfo_t; - -typedef struct __aml_transformer_model_info -{ - uint64_t eos_token; - int32_t max_sequence_length; -} aml_transformer_model_info; - -typedef struct __aml_invoke_info_t -{ - int typeSize; - int invoke_type; // 1: invoke_no_wait, 2: waitwithid - int32_t timeout; //ms - int64_t invoke_id; - kvCacheDynamicInfo_t kvcache_dynamic_info; -} aml_invoke_info_t; - -typedef struct __amlnn_module_out_data_t -{ - int typeSize; - aml_module_t mdType; - aml_perf_mode_t perfMode; - aml_output_format_t format; - aml_output_order_t order; - aml_invoke_info_t invoke; -} aml_output_config_t; - -typedef struct _nn_buffer_create_params_t -{ - unsigned int num_of_dims; /*!< \brief The number of dimensions specified in *sizes*/ - unsigned int sizes[4]; /*!< \brief The pointer to an array of dimension */ - nn_buffer_format_e data_format; /*!< \brief Data format for the tensor, see \ref nn_buffer_format_e */ - nn_buffer_quantize_format_e quant_format; /*!< \brief Quantized format see \ref nn_buffer_quantize_format_e . */ - union { - struct { - unsigned char fixed_point_pos; /*!< \brief Specifies the fixed point position when the input element type is int16, if 0 calculations are performed in integer math */ - } dfp; - - struct { - float scale; /*!< \brief Scale value for the quantized value */ - unsigned int zeroPoint; /*!< \brief A 32 bit integer, in range [0, 255] */ - } affine; - } - quant_data; /*