Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Couple questions about Opus (Read 3558 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Couple questions about Opus

Heya.

I've been thinking about transitioning from mp3s to something else on all of my future music encodes, and I've probably landed on Opus. But before I commit, I have a few questions.

1. As recently as early September someone said that "Features like replaygain are still very patchy in Opus" so I'm wondering if that's true? Right now, does Opus have any feature downsides in comparison to mp3s, specifically?

2. What are the killer samples? In the wiki it's mentioned that Opus is transparent at 192 kbps outside of some killer samples. I understand the concept of killer samples, but having never done any kind of listening test, I'm curious to hear what exactly those samples are and how they sound in comparison to lossless. Anyone have any good example tracks that I could try?

Thanks!
made of radiation

Re: Couple questions about Opus

Reply #1
I haven't tried this again with newer encoder versions, but i had a pre-echo like artifact with this sample in the past: https://hydrogenaud.io/index.php/topic,101993.0.html

Higher bitrate haven't made it disappear, I had to force a smaller framesize to make it unnoticeable.

I'm using Opus with the setting --cvbr --bitrate 256 --framesize 5 for a while and I'm very happy with it. This gives an iTunes+ like filesize with transparent sound to my ears using headphones. It's highly probable that this bitrate can be lowered to achieve same quality, especially if you listen in noisy environment, but I haven't tried, and also framesize reduction requires additional bits to achieve the same audio quality as with the default --framesize 20 setting, according to this table: http://wiki.hydrogenaud.io/index.php?title=Opus#CELT_layer_latency_versus_quality.2Fbitrate_trade-off So i settled with that being lazy. :)

Re: Couple questions about Opus

Reply #2
Most software decoders will apply replaygain automatically, at least the Opus-specified gain header and probably (optionally) the track gain.  Support for decoding album gain is much more patchy and may be incorrect since the value can be stored either in the header or the metadata (or both!).  Some decoders will also, sometimes optionally, take note of the REPLAYGAIN* tags used in other codecs.  Hardware decoders should always apply the header gain, which is kind of the point, and maybe track gain.  Most Opus decoders will give you limited or no control over selecting between album and track gain, and most likely you will not be able to switch off replaygain completely.  Usually it won't matter but you can run into confusing situations where the same track in different codecs plays with a different volume.

Support for applying replaygain to tracks is more limited.  The reference tool (opusenc) doesn't scan tracks, but it will stuff REPLAYGAIN* metadata from the input tracks into the appropriate tags in the Opus track.  Some other tools will scan tracks and apply compliant Opus gain tags.  FB2000 even has options now (very recent addition) allowing you control over where album and track gains are stored since the Opus spec is woefully ambiguous in this respect.  Deadbeef also has full support (in the optional native Opus plugin, not in ffmpeg) allowing you to run with album, track, or no replaygain, and replaygain scanning is now in some versions and being added to all.

Just an aside since I don't use it, but dbPoweramp now appears to have good support for Opus replaygain and control over it, although not as complete as FB2000.

Re: Couple questions about Opus

Reply #3
Thanks to you both.

My use for it is going to be just on fb2k on my desktop, so as long as replaygain works there as expected, I'm good.
made of radiation

 

Re: Couple questions about Opus

Reply #4
darkbyte, unless you have some need for very low latency there is no point specifying a smaller framesize.  Use the default 20ms frames for best quality and file size.  Low latency is generally only needed for interactive applications such as voip and some types of streaming.

Re: Couple questions about Opus

Reply #5
To answer the second question, Opus killer samples tend to be tonal sounds.  There is a Harpsichord test file which used to be clearly objectionable even at 192 kbps.  There has been some work on encoding this sort of audio better, but I haven't tested with the very latest versions.  There are several recent personal tests using Opus which you might find interesting, both for the types of audio involved and for the bitrates.

Re: Couple questions about Opus

Reply #6
My use for it is going to be just on fb2k on my desktop, so as long as replaygain works there as expected, I'm good.

If you have at least v1.3.11, take a look in the advanced options.  There are settings you can use to ensure that Opus replaygain works in a way that is good for you, although probably it will just work as expected so long as you both encode and play in Foobar.

Re: Couple questions about Opus

Reply #7
darkbyte, unless you have some need for very low latency there is no point specifying a smaller framesize.  Use the default 20ms frames for best quality and file size.  Low latency is generally only needed for interactive applications such as voip and some types of streaming.

I'm using low framesize to fight transient artifacts, as the wiki states:
Quote
These reduced-latency modes remain efficient for transient signals, which use short blocks anyway.
The U96 sample linked demonstrates this very nicely, try encoding it with different framesize settings. Artifacts starts to disappear at 10ms and becomes unnoticeable for me at 5ms.
Opus had an experimental branch with variable framesize encoding which sadly became a dead end (afaik the developers couldn't create an effective detector which can predict the required framesizes, or at least it wasn't improving quality as it was expected. But please correct me, it was a long ago).

It's a rather bruteforce defensive setting which requires higher bitrates to compensate the reduced time resolution but it works for me. It's not something everyone should use.


Re: Couple questions about Opus

Reply #9
At 256kbits you can use any of the major formats including mp3 just as easily (more easily, actually).
That's true. Opus is more practical in the 64-96kbps range, and on majority of samples it should be transparent at those settings. As i said, this setting is not for everyone. Eg. you could use AAC at 256kbps and achieve the same and be more compatible. It's rather a personal experiment for me to find samples which still not transparent at this bitrate. On the set of EDM/Metal of music I'm listening to I haven't found any easily noticable issue so far. I wouldn't like to state this is an universal transparent bitrate because I'm not listening to classical music, nor acapella stuff, where different encoding difficulties arise. Also I'm probably more sensitive to transient and stereo image issues than tonality issues.

As a side not I like to state that I'm really happy with Wavpack Hybrid in general and only experimenting with Opus which is a great codec. I would love to see a finished scalable to lossless implementation on top of it and compare it to Wavpack Hybrid :)