History | View | Annotate | Download (119 KB)
Port x86 10-bit H.264 deblock asm from x264
Adds 8-, 9- and 10-bit versions of some of the functions used by the h264 decoder.
This patch lets e.g. dsputil_init chose dsp functions with respect tothe bit depth to decode. The naming scheme of bit depth dependentfunctions is <base name>_<bit depth>[_
] (i.e. the old...
dsputil: allow to skip drawing of top/bottom edges.
Add apply_window_int16() to DSPContext with x86-optimized versions and use itin the ac3_fixed encoder.
Replace FFmpeg with Libav in licence headers
Signed-off-by: Mans Rullgard <mans@mansr.com>
dsputil_mmx.c: remove ff_vector128.
Remove ff_vector128, it is identical to ff_pb_80.
dsputil: move VC1-specific stuff into VC1DSPContext.
Separate format conversion DSP functions from DSPContext.
This will be beneficial for use with the audio conversion API withoutrequiring it to depend on all of dsputil.
Implement a SIMD version of emulated_edge_mc() for x86.
From ~550 cycles (C version) to 170 (SSE/x86-64), 206 (MMX/x86-32)and 196 (SSE2/x86-32) cycles.
cosmetics: indentation
Remove unneeded add bias from 3 functions.
DSPContext.vector_fmul_window()DCADSPContext.lfe_fir()SynthFilterContext.synth_filter_float()
Change DSPContext.vector_fmul() from dst=dst*src to dest=src0*src1.
Replace ASMALIGN with .p2align
This macro has unconditionally used .p2align for a long time andserves no useful purpose.
x86: remove VLA in ac3_downmix_sse
Fix ff_pw_3 alignment.
Originally committed as revision 26344 to svn://svn.ffmpeg.org/ffmpeg/trunk
H.264: split luma dc idct out and implement MMX/SSE2 versionsAbout 2.5x the speed.
NOTE: the way that the asm code handles large qmuls is a bit suboptimal.If x264-style dequant was used (separate shift and qmul values), it mightbe possible to get some extra speed....
For rounding in chroma MC SSSE3, use 16-byte pw_3/4 instead of reading 8 bytesand then using movlhps to dup it into the higher half of the register.
Originally committed as revision 26086 to svn://svn.ffmpeg.org/ffmpeg/trunk
In yadif filter, declare asm constants directly to avoid dependency on libavcodec
Originally committed as revision 25895 to svn://svn.ffmpeg.org/ffmpeg/trunk
10l, add ff_pw_1 to dsputil_mmx for yadif sse2
Originally committed as revision 25881 to svn://svn.ffmpeg.org/ffmpeg/trunk
dsputil: Use explicit movzbl instead of movzx
This fixes compilation with the latest clang trunk version.
Patch by İsmail Dönmez, ismail at namtrac dot org
Originally committed as revision 25628 to svn://svn.ffmpeg.org/ffmpeg/trunk
xmm_clobbers: list xmm registers first in clobber list
suncc does not like the leading commas inside the macro, but it has no problemwith trailing commas.
Originally committed as revision 25615 to svn://svn.ffmpeg.org/ffmpeg/trunk
dsputil_mmx: add xmm registers to clobber list
Originally committed as revision 25611 to svn://svn.ffmpeg.org/ffmpeg/trunk
dsputil_mmx: prefer xmm registers below xmm6 when they are available
Originally committed as revision 25606 to svn://svn.ffmpeg.org/ffmpeg/trunk
MMX, MMX2, SSE2 and SSSE3 optimizations for pred16x16/8x8_plane H264 intraprediction (plus some with different rounding for svq3/rv40). Speedup (forSSSE3) about ~6-fold, 3.6% faster overall with cathedral sample.
Originally committed as revision 25361 to svn://svn.ffmpeg.org/ffmpeg/trunk
Use sse2 variant of put_pixels16() for no_rnd also. Provides a minor speedincrease to e.g. vc1, snow and mpeg decoding.
Patch by Eli Friedman <eli dot friedman gmail com>.
Originally committed as revision 25259 to svn://svn.ffmpeg.org/ffmpeg/trunk
Move mm_support() from libavcodec to libavutil, make it a publicfunction and rename it to av_get_cpu_flags().
Originally committed as revision 25076 to svn://svn.ffmpeg.org/ffmpeg/trunk
Rename FF_MM_ symbols related to CPU features flags as AV_CPU_FLAG_symbols, and move them from libavcodec/avcodec.h to libavutil/cpu.h.
Originally committed as revision 25040 to svn://svn.ffmpeg.org/ffmpeg/trunk
Port latest x264 deblock asm (before they moved to using NV12 as internalformat), LGPL'ed with permission from Jason and Loren. This includes mmx2code, so remove inline asm from h264dsp_mmx.c accordingly.
Originally committed as revision 25031 to svn://svn.ffmpeg.org/ffmpeg/trunk
Split h264dsp_mmx.c (which was #included in dsputil_mmx.c) in h264_qpel_mmx.c,still #included in dsputil_mmx.c and is part of DSPContext, and h264dsp_mmx.c,which represents H264DSPContext and is now compiled on its own.
Originally committed as revision 25018 to svn://svn.ffmpeg.org/ffmpeg/trunk
Fix compilation failure if yasm is disabled (missing vp3 symbols).
Originally committed as revision 24992 to svn://svn.ffmpeg.org/ffmpeg/trunk
Move H264 chroma MC from inline asm to yasm. This fixes VP3/5/6 and VC-1fate failures on Win64.
Originally committed as revision 24989 to svn://svn.ffmpeg.org/ffmpeg/trunk
Move VP3 IDCT functions from inline ASM to YASM. This fixes part of the VP3/5/6issues on Win64.
Originally committed as revision 24988 to svn://svn.ffmpeg.org/ffmpeg/trunk
Put ff_ prefix on non-static {put_signed,put,add}_pixels_clamped_mmx()functions.
Originally committed as revision 24987 to svn://svn.ffmpeg.org/ffmpeg/trunk
Move vp6_filter_diag4() from DSPContext to VP56DSPContext.
Originally committed as revision 24921 to svn://svn.ffmpeg.org/ffmpeg/trunk
Remove global mm_flags variable
Originally committed as revision 24909 to svn://svn.ffmpeg.org/ffmpeg/trunk
H.264: SSE2/SSSE3 weighted prediction asmPatch by Eli Friedman <eli.friedman at gmail dot com>
Originally committed as revision 24702 to svn://svn.ffmpeg.org/ffmpeg/trunk
Move cavs dsp functions to their own struct
Originally committed as revision 24685 to svn://svn.ffmpeg.org/ffmpeg/trunk
relicense h264 deblock sse2 to lgpl
Originally committed as revision 24408 to svn://svn.ffmpeg.org/ffmpeg/trunk
Move ff_pw_* from vc1dsp_mmx.c to dsputil_mmx.c
Should fix compilation with icc and should help prevent any future duplicates
Originally committed as revision 24380 to svn://svn.ffmpeg.org/ffmpeg/trunk
VP8 MBedge loopfilter MMX/MMX2/SSE2 functions for both luma (width=16)and chroma (width=8).
Originally committed as revision 24378 to svn://svn.ffmpeg.org/ffmpeg/trunk
VP8 H/V inner loopfilter MMX/MMXEXT/SSE2 optimizations.
Originally committed as revision 24250 to svn://svn.ffmpeg.org/ffmpeg/trunk
Make ff_pw_4 128 bits
Originally committed as revision 24207 to svn://svn.ffmpeg.org/ffmpeg/trunk
Simple H/V loopfilter for VP8 in MMX, MMX2 and SSE2 (yay for yasm macros).
Originally committed as revision 24029 to svn://svn.ffmpeg.org/ffmpeg/trunk
Add const to some pointer parameters.
Patch by Eli Friedman, eli D friedman A gmail
Originally committed as revision 23826 to svn://svn.ffmpeg.org/ffmpeg/trunk
16x16 and 8x8c x86 SIMD intra pred functions for VP8 and H.264
Originally committed as revision 23783 to svn://svn.ffmpeg.org/ffmpeg/trunk
Add bitexact versions of put_no_rnd_pixels8 _x2 and _y2 for vp3/theora
Originally committed as revision 23463 to svn://svn.ffmpeg.org/ffmpeg/trunk
vp3: DC-only IDCT
2-4% faster overall decode
Originally committed as revision 22896 to svn://svn.ffmpeg.org/ffmpeg/trunk
Move H264 dsputil functions into their own struct
This moves the H264-specific functions from DSPContext to the newH264DSPContext. The code is made conditional on CONFIG_H264DSPwhich is set by the codecs requiring it.
The qpel and chroma MC functions are not moved as these are used by...
Separate DWT from snow and dsputil
This moves the DWT functions from snow.c and dsputil.c to a file oftheir own. A new struct, DWTContext, holds the function pointerspreviously part of DSPContext.
Originally committed as revision 22522 to svn://svn.ffmpeg.org/ffmpeg/trunk
x86: move function prototypes to header files
Originally committed as revision 22266 to svn://svn.ffmpeg.org/ffmpeg/trunk
Remove DECLARE_ALIGNED_{8,16} macros
These macros are redundant. All uses are replaced with the genericDECLARE_ALIGNED macro instead.
Originally committed as revision 22233 to svn://svn.ffmpeg.org/ffmpeg/trunk
Enable SSE2 (put|avg)_pixels_16_sse2
SVQ1 chroma has been special-cased aligned to 16-bytes since at least r15466Other architectures also assume 16-byte alignment here too but set STRIDE_ALIGNto 16.
Originally committed as revision 21736 to svn://svn.ffmpeg.org/ffmpeg/trunk
Implement an sse version of scalarproduct_float().
Originally committed as revision 21386 to svn://svn.ffmpeg.org/ffmpeg/trunk
Move array specifiers outside DECLARE_ALIGNED() invocations
Originally committed as revision 21377 to svn://svn.ffmpeg.org/ffmpeg/trunk
Fix XvMC. XvMCCreateBlocks() may not allocate 16-byte aligned blocks,so we can't use SSE-optimized routines.
Originally committed as revision 21011 to svn://svn.ffmpeg.org/ffmpeg/trunk
Get rid of pointless CONFIG_ANY_H263 preprocessor definition.
Originally committed as revision 20975 to svn://svn.ffmpeg.org/ffmpeg/trunk
r20739 broke compilation on systems without yasm
Originally committed as revision 20742 to svn://svn.ffmpeg.org/ffmpeg/trunk
refactor and optimize scalarproduct29-105% faster apply_filter, 6-90% faster ape decoding on core2(Any x86 other than core2 probably gets much less, since this is mostly due to ssse3 cachesplit avoidance and I haven't written the full gamut of other cachesplit modes.)...
port ape dsp functions from sse2 to mmxnow requires yasm
Originally committed as revision 20722 to svn://svn.ffmpeg.org/ffmpeg/trunk
huffyuv: add some const qualifiers
Originally committed as revision 20290 to svn://svn.ffmpeg.org/ffmpeg/trunk
simd add_hfyu_left_prediction2.2x faster than C on conroe, 3.6x on penryn.4-6% faster huffyuv decoding if using left or plane mode and yuv
Originally committed as revision 20287 to svn://svn.ffmpeg.org/ffmpeg/trunk
cosmetics: fix indentation after previous commit
Originally committed as revision 20062 to svn://svn.ffmpeg.org/ffmpeg/trunk
Drop unused args from vector_fmul_add_add, simpify code, and rename
The src3 and step arguments to vector_fmul_add_add() are always zeroand one, respectively. This removes these arguments from the function,simplifies the code accordingly, and renames the function to better...
Mark "i" parameter of vector_clipf_sse() as early-clobber
Originally committed as revision 19731 to svn://svn.ffmpeg.org/ffmpeg/trunk
Mark parameter src of vector_clipf() as const
Originally committed as revision 19729 to svn://svn.ffmpeg.org/ffmpeg/trunk
SSE optimized vector_clipf(). 10% faster TwinVQ decoding.
Originally committed as revision 19728 to svn://svn.ffmpeg.org/ffmpeg/trunk
Do not check for both CONFIG_VC1_DECODER and CONFIG_WMV3_DECODER,the former depends upon the latter.
Originally committed as revision 19533 to svn://svn.ffmpeg.org/ffmpeg/trunk
Do not redundantly check for both CONFIG_THEORA_DECODER and CONFIG_VP3_DECODER.The Theora decoder depends on the VP3 decoder.
Originally committed as revision 19492 to svn://svn.ffmpeg.org/ffmpeg/trunk
Icc 11.1 still does not align the stack pointer, disable some x264 functions.
Originally committed as revision 19454 to svn://svn.ffmpeg.org/ffmpeg/trunk
SSE version of clear_blocks
Originally committed as revision 19206 to svn://svn.ffmpeg.org/ffmpeg/trunk
avg_ pixel functions need to use (dst+pix+1)>>1 to average with existingpixels, not (dst+pix)>>1.This makes the mmx functions bitexact with the C functions.
Originally committed as revision 18527 to svn://svn.ffmpeg.org/ffmpeg/trunk
VC1: extend MMX qpel MC to include MMX2 avg qpel
Originally committed as revision 18519 to svn://svn.ffmpeg.org/ffmpeg/trunk
VC1: add and use avg_no_rnd chroma MC functions
Originally committed as revision 18518 to svn://svn.ffmpeg.org/ffmpeg/trunk
Rename put_no_rnd_h264_chroma* to reflect its usage in VC1 only
Originally committed as revision 18517 to svn://svn.ffmpeg.org/ffmpeg/trunk
Rename FF_MM_MMXEXT to FF_MM_MMX2, for both clarity and consistencywith libswscale.
Originally committed as revision 18330 to svn://svn.ffmpeg.org/ffmpeg/trunk
Mark line_skip3 asm argument as output-only instead of using av_uninit.
Originally committed as revision 18327 to svn://svn.ffmpeg.org/ffmpeg/trunk
Mark put_signed_pixels_clamped_mmx output operands as early-clobber becausethey are. Hopefully fixes some FATE errors, too.
Originally committed as revision 18326 to svn://svn.ffmpeg.org/ffmpeg/trunk
Use DECLARE_ASM_CONST for non-global ff_vector128 constant used via MANGLE
Originally committed as revision 18325 to svn://svn.ffmpeg.org/ffmpeg/trunk
Rewrite put_signed_pixels_clamped_mmx() to eliminate mmx.h from dsputil_mmx.c.
Originally committed as revision 18319 to svn://svn.ffmpeg.org/ffmpeg/trunk
add SSE2 version of vp6_filter_diagoriginal patch by Zuxy Meng zuxy.meng at gmail dot com
Originally committed as revision 17195 to svn://svn.ffmpeg.org/ffmpeg/trunk
add MMX version of vp6_filter_diagoriginal patch by Sebastien Lucas sebastien.lucas at gmail dot com
Originally committed as revision 17194 to svn://svn.ffmpeg.org/ffmpeg/trunk
convert ff_pw_64 into an xmm_reg for future use in vp6 sse code
Originally committed as revision 17192 to svn://svn.ffmpeg.org/ffmpeg/trunk
Add check whether the compiler/assembler supports 10 or more operands.thanks to Loren for some help with the asm statements
Originally committed as revision 17151 to svn://svn.ffmpeg.org/ffmpeg/trunk
ff_add_hfyu_median_prediction_mmx2overall ffvhuff decoding speedup: 28% on core2, 25% on k8.
Originally committed as revision 17059 to svn://svn.ffmpeg.org/ffmpeg/trunk
Workaround for gcc 3.4 to align sh properly
Originally committed as revision 16797 to svn://svn.ffmpeg.org/ffmpeg/trunk
cosmetics: Remove pointless period after copyright statement non-sentences.
Originally committed as revision 16684 to svn://svn.ffmpeg.org/ffmpeg/trunk
replace all occurrence of ENABLE_ by the corresponding CONFIG_, HAVE_ or ARCH_and remove all ENABLE_ definitions.
Originally committed as revision 16600 to svn://svn.ffmpeg.org/ffmpeg/trunk
Change semantic of CONFIG_*, HAVE_* and ARCH_*.They are now always defined to either 0 or 1.
Originally committed as revision 16590 to svn://svn.ffmpeg.org/ffmpeg/trunk
Add missing 'void' keyword to parameterless function declarations.
Originally committed as revision 16436 to svn://svn.ffmpeg.org/ffmpeg/trunk
Use H264 MMX chroma functions to accelerate RV40 decoding.
Patch by Mathieu Velten (matmaul A gmail)
Originally committed as revision 16419 to svn://svn.ffmpeg.org/ffmpeg/trunk
Add x264 SSE2 iDCT functions to H.264 decoder.
Originally committed as revision 16409 to svn://svn.ffmpeg.org/ffmpeg/trunk
Fix h264 decoding on SSE2 cores with icc compilation.
Originally committed as revision 16373 to svn://svn.ffmpeg.org/ffmpeg/trunk
Fix compilation without optimization under 64-bit with x264 deblock asm enabled.
Originally committed as revision 16313 to svn://svn.ffmpeg.org/ffmpeg/trunk
Rename libavcodec/i386/ --> libavcodec/x86/.It contains optimizations that are not specific to i386 andlibavutil uses this naming scheme already.
Originally committed as revision 16270 to svn://svn.ffmpeg.org/ffmpeg/trunk