IPB

Welcome Guest ( Log In | Register )

23 Pages V  < 1 2 3 4 > »   
Closed TopicStart new topic
IETF Opus codec now ready for testing, That's CELT 0.11
bawjaws
post May 21 2012, 14:38
Post #26





Group: Members
Posts: 173
Joined: 10-December 02
Member No.: 4043



QUOTE (polemon @ May 4 2012, 06:42) *
Can we have some updates about OPUS? there isn't much info on the opus-code.org page. In fact, it seems pretty stagnant. Maybe on a technology readiness level or something?

The last thing I've seen was the presentation about OPUS. I was looking through the IETF website (some links seem dead from the tread post), but even there seems to be close to no changes.

The only sign of changes and therefore activity, was the change date of this document: http://datatracker.ietf.org/doc/draft-ietf-codec-opus/
On the history table ( http://datatracker.ietf.org/doc/draft-ietf...c-opus/history/ ) it seems, the codec is somewhat in an idle state, waiting for approval from other departments.

The reason why I'm asking about updates, is because there is very little discussions going on about using OPUS being used as archiving codec. I know the codec is designed to be an interactive codec, for VoIP and the likes, but the presentation that I've been watching, suggested that it is also very capable of creating transparent results at lower bitrates than Vorbis is even AAC. So, does OPUS make sense as archiving codec for music collections? I haven't found any documents discussing this.


I think the main developers are focused on getting it published by the IETF so it's all about getting the spec documentation polished up. But because they are at that stage I also believe this means the decoder is 99.9% done and isn't going to change.

The encoder on the other hand, is designed to be improvable even after the decoder is fixed, so I'd guess you might soon see further improvements around the time the spec gets publicised as "done", either because of renewed external interest or because the main developers have more time to work on that side of things.

But I'd guess, at least at first, they'll be aiming for the areas where Opus is fairly unique and has big advantages and building on that, rather than spending time taking on MP3 and AAC on their home turf. I'd guess any improvement in that domain will most likely be a by-product of other work.
Go to the top of the page
+Quote Post
IgorC
post May 21 2012, 21:16
Post #27





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



Yes, encoder has a big room for improvements.
Some ABC/HR results for experimental branch (exp4) at 64 kbps http://git.xiph.org/?p=opus.git;a=shortlog.../heads/exp_wip4

CELT 0.11.2 - 3.08
exp4 (20120503) - 3.22



CODE
CELT_0.11.2 exp4
2,0 3,2
1,1 3,0
4,7 3,7
3,8 2,8
3,4 3,2
2,7 2,8
3,4 4,0
2,5 4,5
2,9 4,0
3,7 3,7
2,3 3,2
3,5 2,8
3,0 2,7
3,3 3,0
4,3 4,0
3,3 2,5
1,5 3,2
3,0 3,2
2,7 3,0
3,4 3,0
4,0 3,8
3,6 2,8
3,6 2,7
4,0 2,8
3,0 3,0
1,0 2,7
3,5 3,5
2,0 3,7
3,2 2,7
4,0 3,4
Mean
3,08 3,22


This post has been edited by db1989: May 22 2012, 16:29
Reason for edit: changing [code] to [codebox], and table’s tabs to spaces for proper alignment
Go to the top of the page
+Quote Post
2012
post May 22 2012, 12:26
Post #28





Group: Members
Posts: 63
Joined: 7-February 12
Member No.: 96993



Indivisual/Average bitrates would have been great so we can have the full picture.

This post has been edited by db1989: May 22 2012, 16:10
Reason for edit: removing unnecessary quote
Go to the top of the page
+Quote Post
IgorC
post May 22 2012, 14:05
Post #29





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



Bitrate calibration was done on 45 tracks of different musical genres.
Encoder - Settings - Average bitrate:
CELT 0.11.2 - complexity 10, VBR 67.5 kbps - 66.3 kbps
Exp4 - complexity 10, VBR 61 kbps - 66.7 kbps


Average bitrate on tested samples:
CELT 0.11.2 - 66.6 kbps
exp4 - 66.9 kbps


All 30 tested original samples were concatenated into one file and resampled by SSRC resampler with highest quality settings (Ultra mode) 44.1 kHz -> 48 kHz. Then these files (48 kHz) were encoded by tested encoders.
If You want to reproduce an individial bitrates You can get original files from here http://www.hydrogenaudio.org/forums/index....st&p=749742

This post has been edited by IgorC: May 22 2012, 14:08
Go to the top of the page
+Quote Post
2012
post May 22 2012, 15:00
Post #30





Group: Members
Posts: 63
Joined: 7-February 12
Member No.: 96993



Thanks.

This post has been edited by db1989: May 22 2012, 16:10
Reason for edit: removing pointless full quote
Go to the top of the page
+Quote Post
NullC
post May 24 2012, 04:49
Post #31





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



QUOTE (polemon @ May 4 2012, 06:42) *
Can we have some updates about OPUS? there isn't much info on the opus-code.org page. In fact, it seems pretty stagnant. Maybe on a technology readiness level or something?
The last thing I've seen was the presentation about OPUS. I was looking through the IETF website (some links seem dead from the tread post), but even there seems to be close to no changes.
[...]
The reason why I'm asking about updates, is because there is very little discussions going on about using OPUS being used as archiving codec. I know the codec is designed to be an interactive codec, for VoIP and the likes, but the presentation that I've been watching, suggested that it is also very capable of creating transparent results at lower bitrates than Vorbis is even AAC. So, does OPUS make sense as archiving codec for music collections? I haven't found any documents discussing this.


First— You're aware of http://opus-codec.org/ Right?

You're correct that the main focus right now is on getting the standard published, so most commits are related to that.

There is an experimental branch with some pretty substantial (see posts above by IgorC) encoder perceptual enhancements— mostly serving the purpose of actually taking advantage of VBR... but other than fixing some regressions not a lot has happened with it lately. Right now the Xiph team is splitting resources between Opus and our new video codec work... and just shepherding the format through the IETF is itself a lot of work.

That said— file based usage is absolutely a priority for the time of the 1.0 release (which will happen along with publication of the standard). I've been spending time getting opus-tools, a set of simple command-line tools for encoding/decoding Opus in fixed files, ready for an initial official release— hopefully this coming weekend. I would _really_ appreciate testing and feedback, and if people need windows binaries made for testing, please let me know and I'd be glad to build some.

And the biggest news on this front is that we have support in Firefox, in the audio tag. It's only in the 'nightly' versions now and is preferences off and has a couple bugs, but it generally works great. This means that fairly rapidly after Opus' release the files will be playable on a significant fraction of desktop PCs— the browser is not exactly an ideal audio-player but compatibility is important..

There are a lot of things that need to be done (this list is far from inclusive) for the big 1.0 release, and if Opus interests you please come lend a hand (the easiest way to join in is via the IRC channel that you can reach through the Opus website).

This post has been edited by NullC: May 24 2012, 04:50
Go to the top of the page
+Quote Post
NullC
post May 28 2012, 01:22
Post #32





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



For any Windows users who are waiting on binaries to play around with Opus, I've prepared a binary build of opus-tools.
Feedback would be greatly appreciated. (I'm interested in if "opusdec.exe file.opus" plays audio on real windows systems, or if it only works in wine). I especially want to hear any bug reports or critical missing features.

https://people.xiph.org/~greg/opus-tools.zip

As we approach the official release I'll get automated builds setup for opus and the exp4 tuning branches.

If anyone is interested in building a GUI oggdrop style tool for encoding Opus, perhaps just a GUI front end on opusenc, I think it would be very useful to people— if it's portable to *nix I'll help out (at least with review and testing), but I don't have the time free to drive the development myself.

This post has been edited by NullC: May 28 2012, 01:23
Go to the top of the page
+Quote Post
kode54
post May 28 2012, 02:30
Post #33





Group: Admin
Posts: 4504
Joined: 15-December 02
Member No.: 4082



Plays audio on my Windows 7 system. Also decodes these Opus tracks I encoded back in January, using the exp_wip3 branch, but I guess nothing has been broken since then.
Go to the top of the page
+Quote Post
mdefranc
post May 28 2012, 05:12
Post #34





Group: Members (Donating)
Posts: 49
Joined: 15-October 01
From: Midwest
Member No.: 295



Works on my Vista system, as well. smile.gif
Go to the top of the page
+Quote Post
Gainless
post May 28 2012, 12:53
Post #35





Group: Members
Posts: 169
Joined: 28-October 11
Member No.: 94764



Can someone explain how to use the command line decoder without Foobar? Atm I don't even know how to open the decoder properly in Windows...

Edit: Ok, got to work it right now.

This post has been edited by Gainless: May 28 2012, 13:26
Go to the top of the page
+Quote Post
dr.schanker
post May 28 2012, 15:38
Post #36





Group: Members
Posts: 7
Joined: 27-November 02
From: Berlin, Germany
Member No.: 3900



Works fine under WindowsXP SP3 32bit. However, i found 2 issues:

1) Channel order (multichannel files)
The channel order may be incorrect for multichannel files. Feeding the encoder WAVEFORMAT_PCM (no channelmask) and WAVEFORMAT_EXTENSIBLE (channelmask) makes no difference. I have no idea if this is an encoder or decoder issue, the .wav files were analyzed with Audacity/foobar2000.

Channelnumber - Source WAV - Opus->WAV
1 - FL - FL
2 - FR - FC
3 - FC - FR
4 - LFE - SL
5 - SL - SR
6 - SR - LFE

Example files: Source WAV / Opus / Decoded Opus->WAV / Six mono .wav files for custom testing

2) Piping audio
  • 'opusenc.exe' will crash when encoding from STDIN and the piped wav stream was created by ffmpeg. IIRC ffmpeg uses a value of 0 for the wav size header.
    Example: ffmpeg.exe -i "test.wav" -f wav -|opusenc.exe - "test_pipe_ffmpeg.opus"
    Solution: Most commandline encoder have an option to read to EOF and ignore the size header, this enables support for .wav files larger than 2/4 GB.
  • 'opusenc.exe' will print a lot of 'Skipping chunk...' messages and doesn't create a file if piped audio has more than 2 channels.
    Example: sox.exe "test.wav" -t wav - remix 0 1 0 1|opusenc.exe - "test_pipe_sox.opus"


