xiphmont: (Default)
[personal profile] xiphmont

Opus 1.1 just hit release candidate; pending any last minute bug discoveries or showstoppers, this will become the final 1.1 release.

The release candidate includes two major improvements over the previous 1.1 beta.

We've further improved surround encoding quality and tuning of both surround and stereo at lower bitrates. As an example, full 48kHz 5.1 surround is now tested and tuned down to 45kpbs (it's nowhere near audiophile quality at that rate, but it is surprisingly good).

In addition, we also landed additional encode/decode optimizations for all CPU types, but especially ARM which now includes NEON encoding optimizations.

And of course, we hopefully cleared the 1.1-beta buglist :-)

Lossless compression support?

Date: 2013-11-26 06:07 pm (UTC)
From: (Anonymous)
Is there a plan to have a "lossless" encoding mode for Opus? Either by gluing FLAC into the protocol or, probably more cleanly, by making the encoder reversible?

While personally I can't hear the difference between wav and mp3, it'd be useful to know that when dynamically streaming audio there is no quality loss if I have sufficient bandwidth.

Re: Lossless compression support?

Date: 2013-11-26 10:04 pm (UTC)
From: [identity profile] xiphmont.livejournal.com
Opus can't be lossless, not even with the addition of a separate layer. Like Vorbis, the spec does not define bit-exact decode. The decoder is simply expected to be within a fidelity range. That means two different decoders (or the same decoder on two platforms) can produce slightly different output.

Re: Lossless compression support?

Date: 2013-11-28 08:21 am (UTC)
From: (Anonymous)
What was the reason to not spec a bit exact decoding? Does it make it cheaper to implement?

Re: Lossless compression support?

Date: 2013-12-02 06:27 pm (UTC)
From: [identity profile] xiphmont.livejournal.com
There are a couple reasons that play into each other.

Opus is designed to 'damp out' errors over a space of several milliseconds, whether the errors are from packet loss, bit errors from corruption, or just a noisy implementation. Because of this design, there's no need to be bit-exact the way video codecs tend to require. And because there's no need, it removes several design and implementation constraints. Opus, internally, has no specified 'depth' (the spec is good to ~ 140dB if you implement that much depth), so we don't need to worry about how to spec and handle inputs of differing depths the way FLAC does. Implementations are free to make optimizations that affect exact decode but don't otherwise hurt fidelity. And this also enables very-high-speed reduced depth applications where appropriate.

Lossless Support

Date: 2013-12-02 05:51 am (UTC)
From: (Anonymous)
Universal lossless support isn't possible for reasons stated by Monty. It may be possible to add lossless extensions to Opus, but those extensions will only be recognized by specialized decoders. This is something I'm working towards, but extension packets don't seem to be standardized yet. I also don't know anywhere near enough (yet) about MDCT-based compression.

Profile

xiphmont: (Default)
xiphmont

Most Popular Tags