Loading lib_com/options.h +1 −2 Original line number Diff line number Diff line Loading @@ -121,7 +121,6 @@ #define FIX_ISSUE_1167 /* Ittiam: Fix for Issue 1167: Encoder crash for OSBA ISM3SBA1 at 13.2 and 16.4 kbps in gauss_L2_ivas_fx() */ #define FIX_1009_REPLACE_DIV_SQRT_BY_ISQRT_LC /* FhG: Reduce workload of binaural rendering: replace 1./tmp & sqrt by Isqrt32 */ #define FIX_1113_OPT_DIRAC_BIN_REND /* FhG: Various optimizations to ivas_dirac_dec_binaual_functions.c */ <<<<<<< HEAD #define FIX_ISSUE_1187 /* Ittiam: Fix for issue 1187: Assertion error observed in evs_enc_fx (with option stereo_dmx_evs) from bass_pf_enc_fx function*/ #define FIX_ISSUE_1186 /* Ittiam: Fix for Issue 1186: Energy/scaling issue for ISM-1 at all bitrates */ #define FIX_ISSUE_1165 /* Ittiam: Fix for issue 1165: Assertion in lpc2lsp_fx for OMASA LTV input */ Loading Loading @@ -150,6 +149,6 @@ #define FIX_ISSUE_1237 /* VA: replacement of Copy_Scale_sig_16_32_DEPREC() that are doing 16 bits left shift by Copy_Scale_sig_16_32_no_sat() */ #define FIX_ISSUE_1237_KEEP_EVS_BE /* VA: Fix to keep EVS bitexactness to 26.444 */ #define FIX_867_2 //#define FIX_867_2 #endif lib_rend/ivas_dirac_output_synthesis_dec.c +41 −42 Original line number Diff line number Diff line Loading @@ -2122,27 +2122,11 @@ void ivas_dirac_dec_output_synthesis_process_subframe_psd_ls_fx( p_power_smooth = h_dirac_output_synthesis_state->proto_power_smooth_fx; set16_fx( exp_arr, 0, i_mult( num_protos_dir, num_freq_bands ) ); FOR(k = 0; k < 1; k++) { FOR(l = 0; l < num_freq_bands; l++) { static FILE *f = 0; if (f == 0) f = fopen("p_power_smooth0", "w"); Word32 m = h_dirac_output_synthesis_state->proto_power_smooth_fx[k*num_protos_dir + l]; Word16 e = h_dirac_output_synthesis_state->proto_power_smooth_q; float f1_m = (float)m; float f1_e = powf(2, e); float f1 = f1_m / f1_e; fprintf(f, "%d %d %d %f\n", l, m, e, f1); } } FOR( k = 0; k < num_protos_dir; k++ ) { FOR( l = 0; l < num_freq_bands; l++ ) { #ifdef FIX_867 Word16 exp_tmp_1; // exp for p_power_smooth_prev g2 = L_sub( ONE_IN_Q31, alpha[l] ); // Q31 Loading @@ -2163,24 +2147,35 @@ void ivas_dirac_dec_output_synthesis_process_subframe_psd_ls_fx( *( p_power_smooth++ ) = L_tmp; /*Q=31-(exp-exp_tmp_1))*/ move32(); } } #else g1 = alpha[l]; // Q31 move32(); g2 = L_sub( ONE_IN_Q31, g1 ); // Q31 *p_power_smooth_prev = L_add( EPSILON_FX, Mpy_32_32( g2, ( *p_power_smooth_prev ) ) ); //(Q31, q_proto_power_smooth) -> q_proto_power_smooth move32(); *( p_power_smooth_prev ) = L_add( *( p_power_smooth_prev ), Mpy_32_32( g1, ( *p_power_smooth ) ) ); //(Q31, q_proto_power_smooth) -> q_proto_power_smooth move32(); FOR(k = 0; k < 1; k++) IF( EQ_32( *( p_power_smooth_prev ), EPSILON_FX ) ) { FOR(l = 0; l < num_freq_bands; l++) p_power_smooth_prev++; L_tmp = BASOP_Util_Divide3232_Scale_cadence( ONE_IN_Q31, EPSILON_FX, &exp ); /*Q=31-(exp-(31-q_proto_power_smooth))*/ exp_arr[k * num_freq_bands + l] = exp; move16(); *( p_power_smooth++ ) = L_tmp; /*Q=31-(exp-(31-q_proto_power_smooth))*/ move32(); } ELSE { static FILE *f = 0; if (f == 0) f = fopen("p_power_smooth1", "w"); L_tmp = BASOP_Util_Divide3232_Scale_cadence( ONE_IN_Q31, *( p_power_smooth_prev++ ), &exp ); /*Q=31-(exp-(31-q_proto_power_smooth))*/ exp_arr[k * num_freq_bands + l] = exp; move16(); Word32 m = h_dirac_output_synthesis_state->proto_power_smooth_fx[k*num_protos_dir + l]; q_tmp = sub(31, exp_arr[k * num_freq_bands + l]); Word16 e = q_tmp; float f1_m = (float)m; float f1_e = powf(2, e); float f1 = f1_m / f1_e; fprintf(f, "%d %d %d %f\n", l, m, e, f1); *( p_power_smooth++ ) = L_tmp; /*Q=31-(exp-(31-q_proto_power_smooth))*/ move32(); } #endif } } Loading Loading @@ -2212,7 +2207,11 @@ void ivas_dirac_dec_output_synthesis_process_subframe_psd_ls_fx( *p_power_smooth = L_shr( *p_power_smooth, sub( min_exp, exp_arr[k * num_freq_bands + l] ) ); /*(31-(exp-(31-q_proto_power_smooth)))->(31-(min_exp-(31-q_proto_power_smooth)))*/ move32(); p_power_smooth++; #ifdef FIX_867_2 q_tmp = sub(31, exp_arr[k * num_freq_bands + l]); #else q_tmp = add( sub( Q31, min_exp ), sub( Q31, h_dirac_output_synthesis_state->proto_power_smooth_q ) ); #endif } } Loading Loading
lib_com/options.h +1 −2 Original line number Diff line number Diff line Loading @@ -121,7 +121,6 @@ #define FIX_ISSUE_1167 /* Ittiam: Fix for Issue 1167: Encoder crash for OSBA ISM3SBA1 at 13.2 and 16.4 kbps in gauss_L2_ivas_fx() */ #define FIX_1009_REPLACE_DIV_SQRT_BY_ISQRT_LC /* FhG: Reduce workload of binaural rendering: replace 1./tmp & sqrt by Isqrt32 */ #define FIX_1113_OPT_DIRAC_BIN_REND /* FhG: Various optimizations to ivas_dirac_dec_binaual_functions.c */ <<<<<<< HEAD #define FIX_ISSUE_1187 /* Ittiam: Fix for issue 1187: Assertion error observed in evs_enc_fx (with option stereo_dmx_evs) from bass_pf_enc_fx function*/ #define FIX_ISSUE_1186 /* Ittiam: Fix for Issue 1186: Energy/scaling issue for ISM-1 at all bitrates */ #define FIX_ISSUE_1165 /* Ittiam: Fix for issue 1165: Assertion in lpc2lsp_fx for OMASA LTV input */ Loading Loading @@ -150,6 +149,6 @@ #define FIX_ISSUE_1237 /* VA: replacement of Copy_Scale_sig_16_32_DEPREC() that are doing 16 bits left shift by Copy_Scale_sig_16_32_no_sat() */ #define FIX_ISSUE_1237_KEEP_EVS_BE /* VA: Fix to keep EVS bitexactness to 26.444 */ #define FIX_867_2 //#define FIX_867_2 #endif
lib_rend/ivas_dirac_output_synthesis_dec.c +41 −42 Original line number Diff line number Diff line Loading @@ -2122,27 +2122,11 @@ void ivas_dirac_dec_output_synthesis_process_subframe_psd_ls_fx( p_power_smooth = h_dirac_output_synthesis_state->proto_power_smooth_fx; set16_fx( exp_arr, 0, i_mult( num_protos_dir, num_freq_bands ) ); FOR(k = 0; k < 1; k++) { FOR(l = 0; l < num_freq_bands; l++) { static FILE *f = 0; if (f == 0) f = fopen("p_power_smooth0", "w"); Word32 m = h_dirac_output_synthesis_state->proto_power_smooth_fx[k*num_protos_dir + l]; Word16 e = h_dirac_output_synthesis_state->proto_power_smooth_q; float f1_m = (float)m; float f1_e = powf(2, e); float f1 = f1_m / f1_e; fprintf(f, "%d %d %d %f\n", l, m, e, f1); } } FOR( k = 0; k < num_protos_dir; k++ ) { FOR( l = 0; l < num_freq_bands; l++ ) { #ifdef FIX_867 Word16 exp_tmp_1; // exp for p_power_smooth_prev g2 = L_sub( ONE_IN_Q31, alpha[l] ); // Q31 Loading @@ -2163,24 +2147,35 @@ void ivas_dirac_dec_output_synthesis_process_subframe_psd_ls_fx( *( p_power_smooth++ ) = L_tmp; /*Q=31-(exp-exp_tmp_1))*/ move32(); } } #else g1 = alpha[l]; // Q31 move32(); g2 = L_sub( ONE_IN_Q31, g1 ); // Q31 *p_power_smooth_prev = L_add( EPSILON_FX, Mpy_32_32( g2, ( *p_power_smooth_prev ) ) ); //(Q31, q_proto_power_smooth) -> q_proto_power_smooth move32(); *( p_power_smooth_prev ) = L_add( *( p_power_smooth_prev ), Mpy_32_32( g1, ( *p_power_smooth ) ) ); //(Q31, q_proto_power_smooth) -> q_proto_power_smooth move32(); FOR(k = 0; k < 1; k++) IF( EQ_32( *( p_power_smooth_prev ), EPSILON_FX ) ) { FOR(l = 0; l < num_freq_bands; l++) p_power_smooth_prev++; L_tmp = BASOP_Util_Divide3232_Scale_cadence( ONE_IN_Q31, EPSILON_FX, &exp ); /*Q=31-(exp-(31-q_proto_power_smooth))*/ exp_arr[k * num_freq_bands + l] = exp; move16(); *( p_power_smooth++ ) = L_tmp; /*Q=31-(exp-(31-q_proto_power_smooth))*/ move32(); } ELSE { static FILE *f = 0; if (f == 0) f = fopen("p_power_smooth1", "w"); L_tmp = BASOP_Util_Divide3232_Scale_cadence( ONE_IN_Q31, *( p_power_smooth_prev++ ), &exp ); /*Q=31-(exp-(31-q_proto_power_smooth))*/ exp_arr[k * num_freq_bands + l] = exp; move16(); Word32 m = h_dirac_output_synthesis_state->proto_power_smooth_fx[k*num_protos_dir + l]; q_tmp = sub(31, exp_arr[k * num_freq_bands + l]); Word16 e = q_tmp; float f1_m = (float)m; float f1_e = powf(2, e); float f1 = f1_m / f1_e; fprintf(f, "%d %d %d %f\n", l, m, e, f1); *( p_power_smooth++ ) = L_tmp; /*Q=31-(exp-(31-q_proto_power_smooth))*/ move32(); } #endif } } Loading Loading @@ -2212,7 +2207,11 @@ void ivas_dirac_dec_output_synthesis_process_subframe_psd_ls_fx( *p_power_smooth = L_shr( *p_power_smooth, sub( min_exp, exp_arr[k * num_freq_bands + l] ) ); /*(31-(exp-(31-q_proto_power_smooth)))->(31-(min_exp-(31-q_proto_power_smooth)))*/ move32(); p_power_smooth++; #ifdef FIX_867_2 q_tmp = sub(31, exp_arr[k * num_freq_bands + l]); #else q_tmp = add( sub( Q31, min_exp ), sub( Q31, h_dirac_output_synthesis_state->proto_power_smooth_q ) ); #endif } } Loading