Hi everyone, I am working on Ne10 project. Ne10 provides NEON optimized FFT routines that are much faster (compared to those without NEON), on most ARMv7-A and all ARMv8-A devices. How about integrate it into Opus? I am not familiar with configure script, but I find "Optinal Packages" in it. If we provides --with-ne10-fft option, the one extra thing that users need to do is to indicate where libne10 is, right? Is there any 3rd package already enabled in Opus? Or can we follow the pattern where celt_pitch_xcorr_arm is optimized? We can include a few source files from Ne10, put them under celt/arm directory. P.S. Sorry to send again and again. It turned out I had not registered in to list. Best Regards, Phil Wang -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/opus/attachments/20141211/1f2b588f/attachment.htm
Viswanath Puttagunta
2014-Dec-11 14:30 UTC
[opus] [ARM][FFT][NEON] Integrate Ne10 into Opus?
On 10 December 2014 at 21:26, Phil Wang <phil.wang at arm.com> wrote:> Hi everyone, > > > > I am working on Ne10 project. Ne10 provides NEON optimized FFT routines that > are much faster (compared to those without NEON), on most ARMv7-A and all > ARMv8-A devices. How about integrate it into Opus?Sounds good. I've been waiting for these routines to be available in NE10.. and have been trying to upstream neon optimized celt_pitch_xcorr (currently in RFCv3) in the mean time. As discussed earlier, I was planning on doing this NE10 fft integration into opus myself after you were done with your fft work in NE10. But please do let me know should you want to do this yourself. Either way is fine for me.> > I am not familiar with configure script, but I find "Optinal Packages" in > it. If we provides --with-ne10-fft option, the one extra thing that users > need to do is to indicate where libne10 is, right? Is there any 3rd package > already enabled in Opus? > > Or can we follow the pattern where celt_pitch_xcorr_arm is optimized? We can > include a few source files from Ne10, put them under celt/arm directory.I don't think we should include sources from NE10 project into opus. That kills the whole point of optimizing routines in Ne10. Right way as you indicated earlier would be to provide an option like --with-ne10-fft and appropriately point to headers / library. I remember doing this sort of thing while working on vorbis which depended on ogg, so when running configure for vorbis, I had to tell vorbis's configure script where to find ogg. I did so by doing ../libvorbis-1.3.4/configure --with-ogg-includes=<location_local_root>/usr/local/include --with-ogg-libraries=<location_local_root>/usr/local/lib and <location_local_root> was where I installed the OGG library/headers. I'm pretty sure we can figure out how to do similar thing for opus as well. Quick look while running ../opus/configure --help .. Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)> > > > P.S. Sorry to send again and again. It turned out I had not registered in to > list. > > > > Best Regards, > > Phil Wang > > > > > _______________________________________________ > opus mailing list > opus at xiph.org > http://lists.xiph.org/mailman/listinfo/opus >
On 2014-12-10 7:26 PM, Phil Wang wrote:> I am working on Ne10 project. Ne10 provides NEON optimized FFT routines > that are much faster (compared to those without NEON), on most ARMv7-A > and all ARMv8-A devices. How about integrate it into Opus?It looks like Ne10 only provides radix 2 and 4 fft? Opus requires radix 3 and 5 as well, to match normal VOIP packet lengths. I think you'll need to add support for those transform sizes before Ne10 will work for opus. -r
Apparently Analagous Threads
- [ARM][FFT][NEON] Integrate Ne10 into Opus?
- [ARM][FFT][NEON] Integrate Ne10 into Opus?
- [RFC][FFT][Fixed-Point][NEON] NEON-Optimize Fixed-Point FFT?
- [RFC PATCH v1 0/8] Ne10 fft fixed and previous
- [RFC V3 7/8] armv7, armv8: Optimize fixed point fft using NE10 library