Loading lib_enc/gaus_enc_fx.c +10 −2 Original line number Diff line number Diff line Loading @@ -599,10 +599,18 @@ void gauss2v_fx( div_result = div_s(Num, Den); /* Q15 */ /* Re-scale to compensate for normalization*/ #ifdef BASOP_NOGLOB GainPortion2 = L_shr_sat( L_deposit_l( div_result ), sub( exp_num, exp_den ) ); #else GainPortion2 = L_shr( L_deposit_l( div_result ), sub( exp_num, exp_den ) ); #endif } #ifdef BASOP_NOGLOB ener_sqrt = Isqrt( L_shl_sat( GainPortion2, 1 ) ); /* Make value a Q16 prior to division (align on power of 4) */ #else ener_sqrt = Isqrt( L_shl( GainPortion2, 1 ) ); /* Make value a Q16 prior to division (align on power of 4) */ #endif ener_sqrt = L_shr(ener_sqrt, 8); /* Left-shift Q23 result to make a Q15 result */ Portion = Mult_32_16(GainPortion1, 19661); /* Performs GainPortion1*.6 */ Loading lib_enc/nelp_enc_fx.c +17 −3 Original line number Diff line number Diff line Loading @@ -132,7 +132,11 @@ void quantize_uvg_fx(Word16 *G, Word16 *iG1, Word16 *iG2, Word16 *quantG, Word16 FOR(i = 0; i < UVG1_CBSIZE; i++) { L16 = shr(sub(G1[0], UVG1CB_fx[i][0]), 1); /* Q12 */ #ifdef BASOP_NOGLOB L16_1 = shr( sub_sat( G1[1], UVG1CB_fx[i][1] ), 1 ); /* Q12 */ #else L16_1 = shr( sub( G1[1], UVG1CB_fx[i][1] ), 1 ); /* Q12 */ #endif Lacc = 0; Lacc = L_mac0(Lacc, L16, L16); /*Q24 */ Lacc = L_mac0(Lacc, L16_1, L16_1);/*Q24 */ Loading Loading @@ -189,15 +193,25 @@ void quantize_uvg_fx(Word16 *G, Word16 *iG1, Word16 *iG2, Word16 *quantG, Word16 { /*mse += SQR(G2[i*5+k]-UVG2CB1[j][k]); */ ind = add(shr(extract_l(L_mult(i, 5)), 1), k); #ifdef BASOP_NOGLOB temp = sub_sat( G2[ind], UVG2CB1_fx[j][k] ); Lacc = L_mac0_sat(Lacc, temp, temp); /*Q24 */ #else temp = sub( G2[ind], UVG2CB1_fx[j][k] ); Lacc = L_mac0(Lacc, temp, temp); /*Q24 */ #endif } ELSE IF(i == 1) { /*mse += SQR(G2[i*5+k]-UVG2CB2[j][k]); */ ind = add(shr(extract_l(L_mult(i, 5)), 1), k); #ifdef BASOP_NOGLOB temp = sub_sat( G2[ind], UVG2CB2_fx[j][k] ); Lacc = L_mac0_sat(Lacc, temp, temp); /*Q24 */ #else temp = sub( G2[ind], UVG2CB2_fx[j][k] ); Lacc = L_mac0(Lacc, temp, temp); /*Q24 */ #endif } } Loading Loading
lib_enc/gaus_enc_fx.c +10 −2 Original line number Diff line number Diff line Loading @@ -599,10 +599,18 @@ void gauss2v_fx( div_result = div_s(Num, Den); /* Q15 */ /* Re-scale to compensate for normalization*/ #ifdef BASOP_NOGLOB GainPortion2 = L_shr_sat( L_deposit_l( div_result ), sub( exp_num, exp_den ) ); #else GainPortion2 = L_shr( L_deposit_l( div_result ), sub( exp_num, exp_den ) ); #endif } #ifdef BASOP_NOGLOB ener_sqrt = Isqrt( L_shl_sat( GainPortion2, 1 ) ); /* Make value a Q16 prior to division (align on power of 4) */ #else ener_sqrt = Isqrt( L_shl( GainPortion2, 1 ) ); /* Make value a Q16 prior to division (align on power of 4) */ #endif ener_sqrt = L_shr(ener_sqrt, 8); /* Left-shift Q23 result to make a Q15 result */ Portion = Mult_32_16(GainPortion1, 19661); /* Performs GainPortion1*.6 */ Loading
lib_enc/nelp_enc_fx.c +17 −3 Original line number Diff line number Diff line Loading @@ -132,7 +132,11 @@ void quantize_uvg_fx(Word16 *G, Word16 *iG1, Word16 *iG2, Word16 *quantG, Word16 FOR(i = 0; i < UVG1_CBSIZE; i++) { L16 = shr(sub(G1[0], UVG1CB_fx[i][0]), 1); /* Q12 */ #ifdef BASOP_NOGLOB L16_1 = shr( sub_sat( G1[1], UVG1CB_fx[i][1] ), 1 ); /* Q12 */ #else L16_1 = shr( sub( G1[1], UVG1CB_fx[i][1] ), 1 ); /* Q12 */ #endif Lacc = 0; Lacc = L_mac0(Lacc, L16, L16); /*Q24 */ Lacc = L_mac0(Lacc, L16_1, L16_1);/*Q24 */ Loading Loading @@ -189,15 +193,25 @@ void quantize_uvg_fx(Word16 *G, Word16 *iG1, Word16 *iG2, Word16 *quantG, Word16 { /*mse += SQR(G2[i*5+k]-UVG2CB1[j][k]); */ ind = add(shr(extract_l(L_mult(i, 5)), 1), k); #ifdef BASOP_NOGLOB temp = sub_sat( G2[ind], UVG2CB1_fx[j][k] ); Lacc = L_mac0_sat(Lacc, temp, temp); /*Q24 */ #else temp = sub( G2[ind], UVG2CB1_fx[j][k] ); Lacc = L_mac0(Lacc, temp, temp); /*Q24 */ #endif } ELSE IF(i == 1) { /*mse += SQR(G2[i*5+k]-UVG2CB2[j][k]); */ ind = add(shr(extract_l(L_mult(i, 5)), 1), k); #ifdef BASOP_NOGLOB temp = sub_sat( G2[ind], UVG2CB2_fx[j][k] ); Lacc = L_mac0_sat(Lacc, temp, temp); /*Q24 */ #else temp = sub( G2[ind], UVG2CB2_fx[j][k] ); Lacc = L_mac0(Lacc, temp, temp); /*Q24 */ #endif } } Loading