26 #ifndef _VITERBIR204_H_
27 #define _VITERBIR204_H_ 1
43 static const unsigned mIRate = 2;
44 static const unsigned mOrder = 4;
48 static const unsigned mIStates = 0x01 << mOrder;
49 static const uint32_t mSMask = mIStates-1;
50 static const uint32_t mCMask = (mSMask<<1) | 0x01;
51 static const uint32_t mOMask = (0x01<<mIRate)-1;
52 static const unsigned mNumCands = mIStates*2;
53 static const unsigned mDeferral = 6*mOrder;
59 uint32_t mCoeffs[mIRate];
62 uint32_t mStateTable[mIRate][2*mIStates];
64 uint32_t mGeneratorTable[2*mIStates];
95 vCand mSurvivors[mIStates];
96 vCand mCandidates[2*mIStates];
101 unsigned iRate()
const {
return mIRate; }
102 uint32_t
cMask()
const {
return mCMask; }
103 uint32_t
stateTable(
unsigned g,
unsigned i)
const {
return mStateTable[g][i]; }
116 const vCand*
vstep(uint32_t inSample,
const float *probs,
const float *iprobs,
bool isNotTailBits);
121 void branchCandidates();
124 void getSoftCostMetrics(uint32_t inSample,
const float *probs,
const float *iprobs);
127 void pruneCandidates();
130 const vCand& minCost()
const;
136 void computeStateTables(
unsigned g);
142 void computeGeneratorTable();
uint32_t oState
encoder output associated with this candidate
Definition: ViterbiR204.h:76
struct ViterbiR2O4::candStruct vCand
unsigned deferral() const
Definition: ViterbiR204.h:104
uint32_t cMask() const
Definition: ViterbiR204.h:102
uint32_t iState
encoder input associated with this candidate
Definition: ViterbiR204.h:75
Definition: BitVector.h:120
void vitClear(vCand &v)
Definition: ViterbiR204.h:82
Definition: BitVector.h:333
unsigned iRate() const
Definition: ViterbiR204.h:101
float cost
cost (metric value), float to support soft inputs
Definition: ViterbiR204.h:77
const vCand * vstep(uint32_t inSample, const float *probs, const float *iprobs, bool isNotTailBits)
Definition: ViterbiR204.h:36
int bitErrorCnt
number of bit errors in the encoded vector being decoded.
Definition: ViterbiR204.h:78
Definition: ViterbiR204.h:74
void encode(const BitVector &in, BitVector &target) const
int getBEC()
Definition: ViterbiR204.h:147
void decode(const SoftVector &in, BitVector &target)
uint32_t stateTable(unsigned g, unsigned i) const
Definition: ViterbiR204.h:103