JitterEstimator: add field trial for not estimating noise for congested frames
The reason for rejecting the congested frames in the first place, is that they do not obey a Gaussian distribution around the line from the Kalman filter. It therefore also does not make sense to include them in the noise (*) estimation. (*) noise = variation around the line from the Kalman filter. Bug: webrtc:14151 Change-Id: Id8a44ba5f13bf9787ab54848109430ef7657f67a Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/275762 Commit-Queue: Rasmus Brandt <brandtr@webrtc.org> Reviewed-by: Philip Eliasson <philipel@webrtc.org> Cr-Commit-Position: refs/heads/main@{#38100}
This commit is contained in:
committed by
WebRTC LUCI CQ
parent
f6332f29c0
commit
e4bc975a8a
@ -51,7 +51,8 @@ class JitterEstimator {
|
||||
"num_stddev_delay_clamp", &num_stddev_delay_clamp,
|
||||
"num_stddev_delay_outlier", &num_stddev_delay_outlier,
|
||||
"num_stddev_size_outlier", &num_stddev_size_outlier,
|
||||
"congestion_rejection_factor", &congestion_rejection_factor);
|
||||
"congestion_rejection_factor", &congestion_rejection_factor,
|
||||
"estimate_noise_when_congested", &estimate_noise_when_congested);
|
||||
// clang-format on
|
||||
}
|
||||
|
||||
@ -59,7 +60,7 @@ class JitterEstimator {
|
||||
return max_frame_size_percentile.has_value();
|
||||
}
|
||||
|
||||
// If set, the "avg" frame size is calculated as the median over a window
|
||||
// If true, the "avg" frame size is calculated as the median over a window
|
||||
// of recent frame sizes.
|
||||
bool avg_frame_size_median = false;
|
||||
|
||||
@ -96,6 +97,12 @@ class JitterEstimator {
|
||||
//
|
||||
// Decreasing this value rejects fewer samples.
|
||||
absl::optional<double> congestion_rejection_factor = absl::nullopt;
|
||||
|
||||
// If true, the noise estimate will be updated for congestion rejected
|
||||
// frames. This is currently enabled by default, but that may not be optimal
|
||||
// since congested frames typically are not spread around the line with
|
||||
// Gaussian noise. (This is the whole reason for the congestion rejection!)
|
||||
bool estimate_noise_when_congested = true;
|
||||
};
|
||||
|
||||
JitterEstimator(Clock* clock, const FieldTrialsView& field_trials);
|
||||
|
||||
Reference in New Issue
Block a user