Go to the top of the page
+Quote Post
naturfreak
post May 28 2012, 16:25
Post #37





Group: Members
Posts: 175
Joined: 16-October 03
Member No.: 9338



@dr. schanker
The Opus codec does not support multichannel audio, only mono and stereo ist supported.
Go to the top of the page
+Quote Post
zerowalker
post May 28 2012, 17:27
Post #38





Group: Members
Posts: 239
Joined: 6-August 11
Member No.: 92828



How can i get a compiled encoder of this codec:)?
Would really like to try it out, as if it´s from the vorbis ppl, i am quite excited of it:)
Go to the top of the page
+Quote Post
dr.schanker
post May 28 2012, 21:11
Post #39





Group: Members
Posts: 7
Joined: 27-November 02
From: Berlin, Germany
Member No.: 3900



QUOTE (naturfreak @ May 28 2012, 17:25) *
@dr. schanker
The Opus codec does not support multichannel audio, only mono and stereo ist supported.

The encoder accepted the linked multichannel .wav just fine. It even checked the channelmask in another testfile (WAVEFORMAT_EXTENSIBLE .wav) and changed channelorder (SL/SR remapped to RL/RR). I understand that mono/stereo has a higher priority and may be more polished codewise, but wanted to point out the multichannel issues anyway.
Go to the top of the page
+Quote Post
NullC
post May 29 2012, 07:49
Post #40





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



