Loading lib_dec/ivas_stereo_cng_dec.c +13 −13 Original line number Diff line number Diff line Loading @@ -803,34 +803,34 @@ void stereo_cng_compute_PScorr_fx( } Word32 Var1 = Mpy_32_32( enrP_fx, enrS_fx ); // 2*( outputPptr_Q - 31 - guard_bits + outputSptr_Q - 31 - guard_bits ) Word32 temp = L_add( Var1, 1 ); /*adding one in order to make temp non-zero*/ Word16 q = 2 * ( outputPptr_Q - 31 - guard_bits + outputSptr_Q - 31 - guard_bits ); Word16 exp = 31 - ( 2 * ( outputPptr_Q - 31 - guard_bits + outputSptr_Q - 31 - guard_bits ) ); Word16 nrm = norm_l( Var1 ); Word32 frac = L_shl( temp, nrm ); Word16 exp = 31 - ( q + nrm ); Word32 Var2 = Isqrt_lc( frac, &exp ); /*Q(31 - exp)*/ Word32 Var3 = L_add( dotPS_fx, 1 ); /*adding one in order to make temp non-zero. q = Q_outputSptr + Q_outputPptr - guard_bits*/ IF( Var1 == 0 ) { Var1 = 1; } Word32 Var2, Var3; Var2 = ISqrt32(Var1, &exp); Var3 = L_add( dotPS_fx, 1 ); /*adding one in order to make temp non-zero. q = Q_outputSptr + Q_outputPptr - guard_bits*/ c_PS_fx = Mpy_32_32( Var3, Var2 ); /* outputSptr_Q + outputPptr_Q - guard_bits - exp */ Word16 c_PS_fx_Q = outputSptr_Q + outputPptr_Q - guard_bits - exp - 31; Word16 c_PS_fx_Q = outputSptr_Q + outputPptr_Q - guard_bits - exp - 31; Word32 a = 0, b = 0; a = Mpy_32_32( c_PS_fx, ONE_MINUS_STEREO_TD_PS_CORR_FILT_Q31 ); // Q(c_PS_fx_Q) Word16 a_q = 0, b_q = 0, ab_q = 0; a = Mpy_32_32( c_PS_fx, ONE_MINUS_STEREO_TD_PS_CORR_FILT_Q31 ); // Q(c_PS_fx_Q) a_q = c_PS_fx_Q; b = Mpy_32_32( STEREO_TD_PS_CORR_FILT_Q31, *c_PS_LT_fx ); // Q(Q_c_PS_LT_fx) b_q = Q_c_PS_LT_fx; if ( a_q > b_q ) IF (GT_16( a_q , b_q) ) { ab_q = a_q - b_q; *c_PS_LT_fx = L_add( L_shr( a, (Word16) ab_q ), b ); Q_c_PS_LT_fx = b_q; } else if ( b_q < a_q ) ELSE IF ( LT_16(b_q , a_q )) { ab_q = b_q - a_q; *c_PS_LT_fx = L_add( a, L_shr( b, (Word16) ab_q ) ); Loading Loading
lib_dec/ivas_stereo_cng_dec.c +13 −13 Original line number Diff line number Diff line Loading @@ -803,34 +803,34 @@ void stereo_cng_compute_PScorr_fx( } Word32 Var1 = Mpy_32_32( enrP_fx, enrS_fx ); // 2*( outputPptr_Q - 31 - guard_bits + outputSptr_Q - 31 - guard_bits ) Word32 temp = L_add( Var1, 1 ); /*adding one in order to make temp non-zero*/ Word16 q = 2 * ( outputPptr_Q - 31 - guard_bits + outputSptr_Q - 31 - guard_bits ); Word16 exp = 31 - ( 2 * ( outputPptr_Q - 31 - guard_bits + outputSptr_Q - 31 - guard_bits ) ); Word16 nrm = norm_l( Var1 ); Word32 frac = L_shl( temp, nrm ); Word16 exp = 31 - ( q + nrm ); Word32 Var2 = Isqrt_lc( frac, &exp ); /*Q(31 - exp)*/ Word32 Var3 = L_add( dotPS_fx, 1 ); /*adding one in order to make temp non-zero. q = Q_outputSptr + Q_outputPptr - guard_bits*/ IF( Var1 == 0 ) { Var1 = 1; } Word32 Var2, Var3; Var2 = ISqrt32(Var1, &exp); Var3 = L_add( dotPS_fx, 1 ); /*adding one in order to make temp non-zero. q = Q_outputSptr + Q_outputPptr - guard_bits*/ c_PS_fx = Mpy_32_32( Var3, Var2 ); /* outputSptr_Q + outputPptr_Q - guard_bits - exp */ Word16 c_PS_fx_Q = outputSptr_Q + outputPptr_Q - guard_bits - exp - 31; Word16 c_PS_fx_Q = outputSptr_Q + outputPptr_Q - guard_bits - exp - 31; Word32 a = 0, b = 0; a = Mpy_32_32( c_PS_fx, ONE_MINUS_STEREO_TD_PS_CORR_FILT_Q31 ); // Q(c_PS_fx_Q) Word16 a_q = 0, b_q = 0, ab_q = 0; a = Mpy_32_32( c_PS_fx, ONE_MINUS_STEREO_TD_PS_CORR_FILT_Q31 ); // Q(c_PS_fx_Q) a_q = c_PS_fx_Q; b = Mpy_32_32( STEREO_TD_PS_CORR_FILT_Q31, *c_PS_LT_fx ); // Q(Q_c_PS_LT_fx) b_q = Q_c_PS_LT_fx; if ( a_q > b_q ) IF (GT_16( a_q , b_q) ) { ab_q = a_q - b_q; *c_PS_LT_fx = L_add( L_shr( a, (Word16) ab_q ), b ); Q_c_PS_LT_fx = b_q; } else if ( b_q < a_q ) ELSE IF ( LT_16(b_q , a_q )) { ab_q = b_q - a_q; *c_PS_LT_fx = L_add( a, L_shr( b, (Word16) ab_q ) ); Loading