[opus] PLC Sounds Robotic - How to Implement FEC Wideband

Scott Boekweg scott.boekweg at listentech.com
Tue Aug 25 11:15:00 PDT 2015


Thanks Jean-Marc for your prompt response.  Yes I am passing the Null so my implementation is correct.  Your explanation of how it works helps explain what is going on.  So it looks like FEC might be a better option.

After reading through Opus documentation it appears that in-band FEC is not available for Celt, is this correct?  Assuming that's correct, is there any recommended documentation on how to implement FEC with wideband Celt?  I'm hoping I can pass the "redundant" FEC data through existing RTP packets.

Many thanks!

Scott


-----Original Message-----
From: Jean-Marc Valin [mailto:jmvalin at jmvalin.ca] 
Sent: Tuesday, August 25, 2015 12:02 PM
To: Scott Boekweg <scott.boekweg at listentech.com>; opus at xiph.org
Subject: Re: [opus] PLC Sounds Robotic - How to Implement FEC Wideband

What do you mean by "implement"? You're just using the Opus built-in PLC (passing NULL), right? The PLC generally attempts to find periodicity and replicate it. I guess if your signal isn't periodic it can lead to a repetition that isn't great. It's something that could probably be improved in the PLC.

Cheers,

	Jean-Marc


On 08/25/2015 01:21 PM, Scott Boekweg wrote:
> I am specifically using Celt Wideband (48kHz) over WiFi multicast that 
> naturally leads to lost packets and am trying to minimize the impact 
> to the audio.  I implemented PLC but the audio it produces is robotic.
>  Have I implemented PLC correctly? 
> 
>  
> 
> Checking the waveform it is using the previous received waveform to 
> fill in a missing packet but not the full waveform so it has to repeat.
> Basically, within a single lost 20ms packet I hear two replicas of the 
> last 10ms of the previous waveform.  Sometimes the repeats are only 
> 4ms long thus repeating 5 times.  This makes it sound robotic.  Is 
> this typical or do I have it implemented incorrectly?  Should it not 
> try to create one replica of the entire 20ms previous waveform instead 
> of having to repeat a portion of it?
> 
>  
> 
> Scott Boekweg
> 
> 
> 
> _______________________________________________
> opus mailing list
> opus at xiph.org
> http://lists.xiph.org/mailman/listinfo/opus
> 


More information about the opus mailing list