IPB

Welcome Guest ( Log In | Register )

IETF Opus codec now ready for testing, That's CELT 0.11
jmvalin
post Feb 4 2011, 17:36
Post #1


Xiph.org Speex developer


Group: Developer
Posts: 473
Joined: 21-August 02
Member No.: 3134



We'd like to announce that the Opus codec is now ready for testing. The bit-stream is now is a "pseudo-freeze", which means that unless a problem is found during testing/review, there are no longer any changes planned. The only exception to this are the SILK-mode FEC and the stereo SILK mode, which should be landing in the next few days. Considering that these are not critical features, we felt like the testing phase could already begin.

You can get the source code in two different ways. There is a release tarball at http://jmvalin.ca/opus/opus-0.9.0.tar.gz . You can also extract the source directly from the I-D ( http://www.ietf.org/id/draft-ietf-codec-opus-02.txt ) with the following command:

cat draft-ietf-codec-opus-02.txt | grep '^\ \ \ ###' |
sed 's/\s\s\s###//' | base64 -d > opus_source.tar.gz

Now the Opus codec supports three mores, one of which is identical to CELT 0.11, which was just released (not announced officially yet).

It would be nice if the HA community could help test this codec. Opus targets a very wide range of bit-rates, from 6 kb/s narrowband speech up to 510 kb/s stereo music. Perhaps a 64-96 kb/s stereo music test would be interesting to do. Anyone would like to help?
Go to the top of the page
+Quote Post
 
Start new topic
Replies
Speckmade
post Nov 28 2011, 03:11
Post #2





Group: Members
Posts: 36
Joined: 15-February 05
Member No.: 19848



QUOTE (FreaqyFrequency @ Nov 27 2011, 04:57) *
I'm hoping that Opus will be used more widely as a VoIP codec (since low latency necessarily means compromising coding efficiency anyway), and that xiph's new brainchild Ghost will be what replaces Vorbis for music archival. So I'd be more okay with Ghost getting the multichannel support over Opus, so long as Ghost comes along, that is.

In fact, Opus is one of the outcomes of the Ghost project - next to Monty's plans that'll maybe stay in a state that may not even be called proper vaporware.
Opus is what we've got, and it's damn good. The compromised quality is speculation - look at the facts: The prototypes clearly beat HE-AAC, less complexity and more efficiency than Vorbis, competitive on a much broader bitrate range, official recommendation as an internet standard, probably it'll also be endorsed by the ITU - and on top of all that the super-low latency, specialised speech mode built-in - what else could I wish for? Also, you can kind of "turn off" the low latency: Have you noticed that you can turn up the block size to almost 60 ms?..

QUOTE (greensdrive @ Nov 27 2011, 16:20) *
a couple days ago, I compiled opusenc/opusdec, and apparently they plan multichannel for Opus. I thought this because of the --bitrate option being "6-256 per-channel". more on target, commit 6dd8086d in users/greg/opus-tools.git says "First cut at working multichannel support".

Given the VoIP background, where monaural audio is still predominant, could it be that "multichannel" means no more than stereo? I've never heard them speak of something beyond...
Go to the top of the page
+Quote Post
NullC
post Dec 1 2011, 04:08
Post #3





Group: Developer
Posts: 200
Joined: 8-July 03
Member No.: 7653



QUOTE (Speckmade @ Nov 27 2011, 18:11) *
Opus is what we've got, and it's damn good. The compromised quality is speculation - look at the facts: The prototypes clearly beat HE-AAC, less complexity and more efficiency than Vorbis, competitive on a much broader bitrate range, official recommendation as an internet standard, probably it'll also be endorsed by the ITU - and on top of all that the super-low latency, specialised speech mode built-in - what else could I wish for? Also, you can kind of "turn off" the low latency: Have you noticed that you can turn up the block size to almost 60 ms?..


I don't know so much about less complexity. In the MDCT modes our encoder is quite low complexity compared to typical codecs for lossy music (e.g. Vorbis / AAC / HE-AAC), yes. For communications purposes you need both an encoder and a decoder, so we've traded a bit there— the decoder is more complex though it needs much less memory, so in practice its easier to implement the decoder on many small devices than Vorbis. (And especially les than the "worst case" vorbis decoder, which needs something like 32mbytes of ram).

Don't hold your breath on an ITU endorsement. The ITU both officially, and via their participants has opposed the process, though perhaps there will be some kind of reversal after the fact. The politics have been extensive and have substantially delayed the finalization of the codec (but thats okay, we put the time to good use squashing bug in the silk stuff)... and perhaps some day I'll get to write a political intrigue novel about all the crazy nonsense that has gone on with people trying their best to block/slow the process.

