Loading lib_enc/stat_enc.h +7 −1 Original line number Diff line number Diff line Loading @@ -997,8 +997,13 @@ typedef struct td_bwe_enc_structure Word16 gFrame_WB; Word16 idxGain; #ifdef NONBE_FIX_ISSUE_2206 Word16 dec_2_over_3_mem_fx[L_FILT_2OVER3]; /* Q0*/ Word16 dec_2_over_3_mem_lp_fx[6]; /* Q0*/ #else Word16 dec_2_over_3_mem_fx[L_FILT_2OVER3]; Word16 dec_2_over_3_mem_lp_fx[6]; #endif Word16 tbe_demph_fx; /* Q(prev_Q_bwe_exc - 16 - NOISE_QADJ) */ Word16 tbe_premph_fx; /* Q(prev_Q_bwe_exc - 16) */ Loading Loading @@ -1034,7 +1039,8 @@ typedef struct fd_bwe_enc_structure Word16 old_input_lp_fx[NS2SA( 16000, ACELP_LOOK_NS + DELAY_FD_BWE_ENC_NS )]; // st->hBWE_FD->prev_Q_input_lp Word16 old_syn_12k8_16k_fx[NS2SA( 16000, DELAY_FD_BWE_ENC_NS )]; // st->Q_syn #ifdef NONBE_FIX_ISSUE_2206 Word16 old_fdbwe_speech_fx[L_FRAME48k]; // Q(-1) Word16 old_fdbwe_speech_fx[L_FRAME48k]; // Q(old_fdbwe_speech_q) for IVAS, Q(-1) for EVS. Word16 old_fdbwe_speech_q; #else Word16 old_fdbwe_speech_fx[L_FRAME48k]; #endif Loading lib_enc/swb_bwe_enc_fx.c +4 −0 Original line number Diff line number Diff line Loading @@ -3296,6 +3296,10 @@ void fd_bwe_enc_init_fx( hBWE_FD->prev_Q_input_lp = 0; move16(); set16_fx( hBWE_FD->old_fdbwe_speech_fx, 0, L_FRAME48k ); #ifdef NONBE_FIX_ISSUE_2206 hBWE_FD->old_fdbwe_speech_q = Q15; move16(); #endif hBWE_FD->mem_deemph_old_syn_fx = 0; move16(); Loading lib_enc/swb_pre_proc_fx.c +21 −10 Original line number Diff line number Diff line Loading @@ -533,8 +533,10 @@ void swb_pre_proc_fx( } #ifdef NONBE_FIX_ISSUE_2206 Copy_Scale_sig_nosat( st->input_fx - Sample_Delay_SWB_BWE, hBWE_FD->old_input_fx, Sample_Delay_SWB_BWE, sub( -1, st->q_inp ) ); Copy_Scale_sig_nosat( st->input_fx - L_FRAME32k, hBWE_FD->old_fdbwe_speech_fx, L_FRAME32k, sub( -1, st->q_inp ) ); hBWE_FD->old_fdbwe_speech_q = s_min( Q14, add( st->q_old_inp, norm_arr( st->input_fx - L_FRAME32k, L_FRAME32k ) ) ); move16(); Copy_Scale_sig_nosat( st->input_fx - Sample_Delay_SWB_BWE, hBWE_FD->old_input_fx, Sample_Delay_SWB_BWE, sub( -1, st->q_old_inp ) ); Copy_Scale_sig_nosat( st->input_fx - L_FRAME32k, hBWE_FD->old_fdbwe_speech_fx, L_FRAME32k, sub( hBWE_FD->old_fdbwe_speech_q, st->q_old_inp ) ); #else Copy( st->input_fx - Sample_Delay_SWB_BWE, hBWE_FD->old_input_fx, Sample_Delay_SWB_BWE ); Copy( st->input_fx - L_FRAME32k, hBWE_FD->old_fdbwe_speech_fx, L_FRAME32k ); Loading Loading @@ -591,18 +593,21 @@ void swb_pre_proc_fx( #ifdef NONBE_FIX_ISSUE_2206 IF( st->element_mode > EVS_MONO ) { Copy_Scale_sig_nosat( hBWE_FD->old_fdbwe_speech_fx, &old_input_fx[Sample_Delay_SWB_BWE], L_FRAME32k, sub( st->q_inp, -1 ) ); Copy_Scale_sig_nosat( hBWE_FD->old_fdbwe_speech_fx, &old_input_fx[Sample_Delay_SWB_BWE], L_FRAME32k, sub( st->q_inp, hBWE_FD->old_fdbwe_speech_q ) ); Copy_Scale_sig_nosat( hBWE_FD->old_fdbwe_speech_fx + L_FRAME32k - Sample_Delay_SWB_BWE, hBWE_FD->old_input_fx, Sample_Delay_SWB_BWE, sub( -1, hBWE_FD->old_fdbwe_speech_q ) ); } ELSE { Copy( hBWE_FD->old_fdbwe_speech_fx, &old_input_fx[Sample_Delay_SWB_BWE], L_FRAME32k ); Copy( hBWE_FD->old_fdbwe_speech_fx + L_FRAME32k - Sample_Delay_SWB_BWE, hBWE_FD->old_input_fx, Sample_Delay_SWB_BWE ); } set16_fx( old_input_fx, 0, Sample_Delay_SWB_BWE ); #else Copy( hBWE_FD->old_fdbwe_speech_fx, &old_input_fx[Sample_Delay_SWB_BWE], L_FRAME32k ); #endif set16_fx( old_input_fx, 0, Sample_Delay_SWB_BWE ); Copy( hBWE_FD->old_fdbwe_speech_fx + L_FRAME32k - Sample_Delay_SWB_BWE, hBWE_FD->old_input_fx, Sample_Delay_SWB_BWE ); #endif IF( NE_16( st->extl, WB_BWE ) ) { Copy( old_input_fx, hBWE_FD->L_old_wtda_swb_fx, L_FRAME32k ); Loading @@ -621,7 +626,9 @@ void swb_pre_proc_fx( IF( NE_16( st->extl, SWB_BWE ) && NE_16( st->extl, FB_BWE ) ) { #ifdef NONBE_FIX_ISSUE_2206 Copy_Scale_sig_nosat( st->input_fx, hBWE_FD->old_fdbwe_speech_fx, L_FRAME32k, sub( -1, st->q_inp ) ); Copy( st->input_fx, hBWE_FD->old_fdbwe_speech_fx, L_FRAME32k ); hBWE_FD->old_fdbwe_speech_q = st->q_inp; move16(); #else Copy( st->input_fx, hBWE_FD->old_fdbwe_speech_fx, L_FRAME32k ); #endif Loading Loading @@ -666,7 +673,9 @@ void swb_pre_proc_fx( } #ifdef NONBE_FIX_ISSUE_2206 Copy_Scale_sig_nosat( st->input_fx - L_FRAME48k, hBWE_FD->old_fdbwe_speech_fx, L_FRAME48k, sub( -1, st->q_inp ) ); Copy( st->input_fx - L_FRAME48k, hBWE_FD->old_fdbwe_speech_fx, L_FRAME48k ); hBWE_FD->old_fdbwe_speech_q = st->q_old_inp; move16(); #else Copy( st->input_fx - L_FRAME48k, hBWE_FD->old_fdbwe_speech_fx, L_FRAME48k ); #endif Loading Loading @@ -743,7 +752,9 @@ void swb_pre_proc_fx( { /* move the resampling out of the TDBWE path as new_swb_speech is not needed for TDBWE. */ #ifdef NONBE_FIX_ISSUE_2206 Copy_Scale_sig_nosat( st->input_fx, hBWE_FD->old_fdbwe_speech_fx, L_FRAME48k, sub( -1, st->q_inp ) ); Copy( st->input_fx, hBWE_FD->old_fdbwe_speech_fx, L_FRAME48k ); hBWE_FD->old_fdbwe_speech_q = st->q_inp; move16(); #else Copy( st->input_fx, hBWE_FD->old_fdbwe_speech_fx, L_FRAME48k ); #endif Loading @@ -761,7 +772,7 @@ void swb_pre_proc_fx( inner_Fs = 48000; move32(); #ifdef NONBE_FIX_ISSUE_2206 Copy_Scale_sig_nosat( hBWE_FD->old_fdbwe_speech_fx, new_swb_speech, L_FRAME48k, sub( st->q_inp, -1 ) ); Copy_Scale_sig_nosat( hBWE_FD->old_fdbwe_speech_fx, new_swb_speech, L_FRAME48k, sub( st->q_inp, hBWE_FD->old_fdbwe_speech_q ) ); #else Copy( hBWE_FD->old_fdbwe_speech_fx, new_swb_speech, L_FRAME48k ); #endif Loading @@ -774,7 +785,7 @@ void swb_pre_proc_fx( move32(); #ifdef NONBE_FIX_ISSUE_2206 Copy_Scale_sig_nosat( hBWE_FD->old_fdbwe_speech_fx, new_swb_speech, L_FRAME48k, sub( st->q_inp, -1 ) ); Copy_Scale_sig_nosat( hBWE_FD->old_fdbwe_speech_fx, new_swb_speech, L_FRAME48k, sub( st->q_inp, hBWE_FD->old_fdbwe_speech_q ) ); IF( NE_16( st->element_mode, IVAS_CPE_DFT ) ) { Loading Loading
lib_enc/stat_enc.h +7 −1 Original line number Diff line number Diff line Loading @@ -997,8 +997,13 @@ typedef struct td_bwe_enc_structure Word16 gFrame_WB; Word16 idxGain; #ifdef NONBE_FIX_ISSUE_2206 Word16 dec_2_over_3_mem_fx[L_FILT_2OVER3]; /* Q0*/ Word16 dec_2_over_3_mem_lp_fx[6]; /* Q0*/ #else Word16 dec_2_over_3_mem_fx[L_FILT_2OVER3]; Word16 dec_2_over_3_mem_lp_fx[6]; #endif Word16 tbe_demph_fx; /* Q(prev_Q_bwe_exc - 16 - NOISE_QADJ) */ Word16 tbe_premph_fx; /* Q(prev_Q_bwe_exc - 16) */ Loading Loading @@ -1034,7 +1039,8 @@ typedef struct fd_bwe_enc_structure Word16 old_input_lp_fx[NS2SA( 16000, ACELP_LOOK_NS + DELAY_FD_BWE_ENC_NS )]; // st->hBWE_FD->prev_Q_input_lp Word16 old_syn_12k8_16k_fx[NS2SA( 16000, DELAY_FD_BWE_ENC_NS )]; // st->Q_syn #ifdef NONBE_FIX_ISSUE_2206 Word16 old_fdbwe_speech_fx[L_FRAME48k]; // Q(-1) Word16 old_fdbwe_speech_fx[L_FRAME48k]; // Q(old_fdbwe_speech_q) for IVAS, Q(-1) for EVS. Word16 old_fdbwe_speech_q; #else Word16 old_fdbwe_speech_fx[L_FRAME48k]; #endif Loading
lib_enc/swb_bwe_enc_fx.c +4 −0 Original line number Diff line number Diff line Loading @@ -3296,6 +3296,10 @@ void fd_bwe_enc_init_fx( hBWE_FD->prev_Q_input_lp = 0; move16(); set16_fx( hBWE_FD->old_fdbwe_speech_fx, 0, L_FRAME48k ); #ifdef NONBE_FIX_ISSUE_2206 hBWE_FD->old_fdbwe_speech_q = Q15; move16(); #endif hBWE_FD->mem_deemph_old_syn_fx = 0; move16(); Loading
lib_enc/swb_pre_proc_fx.c +21 −10 Original line number Diff line number Diff line Loading @@ -533,8 +533,10 @@ void swb_pre_proc_fx( } #ifdef NONBE_FIX_ISSUE_2206 Copy_Scale_sig_nosat( st->input_fx - Sample_Delay_SWB_BWE, hBWE_FD->old_input_fx, Sample_Delay_SWB_BWE, sub( -1, st->q_inp ) ); Copy_Scale_sig_nosat( st->input_fx - L_FRAME32k, hBWE_FD->old_fdbwe_speech_fx, L_FRAME32k, sub( -1, st->q_inp ) ); hBWE_FD->old_fdbwe_speech_q = s_min( Q14, add( st->q_old_inp, norm_arr( st->input_fx - L_FRAME32k, L_FRAME32k ) ) ); move16(); Copy_Scale_sig_nosat( st->input_fx - Sample_Delay_SWB_BWE, hBWE_FD->old_input_fx, Sample_Delay_SWB_BWE, sub( -1, st->q_old_inp ) ); Copy_Scale_sig_nosat( st->input_fx - L_FRAME32k, hBWE_FD->old_fdbwe_speech_fx, L_FRAME32k, sub( hBWE_FD->old_fdbwe_speech_q, st->q_old_inp ) ); #else Copy( st->input_fx - Sample_Delay_SWB_BWE, hBWE_FD->old_input_fx, Sample_Delay_SWB_BWE ); Copy( st->input_fx - L_FRAME32k, hBWE_FD->old_fdbwe_speech_fx, L_FRAME32k ); Loading Loading @@ -591,18 +593,21 @@ void swb_pre_proc_fx( #ifdef NONBE_FIX_ISSUE_2206 IF( st->element_mode > EVS_MONO ) { Copy_Scale_sig_nosat( hBWE_FD->old_fdbwe_speech_fx, &old_input_fx[Sample_Delay_SWB_BWE], L_FRAME32k, sub( st->q_inp, -1 ) ); Copy_Scale_sig_nosat( hBWE_FD->old_fdbwe_speech_fx, &old_input_fx[Sample_Delay_SWB_BWE], L_FRAME32k, sub( st->q_inp, hBWE_FD->old_fdbwe_speech_q ) ); Copy_Scale_sig_nosat( hBWE_FD->old_fdbwe_speech_fx + L_FRAME32k - Sample_Delay_SWB_BWE, hBWE_FD->old_input_fx, Sample_Delay_SWB_BWE, sub( -1, hBWE_FD->old_fdbwe_speech_q ) ); } ELSE { Copy( hBWE_FD->old_fdbwe_speech_fx, &old_input_fx[Sample_Delay_SWB_BWE], L_FRAME32k ); Copy( hBWE_FD->old_fdbwe_speech_fx + L_FRAME32k - Sample_Delay_SWB_BWE, hBWE_FD->old_input_fx, Sample_Delay_SWB_BWE ); } set16_fx( old_input_fx, 0, Sample_Delay_SWB_BWE ); #else Copy( hBWE_FD->old_fdbwe_speech_fx, &old_input_fx[Sample_Delay_SWB_BWE], L_FRAME32k ); #endif set16_fx( old_input_fx, 0, Sample_Delay_SWB_BWE ); Copy( hBWE_FD->old_fdbwe_speech_fx + L_FRAME32k - Sample_Delay_SWB_BWE, hBWE_FD->old_input_fx, Sample_Delay_SWB_BWE ); #endif IF( NE_16( st->extl, WB_BWE ) ) { Copy( old_input_fx, hBWE_FD->L_old_wtda_swb_fx, L_FRAME32k ); Loading @@ -621,7 +626,9 @@ void swb_pre_proc_fx( IF( NE_16( st->extl, SWB_BWE ) && NE_16( st->extl, FB_BWE ) ) { #ifdef NONBE_FIX_ISSUE_2206 Copy_Scale_sig_nosat( st->input_fx, hBWE_FD->old_fdbwe_speech_fx, L_FRAME32k, sub( -1, st->q_inp ) ); Copy( st->input_fx, hBWE_FD->old_fdbwe_speech_fx, L_FRAME32k ); hBWE_FD->old_fdbwe_speech_q = st->q_inp; move16(); #else Copy( st->input_fx, hBWE_FD->old_fdbwe_speech_fx, L_FRAME32k ); #endif Loading Loading @@ -666,7 +673,9 @@ void swb_pre_proc_fx( } #ifdef NONBE_FIX_ISSUE_2206 Copy_Scale_sig_nosat( st->input_fx - L_FRAME48k, hBWE_FD->old_fdbwe_speech_fx, L_FRAME48k, sub( -1, st->q_inp ) ); Copy( st->input_fx - L_FRAME48k, hBWE_FD->old_fdbwe_speech_fx, L_FRAME48k ); hBWE_FD->old_fdbwe_speech_q = st->q_old_inp; move16(); #else Copy( st->input_fx - L_FRAME48k, hBWE_FD->old_fdbwe_speech_fx, L_FRAME48k ); #endif Loading Loading @@ -743,7 +752,9 @@ void swb_pre_proc_fx( { /* move the resampling out of the TDBWE path as new_swb_speech is not needed for TDBWE. */ #ifdef NONBE_FIX_ISSUE_2206 Copy_Scale_sig_nosat( st->input_fx, hBWE_FD->old_fdbwe_speech_fx, L_FRAME48k, sub( -1, st->q_inp ) ); Copy( st->input_fx, hBWE_FD->old_fdbwe_speech_fx, L_FRAME48k ); hBWE_FD->old_fdbwe_speech_q = st->q_inp; move16(); #else Copy( st->input_fx, hBWE_FD->old_fdbwe_speech_fx, L_FRAME48k ); #endif Loading @@ -761,7 +772,7 @@ void swb_pre_proc_fx( inner_Fs = 48000; move32(); #ifdef NONBE_FIX_ISSUE_2206 Copy_Scale_sig_nosat( hBWE_FD->old_fdbwe_speech_fx, new_swb_speech, L_FRAME48k, sub( st->q_inp, -1 ) ); Copy_Scale_sig_nosat( hBWE_FD->old_fdbwe_speech_fx, new_swb_speech, L_FRAME48k, sub( st->q_inp, hBWE_FD->old_fdbwe_speech_q ) ); #else Copy( hBWE_FD->old_fdbwe_speech_fx, new_swb_speech, L_FRAME48k ); #endif Loading @@ -774,7 +785,7 @@ void swb_pre_proc_fx( move32(); #ifdef NONBE_FIX_ISSUE_2206 Copy_Scale_sig_nosat( hBWE_FD->old_fdbwe_speech_fx, new_swb_speech, L_FRAME48k, sub( st->q_inp, -1 ) ); Copy_Scale_sig_nosat( hBWE_FD->old_fdbwe_speech_fx, new_swb_speech, L_FRAME48k, sub( st->q_inp, hBWE_FD->old_fdbwe_speech_q ) ); IF( NE_16( st->element_mode, IVAS_CPE_DFT ) ) { Loading