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

Michael Niedermayer michaelni
Wed Oct 8 02:55:32 CEST 2008


On Tue, Oct 07, 2008 at 05:23:56PM -0400, Alex Converse wrote:
> On Tue, Oct 7, 2008 at 5:01 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
> > On Tue, Oct 07, 2008 at 04:40:20PM -0400, Alex Converse wrote:
> >> On Tue, Oct 7, 2008 at 4:27 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
> >> > On Tue, Oct 07, 2008 at 03:23:50PM -0400, Alex Converse wrote:
> >> >> On Tue, Oct 7, 2008 at 1:01 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
> >> >> > On Mon, Oct 06, 2008 at 11:30:56PM -0400, Alex Converse wrote:
> >> >> >> On Mon, Oct 6, 2008 at 10:20 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
> >> >> >> > On Mon, Oct 06, 2008 at 09:52:51PM -0400, Alex Converse wrote:
> >> >> >> >> On Mon, Oct 6, 2008 at 9:39 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
[...]
> >> >> I'm using the Carmack-Lomont 1/sqrtf based on the following benchmark:
> >> >>
> >> >> With math.h sqrtf
> >> >> alex at Barcelona:~/Projects/ffmpeg/14496-4$ ../ffmpeg/ffmpeg -i
> >> >> mpeg4audio-conformance/compressedMp4/al18_48.mp4 -f null -
> >> >> FFmpeg version SVN-r15584, Copyright (c) 2000-2008 Fabrice Bellard, et al.
> >> >>   configuration: --enable-gpl
> >> >>   libavutil     49.11. 0 / 49.11. 0
> >> >>   libavcodec    52. 0. 0 / 52. 0. 0
> >> >>   libavformat   52.22. 1 / 52.22. 1
> >> >>   libavdevice   52. 1. 0 / 52. 1. 0
> >> >>   built on Oct  7 2008 14:26:51, gcc: 4.3.2
> >> >> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
> >> >> 'mpeg4audio-conformance/compressedMp4/al18_48.mp4':
> >> >>   Duration: 00:01:00.01, start: 0.000000, bitrate: 67 kb/s
> >> >>     Stream #0.0(und): Audio: aac, 48000 Hz, mono, s16
> >> >> Output #0, null, to 'pipe:':
> >> >>     Stream #0.0(und): Audio: pcm_s16le, 48000 Hz, mono, s16, 768 kb/s
> >> >> Stream mapping:
> >> >>   Stream #0.0 -> #0.0
> >> >> Press [q] to stop encoding
> >> >> 253170 dezicycles in sqrtf, 1 runs, 0 skips
> >> >> 245160 dezicycles in sqrtf, 2 runs, 0 skips
> >> >> 240997 dezicycles in sqrtf, 4 runs, 0 skips
> >> >> 238050 dezicycles in sqrtf, 8 runs, 0 skips
> >> >> 236553 dezicycles in sqrtf, 16 runs, 0 skips
> >> >> 235676 dezicycles in sqrtf, 32 runs, 0 skips
> >> >> 234884 dezicycles in sqrtf, 64 runs, 0 skips
> >> >> 234129 dezicycles in sqrtf, 128 runs, 0 skips
> >> >> 234115 dezicycles in sqrtf, 256 runs, 0 skips
> >> >> 234366 dezicycles in sqrtf, 512 runs, 0 skips
> >> >> 233892 dezicycles in sqrtf, 1024 runs, 0 skips
> >> >> 233624 dezicycles in sqrtf, 2047 runs, 1 skips
> >> >> size=      -0kB time=59.99 bitrate=  -0.0kbits/s
> >> >> video:0kB audio:5624kB global headers:0kB muxing overhead -100.000382%
> >> >>
> >> >> With Carmack-Lomont
> >> >> alex at Barcelona:~/Projects/ffmpeg/14496-4$ ../ffmpeg/ffmpeg -i
> >> >> mpeg4audio-conformance/compressedMp4/al18_48.mp4 -f null -
> >> >> FFmpeg version SVN-r15584, Copyright (c) 2000-2008 Fabrice Bellard, et al.
> >> >>   configuration: --enable-gpl
> >> >>   libavutil     49.11. 0 / 49.11. 0
> >> >>   libavcodec    52. 0. 0 / 52. 0. 0
> >> >>   libavformat   52.22. 1 / 52.22. 1
> >> >>   libavdevice   52. 1. 0 / 52. 1. 0
> >> >>   built on Oct  7 2008 14:26:51, gcc: 4.3.2
> >> >> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
> >> >> 'mpeg4audio-conformance/compressedMp4/al18_48.mp4':
> >> >>   Duration: 00:01:00.01, start: 0.000000, bitrate: 67 kb/s
> >> >>     Stream #0.0(und): Audio: aac, 48000 Hz, mono, s16
> >> >> Output #0, null, to 'pipe:':
> >> >>     Stream #0.0(und): Audio: pcm_s16le, 48000 Hz, mono, s16, 768 kb/s
> >> >> Stream mapping:
> >> >>   Stream #0.0 -> #0.0
> >> >> Press [q] to stop encoding
> >> >> 197190 dezicycles in sqrtf, 1 runs, 0 skips
> >> >> 190665 dezicycles in sqrtf, 2 runs, 0 skips
> >> >> 187807 dezicycles in sqrtf, 4 runs, 0 skips
> >> >> 185737 dezicycles in sqrtf, 8 runs, 0 skips
> >> >> 184651 dezicycles in sqrtf, 16 runs, 0 skips
> >> >> 184255 dezicycles in sqrtf, 32 runs, 0 skips
> >> >> 183868 dezicycles in sqrtf, 64 runs, 0 skips
> >> >> 183976 dezicycles in sqrtf, 128 runs, 0 skips
> >> >> 183913 dezicycles in sqrtf, 256 runs, 0 skips
> >> >> 184199 dezicycles in sqrtf, 511 runs, 1 skips
> >> >> 184037 dezicycles in sqrtf, 1023 runs, 1 skips
> >> >> 183925 dezicycles in sqrtf, 2047 runs, 1 skips
> >> >> size=      -0kB time=59.99 bitrate=  -0.0kbits/s
> >> >> video:0kB audio:5624kB global headers:0kB muxing overhead -100.000382%
> >> >>
> >> >> Intel(R) Core(TM)2 CPU 6600  @ 2.40GHz
> >> >
> >> > please try ff_sqrt() as well

[...]
> Attached is a version that explicitly uses a int32_t.

i will object to this patch until someone posts a speed comparission
between it and ff_sqrt.

Besides this, you are mis-attributing the code, neither carmack nor
lomont are the the original authors of it.
lomont himself attributes the code to carmack, his own modification
with a different constant isnt used in your patch.
and carmack denies being the author at
http://www.beyond3d.com/content/articles/8/

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Old school: Use the lowest level language in which you can solve the problem
            conveniently.
New school: Use the highest level language in which the latest supercomputer
            can solve the problem without the user falling asleep waiting.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20081008/24c055f9/attachment.pgp>



More information about the ffmpeg-devel mailing list