FFmpeg/libavcodec/x86
Christophe Gisquet 4cb6964244 dcadec: simplify decoding of VQ high frequencies
The vector dequantization has a test in a loop preventing effective SIMD
implementation. By moving it out of the loop, this loop can be DSPized.

Therefore, modify the current DSP implementation. In particular, the
DSP implementation no longer has to handle null loop sizes.

The decode_hf implementations have following timings:

For x86 Arrandale:
        C  SSE SSE2 SSE4
win32: 260 162  119  104
win64: 242 N/A   89   72

The arm NEON optimizations follow in a later patch as external asm. The
now unused check for the y modifier in arm inline asm is removed from
configure.
2014-02-28 13:03:22 +01:00
..
ac3dsp.asm
ac3dsp_init.c x86: avcodec: Add a bunch of missing #includes for av_cold 2014-01-09 15:09:07 +01:00
cabac.h
cavsdsp.c x86: Initialize mmxext after amd3dnow optimizations 2013-12-04 18:52:48 +01:00
constants.c
constants.h
dca.h x86: dca: Add missing multiple inclusion guards 2014-02-19 10:19:15 +01:00
dcadsp.asm dcadec: simplify decoding of VQ high frequencies 2014-02-28 13:03:22 +01:00
dcadsp_init.c dcadec: simplify decoding of VQ high frequencies 2014-02-28 13:03:22 +01:00
dct32.asm
dct_init.c
deinterlace.asm
dnxhdenc.c x86: avcodec: Use convenience macros to check for CPU flags 2013-08-29 13:07:37 +02:00
dsputil.asm
dsputil_init.c x86: dsputil: Simplify xvmc deprecation conditional 2014-01-15 15:23:46 +01:00
dsputil_mmx.c x86: dsputil: Separate ff_add_hfyu_median_prediction_cmov from dsputil_mmx 2013-10-05 19:21:15 +02:00
dsputil_qns_template.c
dsputil_x86.c x86: dsputil: Separate ff_add_hfyu_median_prediction_cmov from dsputil_mmx 2013-10-05 19:21:15 +02:00
dsputil_x86.h x86: dsputil: Use correct file name as multiple inclusion guard 2014-02-20 04:16:15 -08:00
dsputilenc.asm
dsputilenc_mmx.c x86: Initialize mmxext after amd3dnow optimizations 2013-12-04 18:52:48 +01:00
fdct.c x86: fdct: Employ more specific ifdefs 2013-10-06 22:02:25 +02:00
fft.asm x86inc: Utilize the shadow space on 64-bit Windows 2013-10-07 06:25:35 -04:00
fft.h
fft_init.c
fmtconvert.asm
fmtconvert_init.c x86: avcodec: Consistently structure CPU extension initialization 2013-08-29 13:07:37 +02:00
fpel.asm
fpel_mmx.c
h263_loopfilter.asm
h263dsp_init.c dsputil: Split off H.263 bits into their own H263DSPContext 2013-11-08 12:40:47 +01:00
h264_chromamc.asm
h264_chromamc_10bit.asm
h264_deblock.asm x86inc: Utilize the shadow space on 64-bit Windows 2013-10-07 06:25:35 -04:00
h264_deblock_10bit.asm
h264_i386.h
h264_idct.asm x86: h264_idct: Update comments to match 8/10-bit depth optimization split 2013-10-07 21:46:46 +02:00
h264_idct_10bit.asm
h264_intrapred.asm
h264_intrapred_10bit.asm
h264_intrapred_init.c h264: do not use 422 functions for monochrome 2014-01-06 08:25:36 +01:00
h264_qpel.c
h264_qpel_8bit.asm
h264_qpel_10bit.asm
h264_weight.asm
h264_weight_10bit.asm
h264chroma_init.c
h264dsp_init.c h264: do not use 422 functions for monochrome 2014-01-06 08:25:36 +01:00
hpeldsp.asm x86: hpeldsp: Use PAVGB instruction macro where necessary 2013-11-04 01:29:23 +01:00
hpeldsp_init.c x86: hpeldsp: Add missing av_cold attribute to init function 2014-01-09 15:09:07 +01:00
hpeldsp_mmx.c
hpeldsp_rnd_template.c
idct_mmx_xvid.c x86: xviddct: Employ more specific ifdefs 2013-10-05 18:14:58 +02:00
idct_sse2_xvid.c x86: xviddct: Employ more specific ifdefs 2013-10-05 18:14:58 +02:00
idct_xvid.h
imdct36.asm
lpc.c x86: avcodec: Use convenience macros to check for CPU flags 2013-08-29 13:07:37 +02:00
Makefile x86: dcadsp: implement int8x8_fmul_int32 2014-02-07 22:52:40 +01:00
mathops.h mathops/x86: work around inline asm miscompilation with GCC 4.8.1 2013-09-15 11:15:07 -04:00
mlpdsp.c
motion_est.c x86: avcodec: Use convenience macros to check for CPU flags 2013-08-29 13:07:37 +02:00
mpeg4qpel.asm
mpegaudiodsp.c x86: Consistently use cpu flag detection macros in places that still miss it 2014-01-14 00:04:58 +01:00
mpegvideo.c x86: mpegvideo: move denoise_dct asm to mpegvideoenc 2013-12-20 17:16:11 +01:00
mpegvideoenc.c x86: mpegvideo: move denoise_dct asm to mpegvideoenc 2013-12-20 17:16:11 +01:00
mpegvideoenc_template.c dsputil: x86: Move ff_inv_zigzag_direct16 table init to mpegvideo 2013-12-02 04:05:18 +01:00
pngdsp.asm
pngdsp_init.c
proresdsp.asm
proresdsp_init.c prores: Use consistent names for DSP arch initialization functions 2014-02-28 10:34:55 +01:00
qpel.asm
rnd_mmx.c
rnd_template.c
rv34dsp.asm
rv34dsp_init.c x86: avcodec: Add a bunch of missing #includes for av_cold 2014-01-09 15:09:07 +01:00
rv40dsp.asm x86: rv40dsp: Use PAVGB instruction macro where appropriate 2013-11-04 21:14:39 +01:00
rv40dsp_init.c x86: avcodec: Consistently structure CPU extension initialization 2013-08-29 13:07:37 +02:00
sbrdsp.asm
sbrdsp_init.c
simple_idct.c
vc1dsp.asm
vc1dsp.h
vc1dsp_init.c x86: avcodec: Add a bunch of missing #includes for av_cold 2014-01-09 15:09:07 +01:00
vc1dsp_mmx.c
videodsp.asm x86: videodsp: Fix a bug in a %if statement where we used '%%' instead of '&&'. 2014-01-30 15:33:23 +01:00
videodsp_init.c x86: videodsp: Properly mark sse2 instructions in emulated_edge_mc as such. 2014-01-30 15:30:01 +01:00
vorbisdsp.asm
vorbisdsp_init.c x86: avcodec: Use convenience macros to check for CPU flags 2013-08-29 13:07:37 +02:00
vp3dsp.asm
vp3dsp_init.c
vp6dsp.asm
vp6dsp_init.c x86: avcodec: Add a bunch of missing #includes for av_cold 2014-01-09 15:09:07 +01:00
vp8dsp.asm x86: vp8dsp: Split loopfilter code into a separate file 2013-11-01 22:05:20 +01:00
vp8dsp_init.c x86: avcodec: Add a bunch of missing #includes for av_cold 2014-01-09 15:09:07 +01:00
vp8dsp_loopfilter.asm x86: vp8dsp: Split loopfilter code into a separate file 2013-11-01 22:05:20 +01:00
vp9dsp.asm lavc: VP9 decoder 2013-11-15 10:16:28 +01:00
vp9dsp_init.c x86: avcodec: Add a bunch of missing #includes for av_cold 2014-01-09 15:09:07 +01:00
vp56_arith.h
w64xmmtest.c x86: Add an xmm clobbering wrapper for avcodec_encode_video2 2013-09-16 22:22:41 +03:00