1217
- 收藏
- 点赞
- 分享
- 举报
海思 Hi3519A 和 Hi3559A DSP开发 xplorer
本帖最后由 534358549 于 2019-11-19 10:23 编辑
海思新出的HI3559A和Hi3519A自带了DSP,对于我们这种做图形图像处理及加速的太有用了。拿到开发板后,才发现海思只提供了一个膨胀和腐蚀的例子。更坑的是,居然没有源代码,关键算法被封装成库了。
经过几番折腾,在某宝上买到了廉价的xtensa xplorer开发工具(官方的太贵了,哈哈),终于把海思的DSP用了起来。使用步骤简单描述一下吧:
1. 首先得有xplorer的编译工具,这个工具不是免费的,要有license才能用,包括开发和性能调优。
2. 买一个海思的开发板,一般某宝上的几千块的就行,不过只能接一个摄像头。例子中我是使用了自己做的开发板,直接接入了4路3G-SDI摄像头做输入源了,开发板我就不多说了,免得被误解是打广告的;P 。
3. 使用海思自带的svp/dsp例子,在里面加入一个自己的算法(反正就是依葫芦画瓢,理解一下dsp的调度),难点主要是算法的优化,海思SDK给的膨胀和腐蚀两个例子都是没有源码的,这个比较坑。我也是自己用xplorer工具一点一点的理解加优化,实现了一个边沿检测算法(sobel和candy两种算法都实现了)。代码这种东西,这里我就不分享了哈。
4. 运行并显示画面,vio和dsp两个程序是相互独立的,所以我单独开dsp程序就能看到处理后效果,不开的话就是处理前原始画面。
效果图如下:
4.1. 使用dsp前画面,请参考附件图片中的彩色画面。
4.2. 使用dsp处理画面,请参考附件图中的黑白画面。
另外看一下dsp的调试信息:
~ # cat /proc/umap/dsp
[DSP] Version: [Hi3559AV100_MPP_V2.0.2.0 B060 Release], Build Time[Dec 21 2018, 17:05:06]
-------------------------------MODULE PARAM--------------------------------------
max_node_num
30
-------------------------------DSP CORE STATUS--------------------------------------
CoreId Enable
0 Yes
1 Yes
2 Yes
3 Yes
-------------------------------DSP PRI STATUS--------------------------------------
CoreId Pri Create
0 0 Yes
0 1 No
0 2 No
1 0 Yes
1 1 No
1 2 No
2 0 Yes
2 1 No
2 2 No
3 0 Yes
3 1 No
3 2 No
--------------------------------DSP TASK INFO------------------------------------
CoreId Pri Hnd TaskFsh HndWrap FreeNum WorkNum
0 0 4403 4403 0 30 0
0 1 0 0 0 30 0
0 2 0 0 0 30 0
1 0 4395 4395 0 30 0
1 1 0 0 0 30 0
1 2 0 0 0 30 0
2 0 4388 4388 0 30 0
2 1 0 0 0 30 0
2 2 0 0 0 30 0
3 0 4380 4380 0 30 0
3 1 0 0 0 30 0
3 2 0 0 0 30 0
-----------------------------------DSP RUN-TIME INFO-----------------------------
CoreId Pri CntPerSec MaxCntPerSec TotalIntCntLastSec TotalIntCnt QTCnt CostTm MCostTm CostTmPerSec MCostTmPerSec TotalIntCostTm RunTm
0 0 31 33 4381 4402 0 3 11 97 167 17079 1049
0 1 0 0 0 0 0 0 0 0 0 0 1049
0 2 0 0 0 0 0 0 0 0 0 0 1049
1 0 31 32 4377 4394 0 4 17 91 148 14916 1049
1 1 0 0 0 0 0 0 0 0 0 0 1049
1 2 0 0 0 0 0 0 0 0 0 0 1049
2 0 31 32 4376 4387 0 3 12 89 169 15492 1049
2 1 0 0 0 0 0 0 0 0 0 0 1049
2 2 0 0 0 0 0 0 0 0 0 0 1049
3 0 31 32 4373 4379 0 3 15 116 162 16776 1049
3 1 0 0 0 0 0 0 0 0 0 0 1049
3 2 0 0 0 0 0 0 0 0 0 0 1049
----------------------------------DSP INVOKE INFO--------------------------------
CoreId Pri RPC
0 0 4402
0 1 0
0 2 0
1 0 4394
1 1 0
1 2 0
2 0 4387
2 1 0
2 2 0
3 0 4379
3 1 0
3 2 0
可以看到,4个DSP核每个核都是按照30帧来处理视频的。测试极限是1080P的画面,单核DSP可以每秒处理200帧左右。性能相当的强悍。难点就是怎么优化,怎么去使用啦,后续继续研究新的算法。包括图像的增强、锐化、白平衡、融合、跟踪等等,都可以在DSP上加速使用。
海思新出的HI3559A和Hi3519A自带了DSP,对于我们这种做图形图像处理及加速的太有用了。拿到开发板后,才发现海思只提供了一个膨胀和腐蚀的例子。更坑的是,居然没有源代码,关键算法被封装成库了。
经过几番折腾,在某宝上买到了廉价的xtensa xplorer开发工具(官方的太贵了,哈哈),终于把海思的DSP用了起来。使用步骤简单描述一下吧:
1. 首先得有xplorer的编译工具,这个工具不是免费的,要有license才能用,包括开发和性能调优。
2. 买一个海思的开发板,一般某宝上的几千块的就行,不过只能接一个摄像头。例子中我是使用了自己做的开发板,直接接入了4路3G-SDI摄像头做输入源了,开发板我就不多说了,免得被误解是打广告的;P 。
3. 使用海思自带的svp/dsp例子,在里面加入一个自己的算法(反正就是依葫芦画瓢,理解一下dsp的调度),难点主要是算法的优化,海思SDK给的膨胀和腐蚀两个例子都是没有源码的,这个比较坑。我也是自己用xplorer工具一点一点的理解加优化,实现了一个边沿检测算法(sobel和candy两种算法都实现了)。代码这种东西,这里我就不分享了哈。
4. 运行并显示画面,vio和dsp两个程序是相互独立的,所以我单独开dsp程序就能看到处理后效果,不开的话就是处理前原始画面。
效果图如下:
4.1. 使用dsp前画面,请参考附件图片中的彩色画面。
4.2. 使用dsp处理画面,请参考附件图中的黑白画面。
另外看一下dsp的调试信息:
~ # cat /proc/umap/dsp
[DSP] Version: [Hi3559AV100_MPP_V2.0.2.0 B060 Release], Build Time[Dec 21 2018, 17:05:06]
-------------------------------MODULE PARAM--------------------------------------
max_node_num
30
-------------------------------DSP CORE STATUS--------------------------------------
CoreId Enable
0 Yes
1 Yes
2 Yes
3 Yes
-------------------------------DSP PRI STATUS--------------------------------------
CoreId Pri Create
0 0 Yes
0 1 No
0 2 No
1 0 Yes
1 1 No
1 2 No
2 0 Yes
2 1 No
2 2 No
3 0 Yes
3 1 No
3 2 No
--------------------------------DSP TASK INFO------------------------------------
CoreId Pri Hnd TaskFsh HndWrap FreeNum WorkNum
0 0 4403 4403 0 30 0
0 1 0 0 0 30 0
0 2 0 0 0 30 0
1 0 4395 4395 0 30 0
1 1 0 0 0 30 0
1 2 0 0 0 30 0
2 0 4388 4388 0 30 0
2 1 0 0 0 30 0
2 2 0 0 0 30 0
3 0 4380 4380 0 30 0
3 1 0 0 0 30 0
3 2 0 0 0 30 0
-----------------------------------DSP RUN-TIME INFO-----------------------------
CoreId Pri CntPerSec MaxCntPerSec TotalIntCntLastSec TotalIntCnt QTCnt CostTm MCostTm CostTmPerSec MCostTmPerSec TotalIntCostTm RunTm
0 0 31 33 4381 4402 0 3 11 97 167 17079 1049
0 1 0 0 0 0 0 0 0 0 0 0 1049
0 2 0 0 0 0 0 0 0 0 0 0 1049
1 0 31 32 4377 4394 0 4 17 91 148 14916 1049
1 1 0 0 0 0 0 0 0 0 0 0 1049
1 2 0 0 0 0 0 0 0 0 0 0 1049
2 0 31 32 4376 4387 0 3 12 89 169 15492 1049
2 1 0 0 0 0 0 0 0 0 0 0 1049
2 2 0 0 0 0 0 0 0 0 0 0 1049
3 0 31 32 4373 4379 0 3 15 116 162 16776 1049
3 1 0 0 0 0 0 0 0 0 0 0 1049
3 2 0 0 0 0 0 0 0 0 0 0 1049
----------------------------------DSP INVOKE INFO--------------------------------
CoreId Pri RPC
0 0 4402
0 1 0
0 2 0
1 0 4394
1 1 0
1 2 0
2 0 4387
2 1 0
2 2 0
3 0 4379
3 1 0
3 2 0
可以看到,4个DSP核每个核都是按照30帧来处理视频的。测试极限是1080P的画面,单核DSP可以每秒处理200帧左右。性能相当的强悍。难点就是怎么优化,怎么去使用啦,后续继续研究新的算法。包括图像的增强、锐化、白平衡、融合、跟踪等等,都可以在DSP上加速使用。
我来回答
回答12个
时间排序
认可量排序
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片
相关问答
-
2020-08-06 10:59:25
-
2020-07-29 17:23:10
-
2020-06-22 18:45:27
-
2018-10-26 15:41:10
-
2019-11-16 10:10:52
-
2019-10-12 17:29:54
-
2019-09-23 16:12:05
-
2020-08-01 17:40:31
-
2019-06-12 21:20:14
-
2019-02-28 18:54:08
-
2020-04-08 16:30:21
-
2019-07-10 09:32:02
-
2020-07-13 19:53:23
-
2020-08-05 16:56:29
-
42019-08-02 09:16:03
-
2019-07-11 15:41:31
-
2020-07-03 11:29:09
-
1922019-05-21 11:11:53
-
2019-01-07 16:28:05
无更多相似问答 去提问

点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认