[FFmpeg-devel] [FFmpeg-devel-irc] IRC log for 2010-03-27

Alex Converse alex.converse
Wed Mar 31 11:16:32 CEST 2010


On Tue, Mar 30, 2010 at 7:40 PM, Baptiste Coudurier
<baptiste.coudurier at gmail.com> wrote:
> On 03/30/2010 09:38 AM, Jason Garrett-Glaser wrote:
>>>
>>> if wma sounds better than aac then there must be a pretty nasty bug in
>>> the
>>> aac encoder
>>
>> More like the entire AAC encoder _is_ a nasty bug.
>>
>
> Would it be possible to spare these useless comments ?
> Instead of randomly throwing crap at people, it would be nice to give a hand
> (ie coding) from time to time.

Basically the current state of the code is as follows. There are
issues with scalefactor/huffman codebook selection. Tuning/replacing a
psymodel is some what futile as long as it's output is just going to
get mangled by the next stage of the encoder (of course this assumes
that the psymodel doesn't have some huge defect that is causing it to
feed garbage to that next stage).

There are four such scalefactor/hcb decision algorithms in the code.
They are as follows:
A) A FAAC inspired method
Pros: As a whole FAAC works better than what we have
Cons: FAAC already has HCB suggestions present for this. The current
architecture doesn't provide that and therefore the FAAC method uses
the ESCAPE codebook as the suggested HCB. In addition the ESCAPE
codebook refuses to code certain small escapes causing the FAAC method
to shit the bed.

B) A Two Loop Search:
Pros: This is well explained in the spec and the 3GPP docs
Cons: It's what the reference encoder uses

C) An ANMR (average noise to mask ratio) trellis based sollution:
Pros: It has the theoretic best quality
Cons: Based on its speed you'd think it was written in Perl and
running on a 286.
This was where most of my mysterious unpushed work on the encoder
lived. Some of my changes include limiting it to a column of 61
scalefactors. (Scalefactors can only change by +/-60 per band, ergo 61
is the widest column where we don't have to worry about the
is-this-navigation-legal question. In addition the above TLS also
limtis us to a 60 scalefactor column.) "Templating" the scale factor
cost calculation for various common scenarios (0, signed quad,
unsigned quad, signed pair, unsigned pair, escape) also brought about
a sizable speed up. In addition the scalefactor search searches two
different rounding methods which seems whole unnecessary. However
removing this seems to make maethod A shit the bed more often.

D) A constant scale factor for all bands
Pros: "Bug" free
Cons: Also feature free, scalefactors exist for a reason.
This is basically the scalefactor selection tool turned off

Now of these methods I'm still not sure which ones deserve saving and
which ones I should send off to Daddy Bender's Honest Orphanarium [1].

[1] http://www.gotfuturama.com/Information/Capsules/3ACV09/



More information about the ffmpeg-devel mailing list