Just a proof of concept (that the DSP can be useful). I simply took the innards of the costg711 package and placed in in a dsptask This code is not optimised, I've no idea how fast it runs. Things to look at are specific DSP abilities, and the overhead associated with the memory transfer (i.e. what is the ideal size). There are other optimisations, such as using more buffers, so that the DSP and ARM don't have to wait while the other reads the data out and re-fills the buffer. As I said, it's just a proof of concept. To try it, you need to do the following: Make the dsp task ----------------- setup your Ti dsp toolchain run make in this directory, change the module name from task_g711_ulaw_encode.o to g711_ulaw.o move this module to /lib/dsp/modules edit the /lib/dsp/dsp_dld_avs.conf file to look something like this: Nokia-N800-26:/home/user# more /lib/dsp/dsp_dld_avs.conf # # dsp_dld.conf # 2003-2005 Toshihiro Kobayashi, Nokia Research Center # $kernel /lib/dsp/avs_kernel.out $cmd /lib/dsp/avs_kernelcfg.cmd # devname taskname pri module cmd file(optional) pcm2 _pcm2_dsptask 1 /lib/dsp/modules/pcm2.o /lib/dsp/modules/pcm.cmd aacdec _aacdec_dsptask 1 /lib/dsp/modules/aac.o /lib/dsp/modules/aac.cmd amrnb _amrnb_dsptask 1 /lib/dsp/modules/amrnb.o /lib/dsp/modules/amrnb.cmd amrwb _amrwb_dsptask 1 /lib/dsp/modules/amrwb.o /lib/dsp/modules/amrwb.cmd mp3dec _mp3dec_dsptask 1 /lib/dsp/modules/mp3.o /lib/dsp/modules/mp3.cmd mp2dec _mp2dec_dsptask 1 /lib/dsp/modules/mp2.o /lib/dsp/modules/mp2.cmd pcm_rec _pcm_rec_dsptask 1 /lib/dsp/modules/pcm_rec.o /lib/dsp/modules/pcm_rec.cmd g711_enc _g711_enc_dsptask 1 /lib/dsp/modules/g711_enc.o /lib/dsp/modules/g711_enc.cmd g711_dec _g711_dec_dsptask 1 /lib/dsp/modules/g711_dec.o /lib/dsp/modules/g711_dec.cmd g729_enc _g729_enc_dsptask 1 /lib/dsp/modules/g729_enc.o /lib/dsp/modules/g729_enc.cmd g729_dec _g729_dec_dsptask 1 /lib/dsp/modules/g729_dec.o /lib/dsp/modules/g729_dec.cmd ilbc_enc _ilbc_enc_dsptask 1 /lib/dsp/modules/ilbc_enc.o /lib/dsp/modules/ilbc_enc.cmd ilbc_dec _ilbc_dec_dsptask 1 /lib/dsp/modules/ilbc_dec.o /lib/dsp/modules/ilbc_dec.cmd aep _aep_dsptask 1 /lib/dsp/modules/aep.o /lib/dsp/modules/aep.cmd g711_ulaw _task_g711_ulaw 1 /lib/dsp/modules/g711_ulaw.o Reload the dsp modules by running dsp_dld Run the ARM-side binary like so: ./test_g711_mulaw.out ringout.wav ringout.ulaw_dsp Run the original (all ARM-side) COST program like so: ./costg711 -lu ringout.wav ringout.ulaw_cost Compare the output files