Loading lib_com/fd_cng_com_fx.c +39 −32 Original line number Diff line number Diff line Loading @@ -1753,12 +1753,6 @@ void minimum_statistics_fx( Word32 *msNoiseEst_buffer32 = (Word32 *) msNoiseEst_buffer; Word16 *msNoiseEst_buffer16 = (Word16 *) msNoiseEst_buffer; if ( EQ_16( element_mode, 0 ) ) { (void) enc_dec; } len2 = i_mult( MSNUMSUBFR, len ); msM_win = hFdCngCom->msM_win; Loading @@ -1779,7 +1773,8 @@ void minimum_statistics_fx( { Copy( msPeriodog, msPsd, len ); /* 6Q9 */ Copy( msPeriodog, msPsdFirstMoment, len ); /* 6Q9 */ IF( element_mode == 0 ) IF( EQ_16( element_mode, EVS_MONO ) ) { Copy( msPeriodog, msNoiseFloor_buffer16, len ); /* 6Q9 */ Loading Loading @@ -1901,7 +1896,7 @@ void minimum_statistics_fx( /* msPeriodogSum[cnt] with format 16Q15 */ Word16 msNoiseFloor16tmp[NPART_SHAPING]; IF( element_mode == 0 ) IF( EQ_16( element_mode, EVS_MONO ) ) { snr = dotp_s_fx( msNoiseFloor_buffer16 + start, psize + start, current_len, CNG_HS ); } Loading Loading @@ -1940,7 +1935,7 @@ void minimum_statistics_fx( test(); test(); test(); IF( ( scalar == 0 ) || ( ( element_mode == 0 ) ? ( msNoiseFloor_buffer16[j] == 0 ) : ( msNoiseFloor_buffer32[j] == 0 ) ) ) IF( ( scalar == 0 ) || ( EQ_16( element_mode, EVS_MONO ) ? ( msNoiseFloor_buffer16[j] == 0 ) : ( msNoiseFloor_buffer32[j] == 0 ) ) ) { msAlpha[j] = msAlphaHatMin2; move32(); Loading @@ -1951,7 +1946,7 @@ void minimum_statistics_fx( s1 = WORD16_BITS - 1; move16(); IF( element_mode == 0 ) IF( EQ_16( element_mode, EVS_MONO ) ) { if ( msNoiseFloor_buffer16[j] != 0 ) { Loading Loading @@ -2076,9 +2071,9 @@ void minimum_statistics_fx( move16(); test(); test(); IF( ( element_mode == 0 ) ? ( msNoiseFloor_buffer16[j] != 0 ) : ( msNoiseFloor_buffer32[j] != 0 ) ) IF( EQ_16( element_mode, EVS_MONO ) ? ( msNoiseFloor_buffer16[j] != 0 ) : ( msNoiseFloor_buffer32[j] != 0 ) ) { IF( element_mode == 0 ) IF( EQ_16( element_mode, EVS_MONO ) ) { tmp = L_mult( msNoiseFloor_buffer16[j], msNoiseFloor_buffer16[j] ); } Loading Loading @@ -2197,7 +2192,7 @@ void minimum_statistics_fx( } } /* Get the current noise floor */ IF( element_mode == 0 ) IF( EQ_16( element_mode, EVS_MONO ) ) { Copy_Scale_sig_32_16( msCurrentMinOut, msNoiseFloor_buffer16, len, -16 ); } Loading Loading @@ -2262,7 +2257,7 @@ void minimum_statistics_fx( set32_fx( msCurrentMin, 2147483647l /*1.0 Q31*/, len ); /* Get the current noise floor */ IF( element_mode == 0 ) IF( EQ_16( element_mode, EVS_MONO ) ) { Copy_Scale_sig_32_16( msCurrentMinOut, msNoiseFloor_buffer16, len, -16 ); } Loading Loading @@ -2328,7 +2323,7 @@ void minimum_statistics_fx( } /* Smooth noise estimate during CNG phases */ IF( element_mode == 0 ) IF( EQ_16( element_mode, EVS_MONO ) ) { FOR( j = 0; j < len; j++ ) { Loading @@ -2348,14 +2343,12 @@ void minimum_statistics_fx( } } IF( element_mode > 0 ) { IF( EQ_16( enc_dec, DEC ) && EQ_16( element_mode, IVAS_CPE_TD ) ) { // v_multc(msNoiseEst, 1.4125f, msNoiseEst, NPART_SHAPING); v_multc_att32( msNoiseEst_buffer32, 23142, msNoiseEst_buffer32, NPART_SHAPING ); } } /* Collect buffers */ Copy( msPeriodog, msPeriodogBuf + len * ( *msPeriodogBufPtr ), len ); Loading @@ -2368,6 +2361,8 @@ void minimum_statistics_fx( } /* Upper limit the noise floors with the averaged input energy */ IF( EQ_16( element_mode, EVS_MONO ) ) { FOR( j = 0; j < len; j++ ) { scalar = L_mult( msPeriodogBuf[j], 6554 /*1.0/MSBUFLEN Q15*/ ); Loading @@ -2376,24 +2371,36 @@ void minimum_statistics_fx( { scalar = L_mac( scalar, msPeriodogBuf[i], 6554 /*1.0/MSBUFLEN Q15*/ ); } IF( element_mode == 0 ) { scalar16 = round_fx( scalar ); if ( GT_16( msNoiseEst_buffer16[j], scalar16 ) /*0.0 Q15*/ ) { msNoiseEst_buffer16[j] = scalar16; move16(); } assert( msNoiseEst_buffer16[j] >= 0 ); } } ELSE { FOR( j = 0; j < len; j++ ) { scalar = L_mult( msPeriodogBuf[j], 6554 /*1.0/MSBUFLEN Q15*/ ); FOR( i = j + len; i < MSBUFLEN * len; i += len ) { scalar = L_mac( scalar, msPeriodogBuf[i], 6554 /*1.0/MSBUFLEN Q15*/ ); } if ( GT_32( msNoiseEst_buffer32[j], scalar ) /*0.0 Q15*/ ) { msNoiseEst_buffer32[j] = scalar; move32(); } assert( msNoiseEst_buffer32[j] >= 0 ); } assert( ( ( element_mode == 0 ) ? ( msNoiseEst_buffer16[j] >= 0 ) : ( msNoiseEst_buffer32[j] >= 0 ) ) ); } } Loading Loading
lib_com/fd_cng_com_fx.c +39 −32 Original line number Diff line number Diff line Loading @@ -1753,12 +1753,6 @@ void minimum_statistics_fx( Word32 *msNoiseEst_buffer32 = (Word32 *) msNoiseEst_buffer; Word16 *msNoiseEst_buffer16 = (Word16 *) msNoiseEst_buffer; if ( EQ_16( element_mode, 0 ) ) { (void) enc_dec; } len2 = i_mult( MSNUMSUBFR, len ); msM_win = hFdCngCom->msM_win; Loading @@ -1779,7 +1773,8 @@ void minimum_statistics_fx( { Copy( msPeriodog, msPsd, len ); /* 6Q9 */ Copy( msPeriodog, msPsdFirstMoment, len ); /* 6Q9 */ IF( element_mode == 0 ) IF( EQ_16( element_mode, EVS_MONO ) ) { Copy( msPeriodog, msNoiseFloor_buffer16, len ); /* 6Q9 */ Loading Loading @@ -1901,7 +1896,7 @@ void minimum_statistics_fx( /* msPeriodogSum[cnt] with format 16Q15 */ Word16 msNoiseFloor16tmp[NPART_SHAPING]; IF( element_mode == 0 ) IF( EQ_16( element_mode, EVS_MONO ) ) { snr = dotp_s_fx( msNoiseFloor_buffer16 + start, psize + start, current_len, CNG_HS ); } Loading Loading @@ -1940,7 +1935,7 @@ void minimum_statistics_fx( test(); test(); test(); IF( ( scalar == 0 ) || ( ( element_mode == 0 ) ? ( msNoiseFloor_buffer16[j] == 0 ) : ( msNoiseFloor_buffer32[j] == 0 ) ) ) IF( ( scalar == 0 ) || ( EQ_16( element_mode, EVS_MONO ) ? ( msNoiseFloor_buffer16[j] == 0 ) : ( msNoiseFloor_buffer32[j] == 0 ) ) ) { msAlpha[j] = msAlphaHatMin2; move32(); Loading @@ -1951,7 +1946,7 @@ void minimum_statistics_fx( s1 = WORD16_BITS - 1; move16(); IF( element_mode == 0 ) IF( EQ_16( element_mode, EVS_MONO ) ) { if ( msNoiseFloor_buffer16[j] != 0 ) { Loading Loading @@ -2076,9 +2071,9 @@ void minimum_statistics_fx( move16(); test(); test(); IF( ( element_mode == 0 ) ? ( msNoiseFloor_buffer16[j] != 0 ) : ( msNoiseFloor_buffer32[j] != 0 ) ) IF( EQ_16( element_mode, EVS_MONO ) ? ( msNoiseFloor_buffer16[j] != 0 ) : ( msNoiseFloor_buffer32[j] != 0 ) ) { IF( element_mode == 0 ) IF( EQ_16( element_mode, EVS_MONO ) ) { tmp = L_mult( msNoiseFloor_buffer16[j], msNoiseFloor_buffer16[j] ); } Loading Loading @@ -2197,7 +2192,7 @@ void minimum_statistics_fx( } } /* Get the current noise floor */ IF( element_mode == 0 ) IF( EQ_16( element_mode, EVS_MONO ) ) { Copy_Scale_sig_32_16( msCurrentMinOut, msNoiseFloor_buffer16, len, -16 ); } Loading Loading @@ -2262,7 +2257,7 @@ void minimum_statistics_fx( set32_fx( msCurrentMin, 2147483647l /*1.0 Q31*/, len ); /* Get the current noise floor */ IF( element_mode == 0 ) IF( EQ_16( element_mode, EVS_MONO ) ) { Copy_Scale_sig_32_16( msCurrentMinOut, msNoiseFloor_buffer16, len, -16 ); } Loading Loading @@ -2328,7 +2323,7 @@ void minimum_statistics_fx( } /* Smooth noise estimate during CNG phases */ IF( element_mode == 0 ) IF( EQ_16( element_mode, EVS_MONO ) ) { FOR( j = 0; j < len; j++ ) { Loading @@ -2348,14 +2343,12 @@ void minimum_statistics_fx( } } IF( element_mode > 0 ) { IF( EQ_16( enc_dec, DEC ) && EQ_16( element_mode, IVAS_CPE_TD ) ) { // v_multc(msNoiseEst, 1.4125f, msNoiseEst, NPART_SHAPING); v_multc_att32( msNoiseEst_buffer32, 23142, msNoiseEst_buffer32, NPART_SHAPING ); } } /* Collect buffers */ Copy( msPeriodog, msPeriodogBuf + len * ( *msPeriodogBufPtr ), len ); Loading @@ -2368,6 +2361,8 @@ void minimum_statistics_fx( } /* Upper limit the noise floors with the averaged input energy */ IF( EQ_16( element_mode, EVS_MONO ) ) { FOR( j = 0; j < len; j++ ) { scalar = L_mult( msPeriodogBuf[j], 6554 /*1.0/MSBUFLEN Q15*/ ); Loading @@ -2376,24 +2371,36 @@ void minimum_statistics_fx( { scalar = L_mac( scalar, msPeriodogBuf[i], 6554 /*1.0/MSBUFLEN Q15*/ ); } IF( element_mode == 0 ) { scalar16 = round_fx( scalar ); if ( GT_16( msNoiseEst_buffer16[j], scalar16 ) /*0.0 Q15*/ ) { msNoiseEst_buffer16[j] = scalar16; move16(); } assert( msNoiseEst_buffer16[j] >= 0 ); } } ELSE { FOR( j = 0; j < len; j++ ) { scalar = L_mult( msPeriodogBuf[j], 6554 /*1.0/MSBUFLEN Q15*/ ); FOR( i = j + len; i < MSBUFLEN * len; i += len ) { scalar = L_mac( scalar, msPeriodogBuf[i], 6554 /*1.0/MSBUFLEN Q15*/ ); } if ( GT_32( msNoiseEst_buffer32[j], scalar ) /*0.0 Q15*/ ) { msNoiseEst_buffer32[j] = scalar; move32(); } assert( msNoiseEst_buffer32[j] >= 0 ); } assert( ( ( element_mode == 0 ) ? ( msNoiseEst_buffer16[j] >= 0 ) : ( msNoiseEst_buffer32[j] >= 0 ) ) ); } } Loading