本人使用的是594MHZ的DM6437。
我使用了VLIB中的混合高斯建模API VLIB_mixtureOfGaussiansS32()函数,处理180*144尺寸的耗时为14ms,处理320*288尺寸相应的耗时为56ms,与文档提供的39.13 cycles/pixel存在很大差距,按照这个计算处理320*288耗时仅为7ms左右,与我实测的耗时相差了8倍。怎么有这么大的差距,有做过的同仁们给点意见意见?。
VampireDaVinci:
1. CCS Profile的Cycletotal是多少?
bo huang:
回复 VampireDaVinci:
您好,我也是用DM6437(594)做智能视频算法,也用的混合高斯模型VLIB_mixtureOfGaussiansS32(),L1Pcache32k,L1Dcache32k,L2cache64k,profile的cycletotal五次平均是30488473,我处理的图像是320X282,共90240像素,按照vlib的pdf资料为39.13cycle,应该为3531091cycle,整个是8.6倍的执行时间,这基本在实时视频处理中没法使用。
bo huang:
回复 bo huang:
还有一个问题更严重,在设置均值与方差的更新率为0.01的情况下,不能再小了,如果再小,就不能跟踪室外太阳照出的阴影的变化,经过几百帧以后,方差值就会很小,小于5,这样就突然出来很多前景,也就是模型基本就失效了。也就是说在方差更新中是没有最小值的设置的。我只好自己再不停的更新方差值,这样就更增加了时间了。请帮忙解答一下。谢谢。
user1184862:
回复 bo huang:
运算速度与程序存放位置(l1p或ddr),数据存放位置,有很大关系。TI测试时估计用的是小数据,全在内部cache中完成,肯定会快一些。
均值与方差的更新率,主要是对环境的适应快慢,如果大对环境变化就很灵敏,小就很慢,如果太小环境又在不断地变化,稳定的模型都建立不起来。
Amob:
给我发一个Vlib库和源码吧,我申请了,到现在还没用批下来,等急死了 谢谢了先~
Louis:
回复 Amob:
文档中的Benchmarks描述的是在on-chip memory的测试结果。
On-chip memory performance has been measured as 39.13 cycles/pixel
下面有几点提高优化性能的建议,希望可以帮到你:
1. 建议你将整幅图像数据,分成若干的行,在L2 RAM 中开辟若干buffer,使用EDMA以及ping-pong机制,可以使双buffer或者是三buffer,尽量将处理的数据放在L2 RAM中。
2.修改MAP文件,将整个VIB库放到L2 RAM中,或者是函数级别的,将关联的函数全部分配到L2 RAM中,提高L2P的命中几率。
3.合理分配L2 RAM 以及L2 CACHE 的大小。
4.优化是一个循序渐进的过程,建议结合每次的profile数据,进行分析。
5.由于你使用的是TI的优化算法库,故性能的开销一般会集中在DATA STALL 或者是 INSTRUCT STALL, 这个需要从你的软件设计框架或者资源分配的角度着手。
Louis:
回复 Louis:
补充:
VLIB的申请链接:http://www.surveymonkey.com/s.aspx?sm=_2biqVh_2br0FuVP1h5_2fQ0gZdQ_3d_3d
Amob:
回复 Louis:
谢谢,我也已经申请了,一个多月了,还是没有结果。。。。。。
Louis:
回复 Amob:
可以尝试联系当地的sales或代理商寻求帮助。