static void dss_sp_shift_sq_sub(const int32_t *filter_buf,

                                int32_t *error_buf, int32_t *dst)

{

    int a;



    for (a = 0; a < 72; a++) {

        int i, tmp;



        tmp = dst[a] * filter_buf[0];



        for (i = 14; i > 0; i--)

            tmp -= error_buf[i] * (unsigned)filter_buf[i];



        for (i = 14; i > 0; i--)

            error_buf[i] = error_buf[i - 1];



        tmp = (tmp + 4096) >> 13;



        error_buf[1] = tmp;



        dst[a] = av_clip_int16(tmp);

    }

}
