summaryrefslogtreecommitdiff
path: root/libavcodec/x86/vp8dsp.asm
Commit message (Collapse)AuthorAge
* x86inc: add SPLATB_LOAD, SPLATB_REG, PSHUFLW macrosLoren Merritt2012-07-05
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* vp8dsp x86: perform rounding shift with a single instructionChristophe GISQUET2012-04-04
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* vp8: convert mbedge loopfilter x86 assembly to use named arguments.Ronald S. Bultje2012-03-10
|
* vp8: convert inner loopfilter x86 assembly to use named arguments.Ronald S. Bultje2012-03-10
|
* vp8: convert simple loopfilter x86 assembly to use named arguments.Ronald S. Bultje2012-03-03
|
* vp8: convert idct x86 assembly to use named arguments.Ronald S. Bultje2012-03-03
|
* vp8: convert mc x86 assembly to use named arguments.Ronald S. Bultje2012-03-03
|
* vp8: convert loopfilter x86 assembly to use cpuflags().Ronald S. Bultje2012-03-03
|
* vp8: convert idct/mc x86 assembly to use cpuflags().Ronald S. Bultje2012-03-03
|
* vp8: disable mmx functions with sse/sse2 counterparts on x86-64.Ronald S. Bultje2012-03-02
| | | | | x86-64 is guaranteed to have at least SSE2, therefore the MMX/MMX2 functions will never be used in practice.
* Fix NASM include directiveDave Yeo2011-08-15
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* Move x86util.asm from libavcodec/ to libavutil/.Ronald S. Bultje2011-08-12
| | | | This allows using it in swscale also.
* Move x86inc.asm to libavutil/.Ronald S. Bultje2011-08-12
| | | | This allows using it in libswscale/ also.
* Modify x86util.asm to ease transitioning to 10-bit H.264 assembly.Daniel Kang2011-05-17
| | | | | | | Arguments for variable size instructions are added to many macros, along with other various changes. The x86util.asm code was ported from x264. Signed-off-by: Diego Biurrun <diego@biurrun.de>
* Fix FSF address copy paste error in some license headers.Diego Biurrun2011-05-14
|
* Replace FFmpeg with Libav in licence headersMans Rullgard2011-03-19
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* Use "d" suffix for general-purpose registers used with movd.Reimar Döffinger2010-09-05
| | | | | | | | This increases compatibilty with nasm and is also more consistent, e.g. with h264_intrapred.asm and h264_chromamc.asm that already do it that way. Originally committed as revision 25042 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Mark xmm registers as clobbered in simple loopfilter. Should fix the lastRonald S. Bultje2010-08-24
| | | | | | two VP8-related fate failures on Win64. Originally committed as revision 24908 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix segfaults in VP8 SIMD code on Win64 (and FATE/win64 failures).Ronald S. Bultje2010-08-23
| | | | Originally committed as revision 24871 to svn://svn.ffmpeg.org/ffmpeg/trunk
* VP8: move zeroing of luma DC block into the WHTJason Garrett-Glaser2010-08-02
| | | | | | | Lets us do the zeroing in asm instead of C. Also makes it consistent with the way the regular iDCT code does it. Originally committed as revision 24668 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Use word-writing instead of dword-writing (with two cached but otherwiseRonald S. Bultje2010-07-31
| | | | | | | | | | unchanged bytes) in the horizontal simple loopfilter. This makes the filter quite a bit faster in itself (~30 cycles less on Core1), probably mostly because we don't need a complex 4x4 transpose, but only a simple byte interleave. Also allows using pextrw on SSE4, which speeds up even more (e.g. 25% faster on Core i7). Originally committed as revision 24638 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Use pmaddubsw for the mbedge_filter (>=ssse3), 6-10 cycles faster.Ronald S. Bultje2010-07-26
| | | | Originally committed as revision 24514 to svn://svn.ffmpeg.org/ffmpeg/trunk
* VP8: Much faster SSE2 MCJason Garrett-Glaser2010-07-26
| | | | | | | 5-10% faster or more on Phenom, Athlon 64, and some others. Helps some on pre-SSSE3 Intel chips as well, but not as much. Originally committed as revision 24513 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Enable no-loop memory/register saving for ssse3/sse4 also.Ronald S. Bultje2010-07-26
| | | | Originally committed as revision 24511 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Save a register (or regsize of stackspace for x86-32) for the no-loopRonald S. Bultje2010-07-26
| | | | | | | mbedge loopfilter functions, by re-using space that holds a variable that we no longer need. Originally committed as revision 24510 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Use nested ifs instead of &&, which appears to not work with %ifidn (i.e. thisRonald S. Bultje2010-07-26
| | | | | | construct was always enabled, even for <ssse3 versions). Originally committed as revision 24509 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Split pextrw macro-spaghetti into several opt-specific macros, this will makeRonald S. Bultje2010-07-26
| | | | | | | | future new optimizations (imagine a sse5) much easier. Also fix a bug where we used the direction (%2) rather than optimization (%1) to enable this, which means it wasn't ever actually used... Originally committed as revision 24507 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix obvious bug in assignment. Somehow, the test vectors don't test this...Ronald S. Bultje2010-07-25
| | | | Originally committed as revision 24489 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix SPLATB_REG mess. Used to be a if/elseif/elseif/elseif spaghetti, so thisRonald S. Bultje2010-07-24
| | | | | | | | splits it into small optimization-specific macros which are selected for each DSP function. The advantage of this approach is that the sse4 functions now use the ssse3 codepath also without needing an explicit sse4 codepath. Originally committed as revision 24487 to svn://svn.ffmpeg.org/ffmpeg/trunk
* VP8: optimize DC-only chroma case in the same way as luma.Jason Garrett-Glaser2010-07-23
| | | | | | | Add MMX idct_dc_add4uv function for this case. ~40% faster chroma idct. Originally committed as revision 24455 to svn://svn.ffmpeg.org/ffmpeg/trunk
* VP8 asm: cosmetics (spacing)Jason Garrett-Glaser2010-07-23
| | | | Originally committed as revision 24453 to svn://svn.ffmpeg.org/ffmpeg/trunk
* VP8: 30% faster idct_mbJason Garrett-Glaser2010-07-23
| | | | | | | | | | Take shortcuts based on statistically common situations. Add 4-at-a-time idct_dc function (mmx and sse2) since rows of 4 DC-only DCT blocks are common. TODO: tie this more directly into the MB mode, since the DC-level transform is only used for non-splitmv blocks? Originally committed as revision 24452 to svn://svn.ffmpeg.org/ffmpeg/trunk
* VP8: clear DCT blocks in iDCT instead of using clear_blocks.Jason Garrett-Glaser2010-07-23
| | | | | | ~0.3% faster overall. Originally committed as revision 24448 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Use pextrw for SSE4 mbedge filter result writing, speedup 5-10cycles onRonald S. Bultje2010-07-22
| | | | | | CPUs supporting it. Originally committed as revision 24437 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix and enable horizontal >=SSE2 mbedge loopfilter.Ronald S. Bultje2010-07-22
| | | | Originally committed as revision 24409 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Eliminate one instruction in VP8 dc_add_sse4Jason Garrett-Glaser2010-07-21
| | | | Originally committed as revision 24405 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Various VP8 x86 deblocking speedupsJason Garrett-Glaser2010-07-21
| | | | | | | SSSE3 versions, improve SSE2 versions a bit. SSE2/SSSE3 mbedge h functions are currently broken, so explicitly disable them. Originally committed as revision 24403 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Make mmx VP8 WHT fasterJason Garrett-Glaser2010-07-21
| | | | | | | Avoid pextrw, since it's slow on many older CPUs. Now it doesn't require mmxext either. Originally committed as revision 24397 to svn://svn.ffmpeg.org/ffmpeg/trunk
* VP8 MBedge loopfilter MMX/MMX2/SSE2 functions for both luma (width=16)Ronald S. Bultje2010-07-20
| | | | | | and chroma (width=8). Originally committed as revision 24378 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Chroma (width=8) inner loopfilter MMX/MMX2/SSE2 for VP8 decoder.Ronald S. Bultje2010-07-20
| | | | Originally committed as revision 24377 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Revert r24339 (it causes fate failures on x86-64) - I'll figure out what'sRonald S. Bultje2010-07-19
| | | | | | wrong with it tomorrow or so, then re-submit. Originally committed as revision 24341 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Implement chroma (width=8) inner loopfilter MMX/MMX2/SSE2 functions.Ronald S. Bultje2010-07-19
| | | | Originally committed as revision 24339 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Be more efficient with registers or stack memory. Saves 8/16 bytes stackRonald S. Bultje2010-07-19
| | | | | | for x86-32, or 2 MM registers on x86-64. Originally committed as revision 24338 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Change function prototypes for width=8 inner and mbedge loopfilter functionsRonald S. Bultje2010-07-19
| | | | | | | | | | | so that it does both U and V planes at the same time. This will have speed advantages when using SSE2 (or higher) optimizations, since we can do both the U and V rows together in a single xmm register. This also renames filter16 to filter16y and filter8 to filter8uv so that it's more obvious what each function is used for. Originally committed as revision 24337 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Attempt to fix x86-64 testsuite on fate.Ronald S. Bultje2010-07-16
| | | | Originally committed as revision 24275 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Remove duplicate define.Ronald S. Bultje2010-07-16
| | | | Originally committed as revision 24272 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Revert 24270, it contained some stuff that shouldn't have been in there.Ronald S. Bultje2010-07-16
| | | | Originally committed as revision 24271 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Remove duplicate define.Ronald S. Bultje2010-07-16
| | | | Originally committed as revision 24270 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Give x86 r%d registers names, this will simplify implementation of the chromaRonald S. Bultje2010-07-16
| | | | | | inner loopfilter, and it also allows us to save one register on x86-64/sse2. Originally committed as revision 24269 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Change return statement, the REP_RET is a mistake since the else case (x86-64,Ronald S. Bultje2010-07-16
| | | | | | sse2) doesn't actually loop, so REP_RET isn't necessary. Originally committed as revision 24268 to svn://svn.ffmpeg.org/ffmpeg/trunk