Log in

No account? Create an account
10 January 2012 @ 04:40 am
Opus quality update  

Those who have been following the Opus git repository in the past few weeks probably haven't noticed much work going on. The reason is pretty simple, most of the work has been going on elsewhere in an experimental branch (exp_wip3 names for now) of my private repository. The reason it's in an experimental branch is that its not fully converted to fixed-point and hasn't been tested on any frame size other than 20 ms. Here's an (incomplete) list of changes for now:

  • Really unconstrained VBR (not trying to keep the same average rate)
  • Tonality detection to give highly tonal audio a boost in bit-rate
  • (yet another) rewrite of the transient detection code
  • New dynamic allocation code that boosts the rate of bands that have significant spectral leakage caused by short blocks

Thanks to these changes, the quality has (as far as we can tell) gone up compared to the current master branch. I invite you to judge for yourself by comparing the audio coded with the current master branch with the audio coded with the new exp_wip3 experimental branch. This is 64 kb/s, so fairly low rate for stereo music. The original is here. Let me know what you think.

prodicus.myopenid.com on January 10th, 2012 11:36 pm (UTC)
Not sure there's improvement
I don't have "golden ears"- both of the encodes sound good enough that I figured I could only tell them from the original during the "Tom's Diner" material from the last ten seconds. I did test to make sure and I can definitely ABX them both from the original there.

I have a little more trouble distinguishing between the two Opus encodes there-- I identified them correctly six times in a row but then monotony/ear fatigue started to creep in. It seemed to me that the experimental version encode was slightly worse on Suzanne Vega's voice. The voice sounds less smooth/ "harsher"in both Opus encodes and I think that effect is a little more pronounced in the experimental encode.
jmspeexjmspeex on January 11th, 2012 07:27 am (UTC)
Re: Not sure there's improvement
Thanks, I'll see if I can hear the difference you're talking about. In terms of improvements in the experimental branch, the samples where it should be the most obvious are samples 4 (guitar, just after the Dave Matthews Band sample) and 5 (woodblocks, just before Vega). Let me know what you think.
prodicus.myopenid.com on January 13th, 2012 07:25 am (UTC)
Re: Not sure there's improvement
Tried again, this time using AKG studio headphones rather than earbuds (still using my laptop's integrated audio though, my recording equipment is inconvenient to use at the moment). Still struggle to ABX either Opus encode from the original on the guitar or woodblocks.

If you encoded the samples which Opus did the worst at in the public 64kbps multiformat listening test with these two encoders, maybe the difference on those might be more audible. Or you could ask over at hydrogenaudio and see if any "golden ears" type folks there can discern the differences in the samples you posted.

Two more details about the Tom's Diner issue:

-I'd forgotten that abchr randomizes the sample numbers. After doing the test again and reading the saved result file I found that the better of the two encodes was actually the new experimental encoder. Taking a brief break between tests allowed me to reliably ABX the difference between the encodes, so this is a real perceptible improvement.

-I can now better describe what the problem sounds like-- Vega's voice is kind of "breathy," especially on the lowest notes, and it sounds as though Opus (especially the older encoder) is encoding some of this essentially non-harmonic aspect of the sound as false overtones.
jmspeexjmspeex on January 13th, 2012 11:54 am (UTC)
Re: Not sure there's improvement
Well, one extreme example is the harpsichord sample (#2) from the HA test. The original is here and you can compare the quality of Opus in the HA test to the experimental branch. Just be aware that the new VBR code actually cranks up the bit-rate to around 100 kb/s on that sample for the experimental branch (the average for many sample is still around 64 kb/s).

As for the Vega sample, I'm not sure I understand what artefact you're describing. Are you talking about noise during voiced segments or tones during unvoiced segments?
Blaise PotardBlaise Potard on March 8th, 2012 11:19 am (UTC)
Hi Jean-Marc,

I have to say both samples sound very good to me, and I have a hard time distinguishing one from the other.

However, I have a small remark: if you look at a spectrogram of the Suzanne Vega sample at the very end, especially the voiced or fricatives sections, it looks like the whole 7-15kHz frequency band has been transposed to 15-20kHz. I am not familiar at all with the Opus codec, so it may be normal, but it certainly "looks" strange.

It happens on both the experimental and "old" codec, although the old one looks slightly worse.

This being said, I have a hard time actually "hearing" the effect of this (unless I do a high-pass filter first), so the codec may just be exploiting some weaknesses of the human ear.