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

Issue 2512693002: Implement Theil-Sen's method for fitting a line to noisy data (used in bandwidth estimation). (Closed)

Created:
4 years, 1 month ago by terelius
Modified:
4 years ago
CC:
webrtc-reviews_webrtc.org, tterriberry_mozilla.com
Target Ref:
refs/pending/heads/master
Project:
webrtc
Visibility:
Public.

Description

Implement Theil-Sen's method for fitting a line to noisy data (used in bandwidth estimation). Theil and Sen's estimator essentially looks at the line through every pair of points and selects the median slope. This is robust to corruption of up to 29% of the data points. Wire up new estimator to field trial experiment. Add unit and integration tests. Results are promising. BUG=webrtc:6728 Committed: https://crrev.com/5a388368a220cb975cbada5129dd94a104a77497 Cr-Commit-Position: refs/heads/master@{#15508}

Patch Set 1 #

Patch Set 2 : Simple performance fixes. About 3 times faster. #

Patch Set 3 : Use PercentileFilter to find median slope #

Total comments: 34

Patch Set 4 : Review comments #

Total comments: 1

Patch Set 5 : Rebase #

Patch Set 6 : Add comments. Add method to clear a PercentileFilter. #

Patch Set 7 : Rename to MedianSlopeEstimator #

Patch Set 8 : Comment and unit test for PecentileFilter::Clear() #

Total comments: 3

Patch Set 9 : Unit test for return value of PercentileFilter::Erase #

Total comments: 9

Patch Set 10 : Comments from magjed #

Patch Set 11 : Remove PercentileFilter::Clear since no longer used. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+395 lines, -27 lines) Patch
M webrtc/base/analytics/percentile_filter.h View 1 2 3 6 7 8 9 10 3 chunks +7 lines, -5 lines 0 comments Download
M webrtc/base/analytics/percentile_filter_unittest.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +6 lines, -3 lines 0 comments Download
M webrtc/modules/BUILD.gn View 1 2 3 4 5 6 1 chunk +1 line, -0 lines 0 comments Download
M webrtc/modules/congestion_controller/BUILD.gn View 1 2 3 4 5 6 2 chunks +3 lines, -0 lines 0 comments Download
M webrtc/modules/congestion_controller/delay_based_bwe.h View 1 2 3 4 5 6 3 chunks +6 lines, -1 line 0 comments Download
M webrtc/modules/congestion_controller/delay_based_bwe.cc View 1 2 3 4 5 6 9 chunks +66 lines, -9 lines 0 comments Download
M webrtc/modules/congestion_controller/delay_based_bwe_unittest.cc View 1 2 3 4 5 6 3 chunks +35 lines, -8 lines 0 comments Download
A webrtc/modules/congestion_controller/median_slope_estimator.h View 1 2 3 4 5 6 1 chunk +71 lines, -0 lines 0 comments Download
A webrtc/modules/congestion_controller/median_slope_estimator.cc View 1 2 3 4 5 6 7 8 9 1 chunk +83 lines, -0 lines 0 comments Download
A webrtc/modules/congestion_controller/median_slope_estimator_unittest.cc View 1 2 3 4 5 6 1 chunk +113 lines, -0 lines 0 comments Download
M webrtc/modules/remote_bitrate_estimator/test/plot_dynamics.py View 1 2 1 chunk +4 lines, -1 line 0 comments Download

Messages

