[opus] FEC and Stereo
jon at soniccloud.com
Fri Jan 27 18:24:05 UTC 2017
One other question I was wondering about. Is the reason that we hear the crosstalk with fec and packet loss percentage>0 is that Opus uses information from the left channel to try to error correct the right channel and vice versa? I am trying to understand the origin of the crosstalk.
> On Jan 27, 2017, at 12:29 PM, Jon Lederman <jon at soniccloud.com> wrote:
> [This sender failed our fraud detection checks and may not be who they appear to be. Learn about spoofing at http://aka.ms/LearnAboutSpoofing]
> Hi Jean-Marc,
> Thank you. Yes, we do need both channels independent. So, if we encode each channel separately, we will be sacrificing the compression ratio we would achieve with stereo encoding, correct?
> So, based on what you say here is my understanding. Please confirm this is correct or not:
> 1) If we use fec, we can reduce cross-talk but increasing bitrate. However, that should result in higher packet loss due to higher bitrate.
> 2) If we don’t use fec, we can have no crosstalk. However, then we have significant chance of packet loss.
> 3) We could encode each channel separately. In this case, we would have no crosstalk, but we would have a lower compression rate/efficiency.
>> On Jan 27, 2017, at 12:24 PM, Jean-Marc Valin <jmvalin at jmvalin.ca> wrote:
>> On 27/01/17 12:16 PM, Jon Lederman wrote:
>>> When you say that with fec enabled, the threshold is increased, do
>>> you mean the bitrate - i.e., you need higher bitrate with fec enabled
>>> to suppress crosstalk?
>> Correct. Another effect I forgot to mention is that Using FEC will
>> actually force SILK/hybrid rather than CELT, so it's possible that
>> disabling FEC makes you use CELT, which tends to have wider stereo
>> separation for lower bitrates.
>>> Also, can you make any recommendations to decide whether to use fec
>>> or not? We are trying to tune the parameters appropriately. Audio
>>> quality and reduction of crosstalk are critical for us.
>> In general, I would say that if you know the decoder is able to use FEC,
>> then you should enable it in the encoder. The encoder will decide by
>> itself when to actually use it depending on bitrate and other
>> parameters. As for reducing cross-talk, I guess it comes down to the
>> *reason* you want to reduce cross-talk. Normally the encoder will
>> whatever will result in the best quality, so it must be thinking that
>> reducing cross-talk is good. Now, if your reason is that your two
>> channels carry completely independent information, then the fix would be
>> to simply code two separate channels. It's hard to say more considering
>> that you haven't said anything about your signals and why the stereo
>> separation is so important for you.
>>> Thanks again.
>>> Sent from my iPhone
>>>> On Jan 27, 2017, at 11:38 AM, Jean-Marc Valin <jmvalin at jmvalin.ca>
>>>> Hi Jon,
>>>>> On 27/01/17 08:31 AM, Jon Lederman wrote: We are trying to use
>>>>> Opus in a VoIP environment for sending stereo audio. We have
>>>>> noticed a phenomenon where when FEC is enabled and
>>>>> packet_loss_percentage>0, that there is a mixing of audio from
>>>>> the left channel into the right channel and vice versa. That is,
>>>>> rather than hearing each channel in its pristine form as it was
>>>>> in the file, there is a combination of right and left channels
>>>>> that is heard on the left and right playback.
>>>>> First, is this the correct behavior? If so, why does this
>>>> It is the correct behaviour, at least to some extent. Opus may
>>>> deliberately introduces cross-talk between the channels to make
>>>> the signal easier to code when it doesn't have enough bits to do a
>>>> good enough job with the original stereo audio. If you increase the
>>>> bitrate, then that cross-talk with be reduce and eventually
>>>> disappear. Now the only difference that FEC does is that it
>>>> increases the threshold for the cross-talk.
>>>>> Finally, is there a way to prevent this other than disabling FEC
>>>>> (which we don’t want).
>>>> Well, obviously if you're not going to use the FEC, then you
>>>> shouldn't waste bits to encode it.
>>>> Jean-Marc _______________________________________________ opus
>>>> mailing list opus at xiph.org
> opus mailing list
> opus at xiph.org
More information about the opus