aboutsummaryrefslogtreecommitdiff
path: root/libavcodec/x86
AgeCommit message (Collapse)Author
2018-05-07mdct15: simplify x86 exptab permutationRostislav Pehlivanov
Removes an unneeded copy and does the 5-point permute in-place. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2018-05-07mdct15: simplify the fft15 x86 SIMDRostislav Pehlivanov
Saves 1 gpr and 2 instructions and simplifies the macros a bit. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2018-04-02mpeg4video: Add support for MPEG-4 Simple Studio Profile.Kieran Kunhya
This is a profile supporting > 8-bit video and has a higher quality DCT
2018-03-07sbcenc: add MMX optimizationsAurelien Jacobs
This was originally based on libsbc, and was fully integrated into ffmpeg. Rough speed test: C version: speed= 592x MMX version: speed= 785x
2018-02-12h264_idct: enable unmacro on newer NASM versionsRostislav Pehlivanov
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2018-01-28avcodec/utvideoenc : add SIMD (avx) for sub_left_predictionMartin Vignali
asm code by Henrik Gramner
2018-01-11avcodec: increase AV_INPUT_BUFFER_PADDING_SIZE to 64James Almer
AVX-512 support has been introduced, and even if no functions currently use zmm registers (able to load as much as 64 bytes of consecutive data per instruction), they will be added eventually. Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com> Tested-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: James Almer <jamrial@gmail.com>
2017-12-10x86/lossless_videodsp: rename ff_add_left_pred_int16_sse4 to ↵James Almer
ff_add_left_pred_int16_unaligned_ssse3 SSSE3_FAST is the proper check for it. Signed-off-by: James Almer <jamrial@gmail.com>
2017-12-10x86/lossless_videodsp: don't overread the dst buffer in ↵James Almer
ff_add_left_pred_unaligned_avx2 Fixes valgrind Signed-off-by: James Almer <jamrial@gmail.com>
2017-12-09avcodec/utvideodec : add SIMD (SSSE3 and AVX2) for gradient_predMartin Vignali
2017-12-09avcodec/x86/lossless_videodsp : add avx2 version for add_left_predMartin Vignali
2017-12-09avcodec/x86/lossless_videodsp.asm : make macro for add_left_pred_unaligned ↵Martin Vignali
in order to add avx2 version
2017-12-02avcodec/x86/bswapdsp : use macro for 128 bits constants loading in xmm or ymmMartin Vignali
2017-11-25avcodec/fft: fix INTERL macro on 3dnowMikulas Patocka
The commit b7c16a3f2c4921f613319938b8ee0e3d6fa83e8d ("x86: fft: Port to cpuflags") breaks the opus decoder in ffmpeg when compiling for 3dnow. The output is audible, but there's a lot of noise. The reason for the breakage is that the commit unintentionally changed the INTERL macro so that it is empty when compiling for 3dnow. This patch fixes it. Signed-off-by: Mikulas Patocka <mikulas@twibright.com> Signed-off-by: James Almer <jamrial@gmail.com>
2017-11-23avcodec/x86/exrdsp : use ymm constant for pb_80Martin Vignali
speed seems to be similar, but simplify code
2017-11-21x86/utvideodsp: reuse shared constantsJames Almer
Remove the broadcast instructions as well now that they are wide enough. Signed-off-by: James Almer <jamrial@gmail.com>
2017-11-21x86/constants: make pb_80 32 byte wideJames Almer
Signed-off-by: James Almer <jamrial@gmail.com>
2017-11-21avcodec/huffyuvdspenc : add diff_int16 AVX2 funcMartin Vignali
2017-11-21avcodec/huffyuvdspenc : reorganize diff_int16Martin Vignali
2017-11-21avcodec/huffyuvdsp : add add_int16 AVX2 funcMartin Vignali
2017-11-21avcodec/huffyuvdsp : reorganize add_int16 asmMartin Vignali
2017-11-21avcodec/huffyuvdsp(enc) : move duplicate macro to a template fileMartin Vignali
2017-11-21avcodec/x86/utvideodsp.asm : cosmeticMartin Vignali
better func separator and add comment for the restore rgb planes10 declaration
2017-11-21avcodec/utvideodsp : add avx2 version for the dspMartin Vignali
2017-11-21avcodec/x86/utvideodsp : make macro for funcMartin Vignali
2017-11-20x86/jpeg2000dsp: add ff_ict_float_{fma3,fma4}James Almer
jpeg2000_ict_float_c: 2296.0 jpeg2000_ict_float_sse: 628.0 jpeg2000_ict_float_avx: 317.0 jpeg2000_ict_float_fma3: 262.0 Signed-off-by: James Almer <jamrial@gmail.com>
2017-11-14avcodec/x86/mpegvideodsp: Fix signedness bug in need_emuMichael Niedermayer
Fixes: out of array read Fixes: 3516/attachment-311488.dat Found-by: Insu Yun, Georgia Tech. Tested-by: wuninsu@gmail.com Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-11-13Fix missing used attribute for inline assembly variablesThomas Köppe
Variables used in inline assembly need to be marked with attribute((used)). Static constants already were, via the define of DECLARE_ASM_CONST. But DECLARE_ALIGNED does not add this attribute, and some of the variables defined with it are const only used in inline assembly, and therefore appeared dead. This change adds a macro DECLARE_ASM_ALIGNED that marks variables as used. This change makes FFMPEG work with Clang's ThinLTO. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-11-07libavcodec/lossless_video_dsp : cosmetic add better separator for each ↵Martin Vignali
function, in order to make reading of the asm file easier
2017-11-07libavcodec/lossless_videodsp : add add_bytes avx2 versionMartin Vignali
2017-10-29x86/bswapdsp: add missing preprocessor wrappers for AVX2 functionsJames Almer
Fixes build with old nasm/yasm. Signed-off-by: James Almer <jamrial@gmail.com>
2017-10-29libavcodec/bswapdsp : add AVX2 func for bswap_buf (swap uint32_t)Martin Vignali
2017-10-21Merge commit '681a86aba6cb09b98ad716d986182060c7795d20'James Almer
* commit '681a86aba6cb09b98ad716d986182060c7795d20': x86: fft: Port to cpuflags Merged-by: James Almer <jamrial@gmail.com>
2017-10-21Merge commit 'e9bb77fb1012cba1951a82136df7071f71bce8fb'James Almer
* commit 'e9bb77fb1012cba1951a82136df7071f71bce8fb': x86: h264: Simplify DEQUANT macro with cpuflags Merged-by: James Almer <jamrial@gmail.com>
2017-10-21Merge commit '307eb1a8ee363db1fcf869e427a8deb6d9538881'James Almer
* commit '307eb1a8ee363db1fcf869e427a8deb6d9538881': x86: vp8dsp: port FILTER_BILINEAR macro to cpuflags Merged-by: James Almer <jamrial@gmail.com>
2017-10-21Merge commit '994c4bc10751e39c7ed9f67ffd0c0dea5223daf2'James Almer
* commit '994c4bc10751e39c7ed9f67ffd0c0dea5223daf2': x86util: Port all macros to cpuflags See d5f8a642f6eb1c6e305c41dabddd0fd36ffb3f77 Merged-by: James Almer <jamrial@gmail.com>
2017-10-12Merge commit '6eef263aca281fb582e1fa3d841ac20ef747a252'James Almer
* commit '6eef263aca281fb582e1fa3d841ac20ef747a252': x86: Merge align directives into SECTION_RODATA declarations where possible Merged-by: James Almer <jamrial@gmail.com>
2017-10-04x86/blockdsp: use three operand form for an instructionJames Almer
Fixes assembling with old yasm.
2017-10-05avcodec/x86/lossless_videoencdsp: Fix warning: signed dword value exceeds boundsMichael Niedermayer
Add () to regsize define Suggested-by: Henrik Gramner <henrik@gramner.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-10-05avcodec/x86/lossless_videoencdsp: Fix handling of small widthsMichael Niedermayer
Fixes out of array access Fixes: crash-huf.avi Regression since: 6b41b4414934cc930468ccd5db598dd6ef643987 This could also be fixed by adding checks in the C code that calls the dsp Found-by: Zhibin Hu and 连一汉 <lianyihan@360.cn> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-10-03libavcodec/blockdsp : add AVX versionMartin Vignali
Also modify the required alignment, to 32 instead of 16 for several codecs Signed-off-by: James Almer <jamrial@gmail.com>
2017-10-01libavcodec/exr : add x86 SIMD for predictorMartin Vignali
Signed-off-by: James Almer <jamrial@gmail.com>
2017-09-26Merge commit '7abdd026df6a9a52d07d8174505b33cc89db7bf6'James Almer
* commit '7abdd026df6a9a52d07d8174505b33cc89db7bf6': asm: Consistently uppercase SECTION markers Merged-by: James Almer <jamrial@gmail.com>
2017-09-26Merge commit 'fd9212f2edfe9b107c3c08ba2df5fd2cba5ab9e3'James Almer
* commit 'fd9212f2edfe9b107c3c08ba2df5fd2cba5ab9e3': Mark some arrays that never change as const. Merged-by: James Almer <jamrial@gmail.com>
2017-09-18x86/exrdsp: optimize ff_reorder_pixels_avx2()Henrik Gramner
Tested with "checkasm --test=exrdsp -bench" Before: reorder_pixels_c: 5187.8 reorder_pixels_sse2: 377.0 reorder_pixels_avx2: 331.3 After: reorder_pixels_c: 5181.5 reorder_pixels_sse2: 377.0 reorder_pixels_avx2: 313.8 Signed-off-by: James Almer <jamrial@gmail.com>
2017-09-17avcodec/exrdsp: improve the ExrDSPContext->reorder_pixels prototypeJames Almer
Make dst be the first parameter and src const. It's more in line with the rest of the codebase. Signed-off-by: James Almer <jamrial@gmail.com>
2017-09-17libavcodec/exr : add X86 SIMD for reorder_pixelsMartin Vignali
Signed-off-by: James Almer <jamrial@gmail.com>
2017-08-21avcodec/me_cmp: Fix crashes on ARM due to misalignmentMichael Niedermayer
Adds a diff_pixels_unaligned() Fixes: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=872503 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-08-19opus_pvq_search: Restore the proper use of conditional define and simplify ↵Ivan Kalvachev
the function name suffix handling. Using named define properly documents the code paths. It also avoids passing additional numbered arguments through multiple levels of macro templates. The suffix handling is done by concatenation, like in other asm functions and avoid having two separate "cglobal" defines. Signed-off-by: Ivan Kalvachev <ikalvachev@gmail.com>
2017-08-18opus_pvq_search: split functions into exactness and only use the exact if ↵Rostislav Pehlivanov
its faster This splits the asm function into exact and non-exact version. The exact version is as fast or faster on newer CPUs (which EXTERNAL_AVX_FAST describes well) whilst the non-exact version is faster than the exact on older CPUs. Also fixes yasm compilation which doesn't accept !cpuflags(avx) syntax. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>