Zibo's Website A digital collection of my work and life

Paper Study - A New Adaptive FEC Loss Control Algorithm for Voice Over IP Applications

** This is a study & review of the Opera paper. I’m not an author.

A New Adaptive FEC Loss Control Algorithm for Voice Over IP Applications

Introduction

  • Problem with previous schemes: can’t handle burst loss and show unstable behaviors
  • Section 2: application-level packet-loss techniques Bolot’s algorithm
  • Section 3: Shortcomings of Bolot’s algorithm
  • Section 4: New Design USF algorithm
  • Section 5: Simulation

Application-level packet-loss recovery & Bolot’s algorithm

Pre-specified HIGH and LOW limits for loss rate. Add redundancy when the loss rate is higher than HIGH, and decrease redundancy when the loss rate is lower than LOW.

Redundancy level depends on Combination Number:

Reward measures the audio quality at the receiver (loss rate before vs after reconstruction) (empirically determined)

Screen Shot 2020-04-28 at 14.37.54

A RTCP packet contains the number of packets lost before reconstruction at receiver in the last 5s.

For each RTCP received:
	# Packet Loss Rate Before Reconstruction
	Pb = lost packets / total packets expected
	# Packet Loss Rate After Reconstruction
	Pa = Pb / Reward
	if Pa > HIGH: # Loss after reconstruction still too large (network congested)
		combination++
	if Pb < LOW: # Loss before reconstruction small enough (good network condition)
		combination--

Shortcomings of Bolot’s Algorithm

Static and empirically determined reward number $\rightarrow$ representative for a limited scenarios (only for those similar to the testing condition)

Bolot’s algorithm doesn’t consider change in packet loss rate before reconstruction $\rightarrow$ with poorly set HIGH and LOW value $\rightarrow$ fluctuation. For example, if we set both HIGH and LOW at 3%, then one RTCP increases redundancy and the other reduces redundancy, forming a cycle of fluctuation.

New AFEC: USF algorithm

Add two additional values in the RTCP packets.

  1. The number of packets lost after reconstruction, used to calculate the actual percentage of packets loss after reconstruction.
  2. Total number of packets lost in bursts, used to account for burst loss.

Screen Shot 2020-04-28 at 15.31.26

USF first increases delay and then add more redundancy to the traffic.

For each RTCP:
	# Packet loss rate after reconstruction
	Pa = Number of Packets lost after reconstruction / Total number expected
	# Packet loss rate before reconstruction
	Pb = Number of packets lost before reconstruction / Total number expceted
	if Pa > HIGH: # calebrate for burst loss
		subtract burst loss from loss
		recalculate Pa with the new loss
        if Pa > HIGH: # lost still high
            increment combination
	if Pa < LOW: # low loss rate
		loss difference = Pb(previous) - Pb
        if loss difference > threshold:
            decrement combination
	Pb(previous) = Pb

Main point: safe guard increment and decrement from burst loss and fluctuation.

Simulation and Evaluation

Screen Shot 2020-04-28 at 16.42.27

VoIP stream at period of 20 ms. Each packet is numbered for loss tracking.

Used Interactive (telnet), Bulk Data (FTP) to simulate realistic traffic, adjust for different VoIP loss rate.

  1. With relatively stable and good network (loss around 3%)

HIGH and LOW @ 3%. USF threshold @ 3%. (3% loss rate for a tolerable audio quality)

Screen Shot 2020-04-28 at 20.58.50

Table 3: USF reduces loss rate at 2-3X.

Screen Shot 2020-04-28 at 21.02.00

Table 4: Period of 5s (RTCP); number of these periods above HIGH.

Fewer above HIGH periods means that USF can effectively handle high loss (when network condition becomes bad) by increasing redundancy level.

Screen Shot 2020-04-28 at 21.32.21Screen Shot 2020-04-28 at 21.32.30

Compare figure 5 against 6, we can see the number of packet loss after reconstruction with USF is significantly less.

  1. Synthetic network (network loss rate varies from 2%-35%)

Screen Shot 2020-04-28 at 21.41.00

For network loss < 7%, USF performs well. But when network is heavily congested and loss rate is high, USF struggles. Confirms in figure 8.

Screen Shot 2020-04-28 at 21.42.27

Why would Bolot outperforms USF with higher network loss? Bolot often overestimates loss rate after reconstruction (Figure 9: dots concentrates above the actual loss rate after reconstruction line) $\rightarrow$ over-redundant $\rightarrow$ performs well in bad network conditions

Screen Shot 2020-04-28 at 21.44.16

What if Bolot also uses actual loss rate after reconstruction like USF? USF outperforms Bolot for all range.

Screen Shot 2020-04-28 at 21.50.38

Conclusion USF AFEC

  1. Clearly USF AFEC is good when the network condition is relatively stable and well, but struggles otherwise
  2. It uses actual network loss to compute redundancy $\rightarrow$ more accurate measure of AFEC effectiveness.
  3. It calibrates for burst loss and consider network loss history when making redundancy changes $\rightarrow$ less frequent change $\rightarrow$ less fluctuation
  4. Needs more works on LOW, HIGH, threshold setting? Bandwidth Util? Improve for high loss rate conditions?
[ paper academic ]