summaryrefslogtreecommitdiff
path: root/libavfilter/x86
Commit message (Collapse)AuthorAge
* av_filter/x86/idet: use HADDD where appropriatePascal Massimino2014-09-09
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* av_filter/x86/idet: MMX/SSE2 implementation of 16bits filter_line()Pascal Massimino2014-09-09
| | | | | | | | tested on http://ps-auxw.de/10bit-h264-sample/10bit-eldorado.mkv MMX: ~30% faster decoding overall SSE2:~40% faster Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* vfi/x86/vf_idet: fix incorrect use of paddqJames Darnley2014-09-05
| | | | | | | | | paddq is an SSE2 instruction so it cannot be used for MMX. This was probably just a typo because the sums are dwords anyway. Reviewed-by: Pascal Massimino <pascal.massimino@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* avfilter/x86/idet: fix license header (GPL -> LGPL)Pascal Massimino2014-09-05
| | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* avfilter/vf_idet: MMX/MMXEXT/SSE2 implementation of idet's filter_line()skal2014-09-04
| | | | | | | | integration by Neil Birkbeck, with help from Vitor Sessak. core SSE2 loop by Skal (pascal.massimino@gmail.com) Reviewed-by: Clément Bœsch <u@pkh.me> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* fix spelling errorsAndreas Cadhalpun2014-07-12
| | | | | Reviewed-by: Timothy Gu <timothygu99@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* x86/yadif-10: remove duplicate ABS macroJames Almer2014-07-10
| | | | | | | | And use the x86util ones instead, which are optimized for mmxext/sse2. About ~1% increase in performance on pre SSSE3 processors. Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* avfilter/x86/vf_pullup: fix "invalid combination of opcode and operands" ↵Michael Niedermayer2014-06-28
| | | | | | with nasm Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* avfilter/x86/vf_pullup: fix old typoMichael Niedermayer2014-06-25
| | | | | | | This makes C and MMX match, no change to fate as the differences where apparently not sufficient to show up in fate Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* avfilter/vf_pullup: use ptrdiff_t as stride argument for dsp functionsMichael Niedermayer2014-06-25
| | | | | | This should avoid issues on x86_64 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* x86util: add and use RSHIFT/LSHIFT macrosChristophe Gisquet2014-06-15
| | | | | | | Those macros take a byte number as shift argument, as this argument differs between MMX and SSE2 instructions. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* Merge commit '01c5779f56cf708e6cb88b11cfdc248cae7e2ee8'Michael Niedermayer2014-04-05
|\ | | | | | | | | | | | | | | | | | | * commit '01c5779f56cf708e6cb88b11cfdc248cae7e2ee8': x86: Drop some unnecessary YASM ifdefs Conflicts: libavfilter/x86/vf_yadif_init.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * x86: Drop some unnecessary YASM ifdefsDiego Biurrun2014-04-04
| | | | | | | | Dead code elimination is enough to avoid undefined references in these cases.
| * vf_yadif: Relicense from GPL to LGPLRobert Krüger2014-01-14
| | | | | | | | All copyright holders have agreed to the relicensing.
* | Change license of yadif from GPL to LGPLRobert Krüger2014-01-14
| | | | | | | | | | Signed-off-by: Robert Krüger <krueger@lesspain.de> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Revert "Revert "vf_yadif: move x86 init code to x86/yadif.c""Robert Krüger2014-01-14
| | | | | | | | | | | | | | This reverts commit 975110a85ef8e794fdc041455ff41b0ad30bc01e. Signed-off-by: Robert Krüger <krueger@lesspain.de> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Revert "vf_yadif: move x86 init code to x86/yadif.c"Michael Niedermayer2013-12-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit a87b17f3283aada762820f1b797eeb7a2dff6c61. This reduces the amount of non LGPL code, making a relicensing to LGPL easier Conflicts: libavfilter/vf_yadif.c libavfilter/x86/yadif.c libavfilter/x86/yadif_template.c libavfilter/yadif.h Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Revert "Merge commit 'ed1a11ed52bbd1f15bb9b0416d69b7924bee3191'"Clément Bœsch2013-11-01
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit fc5fe4804fd2ee9a29de502e9431b12d027c0c89, reversing changes made to ffe33500983983946048def3a6047920d97d957b. The factoring is broken; it's not calling the ssse3 code anymore, and calling the mmx2 code with bad alignment. It also broke some FATE instances. Conflicts: libavfilter/x86/vf_gradfun_init.c
* | avfilter/x86/vf_gradfun_init: fix some consts & related warningsMichael Niedermayer2013-11-01
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'ed1a11ed52bbd1f15bb9b0416d69b7924bee3191'Michael Niedermayer2013-11-01
|\| | | | | | | | | | | | | | | | | | | * commit 'ed1a11ed52bbd1f15bb9b0416d69b7924bee3191': gradfun: x86: Factor out common code for some gradfun_filter_line() variants Conflicts: libavfilter/x86/vf_gradfun_init.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * gradfun: x86: Factor out common code for some gradfun_filter_line() variantsDiego Biurrun2013-10-31
| |
* | Merge commit 'ee80cf741a44115758e62399b7bde08d33161151'Michael Niedermayer2013-11-01
|\| | | | | | | | | | | | | | | | | | | * commit 'ee80cf741a44115758e62399b7bde08d33161151': avfilter: x86: K&R formatting cosmetics Conflicts: libavfilter/x86/vf_gradfun_init.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * avfilter: x86: K&R formatting cosmeticsDiego Biurrun2013-10-31
| |
* | avfilter/x86/vf_gradfun_init: fix const and related warningsMichael Niedermayer2013-10-24
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '0e730494160d973400aed8d2addd1f58a0ec883e'Michael Niedermayer2013-10-24
|\| | | | | | | | | | | | | | | | | | | * commit '0e730494160d973400aed8d2addd1f58a0ec883e': avfilter: x86: Port gradfun filter optimizations to yasm Conflicts: libavfilter/x86/vf_gradfun_init.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * avfilter: x86: Port gradfun filter optimizations to yasmDaniel Kang2013-10-23
| | | | | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* | Merge commit 'f6633c55a3c0e93a5b2bab6aa0692fb608f2a38d'Michael Niedermayer2013-10-23
|\| | | | | | | | | | | | | * commit 'f6633c55a3c0e93a5b2bab6aa0692fb608f2a38d': avfilter: Fix typo in Loren's email address Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * avfilter: Fix typo in Loren's email addressDiego Biurrun2013-10-23
| |
* | avfilter/x86/vf_pullup: try to fix build on x64Paul B Mahol2013-09-17
| | | | | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | avfilter: port pullup filter from libmpcodecsPaul B Mahol2013-09-17
| | | | | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2013-07-18
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: Consistently use "cpu_flags" as variable/parameter name for CPU flags Conflicts: libavcodec/x86/dsputil_init.c libavcodec/x86/h264dsp_init.c libavcodec/x86/hpeldsp_init.c libavcodec/x86/motion_est.c libavcodec/x86/mpegvideo.c libavcodec/x86/proresdsp_init.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * Consistently use "cpu_flags" as variable/parameter name for CPU flagsDiego Biurrun2013-07-18
| |
| * yadif: restore speed of the C filtering codeJames Darnley2013-05-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Always use the special filter for the first and last 3 columns (only). Changes made in 64ed397 slowed the filter to just under 3/4 of what it was. This commit restores the speed while maintaining identical output. For reference, on my Athlon64: 1733222 decicycles in old 2358563 decicycles in new 1727558 decicycles in this Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | lavfi: add spp filter.Clément Bœsch2013-06-14
| |
* | Merge commit '6e9f8d6a7d7392a236df19fef6f4eba41f18167e'Michael Niedermayer2013-05-09
|\| | | | | | | | | | | | | * commit '6e9f8d6a7d7392a236df19fef6f4eba41f18167e': x86: vf_yadif: Remove stray dsputil_mmx #include Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * x86: vf_yadif: Remove stray dsputil_mmx #includeDiego Biurrun2013-05-08
| |
* | Merge commit '093804a93cc5da3f95f98265a5df116912443cec'Michael Niedermayer2013-05-05
|\| | | | | | | | | | | | | | | | | | | | | | | | | * commit '093804a93cc5da3f95f98265a5df116912443cec': avfilter: Add av_cold attributes to init/uninit functions Conflicts: libavfilter/af_ashowinfo.c libavfilter/af_volume.c libavfilter/src_movie.c libavfilter/vf_lut.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * avfilter: Add av_cold attributes to init/uninit functionsDiego Biurrun2013-05-04
| |
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2013-04-23
|\| | | | | | | | | | | | | | | | | | | | | * qatar/master: x86: Move some conditional code around to avoid unused variable warnings Conflicts: libavcodec/x86/dsputil_mmx.c libavfilter/x86/vf_yadif_init.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * x86: Move some conditional code around to avoid unused variable warningsDiego Biurrun2013-04-22
| |
| * lavfi/gradfun: remove rounding to match C and SSE code.Clément Bœsch2013-03-28
| | | | | | | | | | | | There is no noticable benefit for such precision. Signed-off-by: Anton Khirnov <anton@khirnov.net>
| * lavfi/gradfun: fix dithering in MMX code.Clément Bœsch2013-03-28
| | | | | | | | | | | | Current dithering only uses the first 4 instead of the whole 8 random values. Signed-off-by: Anton Khirnov <anton@khirnov.net>
| * lavfi/gradfun: fix rounding in MMX code.Clément Bœsch2013-03-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current code divides before increasing precision. Also reduce upper bound for strength from 255 to 64. This will prevent an overflow in the SSSE3 and MMX filter_line code: delta is expressed as an u16 being shifted by 2 to the left. If it overflows, having a strength not above 64 will make sure that m is set to 0 (making the m*m*delta >> 14 expression void). A value above 64 should not make any sense unless gradfun is used as a blur filter. Signed-off-by: Anton Khirnov <anton@khirnov.net>
| * hqdn3d: Fix out of array read in LOWPASSLoren Merritt2013-03-13
| | | | | | | | | | CC:libav-stable@libav.org Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | yadif: remove an 'm' from the LOAD macro definitionJames Darnley2013-03-16
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | yadif: remove repeated check on widthJames Darnley2013-03-16
| | | | | | | | | | | | The filter already checks that width (and height) are greater than 3. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | yadif: cosmetic indentation from previous commitsJames Darnley2013-03-16
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | yadif: x86 assembly for 9 to 14-bit samplesJames Darnley2013-03-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These smaller samples do not need to be unpacked to double words allowing the code to process more pixels every iteration (still 2 in MMX but 6 in SSE2). It also avoids emulating the missing double word instructions on older instruction sets. Like with the previous code for 16-bit samples this has been tested on an Athlon64 and a Core2Quad. Athlon64: 1809275 decicycles in C, 32718 runs, 50 skips 911675 decicycles in mmx, 32727 runs, 41 skips, 2.0x faster 495284 decicycles in sse2, 32747 runs, 21 skips, 3.7x faster Core2Quad: 921363 decicycles in C, 32756 runs, 12 skips 486537 decicycles in mmx, 32764 runs, 4 skips, 1.9x faster 293296 decicycles in sse2, 32759 runs, 9 skips, 3.1x faster 284910 decicycles in ssse3, 32759 runs, 9 skips, 3.2x faster Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | yadif: x86 assembly for 16-bit samplesJames Darnley2013-03-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a fairly dumb copy of the assembly for 8-bit samples but it works and produces identical output to the C version. The options have been tested on an Athlon64 and a Core2Quad. Athlon64: 1810385 decicycles in C, 32726 runs, 42 skips 1080744 decicycles in mmx, 32744 runs, 24 skips, 1.7x faster 818315 decicycles in sse2, 32735 runs, 33 skips, 2.2x faster Core2Quad: 924025 decicycles in C, 32750 runs, 18 skips 623995 decicycles in mmx, 32767 runs, 1 skips, 1.5x faster 406223 decicycles in sse2, 32764 runs, 4 skips, 2.3x faster 387842 decicycles in ssse3, 32767 runs, 1 skips, 2.4x faster 307726 decicycles in sse4, 32763 runs, 5 skips, 3.0x faster Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | yadif: restore speed of the C filtering codeJames Darnley2013-03-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Always use the special filter for the first and last 3 columns (only). Changes made in 64ed397 slowed the filter to just under 3/4 of what it was. This commit restores the speed while maintaining identical output. For reference, on my Athlon64: 1733222 decicycles in old 2358563 decicycles in new 1727558 decicycles in this Signed-off-by: Michael Niedermayer <michaelni@gmx.at>