From ce42f33e71836d2f93bf1cd9dc69b7ef1be7a97c Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Thu, 16 Jan 2025 09:32:53 +0100 Subject: [PATCH 1/6] remove unnecessary condition --- lib_com/options.h | 4 ++++ lib_rend/ivas_dirac_output_synthesis_dec.c | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index d5314dd12..deff82387 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -121,6 +121,7 @@ #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 */ @@ -148,4 +149,7 @@ #define FIX_11_1_IVAS_SPAR_DEC_UPMIXER_SF_RND_COEFFS /* FhG ivas_spar_com.c: Zeroes very small negative coeffs via L_shr_r (was L_shr) */ #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 + #endif diff --git a/lib_rend/ivas_dirac_output_synthesis_dec.c b/lib_rend/ivas_dirac_output_synthesis_dec.c index 4686ca1e6..893567e3a 100644 --- a/lib_rend/ivas_dirac_output_synthesis_dec.c +++ b/lib_rend/ivas_dirac_output_synthesis_dec.c @@ -2133,7 +2133,7 @@ void ivas_dirac_dec_output_synthesis_process_subframe_psd_ls_fx( 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(); - +#ifndef FIX_867_2 IF( EQ_32( *( p_power_smooth_prev ), EPSILON_FX ) ) { p_power_smooth_prev++; @@ -2146,13 +2146,16 @@ void ivas_dirac_dec_output_synthesis_process_subframe_psd_ls_fx( } ELSE { +#endif 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(); *( p_power_smooth++ ) = L_tmp; /*Q=31-(exp-(31-q_proto_power_smooth))*/ move32(); +#ifndef FIX_867_2 } +#endif } } -- GitLab From 4a1bf2cf5073bcb6c6e733ad097de4cd4b004ce3 Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Mon, 20 Jan 2025 11:42:49 +0100 Subject: [PATCH 2/6] fix problems with division in running average --- lib_rend/ivas_dirac_output_synthesis_dec.c | 83 ++++++++++++++-------- 1 file changed, 54 insertions(+), 29 deletions(-) diff --git a/lib_rend/ivas_dirac_output_synthesis_dec.c b/lib_rend/ivas_dirac_output_synthesis_dec.c index 893567e3a..b2b1be39f 100644 --- a/lib_rend/ivas_dirac_output_synthesis_dec.c +++ b/lib_rend/ivas_dirac_output_synthesis_dec.c @@ -2122,43 +2122,68 @@ 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++ ) { - 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(); -#ifndef FIX_867_2 - IF( EQ_32( *( p_power_smooth_prev ), EPSILON_FX ) ) - { - 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(); + Word16 exp_tmp_1; // exp for p_power_smooth_prev - *( p_power_smooth++ ) = L_tmp; /*Q=31-(exp-(31-q_proto_power_smooth))*/ - move32(); - } - ELSE - { -#endif - 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(); + g2 = L_sub( ONE_IN_Q31, alpha[l] ); // Q31 + + L_tmp = Madd_32_32( Mpy_32_32( g2, *p_power_smooth_prev), alpha[l], *p_power_smooth ); //(Q31, q_proto_power_smooth) -> q_proto_power_smooth - *( p_power_smooth++ ) = L_tmp; /*Q=31-(exp-(31-q_proto_power_smooth))*/ - move32(); -#ifndef FIX_867_2 - } -#endif + L_tmp = BASOP_Util_Add_Mant32Exp( L_tmp, + sub(31, h_dirac_output_synthesis_state->proto_power_smooth_q), + EPSILON_FX_M, EPSILON_FX_E, &exp_tmp_1 + ); + + *(p_power_smooth_prev++) = L_tmp; + move32(); + + L_tmp = BASOP_Util_Divide3232_Scale_cadence( ONE_IN_Q31, L_tmp, &exp ); /*Q=31-(exp-exp_tmp_1)*/ + exp_arr[k * num_freq_bands + l] = sub(exp,exp_tmp_1); + move16(); + + *( p_power_smooth++ ) = L_tmp; /*Q=31-(exp-exp_tmp_1))*/ + move32(); } } + 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_smooth1", "w"); + + 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); + } + } + // Move proto_power_smooth_fx to common Q-factor min_exp = MIN_16; move16(); @@ -2187,7 +2212,7 @@ 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++; - q_tmp = add( sub( Q31, min_exp ), sub( Q31, h_dirac_output_synthesis_state->proto_power_smooth_q ) ); + q_tmp = sub(31, exp_arr[k * num_freq_bands + l]); } } -- GitLab From e5cc13da96be5519fa9dc0f4bfae9f1deedda398 Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Tue, 4 Feb 2025 15:29:38 +0100 Subject: [PATCH 3/6] fix encapsulation --- lib_com/options.h | 3 +- lib_rend/ivas_dirac_output_synthesis_dec.c | 83 +++++++++++----------- 2 files changed, 42 insertions(+), 44 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index deff82387..31b3ec8af 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -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 */ @@ -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 diff --git a/lib_rend/ivas_dirac_output_synthesis_dec.c b/lib_rend/ivas_dirac_output_synthesis_dec.c index b2b1be39f..4eca8eed4 100644 --- a/lib_rend/ivas_dirac_output_synthesis_dec.c +++ b/lib_rend/ivas_dirac_output_synthesis_dec.c @@ -2122,40 +2122,24 @@ 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++ ) { - Word16 exp_tmp_1; // exp for p_power_smooth_prev +#ifdef FIX_867 + Word16 exp_tmp_1; // exp for p_power_smooth_prev g2 = L_sub( ONE_IN_Q31, alpha[l] ); // Q31 - L_tmp = Madd_32_32( Mpy_32_32( g2, *p_power_smooth_prev), alpha[l], *p_power_smooth ); //(Q31, q_proto_power_smooth) -> q_proto_power_smooth + L_tmp = Madd_32_32( Mpy_32_32( g2, *p_power_smooth_prev), alpha[l], *p_power_smooth ); //(Q31, q_proto_power_smooth) -> q_proto_power_smooth - L_tmp = BASOP_Util_Add_Mant32Exp( L_tmp, - sub(31, h_dirac_output_synthesis_state->proto_power_smooth_q), - EPSILON_FX_M, EPSILON_FX_E, &exp_tmp_1 + L_tmp = BASOP_Util_Add_Mant32Exp( L_tmp, + sub(31, h_dirac_output_synthesis_state->proto_power_smooth_q), + EPSILON_FX_M, EPSILON_FX_E, &exp_tmp_1 ); - *(p_power_smooth_prev++) = L_tmp; - move32(); + *(p_power_smooth_prev++) = L_tmp; + move32(); L_tmp = BASOP_Util_Divide3232_Scale_cadence( ONE_IN_Q31, L_tmp, &exp ); /*Q=31-(exp-exp_tmp_1)*/ exp_arr[k * num_freq_bands + l] = sub(exp,exp_tmp_1); @@ -2163,27 +2147,38 @@ 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(); + + IF( EQ_32( *( p_power_smooth_prev ), EPSILON_FX ) ) + { + 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 + { + 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(); + + *( p_power_smooth++ ) = L_tmp; /*Q=31-(exp-(31-q_proto_power_smooth))*/ + move32(); + } +#endif } } - 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_smooth1", "w"); - - 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); - } - } - // Move proto_power_smooth_fx to common Q-factor min_exp = MIN_16; move16(); @@ -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 } } -- GitLab From 68d42d027466d7974a504bdf8683699cb18169b9 Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Tue, 4 Feb 2025 15:59:37 +0100 Subject: [PATCH 4/6] fix formating --- lib_rend/ivas_dirac_output_synthesis_dec.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/lib_rend/ivas_dirac_output_synthesis_dec.c b/lib_rend/ivas_dirac_output_synthesis_dec.c index 4eca8eed4..5ae791a96 100644 --- a/lib_rend/ivas_dirac_output_synthesis_dec.c +++ b/lib_rend/ivas_dirac_output_synthesis_dec.c @@ -2130,19 +2130,18 @@ void ivas_dirac_dec_output_synthesis_process_subframe_psd_ls_fx( Word16 exp_tmp_1; // exp for p_power_smooth_prev g2 = L_sub( ONE_IN_Q31, alpha[l] ); // Q31 - - L_tmp = Madd_32_32( Mpy_32_32( g2, *p_power_smooth_prev), alpha[l], *p_power_smooth ); //(Q31, q_proto_power_smooth) -> q_proto_power_smooth - L_tmp = BASOP_Util_Add_Mant32Exp( L_tmp, - sub(31, h_dirac_output_synthesis_state->proto_power_smooth_q), - EPSILON_FX_M, EPSILON_FX_E, &exp_tmp_1 - ); + L_tmp = Madd_32_32( Mpy_32_32( g2, *p_power_smooth_prev ), alpha[l], *p_power_smooth ); //(Q31, q_proto_power_smooth) -> q_proto_power_smooth - *(p_power_smooth_prev++) = L_tmp; - move32(); + L_tmp = BASOP_Util_Add_Mant32Exp( L_tmp, + sub( 31, h_dirac_output_synthesis_state->proto_power_smooth_q ), + EPSILON_FX_M, EPSILON_FX_E, &exp_tmp_1 ); + + *( p_power_smooth_prev++ ) = L_tmp; + move32(); L_tmp = BASOP_Util_Divide3232_Scale_cadence( ONE_IN_Q31, L_tmp, &exp ); /*Q=31-(exp-exp_tmp_1)*/ - exp_arr[k * num_freq_bands + l] = sub(exp,exp_tmp_1); + exp_arr[k * num_freq_bands + l] = sub( exp, exp_tmp_1 ); move16(); *( p_power_smooth++ ) = L_tmp; /*Q=31-(exp-exp_tmp_1))*/ @@ -2208,7 +2207,7 @@ void ivas_dirac_dec_output_synthesis_process_subframe_psd_ls_fx( move32(); p_power_smooth++; #ifdef FIX_867_2 - q_tmp = sub(31, exp_arr[k * num_freq_bands + l]); + 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 -- GitLab From e97487cadc66247f5dfcf5b5b94f078087b150b5 Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Tue, 20 May 2025 12:09:27 +0200 Subject: [PATCH 5/6] add #ifndef FIX_1696_UNNECESSARY_IF_CONDITION --- lib_com/options.h | 1 + lib_rend/ivas_dirac_output_synthesis_dec_fx.c | 24 +++---------------- 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 75323cf13..63dd6625c 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -96,6 +96,7 @@ #define FIX_1481_HARDCODE_DIV /* FhG: hardcode division results in stereo_dmx_evs_init_encoder_fx() */ #define VEC_ARITH_OPT_v1 #define FIX_1486_IND_SHB_RES /* VA: Fix for issue 1486: align the usage of IND_SHB_RES_GS indices with float code */ +#define FIX_1696_UNNECESSARY_IF_CONDITION /*FhG: remove unnecessary code*/ #define TEST_HR #endif diff --git a/lib_rend/ivas_dirac_output_synthesis_dec_fx.c b/lib_rend/ivas_dirac_output_synthesis_dec_fx.c index 865e34acd..8f8208e67 100644 --- a/lib_rend/ivas_dirac_output_synthesis_dec_fx.c +++ b/lib_rend/ivas_dirac_output_synthesis_dec_fx.c @@ -2285,27 +2285,6 @@ void ivas_dirac_dec_output_synthesis_process_subframe_psd_ls_fx( { 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 - - L_tmp = Madd_32_32( Mpy_32_32( g2, *p_power_smooth_prev ), alpha[l], *p_power_smooth ); //(Q31, q_proto_power_smooth) -> q_proto_power_smooth - - L_tmp = BASOP_Util_Add_Mant32Exp( L_tmp, - sub( 31, h_dirac_output_synthesis_state->proto_power_smooth_q ), - EPSILON_FX_M, EPSILON_FX_E, &exp_tmp_1 ); - - *( p_power_smooth_prev++ ) = L_tmp; - move32(); - - L_tmp = BASOP_Util_Divide3232_Scale_cadence( ONE_IN_Q31, L_tmp, &exp ); /*Q=31-(exp-exp_tmp_1)*/ - exp_arr[k * num_freq_bands + l] = sub( exp, exp_tmp_1 ); - move16(); - - *( 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 @@ -2320,6 +2299,7 @@ void ivas_dirac_dec_output_synthesis_process_subframe_psd_ls_fx( #else assert( h_dirac_output_synthesis_state->proto_power_smooth_prev_q == h_dirac_output_synthesis_state->proto_power_smooth_q ); #endif +#ifndef FIX_1696_UNNECESSARY_IF_CONDITION IF( EQ_32( *( p_power_smooth_prev ), EPSILON_FX ) ) { p_power_smooth_prev++; @@ -2332,12 +2312,14 @@ void ivas_dirac_dec_output_synthesis_process_subframe_psd_ls_fx( } ELSE { +#endif L_tmp = BASOP_Util_Divide3232_Scale_newton( 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(); *( p_power_smooth++ ) = L_tmp; /*Q=31-(exp-(31-q_proto_power_smooth))*/ move32(); +#ifndef FIX_1696_UNNECESSARY_IF_CONDITION } #endif } -- GitLab From c9213edc3b86a696642440f78f2280fe4b3e127b Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Wed, 2 Jul 2025 11:46:36 +0200 Subject: [PATCH 6/6] remove code under ifdef FIX_867_2 --- lib_rend/ivas_dirac_output_synthesis_dec_fx.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib_rend/ivas_dirac_output_synthesis_dec_fx.c b/lib_rend/ivas_dirac_output_synthesis_dec_fx.c index 742c221be..915d4f3e0 100644 --- a/lib_rend/ivas_dirac_output_synthesis_dec_fx.c +++ b/lib_rend/ivas_dirac_output_synthesis_dec_fx.c @@ -2599,11 +2599,7 @@ 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 } } -- GitLab