[FFmpeg-devel] [Patch] AAC encoder improvements

Claudio Freire klaussfreire at gmail.com
Wed May 22 17:36:22 CEST 2013


So, I've been keeping working on AAC, and I came to the conclusion
that a new encoder based on a dynamic programming approach, optimizing
rate distortion within bitrate constraints, would be the best choice.

Since this seems rather obvious, mostly because the x_trellis_x
functions seem to already use dynamic programming, I'm wondering if
anyone has already considered and discarded this. Especially since
such an algorithm would be a bit slower than twoloop (not sure by how
much yet).

The cost of a dynamic programming approach should be around Φ(W x Nsfb
x Nsfi), with W x Nsfb ~ 80 and Nsfi ~ 190 under normal circumstances,
and with currently twoloop being around Φ(W x Nsfb x 20). I included
the constants for a finer comparison, obviously.

Independently, with the insight gained while looking into this
RD-optimization approach, I got a few improvements to twoloop that are
worth pursuing. So I'll break it into tiny, manageable and tidy
patches soon. PSNR (tinypsnr) is still lying through its teeth... I'll
see about building a --psy option into it.


More information about the ffmpeg-devel mailing list