QUOTE (naturfreak @ May 28 2012, 08:25) *
@dr. schanker
The Opus codec does not support multichannel audio, only mono and stereo ist supported.


Multichannel absolutely is supported.

I'll take care of the encoder issues that Dr. schanker found— I'd hoped to avoid issues with wav reading by using the oggenc input code, and stdin does work and has been extensively tested— in the two channel case. smile.gif Edit: Can you get me your test.wav, as well as the output of the ffmpeg pipe redirected to a file? I'm unable to reproduce the issue piping from ffmpeg here. Works fine for me.

Opusdec's multichannel order absolutely is broken, known limitation at the moment. I was hoping someone to change the output in opusdec to use libao and so I didn't touch it— but that hasn't happened in time, as I really needed to get something in people's hands. Thank you so much for the feedback.

QUOTE (zerowalker @ May 28 2012, 09:27) *
How can i get a compiled encoder of this codec:)?
Would really like to try it out, as if it´s from the vorbis ppl, i am quite excited of it:)


It's linked above— https://people.xiph.org/~greg/opus-tools.zip

This post has been edited by NullC: May 29 2012, 08:04
Go to the top of the page
+Quote Post
naturfreak
post May 29 2012, 10:38
Post #41





Group: Members
Posts: 175
Joined: 16-October 03
Member No.: 9338



