mirror of https://git.ffmpeg.org/ffmpeg.git
x86: dct-test: evaluate prores idct avx version
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
4eb4451be1
commit
8200575d84
|
@ -26,21 +26,31 @@
|
|||
void ff_prores_idct_put_10_sse2(uint16_t *dst, int linesize,
|
||||
int16_t *block, int16_t *qmat);
|
||||
|
||||
static void ff_prores_idct_put_10_sse2_wrap(int16_t *dst){
|
||||
DECLARE_ALIGNED(16, static int16_t, qmat)[64];
|
||||
DECLARE_ALIGNED(16, static int16_t, tmp)[64];
|
||||
int i;
|
||||
#define PR_WRAP(INSN) \
|
||||
static void ff_prores_idct_put_10_##INSN##_wrap(int16_t *dst){ \
|
||||
DECLARE_ALIGNED(16, static int16_t, qmat)[64]; \
|
||||
DECLARE_ALIGNED(16, static int16_t, tmp)[64]; \
|
||||
int i; \
|
||||
\
|
||||
for(i=0; i<64; i++){ \
|
||||
qmat[i]=4; \
|
||||
tmp[i]= dst[i]; \
|
||||
} \
|
||||
ff_prores_idct_put_10_##INSN (dst, 16, tmp, qmat); \
|
||||
\
|
||||
for(i=0; i<64; i++) { \
|
||||
dst[i] -= 512; \
|
||||
} \
|
||||
}
|
||||
|
||||
for(i=0; i<64; i++){
|
||||
qmat[i]=4;
|
||||
tmp[i]= dst[i];
|
||||
}
|
||||
ff_prores_idct_put_10_sse2(dst, 16, tmp, qmat);
|
||||
PR_WRAP(sse2)
|
||||
|
||||
# if HAVE_AVX_EXTERNAL
|
||||
void ff_prores_idct_put_10_avx(uint16_t *dst, int linesize,
|
||||
int16_t *block, int16_t *qmat);
|
||||
PR_WRAP(avx)
|
||||
# endif
|
||||
|
||||
for(i=0; i<64; i++) {
|
||||
dst[i] -= 512;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static const struct algo fdct_tab_arch[] = {
|
||||
|
@ -71,6 +81,9 @@ static const struct algo idct_tab_arch[] = {
|
|||
#endif /* CONFIG_MPEG4_DECODER && HAVE_YASM */
|
||||
#if (CONFIG_PRORES_DECODER || CONFIG_PRORES_LGPL_DECODER) && ARCH_X86_64 && HAVE_YASM
|
||||
{ "PR-SSE2", ff_prores_idct_put_10_sse2_wrap, FF_IDCT_PERM_TRANSPOSE, AV_CPU_FLAG_SSE2, 1 },
|
||||
# if HAVE_AVX_EXTERNAL
|
||||
{ "PR-AVX", ff_prores_idct_put_10_avx_wrap, FF_IDCT_PERM_TRANSPOSE, AV_CPU_FLAG_AVX, 1 },
|
||||
# endif
|
||||
#endif
|
||||
{ 0 }
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue