Loading lib_com/swb_bwe_com_fx.c +39 −3 Original line number Diff line number Diff line Loading @@ -1235,12 +1235,20 @@ void SWB_BWE_decoding_fx( EnergyL = L_deposit_l(0); FOR(n_freq=224+st_offset; n_freq<swb_bwe_trans_subband_fx[0]+st_offset; n_freq++) { #ifdef BASOP_NOGLOB fenvL = L_mac0_sat(fenvL,core_dec_freq[n_freq],core_dec_freq[n_freq]); /*2*Q_syn */ #else fenvL = L_mac0(fenvL,core_dec_freq[n_freq],core_dec_freq[n_freq]); /*2*Q_syn */ #endif } FOR( n_freq = 16; n_freq < L_FRAME; n_freq++ ) { #ifdef BASOP_NOGLOB EnergyL = L_mac0_sat(EnergyL,core_dec_freq[n_freq],core_dec_freq[n_freq]); /*2*Q_syn */ #else EnergyL = L_mac0(EnergyL,core_dec_freq[n_freq],core_dec_freq[n_freq]); /*2*Q_syn */ #endif } fenvL_16 = 0; Loading Loading @@ -1275,7 +1283,11 @@ void SWB_BWE_decoding_fx( L_tmp = L_deposit_h(tmp); L_tmp = Isqrt_lc(L_tmp, &exp); #ifdef BASOP_NOGLOB EnergyL_16 = round_fx_sat(L_shl_sat(L_tmp, sub(exp, 12))); /* Q3 */ #else EnergyL_16 = round_fx(L_shl(L_tmp, sub(exp, 12))); /* Q3 */ #endif } calc_normal_length_fx( ACELP_CORE, core_dec_freq, mode, extl, &L_swb_norm, prev_L_swb_norm ,Q_syn); Loading Loading @@ -1474,20 +1486,32 @@ void SWB_BWE_decoding_fx( *pit1 = mult_r(*pit1,tmp3); move16(); /*Q_syn */ pit1++; #ifdef BASOP_NOGLOB tmp3 = add_sat(tmp3, 3277); /*Q15 */ #else tmp3 = add(tmp3, 3277); /*Q15 */ #endif } } ELSE IF(LT_16(tmp2, tmp1)) { exp = norm_s(tmp1); tmp = div_s(shl(1,sub(14,exp)),tmp1); /*Q(29-exp) */ #ifdef BASOP_NOGLOB tmp3 = round_fx_sat(L_shl_sat(L_mult(tmp2,tmp),add(exp,2))); /*Q15 */ #else tmp3 = round_fx(L_shl(L_mult(tmp2,tmp),add(exp,2))); /*Q15 */ #endif WHILE(LT_16(tmp3, 32767)) { *pit1 = mult_r(*pit1,tmp3); move16(); /*Q_syn */ pit1++; #ifdef BASOP_NOGLOB tmp3 = add_sat(tmp3,3277); /*Q15 */ #else tmp3 = add(tmp3,3277); /*Q15 */ #endif } } Loading Loading @@ -1518,20 +1542,32 @@ void SWB_BWE_decoding_fx( *pit1 = mult_r(*pit1,tmp3); move16(); /*Q_syn */ pit1++; #ifdef BASOP_NOGLOB tmp3 = add_sat(tmp3, 3277); /*Q15 */ #else tmp3 = add(tmp3, 3277); /*Q15 */ #endif } } ELSE IF(LT_16(tmp2,tmp1)) { exp = norm_s(tmp1); tmp = div_s(shl(1,sub(14,exp)),tmp1); /*Q(29-exp) */ #ifdef BASOP_NOGLOB tmp3 = round_fx_sat(L_shl_sat(L_mult(tmp2,tmp),add(exp,2))); /*Q15 */ #else tmp3 = round_fx(L_shl(L_mult(tmp2,tmp),add(exp,2))); /*Q15 */ #endif WHILE(LT_16(tmp3,32767)) { *pit1 = mult_r(*pit1,tmp3); move16();/*Q_syn */ pit1++; #ifdef BASOP_NOGLOB tmp3 = add_sat(tmp3, 3277); /*Q15 */ #else tmp3 = add(tmp3, 3277); /*Q15 */ #endif } } pit1 = &SWB_signal[495+st_offset]; Loading lib_dec/FEC_HQ_phase_ecu_fx.c +8 −0 Original line number Diff line number Diff line Loading @@ -3368,7 +3368,11 @@ static void windowing_ROM_optimized( FOR (i = 0; i < quarterLen; i++) { acc = L_deposit_h(FEC_HQ_WIN_A0); #ifdef BASOP_NOGLOB hamm = mac_r_sat(acc, *pSine, FEC_HQ_WIN_A1); #else hamm = mac_r(acc, *pSine, FEC_HQ_WIN_A1); #endif *pY++ = mult_r(hamm, *pX++); move16(); pSine += downSamples; /* Increment address counter */ Loading @@ -3386,7 +3390,11 @@ static void windowing_ROM_optimized( { pSine -= downSamples; /* Decrement address counter */ acc = L_deposit_h(FEC_HQ_WIN_A0); #ifdef BASOP_NOGLOB hamm = mac_r_sat(acc, *pSine, FEC_HQ_WIN_A1); #else hamm = mac_r(acc, *pSine, FEC_HQ_WIN_A1); #endif *pY++ = mult_r(hamm, *pX++); move16(); } Loading lib_dec/LD_music_post_filter_fx.c +5 −5 Original line number Diff line number Diff line Loading @@ -683,9 +683,6 @@ static void find_enr_dct_fx( Word16 freq; const Word16 *ptR; Word32 LE_min, Ltmp, Ltmp1; #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; #endif LE_min = L_max(L_shl(E_MIN_Q15, sub(shl(Q_dct,1)+10,22)),1); Loading @@ -702,8 +699,11 @@ static void find_enr_dct_fx( { /* energy */ /**ptE = *ptR * *ptR; */ #ifdef BASOP_NOGLOB Ltmp = L_mult_sat(*ptR, *ptR); #else Ltmp = L_mult(*ptR, *ptR); #endif /* normalization */ /**ptE *= 1.0f / (DCT_L_POST);*/ Ltmp = Mult_32_16(Ltmp, 26214); /*26214 = 1.0/640 ->Q15+9 --> 2*Q_dct + 9*/ Loading @@ -713,7 +713,7 @@ static void find_enr_dct_fx( /*band[i] += *ptE++;*/ #ifdef BASOP_NOGLOB Ltmp1 = L_add_o(Ltmp, Ltmp1, &Overflow); Ltmp1 = L_add_sat(Ltmp, Ltmp1); #else Ltmp1 = L_add(Ltmp, Ltmp1); #endif Loading lib_dec/cng_dec_fx.c +4 −1 Original line number Diff line number Diff line Loading @@ -788,8 +788,11 @@ static void shb_CNG_decod_fx( interp_fx = s_min(st_fx->shb_dtx_count_fx,32); #ifdef BASOP_NOGLOB interp_fx = shl_sat(interp_fx, 10); /*Q15*/ #else interp_fx = shl(interp_fx, 10); /*Q15*/ #endif FOR ( i=0; i<LPC_SHB_ORDER; i++ ) { tmp2 = mult(interp_fx, st_fx->lsp_shb_prev_fx[i]); /*Q14*/ Loading lib_dec/swb_bwe_dec_fx.c +4 −0 Original line number Diff line number Diff line Loading @@ -1010,7 +1010,11 @@ Word16 swb_bwe_dec_fx( L_tmp = L_deposit_l(0); FOR(i=0; i<l_subfr; i++) { #ifdef BASOP_NOGLOB L_tmp = L_mac0_sat(L_tmp, hb_synth_fx[tmp+i], hb_synth_fx[tmp+i]); /*(2*Q_syn_hb) */ #else L_tmp = L_mac0(L_tmp, hb_synth_fx[tmp+i], hb_synth_fx[tmp+i]); /*(2*Q_syn_hb) */ #endif } L_tmp = Mult_32_16(L_tmp, div_s(1, l_subfr)); /*(2*Q_syn_hb) */ Loading Loading
lib_com/swb_bwe_com_fx.c +39 −3 Original line number Diff line number Diff line Loading @@ -1235,12 +1235,20 @@ void SWB_BWE_decoding_fx( EnergyL = L_deposit_l(0); FOR(n_freq=224+st_offset; n_freq<swb_bwe_trans_subband_fx[0]+st_offset; n_freq++) { #ifdef BASOP_NOGLOB fenvL = L_mac0_sat(fenvL,core_dec_freq[n_freq],core_dec_freq[n_freq]); /*2*Q_syn */ #else fenvL = L_mac0(fenvL,core_dec_freq[n_freq],core_dec_freq[n_freq]); /*2*Q_syn */ #endif } FOR( n_freq = 16; n_freq < L_FRAME; n_freq++ ) { #ifdef BASOP_NOGLOB EnergyL = L_mac0_sat(EnergyL,core_dec_freq[n_freq],core_dec_freq[n_freq]); /*2*Q_syn */ #else EnergyL = L_mac0(EnergyL,core_dec_freq[n_freq],core_dec_freq[n_freq]); /*2*Q_syn */ #endif } fenvL_16 = 0; Loading Loading @@ -1275,7 +1283,11 @@ void SWB_BWE_decoding_fx( L_tmp = L_deposit_h(tmp); L_tmp = Isqrt_lc(L_tmp, &exp); #ifdef BASOP_NOGLOB EnergyL_16 = round_fx_sat(L_shl_sat(L_tmp, sub(exp, 12))); /* Q3 */ #else EnergyL_16 = round_fx(L_shl(L_tmp, sub(exp, 12))); /* Q3 */ #endif } calc_normal_length_fx( ACELP_CORE, core_dec_freq, mode, extl, &L_swb_norm, prev_L_swb_norm ,Q_syn); Loading Loading @@ -1474,20 +1486,32 @@ void SWB_BWE_decoding_fx( *pit1 = mult_r(*pit1,tmp3); move16(); /*Q_syn */ pit1++; #ifdef BASOP_NOGLOB tmp3 = add_sat(tmp3, 3277); /*Q15 */ #else tmp3 = add(tmp3, 3277); /*Q15 */ #endif } } ELSE IF(LT_16(tmp2, tmp1)) { exp = norm_s(tmp1); tmp = div_s(shl(1,sub(14,exp)),tmp1); /*Q(29-exp) */ #ifdef BASOP_NOGLOB tmp3 = round_fx_sat(L_shl_sat(L_mult(tmp2,tmp),add(exp,2))); /*Q15 */ #else tmp3 = round_fx(L_shl(L_mult(tmp2,tmp),add(exp,2))); /*Q15 */ #endif WHILE(LT_16(tmp3, 32767)) { *pit1 = mult_r(*pit1,tmp3); move16(); /*Q_syn */ pit1++; #ifdef BASOP_NOGLOB tmp3 = add_sat(tmp3,3277); /*Q15 */ #else tmp3 = add(tmp3,3277); /*Q15 */ #endif } } Loading Loading @@ -1518,20 +1542,32 @@ void SWB_BWE_decoding_fx( *pit1 = mult_r(*pit1,tmp3); move16(); /*Q_syn */ pit1++; #ifdef BASOP_NOGLOB tmp3 = add_sat(tmp3, 3277); /*Q15 */ #else tmp3 = add(tmp3, 3277); /*Q15 */ #endif } } ELSE IF(LT_16(tmp2,tmp1)) { exp = norm_s(tmp1); tmp = div_s(shl(1,sub(14,exp)),tmp1); /*Q(29-exp) */ #ifdef BASOP_NOGLOB tmp3 = round_fx_sat(L_shl_sat(L_mult(tmp2,tmp),add(exp,2))); /*Q15 */ #else tmp3 = round_fx(L_shl(L_mult(tmp2,tmp),add(exp,2))); /*Q15 */ #endif WHILE(LT_16(tmp3,32767)) { *pit1 = mult_r(*pit1,tmp3); move16();/*Q_syn */ pit1++; #ifdef BASOP_NOGLOB tmp3 = add_sat(tmp3, 3277); /*Q15 */ #else tmp3 = add(tmp3, 3277); /*Q15 */ #endif } } pit1 = &SWB_signal[495+st_offset]; Loading
lib_dec/FEC_HQ_phase_ecu_fx.c +8 −0 Original line number Diff line number Diff line Loading @@ -3368,7 +3368,11 @@ static void windowing_ROM_optimized( FOR (i = 0; i < quarterLen; i++) { acc = L_deposit_h(FEC_HQ_WIN_A0); #ifdef BASOP_NOGLOB hamm = mac_r_sat(acc, *pSine, FEC_HQ_WIN_A1); #else hamm = mac_r(acc, *pSine, FEC_HQ_WIN_A1); #endif *pY++ = mult_r(hamm, *pX++); move16(); pSine += downSamples; /* Increment address counter */ Loading @@ -3386,7 +3390,11 @@ static void windowing_ROM_optimized( { pSine -= downSamples; /* Decrement address counter */ acc = L_deposit_h(FEC_HQ_WIN_A0); #ifdef BASOP_NOGLOB hamm = mac_r_sat(acc, *pSine, FEC_HQ_WIN_A1); #else hamm = mac_r(acc, *pSine, FEC_HQ_WIN_A1); #endif *pY++ = mult_r(hamm, *pX++); move16(); } Loading
lib_dec/LD_music_post_filter_fx.c +5 −5 Original line number Diff line number Diff line Loading @@ -683,9 +683,6 @@ static void find_enr_dct_fx( Word16 freq; const Word16 *ptR; Word32 LE_min, Ltmp, Ltmp1; #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; #endif LE_min = L_max(L_shl(E_MIN_Q15, sub(shl(Q_dct,1)+10,22)),1); Loading @@ -702,8 +699,11 @@ static void find_enr_dct_fx( { /* energy */ /**ptE = *ptR * *ptR; */ #ifdef BASOP_NOGLOB Ltmp = L_mult_sat(*ptR, *ptR); #else Ltmp = L_mult(*ptR, *ptR); #endif /* normalization */ /**ptE *= 1.0f / (DCT_L_POST);*/ Ltmp = Mult_32_16(Ltmp, 26214); /*26214 = 1.0/640 ->Q15+9 --> 2*Q_dct + 9*/ Loading @@ -713,7 +713,7 @@ static void find_enr_dct_fx( /*band[i] += *ptE++;*/ #ifdef BASOP_NOGLOB Ltmp1 = L_add_o(Ltmp, Ltmp1, &Overflow); Ltmp1 = L_add_sat(Ltmp, Ltmp1); #else Ltmp1 = L_add(Ltmp, Ltmp1); #endif Loading
lib_dec/cng_dec_fx.c +4 −1 Original line number Diff line number Diff line Loading @@ -788,8 +788,11 @@ static void shb_CNG_decod_fx( interp_fx = s_min(st_fx->shb_dtx_count_fx,32); #ifdef BASOP_NOGLOB interp_fx = shl_sat(interp_fx, 10); /*Q15*/ #else interp_fx = shl(interp_fx, 10); /*Q15*/ #endif FOR ( i=0; i<LPC_SHB_ORDER; i++ ) { tmp2 = mult(interp_fx, st_fx->lsp_shb_prev_fx[i]); /*Q14*/ Loading
lib_dec/swb_bwe_dec_fx.c +4 −0 Original line number Diff line number Diff line Loading @@ -1010,7 +1010,11 @@ Word16 swb_bwe_dec_fx( L_tmp = L_deposit_l(0); FOR(i=0; i<l_subfr; i++) { #ifdef BASOP_NOGLOB L_tmp = L_mac0_sat(L_tmp, hb_synth_fx[tmp+i], hb_synth_fx[tmp+i]); /*(2*Q_syn_hb) */ #else L_tmp = L_mac0(L_tmp, hb_synth_fx[tmp+i], hb_synth_fx[tmp+i]); /*(2*Q_syn_hb) */ #endif } L_tmp = Mult_32_16(L_tmp, div_s(1, l_subfr)); /*(2*Q_syn_hb) */ Loading