Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -93,6 +93,7 @@ #define FIX_1996_MASKING_NOISE /* Dlb: Heavy precision loss in ola buffers causing discontinuity*/ #define FIX1998_APA_EXEC_SCALING /* FhG: fix scaling of apa_exec_ivas_fx(); avoid continuously worse scaling with previous data */ #define FIX2007_BASSPSFILTER_OVERFLOW /* FhG: use saturing operator, to avoid overflow in bass_psfilter_fx() */ #define FIX_ISSUE_2004_LPC_SHB_SAT /* Dolby: Issue 2004: prevent saturation of the LPC SHB filter */ #define FIX_2009_HIGH_NOISE_FLOOR_FOR_FX_DEC /* FhG: Corrected the q_input in the input of generate_masking_noise_dirac_ivas_fx() */ /* #################### Start BASOP porting switches ############################ */ Loading lib_enc/swb_tbe_enc_fx.c +33 −15 Original line number Diff line number Diff line Loading @@ -3161,7 +3161,25 @@ void swb_tbe_enc_ivas_fx( enerG = Enr_1_Az_fx( lpc_shb1, 2 * L_SUBFR ); /* Q3 */ /* if the LP gain is greater than a threshold, avoid saturation */ #ifdef FIX_ISSUE_2004_LPC_SHB_SAT Word16 flag_sat = 0; Word16 lpc_shb_fx0_req_shift = sub( norm_s( lpc_shb_fx[0] ), 2 ); IF( GT_16( lpc_shb_fx0_req_shift, 0 ) ) { FOR( i = 1; i <= LPC_SHB_ORDER; i++ ) { IF( LT_16( norm_s( lpc_shb_fx[i] ), lpc_shb_fx0_req_shift ) ) { flag_sat = 1; break; } } } IF( GT_16( enerG, 256 /* 32.0 in Q3 */ ) || flag_sat ) #else IF( GT_16( enerG, 256 /*32 Q3*/ ) ) #endif { set16_fx( lpc_shb_fx, 0, LPC_SHB_ORDER + 1 ); E_LPC_lev_dur( R_h, R_l, lpc_shb_fx, LepsP, 2, NULL ); /* LPC in Q14 */ Loading Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -93,6 +93,7 @@ #define FIX_1996_MASKING_NOISE /* Dlb: Heavy precision loss in ola buffers causing discontinuity*/ #define FIX1998_APA_EXEC_SCALING /* FhG: fix scaling of apa_exec_ivas_fx(); avoid continuously worse scaling with previous data */ #define FIX2007_BASSPSFILTER_OVERFLOW /* FhG: use saturing operator, to avoid overflow in bass_psfilter_fx() */ #define FIX_ISSUE_2004_LPC_SHB_SAT /* Dolby: Issue 2004: prevent saturation of the LPC SHB filter */ #define FIX_2009_HIGH_NOISE_FLOOR_FOR_FX_DEC /* FhG: Corrected the q_input in the input of generate_masking_noise_dirac_ivas_fx() */ /* #################### Start BASOP porting switches ############################ */ Loading
lib_enc/swb_tbe_enc_fx.c +33 −15 Original line number Diff line number Diff line Loading @@ -3161,7 +3161,25 @@ void swb_tbe_enc_ivas_fx( enerG = Enr_1_Az_fx( lpc_shb1, 2 * L_SUBFR ); /* Q3 */ /* if the LP gain is greater than a threshold, avoid saturation */ #ifdef FIX_ISSUE_2004_LPC_SHB_SAT Word16 flag_sat = 0; Word16 lpc_shb_fx0_req_shift = sub( norm_s( lpc_shb_fx[0] ), 2 ); IF( GT_16( lpc_shb_fx0_req_shift, 0 ) ) { FOR( i = 1; i <= LPC_SHB_ORDER; i++ ) { IF( LT_16( norm_s( lpc_shb_fx[i] ), lpc_shb_fx0_req_shift ) ) { flag_sat = 1; break; } } } IF( GT_16( enerG, 256 /* 32.0 in Q3 */ ) || flag_sat ) #else IF( GT_16( enerG, 256 /*32 Q3*/ ) ) #endif { set16_fx( lpc_shb_fx, 0, LPC_SHB_ORDER + 1 ); E_LPC_lev_dur( R_h, R_l, lpc_shb_fx, LepsP, 2, NULL ); /* LPC in Q14 */ Loading