This patchset attempts to clean up the encoder by moving out the multitude of tables, small helper functions and big functions to separate file, allowing them to be used by files external to the encoder's main two files. The intensity stereo implementation was taken out of the aaccoder file by including those helper functions and tables. The implementation itself received a big update which allows it to both phases for a band by doing a distortion calculation on the coefficients twice. Using this deterministic method results in a big quality improvement and reduces distortions overall, as well as allowing IS to be used with M/S simultaneously for the same band. This is allowed by the specifications however was not done before due to problems calculating the correct phase.
The commits are meant to be applied sequentially and outside the new intensity stereo phase calculation do not change the output and behaviour of the encoder but merely organize it. The first two commits can be applied separately without creating or otherwise changing anything outside of their function scope. Rostislav Pehlivanov (6): aacenc: remove redundant argument from coder functions aacenc: Improve Intensity Stereo phase detection aacenc: Move local encoder specific tables to a separate file aacenc: Move small misc. functions to a separate file aaccoder: Move the quantization function to a separate file aacenc: Move Intensity Stereo search functions to a new file libavcodec/Makefile | 4 +- libavcodec/aaccoder.c | 436 +-------------------------------------- libavcodec/aacenc.c | 147 ++----------- libavcodec/aacenc.h | 8 +- libavcodec/aacenc_is.c | 142 +++++++++++++ libavcodec/aacenc_is.h | 46 +++++ libavcodec/aacenc_quantization.h | 245 ++++++++++++++++++++++ libavcodec/aacenc_utils.h | 143 +++++++++++++ libavcodec/aacenctab.c | 108 ++++++++++ libavcodec/aacenctab.h | 100 +++++++++ 10 files changed, 810 insertions(+), 569 deletions(-) create mode 100644 libavcodec/aacenc_is.c create mode 100644 libavcodec/aacenc_is.h create mode 100644 libavcodec/aacenc_quantization.h create mode 100644 libavcodec/aacenc_utils.h create mode 100644 libavcodec/aacenctab.c create mode 100644 libavcodec/aacenctab.h -- 2.5.0.rc2.392.g76e840b _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel