TL;DR this CL improves efficiency and includes several code
readability improvements mainly triggered by the comments to
patch set #10.
Highlights:
- Split `FindBestPitchPeriods()` into 12 and 24 kHz versions
to hard-code the input size and simplify the 24 kHz version
- Loop in `ComputePitchPeriod48kHz()` (new name for
`RefinePitchPeriod48kHz()`) removed since the lags for which
we need to compute the auto correlation are a few
- `ComputePitchGainThreshold()` was only used in unit tests; it's been
moved into the anon ns and the test removed
This CL makes `ComputePitchPeriod48kHz()` is about 10% faster (measured
with https://webrtc-review.googlesource.com/c/src/+/191320/4/modules/audio_processing/agc2/rnn_vad/pitch_search_internal_unittest.cc).
The realtime factor has improved by about +14%.
Benchmarked as follows:
```
out/release/modules_unittests \
--gtest_filter=*RnnVadTest.DISABLED_RnnVadPerformance* \
--gtest_also_run_disabled_tests --logs
```
Results:
| baseline | this CL
------+----------------------+------------------------
run 1 | 24.0231 +/- 0.591016 | 23.568 +/- 0.990788
| 370.06x | 377.207x
------+----------------------+------------------------
run 2 | 24.0485 +/- 0.957498 | 23.3714 +/- 0.857523
| 369.67x | 380.379x
------+----------------------+------------------------
run 2 | 25.4091 +/- 2.6123 | 23.709 +/- 1.04477
| 349.875x | 374.963x
Bug: webrtc:10480
Change-Id: I9a3e9164b2442114b928de506c92a547c273882f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/191320
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32568}