Implement lms_predict()

This commit is contained in:
Mashiat Sarker Shakkhar 2011-11-06 03:02:11 +06:00
parent 03684c8ff3
commit 0faae518e9
1 changed files with 17 additions and 0 deletions

View File

@ -754,6 +754,23 @@ static void reset_codec(WmallDecodeCtx *s)
static int lms_predict(WmallDecodeCtx *s, int ich, int ilms)
{
int32_t pred, icoef;
int recent = s->cdlms[ich][ilms].recent;
for (icoef = 0; icoef < s->cdlms[ich][ilms].order; icoef++)
pred += s->cdlms[ich][ilms].coefs[icoef] *
s->cdlms[ich][ilms].lms_prevvalues[icoef + recent];
pred += (1 << (s->cdlms[ich][ilms].scaling - 1));
/* XXX: Table 29 has:
iPred >= cdlms[iCh][ilms].scaling;
seems to me like a missing > */
pred >>= s->cdlms[ich][ilms].scaling;
return pred;
}
/**
*@brief Decode a single subframe (block).
*@param s codec context