Loading lib_dec/cng_dec_fx.c +16 −6 Original line number Diff line number Diff line Loading @@ -1233,7 +1233,7 @@ static void shb_CNG_decod_ivas_fx( gain_fx16 = sub( hTdCngDec->wb_cng_ener_fx, hTdCngDec->last_wb_cng_ener_fx ); /* Q8 */ if ( GT_16( gain_fx16, 15 ) ) { gain_fx = 15; gain_fx16 = 15; move16(); } step_fx16 = sub( add( gain_fx16, hTdCngDec->last_shb_cng_ener_fx ), hTdCngDec->shb_cng_ener_fx ); /*Q8 */ Loading Loading @@ -1336,7 +1336,6 @@ static void shb_CNG_decod_ivas_fx( /* synthesis filtering */ Syn_filt_s( 0, shb_lpcCNG_fx, LPC_SHB_ORDER, excTmp_fx, excSHB_fx, L_FRAME16k, hBWE_TD->state_lpc_syn_fx, 1 ); /* synthesis signal gain shaping */ L_tmp = 0; move32(); Loading Loading @@ -1405,12 +1404,12 @@ static void shb_CNG_decod_ivas_fx( tmp_16 = div_s( fra, tmp_16 ); /*Q15*/ L_tmp = L_deposit_h( tmp_16 ); /*Q31 */ tmp = sub( add( 5, exp ), add( q, exp1 ) ); tmp_16 = sub( add( 5, exp ), add( q, exp1 ) ); L_gain_fx = Isqrt_lc( L_tmp, &tmp_16 ); /*Q31-Qtmp */ } ELSE #endif { #endif ener_fx = hTdCngDec->shb_cng_ener_fx_32; move32(); /*Q11 */ IF( GT_16( st->hTdCngDec->trans_cnt_fx, 0 ) ) Loading Loading @@ -1463,7 +1462,9 @@ static void shb_CNG_decod_ivas_fx( L_gain_fx = Isqrt_lc( L_tmp, &tmp_16 ); /*Q31-Qtmp */ hTdCngDec->shb_cng_gain_fx_32 = ener_fx; move32(); #ifdef HARM_NON_LINEARITY } #endif FOR( i = 0; i < L_FRAME16k; i++ ) { Loading Loading @@ -1496,10 +1497,19 @@ static void shb_CNG_decod_ivas_fx( #ifdef HARM_NON_LINEARITY IF( st->element_mode != EVS_MONO ) #endif { IF( EQ_32( st->output_Fs, 32000 ) ) { Scale_sig( shb_synth_fx, L_FRAME32k, -3 ); /* Qx - 3 */ } ELSE { Scale_sig( shb_synth_fx, L_FRAME48k, -3 ); /* Qx - 3 */ } } #else Scale_sig( shb_synth_fx, L_FRAME48k, -3 ); /* Qx - 3 */ #endif ResetSHBbuffer_Dec_fx( st->hBWE_TD, st->extl ); Loading lib_dec/ivas_core_dec_fx.c +9 −1 Original line number Diff line number Diff line Loading @@ -1181,7 +1181,11 @@ ivas_error ivas_core_dec_fx( q = 2; move16(); #ifdef HARM_NON_LINEARITY Copy_Scale_sig_32_16( hb_synth_32_fx[n], hb_synth_16_fx[n], output_frame, -( Q11 ) ); // Q0 #else Copy_Scale_sig_32_16( hb_synth_32_fx[n], hb_synth_16_fx[n], L_FRAME48k, -( Q11 ) ); // Q0 #endif Copy_Scale_sig_32_16( synth_32_fx[n], synth_fxl, output_frame, negate( add( Q11, q ) ) ); // Q0 Scale_sig( hBWE_TD->state_lpc_syn_fx, LPC_SHB_ORDER, sub( Q8, hBWE_TD->prev_Q_bwe_syn ) ); // Q8 Copy_Scale_sig_32_16( hBWE_TD->genSHBsynth_state_lsyn_filt_shb_local_fx_32, hBWE_TD->genSHBsynth_state_lsyn_filt_shb_local_fx, ( 2 * ALLPASSSECTIONS_STEEP ), sub( hBWE_TD->prev_Q_bwe_syn2, Q11 ) ); // prev_Q_bew_syn2 Loading @@ -1195,7 +1199,11 @@ ivas_error ivas_core_dec_fx( test(); IF( st->core_brate == FRAME_NO_DATA || EQ_32( st->core_brate, SID_2k40 ) ) { #ifdef HARM_NON_LINEARITY Copy_Scale_sig_16_32_DEPREC( hb_synth_16_fx[n], hb_synth_32_fx[n], output_frame, ( Q11 ) ); // Q11 #else Copy_Scale_sig_16_32_DEPREC( hb_synth_16_fx[n], hb_synth_32_fx[n], L_FRAME48k, ( Q11 ) ); // Q11 #endif } Scale_sig( hBWE_TD->state_lpc_syn_fx, LPC_SHB_ORDER, negate( sub( Q8, hBWE_TD->prev_Q_bwe_syn ) ) ); // Q0 Loading lib_enc/cng_enc_fx.c +15 −2 Original line number Diff line number Diff line Loading @@ -3302,7 +3302,11 @@ static Word16 shb_DTX_ivas_fx( update = 1; move16(); } #ifdef HARM_NON_LINEARITY ELSE IF( st->element_mode != EVS_MONO && hTdCngEnc->shb_cng_ini_cnt > 0 ) #else ELSE IF( hTdCngEnc->shb_cng_ini_cnt > 0 ) #endif { hTdCngEnc->shb_cng_ini_cnt = sub( hTdCngEnc->shb_cng_ini_cnt, 1 ); update = 1; Loading @@ -3319,6 +3323,15 @@ static Word16 shb_DTX_ivas_fx( update = 1; move16(); } #ifdef HARM_NON_LINEARITY ELSE IF( st->element_mode == EVS_MONO && hTdCngEnc->shb_cng_ini_cnt > 0 ) { hTdCngEnc->shb_cng_ini_cnt = sub( hTdCngEnc->shb_cng_ini_cnt, 1 ); update = 1; move16(); move16(); } #endif ELSE IF( GT_16( abs_s( sub( sub( hTdCngEnc->mov_wb_cng_ener_fx, hTdCngEnc->mov_shb_cng_ener_fx ), sub( hTdCngEnc->last_wb_cng_ener_fx, hTdCngEnc->last_shb_cng_ener_fx ) ) ), 768 ) ) { update = 1; Loading Loading
lib_dec/cng_dec_fx.c +16 −6 Original line number Diff line number Diff line Loading @@ -1233,7 +1233,7 @@ static void shb_CNG_decod_ivas_fx( gain_fx16 = sub( hTdCngDec->wb_cng_ener_fx, hTdCngDec->last_wb_cng_ener_fx ); /* Q8 */ if ( GT_16( gain_fx16, 15 ) ) { gain_fx = 15; gain_fx16 = 15; move16(); } step_fx16 = sub( add( gain_fx16, hTdCngDec->last_shb_cng_ener_fx ), hTdCngDec->shb_cng_ener_fx ); /*Q8 */ Loading Loading @@ -1336,7 +1336,6 @@ static void shb_CNG_decod_ivas_fx( /* synthesis filtering */ Syn_filt_s( 0, shb_lpcCNG_fx, LPC_SHB_ORDER, excTmp_fx, excSHB_fx, L_FRAME16k, hBWE_TD->state_lpc_syn_fx, 1 ); /* synthesis signal gain shaping */ L_tmp = 0; move32(); Loading Loading @@ -1405,12 +1404,12 @@ static void shb_CNG_decod_ivas_fx( tmp_16 = div_s( fra, tmp_16 ); /*Q15*/ L_tmp = L_deposit_h( tmp_16 ); /*Q31 */ tmp = sub( add( 5, exp ), add( q, exp1 ) ); tmp_16 = sub( add( 5, exp ), add( q, exp1 ) ); L_gain_fx = Isqrt_lc( L_tmp, &tmp_16 ); /*Q31-Qtmp */ } ELSE #endif { #endif ener_fx = hTdCngDec->shb_cng_ener_fx_32; move32(); /*Q11 */ IF( GT_16( st->hTdCngDec->trans_cnt_fx, 0 ) ) Loading Loading @@ -1463,7 +1462,9 @@ static void shb_CNG_decod_ivas_fx( L_gain_fx = Isqrt_lc( L_tmp, &tmp_16 ); /*Q31-Qtmp */ hTdCngDec->shb_cng_gain_fx_32 = ener_fx; move32(); #ifdef HARM_NON_LINEARITY } #endif FOR( i = 0; i < L_FRAME16k; i++ ) { Loading Loading @@ -1496,10 +1497,19 @@ static void shb_CNG_decod_ivas_fx( #ifdef HARM_NON_LINEARITY IF( st->element_mode != EVS_MONO ) #endif { IF( EQ_32( st->output_Fs, 32000 ) ) { Scale_sig( shb_synth_fx, L_FRAME32k, -3 ); /* Qx - 3 */ } ELSE { Scale_sig( shb_synth_fx, L_FRAME48k, -3 ); /* Qx - 3 */ } } #else Scale_sig( shb_synth_fx, L_FRAME48k, -3 ); /* Qx - 3 */ #endif ResetSHBbuffer_Dec_fx( st->hBWE_TD, st->extl ); Loading
lib_dec/ivas_core_dec_fx.c +9 −1 Original line number Diff line number Diff line Loading @@ -1181,7 +1181,11 @@ ivas_error ivas_core_dec_fx( q = 2; move16(); #ifdef HARM_NON_LINEARITY Copy_Scale_sig_32_16( hb_synth_32_fx[n], hb_synth_16_fx[n], output_frame, -( Q11 ) ); // Q0 #else Copy_Scale_sig_32_16( hb_synth_32_fx[n], hb_synth_16_fx[n], L_FRAME48k, -( Q11 ) ); // Q0 #endif Copy_Scale_sig_32_16( synth_32_fx[n], synth_fxl, output_frame, negate( add( Q11, q ) ) ); // Q0 Scale_sig( hBWE_TD->state_lpc_syn_fx, LPC_SHB_ORDER, sub( Q8, hBWE_TD->prev_Q_bwe_syn ) ); // Q8 Copy_Scale_sig_32_16( hBWE_TD->genSHBsynth_state_lsyn_filt_shb_local_fx_32, hBWE_TD->genSHBsynth_state_lsyn_filt_shb_local_fx, ( 2 * ALLPASSSECTIONS_STEEP ), sub( hBWE_TD->prev_Q_bwe_syn2, Q11 ) ); // prev_Q_bew_syn2 Loading @@ -1195,7 +1199,11 @@ ivas_error ivas_core_dec_fx( test(); IF( st->core_brate == FRAME_NO_DATA || EQ_32( st->core_brate, SID_2k40 ) ) { #ifdef HARM_NON_LINEARITY Copy_Scale_sig_16_32_DEPREC( hb_synth_16_fx[n], hb_synth_32_fx[n], output_frame, ( Q11 ) ); // Q11 #else Copy_Scale_sig_16_32_DEPREC( hb_synth_16_fx[n], hb_synth_32_fx[n], L_FRAME48k, ( Q11 ) ); // Q11 #endif } Scale_sig( hBWE_TD->state_lpc_syn_fx, LPC_SHB_ORDER, negate( sub( Q8, hBWE_TD->prev_Q_bwe_syn ) ) ); // Q0 Loading
lib_enc/cng_enc_fx.c +15 −2 Original line number Diff line number Diff line Loading @@ -3302,7 +3302,11 @@ static Word16 shb_DTX_ivas_fx( update = 1; move16(); } #ifdef HARM_NON_LINEARITY ELSE IF( st->element_mode != EVS_MONO && hTdCngEnc->shb_cng_ini_cnt > 0 ) #else ELSE IF( hTdCngEnc->shb_cng_ini_cnt > 0 ) #endif { hTdCngEnc->shb_cng_ini_cnt = sub( hTdCngEnc->shb_cng_ini_cnt, 1 ); update = 1; Loading @@ -3319,6 +3323,15 @@ static Word16 shb_DTX_ivas_fx( update = 1; move16(); } #ifdef HARM_NON_LINEARITY ELSE IF( st->element_mode == EVS_MONO && hTdCngEnc->shb_cng_ini_cnt > 0 ) { hTdCngEnc->shb_cng_ini_cnt = sub( hTdCngEnc->shb_cng_ini_cnt, 1 ); update = 1; move16(); move16(); } #endif ELSE IF( GT_16( abs_s( sub( sub( hTdCngEnc->mov_wb_cng_ener_fx, hTdCngEnc->mov_shb_cng_ener_fx ), sub( hTdCngEnc->last_wb_cng_ener_fx, hTdCngEnc->last_shb_cng_ener_fx ) ) ), 768 ) ) { update = 1; Loading