[opus] Encoding ultrasonics

Monty Montgomery monty at xiph.org
Wed Jan 16 11:54:02 PST 2013

On Wed, Jan 16, 2013 at 2:45 PM, Corey Shay <cshay892 at gmail.com> wrote:
>  If I were inclined to
> encode at say, 96k, and pass ultrasonics up to 40k, I suppose I could in
> theory lie to the encoder about its input rate so it thinks it's 48k, and I
> could restore its 96k rate after decoding, but obviously this would result
> in doubling the necessary bit rate.

This would also break all the psychoacoustic modelling.  The results
will be... suboptimal; not as bad a hold music turning into bursts of
noise on a cellphone, but not good either.

> Is there a more efficient way to encode
> information over 20k without breaking the standard?

I don't believe so; Opus is designed fairly strictly for distributing
audio for humans to listen to, so it's not going to be easily applied
to more general problems without deep modification.

> You may ask, why do you care about ultrasonics? Well, because the intention
> is to encode once to a file, and play back multiple times, at arbitrary
> playback speeds, and in some cases, half speed or even lower. This would
> result in the ultrasonics coming into the audible range, and for certain
> recordings, it would be preferable to hear them in detail rather than a low
> pass filtered version. Why use Opus for this? Video games, of course. Memory
> constraints.

Sure.  I'd have thought, though, that everything trying to do this
with a general purpose encoder would have the same problem.  Eg, games
use Vorbis and Vorbis does the same thing (though it's not hardwired
into the spec itself, just part of the encoder.)


More information about the opus mailing list