prores: Use consistent names for DSP arch initialization functions
proresenc: Drop unnecessary DCT permutation bits

No permutation is necessary for the FDCT.
prores: Drop DSP infrastructure for prores encoder bits

None of the encoder bits are arch-optimized.
proresenc: Reuse proper dsputil infrastructure for FDCT
dcadec: remove scaling in lfe_interpolation_fir

The scaling factor is constant so it is faster to scale the
FIR coefficients in the tables during compilation.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
x86: dcadsp: implement SSE lfe_dir

Results for Arrandale/Windows:
32: 1670 -> 316
64:  728 -> 298

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
dcadsp: scan coefficients linearly in dca_lfe_fir

This change is inspired by x86 asm where it frees a register.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
x86: synth filter float: implement SSE2 version

Timings for Arrandale:
          C    SSE
win32:  2108   334
win64:  1152   322

Factorizing the inner loop with a call/jmp is a >15 cycles cost, even with
the jmp destination being aligned.

Unrolling for ARCH_X86_64 is a 20 cycles gain.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
dca: factorize scaling in inverse ADPCM

Based on a patch from Christophe Gisquet.

Unrolling of the m == 0 case avoids a possible use of the uninitilized
value sum when s->predictor_history is not set. I failed to find a
sample for it. It also reduced the cycle count from 220 to 150 on
sandy bridge, x86_64 linux, gcc 4.8.2 compared to his patch.
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.
arm: dcadsp: implement decode_hf as external NEON asm
latm: Always reconfigure if no extradata was set previously

AAC LOAS can have new audio config objects in the stream itself.

Make sure the decoder reconfigures itself when the first one arrives
midstream.

Bug-Id: 644
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Merge commit 'b23650491fbd579a4365f42bd42575afb7b53f7e'

* commit 'b23650491fbd579a4365f42bd42575afb7b53f7e':
  prores: Use consistent names for DSP arch initialization functions

Conflicts:
	libavcodec/proresdsp.c
	libavcodec/proresdsp.h
	libavcodec/x86/proresdsp_init.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'd6acefe05862af244fd5a30ae946ed507c063994'

* commit 'd6acefe05862af244fd5a30ae946ed507c063994':
  proresenc: Drop unnecessary DCT permutation bits

Conflicts:
	libavcodec/proresenc_kostya.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit '92e598a57a7ce4b8ac9ea56274af39f5fd888311'

* commit '92e598a57a7ce4b8ac9ea56274af39f5fd888311':
  prores: Drop DSP infrastructure for prores encoder bits

Conflicts:
	libavcodec/Makefile
	libavcodec/proresdsp.c
	libavcodec/proresenc_kostya.c

Note, these changes only affect one of the 2 prores encoders we have
If someone wants to add optimizations to the affected encoder, or needs/wants
this infrastructure, then iam happy to revert this

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'a55546f48d55e3d1155840541b2be5f4f8cf18ab'

* commit 'a55546f48d55e3d1155840541b2be5f4f8cf18ab':
  proresenc: Reuse proper dsputil infrastructure for FDCT

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit '87ec849fe9acba075c843e67bcd01f256f481a18'

* commit '87ec849fe9acba075c843e67bcd01f256f481a18':
  dcadec: remove scaling in lfe_interpolation_fir

Conflicts:
	libavcodec/dcadec.c
	libavcodec/dcadsp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
x86: dcadsp: implement SSE lfe_dir

Results for Arrandale/Windows:
32: 1670 -> 316
64:  728 -> 298

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'ad507d7907457e678900bac132122ba7be4644cb'

* commit 'ad507d7907457e678900bac132122ba7be4644cb':
  x86: dcadsp: implement SSE lfe_dir

Conflicts:
	libavcodec/x86/dcadsp.asm

See: 169243112c1e310d90c030fb258092f6d2e46117
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit '57b1eb9f75b04571063ddec316e290c216c114ac'

* commit '57b1eb9f75b04571063ddec316e290c216c114ac':
  dcadsp: scan coefficients linearly in dca_lfe_fir

Conflicts:
	libavcodec/dcadsp.c

See: 9ae8e23188fc2e533eea74757c9060557941d3d9
Merged-by: Michael Niedermayer <michaelni@gmx.at>