TI中文支持网
TI专业的中文技术问题搜集分享网站

VLIB 混合高斯API求解。

本人使用的是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或代理商寻求帮助。

赞(0)
未经允许不得转载:TI中文支持网 » VLIB 混合高斯API求解。
分享到: 更多 (0)