Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,7 @@ #define NONBE_FIX_TCX5_INTERLEAVING_FOR_FS_IN_UNEQUAL_FS_OUT /* FhG: apply correct TCX5 grouping/interleaving when input_fs != output_fs */ #define FIX_1824 #define FIX_1822 #define ISSUE_1796_replace_shl_o /*FhG: replace shl_ro by overflow-free alternatives*/ #endif lib_rend/ivas_dirac_output_synthesis_dec_fx.c +8 −0 Original line number Diff line number Diff line Loading @@ -1023,9 +1023,17 @@ void ivas_dirac_dec_output_synthesis_process_slot_fx( move16(); } } #ifdef FIX_1822 diff = L_sub( h_dirac_output_synthesis_params->diffuse_compensation_factor_fx, ONE_IN_Q27 /*1 Q27*/ ); diff = L_shl( diff, 2 ); // Q29 #endif FOR( ; k < num_freq_bands; k++ ) { #ifdef FIX_1822 sqr_inp = Madd_32_32( One_in_qdiff, diffuseness[k], diff ); // Q = q_diffuseness - 1 #else sqr_inp = Madd_32_32( One_in_qdiff, diffuseness[k], L_sub( h_dirac_output_synthesis_params->diffuse_compensation_factor_decorr_fx, ONE_IN_Q29 /*1 Q29*/ ) ); // Q = q_diffuseness - 1 #endif sqr_exp = sq_e; move16(); sqr = Sqrt32( sqr_inp, &sqr_exp ); /*Q(31-sqr_exp)*/ Loading Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,7 @@ #define NONBE_FIX_TCX5_INTERLEAVING_FOR_FS_IN_UNEQUAL_FS_OUT /* FhG: apply correct TCX5 grouping/interleaving when input_fs != output_fs */ #define FIX_1824 #define FIX_1822 #define ISSUE_1796_replace_shl_o /*FhG: replace shl_ro by overflow-free alternatives*/ #endif
lib_rend/ivas_dirac_output_synthesis_dec_fx.c +8 −0 Original line number Diff line number Diff line Loading @@ -1023,9 +1023,17 @@ void ivas_dirac_dec_output_synthesis_process_slot_fx( move16(); } } #ifdef FIX_1822 diff = L_sub( h_dirac_output_synthesis_params->diffuse_compensation_factor_fx, ONE_IN_Q27 /*1 Q27*/ ); diff = L_shl( diff, 2 ); // Q29 #endif FOR( ; k < num_freq_bands; k++ ) { #ifdef FIX_1822 sqr_inp = Madd_32_32( One_in_qdiff, diffuseness[k], diff ); // Q = q_diffuseness - 1 #else sqr_inp = Madd_32_32( One_in_qdiff, diffuseness[k], L_sub( h_dirac_output_synthesis_params->diffuse_compensation_factor_decorr_fx, ONE_IN_Q29 /*1 Q29*/ ) ); // Q = q_diffuseness - 1 #endif sqr_exp = sq_e; move16(); sqr = Sqrt32( sqr_inp, &sqr_exp ); /*Q(31-sqr_exp)*/ Loading