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: IETF Opus codec now ready for testing (Read 392391 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

IETF Opus codec now ready for testing

Reply #175
Editing own messages is time-limited?

Well, so – P.S.:

john33 is currently away, but certainly interested.

IETF Opus codec now ready for testing

Reply #176
Editing own messages is time-limited?
Yes, to one hour. For information refer to the uppermost pinned thread in Site Related Discussion.

You can request later edits from staff (within reason!) via the report button, assuming you’re not worried that readers might not go back and notice the updates; due to that risk, including new information in a new post rather than editing might be preferable, and sequential posts can be justified in such cases.

IETF Opus codec now ready for testing

Reply #177
Okay. Some boards optimize for size, some for speed. 
__

P.S.:

If you are looking for very nasty test samples to optimize encoder quality:

From my experience, "Peter Heppner: Twelve" from the EP "Witt, Heppner: Die Flut" has everything psychoacoustic audio codecs hate.

IETF Opus codec now ready for testing

Reply #178
BTW, how do I know if Opus is using the Silk or Celt mode for encoding? I don't see this info in the opusenc or opusinfo. It would be good to know, especially if it overrides your choice. I don't want to memorize a table with the heuristics/allowed combinations (even thought I may end up memorizing it).


You should presume this to be variable per frame and signal dependent. (The reference encoder uses some formulas based on bitrate and the passed switches, but that is likely to change soon)

Quote
But if I try to force it under that with --hard-cbr it falls completely apart... That means I can't put 50 minutes of audio in a floppy, like AAC and speex could (well, AAC was also a train-wreck at 2~3kbps, but still better than opus)...

One less way I can show off opus, but don't really impact in practical uses.   


You can generate Opus files at 1.5kbps. The problem seem to be with overriding framesize = 60, will investigate.

IETF Opus codec now ready for testing

Reply #179
If you are looking for very nasty test samples to optimize encoder quality:

From my experience, "Peter Heppner: Twelve" from the EP "Witt, Heppner: Die Flut" has everything psychoacoustic audio codecs hate.


Are there actual issues when Opus encodes this sample or did you just throw this randomly out there?

IETF Opus codec now ready for testing

Reply #180
All codecs have issues with this song when the bitrate drops, more or less in different parts. I tried to get as low as 48 kbps, and for a specific sound, Opus sounds worse than Vorbis and QAAC — but only with bitrates as low as 48 kbps; Ogg Vorbis aoTuV b6.03 had do be pressed down to a quality below 0 to reach this average rate. At ~64 kbps (VBR), they all sound already surprisingly satisfying.

BTW: Is it intentional that foobar2000 plays Opus audio files at 48.0 kHz, although the original WAV had 44.1 kHz? opusinfo reports "Original sample rate: 44100Hz".

IETF Opus codec now ready for testing

Reply #181
You should presume this to be variable per frame and signal dependent. (The reference encoder uses some formulas based on bitrate and the passed switches, but that is likely to change soon)

It also isn't either-or, it can and does use both at once. Opus isn't two codecs behind one executable, it's one codec with multiple parts.

The --save-range diagnostic knobs in opusdec/opusenc will tell you what its using.

IETF Opus codec now ready for testing

Reply #182
BTW: Is it intentional that foobar2000 plays Opus audio files at 48.0 kHz, although the original WAV had 44.1 kHz? opusinfo reports "Original sample rate: 44100Hz".


Yes, that's by design. Opus is always internally encoded at 48kHz, and there's no reason for the decoder to resample back if it can output that rate. (Might be handy if fb2k could report the original rate somewhere in the properties)

IETF Opus codec now ready for testing

Reply #183
Quote
Okay. Some boards optimise for size, some for speed. 
I don't follow. Is this meant to imply that the staff at that time sacrificed one for the other, and chose wrongly to boot? I think not. Neither factor appears to be relevant to Hydrogenaudio's time limit, the reasons for which are clearly explained in the thread that I cited. If you still have opinions on this, please direct them there.

IETF Opus codec now ready for testing

Reply #184
@ db1989:

Just a joke. There are boards with rules like "Do not post just to raise your post count", and that kind of "size optimization" made me smirk about similar compiler options. Nothing serious, just my way of skipping a few steps while thinking. I love thought-leaps.

The loss of "bulk erase" actions by unhappy members is sadly known to me.
__

@ all:

The experimental build created a slightly bigger output on that mentioned test song "Twelve" at a 48 kbps target. But it sounded better for the mentioned part of the song (background cymbals at ~0:55 to ~1:05), on par again with the competitors.

IETF Opus codec now ready for testing

Reply #185
BTW, I was playing with intensity stereo (IS) and have found Opus's IS is considerably less lossy (better) than MP3's or Vorbis'es IS. The IS is set to 16 at 64 kbps by default (16th higher band). More agressive IS 14 was considerably better for my ears (less artifacts at cost of a bit more lossy stereo).
Also default IS'es setting at 96 kbps is optimal to my taste while it's really hard to judge a final effect at >96 kbps (have tested it at 128 kbps). IS should be useful up to ~128 kbps.

IETF Opus codec now ready for testing

Reply #186
Quote
BTW, I was playing with intensity stereo (IS) and have found Opus's IS is considerably less lossy (better) than MP3's or Vorbis'es IS. The IS is set to 16 at 64 kbps by default (16th higher band). More agressive IS 14 was considerably better for my ears (less artifacts at cost of a bit more lossy stereo).
Also default IS'es setting at 96 kbps is optimal to my taste while it's really hard to judge a final effect at >96 kbps (have tested it at 128 kbps). IS should be useful up to ~128 kbps.

Is it possible to set the IS setting with opusenc?

IETF Opus codec now ready for testing

Reply #187
BTW, how do I know if Opus is using the Silk or Celt mode for encoding? I don't see this info in the opusenc or opusinfo. It would be good to know, especially if it overrides your choice. I don't want to memorize a table with the heuristics/allowed combinations (even thought I may end up memorizing it).


You should presume this to be variable per frame and signal dependent. (The reference encoder uses some formulas based on bitrate and the passed switches, but that is likely to change soon)

Right. Still, it would be interesting to show "xx% Celt, xx% Silk" in the final encode status, and in the info (where it already shows max, avg and min framesize, for example).
You can generate Opus files at 1.5kbps. The problem seem to be with overriding framesize = 60, will investigate.

Yep, with framesize = 20 I could generate those 2kbps Opus files, but not 10ms or 60ms frame sizes. But by "falls apart" I meant that the quality suffered A LOT by going under 6kbps. At 6kbps, it was clearly superior to AAC, for voice, but at 3kbps it was clearly inferior, even with 60ms frame size.

Well, now I'm going to test at saner bitrates, and with music.

IETF Opus codec now ready for testing

Reply #188
Quote
BTW, I was playing with intensity stereo (IS) and have found Opus's IS is considerably less lossy (better) than MP3's or Vorbis'es IS. The IS is set to 16 at 64 kbps by default (16th higher band). More agressive IS 14 was considerably better for my ears (less artifacts at cost of a bit more lossy stereo).
Also default IS'es setting at 96 kbps is optimal to my taste while it's really hard to judge a final effect at >96 kbps (have tested it at 128 kbps). IS should be useful up to ~128 kbps.

Is it possible to set the IS setting with opusenc?


No. I'm working on making this and some other important parameters available via opusenc settings, check this thread in a few days.

IETF Opus codec now ready for testing

Reply #189
Yep, with framesize = 20 I could generate those 2kbps Opus files, but not 10ms or 60ms frame sizes. But by "falls apart" I meant that the quality suffered A LOT by going under 6kbps. At 6kbps, it was clearly superior to AAC, for voice, but at 3kbps it was clearly inferior, even with 60ms frame size.


Note that "officially" 6kbps is the lowest supported rate. At lower rates it's just not encoding frames of the audio at all and requesting the decoder to interpolate/predict between the ones it did.

IETF Opus codec now ready for testing

Reply #190
Note that "officially" 6kbps is the lowest supported rate. At lower rates it's just not encoding frames of the audio at all and requesting the decoder to interpolate/predict between the ones it did.


Technically MDCT mode CBR can go down to 1 byte of codec payload (two bytes total) per packet while encoding "something". But that something is not very useful and at very low rates Opus will have already switched to the LP mode and the current LP mode encoder cant really produce under 6 kbit/sec or so, and would take a pretty substantial rewrite to do so (much less do so usefully).

At 20ms frames 2kbit/sec is 5 bytes. We're losing one byte to signal the mode.  There isn't a lot you can say about the audio with only 4 bytes, even codec2 uses frames of twice that size (though at a lower framerate), especially with encoding designed for higher rates.  And— of course as soon as you transmit it across any packet network you end up with several times that size in overhead.

Terribly quality at silly low bitrates?  This is not the codec you are looking for.


IETF Opus codec now ready for testing

Reply #192
Opus seems to have problems at certain points of time when encoding with 64 kbit/s + framesize 60. I've had 2 samples with obvious bugs at 2:00 that disappeared when I cut these moments out in Audacity and encoded it again. Is that behaviour normal/expected?


Details please.  What version of the software are you using? Can you post test inputs and command-lines (and the .opus output would be nice too).  There was a bug in old opus-tools that would cause something like that, but I'm not aware of anything currently.


Metadata says it's version "0.1.3-12-g07d15f6". Command lines were "--bitrate 64 --framesize 60" at encoding and "--rate 48000" at decoding. Not sure what you mean with "test input" and "opus output". Shall I post samples or frequency graphs?


IETF Opus codec now ready for testing

Reply #194
Metadata says it's version "0.1.3-12-g07d15f6". Command lines were "--bitrate 64 --framesize 60" at encoding and "--rate 48000" at decoding. Not sure what you mean with "test input" and "opus output". Shall I post samples or frequency graphs?


Post a link to some input audio, please. I don't need graphs, just a way to easily reproduce what you're seeing without guessing if I'm seeing the same thing or not. I'll fix it as soon as I can reproduce it.


IETF Opus codec now ready for testing

Reply #196
Metadata says it's version "0.1.3-12-g07d15f6". Command lines were "--bitrate 64 --framesize 60" at encoding and "--rate 48000" at decoding. Not sure what you mean with "test input" and "opus output". Shall I post samples or frequency graphs?


Post a link to some input audio, please. I don't need graphs, just a way to easily reproduce what you're seeing without guessing if I'm seeing the same thing or not. I'll fix it as soon as I can reproduce it.


I could post the whole track where the bug appears or a 2 - 3 minute sample of it, but that's not allowed here and a shorter one wouldn't be useful as the bug only appears if you encode the track from the beginning to at least the second minute (at 2:00 like I've mentioned before).

IETF Opus codec now ready for testing

Reply #197
Btw, is it intentioned that encodes with the framesizes 20 and 60 are bit-identical? It's pretty weird, the bitrate range differs but the output is the same.

IETF Opus codec now ready for testing

Reply #198
Overhead changes while audio data is the same.

IETF Opus codec now ready for testing

Reply #199
Btw, is it intentioned that encodes with the framesizes 20 and 60 are bit-identical? It's pretty weird, the bitrate range differs but the output is the same.


It's not weird.

A 60ms frame is just 3 20ms frames bundled together. This is only useful in low rates where overhead becomes more significant.

Ranges differ (usually less varying) because the info is derived from dividing over 60ms not 20ms. So It's like an average for the 3 bundled frames.