[Ffmpeg-devel] [PATCH][RFC] ac3 decoder

Benjamin Larsson banan
Mon Sep 25 17:55:46 CEST 2006


Loren Merritt skrev:
> On Sat, 23 Sep 2006, Michael Niedermayer wrote:
>>
>> could you (or someone else) provide
>> 1. a benchmark of it and liba52 (both with mmx/sse optims enabled and
>>   disabled)
>> 2. lines of code / bytes of both decoder source
>> 3. compiled object sizes (and run strip over both)
>> 4. max and mse difference between liba52 and soc_ac3 output or if
>>   available against some reference decoder with reference bitstreams
>
> versions tested:
> a52: liba52 as present in ffmpeg svn
> a52mp: liba52 as present in mplayer svn
> soc: Kartikey's codec, including the attached patch to enable simd mdct
>
> test content: the audio track of The Matrix. AC3 stereo 192kbps 8179sec.
> cpu: Athlon64 2.2GHz
>
> decoding time (mean and stddev of 10 runs):
> 27.448 \pm .012  sse_a52mp
> 28.076 \pm .008  c_a52
> 28.657 \pm .009  sse_soc
> 35.132 \pm .015  c_a52mp
> 36.748 \pm .006  c_soc
>
Those numbers look quite ok to me. Hopefully we can speed it up some 
more with some optimizations from the aften ac3 encoder and maybe a 
faster imdct routine.
>
> bytes
> 22432  ac3_decoder.o
I think there are some tables that the decoder takes from the ac3 parser 
in ffmpeg, it would add a few more bytes.
> 51064  a52dec.o liba52/*.o
> 94672  a52dec.o liba52mp/*.o
>
> pairwise differences:
> psnr:101.06 mse:    0.34 max:   91  c_a52.wav   c_a52mp.wav
> psnr: 78.63 mse:   58.85 max: 6647  c_a52.wav   sse_a52mp.wav
> psnr: 78.66 mse:   58.52 max: 6647  c_a52mp.wav sse_a52mp.wav
> psnr: 53.16 mse:20758.59 max:26788  c_soc.wav   c_a52.wav
> psnr: 53.16 mse:20750.29 max:26788  c_soc.wav   c_a52mp.wav
> psnr: 53.16 mse:20745.67 max:26788  c_soc.wav   sse_a52mp.wav
> psnr:   inf mse:    0.00 max:    0  c_soc.wav   sse_soc.wav
>
> --Loren Merritt
>
My suggestion is to commit the new decoder and keeping liba52 as they 
don't conflict. The current patch let you use liba52 when --enable-gpl 
and --enable-a52 are added to the configure flags. When the native 
decoder features and speed surpasses liba52 we can remove liba52 
support. One more thing is that I think that the code by Kartikey is 
a52/a compliant with liba52 is only a52.

MvH
Benjamin Larsson




More information about the ffmpeg-devel mailing list