Loading lib_com/fd_cng_com_fx.c +4 −7 Original line number Diff line number Diff line Loading @@ -2461,11 +2461,8 @@ void SynthesisSTFT ( scale = 0; BASOP_rfft(fftBuffer, hFdCngCom->fftlen, &scale, 1); fftBufferExp = add(fftBufferExp, scale); #ifdef EVS_FLOAT #ifdef IVAS_FLOAT_FIXED hFdCngCom->fftBuffer_exp = fftBufferExp; #endif #endif // EVS_FLOAT fftBufferExp = add(fftBufferExp, hFdCngCom->fftlenShift); /* Perform overlap-add */ Loading Loading @@ -2495,14 +2492,14 @@ void SynthesisSTFT ( { FOR (i=0; i < len4; i++) { olapBuffer[i+1*len4] = add(olapBuffer[i+1*len4], mult_r(round_fx(L_shl(fftBuffer[i+1*len4],fftBufferExp-15)),olapWin[i].v.im)); olapBuffer[i+1*len4] = add_sat(olapBuffer[i+1*len4], mult_r(round_fx(L_shl(fftBuffer[i+1*len4],fftBufferExp-15)),olapWin[i].v.im)); move16(); olapBuffer[i+2*len4] = add(olapBuffer[i+2*len4], mult_r(round_fx(L_shl(fftBuffer[i+2*len4],fftBufferExp-15)),olapWin[len4-1-i].v.re)); olapBuffer[i+2*len4] = add_sat(olapBuffer[i+2*len4], mult_r(round_fx(L_shl(fftBuffer[i+2*len4],fftBufferExp-15)),olapWin[len4-1-i].v.re)); move16(); } FOR (i=len3; i < len; i++) { olapBuffer[i] = round_fx(L_shl(fftBuffer[i],fftBufferExp-15)); olapBuffer[i] = round_fx_sat(L_shl_sat(fftBuffer[i],fftBufferExp-15)); } } Loading lib_com/float_to_fix_ops.c +4 −3 Original line number Diff line number Diff line Loading @@ -736,17 +736,18 @@ void stereo_tcx_dec_mode_switch_reconf_To_fixed_2( //{ // st->hFdCngDec->hFdCngCom->periodog[p] = (Word32) ( st->hFdCngDec->hFdCngCom->periodog_flt[p] * ( 1u << ( 31 - st->hFdCngDec->hFdCngCom->periodog_exp ) ) ); //} //for ( int p = 0; p < st->hFdCngDec->hFdCngCom->fftlen; p++ ) //{ // st->hFdCngDec->hFdCngCom->fftBuffer[p] = (Word32) ( st->hFdCngDec->hFdCngCom->fftBuffer_flt[p] * ( 1u << ( 31 - st->hFdCngDec->hFdCngCom->fftBuffer_exp ) ) ); //} st->hFdCngDec->msNoiseEst_exp = 31 - Q4; //st->hFdCngDec->msNoiseEst_exp = 31 - Q4; for ( int p = 0; p < st->hFdCngDec->npart_shaping; p++ ) { st->hFdCngDec->msNoiseEst[p] = (Word32) ( st->hFdCngDec->msNoiseEst_float[p] * ( 1u << ( 31 - st->hFdCngDec->msNoiseEst_exp ) ) ); //st->hFdCngDec->msNoiseEst[p] = (Word32) ( st->hFdCngDec->msNoiseEst_float[p] * ( 1u << ( 31 - st->hFdCngDec->msNoiseEst_exp ) ) ); // st->hFdCngDec->msPeriodog[p] = (Word32) ( st->hFdCngDec->msPeriodog_float[p] * ( 1u << ( 31 - st->hFdCngDec->msPeriodog_exp ) ) ); //st->hFdCngDec->msPeriodog_ST_fx[p] = (Word32) ( st->hFdCngDec->msPeriodog_ST[p] * ( 1u << ( 31 - st->hFdCngDec->msPeriodog_ST_exp ) ) ); } st->hFdCngDec->hFdCngCom->cngNoiseLevelExp = 31 - Q4; // Q4 Loading lib_com/ivas_sns_com_fx.c +2 −2 Original line number Diff line number Diff line Loading @@ -87,7 +87,7 @@ void sns_compute_scf_fx( x[i] = 0; FOR( n = 0; n < bw; ( ++n, ++k ) ) { x[i] = L_add( x[i], spectrum[k] ); x[i] = L_add_sat( x[i], spectrum[k] ); } x[i] /= bw; } Loading @@ -101,7 +101,7 @@ void sns_compute_scf_fx( x[i] = 0; FOR( n = 0; n < bandLengths[i]; ( ++n, ++k ) ) { x[i] = L_add( x[i], spectrum[k] ); x[i] = L_add_sat( x[i], spectrum[k] ); } x[i] /= bandLengths[i]; } Loading lib_com/options.h +1 −2 Original line number Diff line number Diff line Loading @@ -101,7 +101,7 @@ #define EVS_FUNC_MODIFIED //#define DEBUGGING //#define DBG_WAV_WRITER #define EVS_FLOAT //#define EVS_FLOAT #define EVS_FLOAT_ENC //#define DUMPS_ENABLED #define FIX_667_DISABLE_INITIAL_PLC_SUPPRESSION Loading @@ -119,7 +119,6 @@ #define FIX_740_HQ_CORE_OVA // Proposed fix to solve overlap and add issue for HQ_CORE #define FIX_746 // proposed fix to solve low bit-rate frame boundaries issues #define FIX_SATURATION_725 // Propose fix for saturation in AVQ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ Loading lib_com/prot_fx2.h +1 −0 Original line number Diff line number Diff line Loading @@ -7729,6 +7729,7 @@ void generate_comfort_noise_dec_hf_ivas_fx( Word16 dct_buffer_out[], /* o : DCT output buffer (qdct)*/ Word16 filt_lfE[], /* i/o: long term spectrum energy Q15 */ const Word16 last_core, /* i : last core */ const Word16 element_mode, /* i : element mode */ const Word16 *pitch_buf, /* i : current frame pitch information Q6*/ Word16 *LDm_enh_lp_gbin, /* o : smoothed suppression gain, per bin FFT Q15*/ const Word16 Q_exc, /* i : excitation scaling */ Loading Loading
lib_com/fd_cng_com_fx.c +4 −7 Original line number Diff line number Diff line Loading @@ -2461,11 +2461,8 @@ void SynthesisSTFT ( scale = 0; BASOP_rfft(fftBuffer, hFdCngCom->fftlen, &scale, 1); fftBufferExp = add(fftBufferExp, scale); #ifdef EVS_FLOAT #ifdef IVAS_FLOAT_FIXED hFdCngCom->fftBuffer_exp = fftBufferExp; #endif #endif // EVS_FLOAT fftBufferExp = add(fftBufferExp, hFdCngCom->fftlenShift); /* Perform overlap-add */ Loading Loading @@ -2495,14 +2492,14 @@ void SynthesisSTFT ( { FOR (i=0; i < len4; i++) { olapBuffer[i+1*len4] = add(olapBuffer[i+1*len4], mult_r(round_fx(L_shl(fftBuffer[i+1*len4],fftBufferExp-15)),olapWin[i].v.im)); olapBuffer[i+1*len4] = add_sat(olapBuffer[i+1*len4], mult_r(round_fx(L_shl(fftBuffer[i+1*len4],fftBufferExp-15)),olapWin[i].v.im)); move16(); olapBuffer[i+2*len4] = add(olapBuffer[i+2*len4], mult_r(round_fx(L_shl(fftBuffer[i+2*len4],fftBufferExp-15)),olapWin[len4-1-i].v.re)); olapBuffer[i+2*len4] = add_sat(olapBuffer[i+2*len4], mult_r(round_fx(L_shl(fftBuffer[i+2*len4],fftBufferExp-15)),olapWin[len4-1-i].v.re)); move16(); } FOR (i=len3; i < len; i++) { olapBuffer[i] = round_fx(L_shl(fftBuffer[i],fftBufferExp-15)); olapBuffer[i] = round_fx_sat(L_shl_sat(fftBuffer[i],fftBufferExp-15)); } } Loading
lib_com/float_to_fix_ops.c +4 −3 Original line number Diff line number Diff line Loading @@ -736,17 +736,18 @@ void stereo_tcx_dec_mode_switch_reconf_To_fixed_2( //{ // st->hFdCngDec->hFdCngCom->periodog[p] = (Word32) ( st->hFdCngDec->hFdCngCom->periodog_flt[p] * ( 1u << ( 31 - st->hFdCngDec->hFdCngCom->periodog_exp ) ) ); //} //for ( int p = 0; p < st->hFdCngDec->hFdCngCom->fftlen; p++ ) //{ // st->hFdCngDec->hFdCngCom->fftBuffer[p] = (Word32) ( st->hFdCngDec->hFdCngCom->fftBuffer_flt[p] * ( 1u << ( 31 - st->hFdCngDec->hFdCngCom->fftBuffer_exp ) ) ); //} st->hFdCngDec->msNoiseEst_exp = 31 - Q4; //st->hFdCngDec->msNoiseEst_exp = 31 - Q4; for ( int p = 0; p < st->hFdCngDec->npart_shaping; p++ ) { st->hFdCngDec->msNoiseEst[p] = (Word32) ( st->hFdCngDec->msNoiseEst_float[p] * ( 1u << ( 31 - st->hFdCngDec->msNoiseEst_exp ) ) ); //st->hFdCngDec->msNoiseEst[p] = (Word32) ( st->hFdCngDec->msNoiseEst_float[p] * ( 1u << ( 31 - st->hFdCngDec->msNoiseEst_exp ) ) ); // st->hFdCngDec->msPeriodog[p] = (Word32) ( st->hFdCngDec->msPeriodog_float[p] * ( 1u << ( 31 - st->hFdCngDec->msPeriodog_exp ) ) ); //st->hFdCngDec->msPeriodog_ST_fx[p] = (Word32) ( st->hFdCngDec->msPeriodog_ST[p] * ( 1u << ( 31 - st->hFdCngDec->msPeriodog_ST_exp ) ) ); } st->hFdCngDec->hFdCngCom->cngNoiseLevelExp = 31 - Q4; // Q4 Loading
lib_com/ivas_sns_com_fx.c +2 −2 Original line number Diff line number Diff line Loading @@ -87,7 +87,7 @@ void sns_compute_scf_fx( x[i] = 0; FOR( n = 0; n < bw; ( ++n, ++k ) ) { x[i] = L_add( x[i], spectrum[k] ); x[i] = L_add_sat( x[i], spectrum[k] ); } x[i] /= bw; } Loading @@ -101,7 +101,7 @@ void sns_compute_scf_fx( x[i] = 0; FOR( n = 0; n < bandLengths[i]; ( ++n, ++k ) ) { x[i] = L_add( x[i], spectrum[k] ); x[i] = L_add_sat( x[i], spectrum[k] ); } x[i] /= bandLengths[i]; } Loading
lib_com/options.h +1 −2 Original line number Diff line number Diff line Loading @@ -101,7 +101,7 @@ #define EVS_FUNC_MODIFIED //#define DEBUGGING //#define DBG_WAV_WRITER #define EVS_FLOAT //#define EVS_FLOAT #define EVS_FLOAT_ENC //#define DUMPS_ENABLED #define FIX_667_DISABLE_INITIAL_PLC_SUPPRESSION Loading @@ -119,7 +119,6 @@ #define FIX_740_HQ_CORE_OVA // Proposed fix to solve overlap and add issue for HQ_CORE #define FIX_746 // proposed fix to solve low bit-rate frame boundaries issues #define FIX_SATURATION_725 // Propose fix for saturation in AVQ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ Loading
lib_com/prot_fx2.h +1 −0 Original line number Diff line number Diff line Loading @@ -7729,6 +7729,7 @@ void generate_comfort_noise_dec_hf_ivas_fx( Word16 dct_buffer_out[], /* o : DCT output buffer (qdct)*/ Word16 filt_lfE[], /* i/o: long term spectrum energy Q15 */ const Word16 last_core, /* i : last core */ const Word16 element_mode, /* i : element mode */ const Word16 *pitch_buf, /* i : current frame pitch information Q6*/ Word16 *LDm_enh_lp_gbin, /* o : smoothed suppression gain, per bin FFT Q15*/ const Word16 Q_exc, /* i : excitation scaling */ Loading