[FFmpeg-devel] Behaviour of liba52 decoder
Måns Rullgård
mans
Thu Jan 10 23:49:36 CET 2008
Michael Niedermayer <michaelni at gmx.at> writes:
> On Thu, Jan 10, 2008 at 06:54:13PM +0000, M?ns Rullg?rd wrote:
>> Michael Niedermayer <michaelni at gmx.at> writes:
>>
>> > On Thu, Jan 10, 2008 at 01:36:31PM -0500, Rich Felker wrote:
>> >> On Thu, Jan 10, 2008 at 06:28:52PM +0000, M?ns Rullg?rd wrote:
>> >> > I'm surprised nobody has mentioned the fact that we now have a native
>> >> > AC3 decoder, so there is no longer any need for the liba52 wrapper.
>> >> > Is there some reason I'm missing why it's still there?
>> >>
>> >> Good question. I'd be happy to see it removed.
>> >
>> > if ours is faster sure remove liba52 support ...
>>
>> Is speed the only deciding factor here? I suppose I could benchmark
>> decoding a DVD or two.
>
> The question is probably if we have volunteers to do more complete testing
> that is
> * .o size
> * memory requirement
> * as already mentioned speed
> * quality (are there specific tests mandated by the ac3 spec?)
> * feature completeness (i assume we are better especially with EAC3 around
> the corner and liba52 being not very actively developed lately AFAIK)
> * error concealment (being mandatory for EAC3 we should be as good or better
> here as well eventually)
>
> Anyway speed tests alone would already be very interresting
> C and SSE of course for both
I did a basic speed test decoding the audio from a couple of DVDs,
naturally first demuxed into a raw AC3 file.
System: Core2 quad 2.66GHz, 4GB DDR2-800
DVD Channels Length ffac3 ffac3-nommx liba52
-------------------------------------------------------------------
The Big Lebowski 5.1 01:52:13.6 42.937s 1m3.019s 57.066s
Lost Highway 2 02:08:51.2 19.785s 27.622s 24.745s
The native decoder appears to be faster for typical use, a bit slower
without SIMD.
Full command lines and output follows.
Liba52
------
$ time /tmp/ffmpeg/ffmpeg -i the_big_lebowski.ac3 -f null -y /dev/null
FFmpeg version git-c206da0, Copyright (c) 2000-2008 Fabrice Bellard, et al.
configuration: --cc=gcc-4.2.2 --cpu=nocona --enable-gpl --enable-liba52
libavutil version: 49.6.0
libavcodec version: 51.49.0
libavformat version: 52.3.0
libavdevice version: 52.0.0
built on Jan 10 2008 20:27:40, gcc: 4.2.2 (Gentoo 4.2.2 p1.0)
Input #0, ac3, from 'the_big_lebowski.ac3':
Duration: 01:52:13.6, bitrate: 448 kb/s
Stream #0.0: Audio: liba52, 48000 Hz, 5:1, 448 kb/s
Output #0, null, to '/dev/null':
Stream #0.0: Audio: pcm_s16le, 48000 Hz, 5:1, 4608 kb/s
Stream mapping:
Stream #0.0 -> #0.0
No accelerated IMDCT transform found
Press [q] to stop encoding
size= -0kB time=6733.6 bitrate= -0.0kbits/s
video:0kB audio:3787650kB global headers:0kB muxing overhead -100.000001%
real 0m57.536s
user 0m57.066s
sys 0m0.423s
$ time /tmp/ffmpeg/ffmpeg -i lost_highway.ac3 -f null -y /dev/null
FFmpeg version git-c206da0, Copyright (c) 2000-2008 Fabrice Bellard, et al.
configuration: --cc=gcc-4.2.2 --cpu=nocona --enable-gpl --enable-liba52
libavutil version: 49.6.0
libavcodec version: 51.49.0
libavformat version: 52.3.0
libavdevice version: 52.0.0
built on Jan 10 2008 20:27:40, gcc: 4.2.2 (Gentoo 4.2.2 p1.0)
Input #0, ac3, from 'lost_highway.ac3':
Duration: 02:08:51.2, bitrate: 224 kb/s
Stream #0.0: Audio: liba52, 48000 Hz, stereo, 224 kb/s
Output #0, null, to '/dev/null':
Stream #0.0: Audio: pcm_s16le, 48000 Hz, stereo, 1536 kb/s
Stream mapping:
Stream #0.0 -> #0.0
No accelerated IMDCT transform found
Press [q] to stop encoding
size= -0kB time=7731.3 bitrate= -0.0kbits/s
video:0kB audio:1449612kB global headers:0kB muxing overhead -100.000001%
real 0m25.208s
user 0m24.745s
sys 0m0.383s
FFAC3
-----
$ time /tmp/ffmpeg/ffmpeg -i the_big_lebowski.ac3 -f null -y /dev/null
FFmpeg version git-c206da0, Copyright (c) 2000-2008 Fabrice Bellard, et al.
configuration: --cc=gcc-4.2.2 --cpu=nocona --enable-gpl
libavutil version: 49.6.0
libavcodec version: 51.49.0
libavformat version: 52.3.0
libavdevice version: 52.0.0
built on Jan 10 2008 22:23:48, gcc: 4.2.2 (Gentoo 4.2.2 p1.0)
Input #0, ac3, from 'the_big_lebowski.ac3':
Duration: 01:52:13.6, bitrate: 448 kb/s
Stream #0.0: Audio: ac3, 48000 Hz, 5:1, 448 kb/s
Output #0, null, to '/dev/null':
Stream #0.0: Audio: pcm_s16le, 48000 Hz, 5:1, 4608 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
size= -0kB time=6733.6 bitrate= -0.0kbits/s
video:0kB audio:3787668kB global headers:0kB muxing overhead -100.000001%
real 0m43.224s
user 0m42.937s
sys 0m0.283s
$ time /tmp/ffmpeg/ffmpeg -i lost_highway.ac3 -f null -y /dev/null
FFmpeg version git-c206da0, Copyright (c) 2000-2008 Fabrice Bellard, et al.
configuration: --cc=gcc-4.2.2 --cpu=nocona --enable-gpl
libavutil version: 49.6.0
libavcodec version: 51.49.0
libavformat version: 52.3.0
libavdevice version: 52.0.0
built on Jan 10 2008 22:23:48, gcc: 4.2.2 (Gentoo 4.2.2 p1.0)
Input #0, ac3, from 'lost_highway.ac3':
Duration: 02:08:51.2, bitrate: 224 kb/s
Stream #0.0: Audio: ac3, 48000 Hz, stereo, 224 kb/s
Output #0, null, to '/dev/null':
Stream #0.0: Audio: pcm_s16le, 48000 Hz, stereo, 1536 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
size= -0kB time=7731.3 bitrate= -0.0kbits/s
video:0kB audio:1449618kB global headers:0kB muxing overhead -100.000001%
real 0m20.075s
user 0m19.785s
sys 0m0.290s
FFAC3-nommx
-----------
$ time /tmp/ffmpeg/ffmpeg -i the_big_lebowski.ac3 -f null -y /dev/null
FFmpeg version git-c206da0, Copyright (c) 2000-2008 Fabrice Bellard, et al.
configuration: --cc=gcc-4.2.2 --cpu=nocona --enable-gpl --disable-mmx --disable-ssse3
libavutil version: 49.6.0
libavcodec version: 51.49.0
libavformat version: 52.3.0
libavdevice version: 52.0.0
built on Jan 10 2008 22:43:50, gcc: 4.2.2 (Gentoo 4.2.2 p1.0)
Input #0, ac3, from 'the_big_lebowski.ac3':
Duration: 01:52:13.6, bitrate: 448 kb/s
Stream #0.0: Audio: ac3, 48000 Hz, 5:1, 448 kb/s
Output #0, null, to '/dev/null':
Stream #0.0: Audio: pcm_s16le, 48000 Hz, 5:1, 4608 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
size= -0kB time=6733.6 bitrate= -0.0kbits/s
video:0kB audio:3787668kB global headers:0kB muxing overhead -100.000001%
real 1m3.231s
user 1m3.019s
sys 0m0.217s
$ time /tmp/ffmpeg/ffmpeg -i lost_highway.ac3 -f null -y /dev/null
FFmpeg version git-c206da0, Copyright (c) 2000-2008 Fabrice Bellard, et al.
configuration: --cc=gcc-4.2.2 --cpu=nocona --enable-gpl --disable-mmx --disable-ssse3
libavutil version: 49.6.0
libavcodec version: 51.49.0
libavformat version: 52.3.0
libavdevice version: 52.0.0
built on Jan 10 2008 22:43:50, gcc: 4.2.2 (Gentoo 4.2.2 p1.0)
Input #0, ac3, from 'lost_highway.ac3':
Duration: 02:08:51.2, bitrate: 224 kb/s
Stream #0.0: Audio: ac3, 48000 Hz, stereo, 224 kb/s
Output #0, null, to '/dev/null':
Stream #0.0: Audio: pcm_s16le, 48000 Hz, stereo, 1536 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
size= -0kB time=7731.3 bitrate= -0.0kbits/s
video:0kB audio:1449618kB global headers:0kB muxing overhead -100.000001%
real 0m27.848s
user 0m27.622s
sys 0m0.220s
--
M?ns Rullg?rd
mans at mansr.com
More information about the ffmpeg-devel
mailing list