Loading lib_enc/ivas_core_enc_fx.c +33 −2 Original line number Diff line number Diff line Loading @@ -697,9 +697,8 @@ ivas_error ivas_core_enc_fx( { /* Common pre-processing for SWB(FB) TBE and SWB(FB) BWE */ /* Scaling cldfb_state_fx */ scale_sig32( st->cldfbSynTd->cldfb_state_fx, st->cldfbSynTd->p_filter_length, sub( q_re_im_buf[n], st->cldfbSynTd->Q_cldfb_state ) ); // st->cldfbSynTd->Q_cldfb_state -> q_realImagBuffer #ifdef FIX_2021_BANDWIDTH_EXTENSION_PROBLEM Word16 scf_min = 31; Word16 shift, scf_cldfb, scf_min = 31; move16(); FOR( int i = 0; i < CLDFB_NO_COL_MAX; i++ ) { Loading @@ -712,11 +711,43 @@ ivas_error ivas_core_enc_fx( scale_sig32( imagBuffer_fx[n][i], CLDFB_NO_CHANNELS_MAX, scf_min ); } q_re_im_buf[n] = add( q_re_im_buf[n], scf_min ); scf_cldfb = L_norm_arr( st->cldfbSynTd->cldfb_state_fx, st->cldfbSynTd->p_filter_length ); IF( NE_32( scf_cldfb, 31 ) ) { scale_sig32( st->cldfbSynTd->cldfb_state_fx, st->cldfbSynTd->p_filter_length, scf_cldfb ); // st->cldfbSynTd->Q_cldfb_state -> q_realImagBuffer st->cldfbSynTd->Q_cldfb_state = add( st->cldfbSynTd->Q_cldfb_state, scf_cldfb ); shift = sub( st->cldfbSynTd->Q_cldfb_state, sub( q_re_im_buf[n], 1 ) ); IF( GT_32( sub( q_re_im_buf[n], 1 ), st->cldfbSynTd->Q_cldfb_state ) ) { FOR( int i = 0; i < CLDFB_NO_COL_MAX; i++ ) { scale_sig32( realBuffer_fx[n][i], CLDFB_NO_CHANNELS_MAX, shift ); scale_sig32( imagBuffer_fx[n][i], CLDFB_NO_CHANNELS_MAX, shift ); } q_re_im_buf[n] = add( st->cldfbSynTd->Q_cldfb_state, 1 ); } ELSE { scale_sig32( st->cldfbSynTd->cldfb_state_fx, st->cldfbSynTd->p_filter_length, negate( shift ) ); // st->cldfbSynTd->Q_cldfb_state -> q_realImagBuffer st->cldfbSynTd->Q_cldfb_state = q_re_im_buf[n]; } } #else scale_sig32( st->cldfbSynTd->cldfb_state_fx, st->cldfbSynTd->p_filter_length, sub( q_re_im_buf[n], st->cldfbSynTd->Q_cldfb_state ) ); // st->cldfbSynTd->Q_cldfb_state -> q_realImagBuffer #endif swb_pre_proc_ivas_fx( st, new_swb_speech_fx_16, new_swb_speech_fx, shb_speech_fx, &Q_shb_spch, realBuffer_fx[n], imagBuffer_fx[n], q_re_im_buf[n], hCPE ); #ifdef FIX_2021_BANDWIDTH_EXTENSION_PROBLEM st->cldfbSynTd->Q_cldfb_state = sub( q_re_im_buf[n], 1 ); #else /* Re-scaling cldfb_state_fx */ scale_sig32( st->cldfbSynTd->cldfb_state_fx, st->cldfbSynTd->p_filter_length, negate( sub( q_re_im_buf[n], st->cldfbSynTd->Q_cldfb_state ) ) ); // q_realImagBuffer -> st->cldfbSynTd->Q_cldfb_state #endif } ELSE IF( GE_32( input_Fs, 32000 ) ) { Loading Loading
lib_enc/ivas_core_enc_fx.c +33 −2 Original line number Diff line number Diff line Loading @@ -697,9 +697,8 @@ ivas_error ivas_core_enc_fx( { /* Common pre-processing for SWB(FB) TBE and SWB(FB) BWE */ /* Scaling cldfb_state_fx */ scale_sig32( st->cldfbSynTd->cldfb_state_fx, st->cldfbSynTd->p_filter_length, sub( q_re_im_buf[n], st->cldfbSynTd->Q_cldfb_state ) ); // st->cldfbSynTd->Q_cldfb_state -> q_realImagBuffer #ifdef FIX_2021_BANDWIDTH_EXTENSION_PROBLEM Word16 scf_min = 31; Word16 shift, scf_cldfb, scf_min = 31; move16(); FOR( int i = 0; i < CLDFB_NO_COL_MAX; i++ ) { Loading @@ -712,11 +711,43 @@ ivas_error ivas_core_enc_fx( scale_sig32( imagBuffer_fx[n][i], CLDFB_NO_CHANNELS_MAX, scf_min ); } q_re_im_buf[n] = add( q_re_im_buf[n], scf_min ); scf_cldfb = L_norm_arr( st->cldfbSynTd->cldfb_state_fx, st->cldfbSynTd->p_filter_length ); IF( NE_32( scf_cldfb, 31 ) ) { scale_sig32( st->cldfbSynTd->cldfb_state_fx, st->cldfbSynTd->p_filter_length, scf_cldfb ); // st->cldfbSynTd->Q_cldfb_state -> q_realImagBuffer st->cldfbSynTd->Q_cldfb_state = add( st->cldfbSynTd->Q_cldfb_state, scf_cldfb ); shift = sub( st->cldfbSynTd->Q_cldfb_state, sub( q_re_im_buf[n], 1 ) ); IF( GT_32( sub( q_re_im_buf[n], 1 ), st->cldfbSynTd->Q_cldfb_state ) ) { FOR( int i = 0; i < CLDFB_NO_COL_MAX; i++ ) { scale_sig32( realBuffer_fx[n][i], CLDFB_NO_CHANNELS_MAX, shift ); scale_sig32( imagBuffer_fx[n][i], CLDFB_NO_CHANNELS_MAX, shift ); } q_re_im_buf[n] = add( st->cldfbSynTd->Q_cldfb_state, 1 ); } ELSE { scale_sig32( st->cldfbSynTd->cldfb_state_fx, st->cldfbSynTd->p_filter_length, negate( shift ) ); // st->cldfbSynTd->Q_cldfb_state -> q_realImagBuffer st->cldfbSynTd->Q_cldfb_state = q_re_im_buf[n]; } } #else scale_sig32( st->cldfbSynTd->cldfb_state_fx, st->cldfbSynTd->p_filter_length, sub( q_re_im_buf[n], st->cldfbSynTd->Q_cldfb_state ) ); // st->cldfbSynTd->Q_cldfb_state -> q_realImagBuffer #endif swb_pre_proc_ivas_fx( st, new_swb_speech_fx_16, new_swb_speech_fx, shb_speech_fx, &Q_shb_spch, realBuffer_fx[n], imagBuffer_fx[n], q_re_im_buf[n], hCPE ); #ifdef FIX_2021_BANDWIDTH_EXTENSION_PROBLEM st->cldfbSynTd->Q_cldfb_state = sub( q_re_im_buf[n], 1 ); #else /* Re-scaling cldfb_state_fx */ scale_sig32( st->cldfbSynTd->cldfb_state_fx, st->cldfbSynTd->p_filter_length, negate( sub( q_re_im_buf[n], st->cldfbSynTd->Q_cldfb_state ) ) ); // q_realImagBuffer -> st->cldfbSynTd->Q_cldfb_state #endif } ELSE IF( GE_32( input_Fs, 32000 ) ) { Loading