[Speex-dev] Re: Porting Speex on C5509A and CELP Algorithm Documentation

Jim Crichton jim.crichton at comcast.net
Fri Jul 20 13:02:18 PDT 2007


Jean,

I looked back at my notes and old code, and found that, unfortunately, I never made a standalone Speex build for the C5509A EVM.  I replaced the audio codec on the board and lashed it together with a couple of other development boards before Speex was ever introduced.  So, I cannot give you much more than a roadmap.  

The only "port" that is required is to replace the sample and data file I/O in testenc_c5x.c with real audio and data interfaces.  On the 5509A, everything fits in internal memory, so I did not have to do much with the map.  On the C5502, you will have to do some planning on how to split between internal and external memory.

I started by bringing up some sample applications  which were provided with the board (tone.c and evm_app.c).   One of these generates a tone and the other implements an audio loopback with DMA (I ended up getting rid of the DMA).  I did some customization of the startup routine provided with the board, to turn off options that I did not need.  I vaguely remember having to modifiy some other board support files, because of a memory model change, but I would need to do some more checking to find the specific issue.  You can contact me off list if you end up using the same board, and I might have some more useful information.

- Jim
  ----- Original Message ----- 
  From: Jean Quirion 
  To: 'Jim Crichton' ; speex-dev at xiph.org 
  Sent: Friday, July 20, 2007 1:57 PM
  Subject: Porting Speex on C5509A and CELP Algorithm Documentation


  Jim,

   

  Thank you very much for your suggestions. I managed to get the C55x code working on the simulator. I would like to port Speex both on a C5502 EVM and a C5509A EVM. As such, if you can provide me with the details of your port on the C5509A, it would be greatly appreciated. 

   

  Furthermore, I am looking for some technical documentation on the CELP algorithms. I would like to better understand the math being implemented. Do you know where such documentation can be found?

   

  Sincerely,

   

  Jean Quirion




------------------------------------------------------------------------------
  From: Jim Crichton [mailto:jim.crichton at comcast.net] 
  Sent: Thursday, July 19, 2007 10:54 AM
  To: Quirion, Jean; speex-dev at xiph.org
  Subject: Re: [Speex-dev] How Can I Get involved in Speex Fixed-PointDevelopment? 


  There is a port for the TI C55X, in the TI directory of the source tree.  This builds and runs directly on the TI C55x simulator (Code Composer).  I have run this on the Spectrum Digital C5509A EVMPLUS board, by modifying some of the sample audio drivers (I could provide some details if you chose that board).  You can certainly get started in the simulator.

  The Speex port does not include any assembly optimization for TI, so that is an area that you might be interested in.  If you are considering the Speex echo canceller, that could greatly benefit from a TI-optimized FFT.  I have not used the preprocessor myself.

  You should plan on providing external memory for your DSP if you are doing more than the basic codec.  Speex runs fairly efficiently in C on TI DSPs, but it has a big footprint.

  I hope this in helpful in getting started with the DSP target.  I will defer to Jean-Marc on how to contribute to the project.

  Regards,

  Jim Crichton

    ----- Original Message ----- 
    From: Quirion, Jean 
    To: speex-dev at xiph.org 
    Sent: Thursday, July 19, 2007 8:04 AM
    Subject: [Speex-dev] How Can I Get involved in Speex Fixed-PointDevelopment? 


    Hi,

    My name is Jean Quirion and I am a DSP engineer. Currently I am
    working on a project where it is desired to implement a VoIP solution
    over a GSM GPRS link. I would like to use Speex as the vocoder for
    this application. This application would require the Speex
    encoder/decoder and possibly the pre-processor to run on a low power
    fixed-point DSP such as a TI C55x.

    Thus, I am interested in getting involved in the fixed-point
    implementation of Speex. I feel I can contribute significantly to the
    Speex project while effectively developing a vocoder solution for my
    project.

    Can you tell me how I can get started? I looked at the list of tasks
    on the Seepx wiki and I find that the following would be best suited
    for my interests:

    Complete fixed-point (DSP development)
    .       Rest of the narrowband modes
    .       Preprocessor (noise suppression, AGC)
    .       Jitter buffer

    Please let me know how to move forward. Where does the Speex vocoder
    fixed-point implementation stands? Has if been successfully ported and
    tested onto a TI DSP evaluation board (i.e. an EVM)? If not, and if it
    can be helpful, I would be interested in tackling that task.

    Sincerely,


    Jean Quirion


----------------------------------------------------------------------------


    _______________________________________________
    Speex-dev mailing list
    Speex-dev at xiph.org
    http://lists.xiph.org/mailman/listinfo/speex-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20070720/aa46e0bd/attachment.htm


More information about the Speex-dev mailing list