[opus] advantage of OPUS_SET_FORCE_CHANNELS(1)?

Phil Karn karn at ka9q.net
Mon Oct 23 02:05:34 UTC 2017

I'm using Opus for a networked ham radio communications receiver. Kudos
on the whole project; it sounds excellent even at low bit rates and the
API was surprisingly simple and easy to use. And god knows the world
needs a really good, general purpose, non-proprietary codec.

One question, though. Depending on the mode my receiver can generate
mono or stereo. Most operating modes are mono, but a few such as ISB
(Independent Sideband AM) are stereo. To simplify the design I followed
the API's recommendation to always feed the encoder a 48 kHz stereo
stream and let Opus sort it out.

This works well, but then I noticed the SET_FORCE_CHANNELS option. Is
there any advantage to my detecting identical left and right channels
and setting this to force mono? Or does the Opus encoder already do this
internally in the AUTO mode?

When I force mono the decoder's indicated channel count changes from 2
to 1 as expected, but I can't tell if there's any benefit in increased
fidelity and/or lower average bit rate vs just leaving the option to AUTO.

My typical channel bit rate is 16-32 kb/s and the input audio is usually
low pass filtered to maybe 3-5 kHz. Because most operating modes are
mono, efficiency in that mode is important.



More information about the opus mailing list