1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00
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
deinterlace.asm
dnxhdenc.c
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
fft.asm x86inc: Utilize the shadow space on 64-bit Windows 2013-10-07 06:25:35 -04:00
fft.h
fmtconvert_init.c
fmtconvert.asm
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
h264_weight_10bit.asm
h264_weight.asm
h264chroma_init.c
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
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
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
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
rv40dsp.asm x86: rv40dsp: Use PAVGB instruction macro where appropriate 2013-11-04 21:14:39 +01:00
sbrdsp_init.c
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
vorbisdsp.asm
vp3dsp_init.c
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
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