[FFmpeg-devel] [Issue 664] [PATCH] Fix AAC PNS Scaling

Alex Converse alex.converse
Tue Oct 21 19:29:25 CEST 2008


On Tue, Sep 30, 2008 at 11:25 PM, Alex Converse <alex.converse at gmail.com> wrote:
> Hi,
>
> The attached patch should fix AAC PNS scaling [Issue 664]. It will not
> fix PNS conformance.
>

Here is my understanding of the current situation:
1) PNS is part of the MPEG-4 AAC-LC object type
2) PNS is part of the most commonly used family of 14496-3sp4
profiles, the AAC family of profiles (the AAC profile, the HE-AAC, and
the HE-AACv2 profile)
3) PNS is *broken* in FFMPEG svn [Issue 664], *regardless of per band scaling*
4) (For better or worse) PNS requires per band scaling in the latest
standard (ISO/IEC 14496-3:2005)
5) PNS is a low bitrate tool
(<http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=34652&view=findpost&p=305762>,
<http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=53340&view=findpost&p=478068>)
6) ffaac is enabled by default in FFmpeg

It seems counterproductive to let this broken situation remain while
arguing the merits of square roots and other normalization schemes.

I propose we:
A) Fix PNS using one sqrtf() per band (aac-pns-scale-v3.diff)
B) People interesting in a non-inner-most-loop optimal 1/sqrt can duke
it out afterwards. Alternative normalization schemes (like
pregenerating noise) can also be explored by interested parties

This will allow users to immediately stop using broken PNS
accidentally (6,1, 2, 3) while the computational hit of one sqrtf per
band (A) should be mitigated by the decreased complexity in decoding a
low bitrate stream (5).

Thoughts?

[...]

--Alex
-------------- next part --------------
A non-text attachment was scrubbed...
Name: aac-pns-scale-v3.diff
Type: text/x-diff
Size: 2123 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20081021/0013382d/attachment.diff>



More information about the ffmpeg-devel mailing list