Chromium Code Reviews| Index: webrtc/modules/audio_processing/noise_suppression_impl.cc |
| diff --git a/webrtc/modules/audio_processing/noise_suppression_impl.cc b/webrtc/modules/audio_processing/noise_suppression_impl.cc |
| index a9d9f4a93bbf8086105ea4cb28fc0ee181be644b..d0c5f9ffee2c76bf77e8448cacfc365e4a52c2d3 100644 |
| --- a/webrtc/modules/audio_processing/noise_suppression_impl.cc |
| +++ b/webrtc/modules/audio_processing/noise_suppression_impl.cc |
| @@ -177,20 +177,20 @@ std::vector<float> NoiseSuppressionImpl::NoiseEstimate() { |
| rtc::CritScope cs(crit_); |
| std::vector<float> noise_estimate; |
| #if defined(WEBRTC_NS_FLOAT) |
| - const float kNormalizationFactor = 1.f / (1 << 15); |
| noise_estimate.assign(WebRtcNs_num_freq(), 0.f); |
| for (auto& suppressor : suppressors_) { |
| const float* noise = WebRtcNs_noise_estimate(suppressor->state()); |
| for (size_t i = 0; i < noise_estimate.size(); ++i) { |
| - noise_estimate[i] += |
| - kNormalizationFactor * noise[i] / suppressors_.size(); |
| + noise_estimate[i] += noise[i] / suppressors_.size(); |
|
peah-webrtc
2016/03/31 20:50:57
In order to avoid the divisions, please precompute
aluebs-webrtc
2016/04/01 01:52:42
Good point. Done.
|
| } |
| } |
| #elif defined(WEBRTC_NS_FIXED) |
| - const float kNormalizationFactor = 1.f / (1 << 23); |
| noise_estimate.assign(WebRtcNsx_num_freq(), 0.f); |
| for (auto& suppressor : suppressors_) { |
| - const uint32_t* noise = WebRtcNsx_noise_estimate(suppressor->state()); |
| + int domain; |
| + const uint32_t* noise = WebRtcNsx_noise_estimate(suppressor->state(), |
| + &domain); |
| + const float kNormalizationFactor = 1.f / (1 << domain); |
| for (size_t i = 0; i < noise_estimate.size(); ++i) { |
| noise_estimate[i] += kNormalizationFactor * |
|
peah-webrtc
2016/03/31 20:50:57
In order to avoid the divisions, 1/suppressors_.si
aluebs-webrtc
2016/04/01 01:52:42
Good point. Done.
|
| static_cast<float>(noise[i]) / suppressors_.size(); |