Commit 291b4903 authored by Nicolas Roussin's avatar Nicolas Roussin
Browse files

Add headroom to state.

parent 106c5657
Loading
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -309,20 +309,21 @@ static void ivas_iir_2_filter_fx64(
        in = pIn_Out_fx[i];
        move32();

        shift = sub( filter_state->num_q[stage][0], 31 ); // (q + numq - 31) - q
        shift = sub( filter_state->num_q[stage][0], 30 );
        tmp_prod = W_shr( Mpy_64_32( in, filter_state->num_fx[stage][0] ), shift );

        pIn_Out_fx[i] = out = W_add( filter_state->state64_fx[stage][0], tmp_prod );
        out = W_add( filter_state->state64_fx[stage][0], tmp_prod );
        pIn_Out_fx[i] = W_shl( out, 1 );
        move32();

        FOR( j = 1; j < filter_state->filt_len; j++ )
        {
            shift = sub( filter_state->num_q[stage][j], 31 );
            shift = sub( filter_state->num_q[stage][j], 30 );
            tmp_prod = W_shr( Mpy_64_32( in, filter_state->num_fx[stage][j] ), shift );

            tmp = W_add( filter_state->state64_fx[stage][j], tmp_prod );

            shift = sub( filter_state->den_q[stage][j], 31 );
            shift = sub( filter_state->den_q[stage][j], 30 );
            tmp_prod = W_shr( Mpy_64_32( out, filter_state->den_fx[stage][j] ), shift );

            filter_state->state64_fx[stage][j - 1] = W_sub( tmp, tmp_prod );