Hi all,

 

since KISS FFT used by codec2 is rather slow (it is KISS after all), it is
reasonable to add other FFT engines support to codec2 (like in speex). I
managed to implement libavcodec FFT support. The forked project is at
https://github.com/vmarkovtsev/codec2 

 

I had to move from autoconf/configure.in to autogen.sh/configure.ac,
improving the build system a little bit. I could have broken some things
though. configure script has two new options now, --enable-libavcodec-fft
and -enable-neon. The former switches FFT engine from KISS to libavcodec.
The latter adds "-mfpu=neon" to CFLAGS and defines NEON macro (used for ARM
NEON optimizations). Currently, there are no NEON optimizations actually
except load/store in FFT bridge, which do not improve the performance much
but are still a good idea.

 

I measured the time needed to encode+decode a sample file (20-minute radio
broadcast) with c2demo, using KISS FFT and libavcodec FFT. Briefly: on intel
core i7-2600 CPU, I got a 34% speedup and on Samsung Exynos 4 CPU, I got a
15% speedup.

 

I would be glad to merge with upstream.

 

Regards,

Vadim Markovtsev,

Engineer, Algorithmic Lab,

Moscow R&D center, Samsung Electronics

 

 

------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
Freetel-codec2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freetel-codec2

Reply via email to