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

Unified Diff: webrtc/modules/audio_processing/beamformer/nonlinear_beamformer_unittest.cc

Issue 2110593003: Pull out the PostFilter to its own NonlinearBeamformer API (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebasing Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/audio_processing/beamformer/nonlinear_beamformer_unittest.cc
diff --git a/webrtc/modules/audio_processing/beamformer/nonlinear_beamformer_unittest.cc b/webrtc/modules/audio_processing/beamformer/nonlinear_beamformer_unittest.cc
index fbf0ec098faffe5ac0b38e77497db022ef76a29c..1ad3ed6c2e5090a64124590cab543f07d49ffecb 100644
--- a/webrtc/modules/audio_processing/beamformer/nonlinear_beamformer_unittest.cc
+++ b/webrtc/modules/audio_processing/beamformer/nonlinear_beamformer_unittest.cc
@@ -57,14 +57,14 @@ const size_t kNumFramesToProcess = 1000;
void ProcessOneFrame(int sample_rate_hz,
AudioBuffer* capture_audio_buffer,
- Beamformer<float>* beamformer) {
+ NonlinearBeamformer* beamformer) {
if (sample_rate_hz > AudioProcessing::kSampleRate16kHz) {
capture_audio_buffer->SplitIntoFrequencyBands();
}
- beamformer->ProcessChunk(*capture_audio_buffer->split_data_f(),
- capture_audio_buffer->split_data_f());
+ beamformer->AnalyzeChunk(*capture_audio_buffer->split_data_f());
capture_audio_buffer->set_num_channels(1);
+ beamformer->PostFilter(capture_audio_buffer->split_data_f());
if (sample_rate_hz > AudioProcessing::kSampleRate16kHz) {
capture_audio_buffer->MergeFrequencyBands();
@@ -81,7 +81,7 @@ void RunBitExactnessTest(int sample_rate_hz,
const std::vector<Point>& array_geometry,
const SphericalPointf& target_direction,
rtc::ArrayView<const float> output_reference) {
- NonlinearBeamformer beamformer(array_geometry, target_direction);
+ NonlinearBeamformer beamformer(array_geometry, 1u, target_direction);
beamformer.Initialize(AudioProcessing::kChunkSizeMs,
BeamformerSampleRate(sample_rate_hz));
@@ -159,7 +159,7 @@ TEST(NonlinearBeamformerTest, AimingModifiesBeam) {
std::vector<Point> array_geometry;
array_geometry.push_back(Point(-0.025f, 0.f, 0.f));
array_geometry.push_back(Point(0.025f, 0.f, 0.f));
- NonlinearBeamformer bf(array_geometry);
+ NonlinearBeamformer bf(array_geometry, 1u);
bf.Initialize(kChunkSizeMs, kSampleRateHz);
// The default constructor parameter sets the target angle to PI / 2.
Verify(&bf, static_cast<float>(M_PI) / 2.f);
@@ -176,7 +176,7 @@ TEST(NonlinearBeamformerTest, InterfAnglesTakeAmbiguityIntoAccount) {
array_geometry.push_back(Point(-0.1f, 0.f, 0.f));
array_geometry.push_back(Point(0.f, 0.f, 0.f));
array_geometry.push_back(Point(0.2f, 0.f, 0.f));
- NonlinearBeamformer bf(array_geometry);
+ NonlinearBeamformer bf(array_geometry, 1u);
bf.Initialize(kChunkSizeMs, kSampleRateHz);
EXPECT_EQ(2u, bf.interf_angles_radians_.size());
EXPECT_FLOAT_EQ(M_PI / 2.f - bf.away_radians_,
@@ -197,7 +197,7 @@ TEST(NonlinearBeamformerTest, InterfAnglesTakeAmbiguityIntoAccount) {
array_geometry.push_back(Point(0.2f, 0.f, 0.f));
array_geometry.push_back(Point(0.1f, 0.f, 0.2f));
array_geometry.push_back(Point(0.f, 0.f, -0.1f));
- NonlinearBeamformer bf(array_geometry);
+ NonlinearBeamformer bf(array_geometry, 1u);
bf.Initialize(kChunkSizeMs, kSampleRateHz);
EXPECT_EQ(2u, bf.interf_angles_radians_.size());
EXPECT_FLOAT_EQ(M_PI / 2.f - bf.away_radians_,
@@ -216,7 +216,7 @@ TEST(NonlinearBeamformerTest, InterfAnglesTakeAmbiguityIntoAccount) {
array_geometry.push_back(Point(0.f, 0.f, 0.f));
array_geometry.push_back(Point(0.2f, 0.f, 0.f));
array_geometry.push_back(Point(0.f, 0.1f, -0.2f));
- NonlinearBeamformer bf(array_geometry);
+ NonlinearBeamformer bf(array_geometry, 1u);
bf.Initialize(kChunkSizeMs, kSampleRateHz);
EXPECT_EQ(2u, bf.interf_angles_radians_.size());
EXPECT_FLOAT_EQ(M_PI / 2.f - bf.away_radians_,
@@ -235,7 +235,7 @@ TEST(NonlinearBeamformerTest, InterfAnglesTakeAmbiguityIntoAccount) {
array_geometry.push_back(Point(0.1f, 0.f, 0.f));
array_geometry.push_back(Point(0.f, 0.2f, 0.f));
array_geometry.push_back(Point(0.f, 0.f, 0.3f));
- NonlinearBeamformer bf(array_geometry);
+ NonlinearBeamformer bf(array_geometry, 1u);
bf.Initialize(kChunkSizeMs, kSampleRateHz);
EXPECT_EQ(2u, bf.interf_angles_radians_.size());
EXPECT_FLOAT_EQ(M_PI / 2.f - bf.away_radians_,
@@ -262,8 +262,8 @@ TEST(BeamformerBitExactnessTest,
TEST(BeamformerBitExactnessTest,
Stereo16kHz_ArrayGeometry1_TargetDirection1) {
- const float kOutputReference[] = {0.000064f, 0.000211f, 0.000075f,
- 0.000064f, 0.000211f, 0.000075f};
+ const float kOutputReference[] = {-0.000077f, -0.000147f, -0.000138f,
+ -0.000077f, -0.000147f, -0.000138f};
RunBitExactnessTest(AudioProcessing::kSampleRate16kHz, CreateArrayGeometry(1),
TargetDirection1, kOutputReference);
@@ -271,8 +271,8 @@ TEST(BeamformerBitExactnessTest,
TEST(BeamformerBitExactnessTest,
Stereo32kHz_ArrayGeometry1_TargetDirection1) {
- const float kOutputReference[] = {0.000183f, 0.000183f, 0.000183f,
- 0.000183f, 0.000183f, 0.000183f};
+ const float kOutputReference[] = {-0.000061f, -0.000061f, -0.000061f,
+ -0.000061f, -0.000061f, -0.000061f};
RunBitExactnessTest(AudioProcessing::kSampleRate32kHz, CreateArrayGeometry(1),
TargetDirection1, kOutputReference);
@@ -280,8 +280,8 @@ TEST(BeamformerBitExactnessTest,
TEST(BeamformerBitExactnessTest,
Stereo48kHz_ArrayGeometry1_TargetDirection1) {
- const float kOutputReference[] = {0.000155f, 0.000152f, 0.000159f,
- 0.000155f, 0.000152f, 0.000159f};
+ const float kOutputReference[] = {0.000450f, 0.000436f, 0.000433f,
+ 0.000450f, 0.000436f, 0.000433f};
RunBitExactnessTest(AudioProcessing::kSampleRate48kHz, CreateArrayGeometry(1),
TargetDirection1, kOutputReference);
@@ -300,8 +300,8 @@ TEST(BeamformerBitExactnessTest,
TEST(BeamformerBitExactnessTest,
Stereo16kHz_ArrayGeometry1_TargetDirection2) {
- const float kOutputReference[] = {0.001144f, -0.001026f, 0.001074f,
- 0.001144f, -0.001026f, 0.001074f};
+ const float kOutputReference[] = {0.000221f, -0.000249f, 0.000140f,
+ 0.000221f, -0.000249f, 0.000140f};
RunBitExactnessTest(AudioProcessing::kSampleRate16kHz, CreateArrayGeometry(1),
TargetDirection2, kOutputReference);
@@ -309,8 +309,8 @@ TEST(BeamformerBitExactnessTest,
TEST(BeamformerBitExactnessTest,
Stereo32kHz_ArrayGeometry1_TargetDirection2) {
- const float kOutputReference[] = {0.000732f, -0.000397f, 0.000610f,
- 0.000732f, -0.000397f, 0.000610f};
+ const float kOutputReference[] = {0.000763f, -0.000336f, 0.000549f,
+ 0.000763f, -0.000336f, 0.000549f};
RunBitExactnessTest(AudioProcessing::kSampleRate32kHz, CreateArrayGeometry(1),
TargetDirection2, kOutputReference);
@@ -318,8 +318,8 @@ TEST(BeamformerBitExactnessTest,
TEST(BeamformerBitExactnessTest,
Stereo48kHz_ArrayGeometry1_TargetDirection2) {
- const float kOutputReference[] = {0.000106f, -0.000464f, 0.000188f,
- 0.000106f, -0.000464f, 0.000188f};
+ const float kOutputReference[] = {-0.000004f, -0.000494f, 0.000255f,
+ -0.000004f, -0.000494f, 0.000255f};
RunBitExactnessTest(AudioProcessing::kSampleRate48kHz, CreateArrayGeometry(1),
TargetDirection2, kOutputReference);
@@ -327,8 +327,8 @@ TEST(BeamformerBitExactnessTest,
TEST(BeamformerBitExactnessTest,
Stereo8kHz_ArrayGeometry2_TargetDirection2) {
- const float kOutputReference[] = {-0.000649f, 0.000576f, -0.000148f,
- -0.000649f, 0.000576f, -0.000148f};
+ const float kOutputReference[] = {-0.000914f, 0.002170f, -0.002382f,
+ -0.000914f, 0.002170f, -0.002382f};
RunBitExactnessTest(AudioProcessing::kSampleRate8kHz, CreateArrayGeometry(2),
TargetDirection2, kOutputReference);
@@ -336,8 +336,8 @@ TEST(BeamformerBitExactnessTest,
TEST(BeamformerBitExactnessTest,
Stereo16kHz_ArrayGeometry2_TargetDirection2) {
- const float kOutputReference[] = {0.000808f, -0.000695f, 0.000739f,
- 0.000808f, -0.000695f, 0.000739f};
+ const float kOutputReference[] = {0.000179f, -0.000179f, 0.000081f,
+ 0.000179f, -0.000179f, 0.000081f};
RunBitExactnessTest(AudioProcessing::kSampleRate16kHz, CreateArrayGeometry(2),
TargetDirection2, kOutputReference);
@@ -345,8 +345,8 @@ TEST(BeamformerBitExactnessTest,
TEST(BeamformerBitExactnessTest,
Stereo32kHz_ArrayGeometry2_TargetDirection2) {
- const float kOutputReference[] = {0.000580f, -0.000183f, 0.000458f,
- 0.000580f, -0.000183f, 0.000458f};
+ const float kOutputReference[] = {0.000549f, -0.000214f, 0.000366f,
+ 0.000549f, -0.000214f, 0.000366f};
RunBitExactnessTest(AudioProcessing::kSampleRate32kHz, CreateArrayGeometry(2),
TargetDirection2, kOutputReference);
@@ -354,8 +354,8 @@ TEST(BeamformerBitExactnessTest,
TEST(BeamformerBitExactnessTest,
Stereo48kHz_ArrayGeometry2_TargetDirection2) {
- const float kOutputReference[] = {0.000075f, -0.000288f, 0.000156f,
- 0.000075f, -0.000288f, 0.000156f};
+ const float kOutputReference[] = {0.000019f, -0.000310f, 0.000182f,
+ 0.000019f, -0.000310f, 0.000182f};
RunBitExactnessTest(AudioProcessing::kSampleRate48kHz, CreateArrayGeometry(2),
TargetDirection2, kOutputReference);

Powered by Google App Engine
This is Rietveld 408576698