• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3  *
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  */
10 
11 
12 #ifndef VARIANCE_ARM_H
13 #define VARIANCE_ARM_H
14 
15 #if HAVE_ARMV6
16 
17 extern prototype_sad(vp8_sad16x16_armv6);
18 extern prototype_variance(vp8_variance16x16_armv6);
19 extern prototype_variance(vp8_variance8x8_armv6);
20 extern prototype_subpixvariance(vp8_sub_pixel_variance16x16_armv6);
21 extern prototype_subpixvariance(vp8_sub_pixel_variance8x8_armv6);
22 extern prototype_variance(vp8_variance_halfpixvar16x16_h_armv6);
23 extern prototype_variance(vp8_variance_halfpixvar16x16_v_armv6);
24 extern prototype_variance(vp8_variance_halfpixvar16x16_hv_armv6);
25 extern prototype_variance(vp8_mse16x16_armv6);
26 
27 #if !CONFIG_RUNTIME_CPU_DETECT
28 
29 #undef  vp8_variance_sad16x16
30 #define vp8_variance_sad16x16 vp8_sad16x16_armv6
31 
32 #undef  vp8_variance_subpixvar16x16
33 #define vp8_variance_subpixvar16x16 vp8_sub_pixel_variance16x16_armv6
34 
35 #undef  vp8_variance_subpixvar8x8
36 #define vp8_variance_subpixvar8x8 vp8_sub_pixel_variance8x8_armv6
37 
38 #undef  vp8_variance_var16x16
39 #define vp8_variance_var16x16 vp8_variance16x16_armv6
40 
41 #undef  vp8_variance_mse16x16
42 #define vp8_variance_mse16x16 vp8_mse16x16_armv6
43 
44 #undef  vp8_variance_var8x8
45 #define vp8_variance_var8x8 vp8_variance8x8_armv6
46 
47 #undef  vp8_variance_halfpixvar16x16_h
48 #define vp8_variance_halfpixvar16x16_h vp8_variance_halfpixvar16x16_h_armv6
49 
50 #undef  vp8_variance_halfpixvar16x16_v
51 #define vp8_variance_halfpixvar16x16_v vp8_variance_halfpixvar16x16_v_armv6
52 
53 #undef  vp8_variance_halfpixvar16x16_hv
54 #define vp8_variance_halfpixvar16x16_hv vp8_variance_halfpixvar16x16_hv_armv6
55 
56 #endif /* !CONFIG_RUNTIME_CPU_DETECT */
57 
58 #endif /* HAVE_ARMV6 */
59 
60 
61 #if HAVE_ARMV7
62 extern prototype_sad(vp8_sad4x4_neon);
63 extern prototype_sad(vp8_sad8x8_neon);
64 extern prototype_sad(vp8_sad8x16_neon);
65 extern prototype_sad(vp8_sad16x8_neon);
66 extern prototype_sad(vp8_sad16x16_neon);
67 
68 //extern prototype_variance(vp8_variance4x4_c);
69 extern prototype_variance(vp8_variance8x8_neon);
70 extern prototype_variance(vp8_variance8x16_neon);
71 extern prototype_variance(vp8_variance16x8_neon);
72 extern prototype_variance(vp8_variance16x16_neon);
73 
74 //extern prototype_subpixvariance(vp8_sub_pixel_variance4x4_c);
75 extern prototype_subpixvariance(vp8_sub_pixel_variance8x8_neon);
76 //extern prototype_subpixvariance(vp8_sub_pixel_variance8x16_c);
77 //extern prototype_subpixvariance(vp8_sub_pixel_variance16x8_c);
78 extern prototype_subpixvariance(vp8_sub_pixel_variance16x16_neon);
79 extern prototype_subpixvariance(vp8_sub_pixel_variance16x16_neon_func);
80 extern prototype_variance(vp8_variance_halfpixvar16x16_h_neon);
81 extern prototype_variance(vp8_variance_halfpixvar16x16_v_neon);
82 extern prototype_variance(vp8_variance_halfpixvar16x16_hv_neon);
83 
84 //extern prototype_getmbss(vp8_get_mb_ss_c);
85 extern prototype_variance(vp8_mse16x16_neon);
86 extern prototype_sad(vp8_get16x16pred_error_neon);
87 //extern prototype_variance2(vp8_get8x8var_c);
88 //extern prototype_variance2(vp8_get16x16var_c);
89 extern prototype_sad(vp8_get4x4sse_cs_neon);
90 
91 #if !CONFIG_RUNTIME_CPU_DETECT
92 #undef  vp8_variance_sad4x4
93 #define vp8_variance_sad4x4 vp8_sad4x4_neon
94 
95 #undef  vp8_variance_sad8x8
96 #define vp8_variance_sad8x8 vp8_sad8x8_neon
97 
98 #undef  vp8_variance_sad8x16
99 #define vp8_variance_sad8x16 vp8_sad8x16_neon
100 
101 #undef  vp8_variance_sad16x8
102 #define vp8_variance_sad16x8 vp8_sad16x8_neon
103 
104 #undef  vp8_variance_sad16x16
105 #define vp8_variance_sad16x16 vp8_sad16x16_neon
106 
107 //#undef  vp8_variance_var4x4
108 //#define vp8_variance_var4x4 vp8_variance4x4_c
109 
110 #undef  vp8_variance_var8x8
111 #define vp8_variance_var8x8 vp8_variance8x8_neon
112 
113 #undef  vp8_variance_var8x16
114 #define vp8_variance_var8x16 vp8_variance8x16_neon
115 
116 #undef  vp8_variance_var16x8
117 #define vp8_variance_var16x8 vp8_variance16x8_neon
118 
119 #undef  vp8_variance_var16x16
120 #define vp8_variance_var16x16 vp8_variance16x16_neon
121 
122 //#undef  vp8_variance_subpixvar4x4
123 //#define vp8_variance_subpixvar4x4 vp8_sub_pixel_variance4x4_c
124 
125 #undef  vp8_variance_subpixvar8x8
126 #define vp8_variance_subpixvar8x8 vp8_sub_pixel_variance8x8_neon
127 
128 //#undef  vp8_variance_subpixvar8x16
129 //#define vp8_variance_subpixvar8x16 vp8_sub_pixel_variance8x16_c
130 
131 //#undef  vp8_variance_subpixvar16x8
132 //#define vp8_variance_subpixvar16x8 vp8_sub_pixel_variance16x8_c
133 
134 #undef  vp8_variance_subpixvar16x16
135 #define vp8_variance_subpixvar16x16 vp8_sub_pixel_variance16x16_neon
136 
137 #undef  vp8_variance_halfpixvar16x16_h
138 #define vp8_variance_halfpixvar16x16_h vp8_variance_halfpixvar16x16_h_neon
139 
140 #undef  vp8_variance_halfpixvar16x16_v
141 #define vp8_variance_halfpixvar16x16_v vp8_variance_halfpixvar16x16_v_neon
142 
143 #undef  vp8_variance_halfpixvar16x16_hv
144 #define vp8_variance_halfpixvar16x16_hv vp8_variance_halfpixvar16x16_hv_neon
145 
146 //#undef  vp8_variance_getmbss
147 //#define vp8_variance_getmbss vp8_get_mb_ss_c
148 
149 #undef  vp8_variance_mse16x16
150 #define vp8_variance_mse16x16 vp8_mse16x16_neon
151 
152 #undef  vp8_variance_get16x16prederror
153 #define vp8_variance_get16x16prederror vp8_get16x16pred_error_neon
154 
155 //#undef  vp8_variance_get8x8var
156 //#define vp8_variance_get8x8var vp8_get8x8var_c
157 
158 //#undef  vp8_variance_get16x16var
159 //#define vp8_variance_get16x16var vp8_get16x16var_c
160 
161 #undef  vp8_variance_get4x4sse_cs
162 #define vp8_variance_get4x4sse_cs vp8_get4x4sse_cs_neon
163 #endif
164 
165 #endif
166 
167 #endif
168