DSPRelated.com
Forums

G.728 re-entry algorithm

Started by P.Krishna July 12, 2006
Hi,
We have G.728 speech compression algorithm for ADSP218x DSP, as per my
understanging it works for only one channel. To make multiple channels
work we need to use G.728 re-entry algorithm for ADSP218x DSP, where can I
get this algorithm? earlier we bought G.728 speech compression algorithm
from ADI Australia (SPA), the company is now closed.

Thanks&Regards
P.Krishna



There are different ways to tackle this. One non-elegant method
that does not require much expertise or access to the source code
 is just to find the RAM locations
that hold the channel state globals the G728 module is using,
then write your own 'swap' functions that just
move the memory for the channel you want to run to the
fixed RAM locations that are accessed internally by the G.728 module.

E.g. example for encoder
for(i=0;i<NCHANNELS;i++){
   swap_channel_enc_in(i);
   G728_enc();
   swap_channel_enc_out(i);
}

The effort required to figure out the appropriate minimium amount
of RAM to swap is dependent
on how well setup the module is and what documentation you have.
However, even blind it is possible to figure it out by looking at the
map/mem file
and doing some experiments with the debugger.




P.Krishna wrote:
> Hi, > We have G.728 speech compression algorithm for ADSP218x DSP, as per my > understanging it works for only one channel. To make multiple channels > work we need to use G.728 re-entry algorithm for ADSP218x DSP, where can I > get this algorithm? earlier we bought G.728 speech compression algorithm > from ADI Australia (SPA), the company is now closed. > > Thanks&Regards > P.Krishna
There are different ways to tackle this. One non-elegant method
that does not require much expertise or access to the source code
 is just to find the RAM locations
that hold the channel state globals the G728 module is using,
then write your own 'swap' functions that just
move the memory for the channel you want to run to the
fixed RAM locations that are accessed internally by the G.728 module.

E.g. example for encoder
for(i=0;i<NCHANNELS;i++){
   swap_channel_enc_in(i);
   G728_enc();
   swap_channel_enc_out(i);
}

The effort required to figure out the appropriate minimium amount
of RAM to swap is dependent
on how well setup the module is and what documentation you have.
However, even blind it is possible to figure it out by looking at the
map/mem file
and doing some experiments with the debugger.




P.Krishna wrote:
> Hi, > We have G.728 speech compression algorithm for ADSP218x DSP, as per my > understanging it works for only one channel. To make multiple channels > work we need to use G.728 re-entry algorithm for ADSP218x DSP, where can I > get this algorithm? earlier we bought G.728 speech compression algorithm > from ADI Australia (SPA), the company is now closed. > > Thanks&Regards > P.Krishna