Loading lib_com/cng_exc_fx.c +4 −0 Original line number Diff line number Diff line Loading @@ -236,7 +236,11 @@ void CNG_exc_fx( { /* exc2[i] *= enr */ L_tmp = L_mult(exc2[i_subfr+i], tmp); /* Q-4 * Q_exc+19 -> Q_exc +16 */ #ifdef BASOP_NOGLOB exc2[i_subfr+i] = round_fx_o(L_shl_o(L_tmp, exp, &Overflow), &Overflow); #else exc2[i_subfr+i] = round_fx(L_shl(L_tmp, exp)); #endif } } IF ( NE_16(Opt_AMR_WB,1)) Loading lib_com/lsf_tools_fx.c +7 −2 Original line number Diff line number Diff line Loading @@ -154,7 +154,9 @@ void E_LPC_a_isp_conversion(const Word16 a[], Word16 isp[], const Word16 old_isp Word32 f[2][NC_MAX+1]; Word32 t0, t1; Word16 scale=1024; #ifdef BASOP_NOGLOB Flag Overflow = 0; #endif /*-------------------------------------------------------------* * find the sum and diff polynomials F1(z) and F2(z) Loading Loading @@ -276,8 +278,11 @@ void E_LPC_a_isp_conversion(const Word16 a[], Word16 isp[], const Word16 old_isp * xint = xlow - ylow*(xhigh-xlow)/(yhigh-ylow) *--------------------------------------------------------*/ #ifdef BASOP_NOGLOB y = sub_o(yhigh, ylow, &Overflow); #else y = sub(yhigh, ylow); #endif IF (y != 0) { x = sub(xhigh, xlow); Loading lib_enc/cod2t32_fx.c +24 −4 Original line number Diff line number Diff line Loading @@ -63,11 +63,19 @@ void acelp_2t32_fx( L_cor = L_deposit_h(1); FOR (i = 0; i < NB_POS_FCB_2T; i++) { #ifdef BASOP_NOGLOB L_cor = L_mac_o(L_cor, *ptr_h1, *ptr_h1, &Overflow); #else L_cor = L_mac(L_cor, *ptr_h1, *ptr_h1); #endif ptr_h1++; *p1-- = extract_h(L_cor); move16(); /*Q9 Q7*/ #ifdef BASOP_NOGLOB L_cor = L_mac_o(L_cor, *ptr_h1, *ptr_h1, &Overflow); #else L_cor = L_mac(L_cor, *ptr_h1, *ptr_h1); #endif ptr_h1++; *p0-- = extract_h(L_cor); move16(); /*Q9 Q7*/ Loading Loading @@ -115,19 +123,31 @@ void acelp_2t32_fx( L_cor = L_mult(*ptr_h1++, *ptr_h2++); FOR (i = k; i < NB_POS_FCB_2T-1; i++) { #ifdef BASOP_NOGLOB * p1 = round_fx_o(L_cor, &Overflow); L_cor = L_mac_o(L_cor, *ptr_h1++, *ptr_h2++, &Overflow); #else * p1 = round_fx(L_cor); L_cor = L_mac(L_cor, *ptr_h1++, *ptr_h2++); #endif #ifdef BASOP_NOGLOB * p0 = round_fx_o(L_cor, &Overflow); L_cor = L_mac_o(L_cor, *ptr_h1++, *ptr_h2++, &Overflow); #else * p0 = round_fx(L_cor); L_cor = L_mac(L_cor, *ptr_h1++, *ptr_h2++); #endif p1 -= (NB_POS_FCB_2T + 1); move16(); p0 -= (NB_POS_FCB_2T + 1); move16(); } #ifdef BASOP_NOGLOB *p1 = round_fx_o(L_cor, &Overflow); #else *p1 = round_fx(L_cor); #endif pos -= NB_POS_FCB_2T; move16(); pos2--; Loading lib_enc/enc_acelp.c +20 −5 Original line number Diff line number Diff line Loading @@ -56,7 +56,13 @@ void E_ACELP_h_vec_corr1(Word16 h[], Word16 vec[], UWord8 track, p1 = h; p2 = &vec[dn]; FOR(j = dn; j < L_SUBFR - 1; j++) { #ifdef BASOP_NOGLOB L_sum = L_mac_o(L_sum, *p1++, *p2++, &Overflow); #else L_sum = L_mac(L_sum, *p1++, *p2++); #endif } #ifdef BASOP_NOGLOB corr = mac_ro(L_sum, *p1++, *p2++, &Overflow); /*Q9*/ Loading Loading @@ -110,8 +116,13 @@ void E_ACELP_h_vec_corr2(Word16 h[], Word16 vec[], UWord8 track, p1 = h; p2 = &vec[pos]; FOR(j = pos; j < L_SUBFR - 1; j++) { #ifdef BASOP_NOGLOB L_sum = L_mac_o(L_sum, *p1++, *p2++, &Overflow); #else L_sum = L_mac(L_sum, *p1++, *p2++); #endif } #ifdef BASOP_NOGLOB corr = mac_ro(L_sum, *p1++, *p2++, &Overflow); /*Q9*/ #else /* BASOP_NOGLOB */ Loading Loading @@ -843,7 +854,11 @@ void E_ACELP_pulsesign(const Word16 cn[], Word16 dn[], Word16 dn2[], Word16 sign /*cor = (s * cn[i]) + (alp * dn[i]); MULT(1);MAC(1);*/ Lcor = L_mult(cn[i], k_cn); Lcor = L_mac(Lcor, dn[i], k_dn); #ifdef BASOP_NOGLOB val = round_fx_o(L_shl_o(Lcor,4, &Overflow), &Overflow); /*shifting by 4 may overflow but improves accuracy*/ #else val = round_fx(L_shl(Lcor,4)); /*shifting by 4 may overflow but improves accuracy*/ #endif index = shr(val, 15); sign[i] = ptr16[index]; Loading lib_enc/gp_clip_fx.c +7 −1 Original line number Diff line number Diff line Loading @@ -297,7 +297,9 @@ Word16 Mode2_gp_clip( Word16 clip, tmp, exp_xn; Word16 i; Word32 wener, Ltmp; #ifdef BASOP_NOGLOB Flag Overflow = 0; #endif move16(); clip = 0; Loading @@ -315,7 +317,11 @@ Word16 Mode2_gp_clip( FOR (i=0; i<L_subfr; i++) { #ifdef BASOP_NOGLOB wener = L_mac0_o(wener, xn[i], xn[i], &Overflow); #else wener = L_mac0(wener, xn[i], xn[i]); #endif } /*wener = 10.0f*(float)log10(wener);*/ Loading Loading
lib_com/cng_exc_fx.c +4 −0 Original line number Diff line number Diff line Loading @@ -236,7 +236,11 @@ void CNG_exc_fx( { /* exc2[i] *= enr */ L_tmp = L_mult(exc2[i_subfr+i], tmp); /* Q-4 * Q_exc+19 -> Q_exc +16 */ #ifdef BASOP_NOGLOB exc2[i_subfr+i] = round_fx_o(L_shl_o(L_tmp, exp, &Overflow), &Overflow); #else exc2[i_subfr+i] = round_fx(L_shl(L_tmp, exp)); #endif } } IF ( NE_16(Opt_AMR_WB,1)) Loading
lib_com/lsf_tools_fx.c +7 −2 Original line number Diff line number Diff line Loading @@ -154,7 +154,9 @@ void E_LPC_a_isp_conversion(const Word16 a[], Word16 isp[], const Word16 old_isp Word32 f[2][NC_MAX+1]; Word32 t0, t1; Word16 scale=1024; #ifdef BASOP_NOGLOB Flag Overflow = 0; #endif /*-------------------------------------------------------------* * find the sum and diff polynomials F1(z) and F2(z) Loading Loading @@ -276,8 +278,11 @@ void E_LPC_a_isp_conversion(const Word16 a[], Word16 isp[], const Word16 old_isp * xint = xlow - ylow*(xhigh-xlow)/(yhigh-ylow) *--------------------------------------------------------*/ #ifdef BASOP_NOGLOB y = sub_o(yhigh, ylow, &Overflow); #else y = sub(yhigh, ylow); #endif IF (y != 0) { x = sub(xhigh, xlow); Loading
lib_enc/cod2t32_fx.c +24 −4 Original line number Diff line number Diff line Loading @@ -63,11 +63,19 @@ void acelp_2t32_fx( L_cor = L_deposit_h(1); FOR (i = 0; i < NB_POS_FCB_2T; i++) { #ifdef BASOP_NOGLOB L_cor = L_mac_o(L_cor, *ptr_h1, *ptr_h1, &Overflow); #else L_cor = L_mac(L_cor, *ptr_h1, *ptr_h1); #endif ptr_h1++; *p1-- = extract_h(L_cor); move16(); /*Q9 Q7*/ #ifdef BASOP_NOGLOB L_cor = L_mac_o(L_cor, *ptr_h1, *ptr_h1, &Overflow); #else L_cor = L_mac(L_cor, *ptr_h1, *ptr_h1); #endif ptr_h1++; *p0-- = extract_h(L_cor); move16(); /*Q9 Q7*/ Loading Loading @@ -115,19 +123,31 @@ void acelp_2t32_fx( L_cor = L_mult(*ptr_h1++, *ptr_h2++); FOR (i = k; i < NB_POS_FCB_2T-1; i++) { #ifdef BASOP_NOGLOB * p1 = round_fx_o(L_cor, &Overflow); L_cor = L_mac_o(L_cor, *ptr_h1++, *ptr_h2++, &Overflow); #else * p1 = round_fx(L_cor); L_cor = L_mac(L_cor, *ptr_h1++, *ptr_h2++); #endif #ifdef BASOP_NOGLOB * p0 = round_fx_o(L_cor, &Overflow); L_cor = L_mac_o(L_cor, *ptr_h1++, *ptr_h2++, &Overflow); #else * p0 = round_fx(L_cor); L_cor = L_mac(L_cor, *ptr_h1++, *ptr_h2++); #endif p1 -= (NB_POS_FCB_2T + 1); move16(); p0 -= (NB_POS_FCB_2T + 1); move16(); } #ifdef BASOP_NOGLOB *p1 = round_fx_o(L_cor, &Overflow); #else *p1 = round_fx(L_cor); #endif pos -= NB_POS_FCB_2T; move16(); pos2--; Loading
lib_enc/enc_acelp.c +20 −5 Original line number Diff line number Diff line Loading @@ -56,7 +56,13 @@ void E_ACELP_h_vec_corr1(Word16 h[], Word16 vec[], UWord8 track, p1 = h; p2 = &vec[dn]; FOR(j = dn; j < L_SUBFR - 1; j++) { #ifdef BASOP_NOGLOB L_sum = L_mac_o(L_sum, *p1++, *p2++, &Overflow); #else L_sum = L_mac(L_sum, *p1++, *p2++); #endif } #ifdef BASOP_NOGLOB corr = mac_ro(L_sum, *p1++, *p2++, &Overflow); /*Q9*/ Loading Loading @@ -110,8 +116,13 @@ void E_ACELP_h_vec_corr2(Word16 h[], Word16 vec[], UWord8 track, p1 = h; p2 = &vec[pos]; FOR(j = pos; j < L_SUBFR - 1; j++) { #ifdef BASOP_NOGLOB L_sum = L_mac_o(L_sum, *p1++, *p2++, &Overflow); #else L_sum = L_mac(L_sum, *p1++, *p2++); #endif } #ifdef BASOP_NOGLOB corr = mac_ro(L_sum, *p1++, *p2++, &Overflow); /*Q9*/ #else /* BASOP_NOGLOB */ Loading Loading @@ -843,7 +854,11 @@ void E_ACELP_pulsesign(const Word16 cn[], Word16 dn[], Word16 dn2[], Word16 sign /*cor = (s * cn[i]) + (alp * dn[i]); MULT(1);MAC(1);*/ Lcor = L_mult(cn[i], k_cn); Lcor = L_mac(Lcor, dn[i], k_dn); #ifdef BASOP_NOGLOB val = round_fx_o(L_shl_o(Lcor,4, &Overflow), &Overflow); /*shifting by 4 may overflow but improves accuracy*/ #else val = round_fx(L_shl(Lcor,4)); /*shifting by 4 may overflow but improves accuracy*/ #endif index = shr(val, 15); sign[i] = ptr16[index]; Loading
lib_enc/gp_clip_fx.c +7 −1 Original line number Diff line number Diff line Loading @@ -297,7 +297,9 @@ Word16 Mode2_gp_clip( Word16 clip, tmp, exp_xn; Word16 i; Word32 wener, Ltmp; #ifdef BASOP_NOGLOB Flag Overflow = 0; #endif move16(); clip = 0; Loading @@ -315,7 +317,11 @@ Word16 Mode2_gp_clip( FOR (i=0; i<L_subfr; i++) { #ifdef BASOP_NOGLOB wener = L_mac0_o(wener, xn[i], xn[i], &Overflow); #else wener = L_mac0(wener, xn[i], xn[i]); #endif } /*wener = 10.0f*(float)log10(wener);*/ Loading