Merge "Skip computation of distortion in vp8_pick_inter_mode if active_map is used"
[libvpx.git] / vp8 / common / x86 / loopfilter_x86.h
blob1ed6c213f2f4184ff11cff26e3a75d841f769ff1
1 /*
2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
12 #ifndef LOOPFILTER_X86_H
13 #define LOOPFILTER_X86_H
15 /* Note:
17 * This platform is commonly built for runtime CPU detection. If you modify
18 * any of the function mappings present in this file, be sure to also update
19 * them in the function pointer initialization code
22 #if HAVE_MMX
23 extern prototype_loopfilter_block(vp8_loop_filter_mbv_mmx);
24 extern prototype_loopfilter_block(vp8_loop_filter_bv_mmx);
25 extern prototype_loopfilter_block(vp8_loop_filter_mbh_mmx);
26 extern prototype_loopfilter_block(vp8_loop_filter_bh_mmx);
27 extern prototype_simple_loopfilter(vp8_loop_filter_simple_vertical_edge_mmx);
28 extern prototype_simple_loopfilter(vp8_loop_filter_bvs_mmx);
29 extern prototype_simple_loopfilter(vp8_loop_filter_simple_horizontal_edge_mmx);
30 extern prototype_simple_loopfilter(vp8_loop_filter_bhs_mmx);
33 #if !CONFIG_RUNTIME_CPU_DETECT
34 #undef vp8_lf_normal_mb_v
35 #define vp8_lf_normal_mb_v vp8_loop_filter_mbv_mmx
37 #undef vp8_lf_normal_b_v
38 #define vp8_lf_normal_b_v vp8_loop_filter_bv_mmx
40 #undef vp8_lf_normal_mb_h
41 #define vp8_lf_normal_mb_h vp8_loop_filter_mbh_mmx
43 #undef vp8_lf_normal_b_h
44 #define vp8_lf_normal_b_h vp8_loop_filter_bh_mmx
46 #undef vp8_lf_simple_mb_v
47 #define vp8_lf_simple_mb_v vp8_loop_filter_simple_vertical_edge_mmx
49 #undef vp8_lf_simple_b_v
50 #define vp8_lf_simple_b_v vp8_loop_filter_bvs_mmx
52 #undef vp8_lf_simple_mb_h
53 #define vp8_lf_simple_mb_h vp8_loop_filter_simple_horizontal_edge_mmx
55 #undef vp8_lf_simple_b_h
56 #define vp8_lf_simple_b_h vp8_loop_filter_bhs_mmx
57 #endif
58 #endif
61 #if HAVE_SSE2
62 extern prototype_loopfilter_block(vp8_loop_filter_mbv_sse2);
63 extern prototype_loopfilter_block(vp8_loop_filter_bv_sse2);
64 extern prototype_loopfilter_block(vp8_loop_filter_mbh_sse2);
65 extern prototype_loopfilter_block(vp8_loop_filter_bh_sse2);
66 extern prototype_simple_loopfilter(vp8_loop_filter_simple_vertical_edge_sse2);
67 extern prototype_simple_loopfilter(vp8_loop_filter_bvs_sse2);
68 extern prototype_simple_loopfilter(vp8_loop_filter_simple_horizontal_edge_sse2);
69 extern prototype_simple_loopfilter(vp8_loop_filter_bhs_sse2);
72 #if !CONFIG_RUNTIME_CPU_DETECT
73 #undef vp8_lf_normal_mb_v
74 #define vp8_lf_normal_mb_v vp8_loop_filter_mbv_sse2
76 #undef vp8_lf_normal_b_v
77 #define vp8_lf_normal_b_v vp8_loop_filter_bv_sse2
79 #undef vp8_lf_normal_mb_h
80 #define vp8_lf_normal_mb_h vp8_loop_filter_mbh_sse2
82 #undef vp8_lf_normal_b_h
83 #define vp8_lf_normal_b_h vp8_loop_filter_bh_sse2
85 #undef vp8_lf_simple_mb_v
86 #define vp8_lf_simple_mb_v vp8_loop_filter_simple_vertical_edge_sse2
88 #undef vp8_lf_simple_b_v
89 #define vp8_lf_simple_b_v vp8_loop_filter_bvs_sse2
91 #undef vp8_lf_simple_mb_h
92 #define vp8_lf_simple_mb_h vp8_loop_filter_simple_horizontal_edge_sse2
94 #undef vp8_lf_simple_b_h
95 #define vp8_lf_simple_b_h vp8_loop_filter_bhs_sse2
96 #endif
97 #endif
100 #endif