QUOTE (NullC @ May 29 2012, 07:49) *
Multichannel absolutely is supported.

Hmm. Ok. (But) I haven't seen a word about multichannel audio in the specification doc of Opus. Only mono and stereo are mentioned there.
Go to the top of the page
+Quote Post
bawjaws
post May 29 2012, 10:42
Post #42





Group: Members
Posts: 173
Joined: 10-December 02
Member No.: 4043



QUOTE (NullC @ May 27 2012, 17:22) *
If anyone is interested in building a GUI oggdrop style tool for encoding Opus, perhaps just a GUI front end on opusenc, I think it would be very useful to people— if it's portable to *nix I'll help out (at least with review and testing), but I don't have the time free to drive the development myself.


As Firefox can encode Opus (at least I assume it will soon for WebRTC uses), and decode WAV (and Ogg), and supports drag and drop of files, you might cover a fair bit of ground with a (relatively) simple Firefox extension (or even a webpage?). There's also the example of the Firefogg extension, but I think that includes ffmpeg for decoding various formats which makes it a bit more ambitious.

Integrating Javascript decoders for FLAC and ALAC would also score extra cool points.

This post has been edited by bawjaws: May 29 2012, 10:48
Go to the top of the page
+Quote Post
dr.schanker
post May 29 2012, 20:18
Post #43





Group: Members
Posts: 7
Joined: 27-November 02
From: Berlin, Germany
Member No.: 3900



The inputfile: "test_wav.7z" (5 MB)
The piped data: "test_piped_bin.7z" (5 MB)
I used the commandline: ffmpeg.exe -i "test.wav" -f wav - 1>"test_piped.bin"
As suspected, the difference between both is that the piped file has the value 0 for RIFF and Data chunksize.

Bonus content wink.gif : the used ffmpeg binaries "ffmpeg-20120525-git-e02e58f-win32-static.7z" (16 MB) / a screenshot video "opusenc_crash_ffmpeg_pipe.mp4" (1 MB)
Go to the top of the page
+Quote Post
NullC
post May 30 2012, 21:23
Post #44





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



QUOTE (dr.schanker @ May 29 2012, 12:18) *
The inputfile: "test_wav.7z" (5 MB)
The piped data: "test_piped_bin.7z" (5 MB)
I used the commandline: ffmpeg.exe -i "test.wav" -f wav - 1>"test_piped.bin"
As suspected, the difference between both is that the piped file has the value 0 for RIFF and Data chunksize.

Bonus content wink.gif : the used ffmpeg binaries "ffmpeg-20120525-git-e02e58f-win32-static.7z" (16 MB) / a screenshot video "opusenc_crash_ffmpeg_pipe.mp4" (1 MB)


