Lines Matching defs:ilms
584 int ich, ilms;
596 for (ilms = 0; ilms < s->cdlms_ttl[ich]; ilms++) {
597 memset(s->cdlms[ich][ilms].coefs, 0,
598 sizeof(s->cdlms[ich][ilms].coefs));
599 memset(s->cdlms[ich][ilms].lms_prevvalues, 0,
600 sizeof(s->cdlms[ich][ilms].lms_prevvalues));
601 memset(s->cdlms[ich][ilms].lms_updates, 0,
602 sizeof(s->cdlms[ich][ilms].lms_updates));
613 int ich, ilms;
616 for (ilms = 0; ilms < s->cdlms_ttl[ich]; ilms++)
617 s->cdlms[ich][ilms].recent = s->cdlms[ich][ilms].order;
701 int ilms, recent, icoef;
702 for (ilms = s->cdlms_ttl[ich] - 1; ilms >= 0; ilms--) {
703 recent = s->cdlms[ich][ilms].recent;
707 for (icoef = 0; icoef < s->cdlms[ich][ilms].order; icoef++)
708 s->cdlms[ich][ilms].lms_updates[icoef + recent] *= 2;
710 for (icoef = 0; icoef < s->cdlms[ich][ilms].order; icoef++)
711 s->cdlms[ich][ilms].lms_updates[icoef] *= 2;
719 int ilms, recent, icoef;
720 for (ilms = s->cdlms_ttl[ich] - 1; ilms >= 0; ilms--) {
721 recent = s->cdlms[ich][ilms].recent;
725 for (icoef = 0; icoef < s->cdlms[ich][ilms].order; icoef++)
726 s->cdlms[ich][ilms].lms_updates[icoef + recent] /= 2;
728 for (icoef = 0; icoef < s->cdlms[ich][ilms].order; icoef++)
729 s->cdlms[ich][ilms].lms_updates[icoef] /= 2;
735 static void lms_update ## bits (WmallDecodeCtx *s, int ich, int ilms, int input) \
737 int recent = s->cdlms[ich][ilms].recent; \
739 int order = s->cdlms[ich][ilms].order; \
740 int ##bits##_t *prev = (int##bits##_t *)s->cdlms[ich][ilms].lms_prevvalues; \
746 memcpy(s->cdlms[ich][ilms].lms_updates + order, \
747 s->cdlms[ich][ilms].lms_updates, \
748 sizeof(*s->cdlms[ich][ilms].lms_updates) * order); \
753 s->cdlms[ich][ilms].lms_updates[recent] = WMASIGN(input) * s->update_speed[ich]; \
755 s->cdlms[ich][ilms].lms_updates[recent + (order >> 4)] >>= 2; \
756 s->cdlms[ich][ilms].lms_updates[recent + (order >> 3)] >>= 1; \
757 s->cdlms[ich][ilms].recent = recent; \
758 memset(s->cdlms[ich][ilms].lms_updates + recent + order, 0, \
759 sizeof(s->cdlms[ich][ilms].lms_updates) - \
760 sizeof(*s->cdlms[ich][ilms].lms_updates)*(recent+order)); \
766 int icoef, ilms, num_lms, residue, input; \
770 for (ilms = num_lms - 1; ilms >= 0; ilms--) { \
772 int##bits##_t *prevvalues = (int##bits##_t *)s->cdlms[ch][ilms].lms_prevvalues; \
773 pred = (1 << s->cdlms[ch][ilms].scaling) >> 1; \
775 pred += s->dsp.scalarproduct_and_madd_int## bits (s->cdlms[ch][ilms].coefs, \
776 prevvalues + s->cdlms[ch][ilms].recent, \
777 s->cdlms[ch][ilms].lms_updates + \
778 s->cdlms[ch][ilms].recent, \
779 FFALIGN(s->cdlms[ch][ilms].order, ROUND), \
781 input = residue + (unsigned)((int)pred >> s->cdlms[ch][ilms].scaling); \
782 lms_update ## bits(s, ch, ilms, input); \