| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. | 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 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 | 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 | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| 11 #include "vpx_config.h" | 11 #include "vpx_config.h" |
| 12 #include "vp8_rtcd.h" | 12 #include "./vp8_rtcd.h" |
| 13 #include "./vpx_dsp_rtcd.h" |
| 13 #include "vp8/common/variance.h" | 14 #include "vp8/common/variance.h" |
| 14 #include "vp8/common/filter.h" | 15 #include "vp8/common/filter.h" |
| 15 | 16 |
| 17 // TODO(johannkoenig): Move this to vpx_dsp or vp8/encoder |
| 18 #if CONFIG_VP8_ENCODER |
| 19 |
| 16 #if HAVE_MEDIA | 20 #if HAVE_MEDIA |
| 17 #include "vp8/common/arm/bilinearfilter_arm.h" | 21 #include "vp8/common/arm/bilinearfilter_arm.h" |
| 18 | 22 |
| 19 unsigned int vp8_sub_pixel_variance8x8_armv6 | 23 unsigned int vp8_sub_pixel_variance8x8_armv6 |
| 20 ( | 24 ( |
| 21 const unsigned char *src_ptr, | 25 const unsigned char *src_ptr, |
| 22 int src_pixels_per_line, | 26 int src_pixels_per_line, |
| 23 int xoffset, | 27 int xoffset, |
| 24 int yoffset, | 28 int yoffset, |
| 25 const unsigned char *dst_ptr, | 29 const unsigned char *dst_ptr, |
| 26 int dst_pixels_per_line, | 30 int dst_pixels_per_line, |
| 27 unsigned int *sse | 31 unsigned int *sse |
| 28 ) | 32 ) |
| 29 { | 33 { |
| 30 unsigned short first_pass[10*8]; | 34 unsigned short first_pass[10*8]; |
| 31 unsigned char second_pass[8*8]; | 35 unsigned char second_pass[8*8]; |
| 32 const short *HFilter, *VFilter; | 36 const short *HFilter, *VFilter; |
| 33 | 37 |
| 34 HFilter = vp8_bilinear_filters[xoffset]; | 38 HFilter = vp8_bilinear_filters[xoffset]; |
| 35 VFilter = vp8_bilinear_filters[yoffset]; | 39 VFilter = vp8_bilinear_filters[yoffset]; |
| 36 | 40 |
| 37 vp8_filter_block2d_bil_first_pass_armv6(src_ptr, first_pass, | 41 vp8_filter_block2d_bil_first_pass_armv6(src_ptr, first_pass, |
| 38 src_pixels_per_line, | 42 src_pixels_per_line, |
| 39 9, 8, HFilter); | 43 9, 8, HFilter); |
| 40 vp8_filter_block2d_bil_second_pass_armv6(first_pass, second_pass, | 44 vp8_filter_block2d_bil_second_pass_armv6(first_pass, second_pass, |
| 41 8, 8, 8, VFilter); | 45 8, 8, 8, VFilter); |
| 42 | 46 |
| 43 return vp8_variance8x8_armv6(second_pass, 8, dst_ptr, | 47 return vpx_variance8x8_media(second_pass, 8, dst_ptr, |
| 44 dst_pixels_per_line, sse); | 48 dst_pixels_per_line, sse); |
| 45 } | 49 } |
| 46 | 50 |
| 47 unsigned int vp8_sub_pixel_variance16x16_armv6 | 51 unsigned int vp8_sub_pixel_variance16x16_armv6 |
| 48 ( | 52 ( |
| 49 const unsigned char *src_ptr, | 53 const unsigned char *src_ptr, |
| 50 int src_pixels_per_line, | 54 int src_pixels_per_line, |
| 51 int xoffset, | 55 int xoffset, |
| 52 int yoffset, | 56 int yoffset, |
| 53 const unsigned char *dst_ptr, | 57 const unsigned char *dst_ptr, |
| 54 int dst_pixels_per_line, | 58 int dst_pixels_per_line, |
| (...skipping 24 matching lines...) Expand all Loading... |
| 79 { | 83 { |
| 80 HFilter = vp8_bilinear_filters[xoffset]; | 84 HFilter = vp8_bilinear_filters[xoffset]; |
| 81 VFilter = vp8_bilinear_filters[yoffset]; | 85 VFilter = vp8_bilinear_filters[yoffset]; |
| 82 | 86 |
| 83 vp8_filter_block2d_bil_first_pass_armv6(src_ptr, first_pass, | 87 vp8_filter_block2d_bil_first_pass_armv6(src_ptr, first_pass, |
| 84 src_pixels_per_line, | 88 src_pixels_per_line, |
| 85 17, 16, HFilter); | 89 17, 16, HFilter); |
| 86 vp8_filter_block2d_bil_second_pass_armv6(first_pass, second_pass, | 90 vp8_filter_block2d_bil_second_pass_armv6(first_pass, second_pass, |
| 87 16, 16, 16, VFilter); | 91 16, 16, 16, VFilter); |
| 88 | 92 |
| 89 var = vp8_variance16x16_armv6(second_pass, 16, dst_ptr, | 93 var = vpx_variance16x16_media(second_pass, 16, dst_ptr, |
| 90 dst_pixels_per_line, sse); | 94 dst_pixels_per_line, sse); |
| 91 } | 95 } |
| 92 return var; | 96 return var; |
| 93 } | 97 } |
| 94 | 98 |
| 95 #endif /* HAVE_MEDIA */ | 99 #endif // HAVE_MEDIA |
| 96 | 100 |
| 97 | 101 |
| 98 #if HAVE_NEON | 102 #if HAVE_NEON |
| 99 | 103 |
| 100 extern unsigned int vp8_sub_pixel_variance16x16_neon_func | 104 extern unsigned int vp8_sub_pixel_variance16x16_neon_func |
| 101 ( | 105 ( |
| 102 const unsigned char *src_ptr, | 106 const unsigned char *src_ptr, |
| 103 int src_pixels_per_line, | 107 int src_pixels_per_line, |
| 104 int xoffset, | 108 int xoffset, |
| 105 int yoffset, | 109 int yoffset, |
| (...skipping 16 matching lines...) Expand all Loading... |
| 122 if (xoffset == 4 && yoffset == 0) | 126 if (xoffset == 4 && yoffset == 0) |
| 123 return vp8_variance_halfpixvar16x16_h_neon(src_ptr, src_pixels_per_line, dst
_ptr, dst_pixels_per_line, sse); | 127 return vp8_variance_halfpixvar16x16_h_neon(src_ptr, src_pixels_per_line, dst
_ptr, dst_pixels_per_line, sse); |
| 124 else if (xoffset == 0 && yoffset == 4) | 128 else if (xoffset == 0 && yoffset == 4) |
| 125 return vp8_variance_halfpixvar16x16_v_neon(src_ptr, src_pixels_per_line, dst
_ptr, dst_pixels_per_line, sse); | 129 return vp8_variance_halfpixvar16x16_v_neon(src_ptr, src_pixels_per_line, dst
_ptr, dst_pixels_per_line, sse); |
| 126 else if (xoffset == 4 && yoffset == 4) | 130 else if (xoffset == 4 && yoffset == 4) |
| 127 return vp8_variance_halfpixvar16x16_hv_neon(src_ptr, src_pixels_per_line, ds
t_ptr, dst_pixels_per_line, sse); | 131 return vp8_variance_halfpixvar16x16_hv_neon(src_ptr, src_pixels_per_line, ds
t_ptr, dst_pixels_per_line, sse); |
| 128 else | 132 else |
| 129 return vp8_sub_pixel_variance16x16_neon_func(src_ptr, src_pixels_per_line, x
offset, yoffset, dst_ptr, dst_pixels_per_line, sse); | 133 return vp8_sub_pixel_variance16x16_neon_func(src_ptr, src_pixels_per_line, x
offset, yoffset, dst_ptr, dst_pixels_per_line, sse); |
| 130 } | 134 } |
| 131 | 135 |
| 132 #endif | 136 #endif // HAVE_NEON |
| 137 #endif // CONFIG_VP8_ENCODER |
| OLD | NEW |