DSPRelated.com
Forums

AMR-WB optimization

Started by Unknown March 2, 2005


Hello everybody,

I am working on the optimization of the AMR-WB speech codec code obtained from ITU-T on the c6211 dsk. I have done the optimization techniques suggested for TI's optimizing compiler like using intrinsics, loop trip counts, scratch-pad memory etc..BUt still haven't acheived the desired performance. The program takes 150 MCPS for full-duplex operation. I have to make it work under 25 MCPS for full-duplex. I guess I have to do algorithmic level optimization now.
I have some knowledge of the speech coding algorithms. But I am not sure about where to start from.
Please guide me as to what are the steps that has to be taken in this direction. What all things should be done. I would like to know whether its worth changing the algorithms. Or is there some other techniques like decreasing the bits used for the fixed-point representation in some parts, or change the tables that are used in the code-book search etc..Kindly list all of the techniques like these that are normally used. If assembly coding has to be done then how to choose the functions that needs to be optimized?

Thanks in advance for all your help..

Regards
Saleem




Saleem,

I suggest you to implement some functions in ASM whcih take much processing
time. Some of those signal processing functions may be optimized by using
ASM features like circular buffers, filters etc.

Good Luck.
Ismail ----- Original Message -----
From: <>
To: <>
Sent: Wednesday, March 02, 2005 6:51 AM
Subject: [speechcoding] AMR-WB optimization > Hello everybody,
>
> I am working on the optimization of the AMR-WB speech codec code obtained
> from ITU-T on the c6211 dsk. I have done the optimization techniques
> suggested for TI's optimizing compiler like using intrinsics, loop trip
> counts, scratch-pad memory etc..BUt still haven't acheived the desired
> performance. The program takes 150 MCPS for full-duplex operation. I have
> to make it work under 25 MCPS for full-duplex. I guess I have to do
> algorithmic level optimization now.
> I have some knowledge of the speech coding algorithms. But I am not sure
> about where to start from.
> Please guide me as to what are the steps that has to be taken in this
> direction. What all things should be done. I would like to know whether
> its worth changing the algorithms. Or is there some other techniques like
> decreasing the bits used for the fixed-point representation in some parts,
> or change the tables that are used in the code-book search etc..Kindly
> list all of the techniques like these that are normally used. If assembly
> coding has to be done then how to choose the functions that needs to be
> optimized?
>
> Thanks in advance for all your help..
>
> Regards
> Saleem >
>





Hai saleem,

Since you are going for algorithmic level optimization, you have to find which part of the codec is more complex. I think the codebook search algorithm will lead.
There also some function in the program which has small complexity but it will be called many times so that the final complexity due to the function will be large. So please find out which of the functions are called very frequently. Because small saving in that function will result in large difference.
There also many algorithm available in the net for efficient code book search, fast implementation of auto-correlation functions and convolution.
For example, convolution implemented using FFT requires less complexity. Blakenship method of implementing autocorrelation have less complexity.

Regards
Venkat Mistakes are not end of the world but repeating them is




Saleem:

Just adding to what venkat has said. I referred to the following link for options on autocorrelations
http://www.isip.msstate.edu/projects/speech/software/documentation/class/algo/Correlation/index.html

I used the second option given and that works fast as compared to the first one.

The site has given all the options for implementation and the references for their implementation.

All the best.

- Sanjay Patil
Mar 02, 2005. 1213 hours central. Wednesday. venkat ramanan <> wrote:

Hai saleem,

Since you are going for algorithmic level optimization, you have to find which part of the codec is more complex. I think the codebook search algorithm will lead.
There also some function in the program which has small complexity but it will be called many times so that the final complexity due to the function will be large. So please find out which of the functions are called very frequently. Because small saving in that function will result in large difference.
There also many algorithm available in the net for efficient code book search, fast implementation of auto-correlation functions and convolution.
For example, convolution implemented using FFT requires less complexity. Blakenship method of implementing autocorrelation have less complexity.

Regards
Venkat Mistakes are not end of the world but repeating them is

To
---------
Honour or Shame from no conditions doth rise,
ACT well you part, there's all HONOUR lies
---------
---------------------------------
Celebrate Yahoo!'s 10th Birthday!
Yahoo! Netrospective: 100 Moments of the Web





What is u r requirement?
I am not sure but I think u must be looking for bit exact implementation.
If it is so then you may loose bit exact implementation if u modify the
algorithm.
You need to consider this before modifying the algorithm.

Regards,
Nitin

----- Original Message -----
From: <>
To: <>
Sent: Wednesday, March 02, 2005 10:21 AM
Subject: [speechcoding] AMR-WB optimization > Hello everybody,
>
> I am working on the optimization of the AMR-WB speech codec code obtained
from ITU-T on the c6211 dsk. I have done the optimization techniques
suggested for TI's optimizing compiler like using intrinsics, loop trip
counts, scratch-pad memory etc..BUt still haven't acheived the desired
performance. The program takes 150 MCPS for full-duplex operation. I have to
make it work under 25 MCPS for full-duplex. I guess I have to do algorithmic
level optimization now.
> I have some knowledge of the speech coding algorithms. But I am not sure
about where to start from.
> Please guide me as to what are the steps that has to be taken in this
direction. What all things should be done. I would like to know whether its
worth changing the algorithms. Or is there some other techniques like
decreasing the bits used for the fixed-point representation in some parts,
or change the tables that are used in the code-book search etc..Kindly list
all of the techniques like these that are normally used. If assembly coding
has to be done then how to choose the functions that needs to be optimized?
>
> Thanks in advance for all your help..
>
> Regards
> Saleem


"SASKEN RATED THE BEST EMPLOYER IN THE COUNTRY by the BUSINESS TODAY Mercer Survey 2004" SASKEN BUSINESS DISCLAIMER
This message may contain confidential, proprietary or legally Privileged information. In case you are not the original intended Recipient of the message, you must not, directly or indirectly, use, Disclose, distribute, print, or copy any part of this message and you are requested to delete it and inform the sender. Any views expressed in this message are those of the individual sender unless otherwise stated. Nothing contained in this message shall be construed as an offer or acceptance of any offer by Sasken Communication Technologies Limited ("Sasken") unless sent with that express intent and with due authority of Sasken. Sasken has taken enough precautions to prevent the spread of viruses. However the company accepts no liability for any damage caused by any virus transmitted by this email