Turning up the size to 60ms doesn't really matter much except at very low bitrates: It only saves a few bytes from some better prediction and eliminating a bit of overhead.
(and, in fact, there is a bug in the currently released encoder that prevents high bitrates for 40/60ms frames, though the fix which is in my tree should be merged within a few days)

We couldn't have 'real' large frames without doubling the worst case memory usage— and just adding them wouldn't actually help much because of all the other design decisions centered around low latency/small frame sizes. At one point I switched to 2k frames and wasn't able to get it to sound good in a couple hours of twiddling. (And, in fact, at very high rates I've seen some evidence that our 10ms frames may be generally better than the 20ms ones for many signals. Future encoders will likely do smart things with automatic frame size selection)

In any case, the only samples that we seem to really suffer from the small transform size is are highly tonal frames with irregular tonality (e.g. harpsichord). These are rare enough that for unconstrained VBR users (the same people who wouldn't mind a codec with 100ms delay, I assume) we can just detect and boost the rate for these frames. Jean-marc has a branch that does this. The results are quite impressive. I expect the hydrogen audio folks to be quite pleased.

QUOTE
Given the VoIP background, where monaural audio is still predominant, could it be that "multichannel" means no more than stereo? I've never heard them speak of something beyond...


As noted, this is actual surround support. Opus will never be an awesome low-rate surround codec: our coupling model is too limited— and the limits are fundamental. But it's well defined for the sake of being One Codec To Rule Them All. Then again, it seems all the rage in surround coding is this parametric stuff and, personally, I think all the parametric stereo/surround I've heard sounds like crap. I'd prefer mono audio to motion sickness kthnx.

The opus-tools in my repository is fairly raw at this point but I'd like to get it up to initial release grade soon. I'm trying to balance time between working on that and on the codec. It would be helpful to me for some people to try it out and give me feedback. (I know opusdec gets the output channel order wrong, before anyone reports that — I haven't finished the multichannel work there yet).

There is also ffmpeg and gstreamer support in the works. The container support should be final now, but I'm not prepared to call it final until I've done interoperability testing with multiple implementations. If anyone is working on support in applications please join #opus on freenode. (There is a web client on the opus-codec webpage, of course everyone else is welcome too).
Go to the top of the page
+Quote Post
IgorC
post Dec 1 2011, 15:44
Post #4





Group: Members
Posts: 1506
Joined: 3-January 05
From: Argentina, Bs As
Member No.: 18803



Speaking about complexity the things are changing quickly. iPad can play LCAAC during 140 hours or HEAAC v2 during approx. 60 hours. Eventuallty display consumes much more so anyway a user will run out of battery much more faster.

During last 2 years there was a big break trough for energy efficiency. It's not surprise that embedded and mobile devices can handle decoding of OptimFrog slowest mode (HD video, etc).
Go to the top of the page
+Quote Post

Posts in this topic
- jmvalin   IETF Opus codec now ready for testing   Feb 4 2011, 17:36
- - mudlord   Did some testing.... I noticed one particulary bad...   May 5 2011, 11:33
- - mudlord   Peter fixed this, now cant ABX the samples. Issue ...   May 7 2011, 15:01
- - Tom Servo   Sorry for looking like a tool for asking this, but...   Jun 19 2011, 00:46
|- - NullC   QUOTE (Tom Servo @ Jun 18 2011, 16:46) So...   Jul 27 2011, 20:04
- - mudlord   Oh, since your here, did jmvalin add the resampler...   Sep 4 2011, 23:13
- - romor   subscribe?   Sep 4 2011, 23:44
- - mudlord   ah yes, just noticed that, opusenc includes the re...   Sep 5 2011, 12:58
- - FreaqyFrequency   I'll go ahead and bump this thread as well, wh...   Oct 13 2011, 16:04
- - Speckmade   The codec's featureset sounds as if it could b...   Nov 26 2011, 15:05
- - FreaqyFrequency   I'm hoping that Opus will be used more widely ...   Nov 27 2011, 04:57
- - greensdrive   I was under the impression that low latency usuall...   Nov 27 2011, 16:20
- - Speckmade   QUOTE (FreaqyFrequency @ Nov 27 2011, 04...   Nov 28 2011, 03:11
|- - NullC   QUOTE (Speckmade @ Nov 27 2011, 18:11) Op...   Dec 1 2011, 04:08
|- - IgorC   Speaking about complexity the things are changing ...   Dec 1 2011, 15:44
- - greensdrive   QUOTE (Speckmade @ Nov 27 2011, 20:11) co...   Nov 28 2011, 04:46
|- - Speckmade   QUOTE (greensdrive @ Nov 28 2011, 04:46) ...   Dec 1 2011, 01:55
- - punkrockdude   Will the CELT encoder accept 24 bit wav files? I a...   Jan 15 2012, 11:45
- - Caroliano   I saw the IETF draft, and, as expected, the final ...   Jan 20 2012, 05:48
|- - rillian   QUOTE (Caroliano @ Jan 19 2012, 20:48) So...   Jan 23 2012, 23:49
|- - NullC   QUOTE (Caroliano @ Jan 19 2012, 20:48) I ...   Jan 24 2012, 00:28
|- - bawjaws   QUOTE (NullC @ Jan 23 2012, 16:28) The pr...   Mar 16 2012, 14:47
- - .alexander.   CELT/OPUS has been designed before 2/06/12 and I...   Mar 27 2012, 14:14
|- - NullC   QUOTE (.alexander. @ Mar 27 2012, 05:14) ...   Apr 10 2012, 00:29
- - polemon   Can we have some updates about OPUS? there isn...   May 4 2012, 14:42
|- - bawjaws   QUOTE (polemon @ May 4 2012, 06:42) Can w...   May 21 2012, 14:38
|- - NullC   QUOTE (polemon @ May 4 2012, 06:42) Can w...   May 24 2012, 04:49
|- - NullC   For any Windows users who are waiting on binaries ...   May 28 2012, 01:22
|- - mdefranc   Works on my Vista system, as well.   May 28 2012, 05:12
|- - bawjaws   QUOTE (NullC @ May 27 2012, 17:22) If any...   May 29 2012, 10:42
- - IgorC   Yes, encoder has a big room for improvements. Some...   May 21 2012, 21:16
|- - 2012   Indivisual/Average bitrates would have been great ...   May 22 2012, 12:26
- - IgorC   Bitrate calibration was done on 45 tracks of diffe...   May 22 2012, 14:05
|- - 2012   Thanks.   May 22 2012, 15:00
- - kode54   Plays audio on my Windows 7 system. Also decodes t...   May 28 2012, 02:30
- - Gainless   Can someone explain how to use the command line de...   May 28 2012, 12:53
- - dr.schanker   Works fine under WindowsXP SP3 32bit. However, i f...   May 28 2012, 15:38
- - naturfreak   @dr. schanker The Opus codec does not support mult...   May 28 2012, 16:25
|- - dr.schanker   QUOTE (naturfreak @ May 28 2012, 17:25) @...   May 28 2012, 21:11
|- - NullC   QUOTE (naturfreak @ May 28 2012, 08:25) @...   May 29 2012, 07:49
- - zerowalker   How can i get a compiled encoder of this codec:)? ...   May 28 2012, 17:27
- - naturfreak   QUOTE (NullC @ May 29 2012, 07:49) Multic...   May 29 2012, 10:38
- - dr.schanker   The inputfile: "test_wav.7z" (5 MB) The...   May 29 2012, 20:18
|- - NullC   QUOTE (dr.schanker @ May 29 2012, 12:18) ...   May 30 2012, 21:23
- - zerowalker   did som fast tests after finally getting it to wor...   May 30 2012, 22:17
- - rt87   a rough test is done here: test file: vocal only ...   May 31 2012, 05:13
- - LithosZA   QUOTE I:\>opusenc --music --bitrate 48 --f...   May 31 2012, 08:15
|- - rt87   QUOTE (LithosZA @ May 31 2012, 15:15) QUO...   May 31 2012, 08:29
- - LithosZA   QUOTE did som fast tests after finally getting it ...   May 31 2012, 08:33
|- - zerowalker   QUOTE (LithosZA @ May 31 2012, 09:33) QUO...   May 31 2012, 17:18
|- - NullC   QUOTE (zerowalker @ May 31 2012, 09:18) O...   Jun 1 2012, 04:28
- - LithosZA   QUOTE It's linked above— https://people....   May 31 2012, 19:13
|- - zerowalker   Had done something entirely else XD But got it wo...   Jun 1 2012, 00:41
|- - rt87   aoTuV Q -1 is 48kbps.   Jun 1 2012, 00:49
- - punkrockdude   I can't seem to playback an encoded opus file ...   May 31 2012, 20:27
- - LithosZA   QUOTE I can't seem to playback an encoded opus...   May 31 2012, 20:36
|- - punkrockdude   QUOTE (LithosZA @ May 31 2012, 20:36) foo...   May 31 2012, 20:41
|- - kode54   QUOTE (punkrockdude @ May 31 2012, 12:41)...   Jun 1 2012, 03:55
- - CoRoNe   Does Opus have, or will Opus get an option equival...   Jun 1 2012, 23:09
- - Gainless   Already found a sort of bug sample with a loud dis...   Jun 1 2012, 23:31
|- - 2012   QUOTE (Gainless @ Jun 1 2012, 23:31) Alre...   Jun 1 2012, 23:55
|- - 2012   QUOTE (2012 @ Jun 1 2012, 23:55) Opus ope...   Jun 2 2012, 00:08
- - Gainless   QUOTE (2012 @ Jun 2 2012, 00:55) QUOTE (G...   Jun 2 2012, 00:16
|- - NullC   QUOTE (Gainless @ Jun 1 2012, 16:16) Ok, ...   Jun 2 2012, 06:03
|- - 2012   QUOTE (NullC @ Jun 2 2012, 06:03) Based o...   Jun 2 2012, 10:17
|- - Gainless   QUOTE (NullC @ Jun 2 2012, 07:03) QUOTE (...   Jun 2 2012, 12:37
- - lvqcl   upper channel: opusenc --bitrate 128 --framesize 6...   Jun 2 2012, 10:46
|- - NullC   QUOTE (lvqcl @ Jun 2 2012, 02:46) upper c...   Jun 3 2012, 03:02
- - zerowalker   Maybe a stupid question, but can someone say, what...   Jun 3 2012, 02:19
|- - NullC   QUOTE (zerowalker @ Jun 2 2012, 18:19) Ma...   Jun 3 2012, 02:55
|- - zerowalker   QUOTE (NullC @ Jun 3 2012, 03:55) QUOTE (...   Jun 3 2012, 03:08
|- - NullC   QUOTE (zerowalker @ Jun 2 2012, 19:08) Ah...   Jun 3 2012, 04:25
- - NullC   Okay, the fix for the click on the opusdec 44.1kHz...   Jun 3 2012, 04:16
|- - rt87   QUOTE (NullC @ Jun 3 2012, 11:16) Okay, t...   Jun 3 2012, 09:42
|- - NullC   QUOTE (rt87 @ Jun 3 2012, 00:42) Cannot o...   Jun 3 2012, 14:22
- - lvqcl   CODEDecoding 44100 Hz audio (1 channel) Ca...   Jun 3 2012, 10:40
- - IgorC   Opus, AoTuV and Apple AAC at ~ 128 kbps http://d.h...   Jun 3 2012, 18:56
- - bawjaws   I notice the previous blog entry was them testing ...   Jun 3 2012, 21:49
- - darkbyte   Is somebody working on a foobar decoder plugin for...   Jun 5 2012, 16:02
- - greensdrive   not sure if this is a bug or if it's meant to ...   Jun 6 2012, 06:13
|- - NullC   QUOTE (greensdrive @ Jun 5 2012, 22:13) n...   Jun 11 2012, 14:57
- - lvqcl   I have a question about setup_resample() function....   Jun 11 2012, 16:32
|- - NullC   QUOTE (lvqcl @ Jun 11 2012, 08:32) I have...   Jun 11 2012, 16:51
- - lvqcl   get_output_latency() returns rounded value... For...   Jun 11 2012, 17:27
|- - NullC   QUOTE (lvqcl @ Jun 11 2012, 09:27) get_ou...   Jun 11 2012, 19:06
- - greensdrive   this first one doesn't work (I put --vbr just ...   Jun 11 2012, 20:29
|- - NullC   QUOTE (greensdrive @ Jun 11 2012, 12:29) ...   Jun 11 2012, 21:11
- - kode54   foobar2000 sends 0xFFFFFFFF for the length fields ...   Jun 11 2012, 23:42
- - greensdrive   QUOTE (NullC @ Jun 11 2012, 15:11) How lo...   Jun 12 2012, 04:01
|- - NullC   QUOTE (greensdrive @ Jun 11 2012, 19:01) ...   Jun 12 2012, 05:38
- - greensdrive   --ignorelength works like a charm.   Jun 12 2012, 14:47
|- - NullC   QUOTE (greensdrive @ Jun 12 2012, 05:47) ...   Jun 12 2012, 16:17
- - greensdrive   wow. no --ignorelength. no %s. opusenc.exe now ...   Jun 12 2012, 17:26
- - NullC   Just a minor update: The win32 builds of opus-to...   Jun 14 2012, 19:43
- - greensdrive   NullC: not directly related to opus, but it seems...   Jun 14 2012, 20:44
|- - NullC   QUOTE (greensdrive @ Jun 14 2012, 11:44) ...   Jun 14 2012, 21:11
- - Brazil2   Before I run anything, can you explain me why the ...   Jun 15 2012, 09:55
|- - NullC   QUOTE (Brazil2 @ Jun 15 2012, 01:55) Befo...   Jun 15 2012, 21:11
|- - Brazil2   QUOTE (NullC @ Jun 15 2012, 22:11) The Mo...   Jun 16 2012, 17:31
- - NullC   Opus has received the IETF's approval to becom...   Jul 3 2012, 14:21
6 Pages V   1 2 3 > » 


Closed TopicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 20th April 2014 - 14:32