Hi Ron,

Thanks for clarifying...

Quoting Ron (2014-10-03 18:28:34)
> On Fri, Oct 03, 2014 at 12:48:18PM +0200, Jonas Smedegaard wrote:
>> libvorbis has a tuning option called "application", with values 
>> "voip", "audio" and "low-delay".
>
> Do you actually have some use case where it's really important to 
> fiddle with that manually?
>
> These were manual overrides that were useful for testing in the early 
> life of the codec, but libopus 1.1 actually has a neural network that 
> analyses the signal in realtime to dynamically make the best selection 
> of tuning parameters.  So most people should never need to specify 
> those, and are likely to get better results if they don't, since most 
> real world audio doesn't fall cleanly into categories like that as far 
> as the codec is concerned, even when a user might think the right 
> choice is "obvious" for what they are encoding.

Seems it is a documented feature of libopus:
http://opus-codec.org/docs/html_api-1.0.1/group__opus__encoder.html

If discouraged and/or obsolete and/or even broken, I guess that should 
be documented (or at the very least silently removed, but I don't see 
why not mention such change).


> But that said ...
>
>> opusenc lack ability to apply this tuning.
>
> I don't believe this is strictly true.  You should still be able to 
> override that using the --set-ctl-int option (along with lots of other 
> arcane options, that really require you to be quite familiar with the 
> codec internals to use them in a way that does more good than harm to 
> the quality of encoding).
>
> Not exposing this control more directly was a deliberate choice for 
> the reasons above aiui.

Ahh - I did see that mysterious option in the man page.

Are you saying it is deliberately kept mysterious?


>> The tuning option is accessible e.g. from libav.
>
> It's quite possible that libav should also no longer encourage people 
> to tweak at this too, though I'm not personally familiar with where 
> and how they allow this.

I guess either clearly documenting the feature or clearly stating that 
it is discouraged and obsolete and irrelevant would help not only 
end-users like me but also library users like libav.

Here's avconv documentation:

$ avconv -h full | grep libopus -A 10
avconv version 11-6:11-1, Copyright (c) 2000-2014 the Libav developers
  built on Sep 13 2014 19:43:14 with gcc 4.9.1 (Debian 4.9.1-13)
libopus AVOptions:
-application       <int>   E..A... Intended application type
   voip                    E..A... Favor improved speech intelligibility
   audio                   E..A... Favor faithfulness to the input
   lowdelay                E..A... Restrict to only the lowest delay modes
-frame_duration    <float> E..A... Duration of a frame in milliseconds
-packet_loss       <int>   E..A... Expected packet loss percentage
-vbr               <int>   E..A... Variable bit rate mode
   off                     E..A... Use constant bit rate
   on                      E..A... Use variable bit rate
   constrained             E..A... Use constrained VBR


> If you have some really compelling need for this we can run that past 
> Greg, but I suspect he'll probably say "use the ctl, or most 
> preferably don't!" unless it's something we've really never thought 
> about before.

My usecase is to compare tools.  I have learned that avconv use of 
libvpx is inferior to using vpxenc directly, and I became curious if 
that was the case for their use of other libraries too.  That's how I 
discovered this feature offered via libav but not opusenc.

Might be that Handbrake and some of the gazillion other transcoding 
wrappers make use of the feature too.


 - Jonas

-- 
 * Jonas Smedegaard - idealist & Internet-arkitekt
 * Tlf.: +45 40843136  Website: http://dr.jones.dk/

 [x] quote me freely  [ ] ask before reusing  [ ] keep private

Attachment: signature.asc
Description: signature

Reply via email to