Loading lib_com/options.h +0 −1 Original line number Diff line number Diff line Loading @@ -92,7 +92,6 @@ #define NONBE_FIX_ISSUE_2206_AVOID_OVERFLOW_MSVQ_Interpol_Tran_fx /* FhG: Fix saturation crash in MSVQ_Interpol_Tran_fx() */ #define NONBE_FIX_ISSUE_2206_SWB_EXPERIMENT_FIX_2527 /* Fix crash from issue #2527 */ #define FIX_FLOAT_1539_G192_FORMAT_SWITCH /* VA/Nokia: reintroduce format switching for g192 bitstreams */ #define HARMONIZE_2553_TonalConceal_Apply /* FhG: Harmonize TonalMDCTConceal_Apply with its ivas derivate */ #define HARMONIZE_2553_TonalConceal_Init /* FhG: Harmonize TonalMDCTConceal_Init with its ivas derivate */ #define HARMONIZE_2553_TonalConceal_SaveFreqSignal /* FhG: Harmonize TonalConceal_SaveFreqSignal with its ivas derivate */ #define HARMONIZE_2553_TonalConceal_SaveTimeSignal /* FhG: Harmonize TonalConceal_SaveTimeSignal with its ivas derivate */ Loading lib_com/prot_fx.h +0 −11 Original line number Diff line number Diff line Loading @@ -5604,21 +5604,10 @@ void TonalMDCTConceal_UpdateState_fx( const Word16 badBlock, const Word8 tonalConcealmentActive ); #ifndef HARMONIZE_2553_TonalConceal_Apply void TonalMDCTConceal_Apply_fx( const TonalMDCTConcealPtr hTonalMDCTConc, /*IN */ Word32 *mdctSpectrum, /*IN/OUT*/ Word16 *mdctSpectrum_exp /*IN */ ); #endif #ifdef HARMONIZE_2553_TonalConceal_Apply void TonalMDCTConceal_Apply_fx( Word16 element_mode, #else void TonalMDCTConceal_Apply_ivas_fx( #endif const TonalMDCTConcealPtr hTonalMDCTConc, /*IN */ Word32 *mdctSpectrum, /*IN/OUT*/ Word16 mdctSpectrum_exp, /*IN */ Loading lib_dec/dec_tcx_fx.c +0 −8 Original line number Diff line number Diff line Loading @@ -973,11 +973,7 @@ void decoder_tcx_fx( test(); IF( bfi && st->tonal_mdct_plc_active ) { #ifdef HARMONIZE_2553_TonalConceal_Apply TonalMDCTConceal_Apply_fx( st->element_mode, st->hTonalMDCTConc, x, x_e, NULL ); #else TonalMDCTConceal_Apply_fx( st->hTonalMDCTConc, x, &x_e ); #endif } tmp32 = L_deposit_h( 0 ); Loading Loading @@ -5212,11 +5208,7 @@ void decoder_tcx_noiseshaping_igf_fx( test(); IF( bfi && st->tonal_mdct_plc_active && NE_16( st->element_mode, IVAS_CPE_MDCT ) ) { #ifdef HARMONIZE_2553_TonalConceal_Apply TonalMDCTConceal_Apply_fx( st->element_mode, st->hTonalMDCTConc, x_fx, *x_e, st->hTcxCfg->psychParamsCurrent ); #else TonalMDCTConceal_Apply_ivas_fx( st->hTonalMDCTConc, x_fx, *x_e, st->hTcxCfg->psychParamsCurrent ); #endif /* If exponent has been updated after TonalMDCTConceal_Apply, then shift the spectrum to common exponent. */ } Loading lib_dec/ivas_mdct_core_dec_fx.c +0 −4 Original line number Diff line number Diff line Loading @@ -1724,11 +1724,7 @@ void ivas_mdct_core_tns_ns_fx( { st->hTonalMDCTConc->secondLastBlockData.scaleFactors_max_e = s_max( st->hTonalMDCTConc->secondLastBlockData.scaleFactors_max_e, st->hTonalMDCTConc->secondLastBlockData.scaleFactors_exp[i] ); } #ifdef HARMONIZE_2553_TonalConceal_Apply TonalMDCTConceal_Apply_fx( st->element_mode, st->hTonalMDCTConc, x_fx[ch][0], x_e, st->hTcxCfg->psychParamsCurrent ); #else TonalMDCTConceal_Apply_ivas_fx( st->hTonalMDCTConc, x_fx[ch][0], x_e, st->hTcxCfg->psychParamsCurrent ); #endif } test(); Loading lib_dec/tonalMDCTconcealment_fx.c +0 −125 Original line number Diff line number Diff line Loading @@ -2523,112 +2523,16 @@ void TonalMDCTConceal_InsertNoise_fx( return; } #ifndef HARMONIZE_2553_TonalConceal_Apply void TonalMDCTConceal_Apply_fx( const TonalMDCTConcealPtr hTonalMDCTConc, /*IN */ Word32 *mdctSpectrum, // Q31-*mdctSpectrum_exp /*IN/OUT*/ Word16 *mdctSpectrum_exp /*IN */ ) { Word16 i, l, exp; Word16 *phaseDiff, *pCurrentPhase; Word32 phaseToAdd, currentPhase; Word32 powerSpectrum[L_FRAME_MAX]; Word16 nSamples; IF( s_and( hTonalMDCTConc->lastBlockData.blockIsValid, hTonalMDCTConc->secondLastBlockData.blockIsValid ) ) { assert( hTonalMDCTConc->pTCI->numIndexes > 0 ); nSamples = hTonalMDCTConc->nNonZeroSamples; move16(); assert( hTonalMDCTConc->pTCI->upperIndex[hTonalMDCTConc->pTCI->numIndexes - 1] < nSamples ); { mdct_shaping_16( hTonalMDCTConc->secondLastPowerSpectrum, hTonalMDCTConc->nSamplesCore, nSamples, hTonalMDCTConc->secondLastBlockData.scaleFactors, hTonalMDCTConc->secondLastBlockData.scaleFactors_exp, hTonalMDCTConc->secondLastBlockData.scaleFactors_max_e, powerSpectrum ); } phaseDiff = hTonalMDCTConc->pTCI->phaseDiff; /* if multiple frame loss occurs use the phase from the last frame and continue rotating */ pCurrentPhase = hTonalMDCTConc->pTCI->phase_currentFramePredicted; exp = sub( *mdctSpectrum_exp, add( add( hTonalMDCTConc->secondLastPowerSpectrum_exp, add( hTonalMDCTConc->secondLastBlockData.gain_tcx_exp, 1 ) ), hTonalMDCTConc->secondLastBlockData.scaleFactors_max_e ) ); IF( !hTonalMDCTConc->lastBlockData.blockIsConcealed ) { if ( hTonalMDCTConc->secondLastBlockData.tonalConcealmentActive != 0 ) { hTonalMDCTConc->nFramesLost = add( hTonalMDCTConc->nFramesLost, 2 ); /*Q1*/ move16(); } if ( hTonalMDCTConc->secondLastBlockData.tonalConcealmentActive == 0 ) { hTonalMDCTConc->nFramesLost = 3; /*Q1*/ move16(); } } /* for each index group */ FOR( i = 0; i < hTonalMDCTConc->pTCI->numIndexes; i++ ) { /*phaseToAdd = hTonalMDCTConc->nFramesLost*phaseDiff[i]; */ phaseToAdd = L_mult0( hTonalMDCTConc->nFramesLost, phaseDiff[i] ); /*Q1*3Q12=2Q13*/ /* Move phaseToAdd to range -PI..PI */ WHILE( GT_32( phaseToAdd, 25736l /*EVS_PI Q13*/ ) ) { phaseToAdd = L_sub( phaseToAdd, 51472l /*2*EVS_PI Q13*/ ); } WHILE( LT_32( phaseToAdd, -25736l /*-EVS_PI Q13*/ ) ) { phaseToAdd = L_add( phaseToAdd, 51472l /*2*EVS_PI Q13*/ ); } FOR( l = hTonalMDCTConc->pTCI->lowerIndex[i]; l <= hTonalMDCTConc->pTCI->upperIndex[i]; l++ ) { /* *pCurrentPhase and phaseToAdd are in range -PI..PI */ currentPhase = L_mac0( phaseToAdd, ( *pCurrentPhase++ ), 1 ); /*2Q13+2Q13=3Q13*/ if ( GT_32( currentPhase, 25736l /*EVS_PI Q13*/ ) ) { currentPhase = L_sub( currentPhase, 51472l /*2*EVS_PI Q13*/ ); } if ( LT_32( currentPhase, -25736l /*-EVS_PI Q13*/ ) ) { currentPhase = L_add( currentPhase, 51472l /*2*EVS_PI Q13*/ ); } /* getCosWord16 returns 1Q14*/ mdctSpectrum[l] = Mpy_32_16_1( powerSpectrum[l], getCosWord16( extract_l( currentPhase ) ) ); move32(); mdctSpectrum[l] = L_shr( mdctSpectrum[l], exp ); move32(); } } } hTonalMDCTConc->nFramesLost = add( hTonalMDCTConc->nFramesLost, 2 ); /*Q1*/ move16(); return; } #endif #ifdef HARMONIZE_2553_TonalConceal_Apply void TonalMDCTConceal_Apply_fx( Word16 element_mode, #else void TonalMDCTConceal_Apply_ivas_fx( #endif const TonalMDCTConcealPtr hTonalMDCTConc, /*IN */ Word32 *mdctSpectrum, // Q31-*mdctSpectrum_exp /*IN/OUT*/ Word16 mdctSpectrum_exp, /*IN */ const PsychoacousticParameters *psychParamsCurrent ) { #ifdef HARMONIZE_2553_TonalConceal_Apply Word16 exp; #endif Word16 i, l; Word16 *phaseDiff, *pCurrentPhase; Word32 phaseToAdd; Loading @@ -2638,16 +2542,7 @@ void TonalMDCTConceal_Apply_ivas_fx( Word16 nSamples; Word16 nBands; #ifndef HARMONIZE_2553_TonalConceal_Apply Word16 *tmp_secondLastPowerSpectrum = hTonalMDCTConc->secondLastPowerSpectrum; Word16 tmp_secondLastPowerSpectrum_exp = hTonalMDCTConc->secondLastPowerSpectrum_exp; move16(); Word16 max_nSamples = s_max( hTonalMDCTConc->nNonZeroSamples, hTonalMDCTConc->nSamplesCore ); #else IF( GT_16( element_mode, EVS_MONO ) ) #endif { // To avoid garbage values set32_fx( powerSpectrum, 0, L_FRAME_MAX ); Loading @@ -2666,24 +2561,14 @@ void TonalMDCTConceal_Apply_ivas_fx( nSamples = hTonalMDCTConc->nNonZeroSamples; move16(); assert( hTonalMDCTConc->pTCI->upperIndex[hTonalMDCTConc->pTCI->numIndexes - 1] < nSamples ); #ifdef HARMONIZE_2553_TonalConceal_Apply IF( GT_16( element_mode, EVS_MONO ) ) #endif { FOR( i = 0; i < nSamples; i++ ) { #ifdef HARMONIZE_2553_TonalConceal_Apply powerSpectrum[i] = L_deposit_h( hTonalMDCTConc->secondLastPowerSpectrum[i] ); // Q31 - secondLastPowerSpectrum_exp #else powerSpectrum[i] = L_deposit_h( tmp_secondLastPowerSpectrum[i] ); // Q31 - secondLastPowerSpectrum_exp #endif move16(); } #ifdef HARMONIZE_2553_TonalConceal_Apply powerSpectrum_exp = hTonalMDCTConc->secondLastPowerSpectrum_exp; #else powerSpectrum_exp = tmp_secondLastPowerSpectrum_exp; #endif move16(); Word16 exp1 = powerSpectrum_exp; Loading Loading @@ -2739,11 +2624,7 @@ void TonalMDCTConceal_Apply_ivas_fx( exp_right = add( exp_right, hTonalMDCTConc->secondLastBlockData.scaleFactors_exp[nBands - 1] ); Word16 max_e = s_max( exp_right, exp_left ); #ifdef HARMONIZE_2553_TonalConceal_Apply FOR( Word16 c = 0; c < s_max( hTonalMDCTConc->nNonZeroSamples, hTonalMDCTConc->nSamplesCore ); c++ ) #else FOR( Word16 c = 0; c < max_nSamples; c++ ) #endif { test(); test(); Loading @@ -2763,7 +2644,6 @@ void TonalMDCTConceal_Apply_ivas_fx( powerSpectrum_exp = max_e; move16(); } #ifdef HARMONIZE_2553_TonalConceal_Apply ELSE { Loading @@ -2775,7 +2655,6 @@ void TonalMDCTConceal_Apply_ivas_fx( powerSpectrum_exp = add( add( hTonalMDCTConc->secondLastPowerSpectrum_exp, hTonalMDCTConc->secondLastBlockData.gain_tcx_exp ), hTonalMDCTConc->secondLastBlockData.scaleFactors_max_e ); } exp = sub( mdctSpectrum_exp, add( powerSpectrum_exp, 1 ) ); #endif phaseDiff = hTonalMDCTConc->pTCI->phaseDiff; /* if multiple frame loss occurs use the phase from the last frame and continue rotating */ pCurrentPhase = hTonalMDCTConc->pTCI->phase_currentFramePredicted; Loading Loading @@ -2824,12 +2703,8 @@ void TonalMDCTConceal_Apply_ivas_fx( /* getCosWord16 returns 1Q14*/ mdctSpectrum[l] = Mpy_32_16_1( powerSpectrum[l], getCosWord16( extract_l( currentPhase ) ) ); move32(); #ifdef HARMONIZE_2553_TonalConceal_Apply mdctSpectrum[l] = L_shr( mdctSpectrum[l], exp ); move32(); #else mdctSpectrum[l] = L_shr( mdctSpectrum[l], sub( mdctSpectrum_exp, add( powerSpectrum_exp, 1 ) ) ); #endif } } } Loading Loading
lib_com/options.h +0 −1 Original line number Diff line number Diff line Loading @@ -92,7 +92,6 @@ #define NONBE_FIX_ISSUE_2206_AVOID_OVERFLOW_MSVQ_Interpol_Tran_fx /* FhG: Fix saturation crash in MSVQ_Interpol_Tran_fx() */ #define NONBE_FIX_ISSUE_2206_SWB_EXPERIMENT_FIX_2527 /* Fix crash from issue #2527 */ #define FIX_FLOAT_1539_G192_FORMAT_SWITCH /* VA/Nokia: reintroduce format switching for g192 bitstreams */ #define HARMONIZE_2553_TonalConceal_Apply /* FhG: Harmonize TonalMDCTConceal_Apply with its ivas derivate */ #define HARMONIZE_2553_TonalConceal_Init /* FhG: Harmonize TonalMDCTConceal_Init with its ivas derivate */ #define HARMONIZE_2553_TonalConceal_SaveFreqSignal /* FhG: Harmonize TonalConceal_SaveFreqSignal with its ivas derivate */ #define HARMONIZE_2553_TonalConceal_SaveTimeSignal /* FhG: Harmonize TonalConceal_SaveTimeSignal with its ivas derivate */ Loading
lib_com/prot_fx.h +0 −11 Original line number Diff line number Diff line Loading @@ -5604,21 +5604,10 @@ void TonalMDCTConceal_UpdateState_fx( const Word16 badBlock, const Word8 tonalConcealmentActive ); #ifndef HARMONIZE_2553_TonalConceal_Apply void TonalMDCTConceal_Apply_fx( const TonalMDCTConcealPtr hTonalMDCTConc, /*IN */ Word32 *mdctSpectrum, /*IN/OUT*/ Word16 *mdctSpectrum_exp /*IN */ ); #endif #ifdef HARMONIZE_2553_TonalConceal_Apply void TonalMDCTConceal_Apply_fx( Word16 element_mode, #else void TonalMDCTConceal_Apply_ivas_fx( #endif const TonalMDCTConcealPtr hTonalMDCTConc, /*IN */ Word32 *mdctSpectrum, /*IN/OUT*/ Word16 mdctSpectrum_exp, /*IN */ Loading
lib_dec/dec_tcx_fx.c +0 −8 Original line number Diff line number Diff line Loading @@ -973,11 +973,7 @@ void decoder_tcx_fx( test(); IF( bfi && st->tonal_mdct_plc_active ) { #ifdef HARMONIZE_2553_TonalConceal_Apply TonalMDCTConceal_Apply_fx( st->element_mode, st->hTonalMDCTConc, x, x_e, NULL ); #else TonalMDCTConceal_Apply_fx( st->hTonalMDCTConc, x, &x_e ); #endif } tmp32 = L_deposit_h( 0 ); Loading Loading @@ -5212,11 +5208,7 @@ void decoder_tcx_noiseshaping_igf_fx( test(); IF( bfi && st->tonal_mdct_plc_active && NE_16( st->element_mode, IVAS_CPE_MDCT ) ) { #ifdef HARMONIZE_2553_TonalConceal_Apply TonalMDCTConceal_Apply_fx( st->element_mode, st->hTonalMDCTConc, x_fx, *x_e, st->hTcxCfg->psychParamsCurrent ); #else TonalMDCTConceal_Apply_ivas_fx( st->hTonalMDCTConc, x_fx, *x_e, st->hTcxCfg->psychParamsCurrent ); #endif /* If exponent has been updated after TonalMDCTConceal_Apply, then shift the spectrum to common exponent. */ } Loading
lib_dec/ivas_mdct_core_dec_fx.c +0 −4 Original line number Diff line number Diff line Loading @@ -1724,11 +1724,7 @@ void ivas_mdct_core_tns_ns_fx( { st->hTonalMDCTConc->secondLastBlockData.scaleFactors_max_e = s_max( st->hTonalMDCTConc->secondLastBlockData.scaleFactors_max_e, st->hTonalMDCTConc->secondLastBlockData.scaleFactors_exp[i] ); } #ifdef HARMONIZE_2553_TonalConceal_Apply TonalMDCTConceal_Apply_fx( st->element_mode, st->hTonalMDCTConc, x_fx[ch][0], x_e, st->hTcxCfg->psychParamsCurrent ); #else TonalMDCTConceal_Apply_ivas_fx( st->hTonalMDCTConc, x_fx[ch][0], x_e, st->hTcxCfg->psychParamsCurrent ); #endif } test(); Loading
lib_dec/tonalMDCTconcealment_fx.c +0 −125 Original line number Diff line number Diff line Loading @@ -2523,112 +2523,16 @@ void TonalMDCTConceal_InsertNoise_fx( return; } #ifndef HARMONIZE_2553_TonalConceal_Apply void TonalMDCTConceal_Apply_fx( const TonalMDCTConcealPtr hTonalMDCTConc, /*IN */ Word32 *mdctSpectrum, // Q31-*mdctSpectrum_exp /*IN/OUT*/ Word16 *mdctSpectrum_exp /*IN */ ) { Word16 i, l, exp; Word16 *phaseDiff, *pCurrentPhase; Word32 phaseToAdd, currentPhase; Word32 powerSpectrum[L_FRAME_MAX]; Word16 nSamples; IF( s_and( hTonalMDCTConc->lastBlockData.blockIsValid, hTonalMDCTConc->secondLastBlockData.blockIsValid ) ) { assert( hTonalMDCTConc->pTCI->numIndexes > 0 ); nSamples = hTonalMDCTConc->nNonZeroSamples; move16(); assert( hTonalMDCTConc->pTCI->upperIndex[hTonalMDCTConc->pTCI->numIndexes - 1] < nSamples ); { mdct_shaping_16( hTonalMDCTConc->secondLastPowerSpectrum, hTonalMDCTConc->nSamplesCore, nSamples, hTonalMDCTConc->secondLastBlockData.scaleFactors, hTonalMDCTConc->secondLastBlockData.scaleFactors_exp, hTonalMDCTConc->secondLastBlockData.scaleFactors_max_e, powerSpectrum ); } phaseDiff = hTonalMDCTConc->pTCI->phaseDiff; /* if multiple frame loss occurs use the phase from the last frame and continue rotating */ pCurrentPhase = hTonalMDCTConc->pTCI->phase_currentFramePredicted; exp = sub( *mdctSpectrum_exp, add( add( hTonalMDCTConc->secondLastPowerSpectrum_exp, add( hTonalMDCTConc->secondLastBlockData.gain_tcx_exp, 1 ) ), hTonalMDCTConc->secondLastBlockData.scaleFactors_max_e ) ); IF( !hTonalMDCTConc->lastBlockData.blockIsConcealed ) { if ( hTonalMDCTConc->secondLastBlockData.tonalConcealmentActive != 0 ) { hTonalMDCTConc->nFramesLost = add( hTonalMDCTConc->nFramesLost, 2 ); /*Q1*/ move16(); } if ( hTonalMDCTConc->secondLastBlockData.tonalConcealmentActive == 0 ) { hTonalMDCTConc->nFramesLost = 3; /*Q1*/ move16(); } } /* for each index group */ FOR( i = 0; i < hTonalMDCTConc->pTCI->numIndexes; i++ ) { /*phaseToAdd = hTonalMDCTConc->nFramesLost*phaseDiff[i]; */ phaseToAdd = L_mult0( hTonalMDCTConc->nFramesLost, phaseDiff[i] ); /*Q1*3Q12=2Q13*/ /* Move phaseToAdd to range -PI..PI */ WHILE( GT_32( phaseToAdd, 25736l /*EVS_PI Q13*/ ) ) { phaseToAdd = L_sub( phaseToAdd, 51472l /*2*EVS_PI Q13*/ ); } WHILE( LT_32( phaseToAdd, -25736l /*-EVS_PI Q13*/ ) ) { phaseToAdd = L_add( phaseToAdd, 51472l /*2*EVS_PI Q13*/ ); } FOR( l = hTonalMDCTConc->pTCI->lowerIndex[i]; l <= hTonalMDCTConc->pTCI->upperIndex[i]; l++ ) { /* *pCurrentPhase and phaseToAdd are in range -PI..PI */ currentPhase = L_mac0( phaseToAdd, ( *pCurrentPhase++ ), 1 ); /*2Q13+2Q13=3Q13*/ if ( GT_32( currentPhase, 25736l /*EVS_PI Q13*/ ) ) { currentPhase = L_sub( currentPhase, 51472l /*2*EVS_PI Q13*/ ); } if ( LT_32( currentPhase, -25736l /*-EVS_PI Q13*/ ) ) { currentPhase = L_add( currentPhase, 51472l /*2*EVS_PI Q13*/ ); } /* getCosWord16 returns 1Q14*/ mdctSpectrum[l] = Mpy_32_16_1( powerSpectrum[l], getCosWord16( extract_l( currentPhase ) ) ); move32(); mdctSpectrum[l] = L_shr( mdctSpectrum[l], exp ); move32(); } } } hTonalMDCTConc->nFramesLost = add( hTonalMDCTConc->nFramesLost, 2 ); /*Q1*/ move16(); return; } #endif #ifdef HARMONIZE_2553_TonalConceal_Apply void TonalMDCTConceal_Apply_fx( Word16 element_mode, #else void TonalMDCTConceal_Apply_ivas_fx( #endif const TonalMDCTConcealPtr hTonalMDCTConc, /*IN */ Word32 *mdctSpectrum, // Q31-*mdctSpectrum_exp /*IN/OUT*/ Word16 mdctSpectrum_exp, /*IN */ const PsychoacousticParameters *psychParamsCurrent ) { #ifdef HARMONIZE_2553_TonalConceal_Apply Word16 exp; #endif Word16 i, l; Word16 *phaseDiff, *pCurrentPhase; Word32 phaseToAdd; Loading @@ -2638,16 +2542,7 @@ void TonalMDCTConceal_Apply_ivas_fx( Word16 nSamples; Word16 nBands; #ifndef HARMONIZE_2553_TonalConceal_Apply Word16 *tmp_secondLastPowerSpectrum = hTonalMDCTConc->secondLastPowerSpectrum; Word16 tmp_secondLastPowerSpectrum_exp = hTonalMDCTConc->secondLastPowerSpectrum_exp; move16(); Word16 max_nSamples = s_max( hTonalMDCTConc->nNonZeroSamples, hTonalMDCTConc->nSamplesCore ); #else IF( GT_16( element_mode, EVS_MONO ) ) #endif { // To avoid garbage values set32_fx( powerSpectrum, 0, L_FRAME_MAX ); Loading @@ -2666,24 +2561,14 @@ void TonalMDCTConceal_Apply_ivas_fx( nSamples = hTonalMDCTConc->nNonZeroSamples; move16(); assert( hTonalMDCTConc->pTCI->upperIndex[hTonalMDCTConc->pTCI->numIndexes - 1] < nSamples ); #ifdef HARMONIZE_2553_TonalConceal_Apply IF( GT_16( element_mode, EVS_MONO ) ) #endif { FOR( i = 0; i < nSamples; i++ ) { #ifdef HARMONIZE_2553_TonalConceal_Apply powerSpectrum[i] = L_deposit_h( hTonalMDCTConc->secondLastPowerSpectrum[i] ); // Q31 - secondLastPowerSpectrum_exp #else powerSpectrum[i] = L_deposit_h( tmp_secondLastPowerSpectrum[i] ); // Q31 - secondLastPowerSpectrum_exp #endif move16(); } #ifdef HARMONIZE_2553_TonalConceal_Apply powerSpectrum_exp = hTonalMDCTConc->secondLastPowerSpectrum_exp; #else powerSpectrum_exp = tmp_secondLastPowerSpectrum_exp; #endif move16(); Word16 exp1 = powerSpectrum_exp; Loading Loading @@ -2739,11 +2624,7 @@ void TonalMDCTConceal_Apply_ivas_fx( exp_right = add( exp_right, hTonalMDCTConc->secondLastBlockData.scaleFactors_exp[nBands - 1] ); Word16 max_e = s_max( exp_right, exp_left ); #ifdef HARMONIZE_2553_TonalConceal_Apply FOR( Word16 c = 0; c < s_max( hTonalMDCTConc->nNonZeroSamples, hTonalMDCTConc->nSamplesCore ); c++ ) #else FOR( Word16 c = 0; c < max_nSamples; c++ ) #endif { test(); test(); Loading @@ -2763,7 +2644,6 @@ void TonalMDCTConceal_Apply_ivas_fx( powerSpectrum_exp = max_e; move16(); } #ifdef HARMONIZE_2553_TonalConceal_Apply ELSE { Loading @@ -2775,7 +2655,6 @@ void TonalMDCTConceal_Apply_ivas_fx( powerSpectrum_exp = add( add( hTonalMDCTConc->secondLastPowerSpectrum_exp, hTonalMDCTConc->secondLastBlockData.gain_tcx_exp ), hTonalMDCTConc->secondLastBlockData.scaleFactors_max_e ); } exp = sub( mdctSpectrum_exp, add( powerSpectrum_exp, 1 ) ); #endif phaseDiff = hTonalMDCTConc->pTCI->phaseDiff; /* if multiple frame loss occurs use the phase from the last frame and continue rotating */ pCurrentPhase = hTonalMDCTConc->pTCI->phase_currentFramePredicted; Loading Loading @@ -2824,12 +2703,8 @@ void TonalMDCTConceal_Apply_ivas_fx( /* getCosWord16 returns 1Q14*/ mdctSpectrum[l] = Mpy_32_16_1( powerSpectrum[l], getCosWord16( extract_l( currentPhase ) ) ); move32(); #ifdef HARMONIZE_2553_TonalConceal_Apply mdctSpectrum[l] = L_shr( mdctSpectrum[l], exp ); move32(); #else mdctSpectrum[l] = L_shr( mdctSpectrum[l], sub( mdctSpectrum_exp, add( powerSpectrum_exp, 1 ) ) ); #endif } } } Loading