x86: simple_idct(_put): 10bits versions
authorChristophe Gisquet <christophe.gisquet@gmail.com>
Mon, 12 Oct 2015 17:37:47 +0000 (19:37 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Tue, 13 Oct 2015 11:32:21 +0000 (13:32 +0200)
commit4369b9dc7b2b0da594223ce46615ba8e2b4cead6
treea04bb2c4c7ae62a33568a0850a20cd63fea61d3e
parente652f69b354bc6b5819012979985794cfd2805c9
x86: simple_idct(_put): 10bits versions

Modeled from the prores version. Clips to [0;1023] and is bitexact.
Bitexactness requires to add offsets in different places compared to
prores or C, and makes the function approximately 2% slower.

For 16 frames of a DNxHD 4:2:2 10bits test sequence:

C:    60861 decicycles in idct, 1048205 runs,    371 skips
sse2: 27567 decicycles in idct, 1048216 runs,    360 skips
avx:  26272 decicycles in idct, 1048171 runs,    405 skips

The add version is not implemented, so the corresponding dsp
function is set to NULL to make it clear in a code executing it.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/x86/Makefile
libavcodec/x86/idctdsp_init.c
libavcodec/x86/proresdsp.asm
libavcodec/x86/simple_idct.h
libavcodec/x86/simple_idct10.asm [new file with mode: 0644]
libavcodec/x86/simple_idct10_template.asm