• Ganesh Ajjanagadde's avatar
    lavc/cook: get rid of wasteful pow in init_pow2table · 05434b0e
    Ganesh Ajjanagadde authored
    The table is highly structured, so pow (or exp2 for that matter) can entirely
    be avoided, yielding a ~ 40x speedup with no loss of accuracy.
    
    sample benchmark (Haswell, GNU/Linux):
    new:
    4449 decicycles in init_pow2table(loop 1000),     254 runs,      2 skips
    4411 decicycles in init_pow2table(loop 1000),     510 runs,      2 skips
    4391 decicycles in init_pow2table(loop 1000),    1022 runs,      2 skips
    
    old:
    183673 decicycles in init_pow2table(loop 1000),     256 runs,      0 skips
    182142 decicycles in init_pow2table(loop 1000),     512 runs,      0 skips
    182104 decicycles in init_pow2table(loop 1000),    1024 runs,      0 skips
    Reviewed-by: 's avatarClément Bœsch <u@pkh.me>
    Signed-off-by: 's avatarGanesh Ajjanagadde <gajjanagadde@gmail.com>
    05434b0e
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...