Loading lib_com/cng_exc_fx.c +56 −17 Original line number Diff line number Diff line Loading @@ -615,9 +615,11 @@ void cng_params_postupd_fx( Word16 CNG_mode; Word16 ptr; Word32 last_active_brate; #ifndef ISSUE_1836_replace_overflow_libcom #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; move32(); #endif #endif ptr = add( sub( ho_circ_ptr, *cng_buf_cnt ), 1 ); Loading @@ -644,9 +646,15 @@ void cng_params_postupd_fx( FOR( i = 0; i < NUM_ENV_CNG; i++ ) { /* sp[i] = 2.0f*(*ptR * *ptR + *ptI * *ptI)/L_FFT; */ #ifdef ISSUE_1836_replace_overflow_libcom L_tmp = L_mult_sat( *ptR, *ptR ); /* 2*Q_exc+1 */ L_tmp = L_add_sat( L_tmp, L_mult_sat( *ptI, *ptI ) ); /* 2*Q_exc+1 */ L_tmp = L_add_sat( L_tmp, L_tmp ); /* 2*Q_exc+1 */ #else L_tmp = L_mult_o( *ptR, *ptR, &Overflow ); /* 2*Q_exc+1 */ L_tmp = L_add_o( L_tmp, L_mult_o( *ptI, *ptI, &Overflow ), &Overflow ); /* 2*Q_exc+1 */ L_tmp = L_add_o( L_tmp, L_tmp, &Overflow ); /* 2*Q_exc+1 */ #endif L_tmp = Mult_32_16( L_tmp, 128 ); /* 2*Q_exc+1 */ tmp = add( add( Q_exc, Q_exc ), 1 ); sp[i] = L_shr( L_tmp, sub( tmp, 6 ) ); Loading Loading @@ -725,9 +733,11 @@ void cng_params_postupd_ivas_fx( Word16 CNG_mode; Word16 ptr; Word32 last_active_brate; #ifndef ISSUE_1836_replace_overflow_libcom #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; move32(); #endif #endif ptr = add( sub( ho_circ_ptr, *cng_buf_cnt ), 1 ); Loading @@ -754,9 +764,15 @@ void cng_params_postupd_ivas_fx( FOR( i = 0; i < NUM_ENV_CNG; i++ ) { /* sp[i] = 2.0f*(*ptR * *ptR + *ptI * *ptI)/L_FFT; */ #ifdef ISSUE_1836_replace_overflow_libcom L_tmp = L_mult_sat( *ptR, *ptR ); /* 2*Q_exc+1 */ L_tmp = L_add_sat( L_tmp, L_mult_sat( *ptI, *ptI ) ); /* 2*Q_exc+1 */ L_tmp = L_add_sat( L_tmp, L_tmp ); /* 2*Q_exc+1 */ #else L_tmp = L_mult_o( *ptR, *ptR, &Overflow ); /* 2*Q_exc+1 */ L_tmp = L_add_o( L_tmp, L_mult_o( *ptI, *ptI, &Overflow ), &Overflow ); /* 2*Q_exc+1 */ L_tmp = L_add_o( L_tmp, L_tmp, &Overflow ); /* 2*Q_exc+1 */ #endif L_tmp = Mult_32_16( L_tmp, 128 ); /* 2*Q_exc+1 */ tmp = add( add( Q_exc, Q_exc ), 1 ); // To do : Saturation to be re-validated. Loading Loading @@ -861,10 +877,12 @@ void cng_params_upd_fx( Word16 tmp; Word16 temp_lo_fx, temp_hi_fx; Word16 exp_pow; #ifndef ISSUE_1836_replace_overflow_libcom #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; move32(); #endif #endif /* update the pointer to circular buffer of old LSP vectors */ Loading Loading @@ -902,11 +920,13 @@ void cng_params_upd_fx( L_tmp = L_mult0( tmpv, tmpv ); /* 2*(Q_exc+scale) */ pt_exc2++; tmpv = shl( *pt_exc2, scale ); L_tmp = L_mac0_o( L_tmp, tmpv, tmpv, &Overflow ); #ifdef ISSUE_1836_replace_overflow_libcom L_tmp = L_mac0_sat( L_tmp, tmpv, tmpv ); pt_exc2++; #ifdef ISSUE_1799_replace_L_shr_o L_ener = L_add_o( L_ener, L_shr_sat( L_tmp, 7 ), &Overflow ); /* Q(2*(Q_exc+scale)+1) ,division by L_frame done here */ L_ener = L_add_sat( L_ener, L_shr_sat( L_tmp, 7 ) ); /* Q(2*(Q_exc+scale)+1) ,division by L_frame done here */ #else L_tmp = L_mac0_o( L_tmp, tmpv, tmpv, &Overflow ); pt_exc2++; L_ener = L_add_o( L_ener, L_shr_o( L_tmp, 7, &Overflow ), &Overflow ); /* Q(2*(Q_exc+scale)+1) ,division by L_frame done here */ #endif } Loading @@ -919,16 +939,18 @@ void cng_params_upd_fx( L_tmp = L_mult0( tmpv, tmpv ); /* 2*(Q_exc+scale) */ pt_exc2++; tmpv = shl( *pt_exc2, scale ); L_tmp = L_mac0_o( L_tmp, tmpv, tmpv, &Overflow ); #ifdef ISSUE_1836_replace_overflow_libcom L_tmp = L_mac0_sat( L_tmp, tmpv, tmpv ); pt_exc2++; #ifdef ISSUE_1799_replace_L_shr_o L_ener = L_add_o( L_ener, L_shr_sat( Mult_32_16( L_tmp, 26214 /* 256/320, Q15 */ ), 7 ), &Overflow ); /* Q(2*(Q_exc+scale)+15+1-16+1) ,division by L_frame done here */ L_ener = L_add_sat( L_ener, L_shr_sat( Mult_32_16( L_tmp, 26214 /* 256/320, Q15 */ ), 7 ) ); /* Q(2*(Q_exc+scale)+15+1-16+1) ,division by L_frame done here */ #else L_tmp = L_mac0_o( L_tmp, tmpv, tmpv, &Overflow ); pt_exc2++; L_ener = L_add_o( L_ener, L_shr_o( Mult_32_16( L_tmp, 26214 /* 256/320, Q15 */ ), 7, &Overflow ), &Overflow ); /* Q(2*(Q_exc+scale)+15+1-16+1) ,division by L_frame done here */ #endif } } #ifdef ISSUE_1799_replace_L_shr_o #ifdef ISSUE_1836_replace_overflow_libcom L_ener = L_shr_sat( L_ener, sub( shl( add( Q_exc, scale ), 1 ), 5 ) ); /* Q6 (2*(Q_exc+scale)+1-2*(Q_exc+scale)+5) */ #else L_ener = L_shr_o( L_ener, sub( shl( add( Q_exc, scale ), 1 ), 5 ), &Overflow ); /* Q6 (2*(Q_exc+scale)+1-2*(Q_exc+scale)+5) */ Loading Loading @@ -966,9 +988,15 @@ void cng_params_upd_fx( FOR( i = 0; i < NUM_ENV_CNG; i++ ) { /* sp[i] = 2.0f*(*ptR * *ptR + *ptI * *ptI)/L_FFT; */ #ifdef ISSUE_1836_replace_overflow_libcom L_tmp = L_mult_sat( *ptR, *ptR ); /* 2*Q_exc+1 */ L_tmp = L_add_sat( L_tmp, L_mult_sat( *ptI, *ptI ) ); /* 2*Q_exc+1 */ L_tmp = L_add_sat( L_tmp, L_tmp ); /* 2*Q_exc+1 */ #else L_tmp = L_mult_o( *ptR, *ptR, &Overflow ); /* 2*Q_exc+1 */ L_tmp = L_add_o( L_tmp, L_mult_o( *ptI, *ptI, &Overflow ), &Overflow ); /* 2*Q_exc+1 */ L_tmp = L_add_o( L_tmp, L_tmp, &Overflow ); /* 2*Q_exc+1 */ #endif L_tmp = Mult_32_16( L_tmp, 128 ); /* 2*Q_exc+1 */ tmp = add( add( Q_exc, Q_exc ), 1 ); sp[i] = L_shr( L_tmp, sub( tmp, 6 ) ); Loading Loading @@ -1052,9 +1080,11 @@ void cng_params_upd_ivas_fx( move16(); Word16 temp_lo_fx, temp_hi_fx; Word16 exp_pow; #ifndef ISSUE_1836_replace_overflow_libcom #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; move32(); #endif #endif /* update the pointer to circular buffer of old LSP vectors */ Loading Loading @@ -1092,11 +1122,13 @@ void cng_params_upd_ivas_fx( L_tmp = L_mult0( tmpv, tmpv ); /* 2*(Q_exc+scale) */ pt_exc2++; tmpv = shl( *pt_exc2, scale ); L_tmp = L_mac0_o( L_tmp, tmpv, tmpv, &Overflow ); #ifdef ISSUE_1836_replace_overflow_libcom L_tmp = L_mac0_sat( L_tmp, tmpv, tmpv ); pt_exc2++; #ifdef ISSUE_1799_replace_L_shr_o L_ener = L_add_o( L_ener, L_shr_sat( L_tmp, 7 ), &Overflow ); /* Q(2*(Q_exc+scale)+1) ,division by L_frame done here */ L_ener = L_add_sat( L_ener, L_shr_sat( L_tmp, 7 ) ); /* Q(2*(Q_exc+scale)+1) ,division by L_frame done here */ #else L_tmp = L_mac0_o( L_tmp, tmpv, tmpv, &Overflow ); pt_exc2++; L_ener = L_add_o( L_ener, L_shr_o( L_tmp, 7, &Overflow ), &Overflow ); /* Q(2*(Q_exc+scale)+1) ,division by L_frame done here */ #endif } Loading @@ -1109,16 +1141,18 @@ void cng_params_upd_ivas_fx( L_tmp = L_mult0( tmpv, tmpv ); /* 2*(Q_exc+scale) */ pt_exc2++; tmpv = shl( *pt_exc2, scale ); L_tmp = L_mac0_o( L_tmp, tmpv, tmpv, &Overflow ); #ifdef ISSUE_1836_replace_overflow_libcom L_tmp = L_mac0_sat( L_tmp, tmpv, tmpv ); pt_exc2++; #ifdef ISSUE_1799_replace_L_shr_o L_ener = L_add_o( L_ener, L_shr_sat( Mult_32_16( L_tmp, 26214 /* 256/320, Q15 */ ), 7 ), &Overflow ); /* Q(2*(Q_exc+scale)+15+1-16+1) ,division by L_frame done here */ L_ener = L_add_sat( L_ener, L_shr_sat( Mult_32_16( L_tmp, 26214 /* 256/320, Q15 */ ), 7 ) ); /* Q(2*(Q_exc+scale)+15+1-16+1) ,division by L_frame done here */ #else L_tmp = L_mac0_o( L_tmp, tmpv, tmpv, &Overflow ); pt_exc2++; L_ener = L_add_o( L_ener, L_shr_o( Mult_32_16( L_tmp, 26214 /* 256/320, Q15 */ ), 7, &Overflow ), &Overflow ); /* Q(2*(Q_exc+scale)+15+1-16+1) ,division by L_frame done here */ #endif } } #ifdef ISSUE_1799_replace_L_shr_o #ifdef ISSUE_1836_replace_overflow_libcom L_ener = L_shr_sat( L_ener, sub( shl( add( Q_exc, scale ), 1 ), 5 ) ); /* Q6 (2*(Q_exc+scale)+1-2*(Q_exc+scale)+5) */ #else L_ener = L_shr_o( L_ener, sub( shl( add( Q_exc, scale ), 1 ), 5 ), &Overflow ); /* Q6 (2*(Q_exc+scale)+1-2*(Q_exc+scale)+5) */ Loading Loading @@ -1156,14 +1190,19 @@ void cng_params_upd_ivas_fx( FOR( i = 0; i < NUM_ENV_CNG; i++ ) { /* sp[i] = 2.0f*(*ptR * *ptR + *ptI * *ptI)/L_FFT; */ #ifdef ISSUE_1836_replace_overflow_libcom L_tmp = L_mult_sat( *ptR, *ptR ); /* 2*Q_exc+1 */ L_tmp = L_add_sat( L_tmp, L_mult_sat( *ptI, *ptI ) ); /* 2*Q_exc+1 */ L_tmp = L_add_sat( L_tmp, L_tmp ); /* 2*Q_exc+1 */ L_tmp = Mult_32_16( L_tmp, 128 ); /* 2*Q_exc+1 */ tmp = add( add( Q_exc, Q_exc ), 1 ); sp[i] = L_shr_sat( L_tmp, sub( tmp, 6 ) ); #else L_tmp = L_mult_o( *ptR, *ptR, &Overflow ); /* 2*Q_exc+1 */ L_tmp = L_add_o( L_tmp, L_mult_o( *ptI, *ptI, &Overflow ), &Overflow ); /* 2*Q_exc+1 */ L_tmp = L_add_o( L_tmp, L_tmp, &Overflow ); /* 2*Q_exc+1 */ L_tmp = Mult_32_16( L_tmp, 128 ); /* 2*Q_exc+1 */ tmp = add( add( Q_exc, Q_exc ), 1 ); #ifdef ISSUE_1799_replace_L_shr_o sp[i] = L_shr_sat( L_tmp, sub( tmp, 6 ) ); #else sp[i] = L_shr_o( L_tmp, sub( tmp, 6 ), &Overflow ); #endif move32(); /* Q6 */ Loading Loading
lib_com/cng_exc_fx.c +56 −17 Original line number Diff line number Diff line Loading @@ -615,9 +615,11 @@ void cng_params_postupd_fx( Word16 CNG_mode; Word16 ptr; Word32 last_active_brate; #ifndef ISSUE_1836_replace_overflow_libcom #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; move32(); #endif #endif ptr = add( sub( ho_circ_ptr, *cng_buf_cnt ), 1 ); Loading @@ -644,9 +646,15 @@ void cng_params_postupd_fx( FOR( i = 0; i < NUM_ENV_CNG; i++ ) { /* sp[i] = 2.0f*(*ptR * *ptR + *ptI * *ptI)/L_FFT; */ #ifdef ISSUE_1836_replace_overflow_libcom L_tmp = L_mult_sat( *ptR, *ptR ); /* 2*Q_exc+1 */ L_tmp = L_add_sat( L_tmp, L_mult_sat( *ptI, *ptI ) ); /* 2*Q_exc+1 */ L_tmp = L_add_sat( L_tmp, L_tmp ); /* 2*Q_exc+1 */ #else L_tmp = L_mult_o( *ptR, *ptR, &Overflow ); /* 2*Q_exc+1 */ L_tmp = L_add_o( L_tmp, L_mult_o( *ptI, *ptI, &Overflow ), &Overflow ); /* 2*Q_exc+1 */ L_tmp = L_add_o( L_tmp, L_tmp, &Overflow ); /* 2*Q_exc+1 */ #endif L_tmp = Mult_32_16( L_tmp, 128 ); /* 2*Q_exc+1 */ tmp = add( add( Q_exc, Q_exc ), 1 ); sp[i] = L_shr( L_tmp, sub( tmp, 6 ) ); Loading Loading @@ -725,9 +733,11 @@ void cng_params_postupd_ivas_fx( Word16 CNG_mode; Word16 ptr; Word32 last_active_brate; #ifndef ISSUE_1836_replace_overflow_libcom #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; move32(); #endif #endif ptr = add( sub( ho_circ_ptr, *cng_buf_cnt ), 1 ); Loading @@ -754,9 +764,15 @@ void cng_params_postupd_ivas_fx( FOR( i = 0; i < NUM_ENV_CNG; i++ ) { /* sp[i] = 2.0f*(*ptR * *ptR + *ptI * *ptI)/L_FFT; */ #ifdef ISSUE_1836_replace_overflow_libcom L_tmp = L_mult_sat( *ptR, *ptR ); /* 2*Q_exc+1 */ L_tmp = L_add_sat( L_tmp, L_mult_sat( *ptI, *ptI ) ); /* 2*Q_exc+1 */ L_tmp = L_add_sat( L_tmp, L_tmp ); /* 2*Q_exc+1 */ #else L_tmp = L_mult_o( *ptR, *ptR, &Overflow ); /* 2*Q_exc+1 */ L_tmp = L_add_o( L_tmp, L_mult_o( *ptI, *ptI, &Overflow ), &Overflow ); /* 2*Q_exc+1 */ L_tmp = L_add_o( L_tmp, L_tmp, &Overflow ); /* 2*Q_exc+1 */ #endif L_tmp = Mult_32_16( L_tmp, 128 ); /* 2*Q_exc+1 */ tmp = add( add( Q_exc, Q_exc ), 1 ); // To do : Saturation to be re-validated. Loading Loading @@ -861,10 +877,12 @@ void cng_params_upd_fx( Word16 tmp; Word16 temp_lo_fx, temp_hi_fx; Word16 exp_pow; #ifndef ISSUE_1836_replace_overflow_libcom #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; move32(); #endif #endif /* update the pointer to circular buffer of old LSP vectors */ Loading Loading @@ -902,11 +920,13 @@ void cng_params_upd_fx( L_tmp = L_mult0( tmpv, tmpv ); /* 2*(Q_exc+scale) */ pt_exc2++; tmpv = shl( *pt_exc2, scale ); L_tmp = L_mac0_o( L_tmp, tmpv, tmpv, &Overflow ); #ifdef ISSUE_1836_replace_overflow_libcom L_tmp = L_mac0_sat( L_tmp, tmpv, tmpv ); pt_exc2++; #ifdef ISSUE_1799_replace_L_shr_o L_ener = L_add_o( L_ener, L_shr_sat( L_tmp, 7 ), &Overflow ); /* Q(2*(Q_exc+scale)+1) ,division by L_frame done here */ L_ener = L_add_sat( L_ener, L_shr_sat( L_tmp, 7 ) ); /* Q(2*(Q_exc+scale)+1) ,division by L_frame done here */ #else L_tmp = L_mac0_o( L_tmp, tmpv, tmpv, &Overflow ); pt_exc2++; L_ener = L_add_o( L_ener, L_shr_o( L_tmp, 7, &Overflow ), &Overflow ); /* Q(2*(Q_exc+scale)+1) ,division by L_frame done here */ #endif } Loading @@ -919,16 +939,18 @@ void cng_params_upd_fx( L_tmp = L_mult0( tmpv, tmpv ); /* 2*(Q_exc+scale) */ pt_exc2++; tmpv = shl( *pt_exc2, scale ); L_tmp = L_mac0_o( L_tmp, tmpv, tmpv, &Overflow ); #ifdef ISSUE_1836_replace_overflow_libcom L_tmp = L_mac0_sat( L_tmp, tmpv, tmpv ); pt_exc2++; #ifdef ISSUE_1799_replace_L_shr_o L_ener = L_add_o( L_ener, L_shr_sat( Mult_32_16( L_tmp, 26214 /* 256/320, Q15 */ ), 7 ), &Overflow ); /* Q(2*(Q_exc+scale)+15+1-16+1) ,division by L_frame done here */ L_ener = L_add_sat( L_ener, L_shr_sat( Mult_32_16( L_tmp, 26214 /* 256/320, Q15 */ ), 7 ) ); /* Q(2*(Q_exc+scale)+15+1-16+1) ,division by L_frame done here */ #else L_tmp = L_mac0_o( L_tmp, tmpv, tmpv, &Overflow ); pt_exc2++; L_ener = L_add_o( L_ener, L_shr_o( Mult_32_16( L_tmp, 26214 /* 256/320, Q15 */ ), 7, &Overflow ), &Overflow ); /* Q(2*(Q_exc+scale)+15+1-16+1) ,division by L_frame done here */ #endif } } #ifdef ISSUE_1799_replace_L_shr_o #ifdef ISSUE_1836_replace_overflow_libcom L_ener = L_shr_sat( L_ener, sub( shl( add( Q_exc, scale ), 1 ), 5 ) ); /* Q6 (2*(Q_exc+scale)+1-2*(Q_exc+scale)+5) */ #else L_ener = L_shr_o( L_ener, sub( shl( add( Q_exc, scale ), 1 ), 5 ), &Overflow ); /* Q6 (2*(Q_exc+scale)+1-2*(Q_exc+scale)+5) */ Loading Loading @@ -966,9 +988,15 @@ void cng_params_upd_fx( FOR( i = 0; i < NUM_ENV_CNG; i++ ) { /* sp[i] = 2.0f*(*ptR * *ptR + *ptI * *ptI)/L_FFT; */ #ifdef ISSUE_1836_replace_overflow_libcom L_tmp = L_mult_sat( *ptR, *ptR ); /* 2*Q_exc+1 */ L_tmp = L_add_sat( L_tmp, L_mult_sat( *ptI, *ptI ) ); /* 2*Q_exc+1 */ L_tmp = L_add_sat( L_tmp, L_tmp ); /* 2*Q_exc+1 */ #else L_tmp = L_mult_o( *ptR, *ptR, &Overflow ); /* 2*Q_exc+1 */ L_tmp = L_add_o( L_tmp, L_mult_o( *ptI, *ptI, &Overflow ), &Overflow ); /* 2*Q_exc+1 */ L_tmp = L_add_o( L_tmp, L_tmp, &Overflow ); /* 2*Q_exc+1 */ #endif L_tmp = Mult_32_16( L_tmp, 128 ); /* 2*Q_exc+1 */ tmp = add( add( Q_exc, Q_exc ), 1 ); sp[i] = L_shr( L_tmp, sub( tmp, 6 ) ); Loading Loading @@ -1052,9 +1080,11 @@ void cng_params_upd_ivas_fx( move16(); Word16 temp_lo_fx, temp_hi_fx; Word16 exp_pow; #ifndef ISSUE_1836_replace_overflow_libcom #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; move32(); #endif #endif /* update the pointer to circular buffer of old LSP vectors */ Loading Loading @@ -1092,11 +1122,13 @@ void cng_params_upd_ivas_fx( L_tmp = L_mult0( tmpv, tmpv ); /* 2*(Q_exc+scale) */ pt_exc2++; tmpv = shl( *pt_exc2, scale ); L_tmp = L_mac0_o( L_tmp, tmpv, tmpv, &Overflow ); #ifdef ISSUE_1836_replace_overflow_libcom L_tmp = L_mac0_sat( L_tmp, tmpv, tmpv ); pt_exc2++; #ifdef ISSUE_1799_replace_L_shr_o L_ener = L_add_o( L_ener, L_shr_sat( L_tmp, 7 ), &Overflow ); /* Q(2*(Q_exc+scale)+1) ,division by L_frame done here */ L_ener = L_add_sat( L_ener, L_shr_sat( L_tmp, 7 ) ); /* Q(2*(Q_exc+scale)+1) ,division by L_frame done here */ #else L_tmp = L_mac0_o( L_tmp, tmpv, tmpv, &Overflow ); pt_exc2++; L_ener = L_add_o( L_ener, L_shr_o( L_tmp, 7, &Overflow ), &Overflow ); /* Q(2*(Q_exc+scale)+1) ,division by L_frame done here */ #endif } Loading @@ -1109,16 +1141,18 @@ void cng_params_upd_ivas_fx( L_tmp = L_mult0( tmpv, tmpv ); /* 2*(Q_exc+scale) */ pt_exc2++; tmpv = shl( *pt_exc2, scale ); L_tmp = L_mac0_o( L_tmp, tmpv, tmpv, &Overflow ); #ifdef ISSUE_1836_replace_overflow_libcom L_tmp = L_mac0_sat( L_tmp, tmpv, tmpv ); pt_exc2++; #ifdef ISSUE_1799_replace_L_shr_o L_ener = L_add_o( L_ener, L_shr_sat( Mult_32_16( L_tmp, 26214 /* 256/320, Q15 */ ), 7 ), &Overflow ); /* Q(2*(Q_exc+scale)+15+1-16+1) ,division by L_frame done here */ L_ener = L_add_sat( L_ener, L_shr_sat( Mult_32_16( L_tmp, 26214 /* 256/320, Q15 */ ), 7 ) ); /* Q(2*(Q_exc+scale)+15+1-16+1) ,division by L_frame done here */ #else L_tmp = L_mac0_o( L_tmp, tmpv, tmpv, &Overflow ); pt_exc2++; L_ener = L_add_o( L_ener, L_shr_o( Mult_32_16( L_tmp, 26214 /* 256/320, Q15 */ ), 7, &Overflow ), &Overflow ); /* Q(2*(Q_exc+scale)+15+1-16+1) ,division by L_frame done here */ #endif } } #ifdef ISSUE_1799_replace_L_shr_o #ifdef ISSUE_1836_replace_overflow_libcom L_ener = L_shr_sat( L_ener, sub( shl( add( Q_exc, scale ), 1 ), 5 ) ); /* Q6 (2*(Q_exc+scale)+1-2*(Q_exc+scale)+5) */ #else L_ener = L_shr_o( L_ener, sub( shl( add( Q_exc, scale ), 1 ), 5 ), &Overflow ); /* Q6 (2*(Q_exc+scale)+1-2*(Q_exc+scale)+5) */ Loading Loading @@ -1156,14 +1190,19 @@ void cng_params_upd_ivas_fx( FOR( i = 0; i < NUM_ENV_CNG; i++ ) { /* sp[i] = 2.0f*(*ptR * *ptR + *ptI * *ptI)/L_FFT; */ #ifdef ISSUE_1836_replace_overflow_libcom L_tmp = L_mult_sat( *ptR, *ptR ); /* 2*Q_exc+1 */ L_tmp = L_add_sat( L_tmp, L_mult_sat( *ptI, *ptI ) ); /* 2*Q_exc+1 */ L_tmp = L_add_sat( L_tmp, L_tmp ); /* 2*Q_exc+1 */ L_tmp = Mult_32_16( L_tmp, 128 ); /* 2*Q_exc+1 */ tmp = add( add( Q_exc, Q_exc ), 1 ); sp[i] = L_shr_sat( L_tmp, sub( tmp, 6 ) ); #else L_tmp = L_mult_o( *ptR, *ptR, &Overflow ); /* 2*Q_exc+1 */ L_tmp = L_add_o( L_tmp, L_mult_o( *ptI, *ptI, &Overflow ), &Overflow ); /* 2*Q_exc+1 */ L_tmp = L_add_o( L_tmp, L_tmp, &Overflow ); /* 2*Q_exc+1 */ L_tmp = Mult_32_16( L_tmp, 128 ); /* 2*Q_exc+1 */ tmp = add( add( Q_exc, Q_exc ), 1 ); #ifdef ISSUE_1799_replace_L_shr_o sp[i] = L_shr_sat( L_tmp, sub( tmp, 6 ) ); #else sp[i] = L_shr_o( L_tmp, sub( tmp, 6 ), &Overflow ); #endif move32(); /* Q6 */ Loading