Index: source/libvpx/vp9/common/vp9_subpelvar.h |
=================================================================== |
--- source/libvpx/vp9/common/vp9_subpelvar.h (revision 219822) |
+++ source/libvpx/vp9/common/vp9_subpelvar.h (working copy) |
@@ -11,7 +11,8 @@ |
#ifndef VP9_COMMON_VP9_SUBPELVAR_H_ |
#define VP9_COMMON_VP9_SUBPELVAR_H_ |
-#include "vp9/common/vp9_filter.h" |
+#include "vp9/common/vp9_common.h" |
+#include "vp9/common/vp9_convolve.h" |
static void variance(const uint8_t *src_ptr, |
int source_stride, |
@@ -78,10 +79,10 @@ |
for (i = 0; i < output_height; i++) { |
for (j = 0; j < output_width; j++) { |
- // Apply bilinear filter |
- output_ptr[j] = (((int)src_ptr[0] * vp9_filter[0]) + |
- ((int)src_ptr[pixel_step] * vp9_filter[1]) + |
- (VP9_FILTER_WEIGHT / 2)) >> VP9_FILTER_SHIFT; |
+ output_ptr[j] = ROUND_POWER_OF_TWO((int)src_ptr[0] * vp9_filter[0] + |
+ (int)src_ptr[pixel_step] * vp9_filter[1], |
+ FILTER_BITS); |
+ |
src_ptr++; |
} |
@@ -127,20 +128,16 @@ |
unsigned int output_width, |
const int16_t *vp9_filter) { |
unsigned int i, j; |
- int Temp; |
for (i = 0; i < output_height; i++) { |
for (j = 0; j < output_width; j++) { |
- // Apply filter |
- Temp = ((int)src_ptr[0] * vp9_filter[0]) + |
- ((int)src_ptr[pixel_step] * vp9_filter[1]) + |
- (VP9_FILTER_WEIGHT / 2); |
- output_ptr[j] = (unsigned int)(Temp >> VP9_FILTER_SHIFT); |
+ output_ptr[j] = ROUND_POWER_OF_TWO((int)src_ptr[0] * vp9_filter[0] + |
+ (int)src_ptr[pixel_step] * vp9_filter[1], |
+ FILTER_BITS); |
src_ptr++; |
} |
- // Next row... |
- src_ptr += src_pixels_per_line - output_width; |
+ src_ptr += src_pixels_per_line - output_width; |
output_ptr += output_width; |
} |
} |