9da3e177fd5c2236cc15fea0ee8933e1dd0d8f6d

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}
…
…
WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.
The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.
Development
See here for instructions on how to get started developing with the native code.
Authoritative list of directories that contain the native API header files.
More info
- Official web site: http://www.webrtc.org
- Master source code repo: https://webrtc.googlesource.com/src
- Samples and reference apps: https://github.com/webrtc
- Mailing list: http://groups.google.com/group/discuss-webrtc
- Continuous build: http://build.chromium.org/p/client.webrtc
- Coding style guide
- Code of conduct
- Reporting bugs
Description
Languages
C++
88.6%
C
3.3%
Java
3%
Objective-C++
1.9%
Python
1.9%
Other
1%