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