Lines Matching defs:ich
584 int ich, ilms;
595 for (ich = 0; ich < s->num_channels; ich++) {
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));
604 s->ave_sum[ich] = 0;
613 int ich, ilms;
615 for (ich = 0; ich < s->num_channels; ich++) {
616 for (ilms = 0; ilms < s->cdlms_ttl[ich]; ilms++)
617 s->cdlms[ich][ilms].recent = s->cdlms[ich][ilms].order;
620 s->channel[ich].transient_counter = s->samples_per_frame;
621 s->transient[ich] = 1;
622 s->transient_pos[ich] = 0;
628 int i, j, ich, pred_error;
633 for (ich = 0; ich < num_channels; ich++) {
634 pred_error = s->channel_residues[ich][icoef] - (unsigned)pred[ich];
637 s->mclms_coeffs[i + ich * order * num_channels] +=
639 for (j = 0; j < ich; j++)
640 s->mclms_coeffs_cur[ich * num_channels + j] += WMASIGN(s->channel_residues[j][icoef]);
643 s->mclms_coeffs[i + ich * order * num_channels] -=
645 for (j = 0; j < ich; j++)
646 s->mclms_coeffs_cur[ich * num_channels + j] -= WMASIGN(s->channel_residues[j][icoef]);
650 for (ich = num_channels - 1; ich >= 0; ich--) {
652 s->mclms_prevvalues[s->mclms_recent] = av_clip(s->channel_residues[ich][icoef],
654 s->mclms_updates[s->mclms_recent] = WMASIGN(s->channel_residues[ich][icoef]);
670 int ich, i;
674 for (ich = 0; ich < num_channels; ich++) {
675 pred[ich] = 0;
676 if (!s->is_channel_coded[ich])
679 pred[ich] += (uint32_t)s->mclms_prevvalues[i + s->mclms_recent] *
680 s->mclms_coeffs[i + order * num_channels * ich];
681 for (i = 0; i < ich; i++)
682 pred[ich] += (uint32_t)s->channel_residues[i][icoef] *
683 s->mclms_coeffs_cur[i + num_channels * ich];
684 pred[ich] += (1U << s->mclms_scaling) >> 1;
685 pred[ich] >>= s->mclms_scaling;
686 s->channel_residues[ich][icoef] += (unsigned)pred[ich];
699 static void use_high_update_speed(WmallDecodeCtx *s, int ich)
702 for (ilms = s->cdlms_ttl[ich] - 1; ilms >= 0; ilms--) {
703 recent = s->cdlms[ich][ilms].recent;
704 if (s->update_speed[ich] == 16)
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;
714 s->update_speed[ich] = 16;
717 static void use_normal_update_speed(WmallDecodeCtx *s, int ich)
720 for (ilms = s->cdlms_ttl[ich] - 1; ilms >= 0; ilms--) {
721 recent = s->cdlms[ich][ilms].recent;
722 if (s->update_speed[ich] == 8)
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;
731 s->update_speed[ich] = 8;
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)); \
807 int ich, pred, i, j;
812 for (ich = 0; ich < s->num_channels; ich++) {
813 int *prevvalues = s->acfilter_prevvalues[ich];
820 pred += (uint32_t)s->channel_residues[ich][i - j - 1] * filter_coeffs[j];
823 s->channel_residues[ich][i] += (unsigned)pred;
828 pred += (uint32_t)s->channel_residues[ich][i - j - 1] * filter_coeffs[j];
830 s->channel_residues[ich][i] += (unsigned)pred;
836 prevvalues[j] = s->channel_residues[ich][tile_size - j - 1];