I am interested in running codec2 on a Blackfin (BF537) under uClinux. The BF537 is a 16/32-bit processor running at 500 MHz but does not have a FPU, so my guess is that like the 400 MHz FriendlyArm discussed here a month or so ago, it probably won't handle encoding or decoding even a single stream of codec2 in real time without some extra work, and I would really like to use at least two simultaneous streams.
An easy starting point would appear to be enabling the Blackfin gcc ”-mfast-fp” option for "fast floating point" that uses relaxed rules for NaN and is "several times faster than [the floating point routines in]...libgcc" [1] and [2]. I don't know whether that will just make it comparable to the speed of the FriendlyArm or whether it might just be fast enough; trying it is probably the only way to find out. If that isn't enough, I would consider porting an integer FFT as suggested by Bruce Robertson a month or two ago [3]. Would converting Codec2 to use an integer FFT require in-depth knowledge of the codec, or would it just be a matter of properly scaling the inputs and outputs of the FFT routine? There is a 16-bit FFT in the Blackfin DSP library [4]; is that enough resolution or would codec2 need 32 bit results? If so, it might be possible to use the techniques described in EE-186, Extended-Precision Fixed-Point Arithmetic on the Blackfin Processor Platform [5] to make a fast Blackfin-specific 32-bit FFT. Or a portable integer FFT in C might be fast enough and would benefit other no-FPU platforms. Any suggestions would be very welcome. Or news of a fixed-point port in progress :) [6] Steve [1] - http://docs.blackfin.uclinux.org/doku.php?id=optimization#gcc_optimization_for_blackfin [2] - http://www.analog.com/static/imported-files/application_notes/EE.185.Rev.4.08.07.pdf [3] - "You will find the non-FPU operation of this code much more efficient if you can port an integer fft. I believe we are still using the kissfft library, and it was a integer version of this that I experimented with making use of." August 28 on this mailing list. [4] - http://docs.blackfin.uclinux.org/doku.php?id=toolchain:libbfdsp#transformational_functions [5] - I couldn't find a copy on analog.com, but did at http://www.datasheetarchive.com/EE-186-datasheet.html [6] - <http://www.rowetel.com/blog/?page_id=452> shows a "fixed point port" as milestone #3 -- Steve Strobel Link Communications, Inc. 1035 Cerise Rd Billings, MT 59101-7378 (406) 245-5002 ext 102 (406) 245-4889 (fax) WWW: http://www.link-comm.com MailTo:[email protected] ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2d-oct _______________________________________________ Freetel-codec2 mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freetel-codec2
