自己造轮子真的快吗?
rocaloid吧
全部回复
仅看楼主
level 12
masmyc 楼主
自己造轮子真的快吗?
昨天半夜上了 libfttw 的官方网站,其中提到 libfttw 可以使用 SSE2 指令集,在某些硬件环境下有更好的表现。libfttw 自带一个 malloc 也是对内存布局进行优化的。简单点说就是 libfttw 可以用硬件加速。
如果自己造轮子,会把关键部分用 SSE2 指令集的汇编优化一下吗?会考虑到兼容性再写一个通用版吗?
即使这样,能够保证几个版本的程序一致不出错吗?
我也知道 x264 等软件自带 DCT 等关键算法,但那是优化了几年的啊。(比如谷歌的 VP9 编码器,一年前就完成了,现在全在优化算法)
2014年02月06日 01点02分 1
level 12
masmyc 楼主
补充:fftw还支持多线程和分布式计算。
2014年02月06日 05点02分 2
level 9
首先咱不是求快。
其次……CVEDSP编写的时候就是旨在(x86上,2^整数FFT)超越fftw……不止用了SSE,还有AVX的实现……
虽说并行暂不支持,目前单线程1024点以上拼不过fftw,不过1024点及以下可以秒杀。
CVE3.5因为将采用正弦合成,FFT主要用在效率要求不高的分析阶段。实时合成主要用1024点以下的fft……
光是一个FFT的优化还好,人家是整个编码器当然优化做得很慢咯。
另:通用版的CVEDSP我后来是写了一个装到电子词典上了,等重构的时候再merge。
2014年02月06日 07点02分 3
电子词典……
2014年02月06日 09点02分
1