mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-02-25 00:06:58 +00:00
FFmpeg git repo
This adds a hand-optimized assembly version for get_cabac much like the existing one, but it works if the table offsets are RIP-relative. Compared to the non-RIP-relative version this adds 2 lea instructions and it needs one extra register. There is a surprisingly large performance improvement over the c version (more so than the generated assembly seems to suggest) just in get_cabac, I measured roughly 40% faster for get_cabac on a K8. However, overall the difference is not that big, I measured roughly 5% on a test clip on a K8 and a Core2. Hopefully it still compiles on x86 32bit... v2: incorporated feedback from Loren Merritt to avoid rip-relative movs for every table, and got rid of unnecessary @GOTPCREL. v3: apply similar fixes to the the decode_significance functions, and use same macro arguments for non-pic case. v4: prettify inline asm arguments, add a non-fast-cmov version (as I expect the c code to be faster otherwise since both cmov and sbb suck hard on a Prescott, even can't construct the mask with a 64bit shift as that's just as terrible - it's quite difficult to find usable instructions on that chip...). This is tested to work but not on a P4, in theory it _should_ be fast there. Signed-off-by: Michael Niedermayer <michaelni@gmx.at> |
||
---|---|---|
doc | ||
ffpresets | ||
libavcodec | ||
libavdevice | ||
libavfilter | ||
libavformat | ||
libavutil | ||
libpostproc | ||
libswresample | ||
libswscale | ||
mt-work | ||
presets | ||
tests | ||
tools | ||
.gitignore | ||
arch.mak | ||
Changelog | ||
cmdutils_common_opts.h | ||
cmdutils.c | ||
cmdutils.h | ||
common.mak | ||
configure | ||
COPYING.GPLv2 | ||
COPYING.GPLv3 | ||
COPYING.LGPLv2.1 | ||
COPYING.LGPLv3 | ||
CREDITS | ||
Doxyfile | ||
ffmpeg.c | ||
ffplay.c | ||
ffprobe.c | ||
ffserver.c | ||
INSTALL | ||
library.mak | ||
LICENSE | ||
MAINTAINERS | ||
Makefile | ||
README | ||
RELEASE | ||
version.sh |
FFmpeg README ------------- 1) Documentation ---------------- * Read the documentation in the doc/ directory in git. You can also view it online at http://ffmpeg.org/documentation.html 2) Licensing ------------ * See the LICENSE file. 3) Build and Install -------------------- * See the INSTALL file.