<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Thanks for the answers Benjamin…<div><br><div><div>On Jun 14, 2013, at 8:05 PMEDT, Benjamin Schwartz wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-family:arial,sans-serif;font-size:13px">I have flexibility in the frame sizes of the unencoded audio, and packet sizes on the RF link.</span></blockquote>
<div><br></div><div>This implies that you don't have a very tight latency constraint, so you can afford to run a resampler.</div><div><br></div></div></blockquote><div><br></div><div>I assume the resample costs CPU cycles… the RX is battery powered, I'd just as soon avoid it if possible…</div><div><br></div><div>I will have situations where I need to shave every mS of latency, but others where I want to optimize link bandwidth instead.</div><br><blockquote type="cite"><div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<span style="font-family:arial,sans-serif;font-size:13px">My conclusion is that I could set up Opus for 48K (stereo), and in reality run it at 44.1K, as long as I use stock frame sizes, and it would be fine.</span></blockquote>
<div><br></div><div>In general we recommend that users _not_ do this. &nbsp;Instead, we recommend that you use a high-quality resampler, and use standard Opus at 48 kHz. &nbsp;Unless you have an extreme latency constraint, that will likely result in the best quality per bit.</div>
<div><br></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
The only issue I can think of is any of the perceptual stuff will be off by -8%, e.g. crossover/mask frequencies, etc. &nbsp;Or is that true?<br></blockquote><div><br></div><div>Yep, that's true ... and since Opus lowpasses at 20 kHz, if you run it at 44.1 you will always be lowpassing at 18 kHz, and you will never get grade-A quality no matter how many bits you spend.</div></div></div></div></blockquote><div><br></div><div>Ah yes, it low passes below Nyquist, so that's a thing. &nbsp;Though, 18KHz might be acceptable.</div><br><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">
<div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
And with Opus_custom is all that stuff recalculated?<br></blockquote><div><br></div><div>Yes, opus_custom adjusts its model to match the specified samplerate and frame size.</div></div></div></div></blockquote><div><br></div><div>So if one keeps the frame size stock (e.g. 480 samples, etc.) would it minimized the adjustments it makes?</div><br><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

If I do need to go to opus_custom, it seems that it's still best to use the stock frame sizes, true?<br></blockquote><div><br></div><div>opus_custom's compression performance is not heavily tested or optimized. &nbsp;If you're trying to get maximum quality, you should stick with stock Opus at 48kHz.</div>
</div></div></div>
</blockquote><br></div><div>Is the custom a total different code path for the compression? &nbsp;</div><div><br></div><div>I figured it was just doing some buffering to get standard frame sizes, and recalculating e.g. lowpass Fc…?</div><div><br></div><div>In other words, if I'm reading what you're saying, if you invoke custom, but then set it up for 48K and a standard frame size (and all other identical settings to normal), you will get a worse result, for some reason?</div><div><br></div><div>thanks,</div><div>Marc</div><br></div></body></html>