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