Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(579)

Side by Side Diff: webrtc/modules/audio_processing/aec3/aec_state_unittest.cc

Issue 2886733002: Transparency increasing tuning for AEC3 (Closed)
Patch Set: Fixed memory issue Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | webrtc/modules/audio_processing/aec3/echo_remover.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2017 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 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 E2_main.fill(1.f * 10000.f * 10000.f); 107 E2_main.fill(1.f * 10000.f * 10000.f);
108 Y2.fill(10.f * E2_main[0]); 108 Y2.fill(10.f * E2_main[0]);
109 for (size_t k = 0; k < 1000; ++k) { 109 for (size_t k = 0; k < 1000; ++k) {
110 state.Update(converged_filter_frequency_response, rtc::Optional<size_t>(2), 110 state.Update(converged_filter_frequency_response, rtc::Optional<size_t>(2),
111 render_buffer, E2_main, Y2, x[0], false); 111 render_buffer, E2_main, Y2, x[0], false);
112 } 112 }
113 ASSERT_TRUE(state.UsableLinearEstimate()); 113 ASSERT_TRUE(state.UsableLinearEstimate());
114 { 114 {
115 const auto& erle = state.Erle(); 115 const auto& erle = state.Erle();
116 EXPECT_EQ(erle[0], erle[1]); 116 EXPECT_EQ(erle[0], erle[1]);
117 for (size_t k = 1; k < erle.size() - 1; ++k) { 117 constexpr size_t kLowFrequencyLimit = 32;
118 for (size_t k = 1; k < kLowFrequencyLimit; ++k) {
118 EXPECT_NEAR(k % 2 == 0 ? 8.f : 1.f, erle[k], 0.1); 119 EXPECT_NEAR(k % 2 == 0 ? 8.f : 1.f, erle[k], 0.1);
119 } 120 }
121 for (size_t k = kLowFrequencyLimit; k < erle.size() - 1; ++k) {
122 EXPECT_NEAR(k % 2 == 0 ? 1.5f : 1.f, erle[k], 0.1);
123 }
120 EXPECT_EQ(erle[erle.size() - 2], erle[erle.size() - 1]); 124 EXPECT_EQ(erle[erle.size() - 2], erle[erle.size() - 1]);
121 } 125 }
122 126
123 E2_main.fill(1.f * 10000.f * 10000.f); 127 E2_main.fill(1.f * 10000.f * 10000.f);
124 Y2.fill(5.f * E2_main[0]); 128 Y2.fill(5.f * E2_main[0]);
125 for (size_t k = 0; k < 1000; ++k) { 129 for (size_t k = 0; k < 1000; ++k) {
126 state.Update(converged_filter_frequency_response, rtc::Optional<size_t>(2), 130 state.Update(converged_filter_frequency_response, rtc::Optional<size_t>(2),
127 render_buffer, E2_main, Y2, x[0], false); 131 render_buffer, E2_main, Y2, x[0], false);
128 } 132 }
129 133
130 ASSERT_TRUE(state.UsableLinearEstimate()); 134 ASSERT_TRUE(state.UsableLinearEstimate());
131 { 135 {
132 const auto& erle = state.Erle(); 136 const auto& erle = state.Erle();
133 EXPECT_EQ(erle[0], erle[1]); 137 EXPECT_EQ(erle[0], erle[1]);
134 for (size_t k = 1; k < erle.size() - 1; ++k) { 138 constexpr size_t kLowFrequencyLimit = 32;
139 for (size_t k = 1; k < kLowFrequencyLimit; ++k) {
135 EXPECT_NEAR(k % 2 == 0 ? 5.f : 1.f, erle[k], 0.1); 140 EXPECT_NEAR(k % 2 == 0 ? 5.f : 1.f, erle[k], 0.1);
136 } 141 }
142 for (size_t k = kLowFrequencyLimit; k < erle.size() - 1; ++k) {
143 EXPECT_NEAR(k % 2 == 0 ? 1.5f : 1.f, erle[k], 0.1);
144 }
137 EXPECT_EQ(erle[erle.size() - 2], erle[erle.size() - 1]); 145 EXPECT_EQ(erle[erle.size() - 2], erle[erle.size() - 1]);
138 } 146 }
139 } 147 }
140 148
141 // Verifies the a non-significant delay is correctly identified. 149 // Verifies the a non-significant delay is correctly identified.
142 TEST(AecState, NonSignificantDelay) { 150 TEST(AecState, NonSignificantDelay) {
143 AecState state; 151 AecState state;
144 RenderBuffer render_buffer(Aec3Optimization::kNone, 3, 30, 152 RenderBuffer render_buffer(Aec3Optimization::kNone, 3, 30,
145 std::vector<size_t>(1, 30)); 153 std::vector<size_t>(1, 30));
146 std::array<float, kFftLengthBy2Plus1> E2_main; 154 std::array<float, kFftLengthBy2Plus1> E2_main;
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 229
222 // Verify that the externally reported delay is properly unset when it is no 230 // Verify that the externally reported delay is properly unset when it is no
223 // longer present. 231 // longer present.
224 state.HandleEchoPathChange(EchoPathVariability(false, false)); 232 state.HandleEchoPathChange(EchoPathVariability(false, false));
225 state.Update(frequency_response, rtc::Optional<size_t>(), render_buffer, 233 state.Update(frequency_response, rtc::Optional<size_t>(), render_buffer,
226 E2_main, Y2, x, false); 234 E2_main, Y2, x, false);
227 EXPECT_FALSE(state.ExternalDelay()); 235 EXPECT_FALSE(state.ExternalDelay());
228 } 236 }
229 237
230 } // namespace webrtc 238 } // namespace webrtc
OLDNEW
« no previous file with comments | « no previous file | webrtc/modules/audio_processing/aec3/echo_remover.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698