[opus] Opus FEC

Young, Milan Milan.Young at nuance.com
Mon Jan 28 10:50:54 PST 2013


I understand the encoder provides an option for FEC to provide some protection against packet loss, but I don't understand the details of this arrangement.  I'd appreciate answers to the following:

* Adding FEC seems to change the encoded audio bit-stream itself, i.e., it doesn't just add additional protection bits, but also changes the encoded bits. This is easy to show by comparing two decoded versions of the same audio file: one encoded with no FEC, and another with FEC. Is this expected or is it a bug? 
* Related to the above, what does the FEC information consist of? How does the decoder use it? Does it simply repeat preceding packets, or interpolate preceding and subsequent packets, or does it do something smarter?
 * Based on my tests, the FEC in opus seems to have a limit, i.e., it adds correction but only up to approx 4---10% expected packet loss, depending on the file. What are the parameters/limits of the FEC?
  * Does FEC add any algorithmic delay? i.e., does it require the decoder to wait until post-loss packets are received in order to generate a replacement for the lost packets? If so, what is the maximum delay and can it be variably set?

Thank you

More information about the opus mailing list