discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] Re: MA (Memory Acceleration) and SR-DVB in Karlsruhe,


From: Achilleas Anastasopoulos
Subject: [Discuss-gnuradio] Re: MA (Memory Acceleration) and SR-DVB in Karlsruhe, @ WSR10
Date: Wed, 17 Mar 2010 11:54:53 -0400
User-agent: Thunderbird 2.0.0.24 (Windows/20100228)

John and others,

For anyone who wants to take a crack at it, I have
committed a minor update on gr-trellis, where I have re-factored
the main Viterbi function on the file viterbi.cc
and made a template out of it.

Anyone who wants to attempt an optimization of the VA
using MA (or any other technique) can start from this code.
The critical code is the double loop:

%---------------------
for(int j=0;j<S;j++) { // for each next state do ACS
          minm=INF;
          minmi=0;
          for(unsigned int i=0;i<PS[j].size();i++) {
if((mm=alpha[alphai*S+PS[j][i]]+in[k*O+OS[PS[j][i]*I+PI[j][i]]])<minm)
                  minm=mm,minmi=i;
          }
          trace[k*S+j]=minmi;
          alpha[((alphai+1)%2)*S+j]=minm;
          if(minm<norm) norm=minm;
      }
%---------------------

where the Add-Compare-Select operations are performed.

In addition, the code that evaluates the branch metrics is in
the file calc_metric.cc which can also be accelerated with precomputed and stored values.

Finally, using the fsm framework, radix-n solutions are readily available (they are implemented as alternative constructors),
so they do not need to be hardcoded...

I would appreciate any suggestions for optimization, although it is not
one of my priorities at this point...


Achilleas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]