Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,7 @@ #define HARMONIZE_2494_FdCng_decodeSID_fx /* FhG: harmonize FdCng_decodeSID_fx with _ivas_ version */ #define FIX_BASOP_2509_EVS_CONCEAL_UNINIT_MEM /* FhG: BASOP 2509: st->hTcxCfg->psychParamsCurrent is not initialized */ #define HARMONIZE_2537_SetTCXModeInfo /* FhG: Harmonize SetTCXModeInfo */ //#define HARMONIZE_2537_GetTCXMaxenergyChange /* FhG: Harmonize GetTCXMaxenergyChange*/ /* #################### End BE switches ################################## */ Loading lib_enc/cod_tcx_fx.c +8 −0 Original line number Diff line number Diff line Loading @@ -4906,7 +4906,11 @@ void TNSAnalysisStereo_fx( ELSE { Word16 maxEnergyChange_fx; #ifdef HARMONIZE_2537_GetTCXMaxenergyChange maxEnergyChange_fx = mac_r( L_mult( GetTCXMaxenergyChange_fx( sts[0]->hTranDet, isTCX10, NSUBBLOCKS, 3, 1 /*non-EVS*/ ), 16384 ), GetTCXMaxenergyChange_fx( sts[1]->hTranDet, isTCX10, NSUBBLOCKS, 3, 1 /*non-EVS*/ ), 16384 ); #else maxEnergyChange_fx = mac_r( L_mult( GetTCXMaxenergyChange_ivas_fx( sts[0]->hTranDet, isTCX10, NSUBBLOCKS, 3 ), 16384 ), GetTCXMaxenergyChange_ivas_fx( sts[1]->hTranDet, isTCX10, NSUBBLOCKS, 3 ), 16384 ); #endif IF( GE_16( maxEnergyChange_fx, shl( pTnsParameters[0]->minEnergyChange, Q3 - Q7 ) ) ) { Loading Loading @@ -5200,7 +5204,11 @@ void TNSAnalysisStereo_fx( } ELSE { #ifdef HARMONIZE_2537_GetTCXMaxenergyChange Word16 maxEnergyChange_fx = GetTCXMaxenergyChange_fx( sts[ch]->hTranDet, isTCX10, NSUBBLOCKS, 3, 1 /*non-EVS*/ ); #else Word16 maxEnergyChange_fx = GetTCXMaxenergyChange_ivas_fx( sts[ch]->hTranDet, isTCX10, NSUBBLOCKS, 3 ); #endif IF( GE_16( maxEnergyChange_fx, shl( pTnsParameters->minEnergyChange, Q3 - Q7 ) ) ) { Loading lib_enc/prot_fx_enc.h +9 −0 Original line number Diff line number Diff line Loading @@ -932,6 +932,14 @@ Word32 GetTCXAvgTemporalFlatnessMeasure_ivas_fx( * @param nPrevSubblocks Number of subblocks from the previous frames to use for the calculation. * @param maximum energy change with exponent NRG_CHANGE_E */ #ifdef HARMONIZE_2537_GetTCXMaxenergyChange Word16 GetTCXMaxenergyChange_fx( TRAN_DET_HANDLE hTranDet, const Word8 isTCX10, const Word16 nCurrentSubblocks, const Word16 nPrevSubblocks, Word16 element_mode); #else Word16 GetTCXMaxenergyChange_fx( TRAN_DET_HANDLE hTranDet, const Word8 isTCX10, Loading @@ -943,6 +951,7 @@ Word16 GetTCXMaxenergyChange_ivas_fx( const Word8 isTCX10, const Word16 nCurrentSubblocks, const Word16 nPrevSubblocks ); #endif /** Set TCX window length and overlap configuration * @param prevEnergyHF previous HF energy. Exponent must be the same as for currEnergyHF. Loading lib_enc/tcx_ltp_enc_fx.c +12 −0 Original line number Diff line number Diff line Loading @@ -418,7 +418,11 @@ void tcx_ltp_encode_fx( tempFlatness = GetTCXAvgTemporalFlatnessMeasure_fx( hTranDet, NSUBBLOCKS, nPrevSubblocks ); #ifdef HARMONIZE_2537_GetTCXMaxenergyChange maxEnergyChange = GetTCXMaxenergyChange_fx( hTranDet, (const Word8) isTCX10, NSUBBLOCKS, nPrevSubblocks, EVS_MONO ); #else maxEnergyChange = GetTCXMaxenergyChange_fx( hTranDet, (const Word8) isTCX10, NSUBBLOCKS, nPrevSubblocks ); #endif /* Switch LTP on */ test(); Loading Loading @@ -768,12 +772,20 @@ void tcx_ltp_encode_ivas_fx( IF( EQ_16( st->element_mode, IVAS_CPE_DFT ) ) { tempFlatness_fx = extract_h( L_shl_sat( GetTCXAvgTemporalFlatnessMeasure_ivas_fx( st->hTranDet, NSUBBLOCKS - NSUBBLOCKS_SHIFT, add( nPrevSubblocks, NSUBBLOCKS_SHIFT ) ), 2 ) ); #ifdef HARMONIZE_2537_GetTCXMaxenergyChange maxEnergyChange_fx = GetTCXMaxenergyChange_fx( st->hTranDet, (const Word8) isTCX10, NSUBBLOCKS - NSUBBLOCKS_SHIFT, add( nPrevSubblocks, NSUBBLOCKS_SHIFT ), st->element_mode ); // Q3 #else maxEnergyChange_fx = GetTCXMaxenergyChange_ivas_fx( st->hTranDet, (const Word8) isTCX10, NSUBBLOCKS - NSUBBLOCKS_SHIFT, add( nPrevSubblocks, NSUBBLOCKS_SHIFT ) ); // Q3 #endif } ELSE { tempFlatness_fx = extract_h( L_shl_sat( ( GetTCXAvgTemporalFlatnessMeasure_ivas_fx( st->hTranDet, NSUBBLOCKS, nPrevSubblocks ) ), 2 ) ); // Q7 #ifdef HARMONIZE_2537_GetTCXMaxenergyChange maxEnergyChange_fx = GetTCXMaxenergyChange_fx( st->hTranDet, (const Word8) isTCX10, NSUBBLOCKS, nPrevSubblocks, st->element_mode ); // Q3 #else maxEnergyChange_fx = GetTCXMaxenergyChange_ivas_fx( st->hTranDet, (const Word8) isTCX10, NSUBBLOCKS, nPrevSubblocks ); // Q3 #endif } /* Switch LTP on */ Loading lib_enc/tns_base_enc_fx.c +4 −0 Original line number Diff line number Diff line Loading @@ -405,7 +405,11 @@ Word16 DetectTnsFilt_fx( } ELSE { #ifdef HARMONIZE_2537_GetTCXMaxenergyChange maxEnergyChange = GetTCXMaxenergyChange_fx( hTranDet, isTCX10, NSUBBLOCKS, 3, 1 /*non-EVS*/ ); #else maxEnergyChange = GetTCXMaxenergyChange_ivas_fx( hTranDet, isTCX10, NSUBBLOCKS, 3 ); #endif IF( sub( maxEnergyChange, shl( pTnsParameters->minEnergyChange, Q3 - Q7 ) ) >= 0 ) { Loading Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,7 @@ #define HARMONIZE_2494_FdCng_decodeSID_fx /* FhG: harmonize FdCng_decodeSID_fx with _ivas_ version */ #define FIX_BASOP_2509_EVS_CONCEAL_UNINIT_MEM /* FhG: BASOP 2509: st->hTcxCfg->psychParamsCurrent is not initialized */ #define HARMONIZE_2537_SetTCXModeInfo /* FhG: Harmonize SetTCXModeInfo */ //#define HARMONIZE_2537_GetTCXMaxenergyChange /* FhG: Harmonize GetTCXMaxenergyChange*/ /* #################### End BE switches ################################## */ Loading
lib_enc/cod_tcx_fx.c +8 −0 Original line number Diff line number Diff line Loading @@ -4906,7 +4906,11 @@ void TNSAnalysisStereo_fx( ELSE { Word16 maxEnergyChange_fx; #ifdef HARMONIZE_2537_GetTCXMaxenergyChange maxEnergyChange_fx = mac_r( L_mult( GetTCXMaxenergyChange_fx( sts[0]->hTranDet, isTCX10, NSUBBLOCKS, 3, 1 /*non-EVS*/ ), 16384 ), GetTCXMaxenergyChange_fx( sts[1]->hTranDet, isTCX10, NSUBBLOCKS, 3, 1 /*non-EVS*/ ), 16384 ); #else maxEnergyChange_fx = mac_r( L_mult( GetTCXMaxenergyChange_ivas_fx( sts[0]->hTranDet, isTCX10, NSUBBLOCKS, 3 ), 16384 ), GetTCXMaxenergyChange_ivas_fx( sts[1]->hTranDet, isTCX10, NSUBBLOCKS, 3 ), 16384 ); #endif IF( GE_16( maxEnergyChange_fx, shl( pTnsParameters[0]->minEnergyChange, Q3 - Q7 ) ) ) { Loading Loading @@ -5200,7 +5204,11 @@ void TNSAnalysisStereo_fx( } ELSE { #ifdef HARMONIZE_2537_GetTCXMaxenergyChange Word16 maxEnergyChange_fx = GetTCXMaxenergyChange_fx( sts[ch]->hTranDet, isTCX10, NSUBBLOCKS, 3, 1 /*non-EVS*/ ); #else Word16 maxEnergyChange_fx = GetTCXMaxenergyChange_ivas_fx( sts[ch]->hTranDet, isTCX10, NSUBBLOCKS, 3 ); #endif IF( GE_16( maxEnergyChange_fx, shl( pTnsParameters->minEnergyChange, Q3 - Q7 ) ) ) { Loading
lib_enc/prot_fx_enc.h +9 −0 Original line number Diff line number Diff line Loading @@ -932,6 +932,14 @@ Word32 GetTCXAvgTemporalFlatnessMeasure_ivas_fx( * @param nPrevSubblocks Number of subblocks from the previous frames to use for the calculation. * @param maximum energy change with exponent NRG_CHANGE_E */ #ifdef HARMONIZE_2537_GetTCXMaxenergyChange Word16 GetTCXMaxenergyChange_fx( TRAN_DET_HANDLE hTranDet, const Word8 isTCX10, const Word16 nCurrentSubblocks, const Word16 nPrevSubblocks, Word16 element_mode); #else Word16 GetTCXMaxenergyChange_fx( TRAN_DET_HANDLE hTranDet, const Word8 isTCX10, Loading @@ -943,6 +951,7 @@ Word16 GetTCXMaxenergyChange_ivas_fx( const Word8 isTCX10, const Word16 nCurrentSubblocks, const Word16 nPrevSubblocks ); #endif /** Set TCX window length and overlap configuration * @param prevEnergyHF previous HF energy. Exponent must be the same as for currEnergyHF. Loading
lib_enc/tcx_ltp_enc_fx.c +12 −0 Original line number Diff line number Diff line Loading @@ -418,7 +418,11 @@ void tcx_ltp_encode_fx( tempFlatness = GetTCXAvgTemporalFlatnessMeasure_fx( hTranDet, NSUBBLOCKS, nPrevSubblocks ); #ifdef HARMONIZE_2537_GetTCXMaxenergyChange maxEnergyChange = GetTCXMaxenergyChange_fx( hTranDet, (const Word8) isTCX10, NSUBBLOCKS, nPrevSubblocks, EVS_MONO ); #else maxEnergyChange = GetTCXMaxenergyChange_fx( hTranDet, (const Word8) isTCX10, NSUBBLOCKS, nPrevSubblocks ); #endif /* Switch LTP on */ test(); Loading Loading @@ -768,12 +772,20 @@ void tcx_ltp_encode_ivas_fx( IF( EQ_16( st->element_mode, IVAS_CPE_DFT ) ) { tempFlatness_fx = extract_h( L_shl_sat( GetTCXAvgTemporalFlatnessMeasure_ivas_fx( st->hTranDet, NSUBBLOCKS - NSUBBLOCKS_SHIFT, add( nPrevSubblocks, NSUBBLOCKS_SHIFT ) ), 2 ) ); #ifdef HARMONIZE_2537_GetTCXMaxenergyChange maxEnergyChange_fx = GetTCXMaxenergyChange_fx( st->hTranDet, (const Word8) isTCX10, NSUBBLOCKS - NSUBBLOCKS_SHIFT, add( nPrevSubblocks, NSUBBLOCKS_SHIFT ), st->element_mode ); // Q3 #else maxEnergyChange_fx = GetTCXMaxenergyChange_ivas_fx( st->hTranDet, (const Word8) isTCX10, NSUBBLOCKS - NSUBBLOCKS_SHIFT, add( nPrevSubblocks, NSUBBLOCKS_SHIFT ) ); // Q3 #endif } ELSE { tempFlatness_fx = extract_h( L_shl_sat( ( GetTCXAvgTemporalFlatnessMeasure_ivas_fx( st->hTranDet, NSUBBLOCKS, nPrevSubblocks ) ), 2 ) ); // Q7 #ifdef HARMONIZE_2537_GetTCXMaxenergyChange maxEnergyChange_fx = GetTCXMaxenergyChange_fx( st->hTranDet, (const Word8) isTCX10, NSUBBLOCKS, nPrevSubblocks, st->element_mode ); // Q3 #else maxEnergyChange_fx = GetTCXMaxenergyChange_ivas_fx( st->hTranDet, (const Word8) isTCX10, NSUBBLOCKS, nPrevSubblocks ); // Q3 #endif } /* Switch LTP on */ Loading
lib_enc/tns_base_enc_fx.c +4 −0 Original line number Diff line number Diff line Loading @@ -405,7 +405,11 @@ Word16 DetectTnsFilt_fx( } ELSE { #ifdef HARMONIZE_2537_GetTCXMaxenergyChange maxEnergyChange = GetTCXMaxenergyChange_fx( hTranDet, isTCX10, NSUBBLOCKS, 3, 1 /*non-EVS*/ ); #else maxEnergyChange = GetTCXMaxenergyChange_ivas_fx( hTranDet, isTCX10, NSUBBLOCKS, 3 ); #endif IF( sub( maxEnergyChange, shl( pTnsParameters->minEnergyChange, Q3 - Q7 ) ) >= 0 ) { Loading