It's my understanding that the CELT layer of Opus has a maximum input sample rate of 48k, and frequencies above 20k are effectively not encoded. I've been trying to get up to speed on the specification, and studying its operation, but as far as I can infer, there is a fixed set of 21 bands distributed logarithmically to encode DC to 20k. 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. Is there a more efficient way to encode information over 20k without breaking the standard?<div>
<br></div><div>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.</div>