dcadec: simplify decoding of VQ high frequencies
authorChristophe Gisquet <christophe.gisquet@gmail.com>
Fri, 14 Feb 2014 15:03:13 +0000 (15:03 +0000)
committerJanne Grunau <janne-libav@jannau.net>
Fri, 28 Feb 2014 12:03:22 +0000 (13:03 +0100)
commit4cb6964244fd6c099383d8b7e99731e72cc844b9
tree8b2fd29f4af8ba5d052e04d4dd1f4e97efaf73f2
parent7686afd049be98d18663682b92d983340fa2c305
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.
configure
libavcodec/arm/dca.h
libavcodec/dcadec.c
libavcodec/dcadsp.c
libavcodec/dcadsp.h
libavcodec/x86/dcadsp.asm
libavcodec/x86/dcadsp_init.c