Total messages: 50 (32 generated)
terelius
Stefan, FYI. It is still slow compared to the existing estimators and I will continue ...
4 years, 1 month ago (2016-11-18 14:34:43 UTC) #3
terelius
Rasmus and Stefan, please review this CL when you have time. It is now comparable ...
4 years ago (2016-11-25 20:50:02 UTC) #9
stefan-webrtc
https://codereview.webrtc.org/2512693002/diff/40001/webrtc/base/analytics/percentile_filter.h File webrtc/base/analytics/percentile_filter.h (right): https://codereview.webrtc.org/2512693002/diff/40001/webrtc/base/analytics/percentile_filter.h#newcode37 webrtc/base/analytics/percentile_filter.h:37: // the size of the container. Comment on what ...
4 years ago (2016-11-28 13:01:58 UTC) #13
brandtr
Interesting estimator that I hadn't heard about before! It's also nice to see that it ...
4 years ago (2016-11-28 16:27:20 UTC) #14
terelius
https://codereview.webrtc.org/2512693002/diff/40001/webrtc/base/analytics/percentile_filter.h File webrtc/base/analytics/percentile_filter.h (right): https://codereview.webrtc.org/2512693002/diff/40001/webrtc/base/analytics/percentile_filter.h#newcode37 webrtc/base/analytics/percentile_filter.h:37: // the size of the container. On 2016/11/28 13:01:58, ...
4 years ago (2016-12-02 16:45:52 UTC) #19
brandtr
lgtm https://codereview.webrtc.org/2512693002/diff/40001/webrtc/modules/congestion_controller/delay_based_bwe.h File webrtc/modules/congestion_controller/delay_based_bwe.h (right): https://codereview.webrtc.org/2512693002/diff/40001/webrtc/modules/congestion_controller/delay_based_bwe.h#newcode86 webrtc/modules/congestion_controller/delay_based_bwe.h:86: const bool in_trendline_experiment_; On 2016/12/02 16:45:52, terelius wrote: ...
4 years ago (2016-12-05 12:34:45 UTC) #22
stefan-webrtc
lgtm
4 years ago (2016-12-05 12:39:36 UTC) #25
terelius
Rasmus, I added some comments as discussed. Could you take another look? Magnus J, could ...
4 years ago (2016-12-07 16:52:56 UTC) #31
mflodman
https://codereview.webrtc.org/2512693002/diff/140001/webrtc/base/analytics/percentile_filter_unittest.cc File webrtc/base/analytics/percentile_filter_unittest.cc (right): https://codereview.webrtc.org/2512693002/diff/140001/webrtc/base/analytics/percentile_filter_unittest.cc#newcode84 webrtc/base/analytics/percentile_filter_unittest.cc:84: TEST(PercentileFilterTest, ClearContents) { Can you also add a short ...
4 years ago (2016-12-07 16:56:57 UTC) #32
terelius
https://codereview.webrtc.org/2512693002/diff/140001/webrtc/base/analytics/percentile_filter_unittest.cc File webrtc/base/analytics/percentile_filter_unittest.cc (right): https://codereview.webrtc.org/2512693002/diff/140001/webrtc/base/analytics/percentile_filter_unittest.cc#newcode84 webrtc/base/analytics/percentile_filter_unittest.cc:84: TEST(PercentileFilterTest, ClearContents) { On 2016/12/07 16:56:56, mflodman wrote: > ...
4 years ago (2016-12-07 17:15:22 UTC) #33
mflodman
LGTM for base/ https://codereview.webrtc.org/2512693002/diff/140001/webrtc/base/analytics/percentile_filter_unittest.cc File webrtc/base/analytics/percentile_filter_unittest.cc (right): https://codereview.webrtc.org/2512693002/diff/140001/webrtc/base/analytics/percentile_filter_unittest.cc#newcode84 webrtc/base/analytics/percentile_filter_unittest.cc:84: TEST(PercentileFilterTest, ClearContents) { On 2016/12/07 17:15:22, ...
4 years ago (2016-12-08 07:39:40 UTC) #34
brandtr
still lgtm On 2016/12/07 16:52:56, terelius wrote: > Rasmus, I added some comments as discussed. ...
4 years ago (2016-12-08 08:53:32 UTC) #35
magjed_webrtc
https://codereview.webrtc.org/2512693002/diff/160001/webrtc/base/analytics/percentile_filter_unittest.cc File webrtc/base/analytics/percentile_filter_unittest.cc (right): https://codereview.webrtc.org/2512693002/diff/160001/webrtc/base/analytics/percentile_filter_unittest.cc#newcode109 webrtc/base/analytics/percentile_filter_unittest.cc:109: EXPECT_EQ(true, success); EXPECT_TRUE https://codereview.webrtc.org/2512693002/diff/160001/webrtc/base/analytics/percentile_filter_unittest.cc#newcode115 webrtc/base/analytics/percentile_filter_unittest.cc:115: EXPECT_EQ(false, success); EXPECT_FALSE https://codereview.webrtc.org/2512693002/diff/160001/webrtc/base/analytics/percentile_filter_unittest.cc#newcode119 ...
4 years ago (2016-12-08 09:31:15 UTC) #36
terelius
https://codereview.webrtc.org/2512693002/diff/160001/webrtc/base/analytics/percentile_filter_unittest.cc File webrtc/base/analytics/percentile_filter_unittest.cc (right): https://codereview.webrtc.org/2512693002/diff/160001/webrtc/base/analytics/percentile_filter_unittest.cc#newcode109 webrtc/base/analytics/percentile_filter_unittest.cc:109: EXPECT_EQ(true, success); On 2016/12/08 09:31:15, magjed_webrtc wrote: > EXPECT_TRUE ...
4 years ago (2016-12-08 10:47:13 UTC) #39
magjed_webrtc
lgtm https://codereview.webrtc.org/2512693002/diff/160001/webrtc/modules/congestion_controller/median_slope_estimator.cc File webrtc/modules/congestion_controller/median_slope_estimator.cc (right): https://codereview.webrtc.org/2512693002/diff/160001/webrtc/modules/congestion_controller/median_slope_estimator.cc#newcode60 webrtc/modules/congestion_controller/median_slope_estimator.cc:60: // We're erasing previously inserted elements from a ...
4 years ago (2016-12-08 11:52:30 UTC) #42
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/2512693002/200001
4 years ago (2016-12-09 13:27:54 UTC) #45
commit-bot: I haz the power
Committed patchset #11 (id:200001)
4 years ago (2016-12-09 13:50:09 UTC) #48
commit-bot: I haz the power
4 years ago (2016-12-09 13:50:13 UTC) #50
Message was sent while issue was closed.
Patchset 11 (id:??) landed as
https://crrev.com/5a388368a220cb975cbada5129dd94a104a77497
Cr-Commit-Position: refs/heads/master@{#15508}

Powered by Google App Engine
This is Rietveld 408576698