• Ganesh Ajjanagadde's avatar
    avcodec/aacsbr_tablegen: always initialize tables at runtime · cb93df0d
    Ganesh Ajjanagadde authored
    This gets rid of virtually useless hardcoded tables hackery. The reason
    it is useless is that a 320 element lut is anyway placed regardless of
    --enable-hardcoded-tables, from which all necessary tables are trivially
    derived at runtime at very low cost:
    
    sample benchmark (x86-64, Haswell, GNU/Linux, single run is really
    what is relevant here since looping drastically changes the bench). Fluctuations
    are on the order of 10% for the single run test:
    39400 decicycles in aacsbr_tableinit,       1 runs,      0 skips
    25325 decicycles in aacsbr_tableinit,       2 runs,      0 skips
    18475 decicycles in aacsbr_tableinit,       4 runs,      0 skips
    15008 decicycles in aacsbr_tableinit,       8 runs,      0 skips
    13016 decicycles in aacsbr_tableinit,      16 runs,      0 skips
    12005 decicycles in aacsbr_tableinit,      32 runs,      0 skips
    11546 decicycles in aacsbr_tableinit,      64 runs,      0 skips
    11506 decicycles in aacsbr_tableinit,     128 runs,      0 skips
    11500 decicycles in aacsbr_tableinit,     256 runs,      0 skips
    11183 decicycles in aacsbr_tableinit,     509 runs,      3 skips
    
    Tested with FATE with/without --enable-hardcoded-tables.
    Reviewed-by: 's avatarRostislav Pehlivanov <atomnuker@gmail.com>
    Signed-off-by: 's avatarGanesh Ajjanagadde <gajjanagadde@gmail.com>
    cb93df0d
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_qsv.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...