[FFmpeg-cvslog] r12284 - trunk/libavcodec/ac3dec.c

Justin Ruggles justinruggles
Sat Mar 1 15:30:11 CET 2008


Diego Biurrun wrote:
> On Fri, Feb 29, 2008 at 11:48:04PM -0500, Justin Ruggles wrote:
>> jbr wrote:
>>> Log:
>>> Use 24-bit fixed-point transform coefficients until just before MDCT. This
>>> gives 7% faster decoding on average.
>> And obviously a fixed-point MDCT would be even better so we wouldn't
>> have to convert to float just for the MDCT then back to fixed for 16-bit
>> output.  Then we could also change the downmixing and dynamic range
>> scaling to fixed-point as well.
> 
> This obviously brings up the standard question: How well do we perform
> compared to liba52 now?  Is it time to remove liba52 support from
> FFmpeg?

Well, on my machine it varies based on the type of AC3 stream.  Here are
some of my recent results.

stereo:
liba52 0.784s
ffac3  0.756s

5.1->5.1:
liba52 2.900s
ffac3  2.780s

5.1->stereo:
liba52 1.756s
ffac3  2.672s

So obviously the biggest area for improvement is in the downmixing.
Today, I am planning on trying to move the conversion to int16 to before
downmixing and doing the downmix in fixed-point.  I'm not sure if it
will be faster though until I test it out.

Also, I will probably be slowing down the decoding soon.  I'm still
trying to figure out a better way to fix the crashing with
damaged/invalid streams.  I know the problem, and have a solution, but
it would speed the decoding back down to what it was before this last
commit.

So I would not get rid of liba52 just yet.  Right now it's more stable
and (at least on my machine) much faster when downmixing.

-Justin






More information about the ffmpeg-cvslog mailing list