Browse Source

Implement lms_predict()

(cherry picked from commit 83e31db195)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n0.9
Mashiat Sarker Shakkhar Michael Niedermayer 14 years ago
parent
commit
afd930dca2
1 changed files with 17 additions and 0 deletions
  1. +17
    -0
      libavcodec/wmalosslessdec.c

+ 17
- 0
libavcodec/wmalosslessdec.c View File

@@ -757,6 +757,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


Loading…
Cancel
Save