RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
Adaptive Bitrate (ABR) Manager
View file name AAMP-ABR.pptx height 250
1) initial bitrate is configurable for 4k and non-4k, based on a desired target bitrate. The profile with smallest bitrate >= that target is picked. If target bitrate is higher than all available bitrates, top profile is picked.
Current defaults:
Initial bitrate: 2.5 mb - for non-4k playback
Initial bitrate for 4K playback: 13mb ie, 3/4 profile
2) as each fragment is downloaded, an estimated available bandwidth sample is computed and shared with ABR manager (total bytes / download time); configuration exists to exclude "too small" fragments from this sampling. In order to accommodate Peacock stream characteristics we no longer exclude small fragments as contributors, but instead apply a “cap” so that a small fragment with poor computed estimated bandwidth - that nevertheless downloaded quickly - doesn’t trigger ramp down.
3) ABR manager filters "old" estimated bandwidth samples, using average recent bandwidth samples for its estimated effective bandwidth (threshold = 5s).
4) ABR manager will jump when detecting big swing in available bandwidth (allowing quick skip up/down over other profiles).
5) ABR manager will more conservatively accommodate small shifts in available bandwidth (to avoid flipping up/down if we're on the edge); requiring multiple satisfying samples before ramping up/down in this case
6) upon initial tune, with healthy network, ramps to top profile will occur after playout of three fragments (typically 3*2s=6s) at initial profile
7) A “useNewABR” is recently introduced, to use a hybrid buffering/throughput model. This takes into account buffer health to avoid unnecessary rampdowns when buffer is healthy, along with a mechanism to escape "ABR valley" when buffers are healthy but throughput as measured appears poor.
Configuration/defaults:
abr-cache-life=<x in sec> lifetime value for abr cache for network bandwidth calculation(default 5 sec)
abr-cache-length=<x> length of abr cache for network bandwidth calculation (default 3)
abr-cache-outlier=<x in bytes> Outlier difference which will be ignored from network bandwidth calculation(default 5MB)
abr-nw-consistency=<x> Number of checks before profile incr/decr by 1.This is to avoid frequent profile switching with network change(default 2)
abr-skip-duration=<x> minimum duration of fragment to be downloaded before triggering abr (default 6 sec).
with VBN build we can create/use /opt/aamp.cfg to force a specific profile. The relevant configuration options are:
abr disable abr mode (defaults on)
default-bitrate specify initial bitrate while tuning, or target bitrate while abr disabled (defaults to 2500000)
default-bitrate-4k specify initial bitrate while tuning 4K contents, or target bitrate while abr disabled for 4K contents (defaults to 13000000)
so for example:
```abr
default-bitrate=1200000```
Will disable abr and use the explicitly specified bitrate.