Reply by Umang Garg March 16, 20052005-03-16
Hello Venkat,

I do not think that you can modify any part of the GSM-AMR(Narrow Band) Codec algorithm without violating the bit-exact implementation criterion.  If you violate the
bit-exact implementation criterion, you will no longer be 3GPP compliant !

Since the C-fixed point implmentation of the AMR-NB is a normative part of the 3GPP standard, you will have to consider optimisation techniques other than the modification of the algorithm. Example: If you are planning to target your AMR implementation for a particular DSP, then you can exploit that DSP chip architecture and instruction set to optimise on performance without compromising on quality.

Regards,

Umang Garg

venkat ramanan wrote:
Hai everybody,
Can anybody suggest me a method to optimize the ACELP search in AMR-NB
codec (DFTS method) so that there is no reduction in speech quality when
compared to original?
I have already gone through some IEEE papers. But speech quality is not
maintained. They reduced the complexity by reducing the quality. Is any other
block in amr-nb can be optimized without reducing the speech quality?
Thanks in advance
Venkat
Mistakes are not end of the world but repeating them is
------------------------ Yahoo! Groups Sponsor --------------------~--> Has
someone you know been affected by illness or disease?
Network for Good is THE place to support health awareness efforts!
http://us.click.yahoo.com/RzSHvD/UOnJAA/79vVAA/GP4qlB/TM
--------------------------------~-> 

.


Reply by Shankar Shashi March 16, 20052005-03-16

Venkat,
in any ACELP based encoding schemes, the inner most ACELP loop which determines the position pulses in a given subframe ( 40 samples in NBAMR). this inner most loop given below is the most time/cycle consuming loop in ACELP encoding. You can go about optimizing this loop by splitting the splitting the calc of S and calc of ps and ix values.
Then restructuring the inner loop in a way that is most benificial for the target processor architecture. If the processor is a VLIW instruction set processor, the inner loop which is basically s = L_msu(L_mult(alp, sq1), sq, alp_16); can be made to happen in one instruction cycle. To achieve this you need to do a lot of restructuring of Pulses to suit your processor architecture. The idea is make the alp, alp_16, sq and sq1 values to be available linearly in a table. To do this you need to do some restructuring and pre calculations of the autocorrelation values. Once you are able to lay out these values in a table, it is easy doing the inner loop which just goes and picks the values from corresponding table entries and perform the calculation.
I know this is very cryptic but it is impossible to give the entire process in email and more over this restructuring would be processor specific. this gives you bit exactness aswell as huge cycle savings.
hope this helps
-shashi venkat ramanan <> wrote:

Hai everybody,

Can anybody suggest me a method to optimize the ACELP search in AMR-NB codec (DFTS method) so that there is no reduction in speech quality when compared to original?
I have already gone through some IEEE papers. But speech quality is not maintained. They reduced the complexity by reducing the quality.

Is any other block in amr-nb can be optimized without reducing the speech quality?

Thanks in advance
Venkat

Mistakes are not end of the world but repeating them is

To
Shashi Shankar.H

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


Reply by venkat ramanan March 15, 20052005-03-15

Hai everybody,

Can anybody suggest me a method to optimize the ACELP search in AMR-NB codec(DFTS method) so that there is no reduction in speech quality when compared to original?
I have already gone through some IEEE papers. But speech quality is not maintained. They reduced the complexity by reducing the quality.

Is any other block in amr-nb can be optimized without reducing the speech quality?

Thanks in advance
Venkat

Mistakes are not end of the world but repeating them is