00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "config.h"
00023 #include "libavutil/cpu.h"
00024 #include "libavutil/x86/cpu.h"
00025 #include "libavcodec/sbrdsp.h"
00026
00027 float ff_sbr_sum_square_sse(float (*x)[2], int n);
00028 void ff_sbr_hf_g_filt_sse(float (*Y)[2], const float (*X_high)[40][2],
00029 const float *g_filt, int m_max, intptr_t ixh);
00030 void ff_sbr_hf_gen_sse(float (*X_high)[2], const float (*X_low)[2],
00031 const float alpha0[2], const float alpha1[2],
00032 float bw, int start, int end);
00033
00034 void ff_sbrdsp_init_x86(SBRDSPContext *s)
00035 {
00036 int mm_flags = av_get_cpu_flags();
00037
00038 if (EXTERNAL_SSE(mm_flags)) {
00039 s->sum_square = ff_sbr_sum_square_sse;
00040 s->hf_g_filt = ff_sbr_hf_g_filt_sse;
00041 s->hf_gen = ff_sbr_hf_gen_sse;
00042 }
00043 }