Skip to main content

Topic: IETF Opus codec now ready for testing (Read 235089 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • Seren
  • [*][*]
IETF Opus codec now ready for testing
Reply #450
Glad to hear it! Besides much more drastic bitrate fluctuations, a definitive improvement in ringing is noticeable on one of my samples at (specified) 68kbps. The old version produced a file at 62kbps (with ringing on the vocals), while the new version produced a file that was over 74kbps (with ringing much reduced on the vocals). The instrumental version (w/o vocals) of the same song came out to be nearly identical in bitrate (62 old, 63 new).
Interesting.


For now I've been using your compile as it's a lot faster and can't tell the diff but set it to 104 bitrate since the default 96 produces bitrates a tad too low for my liking. I will try test for the ringing later on though.

And a totally unrelated question: How come opus encodes don't show the length in windows explorer (win7) but ogg do?
Also not getting title and artist to show up but not expecting them too since ogg don't either.

IETF Opus codec now ready for testing
Reply #451
I compared a an Opus encode (124kbps) vs an Vorbis encode (122kbps) and they sound very similar. What I noticed is that the ogg had a narrower stereo image but the Opus had more smearing. Both are ABXable but the Opus encode was more difficult to distinguish.

Code: [Select]
foo_abx 1.3.4 report
foobar2000 v1.1.14a
2012/11/03 22:38:23

File A: Z:\media\data\musik\temp\01-The_Decline.flac
File B: Z:\home\ickefes\Documents\01-The_Decline.flac.ogg

22:38:23 : Test started.
22:39:27 : 00/01  100.0%
22:39:28 : Trial reset.
22:40:16 : 01/01  50.0%
22:40:25 : 02/02  25.0%
22:40:40 : 03/03  12.5%
22:40:52 : 04/04  6.3%
22:41:10 : 05/05  3.1%
22:41:33 : 06/06  1.6%
22:42:03 : 07/07  0.8%
22:42:05 : Test finished.

----------
Total: 7/8 (3.5%)


Code: [Select]
foo_abx 1.3.4 report
foobar2000 v1.1.14a
2012/11/03 22:22:45

File A: Z:\media\data\musik\temp\01-The_Decline.flac
File B: Z:\home\ickefes\Documents\The Decline.opus

22:22:45 : Test started.
22:24:26 : 00/01  100.0%
22:25:32 : Trial reset.
22:26:32 : 01/01  50.0%
22:26:48 : 02/02  25.0%
22:27:35 : 03/03  12.5%
22:27:47 : 03/04  31.3%
22:28:19 : 04/05  18.8%
22:28:36 : 05/06  10.9%
22:29:27 : 06/07  6.3%
22:30:16 : 06/08  14.5%
22:31:17 : 07/09  9.0%
22:31:52 : 08/10  5.5%
22:32:08 : 09/11  3.3%
22:32:51 : 10/12  1.9%
22:33:50 : 10/13  4.6%
22:34:20 : 11/14  2.9%
22:34:40 : 12/15  1.8%
22:35:12 : 13/16  1.1%
22:35:51 : 13/17  2.5%
22:36:50 : 14/18  1.5%
22:37:22 : 15/19  1.0%
22:37:27 : Test finished.

----------
Total: 15/20 (2.1%)

  • lvqcl
  • [*][*][*][*][*]
  • Developer
IETF Opus codec now ready for testing
Reply #452
but the Opus had more smearing.

BTW, from the Opus git (http://git.xiph.org/?p=opus.git;a=commit;h...33c10b5cec11649), Fri, 2 Nov 2012:

Quote
New transient detection algorithm
This one is explicitly based on a simple temporal masking model
  • Last Edit: 03 November, 2012, 06:49:52 PM by lvqcl

  • Gainless
  • [*][*][*]
IETF Opus codec now ready for testing
Reply #453
but the Opus had more smearing.

BTW, from the Opus git (http://git.xiph.org/?p=opus.git;a=commit;h...33c10b5cec11649), Fri, 2 Nov 2012:

Quote
New transient detection algorithm
This one is explicitly based on a simple temporal masking model


Now we just need something we can encode with from this.
  • Last Edit: 03 November, 2012, 07:00:58 PM by Gainless

IETF Opus codec now ready for testing
Reply #454
but the Opus had more smearing.

BTW, from the Opus git (http://git.xiph.org/?p=opus.git;a=commit;h...33c10b5cec11649), Fri, 2 Nov 2012:

Quote
New transient detection algorithm
This one is explicitly based on a simple temporal masking model

Thanks for the tip. I will try that one but do you know which command line to use to compile under Linux? Regards.
  • Last Edit: 03 November, 2012, 07:11:19 PM by punkrockdude

  • lvqcl
  • [*][*][*][*][*]
  • Developer
IETF Opus codec now ready for testing
Reply #455
I will try that one but do you know which command line to use to compile under Linux? Regards.

I don't use Linux, but it's probably something like this:
Code: [Select]
% ./autogen.sh
% ./configure
% make
% sudo make install


Now we just need something we can encode with from this.

here it is: [ Attachment Invalid Or Does Not Exist ]

IETF Opus codec now ready for testing
Reply #456
I am tired now but from what I have listened to this will be a very hard ABX with that Nov 3rd version. I am starting to get really impressed by Opus. Maybe soon it can become a "true 128or". I really look forward to all improvement that will happen during the following years.

  • Last Edit: 03 November, 2012, 08:22:11 PM by punkrockdude

  • Gainless
  • [*][*][*]
IETF Opus codec now ready for testing
Reply #457
Thanks to lvqcl for the new exe!

Just followed Igor's suggestion and tested the (resampled) Albibeno sample again with the new version, it's not ABXable for me anymore at 192 kbps. There are two other sampes though, which are pretty easy to ABX due to distortion on the kicks, even at that high bitrates.

Opus Test samples

At the DnB Beat sample the distorted kick comes right after the third snare hit, ABX logs are included.
  • Last Edit: 03 November, 2012, 09:56:26 PM by Gainless

IETF Opus codec now ready for testing
Reply #458
Here's my bi-weekly Win32 compile of opus-tools and libopus.

This goes up to HEAD as of the time of posting (4ea3ae9a opus; 97a5c5fa opus-tools) and requires SSE (your CPU must be less than 15 years old to run these).

Changelog since my previous build:
Code: [Select]
opus:
Further cleanup of the MDCT code, fixes PLC bug
Avoid copying imdct output
Various fixes to draft-terriberry-oggopus.xml
Valincomb_filter() bypass for the case where the gain is...
Oops, put back the "static" for transient_analysis()
Fixes a fixed-point overflow in the new transient detector
Fixes a fixed-point divide-by-zero issue
New transient detection algorithm

opus-tools:
opusrtp now compiles properly for windows (but remains useless)


These binaries should be super fast (the rtp binary is useless on windows, however). Let me know.
  • Last Edit: 06 November, 2012, 11:02:40 AM by The Sheep of DEATH
Copy Restriction, Annulment, & Protection = C.R.A.P. -Supacon

IETF Opus codec now ready for testing
Reply #459
That AVX build encoded a single file around 45x speed using 128kbps VBR default in Foobar2000 under Window 7 x64 on a ASUS K53SV-SX812V (2.4GHZ).

IETF Opus codec now ready for testing
Reply #460
That AVX build encoded a single file around 45x speed using 128kbps VBR default in Foobar2000 under Window 7 x64 on a ASUS K53SV-SX812V (2.4GHZ).


Good news, I guess! That build wasn't for AVX -- it was generic w/SSE. I was contemplating producing an AVX build but then decided against it for now. Long live genericism!

As for the build speed, I guess the question is how it stacks up against the "official" release on a range of processors. Thanks for testing!
Copy Restriction, Annulment, & Protection = C.R.A.P. -Supacon

  • IgorC
  • [*][*][*][*][*]
IETF Opus codec now ready for testing
Reply #461
BTW how big is speed gain for AVX build?

  • Seren
  • [*][*]
IETF Opus codec now ready for testing
Reply #462
That AVX build encoded a single file around 45x speed using 128kbps VBR default in Foobar2000 under Window 7 x64 on a ASUS K53SV-SX812V (2.4GHZ).


Good news, I guess! That build wasn't for AVX -- it was generic w/SSE. I was contemplating producing an AVX build but then decided against it for now. Long live genericism!

As for the build speed, I guess the question is how it stacks up against the "official" release on a range of processors. Thanks for testing!


Weird it doesn't seem to be as fast as your last build... I've got a lot of stuff open atm and getting 37x on this 1 and 39x on the last. Probably due to opus code changes.
Oh and btw, do you mean SSE1 or SSE2? I know there's a lot of difference between those two but practically none between 2 and 4a (not sure about 4.1 and 4.2). My ancient AMD Athlon x2 245 doesn't support AVX but it would be interesting to see the difference none-the-less.
Thanks for the build btw =)

  • Krillo
  • [*]
IETF Opus codec now ready for testing
Reply #463
Hi all,

First post here at Hydrogen Audio Forums
I've been reading the manpages for opusenc, but don't understand how to create multichannel opusfiles. I have 8 wavs that I would like, as a test convert to an 8 channel opus. Can this be done, or have I misunderstood?

thanks

  • jensend
  • [*][*][*]
IETF Opus codec now ready for testing
Reply #464
I've been reading the manpages for opusenc, but don't understand how to create multichannel opusfiles.
No special method is required; wav files contain sufficient information about the channels for opusenc to just go ahead and encode it like any other file.

(If you're noticing the things in the manpage about multichannel, those are there so people who are encoding from raw audio can supply the channel information themselves.)

IETF Opus codec now ready for testing
Reply #465
BTW how big is speed gain for AVX build?


About 5-10% (which is actually unexpectedly large). Some benchmarks have been done (ex. Phoronix), but only on specific benchmarks. Obviously, floating point arithmetic sees the largest benefit, but compilers (icc, gcc) can optimize code significantly using these new instructions for all sorts of low-level optimizations.

Here's an SSE build with AVX "soft tuning" and other tweaks (plus sync to recent head). This only yields a maximum of 7% performance increase on my AVX machine since last build posted. I've measured a healthy speedup on non-AVX Intel Nehalem, and even Phenom II (AMD). But since it only requires SSE (the first) it should work perfectly down to 1999's Pentium 3 (or 2001's Athlon XP).

Some fat trimming occurs as a side effect. Latest HEAD as of this post (tiny stack tweaks, mostly to decoder).
Copy Restriction, Annulment, & Protection = C.R.A.P. -Supacon

IETF Opus codec now ready for testing
Reply #466
Intel i7-3770 / AsRock B75 Pro3 / 16Gb DDRIII-1333 / Windows 7 Home Premium

opusenc --bitrate 24 --vbr --comp 10 --downmix-mono --framesize 40  test.wav test.opus

1. opus-tools-0.1.5-win32> 52.07x
2. opus_tools_11_7_2012> 45.78x
3. opus_tools_11_1_2012> 45.01x
4. opus_20121103\Release64> 44.26x
5. opus_20121103\Release32> 40.85x
6. opus-tools-0.1.5-Cygwin5_sl2_121022_04-25> 35.89x

IETF Opus codec now ready for testing
Reply #467
Intel i7-3770 / AsRock B75 Pro3 / 16Gb DDRIII-1333 / Windows 7 Home Premium

opusenc --bitrate 24 --vbr --comp 10 --downmix-mono --framesize 40  test.wav test.opus

1. opus-tools-0.1.5-win32> 52.07x
2. opus_tools_11_7_2012> 45.78x
3. opus_tools_11_1_2012> 45.01x
4. opus_20121103\Release64> 44.26x
5. opus_20121103\Release32> 40.85x
6. opus-tools-0.1.5-Cygwin5_sl2_121022_04-25> 35.89x


Cool, looks good! I wonder if the newer analysis7 branch and whatnot slowed down the code a little. Otherwise, I'm curious as to what xiph used to compile (ICC perhaps?).

Also, are the results similar for you when you tweak the commandline? For instance,
opusenc --bitrate 68 --vbr --comp 10 --framesize 60  test.wav test.opus

I certainly didn't test some of this (mono, bitrates less than 32 or 48, etc). Maybe different behavior is invoked. I suspect it will be similar, but it doesn't hurt to have some verification.
Copy Restriction, Annulment, & Protection = C.R.A.P. -Supacon

IETF Opus codec now ready for testing
Reply #468
Intel i7-3770 / AsRock B75 Pro3 / 16Gb DDRIII-1333 / Windows 7 Home Premium

opusenc --bitrate 68 --vbr --comp 10 --framesize 60 test.wav test.opus

1. opus-tools-0.1.5-win32> 82.99x
2. opus_tools_11_7_2012> 80.47x
3. opus_tools_11_1_2012> 78.1x
4. opus_20121103\Release64> 66.39x
5. opus_20121103\Release32> 57.73x
6. opus-tools-0.1.5-Cygwin5_sl2_121022_04-25> 42.83x

  • Krillo
  • [*]
IETF Opus codec now ready for testing
Reply #469
No special method is required; wav files contain sufficient information about the channels for opusenc to just go ahead and encode it like any other file.

(If you're noticing the things in the manpage about multichannel, those are there so people who are encoding from raw audio can supply the channel information themselves.)

I can't get it to work when I state multiple wav's (8 mono wav's), so if I rephrase my question:
How do I state all the input files? One works fine, but multiple doesn't.

IETF Opus codec now ready for testing
Reply #470
Intel i7-3770 / AsRock B75 Pro3 / 16Gb DDRIII-1333 / Windows 7 Home Premium

opusenc --bitrate 68 --vbr --comp 10 --framesize 60 test.wav test.opus

1. opus-tools-0.1.5-win32> 82.99x
2. opus_tools_11_7_2012> 80.47x
3. opus_tools_11_1_2012> 78.1x
4. opus_20121103\Release64> 66.39x
5. opus_20121103\Release32> 57.73x
6. opus-tools-0.1.5-Cygwin5_sl2_121022_04-25> 42.83x


Good, this is more in line with what I was hoping to see. I should compile the official 0.1.5 snapshot as well for comparison with the official release (otherwise it's apples and oranges comparing two different branches). Thanks again!
Copy Restriction, Annulment, & Protection = C.R.A.P. -Supacon

  • Seren
  • [*][*]
IETF Opus codec now ready for testing
Reply #471
Intel i7-3770 / AsRock B75 Pro3 / 16Gb DDRIII-1333 / Windows 7 Home Premium

opusenc --bitrate 24 --vbr --comp 10 --downmix-mono --framesize 40  test.wav test.opus

1. opus-tools-0.1.5-win32> 52.07x
2. opus_tools_11_7_2012> 45.78x
3. opus_tools_11_1_2012> 45.01x
4. opus_20121103\Release64> 44.26x
5. opus_20121103\Release32> 40.85x
6. opus-tools-0.1.5-Cygwin5_sl2_121022_04-25> 35.89x


Why use --vbr and --comp 10 when they are already the default?
I suspect the official release is ICC since it runs significantly slower than the builds by The Sheep for me.
Also wondering why a i7-3770 is only producing speeds ~2x faster than my Athlon x2 on The Sheeps builds, is it even multithreaded?
  • Last Edit: 07 November, 2012, 06:59:13 AM by Seren

IETF Opus codec now ready for testing
Reply #472
Why use --vbr and --comp 10 when they are already the default?

I don't know, but sometimes users like 'guarantees' in case defaults change. But just in case, it's good you pointed that out.

Quote
I suspect the official release is ICC since it runs significantly slower than the builds by The Sheep for me.

Mystery (if you could call it that) solved then, I guess! The question becomes whether mine is actually faster than ICC on the same hardware for the current snapshot. A large number of additional analyses were added since 0.1.5 -- new models, tunings, power functions, more compares in general. Tonality, pitch, VBR model, training, leakage prevention, transient detection, probability model, etc... all have been added to, tweaked, or revamped. Hence the apples and oranges comparison of 11-7-2012 with 0.1.5 in terms of speed -- a 3% difference in encoding speed means little in light of these changes. More testing is required.

Quote
Also wondering why a i7-3770 is only producing speeds ~2x faster than my Athlon x2 on The Sheeps builds, is it even multithreaded?

Nope, it's not multithreaded. Best practice for audio codecs is to parallelize them; foobar2000 does this by default.

Copy Restriction, Annulment, & Protection = C.R.A.P. -Supacon

IETF Opus codec now ready for testing
Reply #473
And test on the censored newest OS

Intel i7-3770 / AsRock B75 Pro3 / 16Gb DDRIII-1333 / Windows 8 Pro

opusenc --bitrate 68 --vbr --comp 10 --framesize 60 test.wav test.opus

1. opus-tools-0.1.5-win32> 85.66x
2. opus_tools_11_7_2012> 80.47x

  • eahm
  • [*][*][*][*][*]
IETF Opus codec now ready for testing
Reply #474
i7-2770k / ASUS P8H77-M PRO / 8GB DDR3-1333 / Windows 8 Pro 64-bit

"opusenc file.wav file.opus"

> opus-tools-0.1.5-win32 (from http://www.opus-codec.org/downloads/): 69x

> opus-tools-0.1.5-win32_SSE (from http://www.rarewares.org/opus.php): 60.38x

> opus_tools_11_7_2012 (from http://www.hydrogenaudio.org/forums/index....&p=813492): 69x
  • Last Edit: 07 November, 2012, 01:12:54 PM by eahm