I take it if you type test_piped.bin | ./opueenc.exe - output.opus that works okay for you?

The closest I can come to reproducing is running with
wine /tmp/bin/ffmpeg.exe -i "test.wav" -f wav - | wine ./opusenc.exe - /dev/null
which results in opusenc sleeping forever on an fread().

May just be some kind of brokenness with pipes in windows that I'm clueless about.
Go to the top of the page
+Quote Post
zerowalker
post May 30 2012, 22:17
Post #45





Group: Members
Posts: 239
Joined: 6-August 11
Member No.: 92828



did som fast tests after finally getting it to work.
I tried using a Mono recording from a microphone, as -2 Q with ogg vorbis Autov, and 30 bitrate comp 10 on CELT.

I am sure this isn´t the way to test it, but anyway, the Autov version of ogg atleast, won pretty nice, and they both are pretty much the same file size:)

Just a quick test by a beginner, so not telling any facts on the codecs here.
Go to the top of the page
+Quote Post
rt87
post May 31 2012, 05:13
Post #46





Group: Members
Posts: 89
Joined: 28-October 03
Member No.: 9505



a rough test is done here:

test file: vocal only song ("20 - P-01s - Tooshi Douka - Vocal Version.flac")
target bitrate: 44100Hz 48kbps 2ch

convert to wav first (like the upper posts, I'm getting APPCRASH when piping from avconv to opusenc)
CODE
I:\>avconv -i 20.flac -f wav 20.wav
avconv version v0.8-1900-g0fcf301, Copyright (c) 2000-2012 the Libav developers
  built on May 31 2012 09:22:52 with gcc 4.6.2
Input #0, flac, from '20.flac':
  Duration: 00:01:03.42, start: 0.000000, bitrate: 718 kb/s
    Stream #0.0: Audio: flac, 44100 Hz, stereo, s16
Output #0, wav, to '20.wav':
    Stream #0.0: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (ape -> pcm_s16le)
Press ctrl-c to stop encoding
packet size is not a multiple of 4. extra bytes at the end will be skipped.
size=   10938kB time=70.08 bitrate=1278.6kbits/s
video:0kB audio:10938kB global headers:0kB muxing overhead 0.000411%


Ogg Vorbis avTuV b6.02 at same bitrate for reference:
CODE
I:\>oggenc2 -b 48 20.wav
Opening with wav module: WAV file reader
        [ 99.7%] [ 0m00s remaining] \

Done encoding file "20.ogg"

        File length:  1m 03.0s
        Elapsed time: 0m 01.0s
        Rate:         63.4933
        Average bitrate: 38.4 kb/s


Opus (CELT) command line:
CODE
I:\>opusenc --music --bitrate 48 --framesize 60 20.wav 20.opus
Encoding using libopus 0.9.11-66-g64c2dd7 (audio)
-----------------------------------------------------
   Input: 44.1kHz 2 channels
  Output: 2 channels (2 coupled)
          60ms packets, 48kbit/sec VBR
Preskip: 356

Encoding complete
-----------------------------------------------------
    Encoded: 1 minute and 3.54 seconds
    Runtime: 2.563 seconds
             (24.8x realtime)
      Wrote: 357387 bytes, 1059 packets, 69 pages
    Bitrate: 44.4888kbit/s (without overhead)
Rate range: 1.06667kbit/s to 72.6667kbit/s
             (8 to 545 bytes per packet)
   Overhead: 1.13% (container+metadata)


When I play 20.opus with opusdec, I can hear some spark sound in the output.
And since there is no good equipment here, the vorbis reference is near transplant to me. rolleyes.gif

This post has been edited by rt87: May 31 2012, 05:14


--------------------
Sorry for my English.
Go to the top of the page
+Quote Post
LithosZA
post May 31 2012, 08:15
Post #47





Group: Members
Posts: 182
Joined: 26-February 11
Member No.: 88525



QUOTE
I:\>opusenc --music --bitrate 48 --framesize 60 20.wav 20.opus


I might be wrong, but isn't the max framesize for CELT mode 20ms?

>20ms will be SILK mode I think.
Go to the top of the page
+Quote Post
rt87
post May 31 2012, 08:29
Post #48





Group: Members
Posts: 89
Joined: 28-October 03
Member No.: 9505



QUOTE (LithosZA @ May 31 2012, 15:15) *
QUOTE
I:\>opusenc --music --bitrate 48 --framesize 60 20.wav 20.opus


I might be wrong, but isn't the max framesize for CELT mode 20ms?

>20ms will be SILK mode I think.

OK I retry with --framesize 20 then, but same spark sound appears in same position.

CODE
I:\>opusenc --music --bitrate 48 --framesize 20 20.wav 20.opus
Encoding using libopus 0.9.11-66-g64c2dd7 (audio)
-----------------------------------------------------
   Input: 44.1kHz 2 channels
  Output: 2 channels (2 coupled)
          20ms packets, 48kbit/sec VBR
Preskip: 356

Encoding complete
-----------------------------------------------------
    Encoded: 1 minute and 3.52 seconds
    Runtime: 3.266 seconds
             (19.45x realtime)
      Wrote: 357503 bytes, 3176 packets, 66 pages
    Bitrate: 44.3879kbit/s (without overhead)
Rate range: 1.2kbit/s to 81.2kbit/s
             (3 to 203 bytes per packet)
   Overhead: 1.42% (container+metadata)


This post has been edited by rt87: May 31 2012, 08:41


--------------------
Sorry for my English.
Go to the top of the page
+Quote Post
LithosZA
post May 31 2012, 08:33
Post #49





Group: Members
Posts: 182
Joined: 26-February 11
Member No.: 88525



QUOTE
did som fast tests after finally getting it to work.
I tried using a Mono recording from a microphone, as -2 Q with ogg vorbis Autov, and 30 bitrate comp 10 on CELT.

I am sure this isn´t the way to test it, but anyway, the Autov version of ogg atleast, won pretty nice, and they both are pretty much the same file size:)

