[opus] Q: Bandwidth vs. bitrate

Mathias Buhr
2019-11-01T09:28:03Z

Hi Ulrich,

Other than the bitrate, none of the discussed settings should have a
significant impact on the file size as the encoder will always use the
available bitrate to encode the input signal. The additional settings
only configure where the encoder spends the bits and how much time it
has to figure that out.

>From my experience and as others noted, 15-32 kbps should yield very
good quality for wideband (8kHz acoustic bandwidth) speech. Less than
15kbps still yields good and intelligible speech but can also bring some
noticeable artifacts (obviously depends on the input). The complexity
setting basically configures the trade-off between runtime and encoding
quality (whatever that is). As you probably don't care about runtime,
you should set it to 10 as this should yield the best quality for a
given bitrate (the default is 10). This should actually allow the
encoder to perform a signal analysis (done for >= 8, if I remember
correctly) and determine the "best" bit allocation.
Now if the noise contained in your signal has some energy in the upper
bands, the encoder might try to encode that as well (assuming 48kHz
input). In order to avoid that, the codec control OPUS_SET_BANDWIDTH
might have been helpful.

-Mathias