Commit 4599af5b authored by malenov's avatar malenov
Browse files

alternative fix to prevent excessive re-scaling of BWE excitation signal

parent fd0cc99c
Loading
Loading
Loading
Loading
Loading
+4 −1
Original line number Original line Diff line number Diff line
@@ -1410,8 +1410,11 @@ void non_linearity(
        scale = 0.67f;
        scale = 0.67f;
    }
    }



#ifdef NONBE_1328_FIX_NON_LINEARITY
    if ( *prev_scale <= 0.0 || *prev_scale > 256.0f * scale )
#else
    if ( *prev_scale <= 0.0 || *prev_scale > 1024.0f * scale )
    if ( *prev_scale <= 0.0 || *prev_scale > 1024.0f * scale )
#endif
    {
    {
        scale_step = 1.0;
        scale_step = 1.0;
        *prev_scale = scale;
        *prev_scale = scale;
+0 −6
Original line number Original line Diff line number Diff line
@@ -1424,12 +1424,6 @@ ivas_error acelp_core_dec(


        if ( !st->ppp_mode_dec && ( st->idchan == 0 || st->element_mode != IVAS_CPE_TD || ( st->idchan == 1 && st->element_mode == IVAS_CPE_TD && st->tdm_LRTD_flag ) ) )
        if ( !st->ppp_mode_dec && ( st->idchan == 0 || st->element_mode != IVAS_CPE_TD || ( st->idchan == 1 && st->element_mode == IVAS_CPE_TD && st->tdm_LRTD_flag ) ) )
        {
        {
#ifdef NONBE_1328_FIX_NON_LINEARITY
            if ( st->hBWE_TD->bwe_non_lin_prev_scale > 0.1f && st->element_mode > EVS_MONO && ( st->coder_type <= UNVOICED ) )
            {
                st->hBWE_TD->bwe_non_lin_prev_scale = 0.025f;
            }
#endif
            non_linearity( bwe_exc, bwe_exc_extended, st->hBWE_TD->old_bwe_exc_extended, L_FRAME32k, &st->hBWE_TD->bwe_non_lin_prev_scale, st->coder_type, voice_factors, st->L_frame );
            non_linearity( bwe_exc, bwe_exc_extended, st->hBWE_TD->old_bwe_exc_extended, L_FRAME32k, &st->hBWE_TD->bwe_non_lin_prev_scale, st->coder_type, voice_factors, st->L_frame );
        }
        }


+0 −6
Original line number Original line Diff line number Diff line
@@ -701,12 +701,6 @@ ivas_error acelp_core_enc(


        if ( !st->Opt_SC_VBR && ( st->idchan == 0 || st->element_mode != IVAS_CPE_TD || ( st->idchan == 1 && st->element_mode == IVAS_CPE_TD && st->tdm_LRTD_flag ) ) )
        if ( !st->Opt_SC_VBR && ( st->idchan == 0 || st->element_mode != IVAS_CPE_TD || ( st->idchan == 1 && st->element_mode == IVAS_CPE_TD && st->tdm_LRTD_flag ) ) )
        {
        {
#ifdef NONBE_1328_FIX_NON_LINEARITY
            if ( st->hBWE_TD->bwe_non_lin_prev_scale > 0.1f && st->element_mode > EVS_MONO && ( st->coder_type <= UNVOICED ) )
            {
                st->hBWE_TD->bwe_non_lin_prev_scale = 0.025f;
            }
#endif
            /* Apply a non linearity to the SHB excitation */
            /* Apply a non linearity to the SHB excitation */
            non_linearity( bwe_exc, bwe_exc_extended, st->hBWE_TD->old_bwe_exc_extended, L_FRAME32k, &st->hBWE_TD->bwe_non_lin_prev_scale, st->coder_type, voice_factors, st->L_frame );
            non_linearity( bwe_exc, bwe_exc_extended, st->hBWE_TD->old_bwe_exc_extended, L_FRAME32k, &st->hBWE_TD->bwe_non_lin_prev_scale, st->coder_type, voice_factors, st->L_frame );
        }
        }