Loading lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -170,6 +170,8 @@ /* #################### Start NON-BE switches ############################ */ /* any switch which is non-be wrt. TS 26.258 V3.0 */ #define FIX_2432_ISM_SPIKES_16KHZ /* VA: basop issue 2432: fix spikes in ISM decoding at 16kHz output sampling rate */ /* ##################### End NON-BE switches ########################### */ /* ################## End MAINTENANCE switches ######################### */ Loading lib_dec/ivas_core_dec.c +16 −0 Original line number Diff line number Diff line Loading @@ -76,7 +76,11 @@ ivas_error ivas_core_dec( float tmp_buffer[L_FRAME48k]; int16_t tmps, incr; float *bwe_exc_extended[CPE_CHANNELS] = { NULL, NULL }; #ifdef FIX_2432_ISM_SPIKES_16KHZ int16_t flag_bwe_bws, flag_swb_tbe; #else int16_t flag_bwe_bws; #endif float voice_factors[CPE_CHANNELS][NB_SUBFR16k]; int16_t core_switching_flag[CPE_CHANNELS]; float old_syn_12k8_16k[CPE_CHANNELS][L_FRAME16k]; Loading Loading @@ -513,9 +517,16 @@ ivas_error ivas_core_dec( * SWB(FB) BWE decoding *---------------------------------------------------------------------*/ #ifdef FIX_2432_ISM_SPIKES_16KHZ flag_swb_tbe = ( st->extl == SWB_TBE || st->extl == FB_TBE || ( st->coder_type != AUDIO && st->coder_type != INACTIVE && st->core_brate >= SID_2k40 && st->core == ACELP_CORE && !st->con_tcx && output_Fs >= 32000 && st->bwidth > NB && st->bws_cnt > 0 ) ); #endif flag_bwe_bws = ( output_Fs >= 32000 && st->core == ACELP_CORE && st->bwidth > NB && st->bws_cnt > 0 && st->bfi == 0 ); #ifdef FIX_2432_ISM_SPIKES_16KHZ if ( flag_swb_tbe ) #else if ( st->extl == SWB_TBE || st->extl == FB_TBE || ( st->coder_type != AUDIO && st->coder_type != INACTIVE && st->core_brate >= SID_2k40 && st->core == ACELP_CORE && !st->con_tcx && output_Fs >= 32000 && st->bwidth > NB && st->bws_cnt > 0 ) ) #endif { /* SWB TBE decoder */ swb_tbe_dec( st, hStereoICBWE, bwe_exc_extended[n], voice_factors[n], old_syn_12k8_16k[n], tmp_buffer /*fb_exc*/, hb_synth[n], pitch_buf[n] ); Loading @@ -532,7 +543,12 @@ ivas_error ivas_core_dec( swb_bwe_dec( st, output[n], synth[n], hb_synth[n], use_cldfb_for_dft, output_frame ); } #ifdef FIX_2432_ISM_SPIKES_16KHZ /* set hb_synth[n] buffer to zeros in case of no BWE decoding */ if ( ( st->core == ACELP_CORE && ( st->extl == -1 || st->extl == SWB_CNG || ( st->extl == WB_BWE && st->bws_cnt > 0 && flag_swb_tbe == 0 ) ) ) && flag_bwe_bws == 0 ) #else if ( ( st->core == ACELP_CORE && ( st->extl == -1 || st->extl == SWB_CNG ) ) && flag_bwe_bws == 0 ) #endif { set_f( hb_synth[n], 0.0f, L_FRAME48k ); } Loading Loading
lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -170,6 +170,8 @@ /* #################### Start NON-BE switches ############################ */ /* any switch which is non-be wrt. TS 26.258 V3.0 */ #define FIX_2432_ISM_SPIKES_16KHZ /* VA: basop issue 2432: fix spikes in ISM decoding at 16kHz output sampling rate */ /* ##################### End NON-BE switches ########################### */ /* ################## End MAINTENANCE switches ######################### */ Loading
lib_dec/ivas_core_dec.c +16 −0 Original line number Diff line number Diff line Loading @@ -76,7 +76,11 @@ ivas_error ivas_core_dec( float tmp_buffer[L_FRAME48k]; int16_t tmps, incr; float *bwe_exc_extended[CPE_CHANNELS] = { NULL, NULL }; #ifdef FIX_2432_ISM_SPIKES_16KHZ int16_t flag_bwe_bws, flag_swb_tbe; #else int16_t flag_bwe_bws; #endif float voice_factors[CPE_CHANNELS][NB_SUBFR16k]; int16_t core_switching_flag[CPE_CHANNELS]; float old_syn_12k8_16k[CPE_CHANNELS][L_FRAME16k]; Loading Loading @@ -513,9 +517,16 @@ ivas_error ivas_core_dec( * SWB(FB) BWE decoding *---------------------------------------------------------------------*/ #ifdef FIX_2432_ISM_SPIKES_16KHZ flag_swb_tbe = ( st->extl == SWB_TBE || st->extl == FB_TBE || ( st->coder_type != AUDIO && st->coder_type != INACTIVE && st->core_brate >= SID_2k40 && st->core == ACELP_CORE && !st->con_tcx && output_Fs >= 32000 && st->bwidth > NB && st->bws_cnt > 0 ) ); #endif flag_bwe_bws = ( output_Fs >= 32000 && st->core == ACELP_CORE && st->bwidth > NB && st->bws_cnt > 0 && st->bfi == 0 ); #ifdef FIX_2432_ISM_SPIKES_16KHZ if ( flag_swb_tbe ) #else if ( st->extl == SWB_TBE || st->extl == FB_TBE || ( st->coder_type != AUDIO && st->coder_type != INACTIVE && st->core_brate >= SID_2k40 && st->core == ACELP_CORE && !st->con_tcx && output_Fs >= 32000 && st->bwidth > NB && st->bws_cnt > 0 ) ) #endif { /* SWB TBE decoder */ swb_tbe_dec( st, hStereoICBWE, bwe_exc_extended[n], voice_factors[n], old_syn_12k8_16k[n], tmp_buffer /*fb_exc*/, hb_synth[n], pitch_buf[n] ); Loading @@ -532,7 +543,12 @@ ivas_error ivas_core_dec( swb_bwe_dec( st, output[n], synth[n], hb_synth[n], use_cldfb_for_dft, output_frame ); } #ifdef FIX_2432_ISM_SPIKES_16KHZ /* set hb_synth[n] buffer to zeros in case of no BWE decoding */ if ( ( st->core == ACELP_CORE && ( st->extl == -1 || st->extl == SWB_CNG || ( st->extl == WB_BWE && st->bws_cnt > 0 && flag_swb_tbe == 0 ) ) ) && flag_bwe_bws == 0 ) #else if ( ( st->core == ACELP_CORE && ( st->extl == -1 || st->extl == SWB_CNG ) ) && flag_bwe_bws == 0 ) #endif { set_f( hb_synth[n], 0.0f, L_FRAME48k ); } Loading