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

Issue 2422063002: Use bayesian estimate of acked bitrate. (Closed)

Created:
4 years, 2 months ago by stefan-webrtc
Modified:
4 years, 1 month ago
Reviewers:
terelius
CC:
webrtc-reviews_webrtc.org, tterriberry_mozilla.com, zhuangzesen_agora.io, mflodman, juberti
Target Ref:
refs/pending/heads/master
Project:
webrtc
Visibility:
Public.

Description

Use bayesian estimate of acked bitrate. This helps a lot to avoid reducing the bitrate too quickly when there's a short period of very few packets delivered, followed by the rate resuming at the regular rate. It specifically avoids the BWE going down to super low values as a response delay spikes. BUG=webrtc:6566 R=terelius@webrtc.org Committed: https://crrev.com/492ee28b731e33913acbd4bd62dd45432df58af2 Cr-Commit-Position: refs/heads/master@{#14802}

Patch Set 1 #

Patch Set 2 : Tuning / cleanups #

Patch Set 3 : . #

Patch Set 4 : rebase #

Patch Set 5 : Cleanup. #

Patch Set 6 : . #

Total comments: 14

Patch Set 7 : Comments addressed. Filter is now updated once every 200 ms. #

Patch Set 8 : Tests fixed. #

Patch Set 9 : Tuned #

Total comments: 10

Patch Set 10 : Comments addressed. #

Patch Set 11 : Rebase #

Patch Set 12 : Comment addressed. #

Patch Set 13 : Window changes. #

Total comments: 1

Patch Set 14 : . #

Patch Set 15 : Correct merge. #

Patch Set 16 : Normalize uncertainty to bitrate and retune. #

Patch Set 17 : Tests passing again. #

Patch Set 18 : Add experiment. #

Patch Set 19 : Tests for both with and w/o experiment. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+189 lines, -62 lines) Patch
M webrtc/modules/bitrate_controller/bitrate_controller_impl.cc View 1 chunk +0 lines, -3 lines 0 comments Download
M webrtc/modules/congestion_controller/delay_based_bwe.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 3 chunks +25 lines, -3 lines 0 comments Download
M webrtc/modules/congestion_controller/delay_based_bwe.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 6 chunks +109 lines, -20 lines 0 comments Download
M webrtc/modules/congestion_controller/delay_based_bwe_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 3 chunks +34 lines, -20 lines 0 comments Download
M webrtc/modules/congestion_controller/delay_based_bwe_unittest_helper.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +2 lines, -1 line 0 comments Download
M webrtc/modules/congestion_controller/delay_based_bwe_unittest_helper.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 8 chunks +14 lines, -13 lines 0 comments Download
M webrtc/tools/event_log_visualizer/analyzer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +5 lines, -2 lines 0 comments Download

Messages

