Loading lib_com/calc_st_com.c +13 −0 Original line number Diff line number Diff line Loading @@ -292,14 +292,27 @@ void scale_st( void blend_subfr2( float *sigIn1, float *sigIn2, #ifdef FIX_FLOAT_1533_BLEND_SUBFR2 int16_t L_subfr, #endif float *sigOut ) { #ifdef FIX_FLOAT_1533_BLEND_SUBFR2 float fac1 = 1.f - ( 1.f / L_subfr ); float fac2 = 0.f + ( 1.f / L_subfr ); float step = 1.f / ( L_subfr / 2 ); #else float fac1 = 1.f - ( 1.f / L_SUBFR ); float fac2 = 0.f + ( 1.f / L_SUBFR ); float step = 1.f / ( L_SUBFR / 2 ); #endif int16_t i; #ifdef FIX_FLOAT_1533_BLEND_SUBFR2 for ( i = 0; i < L_subfr / 2; i++ ) #else for ( i = 0; i < L_SUBFR / 2; i++ ) #endif { sigOut[i] = fac1 * sigIn1[i] + fac2 * sigIn2[i]; fac1 -= step; Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -172,6 +172,7 @@ #define FIX_FLOAT_1493_MASA_ENCODE_STABILITY_IMPROVE /* Nokia: float issue 1493: Improves float decision stability in MASA encoding by adjusting reduction code */ #define FIX_2432_ISM_SPIKES_16KHZ /* VA: basop issue 2432: fix spikes in ISM decoding at 16kHz output sampling rate */ #define FIX_FLOAT_1533_BLEND_SUBFR2 /* FhG: float issue 1533: correct blending in blend_subfr2() */ /* ##################### End NON-BE switches ########################### */ Loading lib_com/prot.h +4 −1 Original line number Diff line number Diff line Loading @@ -10045,6 +10045,9 @@ int16_t tbe_celp_exc_offset( void blend_subfr2( float *sigIn1, /* i : input signal for fade-out */ float *sigIn2, /* i : input signal for fade-in */ #ifdef FIX_FLOAT_1533_BLEND_SUBFR2 int16_t L_subfr, /* i : subframe length */ #endif float *sigOut /* o : output signal */ ); Loading lib_dec/acelp_core_dec.c +4 −0 Original line number Diff line number Diff line Loading @@ -1091,7 +1091,11 @@ ivas_error acelp_core_dec( syn_filt( Aq, M, temp_buf + M + L_SUBFR, temp_buf, L_SUBFR, st->hPFstat->mem_stp + L_SYN_MEM - M, 0 ); scale_st( syn, temp_buf, &st->hPFstat->gain_prec, L_SUBFR, -1 ); mvr2r( temp_buf, syn, L_SUBFR / 2 ); #ifdef FIX_FLOAT_1533_BLEND_SUBFR2 blend_subfr2( temp_buf + L_SUBFR / 2, syn + L_SUBFR / 2, L_SUBFR, syn + L_SUBFR / 2 ); #else blend_subfr2( temp_buf + L_SUBFR / 2, syn + L_SUBFR / 2, syn + L_SUBFR / 2 ); #endif } st->hPFstat->on = 0; } Loading lib_dec/acelp_core_switch_dec.c +4 −0 Original line number Diff line number Diff line Loading @@ -201,7 +201,11 @@ ivas_error acelp_core_switch_dec( syn_filt( Aq, M, old_exc, bpf_error_signal, L_SUBFR, st->hPFstat->mem_stp + L_SYN_MEM - M, 0 ); scale_st( synth_intFreq, bpf_error_signal, &st->hPFstat->gain_prec, L_SUBFR, -1 ); mvr2r( bpf_error_signal, synth_intFreq, L_SUBFR / 2 ); #ifdef FIX_FLOAT_1533_BLEND_SUBFR2 blend_subfr2( bpf_error_signal + L_SUBFR / 2, synth_intFreq + L_SUBFR / 2, L_SUBFR, synth_intFreq + L_SUBFR / 2 ); #else blend_subfr2( bpf_error_signal + L_SUBFR / 2, synth_intFreq + L_SUBFR / 2, synth_intFreq + L_SUBFR / 2 ); #endif } st->hPFstat->on = 0; Loading Loading
lib_com/calc_st_com.c +13 −0 Original line number Diff line number Diff line Loading @@ -292,14 +292,27 @@ void scale_st( void blend_subfr2( float *sigIn1, float *sigIn2, #ifdef FIX_FLOAT_1533_BLEND_SUBFR2 int16_t L_subfr, #endif float *sigOut ) { #ifdef FIX_FLOAT_1533_BLEND_SUBFR2 float fac1 = 1.f - ( 1.f / L_subfr ); float fac2 = 0.f + ( 1.f / L_subfr ); float step = 1.f / ( L_subfr / 2 ); #else float fac1 = 1.f - ( 1.f / L_SUBFR ); float fac2 = 0.f + ( 1.f / L_SUBFR ); float step = 1.f / ( L_SUBFR / 2 ); #endif int16_t i; #ifdef FIX_FLOAT_1533_BLEND_SUBFR2 for ( i = 0; i < L_subfr / 2; i++ ) #else for ( i = 0; i < L_SUBFR / 2; i++ ) #endif { sigOut[i] = fac1 * sigIn1[i] + fac2 * sigIn2[i]; fac1 -= step; Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -172,6 +172,7 @@ #define FIX_FLOAT_1493_MASA_ENCODE_STABILITY_IMPROVE /* Nokia: float issue 1493: Improves float decision stability in MASA encoding by adjusting reduction code */ #define FIX_2432_ISM_SPIKES_16KHZ /* VA: basop issue 2432: fix spikes in ISM decoding at 16kHz output sampling rate */ #define FIX_FLOAT_1533_BLEND_SUBFR2 /* FhG: float issue 1533: correct blending in blend_subfr2() */ /* ##################### End NON-BE switches ########################### */ Loading
lib_com/prot.h +4 −1 Original line number Diff line number Diff line Loading @@ -10045,6 +10045,9 @@ int16_t tbe_celp_exc_offset( void blend_subfr2( float *sigIn1, /* i : input signal for fade-out */ float *sigIn2, /* i : input signal for fade-in */ #ifdef FIX_FLOAT_1533_BLEND_SUBFR2 int16_t L_subfr, /* i : subframe length */ #endif float *sigOut /* o : output signal */ ); Loading
lib_dec/acelp_core_dec.c +4 −0 Original line number Diff line number Diff line Loading @@ -1091,7 +1091,11 @@ ivas_error acelp_core_dec( syn_filt( Aq, M, temp_buf + M + L_SUBFR, temp_buf, L_SUBFR, st->hPFstat->mem_stp + L_SYN_MEM - M, 0 ); scale_st( syn, temp_buf, &st->hPFstat->gain_prec, L_SUBFR, -1 ); mvr2r( temp_buf, syn, L_SUBFR / 2 ); #ifdef FIX_FLOAT_1533_BLEND_SUBFR2 blend_subfr2( temp_buf + L_SUBFR / 2, syn + L_SUBFR / 2, L_SUBFR, syn + L_SUBFR / 2 ); #else blend_subfr2( temp_buf + L_SUBFR / 2, syn + L_SUBFR / 2, syn + L_SUBFR / 2 ); #endif } st->hPFstat->on = 0; } Loading
lib_dec/acelp_core_switch_dec.c +4 −0 Original line number Diff line number Diff line Loading @@ -201,7 +201,11 @@ ivas_error acelp_core_switch_dec( syn_filt( Aq, M, old_exc, bpf_error_signal, L_SUBFR, st->hPFstat->mem_stp + L_SYN_MEM - M, 0 ); scale_st( synth_intFreq, bpf_error_signal, &st->hPFstat->gain_prec, L_SUBFR, -1 ); mvr2r( bpf_error_signal, synth_intFreq, L_SUBFR / 2 ); #ifdef FIX_FLOAT_1533_BLEND_SUBFR2 blend_subfr2( bpf_error_signal + L_SUBFR / 2, synth_intFreq + L_SUBFR / 2, L_SUBFR, synth_intFreq + L_SUBFR / 2 ); #else blend_subfr2( bpf_error_signal + L_SUBFR / 2, synth_intFreq + L_SUBFR / 2, synth_intFreq + L_SUBFR / 2 ); #endif } st->hPFstat->on = 0; Loading