Loading lib_com/prot_fx.h +3 −0 Original line number Diff line number Diff line Loading @@ -9101,6 +9101,9 @@ void decoder_tcx_ivas_fx( Word16 Aind[], Word16 synth_fx[], Word16 synthFB_fx[], #ifdef FIX_1793_DEC_MC_TO_MONO_SCALING_ISSUE Word16 *synth_q, #endif const Word16 bfi, const Word16 frame_cnt, const Word16 sba_dirac_stereo_flag ); Loading lib_dec/dec_tcx_fx.c +9 −4 Original line number Diff line number Diff line Loading @@ -3972,8 +3972,14 @@ void decoder_tcx_ivas_fx( Word16 prm[], Word16 A_fx[], // Q: 14 - norm_s(A_fx[0]) Word16 Aind[], // Q: 14 - norm_s(Aind[0]) #ifdef FIX_1793_DEC_MC_TO_MONO_SCALING_ISSUE Word16 synth_fx[], Word16 synthFB_fx[], Word16 *synth_q, #else Word16 synth_fx[], // Q_syn Word16 synthFB_fx[], // Q_syn #endif const Word16 bfi, const Word16 frame_cnt, const Word16 sba_dirac_stereo_flag ) Loading Loading @@ -4080,8 +4086,7 @@ void decoder_tcx_ivas_fx( q_min = s_min( q_min, st->Q_syn ); scale_sig( synth_fx, L_frame_glob, sub( q_min, q_win ) ); scale_sig( synthFB_fx, L_frameTCX_glob, sub( q_min, q_winFB ) ); st->Q_syn_factor = sub( q_min, st->Q_syn ); st->Q_syn = q_min; *synth_q = q_min; #else Scale_sig( synth_fx, L_frame_glob, sub( st->Q_syn, q_win ) ); Scale_sig( synthFB_fx, L_frameTCX_glob, sub( st->Q_syn, q_winFB ) ); Loading lib_dec/ivas_tcx_core_dec_fx.c +28 −1 Original line number Diff line number Diff line Loading @@ -234,7 +234,9 @@ void stereo_tcx_core_dec_fx( Word16 *synth_fx; Word16 synth_bufFB_fx[OLD_SYNTH_SIZE_DEC + L_FRAME_PLUS + M]; Word16 *synthFB_fx; #ifdef FIX_1793_DEC_MC_TO_MONO_SCALING_ISSUE Word16 synth_q[2]; #endif Word32 psd_fx[L_FRAME16k]; Word32 psd_part_fx[NPART_SHAPING]; Word16 psd_part_e; Loading Loading @@ -599,7 +601,13 @@ void stereo_tcx_core_dec_fx( } /* TCX decoder */ #ifdef FIX_1793_DEC_MC_TO_MONO_SCALING_ISSUE decoder_tcx_ivas_fx( st, prm, Aq_fx, Aind, &synth_fx[0], &synthFB_fx[0], &synth_q[0], bfi, 0, sba_dirac_stereo_flag ); st->Q_syn_factor = sub( synth_q[0], st->Q_syn ); st->Q_syn = synth_q[0]; #else decoder_tcx_ivas_fx( st, prm, Aq_fx, Aind, &synth_fx[0], &synthFB_fx[0], bfi, 0, sba_dirac_stereo_flag ); #endif } /*--------------------------------------------------------------------------------* Loading Loading @@ -628,8 +636,27 @@ void stereo_tcx_core_dec_fx( } /* TCX decoder */ #ifdef FIX_1793_DEC_MC_TO_MONO_SCALING_ISSUE decoder_tcx_ivas_fx( st, prm, Aq_fx, Aind, &synth_fx[k * st->L_frame / 2], &synthFB_fx[k * ( hTcxDec->L_frameTCX / 2 )], &synth_q[k], bfi, k, sba_dirac_stereo_flag ); } Word16 q_min, q_shift; q_min = s_min( synth_q[0], synth_q[1] ); st->Q_syn_factor = sub( q_min, st->Q_syn ); st->Q_syn = q_min; q_shift = sub( q_min, synth_q[0] ); scale_sig( &synth_fx[0], shr( st->L_frame, 1 ), q_shift ); scale_sig( &synthFB_fx[0], shr( hTcxDec->L_frameTCX, 1 ), q_shift ); q_shift = sub( q_min, synth_q[1] ); scale_sig( &synth_fx[shr( st->L_frame, 1 )], shr( st->L_frame, 1 ), q_shift ); scale_sig( &synthFB_fx[shr( hTcxDec->L_frameTCX, 1 )], shr( hTcxDec->L_frameTCX, 1 ), q_shift ); #else decoder_tcx_ivas_fx( st, prm, Aq_fx, Aind, &synth_fx[k * st->L_frame / 2], &synthFB_fx[k * ( hTcxDec->L_frameTCX / 2 )], bfi, k, sba_dirac_stereo_flag ); } #endif } /*--------------------------------------------------------------------------------* Loading Loading
lib_com/prot_fx.h +3 −0 Original line number Diff line number Diff line Loading @@ -9101,6 +9101,9 @@ void decoder_tcx_ivas_fx( Word16 Aind[], Word16 synth_fx[], Word16 synthFB_fx[], #ifdef FIX_1793_DEC_MC_TO_MONO_SCALING_ISSUE Word16 *synth_q, #endif const Word16 bfi, const Word16 frame_cnt, const Word16 sba_dirac_stereo_flag ); Loading
lib_dec/dec_tcx_fx.c +9 −4 Original line number Diff line number Diff line Loading @@ -3972,8 +3972,14 @@ void decoder_tcx_ivas_fx( Word16 prm[], Word16 A_fx[], // Q: 14 - norm_s(A_fx[0]) Word16 Aind[], // Q: 14 - norm_s(Aind[0]) #ifdef FIX_1793_DEC_MC_TO_MONO_SCALING_ISSUE Word16 synth_fx[], Word16 synthFB_fx[], Word16 *synth_q, #else Word16 synth_fx[], // Q_syn Word16 synthFB_fx[], // Q_syn #endif const Word16 bfi, const Word16 frame_cnt, const Word16 sba_dirac_stereo_flag ) Loading Loading @@ -4080,8 +4086,7 @@ void decoder_tcx_ivas_fx( q_min = s_min( q_min, st->Q_syn ); scale_sig( synth_fx, L_frame_glob, sub( q_min, q_win ) ); scale_sig( synthFB_fx, L_frameTCX_glob, sub( q_min, q_winFB ) ); st->Q_syn_factor = sub( q_min, st->Q_syn ); st->Q_syn = q_min; *synth_q = q_min; #else Scale_sig( synth_fx, L_frame_glob, sub( st->Q_syn, q_win ) ); Scale_sig( synthFB_fx, L_frameTCX_glob, sub( st->Q_syn, q_winFB ) ); Loading
lib_dec/ivas_tcx_core_dec_fx.c +28 −1 Original line number Diff line number Diff line Loading @@ -234,7 +234,9 @@ void stereo_tcx_core_dec_fx( Word16 *synth_fx; Word16 synth_bufFB_fx[OLD_SYNTH_SIZE_DEC + L_FRAME_PLUS + M]; Word16 *synthFB_fx; #ifdef FIX_1793_DEC_MC_TO_MONO_SCALING_ISSUE Word16 synth_q[2]; #endif Word32 psd_fx[L_FRAME16k]; Word32 psd_part_fx[NPART_SHAPING]; Word16 psd_part_e; Loading Loading @@ -599,7 +601,13 @@ void stereo_tcx_core_dec_fx( } /* TCX decoder */ #ifdef FIX_1793_DEC_MC_TO_MONO_SCALING_ISSUE decoder_tcx_ivas_fx( st, prm, Aq_fx, Aind, &synth_fx[0], &synthFB_fx[0], &synth_q[0], bfi, 0, sba_dirac_stereo_flag ); st->Q_syn_factor = sub( synth_q[0], st->Q_syn ); st->Q_syn = synth_q[0]; #else decoder_tcx_ivas_fx( st, prm, Aq_fx, Aind, &synth_fx[0], &synthFB_fx[0], bfi, 0, sba_dirac_stereo_flag ); #endif } /*--------------------------------------------------------------------------------* Loading Loading @@ -628,8 +636,27 @@ void stereo_tcx_core_dec_fx( } /* TCX decoder */ #ifdef FIX_1793_DEC_MC_TO_MONO_SCALING_ISSUE decoder_tcx_ivas_fx( st, prm, Aq_fx, Aind, &synth_fx[k * st->L_frame / 2], &synthFB_fx[k * ( hTcxDec->L_frameTCX / 2 )], &synth_q[k], bfi, k, sba_dirac_stereo_flag ); } Word16 q_min, q_shift; q_min = s_min( synth_q[0], synth_q[1] ); st->Q_syn_factor = sub( q_min, st->Q_syn ); st->Q_syn = q_min; q_shift = sub( q_min, synth_q[0] ); scale_sig( &synth_fx[0], shr( st->L_frame, 1 ), q_shift ); scale_sig( &synthFB_fx[0], shr( hTcxDec->L_frameTCX, 1 ), q_shift ); q_shift = sub( q_min, synth_q[1] ); scale_sig( &synth_fx[shr( st->L_frame, 1 )], shr( st->L_frame, 1 ), q_shift ); scale_sig( &synthFB_fx[shr( hTcxDec->L_frameTCX, 1 )], shr( hTcxDec->L_frameTCX, 1 ), q_shift ); #else decoder_tcx_ivas_fx( st, prm, Aq_fx, Aind, &synth_fx[k * st->L_frame / 2], &synthFB_fx[k * ( hTcxDec->L_frameTCX / 2 )], bfi, k, sba_dirac_stereo_flag ); } #endif } /*--------------------------------------------------------------------------------* Loading