本人正在用C6657做图像识别项目,现在遇到了实时性的瓶颈。
现需要做快速卷积(卷积核心为复数 (单精度)),和频域分析 需要做FFT
图像大小:640*480 (256级灰度图)
用TI的库实现
这两种算法都耗时几十毫秒,是我用法错了吗?还是硬伤呢?请TI员工解答
Andy Yin1:
dsplib中FFT模块有标准c及基于C66x优化的,请确定调用优化的函数,另外确认工程属性的优化选项配置-o3
jimmy cui:
回复 Andy Yin1:
你好ANDY YIN,感谢您的回复。
》》dsplib中FFT模块有标准c及基于C66x优化的,请确定调用优化的函数,另外确认工程属性的优化选项配置-o3
可是DSPLIB里的FFT只是一维的FFT,我要做图像的FFT,我需要每行每列调用一维的FFT来完成吗?这样的效率不是很低吗?
jianwen tong:
回复 Andy Yin1:
你好,我在dsp6455中调用官方的fft库函数DSP_fft16x16_i和DSP_fft16x16r_i计算一个信号的FFT,,出来的结果都有问题;我的原始输入数据是8bit AD采样的信号,有以下几个问题:
1.输入时,数据是否一定要是小数,然后用库函数转换成Q.15格式;
2fft输出的结果是不是正常顺序的,还是需要进行比特位反转;
最好能给个例程,万分感激!
jimmy cui:
回复 jianwen tong:
您好!
您说的那两个函数我还没有调用过,不过我用过官方提供的DSPF_sp_fftSPxSP函数,刚开始试用时也是发现跟MATLAB的结果不一样,后来发现,输入的数组要是复数,包括实部和虚部,如:
你要做{1,2,3,4,5,6,7,8}的FFT,你需要把输入数组改成{1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0} 数组中的“0”就是原数组的虚部!
不知道我这个回答帮不帮到你,但愿可以!
jimmy cui:
关于FFT ,本人总结了一些,请参考
http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/79279.aspx
jimmy cui:
回复 jianwen tong:
您好!
您说的那两个函数我还没有调用过,不过我用过官方提供的DSPF_sp_fftSPxSP函数,刚开始试用时也是发现跟MATLAB的结果不一样,后来发现,输入的数组要是复数,包括实部和虚部,如:
你要做{1,2,3,4,5,6,7,8}的FFT,你需要把输入数组改成{1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0} 数组中的“0”就是原数组的虚部!
不知道我这个回答帮不帮到你,但愿可以!
jianwen tong:
回复 jimmy cui:
搞定了,谢谢你!
TI中文支持网





