Loading lib_enc/voiced_enc_fx.c +32 −3 Original line number Diff line number Diff line Loading @@ -1370,7 +1370,9 @@ static Word32 DTFS_freq_corr_fx( Word16 exp, tmp; Word32 L_tmp; Word16 Q_num, Q_den; #ifdef BASOP_NOGLOB Flag Overflow = 0; #endif IF(LT_16(X1_DTFS_fx.lag_fx, X2_DTFS_fx.lag_fx)) { DTFS_zeroPadd_fx(X2_DTFS_fx.lag_fx, &X1_DTFS_fx); Loading Loading @@ -1405,8 +1407,13 @@ static Word32 DTFS_freq_corr_fx( FOR(k = lk; k < hk; k++) { #ifdef BASOP_NOGLOB corr_fx = L_mac0_o(corr_fx, X1_DTFS_fx.a_fx[k], X2_DTFS_fx.a_fx[k], &Overflow); /* Q(1) */ corr_fx = L_mac0_o(corr_fx, X1_DTFS_fx.b_fx[k], X2_DTFS_fx.b_fx[k], &Overflow); /* Q(1) */ #else corr_fx = L_mac0(corr_fx, X1_DTFS_fx.a_fx[k], X2_DTFS_fx.a_fx[k]); /* Q(1) */ corr_fx = L_mac0(corr_fx, X1_DTFS_fx.b_fx[k], X2_DTFS_fx.b_fx[k]); /* Q(1) */ #endif } Qr = norm_l(corr_fx); Loading @@ -1416,7 +1423,11 @@ static Word32 DTFS_freq_corr_fx( move16(); } #ifdef BASOP_NOGLOB E1_fx = round_fx_o(L_shl_o(corr_fx, Qr, &Overflow), &Overflow); /* Q(Qr-16) */ #else E1_fx = round_fx(L_shl(corr_fx, Qr)); /* Q(Qr-16) */ #endif Num = L_mult0(E1_fx, E1_fx); /* Q(2+2*Qr-32+1) */ Q_num = sub(shl(add(add(X1_DTFS_fx.Q, X2_DTFS_fx.Q), Qr), 1), 32); Loading @@ -1429,8 +1440,11 @@ static Word32 DTFS_freq_corr_fx( move16(); } #ifdef BASOP_NOGLOB E1_fx = round_fx_o(L_shl_o(E_fx, Q1, &Overflow), &Overflow); /* Q(1+Q1-16) */ #else E1_fx = round_fx(L_shl(E_fx, Q1)); /* Q(1+Q1-16) */ #endif /* PORTING: Handling the functions with variable no. of arguments */ E_fx = DTFS_getEngy_band_fx(X2_DTFS_fx, lband, hband); /* Q(1) */ Q2 = norm_l(E_fx); Loading @@ -1440,8 +1454,11 @@ static Word32 DTFS_freq_corr_fx( move16(); } #ifdef BASOP_NOGLOB E2_fx = round_fx_o(L_shl_o(E_fx, Q2, &Overflow), &Overflow); /* Q(1+Q2-16) */ #else E2_fx = round_fx(L_shl(E_fx, Q2)); /* Q(1+Q2-16) */ #endif Den = L_mult0(E1_fx, E2_fx); /* Q(2+Q1+Q2-32+1) */ Q_den = sub(add(shl(add(X2_DTFS_fx.Q, X1_DTFS_fx.Q), 1), add(Q1, Q2)), 32); Loading @@ -1456,17 +1473,29 @@ static Word32 DTFS_freq_corr_fx( { expa = norm_l(Num); #ifdef BASOP_NOGLOB fraca = extract_h(L_shl_o(Num,expa, &Overflow)); #else fraca = extract_h(L_shl(Num,expa)); #endif expa = sub(30, add(expa,Q_num)); expb = norm_l(Den); #ifdef BASOP_NOGLOB fracb = round_fx_o(L_shl_o(Den,expb, &Overflow), &Overflow); #else fracb = round_fx(L_shl(Den,expb)); #endif expb = sub(30, add(expb,Q_den)); scale = shr(sub(fraca,fracb),15); #ifdef BASOP_NOGLOB fracb = shl_o(fracb,scale, &Overflow); #else fracb = shl(fracb,scale); #endif expb = sub(expb,scale); tmp = div_s(fracb,fraca); Loading Loading
lib_enc/voiced_enc_fx.c +32 −3 Original line number Diff line number Diff line Loading @@ -1370,7 +1370,9 @@ static Word32 DTFS_freq_corr_fx( Word16 exp, tmp; Word32 L_tmp; Word16 Q_num, Q_den; #ifdef BASOP_NOGLOB Flag Overflow = 0; #endif IF(LT_16(X1_DTFS_fx.lag_fx, X2_DTFS_fx.lag_fx)) { DTFS_zeroPadd_fx(X2_DTFS_fx.lag_fx, &X1_DTFS_fx); Loading Loading @@ -1405,8 +1407,13 @@ static Word32 DTFS_freq_corr_fx( FOR(k = lk; k < hk; k++) { #ifdef BASOP_NOGLOB corr_fx = L_mac0_o(corr_fx, X1_DTFS_fx.a_fx[k], X2_DTFS_fx.a_fx[k], &Overflow); /* Q(1) */ corr_fx = L_mac0_o(corr_fx, X1_DTFS_fx.b_fx[k], X2_DTFS_fx.b_fx[k], &Overflow); /* Q(1) */ #else corr_fx = L_mac0(corr_fx, X1_DTFS_fx.a_fx[k], X2_DTFS_fx.a_fx[k]); /* Q(1) */ corr_fx = L_mac0(corr_fx, X1_DTFS_fx.b_fx[k], X2_DTFS_fx.b_fx[k]); /* Q(1) */ #endif } Qr = norm_l(corr_fx); Loading @@ -1416,7 +1423,11 @@ static Word32 DTFS_freq_corr_fx( move16(); } #ifdef BASOP_NOGLOB E1_fx = round_fx_o(L_shl_o(corr_fx, Qr, &Overflow), &Overflow); /* Q(Qr-16) */ #else E1_fx = round_fx(L_shl(corr_fx, Qr)); /* Q(Qr-16) */ #endif Num = L_mult0(E1_fx, E1_fx); /* Q(2+2*Qr-32+1) */ Q_num = sub(shl(add(add(X1_DTFS_fx.Q, X2_DTFS_fx.Q), Qr), 1), 32); Loading @@ -1429,8 +1440,11 @@ static Word32 DTFS_freq_corr_fx( move16(); } #ifdef BASOP_NOGLOB E1_fx = round_fx_o(L_shl_o(E_fx, Q1, &Overflow), &Overflow); /* Q(1+Q1-16) */ #else E1_fx = round_fx(L_shl(E_fx, Q1)); /* Q(1+Q1-16) */ #endif /* PORTING: Handling the functions with variable no. of arguments */ E_fx = DTFS_getEngy_band_fx(X2_DTFS_fx, lband, hband); /* Q(1) */ Q2 = norm_l(E_fx); Loading @@ -1440,8 +1454,11 @@ static Word32 DTFS_freq_corr_fx( move16(); } #ifdef BASOP_NOGLOB E2_fx = round_fx_o(L_shl_o(E_fx, Q2, &Overflow), &Overflow); /* Q(1+Q2-16) */ #else E2_fx = round_fx(L_shl(E_fx, Q2)); /* Q(1+Q2-16) */ #endif Den = L_mult0(E1_fx, E2_fx); /* Q(2+Q1+Q2-32+1) */ Q_den = sub(add(shl(add(X2_DTFS_fx.Q, X1_DTFS_fx.Q), 1), add(Q1, Q2)), 32); Loading @@ -1456,17 +1473,29 @@ static Word32 DTFS_freq_corr_fx( { expa = norm_l(Num); #ifdef BASOP_NOGLOB fraca = extract_h(L_shl_o(Num,expa, &Overflow)); #else fraca = extract_h(L_shl(Num,expa)); #endif expa = sub(30, add(expa,Q_num)); expb = norm_l(Den); #ifdef BASOP_NOGLOB fracb = round_fx_o(L_shl_o(Den,expb, &Overflow), &Overflow); #else fracb = round_fx(L_shl(Den,expb)); #endif expb = sub(30, add(expb,Q_den)); scale = shr(sub(fraca,fracb),15); #ifdef BASOP_NOGLOB fracb = shl_o(fracb,scale, &Overflow); #else fracb = shl(fracb,scale); #endif expb = sub(expb,scale); tmp = div_s(fracb,fraca); Loading