Can opus files be optimized in kinda same way in future? Maybe OptiOpus? #15
-
subj |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
Hi! Firstly, the Opus codec is radically different from Vorbis. Therefore, I wouldn't consider it in scope for this project. In fact, Opus could be more accurately described as a refined combination of the SILK and CELT codecs, of which CELT is the closest successor to Vorbis. This means that it is substantially more complex than Vorbis. Also, it is more common for Opus streams to be stored in their container format, not Ogg, so the optimizations OptiVorbis does to the Ogg encapsulation are not applicable. However, after reading the Opus specification, it stands out that entropy coding is performed by a range coding technique. That is different from Vorbis, which relies on prefix codes (a.k.a. Huffman codes). But it still is conceptually possible to apply the same idea used by OptiVorbis to achieve more efficient entropy coding: compute and use stream-optimal symbol probability distributions. As mentioned in the specification, "[...] Opus uses static contexts, those are not updated as symbols are decoded", so this slight inefficiency is very likely present on most Opus streams. Notwithstanding that, its net impact on file sizes may be different than on Vorbis due to the different codec design and context selection, which could mitigate the effect of that entropy coding inefficiency, so some research on its effectiveness is warranted. All in all, answering your question more directly: after gathering some basic information about Opus, I think it's feasible to apply at least some of the techniques used by OptiVorbis to Opus streams, but their effects may or may not be worth the effort. At the moment, I'd rather spend my time improving OptiVorbis than creating OptiOpus, but it'd be great to form a community and create OptiOpus some day 😄 |
Beta Was this translation helpful? Give feedback.
Hi!
Firstly, the Opus codec is radically different from Vorbis. Therefore, I wouldn't consider it in scope for this project. In fact, Opus could be more accurately described as a refined combination of the SILK and CELT codecs, of which CELT is the closest successor to Vorbis. This means that it is substantially more complex than Vorbis. Also, it is more common for Opus streams to be stored in their container format, not Ogg, so the optimizations OptiVorbis does to the Ogg encapsulation are not applicable.
However, after reading the Opus specification, it stands out that entropy coding is performed by a range coding technique. That is different from Vorbis, which relies on prefix codes (a…