Loading lib_dec/swb_tbe_dec_fx.c +30 −0 Original line number Diff line number Diff line Loading @@ -5519,6 +5519,8 @@ void ivas_swb_tbe_dec_fx( hBWE_TD = st->hBWE_TD; push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART A" ); /* initializations */ GainFrame_fx = 0; move32(); Loading Loading @@ -5559,7 +5561,9 @@ void ivas_swb_tbe_dec_fx( tilt_swb_fec_fx = hBWE_TD->tilt_swb_fec_fx; move16(); } pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART A" );*/ push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART B" ); /* WB/SWB bandwidth switching */ test(); test(); Loading Loading @@ -5883,6 +5887,9 @@ void ivas_swb_tbe_dec_fx( } } pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART B" );*/ push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART C" ); /* get the gainshape delay */ Copy( &hBWE_TD->GainShape_Delay_fx[4], &hBWE_TD->GainShape_Delay_fx[0], NUM_SHB_SUBFR / 4 ); FOR( i = 0; i < NUM_SHB_SUBFR / 4; i++ ) Loading Loading @@ -5921,7 +5928,9 @@ void ivas_swb_tbe_dec_fx( { set16_fx( vf_modified_fx, 0, NB_SUBFR16k ); } pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART C" );*/ push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART D" ); /* SHB LSF from current frame; and convert to LSP for interpolation */ E_LPC_lsf_lsp_conversion( lsf_shb_fx, lsp_shb_2_fx, LPC_SHB_ORDER ); Loading Loading @@ -6075,6 +6084,9 @@ void ivas_swb_tbe_dec_fx( } } pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART D" );*/ push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART E" ); /* Save the SWB LSP values from current frame for interpolation */ Copy( lsp_shb_2_fx, hBWE_TD->swb_lsp_prev_interp_fx, LPC_SHB_ORDER ); Loading Loading @@ -6128,7 +6140,9 @@ void ivas_swb_tbe_dec_fx( Copy( lpc_shb_fx, &lpc_shb_sf_fx[i_mult( j, ( LPC_SHB_ORDER + 1 ) )], LPC_SHB_ORDER + 1 ); } } pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART E" );*/ push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART F" ); /* From low band excitation, generate highband excitation */ /* -------- start of memory rescaling -------- */ Loading Loading @@ -6329,6 +6343,10 @@ void ivas_swb_tbe_dec_fx( } } ener_fx = s_max( 1, round_fx_sat( L_shl_sat( L_ener, sub( 18, shl( Q_bwe_exc, 1 ) ) ) ) ); /* Q2: 2*Q_bwe_exc+18-2*Q_bwe_exc-16 */ pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART F" );*/ push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART G" ); /* WB/SWB bandwidth switching */ IF( st->bws_cnt > 0 ) { Loading Loading @@ -6646,7 +6664,10 @@ void ivas_swb_tbe_dec_fx( hBWE_TD->prev_Q_bwe_syn = Q_bwe_exc; move16(); pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART G" );*/ push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART H" ); /* Gain shape smoothing after quantization */ test(); IF( EQ_32( st->extl_brate, SWB_TBE_1k10 ) || EQ_32( st->extl_brate, SWB_TBE_1k75 ) ) Loading Loading @@ -6839,6 +6860,9 @@ void ivas_swb_tbe_dec_fx( } } pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART H" );*/ push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART J" ); /* adjust the FEC frame energy */ IF( st->bfi ) { Loading Loading @@ -6996,6 +7020,10 @@ void ivas_swb_tbe_dec_fx( move32(); } pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART J" );*/ push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART K" ); /* generate 32kHz SHB synthesis from 12.8(16)kHz signal */ GenSHBSynth_fx32( shaped_shb_excitation_fx_32, error_fx, hBWE_TD->genSHBsynth_Hilbert_Mem_fx, hBWE_TD->genSHBsynth_state_lsyn_filt_shb_local_fx_32, st->L_frame, &( hBWE_TD->syn_dm_phase ) ); Copy_Scale_sig_32_16( st->hBWE_TD->genSHBsynth_state_lsyn_filt_shb_local_fx_32, st->hBWE_TD->genSHBsynth_state_lsyn_filt_shb_local_fx, 2 * ALLPASSSECTIONS_STEEP, -( Q11 - Q_bwe_exc ) ); Loading Loading @@ -7132,5 +7160,7 @@ void ivas_swb_tbe_dec_fx( hBWE_TD->prev_Qx = Q_bwe_exc; move16(); pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART K" );*/ return; } Loading
lib_dec/swb_tbe_dec_fx.c +30 −0 Original line number Diff line number Diff line Loading @@ -5519,6 +5519,8 @@ void ivas_swb_tbe_dec_fx( hBWE_TD = st->hBWE_TD; push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART A" ); /* initializations */ GainFrame_fx = 0; move32(); Loading Loading @@ -5559,7 +5561,9 @@ void ivas_swb_tbe_dec_fx( tilt_swb_fec_fx = hBWE_TD->tilt_swb_fec_fx; move16(); } pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART A" );*/ push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART B" ); /* WB/SWB bandwidth switching */ test(); test(); Loading Loading @@ -5883,6 +5887,9 @@ void ivas_swb_tbe_dec_fx( } } pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART B" );*/ push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART C" ); /* get the gainshape delay */ Copy( &hBWE_TD->GainShape_Delay_fx[4], &hBWE_TD->GainShape_Delay_fx[0], NUM_SHB_SUBFR / 4 ); FOR( i = 0; i < NUM_SHB_SUBFR / 4; i++ ) Loading Loading @@ -5921,7 +5928,9 @@ void ivas_swb_tbe_dec_fx( { set16_fx( vf_modified_fx, 0, NB_SUBFR16k ); } pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART C" );*/ push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART D" ); /* SHB LSF from current frame; and convert to LSP for interpolation */ E_LPC_lsf_lsp_conversion( lsf_shb_fx, lsp_shb_2_fx, LPC_SHB_ORDER ); Loading Loading @@ -6075,6 +6084,9 @@ void ivas_swb_tbe_dec_fx( } } pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART D" );*/ push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART E" ); /* Save the SWB LSP values from current frame for interpolation */ Copy( lsp_shb_2_fx, hBWE_TD->swb_lsp_prev_interp_fx, LPC_SHB_ORDER ); Loading Loading @@ -6128,7 +6140,9 @@ void ivas_swb_tbe_dec_fx( Copy( lpc_shb_fx, &lpc_shb_sf_fx[i_mult( j, ( LPC_SHB_ORDER + 1 ) )], LPC_SHB_ORDER + 1 ); } } pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART E" );*/ push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART F" ); /* From low band excitation, generate highband excitation */ /* -------- start of memory rescaling -------- */ Loading Loading @@ -6329,6 +6343,10 @@ void ivas_swb_tbe_dec_fx( } } ener_fx = s_max( 1, round_fx_sat( L_shl_sat( L_ener, sub( 18, shl( Q_bwe_exc, 1 ) ) ) ) ); /* Q2: 2*Q_bwe_exc+18-2*Q_bwe_exc-16 */ pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART F" );*/ push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART G" ); /* WB/SWB bandwidth switching */ IF( st->bws_cnt > 0 ) { Loading Loading @@ -6646,7 +6664,10 @@ void ivas_swb_tbe_dec_fx( hBWE_TD->prev_Q_bwe_syn = Q_bwe_exc; move16(); pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART G" );*/ push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART H" ); /* Gain shape smoothing after quantization */ test(); IF( EQ_32( st->extl_brate, SWB_TBE_1k10 ) || EQ_32( st->extl_brate, SWB_TBE_1k75 ) ) Loading Loading @@ -6839,6 +6860,9 @@ void ivas_swb_tbe_dec_fx( } } pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART H" );*/ push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART J" ); /* adjust the FEC frame energy */ IF( st->bfi ) { Loading Loading @@ -6996,6 +7020,10 @@ void ivas_swb_tbe_dec_fx( move32(); } pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART J" );*/ push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART K" ); /* generate 32kHz SHB synthesis from 12.8(16)kHz signal */ GenSHBSynth_fx32( shaped_shb_excitation_fx_32, error_fx, hBWE_TD->genSHBsynth_Hilbert_Mem_fx, hBWE_TD->genSHBsynth_state_lsyn_filt_shb_local_fx_32, st->L_frame, &( hBWE_TD->syn_dm_phase ) ); Copy_Scale_sig_32_16( st->hBWE_TD->genSHBsynth_state_lsyn_filt_shb_local_fx_32, st->hBWE_TD->genSHBsynth_state_lsyn_filt_shb_local_fx, 2 * ALLPASSSECTIONS_STEEP, -( Q11 - Q_bwe_exc ) ); Loading Loading @@ -7132,5 +7160,7 @@ void ivas_swb_tbe_dec_fx( hBWE_TD->prev_Qx = Q_bwe_exc; move16(); pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART K" );*/ return; }