10.3.2. DSP运行时API¶
10.3.2.1. 数据类型与数据结构¶
10.3.2.1.1. handle_fn¶
typedef int (*handle_fn)(void *input, void *output, void *tm);
函数指针,指向处理DSP任务的函数。
10.3.2.1.2. DSPLogLevel¶
enum DSPLogLevel {
HB_DSP_LOG_NONE = 0,
HB_DSP_LOG_DEBUG,
HB_DSP_LOG_INFO,
HB_DSP_LOG_WARNING,
HB_DSP_LOG_ERROR,
HB_DSP_LOG_ALWAYS
};
DSP中打印日志的级别。
10.3.2.2. API接口¶
10.3.2.2.1. hb_dsp_set_log_level¶
#define hb_dsp_set_log_level(level);
DSP日志级别初始化。
10.3.2.2.2. hb_dsp_env_init¶
int hb_dsp_env_init();
DSP环境初始化。
返回值
返回
0
则表示API成功执行,否则执行失败。
10.3.2.2.3. hb_dsp_start¶
void hb_dsp_start();
启动DSP开始执行命令,实际上它从不返回。
10.3.2.2.4. hb_dsp_mem_map¶
void *hb_dsp_mem_map(uint64_t ddr_address, uint64_t size);
将ARM端传入的物理内存地址映射为DSP端可读写虚拟地址。
参数
[in]
ddr_address
内存物理地址。[in]
size
内存大小。
返回值
返回映射后可读写的虚拟地址。
10.3.2.2.5. hb_dsp_mem_unmap¶
void hb_dsp_mem_unmap(uint32_t ddr_address);
与hb_dsp_mem_map成对使用,取消虚拟地址映射。
参数
[in]
ddr_address
虚拟映射地址。
10.3.2.2.6. hb_dsp_register_fn¶
int hb_dsp_register_fn(int cmd, handle_fn handle, int latency);
注册DSP op,应该在 hb_dsp_start
之前调用。
参数
[in]
cmd
DSP op编号。[in]
handle
DSP op函数指针。[in]
latency
DSP op运行时间,如果没有运行时间信息,则设置为0。
返回值
返回
0
则表示API成功执行,否则执行失败。
10.3.2.2.7. hb_dsp_unregister_fn¶
int hb_dsp_unregister_fn(int cmd);
注销DSP op。
参数
[in]
cmd
DSP op编号。
返回值
返回
0
则表示API成功执行,否则执行失败。
10.3.2.3. CV可注册算子¶
NO. |
CMD |
Handle_fn |
---|---|---|
1 |
HB_DSP_RPC_CMD_CV_BILATERAL_FILTER |
hb_dsp_bilateral_filter |
2 |
HB_DSP_RPC_CMD_CV_BOX_FILTER |
hb_dsp_box_filter |
3 |
HB_DSP_RPC_CMD_CV_CANNY |
hb_dsp_canny |
4 |
HB_DSP_RPC_CMD_CV_CVT_COLOR |
hb_dsp_cvt_color |
5 |
HB_DSP_RPC_CMD_CV_CORNER_HARRIS |
hb_dsp_cornerharris |
6 |
HB_DSP_RPC_CMD_CV_DILATE |
hb_dsp_dilate |
7 |
HB_DSP_RPC_CMD_CV_EQUALIZE_HIST |
hb_dsp_equalize_hist |
8 |
HB_DSP_RPC_CMD_CV_ERODE |
hb_dsp_erode |
9 |
HB_DSP_RPC_CMD_CV_FILTER2D |
hb_dsp_filter_2d |
10 |
HB_DSP_RPC_CMD_CV_FLIP |
hb_dsp_flip |
11 |
HB_DSP_RPC_CMD_CV_GAUSSIAN_BLUR |
hb_dsp_gaussian_blur |
12 |
HB_DSP_RPC_CMD_CV_INTEGRAL |
hb_dsp_integral |
13 |
HB_DSP_RPC_CMD_CV_MEDIAN_BLUR |
hb_dsp_median_blur |
14 |
HB_DSP_RPC_CMD_CV_PYR_DOWN |
hb_dsp_pyr_down |
15 |
HB_DSP_RPC_CMD_CV_PYR_UP |
hb_dsp_pyr_up |
16 |
HB_DSP_RPC_CMD_CV_REMAP |
hb_dsp_remap |
17 |
HB_DSP_RPC_CMD_CV_RESIZE |
hb_dsp_resize |
18 |
HB_DSP_RPC_CMD_CV_ROI_RESIZE |
hb_dsp_roi_resize |
19 |
HB_DSP_RPC_CMD_CV_ROTATE |
hb_dsp_rotate |
20 |
HB_DSP_RPC_CMD_CV_SEP_FILTER2D |
hb_dsp_sep_filter_2d |
21 |
HB_DSP_RPC_CMD_CV_SOBEL |
hb_dsp_sobel |
22 |
HB_DSP_RPC_CMD_CV_THRESHOLD |
hb_dsp_threshold |
23 |
HB_DSP_RPC_CMD_CV_TRANSPOSE |
hb_dsp_transpose |
24 |
HB_DSP_RPC_CMD_CV_WARP_AFFINE |
hb_dsp_warp_affine |
25 |
HB_DSP_RPC_CMD_CV_WARP_PERSPECTIVE |
hb_dsp_warp_perspective |
10.3.2.4. NN可注册算子¶
NO. |
CMD |
Handle_fn |
---|---|---|
1 |
HB_DSP_RPC_CMD_NN_DEQUANTIZE |
hb_dsp_dequantize |
2 |
HB_DSP_RPC_CMD_NN_QUANTIZE |
hb_dsp_quantize |
3 |
HB_DSP_RPC_CMD_NN_SOFTMAX |
hb_dsp_softmax |