This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Sample rate conversion (asynchronous SRC)

Other Parts Discussed in Thread: SRC4184

I am looking for an optimized way to do Asynchronous Sample Rate Conversion on the C66xx architecture. There are various generic libraries available, like Secret Rabbit Code, but I am looking for something which is optimized for C66xx (we need to process many channels for a professional audio application, so 90dB down at the cut-off frequency). 

Does anybody know of an existing solution or have a suggestion on how to implement this effectively? My "planned approach" is to use an existing lib (SRC) written in C and swap out modules where I can with those from the DSPLIB (like cut-off filtering).

EDIT: It looks like Analog Devices offers a library for Blackfin. Does TI have something similar? If not, what is the recommended way of implementing this?

Thanks

  • Dirk,

    Unfortunately I don't know of any readily available ASRC libraries from TI.  I believe you would either need a separate IC such as the SRC4184 or would need to license an algorithm from a 3rd party.

    Can you supply some more info about the signals, i.e. what sample rates, sample size, etc?

    Brad

  • Thanks for your reply Brad, any help is appreciated. 

    The audio input and autput clocks can be from different sources, so we can have a situation where the actual input clock is 47,995 Hz and the output clock 48,010 Hz. 

    The possible base-input rates are 8,000/16,000/22,050/32,000/44,100/48,000 and 96,000 Hz. The output rate is always 48,000 Hz. The goal is to be able to resample up to 128 streams in realtime on a 1GHz C66x DSP......

    Sample size can be 16 or 24 bits and possibly higher (I'll check).  This is for a professional audio application. The SCR algorithm should introduce as little phase distortion as possible and have a good cutoff (antialiasing) filter.

    The algorithms I have seen so far like SoX and Secret Rabbit Code seem perfectly adequate, but performance is critical considering the number of streams. For the antialiasing filter I believe I can use the FIR filter in DSPLIB, but ideally someone has implemented the whole chain before and we can use their code (through licensing/buying). 

    Are there any companies out there which might provide such a product? My alternative is as stated above: port an existing x86 lib to C66x, but this might be a lengthy process to get it up to the performance I require.

    EDIT: It looks like there is a resampling library for the C5000, but the implementation is a C66x incompatible lib and the library seems to have some limitations concerning performance tuning and input/output sampling rates.


    Thanks,

    Dirk

  • Hi Dirk,

    Ittiam is a TI partner (www.ittima.com). We have the SRC that may meet your requirements. If you like, please send me your email address at (bob.lee@ittiam.com). I will send you the datasheet.

    Cheers,

    Bob 

  • Thanks Bob! I sent you an Email. Would it be possible to share some information on performance on this forum for reference?

    Regards,

    Dirk