Total messages: 50 (21 generated)
stefan-webrtc
rebase
4 years, 2 months ago (2016-10-20 03:56:09 UTC) #5
stefan-webrtc
4 years, 2 months ago (2016-10-20 04:18:33 UTC) #10
terelius
Great to hear that this is getting solved! Some questions/comments below: https://codereview.chromium.org/2422063002/diff/100001/webrtc/modules/congestion_controller/delay_based_bwe.cc File webrtc/modules/congestion_controller/delay_based_bwe.cc (right): ...
4 years, 2 months ago (2016-10-21 10:15:52 UTC) #11
stefan-webrtc
https://codereview.chromium.org/2422063002/diff/100001/webrtc/modules/congestion_controller/delay_based_bwe.cc File webrtc/modules/congestion_controller/delay_based_bwe.cc (right): https://codereview.chromium.org/2422063002/diff/100001/webrtc/modules/congestion_controller/delay_based_bwe.cc#newcode55 webrtc/modules/congestion_controller/delay_based_bwe.cc:55: // current estimate, and how many payloads it based ...
4 years, 1 month ago (2016-10-24 10:55:14 UTC) #12
terelius
https://codereview.chromium.org/2422063002/diff/100001/webrtc/modules/congestion_controller/delay_based_bwe.cc File webrtc/modules/congestion_controller/delay_based_bwe.cc (right): https://codereview.chromium.org/2422063002/diff/100001/webrtc/modules/congestion_controller/delay_based_bwe.cc#newcode56 webrtc/modules/congestion_controller/delay_based_bwe.cc:56: float sample_uncertainty = On 2016/10/24 10:55:14, stefan-webrtc (holmer) wrote: ...
4 years, 1 month ago (2016-10-24 11:20:38 UTC) #13
stefan-webrtc
Tests fixed.
4 years, 1 month ago (2016-10-25 08:11:51 UTC) #14
stefan-webrtc
Tuned
4 years, 1 month ago (2016-10-25 08:54:10 UTC) #15
stefan-webrtc
Changed to a fixed non-overlapping sampling interval as discussed yesterday. https://codereview.webrtc.org/2422063002/diff/100001/webrtc/modules/congestion_controller/delay_based_bwe.cc File webrtc/modules/congestion_controller/delay_based_bwe.cc (right): https://codereview.webrtc.org/2422063002/diff/100001/webrtc/modules/congestion_controller/delay_based_bwe.cc#newcode71 ...
4 years, 1 month ago (2016-10-25 11:04:33 UTC) #16
terelius
https://codereview.webrtc.org/2422063002/diff/160001/webrtc/modules/congestion_controller/delay_based_bwe.cc File webrtc/modules/congestion_controller/delay_based_bwe.cc (right): https://codereview.webrtc.org/2422063002/diff/160001/webrtc/modules/congestion_controller/delay_based_bwe.cc#newcode67 webrtc/modules/congestion_controller/delay_based_bwe.cc:67: bitrate_estimate_std_ = sqrt(1.0f / denom); Maybe we could skip ...
4 years, 1 month ago (2016-10-25 11:42:14 UTC) #17
terelius
https://codereview.webrtc.org/2422063002/diff/160001/webrtc/modules/congestion_controller/delay_based_bwe.cc File webrtc/modules/congestion_controller/delay_based_bwe.cc (right): https://codereview.webrtc.org/2422063002/diff/160001/webrtc/modules/congestion_controller/delay_based_bwe.cc#newcode52 webrtc/modules/congestion_controller/delay_based_bwe.cc:52: std::pair<float, int> bitrate_sample = UpdateWindow(now_ms, bytes); Are we using ...
4 years, 1 month ago (2016-10-25 12:51:19 UTC) #18
stefan-webrtc
https://codereview.webrtc.org/2422063002/diff/160001/webrtc/modules/congestion_controller/delay_based_bwe.cc File webrtc/modules/congestion_controller/delay_based_bwe.cc (right): https://codereview.webrtc.org/2422063002/diff/160001/webrtc/modules/congestion_controller/delay_based_bwe.cc#newcode52 webrtc/modules/congestion_controller/delay_based_bwe.cc:52: std::pair<float, int> bitrate_sample = UpdateWindow(now_ms, bytes); On 2016/10/25 12:51:19, ...
4 years, 1 month ago (2016-10-26 11:23:17 UTC) #19
stefan-webrtc
Rebase
4 years, 1 month ago (2016-10-26 11:47:13 UTC) #20
terelius
https://codereview.webrtc.org/2422063002/diff/160001/webrtc/modules/congestion_controller/delay_based_bwe.cc File webrtc/modules/congestion_controller/delay_based_bwe.cc (right): https://codereview.webrtc.org/2422063002/diff/160001/webrtc/modules/congestion_controller/delay_based_bwe.cc#newcode52 webrtc/modules/congestion_controller/delay_based_bwe.cc:52: std::pair<float, int> bitrate_sample = UpdateWindow(now_ms, bytes); On 2016/10/26 11:23:17, ...
4 years, 1 month ago (2016-10-26 13:05:02 UTC) #25
stefan-webrtc
Comment addressed.
4 years, 1 month ago (2016-10-26 13:10:59 UTC) #26
stefan-webrtc
Window changes.
4 years, 1 month ago (2016-10-26 14:08:09 UTC) #27
stefan-webrtc
.
4 years, 1 month ago (2016-10-26 14:24:57 UTC) #28
stefan-webrtc
Correct merge.
4 years, 1 month ago (2016-10-26 14:26:08 UTC) #29
terelius
lgtm assuming tests and simulation results look good. https://codereview.webrtc.org/2422063002/diff/240001/webrtc/modules/congestion_controller/delay_based_bwe_unittest.cc File webrtc/modules/congestion_controller/delay_based_bwe_unittest.cc (right): https://codereview.webrtc.org/2422063002/diff/240001/webrtc/modules/congestion_controller/delay_based_bwe_unittest.cc#newcode135 webrtc/modules/congestion_controller/delay_based_bwe_unittest.cc:135: CapacityDropTestHelper(1, ...
4 years, 1 month ago (2016-10-26 14:35:46 UTC) #34
stefan-webrtc
Normalize uncertainty to bitrate and retune.
4 years, 1 month ago (2016-10-27 12:30:33 UTC) #35
stefan-webrtc
Tests passing again.
4 years, 1 month ago (2016-10-27 12:59:01 UTC) #36
stefan-webrtc
Added normalization and did some retuning. Will add an experiment around this next, but PTAL ...
4 years, 1 month ago (2016-10-27 13:00:50 UTC) #37
stefan-webrtc
Add experiment.
4 years, 1 month ago (2016-10-27 13:44:06 UTC) #38
terelius
lgtm
4 years, 1 month ago (2016-10-27 14:01:33 UTC) #39
terelius
still lgtm
4 years, 1 month ago (2016-10-27 14:37:25 UTC) #40
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/2422063002/360001
4 years, 1 month ago (2016-10-27 14:38:03 UTC) #42
commit-bot: I haz the power
Try jobs failed on following builders: win_x64_dbg on master.tryserver.webrtc (JOB_FAILED, http://build.chromium.org/p/tryserver.webrtc/builders/win_x64_dbg/builds/2530)
4 years, 1 month ago (2016-10-27 15:11:42 UTC) #44
stefan-webrtc
Committed patchset #19 (id:360001) manually as 492ee28b731e33913acbd4bd62dd45432df58af2 (presubmit successful).
4 years, 1 month ago (2016-10-27 15:19:40 UTC) #46
juberti
On 2016/10/27 15:19:40, stefan-webrtc (holmer) wrote: > Committed patchset #19 (id:360001) manually as > 492ee28b731e33913acbd4bd62dd45432df58af2 ...
4 years, 1 month ago (2016-11-04 06:03:54 UTC) #48
stefan-webrtc
4 years, 1 month ago (2016-11-07 13:41:27 UTC) #50
Message was sent while issue was closed.
On 2016/11/04 06:03:54, juberti wrote:
> On 2016/10/27 15:19:40, stefan-webrtc (holmer) wrote:
> > Committed patchset #19 (id:360001) manually as
> > 492ee28b731e33913acbd4bd62dd45432df58af2 (presubmit successful).
> 
> Have we tested this against RTC event logs where delay spikes are known to
> occur?

Yes. It clearly improves the behavior when the delay spikes happen, but it's
hard to fully assess the impact based on event logs since the packets recorded
in the log are fixed.

Powered by Google App Engine
This is Rietveld 408576698