Loading lib_com/ivas_prot.h +12 −2 Original line number Diff line number Diff line Loading @@ -3990,12 +3990,22 @@ void ivas_dirac_dec_output_synthesis_cov_close( ); void ivas_dirac_dec_output_synthesis_cov_param_mc_collect_slot( #ifdef FIX_835_PARAMMC_BUFFER_VALUES float *RealBuffer, /* i : input channel filter bank samples (real part) */ float *ImagBuffer, /* i : input channel filter bank samples (imaginary part */ float cx[PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS], /* o : accumulated input covariance (real part) */ float cx_imag[PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS], /* o : accumulated input covariance (imaginary part) */ const int16_t param_band, /* i : parameter band */ PARAM_MC_DEC_HANDLE hParamMC, /* i : handle to Parametric MC state */ const int16_t nchan_in /* i : number of input channels */ #else float *RealBuffer, /* i : input channel filter bank samples (real part) */ float *ImagBuffer, /* i : input channel filter bank samples (imaginary part) */ float cx[PARAM_MC_MAX_PARAMETER_BANDS][PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS], /* o : accumulated input covariance (real part) */ float cx_imag[PARAM_MC_MAX_PARAMETER_BANDS][PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS], /* o : accumulated input covariance (imaginary part) */ PARAM_MC_DEC_HANDLE hParamMC, /* i : handle to Parametric MC state */ const int16_t nchan_in /* i : number of input channels */ #endif ); void ivas_dirac_dec_output_synthesis_cov_param_mc_synthesise_slot( Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ #define NON_BE_FIX_BASOP_819_THRESHOLD_MASA2TOTAL /* Nokia: add fix for precision limitation in comparison with masa2total energy ratio threshold */ #define FIX_828_PORT_1152_FROM_FLT_REPO /* FhG: fix for issue 828 - fix uninitialized value used in BASOP */ #define NONE_BE_FIX_816_LFE_PLC_FLOAT /* DLB: issue 816: reduce required precision to float for LFE-PLC*/ #define FIX_835_PARAMMC_BUFFER_VALUES /* FhG: issue 835: wide range of buffer values for cx in ParamMC */ /* #################### End FIXES switches ############################ */ #define BASOP_NOGLOB /* Disable global symbols in BASOPs, Overflow/Carry in BASOPs disabled, additional BASOPs in case of Overflow */ Loading lib_dec/ivas_dirac_output_synthesis_cov.c +28 −3 Original line number Diff line number Diff line Loading @@ -304,15 +304,29 @@ void ivas_dirac_dec_output_synthesis_cov_close( *-------------------------------------------------------------------*/ void ivas_dirac_dec_output_synthesis_cov_param_mc_collect_slot( #ifdef FIX_835_PARAMMC_BUFFER_VALUES float *RealBuffer, /* i : input channel filter bank samples (real part) */ float *ImagBuffer, /* i : input channel filter bank samples (imaginary part */ float cx[PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS], /* o : accumulated input covariance (real part) */ float cx_imag[PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS], /* o : accumulated input covariance (imaginary part) */ const int16_t param_band, /* i : parameter band */ PARAM_MC_DEC_HANDLE hParamMC, /* i : handle to Parametric MC state */ const int16_t nchan_in /* i : number of input channels */ #else float *RealBuffer, /* i : input channel filter bank samples (real part) */ float *ImagBuffer, /* i : input channel filter bank samples (imaginary part */ float cx[PARAM_MC_MAX_PARAMETER_BANDS][PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS], /* o : accumulated input covariance (real part) */ float cx_imag[PARAM_MC_MAX_PARAMETER_BANDS][PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS], /* o : accumulated input covariance (imaginary part) */ PARAM_MC_DEC_HANDLE hParamMC, /* i : handle to Parametric MC state */ const int16_t nchan_in /* i : number of input channels */ #endif ) { #ifdef FIX_835_PARAMMC_BUFFER_VALUES int16_t band_idx, ch_idx; #else int16_t param_band, band_idx, ch_idx; #endif int16_t brange[2]; float real_in_buffer[PARAM_MC_MAX_BANDS_IN_PARAMETER_BAND * MAX_TRANSPORT_CHANNELS]; float imag_in_buffer[PARAM_MC_MAX_BANDS_IN_PARAMETER_BAND * MAX_TRANSPORT_CHANNELS]; Loading @@ -320,8 +334,10 @@ void ivas_dirac_dec_output_synthesis_cov_param_mc_collect_slot( float imag_buffer[PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS]; /* estimate input covariance */ #ifndef FIX_835_PARAMMC_BUFFER_VALUES for ( param_band = 0; param_band < hParamMC->num_param_bands_synth; param_band++ ) { #endif /* Already stack here instead of in the process_subframe */ /* collect input frame */ Loading @@ -342,10 +358,19 @@ void ivas_dirac_dec_output_synthesis_cov_param_mc_collect_slot( cmplx_matrix_square( real_in_buffer, imag_in_buffer, num_bands, nchan_in, real_buffer, imag_buffer ); #ifdef FIX_835_PARAMMC_BUFFER_VALUES v_add( cx, real_buffer, cx, nchan_in * nchan_in ); v_add( cx_imag, imag_buffer, cx_imag, nchan_in * nchan_in ); #else v_add( cx[param_band], real_buffer, cx[param_band], nchan_in * nchan_in ); v_add( cx_imag[param_band], imag_buffer, cx_imag[param_band], nchan_in * nchan_in ); #endif #ifndef FIX_835_PARAMMC_BUFFER_VALUES } #endif return; } Loading lib_dec/ivas_mc_param_dec.c +216 −42 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
lib_com/ivas_prot.h +12 −2 Original line number Diff line number Diff line Loading @@ -3990,12 +3990,22 @@ void ivas_dirac_dec_output_synthesis_cov_close( ); void ivas_dirac_dec_output_synthesis_cov_param_mc_collect_slot( #ifdef FIX_835_PARAMMC_BUFFER_VALUES float *RealBuffer, /* i : input channel filter bank samples (real part) */ float *ImagBuffer, /* i : input channel filter bank samples (imaginary part */ float cx[PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS], /* o : accumulated input covariance (real part) */ float cx_imag[PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS], /* o : accumulated input covariance (imaginary part) */ const int16_t param_band, /* i : parameter band */ PARAM_MC_DEC_HANDLE hParamMC, /* i : handle to Parametric MC state */ const int16_t nchan_in /* i : number of input channels */ #else float *RealBuffer, /* i : input channel filter bank samples (real part) */ float *ImagBuffer, /* i : input channel filter bank samples (imaginary part) */ float cx[PARAM_MC_MAX_PARAMETER_BANDS][PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS], /* o : accumulated input covariance (real part) */ float cx_imag[PARAM_MC_MAX_PARAMETER_BANDS][PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS], /* o : accumulated input covariance (imaginary part) */ PARAM_MC_DEC_HANDLE hParamMC, /* i : handle to Parametric MC state */ const int16_t nchan_in /* i : number of input channels */ #endif ); void ivas_dirac_dec_output_synthesis_cov_param_mc_synthesise_slot( Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ #define NON_BE_FIX_BASOP_819_THRESHOLD_MASA2TOTAL /* Nokia: add fix for precision limitation in comparison with masa2total energy ratio threshold */ #define FIX_828_PORT_1152_FROM_FLT_REPO /* FhG: fix for issue 828 - fix uninitialized value used in BASOP */ #define NONE_BE_FIX_816_LFE_PLC_FLOAT /* DLB: issue 816: reduce required precision to float for LFE-PLC*/ #define FIX_835_PARAMMC_BUFFER_VALUES /* FhG: issue 835: wide range of buffer values for cx in ParamMC */ /* #################### End FIXES switches ############################ */ #define BASOP_NOGLOB /* Disable global symbols in BASOPs, Overflow/Carry in BASOPs disabled, additional BASOPs in case of Overflow */ Loading
lib_dec/ivas_dirac_output_synthesis_cov.c +28 −3 Original line number Diff line number Diff line Loading @@ -304,15 +304,29 @@ void ivas_dirac_dec_output_synthesis_cov_close( *-------------------------------------------------------------------*/ void ivas_dirac_dec_output_synthesis_cov_param_mc_collect_slot( #ifdef FIX_835_PARAMMC_BUFFER_VALUES float *RealBuffer, /* i : input channel filter bank samples (real part) */ float *ImagBuffer, /* i : input channel filter bank samples (imaginary part */ float cx[PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS], /* o : accumulated input covariance (real part) */ float cx_imag[PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS], /* o : accumulated input covariance (imaginary part) */ const int16_t param_band, /* i : parameter band */ PARAM_MC_DEC_HANDLE hParamMC, /* i : handle to Parametric MC state */ const int16_t nchan_in /* i : number of input channels */ #else float *RealBuffer, /* i : input channel filter bank samples (real part) */ float *ImagBuffer, /* i : input channel filter bank samples (imaginary part */ float cx[PARAM_MC_MAX_PARAMETER_BANDS][PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS], /* o : accumulated input covariance (real part) */ float cx_imag[PARAM_MC_MAX_PARAMETER_BANDS][PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS], /* o : accumulated input covariance (imaginary part) */ PARAM_MC_DEC_HANDLE hParamMC, /* i : handle to Parametric MC state */ const int16_t nchan_in /* i : number of input channels */ #endif ) { #ifdef FIX_835_PARAMMC_BUFFER_VALUES int16_t band_idx, ch_idx; #else int16_t param_band, band_idx, ch_idx; #endif int16_t brange[2]; float real_in_buffer[PARAM_MC_MAX_BANDS_IN_PARAMETER_BAND * MAX_TRANSPORT_CHANNELS]; float imag_in_buffer[PARAM_MC_MAX_BANDS_IN_PARAMETER_BAND * MAX_TRANSPORT_CHANNELS]; Loading @@ -320,8 +334,10 @@ void ivas_dirac_dec_output_synthesis_cov_param_mc_collect_slot( float imag_buffer[PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS]; /* estimate input covariance */ #ifndef FIX_835_PARAMMC_BUFFER_VALUES for ( param_band = 0; param_band < hParamMC->num_param_bands_synth; param_band++ ) { #endif /* Already stack here instead of in the process_subframe */ /* collect input frame */ Loading @@ -342,10 +358,19 @@ void ivas_dirac_dec_output_synthesis_cov_param_mc_collect_slot( cmplx_matrix_square( real_in_buffer, imag_in_buffer, num_bands, nchan_in, real_buffer, imag_buffer ); #ifdef FIX_835_PARAMMC_BUFFER_VALUES v_add( cx, real_buffer, cx, nchan_in * nchan_in ); v_add( cx_imag, imag_buffer, cx_imag, nchan_in * nchan_in ); #else v_add( cx[param_band], real_buffer, cx[param_band], nchan_in * nchan_in ); v_add( cx_imag[param_band], imag_buffer, cx_imag[param_band], nchan_in * nchan_in ); #endif #ifndef FIX_835_PARAMMC_BUFFER_VALUES } #endif return; } Loading
lib_dec/ivas_mc_param_dec.c +216 −42 File changed.Preview size limit exceeded, changes collapsed. Show changes