• Claudio Freire's avatar
    AAC encoder: refactor to resynchronize MIPS port · 8df9bf8e
    Claudio Freire authored
    This patch refactors the AAC coders to reuse code
    between the MIPS port and the regular, portable C code.
    There were two main functions that had to use
    hand-optimized versions of quantization code:
     - search_for_quantizers_twoloop
     - codebook_trellis_rate
    
    Those two were split into their own template header
    files so they can be inlined inside both the MIPS port
    and the generic code. In each context, they'll link
    to their specialized implementations, and thus be
    optimized by the compiler.
    
    This approach I believe is better than maintaining
    several copies of each function. As past experience has
    proven, having to keep those in sync was error prone.
    In this way, they will remain in sync by default.
    
    Also, an implementation of the dequantized output
    argument for the optimized quantize_and_encode
    functions is included in the patch. While the current
    implementation of search_for_pred still isn't using
    it, future iterations of main prediction probably will.
    It should not imply any measurable performance hit while
    not being used.
    8df9bf8e
Name
Last commit
Last update
compat Loading commit data...
doc Loading commit data...
libavcodec Loading commit data...
libavdevice Loading commit data...
libavfilter Loading commit data...
libavformat Loading commit data...
libavresample Loading commit data...
libavutil Loading commit data...
libpostproc Loading commit data...
libswresample Loading commit data...
libswscale Loading commit data...
presets Loading commit data...
tests Loading commit data...
tools Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
COPYING.GPLv2 Loading commit data...
COPYING.GPLv3 Loading commit data...
COPYING.LGPLv2.1 Loading commit data...
COPYING.LGPLv3 Loading commit data...
CREDITS Loading commit data...
Changelog Loading commit data...
INSTALL.md Loading commit data...
LICENSE.md Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
RELEASE Loading commit data...
arch.mak Loading commit data...
cmdutils.c Loading commit data...
cmdutils.h Loading commit data...
cmdutils_common_opts.h Loading commit data...
cmdutils_opencl.c Loading commit data...
common.mak Loading commit data...
configure Loading commit data...
ffmpeg.c Loading commit data...
ffmpeg.h Loading commit data...
ffmpeg_dxva2.c Loading commit data...
ffmpeg_filter.c Loading commit data...
ffmpeg_opt.c Loading commit data...
ffmpeg_vdpau.c Loading commit data...
ffmpeg_videotoolbox.c Loading commit data...
ffplay.c Loading commit data...
ffprobe.c Loading commit data...
ffserver.c Loading commit data...
ffserver_config.c Loading commit data...
ffserver_config.h Loading commit data...
library.mak Loading commit data...
version.sh Loading commit data...