Loading lib_com/ivas_prot_fx.h +14 −0 Original line number Diff line number Diff line Loading @@ -1708,6 +1708,19 @@ void synchro_synthesis_fx( // ivas_dirac_output_synthesis_cov void ivas_dirac_dec_output_synthesis_cov_param_mc_collect_slot_fx( #ifdef FIX_835_PARAMMC_BUFFER_VALUES Word32 *RealBuffer_fx, /* i : input channel filter bank samples (real part) */ Word16 RealBuffer_e, /* i : exponent input channel filter bank samples (real part)*/ Word32 *ImagBuffer_fx, /* i : input channel filter bank samples (imaginary part */ Word16 ImagBuffer_e, /* i : exponent input channel filter bank samples (real part)*/ Word32 cx_fx[PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS], /* o : accumulated input covariance (real part) */ Word16 *cx_e, /* i : exponent for accumulated input covariance (real part) */ Word32 cx_imag_fx[PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS], /* o : accumulated input covariance (imaginary part) */ Word16 *cx_imag_e, /* i : exponent accumulated input covariance (imag part) */ PARAM_MC_DEC_HANDLE hParamMC, /* i : handle to Parametric MC state */ const Word16 param_band, /* i : parameter band */ const Word16 nchan_in /* i : number of input channels */ #else Word32 *RealBuffer_fx, /* i : input channel filter bank samples (real part) */ Word16 RealBuffer_e, /* i : exponent input channel filter bank samples (real part)*/ Word32 *ImagBuffer_fx, /* i : input channel filter bank samples (imaginary part */ Loading @@ -1718,6 +1731,7 @@ void ivas_dirac_dec_output_synthesis_cov_param_mc_collect_slot_fx( Word16 *cx_imag_e, /* i : exponent accumulated input covariance (imag part) */ PARAM_MC_DEC_HANDLE hParamMC, /* i : handle to Parametric MC state */ const Word16 nchan_in /* i : number of input channels */ #endif ); void configureFdCngDec_ivas_fx( Loading lib_com/ivas_spar_com.c +1 −1 Original line number Diff line number Diff line Loading @@ -3531,7 +3531,7 @@ void ivas_get_spar_md_from_dirac_fx( /*SPAR from DirAC*/ set32_fx( response_avg_fx, 0, MAX_OUTPUT_CHANNELS ); IF( GE_16( n_ts, 1 ) ) IF( GT_16( n_ts, 1 ) ) { ivas_dirac_dec_get_response_fx( extract_l( L_shr( azi_dirac_fx[band][i_ts], Q22 ) ), extract_l( L_shr( ele_dirac_fx[band][i_ts], Q22 ) ), response_avg_fx, order, Q30 ); } Loading lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,8 @@ #define FIX_854_HILBERT_SCALING /* VA: reduce lost of precision due to unnecessary scaling, reduce a lot the 2 kHz tone */ #define FIX_856_EXTRACT_L /* VA: Fix undesirable wrap-around */ #define FIX_835_PARAMMC_BUFFER_VALUES /* FhG: issue 835: wide range of buffer values for cx in ParamMC */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ Loading lib_com/prot_fx.h +15 −0 Original line number Diff line number Diff line Loading @@ -6416,6 +6416,21 @@ void gain_dec_lbr_fx( const Word16 L_subfr /* i : subfr lenght */ ); void gain_dec_lbr_ivas_fx( Decoder_State *st_fx, /* i/o: decoder state structure */ const Word16 coder_type, /* i : coding type */ const Word16 i_subfr, /* i : subframe index */ const Word16 *code_fx, /* i : algebraic excitation Q9 */ Word16 *gain_pit_fx, /* o : quantized pitch gain Q14*/ Word32 *gain_code_fx, /* o : quantized codebook gain Q16*/ Word16 *gain_inov_fx, /* o : gain of the innovation (used for normalization) Q12*/ Word32 *norm_gain_code_fx, /* o : norm. gain of the codebook excitation Q16*/ Word32 gc_mem[], /* i/o: gain_code from previous subframes */ Word16 gp_mem[] /* i/o: gain_pitch from previous subframes */ , const Word16 L_subfr /* i : subfr lenght */ ); void lp_gain_updt_fx( const Word16 i_subfr, /* i : subframe number Q0 */ const Word16 gain_pit, /* i : Decoded gain pitch Q14 */ Loading lib_com/rom_com.c +132 −0 Original line number Diff line number Diff line Loading @@ -5511,6 +5511,138 @@ const float gp_gamma_4sfr_7b[2 * 128] = 1.20145f, 1.11183f, }; const Word16 gp_gamma_4sfr_7b_fx[2 * 128] = /*Q14/Q9 */ { 101, 174, 228, 542, 400, 269, 735, 418, 799, 111, 1146, 802, 1250, 345, 1291, 1138, 1327, 224, 1478, 1705, 1557, 491, 1947, 295, 1988, 639, 2343, 386, 2386, 213, 2541, 133, 2904, 2881, 3198, 455, 3204, 736, 3219, 276, 3463, 549, 3709, 343, 3741, 177, 4431, 226, 4480, 927, 4516, 396, 4547, 622, 4900, 290, 5011, 503, 5601, 742, 5616, 173, 5688, 428, 5975, 337, 6196, 5865, 6293, 253, 6294, 580, 6305, 1053, 6792, 480, 6951, 391, 7151, 212, 7298, 671, 7475, 317, 7757, 534, 7917, 856, 8195, 1449, 8198, 437, 8228, 261, 8434, 154, 8493, 622, 8552, 358, 9324, 493, 9373, 744, 9391, 217, 9410, 296, 9711, 14146, 9711, 405, 9724, 598, 10128, 1140, 10248, 8800, 10391, 344, 10530, 883, 10541, 542, 10559, 257, 10772, 441, 11075, 664, 11463, 304, 11510, 196, 11551, 2230, 11574, 501, 11611, 391, 12154, 784, 12205, 576, 12304, 133, 12413, 343, 12457, 84, 12468, 445, 12734, 247, 12970, 639, 13072, 1411, 13142, 983, 13159, 499, 13356, 386, 13460, 298, 13838, 710, 13850, 550, 13930, 429, 14446, 343, 14449, 170, 14511, 467, 14530, 857, 14697, 623, 14770, 4569, 14833, 229, 15086, 512, 15112, 387, 15527, 574, 15552, 1126, 15573, 764, 15662, 291, 15677, 442, 16056, 648, 16200, 508, 16322, 369, 16719, 586, 16832, 936, 16835, 450, 16969, 702, 17188, 315, 17425, 538, 17680, 395, 17808, 209, 17855, 791, 18054, 1861, 18122, 471, 18273, 632, 18425, 3478, 18630, 1239, 18947, 143, 18948, 2576, 19051, 264, 19068, 349, 19112, 502, 19303, 1530, 19502, 836, 19558, 422, 19571, 692, 19667, 1014, 19685, 569 }; const Word16 gp_gamma_1sfr_8b_fx[2 * 256] = /*Q14/Q9 */ { 305, 152, Loading
lib_com/ivas_prot_fx.h +14 −0 Original line number Diff line number Diff line Loading @@ -1708,6 +1708,19 @@ void synchro_synthesis_fx( // ivas_dirac_output_synthesis_cov void ivas_dirac_dec_output_synthesis_cov_param_mc_collect_slot_fx( #ifdef FIX_835_PARAMMC_BUFFER_VALUES Word32 *RealBuffer_fx, /* i : input channel filter bank samples (real part) */ Word16 RealBuffer_e, /* i : exponent input channel filter bank samples (real part)*/ Word32 *ImagBuffer_fx, /* i : input channel filter bank samples (imaginary part */ Word16 ImagBuffer_e, /* i : exponent input channel filter bank samples (real part)*/ Word32 cx_fx[PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS], /* o : accumulated input covariance (real part) */ Word16 *cx_e, /* i : exponent for accumulated input covariance (real part) */ Word32 cx_imag_fx[PARAM_MC_MAX_TRANSPORT_CHANS * PARAM_MC_MAX_TRANSPORT_CHANS], /* o : accumulated input covariance (imaginary part) */ Word16 *cx_imag_e, /* i : exponent accumulated input covariance (imag part) */ PARAM_MC_DEC_HANDLE hParamMC, /* i : handle to Parametric MC state */ const Word16 param_band, /* i : parameter band */ const Word16 nchan_in /* i : number of input channels */ #else Word32 *RealBuffer_fx, /* i : input channel filter bank samples (real part) */ Word16 RealBuffer_e, /* i : exponent input channel filter bank samples (real part)*/ Word32 *ImagBuffer_fx, /* i : input channel filter bank samples (imaginary part */ Loading @@ -1718,6 +1731,7 @@ void ivas_dirac_dec_output_synthesis_cov_param_mc_collect_slot_fx( Word16 *cx_imag_e, /* i : exponent accumulated input covariance (imag part) */ PARAM_MC_DEC_HANDLE hParamMC, /* i : handle to Parametric MC state */ const Word16 nchan_in /* i : number of input channels */ #endif ); void configureFdCngDec_ivas_fx( Loading
lib_com/ivas_spar_com.c +1 −1 Original line number Diff line number Diff line Loading @@ -3531,7 +3531,7 @@ void ivas_get_spar_md_from_dirac_fx( /*SPAR from DirAC*/ set32_fx( response_avg_fx, 0, MAX_OUTPUT_CHANNELS ); IF( GE_16( n_ts, 1 ) ) IF( GT_16( n_ts, 1 ) ) { ivas_dirac_dec_get_response_fx( extract_l( L_shr( azi_dirac_fx[band][i_ts], Q22 ) ), extract_l( L_shr( ele_dirac_fx[band][i_ts], Q22 ) ), response_avg_fx, order, Q30 ); } Loading
lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,8 @@ #define FIX_854_HILBERT_SCALING /* VA: reduce lost of precision due to unnecessary scaling, reduce a lot the 2 kHz tone */ #define FIX_856_EXTRACT_L /* VA: Fix undesirable wrap-around */ #define FIX_835_PARAMMC_BUFFER_VALUES /* FhG: issue 835: wide range of buffer values for cx in ParamMC */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ Loading
lib_com/prot_fx.h +15 −0 Original line number Diff line number Diff line Loading @@ -6416,6 +6416,21 @@ void gain_dec_lbr_fx( const Word16 L_subfr /* i : subfr lenght */ ); void gain_dec_lbr_ivas_fx( Decoder_State *st_fx, /* i/o: decoder state structure */ const Word16 coder_type, /* i : coding type */ const Word16 i_subfr, /* i : subframe index */ const Word16 *code_fx, /* i : algebraic excitation Q9 */ Word16 *gain_pit_fx, /* o : quantized pitch gain Q14*/ Word32 *gain_code_fx, /* o : quantized codebook gain Q16*/ Word16 *gain_inov_fx, /* o : gain of the innovation (used for normalization) Q12*/ Word32 *norm_gain_code_fx, /* o : norm. gain of the codebook excitation Q16*/ Word32 gc_mem[], /* i/o: gain_code from previous subframes */ Word16 gp_mem[] /* i/o: gain_pitch from previous subframes */ , const Word16 L_subfr /* i : subfr lenght */ ); void lp_gain_updt_fx( const Word16 i_subfr, /* i : subframe number Q0 */ const Word16 gain_pit, /* i : Decoded gain pitch Q14 */ Loading
lib_com/rom_com.c +132 −0 Original line number Diff line number Diff line Loading @@ -5511,6 +5511,138 @@ const float gp_gamma_4sfr_7b[2 * 128] = 1.20145f, 1.11183f, }; const Word16 gp_gamma_4sfr_7b_fx[2 * 128] = /*Q14/Q9 */ { 101, 174, 228, 542, 400, 269, 735, 418, 799, 111, 1146, 802, 1250, 345, 1291, 1138, 1327, 224, 1478, 1705, 1557, 491, 1947, 295, 1988, 639, 2343, 386, 2386, 213, 2541, 133, 2904, 2881, 3198, 455, 3204, 736, 3219, 276, 3463, 549, 3709, 343, 3741, 177, 4431, 226, 4480, 927, 4516, 396, 4547, 622, 4900, 290, 5011, 503, 5601, 742, 5616, 173, 5688, 428, 5975, 337, 6196, 5865, 6293, 253, 6294, 580, 6305, 1053, 6792, 480, 6951, 391, 7151, 212, 7298, 671, 7475, 317, 7757, 534, 7917, 856, 8195, 1449, 8198, 437, 8228, 261, 8434, 154, 8493, 622, 8552, 358, 9324, 493, 9373, 744, 9391, 217, 9410, 296, 9711, 14146, 9711, 405, 9724, 598, 10128, 1140, 10248, 8800, 10391, 344, 10530, 883, 10541, 542, 10559, 257, 10772, 441, 11075, 664, 11463, 304, 11510, 196, 11551, 2230, 11574, 501, 11611, 391, 12154, 784, 12205, 576, 12304, 133, 12413, 343, 12457, 84, 12468, 445, 12734, 247, 12970, 639, 13072, 1411, 13142, 983, 13159, 499, 13356, 386, 13460, 298, 13838, 710, 13850, 550, 13930, 429, 14446, 343, 14449, 170, 14511, 467, 14530, 857, 14697, 623, 14770, 4569, 14833, 229, 15086, 512, 15112, 387, 15527, 574, 15552, 1126, 15573, 764, 15662, 291, 15677, 442, 16056, 648, 16200, 508, 16322, 369, 16719, 586, 16832, 936, 16835, 450, 16969, 702, 17188, 315, 17425, 538, 17680, 395, 17808, 209, 17855, 791, 18054, 1861, 18122, 471, 18273, 632, 18425, 3478, 18630, 1239, 18947, 143, 18948, 2576, 19051, 264, 19068, 349, 19112, 502, 19303, 1530, 19502, 836, 19558, 422, 19571, 692, 19667, 1014, 19685, 569 }; const Word16 gp_gamma_1sfr_8b_fx[2 * 256] = /*Q14/Q9 */ { 305, 152,