想请问一下,在定点DSP上,DM6437,采用浮点运算转定点运算优化方法,优化效果怎样?
我做的优化前的相关代码运行时间为129.7ms,优化后的运行时间为2.72ms,提高将近50倍。
我被这个结果吓到了,请各位达人看看这个结果是否合理。代码如下:
优化前代码:
void backGroundUpdate(unsigned char *img_b, unsigned char *img_f, float rate)
{
int i,pixelsNum=height*width;
for(i=0;i<PIXELSNUM;I++,IMG_B++,IMG_F++)
*img_b=(unsigned char)((1-rate)*(*img_b)+rate*(*img_f));
}
优化后代码:
void backGroundUpdate(unsigned char *img_b, unsigned char *img_f, float rate)
{
int i,pixelsNum=height*width;
int r=(int)(rate*(1<<10));
for(i=0;i<PIXELSNUM;I++,IMG_B++,IMG_F++)
*img_b=(unsigned char)(((1<<10-r)*(*img_b)+r*(*img_f))>>10);
} |