[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Discuss-gnuradio] Re: MA (Memory Acceleration) and SR-DVB in Karlsruhe, @ WSR10,
Achilleas Anastasopoulos <=