Commit c280a982 authored by Nicolas Roussin's avatar Nicolas Roussin
Browse files

Tidy up code.

parent 192c9dc2
Loading
Loading
Loading
Loading
Loading
+48 −61
Original line number Diff line number Diff line
@@ -64,43 +64,42 @@ void ivas_filters_init_fx(
        FOR( i = 0; i < IVAS_BIQUAD_FILT_LEN; i++ )
        {
            filter_state->num_fx[IVAS_FILTER_STAGE_0][i] = filt_coeff_fx[i];
            filter_state->num_e[IVAS_FILTER_STAGE_0][i] = 1;
            filter_state->den_fx[IVAS_FILTER_STAGE_0][i] = filt_coeff_fx[i + IVAS_BIQUAD_FILT_LEN];
            filter_state->den_e[IVAS_FILTER_STAGE_0][i] = 1;
            move32();
            move32();
            move16();
            move16();
#ifdef OPT_2239_IVAS_FILTER_PROCESS
            filter_state->num_q[IVAS_FILTER_STAGE_0][i] = Q30;
            filter_state->den_q[IVAS_FILTER_STAGE_0][i] = Q30;
            move16();
            move16();
#else
            filter_state->num_e[IVAS_FILTER_STAGE_0][i] = 1;
            filter_state->den_e[IVAS_FILTER_STAGE_0][i] = 1;
            move16();
            move16();
#endif
        }

#ifdef OPT_2239_IVAS_FILTER_PROCESS
        filter_state->state64_fx[IVAS_FILTER_STAGE_0][0] = 0;
        filter_state->state64_fx[IVAS_FILTER_STAGE_0][1] = 0;
        filter_state->state64_fx[IVAS_FILTER_STAGE_0][2] = 0;
        move64();
        move64();
        move64();
#else
        filter_state->state_fx[0][0] = 0;
        filter_state->state_e[0][0] = 0;
        filter_state->state_fx[0][1] = 0;
        filter_state->state_e[0][1] = 0;
        filter_state->state_fx[0][2] = 0;
        filter_state->state_e[0][2] = 0;
        move32();
        move32();
        move32();
        filter_state->state_e[0][0] = 0;
        filter_state->state_e[0][1] = 0;
        filter_state->state_e[0][2] = 0;
        move16();
        move16();
        move16();

#ifdef OPT_2239_IVAS_FILTER_PROCESS
        filter_state->state64_fx[IVAS_FILTER_STAGE_0][0] = 0;
        filter_state->state64_fx[IVAS_FILTER_STAGE_0][1] = 0;
        filter_state->state64_fx[IVAS_FILTER_STAGE_0][2] = 0;
        move64();
        move64();
        move64();
        filter_state->state64_q[IVAS_FILTER_STAGE_0] = Q30;
        move16();
#endif
    }
    ELSE
