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_init.c x86: avcodec: Add a bunch of missing #includes for av_cold 2014-01-09 15:09:07 +01:00
ac3dsp.asm
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_init.c dcadec: simplify decoding of VQ high frequencies 2014-02-28 13:03:22 +01:00
dcadsp.asm dcadec: simplify decoding of VQ high frequencies 2014-02-28 13:03:22 +01:00
dct32.asm
dct_init.c x86: Split DCT and FFT initialization into separate files 2013-08-21 20:15:27 +02:00
deinterlace.asm
dnxhdenc.c x86: avcodec: Use convenience macros to check for CPU flags 2013-08-29 13:07:37 +02:00
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
dsputil.asm
dsputilenc_mmx.c x86: Initialize mmxext after amd3dnow optimizations 2013-12-04 18:52:48 +01:00
dsputilenc.asm
fdct.c x86: fdct: Employ more specific ifdefs 2013-10-06 22:02:25 +02:00
fft_init.c x86: Split DCT and FFT initialization into separate files 2013-08-21 20:15:27 +02:00
fft.asm x86inc: Utilize the shadow space on 64-bit Windows 2013-10-07 06:25:35 -04:00
fft.h x86: Split DCT and FFT initialization into separate files 2013-08-21 20:15:27 +02:00
fmtconvert_init.c x86: avcodec: Consistently structure CPU extension initialization 2013-08-29 13:07:37 +02:00
fmtconvert.asm fmtconvert: Explicitly use int32_t instead of int 2013-07-17 11:02:47 +03:00
fpel_mmx.c
fpel.asm
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_10bit.asm
h264_chromamc.asm
h264_deblock_10bit.asm
h264_deblock.asm x86inc: Utilize the shadow space on 64-bit Windows 2013-10-07 06:25:35 -04:00
h264_i386.h
h264_idct_10bit.asm
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_intrapred_10bit.asm
h264_intrapred_init.c h264: do not use 422 functions for monochrome 2014-01-06 08:25:36 +01:00
h264_intrapred.asm
h264_qpel_8bit.asm
h264_qpel_10bit.asm
h264_qpel.c Consistently use "cpu_flags" as variable/parameter name for CPU flags 2013-07-18 00:31:35 +02:00
h264_weight_10bit.asm
h264_weight.asm
h264chroma_init.c Consistently use "cpu_flags" as variable/parameter name for CPU flags 2013-07-18 00:31:35 +02:00
h264dsp_init.c h264: do not use 422 functions for monochrome 2014-01-06 08:25:36 +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
hpeldsp.asm x86: hpeldsp: Use PAVGB instruction macro where necessary 2013-11-04 01:29:23 +01:00
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_template.c dsputil: x86: Move ff_inv_zigzag_direct16 table init to mpegvideo 2013-12-02 04:05:18 +01:00
mpegvideoenc.c x86: mpegvideo: move denoise_dct asm to mpegvideoenc 2013-12-20 17:16:11 +01:00
pngdsp_init.c Consistently use "cpu_flags" as variable/parameter name for CPU flags 2013-07-18 00:31:35 +02:00
pngdsp.asm
proresdsp_init.c prores: Use consistent names for DSP arch initialization functions 2014-02-28 10:34:55 +01:00
proresdsp.asm
qpel.asm
rnd_mmx.c
rnd_template.c
rv34dsp_init.c x86: avcodec: Add a bunch of missing #includes for av_cold 2014-01-09 15:09:07 +01:00
rv34dsp.asm
rv40dsp_init.c x86: avcodec: Consistently structure CPU extension initialization 2013-08-29 13:07:37 +02:00
rv40dsp.asm x86: rv40dsp: Use PAVGB instruction macro where appropriate 2013-11-04 21:14:39 +01:00
sbrdsp_init.c Consistently use "cpu_flags" as variable/parameter name for CPU flags 2013-07-18 00:31:35 +02:00
sbrdsp.asm
simple_idct.c
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
vc1dsp.asm
vc1dsp.h
videodsp_init.c x86: videodsp: Properly mark sse2 instructions in emulated_edge_mc as such. 2014-01-30 15:30:01 +01:00
videodsp.asm x86: videodsp: Fix a bug in a %if statement where we used '%%' instead of '&&'. 2014-01-30 15:33:23 +01:00
vorbisdsp_init.c x86: avcodec: Use convenience macros to check for CPU flags 2013-08-29 13:07:37 +02:00
vorbisdsp.asm
vp3dsp_init.c Consistently use "cpu_flags" as variable/parameter name for CPU flags 2013-07-18 00:31:35 +02:00
vp3dsp.asm
vp6dsp_init.c x86: avcodec: Add a bunch of missing #includes for av_cold 2014-01-09 15:09:07 +01:00
vp6dsp.asm vp56: Mark VP6-only optimizations as such. 2013-08-23 14:42:19 +02: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
vp8dsp.asm x86: vp8dsp: Split loopfilter code into a separate file 2013-11-01 22:05:20 +01:00
vp9dsp_init.c x86: avcodec: Add a bunch of missing #includes for av_cold 2014-01-09 15:09:07 +01:00
vp9dsp.asm lavc: VP9 decoder 2013-11-15 10:16:28 +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