w3c / media-pipeline-arch

Architecture of the media pipeline on the web
Other
7 stars 0 forks source link

Transport: Glass-Glass latency and congestion control algorithms #2

Open aboba opened 1 year ago

aboba commented 1 year ago

Using the WebCodecs + Webtransport demo (https://webrtc.internaut.com/wc/wtSender2/), select high resolution (e.g. full-HD) and AV1 with "realtime" latency and a bitrate of 500 Kbps. Then measure glass-glass latency with a timer application on your smartphone.

You will most likely measure glass-glass latency 6+ times larger than the P-frame RTT (frame RTT for frame lengths of < 5000 bytes).

One explanation is that a steady stream of P-frames do not expand the congestion window, so that when an I-frame comes along at 10x the size of a P-frame, multiple round-trips are required to send it. This leads to a graph where the P-frames cluster around RTTmin and the I-frames show frame latencies several times larger (since the I-frames require multiple roundtrips to send).

aboba commented 1 year ago

Note: glass-glass latency has markedly decreased due to efforts to improve concurrency of reading and writing. Improved concurrency also appears to result in more rapid congestion window growth, lowering the number of round-trip required to transmit an I-frame.

Related: https://github.com/w3c/media-pipeline-arch/issues/10