GK SDK 源码库: XMIPCLinuxV100R005C00SPC030 (kernel/tools/open_source excluded)
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
#ifndef __SVP_CORE_H__
|
||||
#define __SVP_CORE_H__
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include "xmedia_cl.h"
|
||||
#include "xmedia_svp_std.h"
|
||||
#include "xmedia_sys.h"
|
||||
#include "xmedia_tde.h"
|
||||
#include "xmedia_ive.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define INPUT_MODEL_NUM_RGB888 1
|
||||
#define INPUT_MODEL_NUM_YUV420 2
|
||||
#define SVP_ALIGN_BYTE 16
|
||||
#define SVP_ALIGN_UP(A, ALIGN) \
|
||||
((((A) % (ALIGN)) == 0) ? (A) : ((A) + (ALIGN) - ((A) % (ALIGN))))
|
||||
|
||||
#define ALIGN_BYTE 8
|
||||
#define DEFAULT_INOUT_NUM 16
|
||||
#define ALIGN_FUNC(A, ALIGN) \
|
||||
((((A) % (ALIGN)) == 0) ? (A) : ((A) + (ALIGN) - ((A) % (ALIGN))))
|
||||
|
||||
typedef struct _xmedia_npu_model {
|
||||
xmedia_cl_graph graph;
|
||||
xmedia_cl_device_id *devices;
|
||||
xmedia_cl_context context;
|
||||
xmedia_s32 *output_size;
|
||||
xmedia_cl_tensor_info_inout output; // 模型输出相关数据信息
|
||||
xmedia_cl_tensor_info_inout input; // 模型输入相关数据信息
|
||||
xmedia_u64 weight_u64phyaddr;
|
||||
xmedia_void* weight_viraddr;
|
||||
xmedia_s32 *user_count;
|
||||
xmedia_void *rgb_viraddr;
|
||||
xmedia_u64 rgb_phyaddr;
|
||||
xmedia_u64 output_u64phyaddr;
|
||||
xmedia_void* output_viraddr;
|
||||
xmedia_cl_memory_reuse_type mem_reuse_type;
|
||||
} xmedia_npu_model;
|
||||
|
||||
typedef struct {
|
||||
xmedia_u32 size;
|
||||
xmedia_bool reuse_flag;
|
||||
xmedia_u64 phyaddr;
|
||||
xmedia_void *viraddr;
|
||||
} svp_mem_config;
|
||||
|
||||
typedef struct {
|
||||
xmedia_svp_mem_reuse_type reuse_type;
|
||||
svp_mem_config workbuf_cfg;
|
||||
svp_mem_config inputbuf_cfg;
|
||||
svp_mem_config outputbuf_cfg;
|
||||
} svp_config;
|
||||
|
||||
xmedia_s32 npu_init_context();
|
||||
xmedia_s32 svp_set_cfg(xmedia_svp_cfg *cfg);
|
||||
xmedia_s32 svp_get_cfg(xmedia_svp_cfg *cfg);
|
||||
xmedia_s32 npu_load_model(const xmedia_svp_modules *model, xmedia_npu_model *xmd_npu_model);
|
||||
xmedia_s32 npu_run_model(xmedia_npu_model *xmd_npu_model, xmedia_u64 img_src_phy, xmedia_video_pixel_format pixel_fmt);
|
||||
xmedia_s32 npu_unload_model(xmedia_npu_model *xmd_npu_model);
|
||||
xmedia_s32 npu_release_context();
|
||||
extern xmedia_s32 check_chip_otp();
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,54 @@
|
||||
#ifndef __SVP_PROC_H__
|
||||
#define __SVP_PROC_H__
|
||||
|
||||
#include "xmedia_svp.h"
|
||||
#include "svp_comm.h"
|
||||
#include "task_common.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define SVP_PROC_SIZE (4096 * 4)
|
||||
#define SVP_PROC_NAME_SIZE (16)
|
||||
|
||||
typedef struct {
|
||||
xmedia_svp_alg_type alg_type; // 算法类型
|
||||
xmedia_float detect_threshold; // 置信度阈值,建议值0.55f
|
||||
xmedia_float classifier_threshold; // 分类器阈值,建议值0.01f
|
||||
xmedia_float iou_threshold; // iou相交比阈值,建议值0.5f
|
||||
xmedia_u32 max_target_num; // 最大目标数,最大值10
|
||||
svp_movement movement; // 静止过滤相关参数
|
||||
xmedia_bool track_enable; // 追踪相关参数
|
||||
} proc_detect_info;
|
||||
|
||||
typedef struct {
|
||||
xmedia_u8 framerate; // 帧率
|
||||
xmedia_u64 cost_time; // 消耗的时间
|
||||
xmedia_u8 fps_count; // 一秒内运行的次数
|
||||
struct timeval last_time; // 上次统计时间
|
||||
} svp_dbg_info;
|
||||
|
||||
typedef struct {
|
||||
xmedia_u32 buff_len_total;
|
||||
xmedia_u32 remain_buf;
|
||||
xmedia_char *vir_addr;
|
||||
} svp_proc_info;
|
||||
|
||||
typedef struct {
|
||||
svp_proc_info proc_info;
|
||||
svp_dbg_info dbg_info[XMEDIA_SVP_MAX_TASK_NUM];
|
||||
svp_task_handle *handle[XMEDIA_SVP_MAX_TASK_NUM];
|
||||
} svp_proc_context;
|
||||
|
||||
xmedia_s32 svp_update_proc_time(svp_proc_context* proc, xmedia_s32 handle, xmedia_u64 cost_time);
|
||||
xmedia_s32 svp_update_proc_framerate(svp_proc_context* proc, xmedia_s32 handle);
|
||||
xmedia_s32 svp_update_proc_info(svp_proc_context* proc, xmedia_s32 handle);
|
||||
xmedia_s32 svp_init_proc(xmedia_svp_context* context);
|
||||
xmedia_s32 svp_deinit_proc(xmedia_svp_context* context);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user