| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 366 // Attenuates by a certain factor every peak in the |fft_buffer_| that exceeds | 366 // Attenuates by a certain factor every peak in the |fft_buffer_| that exceeds |
| 367 // the spectral mean. The attenuation depends on |detector_smoothed_|. | 367 // the spectral mean. The attenuation depends on |detector_smoothed_|. |
| 368 // If a restoration takes place, the |magnitudes_| are updated to the new value. | 368 // If a restoration takes place, the |magnitudes_| are updated to the new value. |
| 369 void TransientSuppressor::HardRestoration(float* spectral_mean) { | 369 void TransientSuppressor::HardRestoration(float* spectral_mean) { |
| 370 const float detector_result = | 370 const float detector_result = |
| 371 1.f - pow(1.f - detector_smoothed_, using_reference_ ? 200.f : 50.f); | 371 1.f - pow(1.f - detector_smoothed_, using_reference_ ? 200.f : 50.f); |
| 372 // To restore, we get the peaks in the spectrum. If higher than the previous | 372 // To restore, we get the peaks in the spectrum. If higher than the previous |
| 373 // spectral mean we adjust them. | 373 // spectral mean we adjust them. |
| 374 for (size_t i = 0; i < complex_analysis_length_; ++i) { | 374 for (size_t i = 0; i < complex_analysis_length_; ++i) { |
| 375 if (magnitudes_[i] > spectral_mean[i] && magnitudes_[i] > 0) { | 375 if (magnitudes_[i] > spectral_mean[i] && magnitudes_[i] > 0) { |
| 376 // RandU() generates values on [0, int16::max()] | 376 // RandU() generates values on [0, int16_t::max()] |
| 377 const float phase = 2 * ts::kPi * WebRtcSpl_RandU(&seed_) / | 377 const float phase = 2 * ts::kPi * WebRtcSpl_RandU(&seed_) / |
| 378 std::numeric_limits<int16_t>::max(); | 378 std::numeric_limits<int16_t>::max(); |
| 379 const float scaled_mean = detector_result * spectral_mean[i]; | 379 const float scaled_mean = detector_result * spectral_mean[i]; |
| 380 | 380 |
| 381 fft_buffer_[i * 2] = (1 - detector_result) * fft_buffer_[i * 2] + | 381 fft_buffer_[i * 2] = (1 - detector_result) * fft_buffer_[i * 2] + |
| 382 scaled_mean * cosf(phase); | 382 scaled_mean * cosf(phase); |
| 383 fft_buffer_[i * 2 + 1] = (1 - detector_result) * fft_buffer_[i * 2 + 1] + | 383 fft_buffer_[i * 2 + 1] = (1 - detector_result) * fft_buffer_[i * 2 + 1] + |
| 384 scaled_mean * sinf(phase); | 384 scaled_mean * sinf(phase); |
| 385 magnitudes_[i] = magnitudes_[i] - | 385 magnitudes_[i] = magnitudes_[i] - |
| 386 detector_result * (magnitudes_[i] - spectral_mean[i]); | 386 detector_result * (magnitudes_[i] - spectral_mean[i]); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 415 const float magnitude_ratio = new_magnitude / magnitudes_[i]; | 415 const float magnitude_ratio = new_magnitude / magnitudes_[i]; |
| 416 | 416 |
| 417 fft_buffer_[i * 2] *= magnitude_ratio; | 417 fft_buffer_[i * 2] *= magnitude_ratio; |
| 418 fft_buffer_[i * 2 + 1] *= magnitude_ratio; | 418 fft_buffer_[i * 2 + 1] *= magnitude_ratio; |
| 419 magnitudes_[i] = new_magnitude; | 419 magnitudes_[i] = new_magnitude; |
| 420 } | 420 } |
| 421 } | 421 } |
| 422 } | 422 } |
| 423 | 423 |
| 424 } // namespace webrtc | 424 } // namespace webrtc |
| OLD | NEW |