Just a quick test by a beginner, so not telling any facts on the codecs here.


If it just was speech then you should try using --speech --framesize 60
Go to the top of the page
+Quote Post
zerowalker
post May 31 2012, 17:18
Post #50





Group: Members
Posts: 239
Joined: 6-August 11
Member No.: 92828



QUOTE (LithosZA @ May 31 2012, 09:33) *
QUOTE
did som fast tests after finally getting it to work.
I tried using a Mono recording from a microphone, as -2 Q with ogg vorbis Autov, and 30 bitrate comp 10 on CELT.

I am sure this isn´t the way to test it, but anyway, the Autov version of ogg atleast, won pretty nice, and they both are pretty much the same file size:)

Just a quick test by a beginner, so not telling any facts on the codecs here.


If it just was speech then you should try using --speech --framesize 60



--speech doesn´t exist, and with framesize 60 it doesn´t encode.


Options:
--bitrate n Encoding bit-rate in kbit/sec
--cbr Use constant bitrate encoding
--comp n Encoding complexity (0-10)
--framesize n Frame size (Default: 960)
--noltp Do not use long-term prediction
--independent Encode frames independently (implies noltp)
--skeleton Outputs ogg skeleton metadata (may cause incompatibilities)
--comment Add the given string as an extra comment. This may be
used multiple times
--author Author of this track
--title Title for this track
-h, --help This help
-v, --version Version information
-V Verbose mode (show bit-rate)
Raw input options:
--rate n Sampling rate for raw input
--mono Consider raw input as mono
--stereo Consider raw input as stereo
--le Raw input is little-endian
--be Raw input is big-endian
--8bit Raw input is 8-bit unsigned
--16bit Raw input is 16-bit signed
Default raw PCM input is 48kHz, 16-bit, little-endian, stereo


This post has been edited by zerowalker: May 31 2012, 17:22
Go to the top of the page
+Quote Post

23 Pages V  < 1 2 3 4 > » 
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: 24th April 2014 - 02:12