ADSP-BF706
Production
This device is a member of the ADSP-BF70x Blackfin Digital Signal Processor (DSP) product family. The new Blackfin+ processor core combines dual-MAC 16...
Datasheet
ADSP-BF706 on Analog.com
I have an audio in-out program in C for the ADSP-BF706 EZ-KIT mini, about 80 lines in length. It's simple and very easy to understand. It's also completely self-contained - it doesn't use any of the header files that the "TalkThrough_BF706Mini.c" program uses (supplied with the kit). It includes a basic TWI driver, SPORT0 set up and configuration routine for the on board codec (ADAU1761). With some simple modifications it can be used for filtering, both FIR and IIR. The file is attached. All welcome to use free.
PatrickG
Not very much can be gain by block processing in this case, since sample by sample
processing is already quite efficient.
At fc = 400 MHz clock frequency and fs = 48 kHz sampling frequency fc / fs =
8333 cycles are available for one audio sample (or a frame left/right).
The Blackfin+ is able to compute a 32 bit FIR filter of N coefficients in N cycles
(or 2*N coefficients in N cycles for 16 bit filters).
Therefore, a filter length of 8333 is the theoretical maximum. 8000 is 96% of that maximum.
No significant improvement is possible unless other algorithms for block FIR are used.
For some algorithms like biquad filters, the function call overhead can be an issue with
sample by sample processing. In this case C/C++ inline functions can be advantageous.
Not very much can be gain by block processing in this case, since sample by sample
processing is already quite efficient.
At fc = 400 MHz clock frequency and fs = 48 kHz sampling frequency fc / fs =
8333 cycles are available for one audio sample (or a frame left/right).
The Blackfin+ is able to compute a 32 bit FIR filter of N coefficients in N cycles
(or 2*N coefficients in N cycles for 16 bit filters).
Therefore, a filter length of 8333 is the theoretical maximum. 8000 is 96% of that maximum.
No significant improvement is possible unless other algorithms for block FIR are used.
For some algorithms like biquad filters, the function call overhead can be an issue with
sample by sample processing. In this case C/C++ inline functions can be advantageous.