用的是8168 dvr_rdk 开发包
我修改demo程序,用的mcfw_demo的MultiCh_createProgressiveVcapVencVdecVdis这个usecase,
alg_link那边osd算法部分加入人脸检测的dsp算法
然后运行到dsp算法的时候速度特别慢,特别卡,不知道是为什么
求解答
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
用的是8168 dvr_rdk 开发包
我修改demo程序,用的mcfw_demo的MultiCh_createProgressiveVcapVencVdecVdis这个usecase,
alg_link那边osd算法部分加入人脸检测的dsp算法
然后运行到dsp算法的时候速度特别慢,特别卡,不知道是为什么
求解答
这个算法正常情况下的运行速度你有评估过吗?
你的特别卡,指的是什么,表现出来是什么现象?
比PC上运行起来卡多了,过个好几分钟才能显示下一帧图像。
不知道是不是因为我用的这个usecase比较复杂 包括了编码和解码,但是编码和解码我没有enable,
还是说是因为dsp到ddr中取数据的速度太慢了
DSP 优化一下,尽量不要去DDR拿数据。
当然这个不是重点,问题的关键是,你现在DSP处理的速度确切来讲是如何的。
打个比方,你是一秒30帧图像,对每帧图像做DSP的运算。如果你DSP速度很慢,出结果的时间超过了33.333333333333ms,那么就会拖累整个数据链路。因为下一个link实际需要等你这边做完才能往下走的。
就是dsp处理的很慢 我在dsp代码部分用了vps_printf ,当每一帧图像 运行到这边就会卡一会儿(2、3分钟吧),然后所以显示器显示就卡住了,过好几分钟(4、6、7分钟吧)才显示下一帧的处理效果
我用了opencv里的人脸检测的函数(抠的opencv的源码),主要就是卡在这个函数这边,这个函数的代码比较复杂
数据不放在ddr中 那只能搬到dsp的256k 的ram内存中去,但256k略小,不够用(图像数据 + arm端读入进来的放到shared memory中去的分类器的数据)
我觉得吧这个你还是先确定一下是否就是DSP的输入到输出的时间间隔过大导致的。你可以直接bypass中间的处理过程。
opencv我不清楚合到你的代码里面是否会有别的问题。
你的RDK开发包是什么版本的?算法里是不是有float?RDK2.0版本里加入float运算,就会很卡。。