@@ -108,30 +107,16 @@ void ivas_filters_init_fx(
        filter_state->filt_len = IVAS_BIQUAD_FILT_LEN;
        move16();

#ifdef OPT_2239_IVAS_FILTER_PROCESS
        filter_state->state64_q[IVAS_FILTER_STAGE_0] = 63;
        filter_state->state64_q[IVAS_FILTER_STAGE_1] = 63;
#endif

        FOR( i = 0; i < IVAS_BIQUAD_FILT_LEN; i++ )
        {

            filter_state->num_fx[IVAS_FILTER_STAGE_0][i] = filt_coeff_fx[i];
            filter_state->num_e[IVAS_FILTER_STAGE_0][i] = filt_coeff_e[i];
            filter_state->den_fx[IVAS_FILTER_STAGE_0][i] = filt_coeff_fx[i + IVAS_BIQUAD_FILT_LEN];
            filter_state->den_e[IVAS_FILTER_STAGE_0][i] = filt_coeff_e[i + IVAS_BIQUAD_FILT_LEN];
            filter_state->num_fx[IVAS_FILTER_STAGE_1][i] = filt_coeff_fx[i + IVAS_BIQUAD_FILT_LEN * 2];
            filter_state->num_e[IVAS_FILTER_STAGE_1][i] = filt_coeff_e[i + IVAS_BIQUAD_FILT_LEN * 2];
            filter_state->den_fx[IVAS_FILTER_STAGE_1][i] = filt_coeff_fx[i + IVAS_BIQUAD_FILT_LEN * 3];
            filter_state->den_e[IVAS_FILTER_STAGE_1][i] = filt_coeff_e[i + IVAS_BIQUAD_FILT_LEN * 3];
            move32();
            move32();
            move32();
            move32();
            move16();
            move16();
            move16();
            move16();
#ifdef OPT_2239_IVAS_FILTER_PROCESS
            filter_state->num_q[IVAS_FILTER_STAGE_0][i] = sub( 31, filt_coeff_e[i + 0 * IVAS_BIQUAD_FILT_LEN] );
            filter_state->den_q[IVAS_FILTER_STAGE_0][i] = sub( 31, filt_coeff_e[i + 1 * IVAS_BIQUAD_FILT_LEN] );
@@ -141,10 +126,11 @@ void ivas_filters_init_fx(
            move16();
            move16();
            move16();
            filter_state->state64_q[IVAS_FILTER_STAGE_0] = s_min( filter_state->state64_q[IVAS_FILTER_STAGE_0], filter_state->num_q[IVAS_FILTER_STAGE_0][i] );
            filter_state->state64_q[IVAS_FILTER_STAGE_0] = s_min( filter_state->state64_q[IVAS_FILTER_STAGE_0], filter_state->den_q[IVAS_FILTER_STAGE_0][i] );
            filter_state->state64_q[IVAS_FILTER_STAGE_1] = s_min( filter_state->state64_q[IVAS_FILTER_STAGE_1], filter_state->num_q[IVAS_FILTER_STAGE_1][i] );
            filter_state->state64_q[IVAS_FILTER_STAGE_1] = s_min( filter_state->state64_q[IVAS_FILTER_STAGE_1], filter_state->den_q[IVAS_FILTER_STAGE_1][i] );
#else
            filter_state->num_e[IVAS_FILTER_STAGE_0][i] = filt_coeff_e[i];
            filter_state->den_e[IVAS_FILTER_STAGE_0][i] = filt_coeff_e[i + IVAS_BIQUAD_FILT_LEN];
            filter_state->num_e[IVAS_FILTER_STAGE_1][i] = filt_coeff_e[i + IVAS_BIQUAD_FILT_LEN * 2];
            filter_state->den_e[IVAS_FILTER_STAGE_1][i] = filt_coeff_e[i + IVAS_BIQUAD_FILT_LEN * 3];
            move16();
            move16();
            move16();
@@ -152,44 +138,44 @@ void ivas_filters_init_fx(
#endif
        }

#ifdef OPT_2239_IVAS_FILTER_PROCESS
        filter_state->state64_fx[IVAS_FILTER_STAGE_0][0] = 0;
        filter_state->state64_fx[IVAS_FILTER_STAGE_0][1] = 0;
        filter_state->state64_fx[IVAS_FILTER_STAGE_0][2] = 0;
        filter_state->state64_fx[IVAS_FILTER_STAGE_1][0] = 0;
        filter_state->state64_fx[IVAS_FILTER_STAGE_1][1] = 0;
        filter_state->state64_fx[IVAS_FILTER_STAGE_1][2] = 0;
        move64();
        move64();
        move64();
        move64();
        move64();
        move64();
#else
        filter_state->state_fx[0][0] = 0;
        filter_state->state_e[0][0] = 0;
        filter_state->state_fx[0][1] = 0;
        filter_state->state_e[0][1] = 0;
        filter_state->state_fx[0][2] = 0;
        filter_state->state_e[0][2] = 0;
        filter_state->state_fx[1][0] = 0;
        filter_state->state_e[1][0] = 0;
        filter_state->state_fx[1][1] = 0;
        filter_state->state_e[1][1] = 0;
        filter_state->state_fx[1][2] = 0;
        filter_state->state_e[1][2] = 0;
        move32();
        move32();
        move32();
        move32();
        move32();
        move32();
        filter_state->state_e[0][0] = 0;
        filter_state->state_e[0][1] = 0;
        filter_state->state_e[0][2] = 0;
        filter_state->state_e[1][0] = 0;
        filter_state->state_e[1][1] = 0;
        filter_state->state_e[1][2] = 0;
        move16();
        move16();
        move16();
        move16();
        move16();
        move16();

#ifdef OPT_2239_IVAS_FILTER_PROCESS
        filter_state->state64_fx[IVAS_FILTER_STAGE_0][0] = 0;
        filter_state->state64_fx[IVAS_FILTER_STAGE_0][1] = 0;
        filter_state->state64_fx[IVAS_FILTER_STAGE_0][2] = 0;
        filter_state->state64_fx[IVAS_FILTER_STAGE_1][0] = 0;
        filter_state->state64_fx[IVAS_FILTER_STAGE_1][1] = 0;
        filter_state->state64_fx[IVAS_FILTER_STAGE_1][2] = 0;
        move64();
        move64();
        move64();
        move64();
        move64();
        move64();
#endif
    }

@@ -240,28 +226,29 @@ static void ivas_iir_2_filter_fx32(
{
    Word64 tmp_prod, tmp;
    Word32 in, out;
    Word16 i, j, shift;
    Word16 i, j, shift, state_q;

    state_q = add( q, 32 );

    FOR( i = 0; i < length; i++ )
    {
        in = pIn_Out_fx[i];
        move32();

        shift = filter_state->num_q[stage][0] + q - filter_state->state64_q[stage];
        shift = filter_state->num_q[stage][0] + q - state_q;
        tmp_prod = W_shr( W_mult0_32_32( filter_state->num_fx[stage][0], in ), shift );

        shift = sub( filter_state->state64_q[stage], q );
        pIn_Out_fx[i] = out = W_extract_l( W_shr( W_add( filter_state->state64_fx[stage][0], tmp_prod ), shift ) );
        pIn_Out_fx[i] = out = W_extract_l( W_add( filter_state->state64_fx[stage][0], tmp_prod ) );
        move32();

        FOR( j = 1; j < filter_state->filt_len; j++ )
        {
            shift = filter_state->num_q[stage][j] + q - filter_state->state64_q[stage];
            shift = filter_state->num_q[stage][j] + q - state_q;
            tmp_prod = W_shr( W_mult0_32_32( filter_state->num_fx[stage][j], in ), shift );

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

            shift = filter_state->den_q[stage][j] + q - filter_state->state64_q[stage];
            shift = filter_state->den_q[stage][j] + q - state_q;
            tmp_prod = W_shr( W_mult0_32_32( filter_state->den_fx[stage][j], out ), shift );

            filter_state->state64_fx[stage][j - 1] = W_sub( tmp, tmp_prod );
+5 −9
Original line number Diff line number Diff line
@@ -656,16 +656,15 @@ typedef struct ivas_filters_process_state_t
    Word16 filt_len;
    Word32 num_fx[IVAS_FILTER_MAX_STAGES][IVAS_BIQUAD_FILT_LEN];
    Word32 den_fx[IVAS_FILTER_MAX_STAGES][IVAS_BIQUAD_FILT_LEN];
    Word32 state_fx[IVAS_FILTER_MAX_STAGES][IVAS_BIQUAD_FILT_LEN];
    Word16 num_e[IVAS_FILTER_MAX_STAGES][IVAS_BIQUAD_FILT_LEN];
    Word16 den_e[IVAS_FILTER_MAX_STAGES][IVAS_BIQUAD_FILT_LEN];
    Word16 state_e[IVAS_FILTER_MAX_STAGES][IVAS_BIQUAD_FILT_LEN];

#ifdef OPT_2239_IVAS_FILTER_PROCESS
    Word64 state64_fx[IVAS_FILTER_MAX_STAGES][IVAS_BIQUAD_FILT_LEN];
    Word16 num_q[IVAS_FILTER_MAX_STAGES][IVAS_BIQUAD_FILT_LEN];
    Word16 den_q[IVAS_FILTER_MAX_STAGES][IVAS_BIQUAD_FILT_LEN];
    Word16 state64_q[IVAS_FILTER_MAX_STAGES];
#else
    Word32 state_fx[IVAS_FILTER_MAX_STAGES][IVAS_BIQUAD_FILT_LEN];
    Word16 num_e[IVAS_FILTER_MAX_STAGES][IVAS_BIQUAD_FILT_LEN];
    Word16 den_e[IVAS_FILTER_MAX_STAGES][IVAS_BIQUAD_FILT_LEN];
    Word16 state_e[IVAS_FILTER_MAX_STAGES][IVAS_BIQUAD_FILT_LEN];
#endif

} ivas_filters_process_state_t;
@@ -680,9 +679,6 @@ typedef struct ivas_trans_det_state_t
    ivas_filters_process_state_t env_hpf;
    ivas_filters_process_state_t env_fast;
    ivas_filters_process_state_t env_slow;
    ivas_filters_process_state_t test_env_hpf;
    ivas_filters_process_state_t test_env_fast;
    ivas_filters_process_state_t test_env_slow;
    Word32 in_duck_coeff;
    Word32 out_duck_coeff;
    Word32 in_duck_gain;
+0 −3
Original line number Diff line number Diff line
@@ -229,9 +229,6 @@ static void ivas_transient_det_init(
    ivas_filters_init_fx( &hTranDet->env_hpf, (const Word32 *) filt_coeff_arr_fx[0], filt_coeff_arr_e, IVAS_FILTER_ORDER_1 );
    ivas_filters_init_fx( &hTranDet->env_fast, (const Word32 *) filt_coeff_arr_fx[1], filt_coeff_arr_e, IVAS_FILTER_ORDER_1 );
    ivas_filters_init_fx( &hTranDet->env_slow, (const Word32 *) filt_coeff_arr_fx[2], filt_coeff_arr_e, IVAS_FILTER_ORDER_1 );
    ivas_filters_init_fx( &hTranDet->test_env_hpf, (const Word32 *) filt_coeff_arr_fx[0], filt_coeff_arr_e, IVAS_FILTER_ORDER_1 );
    ivas_filters_init_fx( &hTranDet->test_env_fast, (const Word32 *) filt_coeff_arr_fx[1], filt_coeff_arr_e, IVAS_FILTER_ORDER_1 );
    ivas_filters_init_fx( &hTranDet->test_env_slow, (const Word32 *) filt_coeff_arr_fx[2], filt_coeff_arr_e, IVAS_FILTER_ORDER_1 );

    hTranDet->duck_mult_fac = IVAS_TDET_DUCK_MULT_FAC; /*Q29*/
    move32();